Skip to main content
Glama

factory_floors

Analyze Satisfactory save geometry to count factory decks and identify what stands on each level. Filter by platform or factory for floor-by-floor results.

Instructions

How many decks a factory has and what stands on each.

Nothing in the save says "floor". Floors are recovered from geometry: a platform is a 4-connected run of 8 m foundation cells, and its storeys are the levels its tops cluster at, with no assumed storey pitch. A band holding less than a quarter of the platform's largest deck is marked minor -- a mezzanine or a machine plinth, reported rather than merged away.

Whole-world by default: one row per platform, largest first. Narrow with platform= (an index that is stable across calls on one save) or factory=, and a single platform is answered floor by floor instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
saveNo
as_ofNopin to one world state: a sav:… token from an earlier answer
limitNomax rows (hard cap 25)
worldNo
offsetNo
factoryNoa named factory, or any machine selector
platformNoone platform by the index this tool hands out

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden well: it discloses that floors are inferred from geometry, that no storey pitch is assumed, the threshold for marking a band 'minor' (under a quarter of the largest deck), that minors are reported rather than merged, and the default sort order. It omits whether this is strictly a read operation and how errors or ambiguous platforms are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The answer is front-loaded in the first sentence and the remaining prose all adds derivational context. It is somewhat wordy across three paragraphs but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, no-output-schema, unannotated tool, the description covers the return shape (row per platform, or floor-by-floor), default ordering, and the core derivation rules. Remaining gaps are the unqualified save/world/as_of parameters and read-only confirmation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57%. The description meaningfully augments platform= by noting the index is stable across calls on one save and explains the world-vs-narrowed behavior, but save, world, as_of, limit, and offset receive no added semantic detail beyond their schema hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific resource and outcome: how many decks a factory has and what stands on each. It is clearly not a layout or map tool, and the geometry-derivation detail makes the scope concrete. It stops short of naming the closest siblings (factory_map, factory_query, factory_health) to draw an explicit boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational context: whole-world by default with one row per platform, narrowable via platform= or factory=, and that a single-platform query switches to a floor-by-floor answer. There is no explicit when-not guidance or routing to an alternative tool, which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.