Factorio LLM Use
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FACTORIO_RCON_HOST | No | Optional RCON host for the existing Factorio server | |
| FACTORIO_RCON_PORT | No | RCON port for the existing Factorio server | |
| FACTORIO_RCON_PASSWORD | No | RCON password for the existing Factorio server | |
| FACTORIO_RCON_PASSWORD_FILE | No | Path to a file containing the RCON password for the existing Factorio server |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| factorio_pingA | Check the connection, game version and supported operations. |
| get_worldB | List surfaces, sandbox surfaces, players, forces and simulation state. |
| get_agent_statusA | Read the independent AI character's actual inventory, position and action. |
| observeB | Read any entity prototypes in an area. Pagination is independent of entity type. area: {left_top:{x,y},right_bottom:{x,y}}. Detailed results include fluid, inventory, recipe, power and rail-connection data when supported by the entity. |
| inspect_entityB | Inspect an entity, including inventory indices and connected rails. No reach required. |
| move_toC | Walk with the engine pathfinder. Returns an action ID; never teleports. |
| mine_entityC | Mine resources or recover structures using real mining time and interaction reach. |
| craftC | Queue hand crafting using real ingredients and game time. Returns an action ID. |
| get_action_statusB | Read completion, cancellation or failure of the current or most recent action. |
| cancel_actionA | Stop the AI character and cancel its current action, returning crafting ingredients. |
| place_entityB | Build any item.place_result prototype from the AI inventory within normal reach. There is no entity whitelist. The engine checks collisions and placement rules. For complete layouts, tiles, wires and settings, use native blueprint plans. |
| transfer_itemsB | Transfer real items to/from a nearby entity. Discover inventory indices with inspect_entity. inventory accepts a numeric index or a defines.inventory name. No per-entity role whitelist. |
| configure_entityC | Configure a nearby machine, station or control behavior using native entity methods. |
| list_prototypesC | Discover installed base, expansion and mod prototypes by name. |
| list_recipesC | Read real recipe ingredients, products, category, energy and research availability. |
| researchC | Read research and available technologies; optionally queue a technology normally. |
| trainsB | Inspect trains, schedules and carriages; modify one explicit train ID when requested. schedule uses Factorio's TrainSchedule structure. Groups and interrupts are available through get_schedule() in the advanced Lua tool; a basic schedule is a separate interface. |
| blueprint_catalogC | Browse player/game libraries, nested books, inventory and captured blueprints. Returned references identify exact records. Search RAILS or a project label with query. Original library records are never modified. |
| capture_blueprintC | Capture a layout, including sandbox surfaces, with native blueprint settings. |
| import_blueprintC | Import an exported blueprint or nested book into bridge-owned storage. |
| export_blueprintB | Export an exact blueprint or book record as a standard Factorio string. |
| inspect_blueprintB | Read footprint, quantities, stations, grid snapping and optional full native entities. |
| find_sitesB | Find candidate footprints without existing structures, water or cliffs. This is terrain screening. Plan rail approaches, grid alignment, utilities and future expansion separately from the returned footprints, using the user's blueprint standards. |
| create_planB | Freeze an ordered plan of native blueprints without building anything. Each component is {ref,position:{x,y},direction:0|4|8|12,label?}. Include factory blocks, stations, signals and rail book segments in one plan. |
| inspect_planB | Read a persistent construction plan and its application state. |
| preview_planB | Draw temporary footprint overlays. Does not create ghosts or start robot construction. |
| apply_planA | Place a plan as native ghosts. Supplied construction robots can build them immediately. Use only when the assigned task authorizes placing ghosts. Normal placement does not force deconstruction. Real construction uses the existing factory's normal materials. |
| shoot_atB | Aim/shoot for a bounded duration with real weapons/ammo; executed per tick by the mod. This primitive does not establish reliable autonomous combat or tactical threat response. |
| execute_luaA | Run explicit administrative Lua for advanced game/mod capabilities not covered above. Use rcon.print(helpers.table_to_json(...)) to return data. Obtain the independent character through remote.call('factorio_llm_use','get_agent'). This has full game scripting power: use the specific tools for ordinary gameplay and respect the user's task scope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Most tools target clearly distinct resources or actions (move_to, mine_entity, craft, place_entity, trains, research, plan tools, blueprint tools). There is mild overlap in the read/status cluster (observe vs inspect_entity, get_world vs get_agent_status vs get_action_status, factorio_ping), but the descriptions draw usable boundaries (area scan vs single-entity inspection, world state vs agent state vs action state).
The dominant pattern is verb_noun (cancel_action, get_world, mine_entity, transfer_items, capture_blueprint, create_plan, apply_plan). A handful of deviations exist (factorio_ping, and bare verbs/nouns like observe, craft, research, trains), but they are short, idiomatic, and still unambiguous rather than chaotic.
29 tools is heavy by the usual 3-15 guideline, though the Factorio domain genuinely spans world state, entities, crafting, trains, research, blueprints, plans, combat and a Lua escape hatch, so most tools earn their place. It sits just past the threshold where the surface starts to feel like an API dump rather than a scoped set.
Coverage is broad and lifecycle-aware: observation, action execution/status/cancel, placement, configuration, recipes/research, blueprint capture/import/export/inspect, site finding, and plan create/inspect/preview/apply, with execute_lua as a documented escape hatch. Gaps are minor: no explicit deconstruction/ghost-removal operation, and combat is explicitly acknowledged as a non-tactical primitive.