بنقرة واحدة
logistic-container
Factorio-style logistics — items flow automatically between containers
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Factorio-style logistics — items flow automatically between containers
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Portable tokens of capability, identity, and access
The grammar rules that make MOOLLM's file system object-oriented. Plural directory names declare element type; UPPERCASE marker files declare interface exports (COM-style, minus the UUIDs); directories are implementation classes exporting every interface whose marker file sits at their root.
Mother skill for platform-descriptor sister skills. Defines what a BIOME is — a bounded region of an ecosystem (coexisting, exchanging, never isolated) for one platform you operate — and what files, subdirectories, and cross-biome bridges every daughter biome inherits.
A skill is documentation that learned to do things.
GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
Schemapedia — schema plugins, families, gateways, formats.yml, mechanism_relations; self-object kernel; delegates to sibling skills.
| name | logistic-container |
| description | Factorio-style logistics — items flow automatically between containers |
| license | MIT |
| tier | 2 |
| allowed-tools | ["read_file","write_file"] |
| protocol | LOGISTIC-CONTAINER |
| related | ["room","container","prototype"] |
| tags | ["moollm","logistics","inventory","automation","factorio","containers"] |
"The factory grows. Items flow. The world runs itself."
The Logistic Container skill brings Factorio-style logistics to MOOLLM adventures. Containers participate in a network where items flow automatically between providers and requesters.
Like Factorio's colored logistic chests:
| Mode | Color | Emoji | Behavior |
|---|---|---|---|
| passive-provider | Yellow | 📦🟡 | "Take from me if you need" |
| active-provider | Red | 📦🔴 | "I'm pushing these OUT" |
| requester | Blue | 📦🔵 | "I WANT these items" |
| storage | White | 📦⬜ | "General overflow" |
| buffer | Green | 📦🟢 | "Hold until condition met" |
Containers can manage grids of cells, each holding one item type:
warehouse/
LOGISTIC-CONTAINER.yml # The config
iron-ore/ # Auto-created
CELL.yml # count: 2500
copper-ore/
CELL.yml # count: 1800
magic-sword/
CELL.yml # instances: [{...}, {...}]
When you toss a new item type into a grid container, a new cell directory is created automatically. Like mkdir -p for items!
grid:
enabled: true
auto_create_cells: true
cell_naming: item-id # iron-ore/ from iron-ore item
Identical items — store as a count:
# 500 iron ore, all the same
{ item: "iron-ore", count: 500 }
Tags that trigger fungible mode:
raw-material, currency, ammo, commodity, stackableItems with individual properties — store as array:
# 3 swords, each different
{ item: "magic-sword", count: 3, instances: [
{ id: "sword-001", durability: 85, enchant: "fire" },
{ id: "sword-002", durability: 100, enchant: null },
{ id: "sword-003", durability: 50, enchant: "ice" }
]}
Tags that trigger instance mode:
unique, named, enchanted, damaged, configuredlogistic-container:
id: pantry
name: "Kitchen Pantry"
mode: passive-provider
provides:
- tags: ["food", "ingredient"]
reserve: 1 # Always keep 1 of each
filters:
allow: [{ tags: ["food"] }]
logistic-container:
id: assembly-output
name: "Assembly Line Output"
mode: active-provider
push_to:
- match: { tags: ["finished"] }
destination: "../warehouse/"
- match: { tags: ["scrap"] }
destination: "../recycling/"
- default: "../overflow/"
logistic-container:
id: workbench
name: "Crafting Workbench"
mode: requester
request_list:
- item: "iron-plate"
count: 20
min: 5 # Request more when below 5
- tags: ["fuel"]
count: 10
logistic-container:
id: main-warehouse
name: "Central Warehouse"
mode: passive-provider
grid:
enabled: true
auto_create_cells: true
stack_limit: 10000
navigable: true # Players can walk between cells
item_handling:
default_mode: auto
fungible_tags: ["ore", "ingot", "plate"]
instance_tags: ["weapon", "armor"]
logistic-container:
id: dock
name: "Ship Loading Dock"
mode: buffer
buffer_for:
- destination: "../ship/cargo/"
when: "world.ship.docked == true"
Containers only exchange items with others in the same network:
network: factory-a # Only connects to factory-a
# Or multiple networks:
network: [factory, emergency]
Emit signals about contents for automation:
signals:
enabled: true
emit:
- signal: "iron-count"
value: "count of iron-plate"
- signal: "is-full"
value: "total_items >= capacity"
Other objects can read these signals:
# Door that only opens when warehouse has iron
exit:
signal_control:
open_when:
signal: "iron-count"
operator: ">"
value: 100
Characters with behavior.type: logistic-bot move items between containers:
character:
id: courier-kitten
behavior:
type: logistic-bot
roboport: warehouse/#charging-station
cargo_slots: 5
range: 10
Bots:
Exits can have flow for automatic item transport:
exit:
direction: EAST
destination: ../warehouse/
flow:
enabled: true
allow: [{ tags: ["finished"] }]
This creates a "conveyor belt" between rooms!
See factorio-logistics-protocol.md for the full design.