# icmods/refined-storage architecture

> Architecture diagram of the GitHub repository icmods/refined-storage, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-20). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/icmods/refined-storage
- Repository: https://github.com/icmods/refined-storage

## Overview

Refined Storage is an in-game networked item-storage and crafting mod. A player opens a grid or wireless terminal; the network resolves stored items, crafting patterns, energy state, and active tasks, then presents or transfers results. The controller establishes network identity and state, while storage adapters support container and hopper-style movement. The graph preserves documented interfaces, disks, autocrafting, wireless access, and energy integration. Several block implementations are represented from the tree but not connected where sampled excerpts did not prove their calls.

Main entry points: [`dev/network/info.js`](https://github.com/icmods/refined-storage/blob/master/dev/network/info.js) (Network Info), [`dev/blocks/controller.js`](https://github.com/icmods/refined-storage/blob/master/dev/blocks/controller.js) (Network Controller), [`dev/items/wirelessGrid.js`](https://github.com/icmods/refined-storage/blob/master/dev/items/wirelessGrid.js) (Wireless Grid), [`dev/blocks/grid.js`](https://github.com/icmods/refined-storage/blob/master/dev/blocks/grid.js) (Storage Grid)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_network["Network Core"]
  node_controller["Network Controller<br/>[controller.js]"]
  node_network_state["Network State<br/>[state.js]"]
  node_network_topology["Network Topology<br/>[topology.js]"]
  node_network_info["Network Info<br/>[info.js]"]
end

subgraph group_storage["Storage Access"]
  node_grid["Storage Grid<br/>[grid.js]"]
  node_interface_block["Storage Interface<br/>[interface.js]"]
  node_storage_adapter["Container Adapter"]
  node_disk_store[("Disk Storage<br/>[disks.js]")]
end

subgraph group_crafting["Crafting System"]
  node_crafting_grid["Crafting Grid<br/>[crafting_grid.js]"]
  node_patterns[("Crafting Patterns")]
  node_craft_scheduler["Craft Scheduler<br/>[scheduler.js]"]
  node_craft_tasks["Craft Tasks<br/>[task.js]"]
  node_phantom_terminal["Virtual Terminal<br/>[phantom.js]"]
end

subgraph group_integration["Integrations"]
  node_core_api["Mod API<br/>[api.js]"]
  node_wireless_grid["Wireless Grid<br/>[wirelessGrid.js]"]
  node_transmitter["Wireless Transmitter"]
  node_energy_net["Energy Network<br/>[energy-net.js]"]
  node_energy_usage["Energy Usage<br/>[usage.js]"]
end

node_player(("Player"))
node_game_inventory[("Game Inventories")]

node_player -->|"opens"| node_grid
node_player -.->|"uses"| node_wireless_grid
node_controller -->|"creates"| node_network_state
node_controller -->|"registers"| node_network_info
node_network_topology -->|"updates"| node_network_state
node_grid -->|"reads"| node_network_info
node_network_info -->|"stores items"| node_disk_store
node_interface_block -->|"exposes items"| node_game_inventory
node_storage_adapter -->|"transfers items"| node_game_inventory
node_crafting_grid -->|"requests crafts"| node_network_info
node_network_info -->|"loads patterns"| node_patterns
node_network_info -->|"queues crafts"| node_craft_scheduler
node_craft_scheduler -->|"creates tasks"| node_craft_tasks
node_phantom_terminal -->|"reads tasks"| node_network_info
node_wireless_grid -.->|"finds transmitter"| node_transmitter
node_wireless_grid -.->|"spawns terminal"| node_phantom_terminal
node_controller -->|"tracks usage"| node_energy_usage
node_energy_usage -->|"uses energy"| node_energy_net
node_core_api -->|"queries network"| node_network_info

click node_controller "https://github.com/icmods/refined-storage/blob/master/dev/blocks/controller.js"
click node_network_state "https://github.com/icmods/refined-storage/blob/master/dev/network/state.js"
click node_network_topology "https://github.com/icmods/refined-storage/blob/master/dev/network/topology.js"
click node_network_info "https://github.com/icmods/refined-storage/blob/master/dev/network/info.js"
click node_grid "https://github.com/icmods/refined-storage/blob/master/dev/blocks/grid.js"
click node_interface_block "https://github.com/icmods/refined-storage/blob/master/dev/blocks/interface.js"
click node_storage_adapter "https://github.com/icmods/refined-storage/blob/master/lib/StorageInterface.js"
click node_disk_store "https://github.com/icmods/refined-storage/blob/master/dev/storage/disks.js"
click node_crafting_grid "https://github.com/icmods/refined-storage/blob/master/dev/blocks/crafting_grid.js"
click node_patterns "https://github.com/icmods/refined-storage/blob/master/dev/network/pattern_containers.js"
click node_craft_scheduler "https://github.com/icmods/refined-storage/blob/master/dev/network/scheduler.js"
click node_craft_tasks "https://github.com/icmods/refined-storage/blob/master/dev/network/task.js"
click node_phantom_terminal "https://github.com/icmods/refined-storage/blob/master/dev/network/phantom.js"
click node_core_api "https://github.com/icmods/refined-storage/blob/master/dev/core/api.js"
click node_wireless_grid "https://github.com/icmods/refined-storage/blob/master/dev/items/wirelessGrid.js"
click node_transmitter "https://github.com/icmods/refined-storage/blob/master/dev/blocks/wireless_transmitter.js"
click node_energy_net "https://github.com/icmods/refined-storage/blob/master/lib/energy-net.js"
click node_energy_usage "https://github.com/icmods/refined-storage/blob/master/dev/energy/usage.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_controller,node_network_state,node_network_topology,node_network_info toneBlue
class node_grid,node_interface_block,node_storage_adapter,node_disk_store,node_game_inventory toneAmber
class node_crafting_grid,node_patterns,node_craft_scheduler,node_craft_tasks,node_phantom_terminal toneMint
class node_core_api,node_wireless_grid,node_transmitter,node_energy_net,node_energy_usage toneRose
class node_player toneIndigo
```

## Components

### Network Core

- [Network Controller](https://github.com/icmods/refined-storage/blob/master/dev/blocks/controller.js): `dev/blocks/controller.js`
- [Network State](https://github.com/icmods/refined-storage/blob/master/dev/network/state.js): `dev/network/state.js`
- [Network Topology](https://github.com/icmods/refined-storage/blob/master/dev/network/topology.js): `dev/network/topology.js`
- [Network Info](https://github.com/icmods/refined-storage/blob/master/dev/network/info.js): `dev/network/info.js`

### Storage Access

- [Storage Grid](https://github.com/icmods/refined-storage/blob/master/dev/blocks/grid.js): `dev/blocks/grid.js`
- [Storage Interface](https://github.com/icmods/refined-storage/blob/master/dev/blocks/interface.js): `dev/blocks/interface.js`
- [Container Adapter](https://github.com/icmods/refined-storage/blob/master/lib/StorageInterface.js): `lib/StorageInterface.js`
- [Disk Storage](https://github.com/icmods/refined-storage/blob/master/dev/storage/disks.js): `dev/storage/disks.js`

### Crafting System

- [Crafting Grid](https://github.com/icmods/refined-storage/blob/master/dev/blocks/crafting_grid.js): `dev/blocks/crafting_grid.js`
- [Crafting Patterns](https://github.com/icmods/refined-storage/blob/master/dev/network/pattern_containers.js): `dev/network/pattern_containers.js`
- [Craft Scheduler](https://github.com/icmods/refined-storage/blob/master/dev/network/scheduler.js): `dev/network/scheduler.js`
- [Craft Tasks](https://github.com/icmods/refined-storage/blob/master/dev/network/task.js): `dev/network/task.js`
- [Virtual Terminal](https://github.com/icmods/refined-storage/blob/master/dev/network/phantom.js): `dev/network/phantom.js`

### Integrations

- [Mod API](https://github.com/icmods/refined-storage/blob/master/dev/core/api.js): `dev/core/api.js`
- [Wireless Grid](https://github.com/icmods/refined-storage/blob/master/dev/items/wirelessGrid.js): `dev/items/wirelessGrid.js`
- [Wireless Transmitter](https://github.com/icmods/refined-storage/blob/master/dev/blocks/wireless_transmitter.js): `dev/blocks/wireless_transmitter.js`
- [Energy Network](https://github.com/icmods/refined-storage/blob/master/lib/energy-net.js): `lib/energy-net.js`
- [Energy Usage](https://github.com/icmods/refined-storage/blob/master/dev/energy/usage.js): `dev/energy/usage.js`

### Other components

- **Player**
- **Game Inventories**

## Connections

- Player → Storage Grid: opens
- Player → Wireless Grid: uses
- Network Controller → Network State: creates
- Network Controller → Network Info: registers
- Network Topology → Network State: updates
- Storage Grid → Network Info: reads
- Network Info → Disk Storage: stores items
- Storage Interface → Game Inventories: exposes items
- Container Adapter → Game Inventories: transfers items
- Crafting Grid → Network Info: requests crafts
- Network Info → Crafting Patterns: loads patterns
- Network Info → Craft Scheduler: queues crafts
- Craft Scheduler → Craft Tasks: creates tasks
- Virtual Terminal → Network Info: reads tasks
- Wireless Grid → Wireless Transmitter: finds transmitter
- Wireless Grid → Virtual Terminal: spawns terminal
- Network Controller → Energy Usage: tracks usage
- Energy Usage → Energy Network: uses energy
- Mod API → Network Info: queries network
