Troubleshooting¶
Placement is red¶
Click while the preview is red to emit detailed diagnostics. Common results:
| Reason | Meaning | Resolution |
|---|---|---|
FootprintCellMissing |
One or more footprint cells have no floor | Build every required floor cell |
EnclosedRoomRequired |
A room-only object is outside a detected room | Seal the region and verify every footprint cell belongs to it |
CellOccupied |
A blocking object already occupies a cell | Move the object or select another location |
InternalBoundaryConflict |
A wall crosses a multi-cell footprint | Remove/reposition the wall or object |
ExistingBoundaryRequired |
A wall attachment has no wall edge | Place the supporting wall first |
InvalidPrefab |
Required grid component is missing | Compare the prefab with a supplied wrapper |
A sealed room is not detected¶
Check:
- every intended coordinate has a
StationGridCell; - floor and logical ceiling flags are enabled;
- every exterior edge has a Wall, closed Door, or closed Airlock;
- no duplicate cells occupy the same coordinate;
- no duplicate boundaries occupy the same shared edge;
Rebuild Detected Roomsreports the expected room cells.
An opening anywhere in one connected region prevents the whole region from becoming a room.
The room type stays Generic¶
- Select each placeable and verify its
StationPlaceable.Definition. - Inspect the
StationObjectDefinition.Room Tagscontributions. - Verify the
RoomTypeDefinition.Required Tagsthresholds. - Add the room type to
StationRoomGrid.Available Room Types. - Check whether a higher-priority candidate wins instead.
Bed cannot be placed in a visible room¶
Use the placement log. If floor cells report room=false while the room list contains those coordinates, verify the room was rebuilt after the final boundary and confirm the selected footprint coordinates are the same story and region.
Life Support says Operational without a worker¶
The supplied Oxygen Generator needs WorkerRequirement and a Work interaction slot. Recreate or compare the device wrapper if those components are missing. A powered but unstaffed room should report Understaffed; an unpowered device should report Unpowered.
Vent does not transfer oxygen¶
Check:
- the vent is a
WallAttachment, not a replacement boundary; - it is on the shared edge of two different detected rooms;
- both rooms are enclosed;
AtmosphereVent.VentEnabledis true;- the device has power;
StationAtmosphereNetworkexists under the station simulation hierarchy;- the room inspector reports a connected and active vent.
A vent cannot connect a room to itself and does not create a room where none exists.
Worker cannot reach a work slot¶
The Console reports start and target coordinates with floor availability.
- Both cells must exist on the same story.
- A continuous floor-cell route must connect them.
- Any boundary crossed by the route must be a Door or Airlock, not Wall.
- Move an interaction slot back inside the target room if its authored pose is outside.
The pathfinder tries to avoid furniture first, then uses a connected floor fallback for compact furnished rooms. It never falls back through a wall.
Worker walks through a closed door visual¶
Door and Airlock boundaries are currently implicit worker portals. Room sealing uses the portal state, while worker travel treats the portal location as usable. Add a project-specific door interaction/animation before traversal when visual opening is required.
Worker floats above the floor¶
Workers are projected to the current story floor when they spawn or leave an interaction pose. If the root is correct but the mesh still floats, open the worker prefab and lower the model child under Visual Root. That corrects a model-pivot offset without changing gameplay coordinates.
Walking does not loop¶
Loop settings belong to the animation FBX, not the Animator state. Select the current Walk clip's FBX, enable Loop Time and Loop Pose, then Apply. Confirm the Walk state actually references that clip.
Copied Avatar reports Hips not found¶
Set the animation FBX to Humanoid > Create From This Model. Do not copy a target Avatar when transform names or hierarchy differ. See Character Animation Setup.
Construction menu appears twice¶
Use only one menu instance. The clean demo builder instantiates ConstructionMenu.prefab under its generated Canvas. Remove a manually added duplicate or avoid running a custom scene bootstrap that creates another copy.
Existing ConstructionMenu hierarchy is unsupported¶
An older generated menu may not match the current builder layout. Preserve custom styling if needed, remove or rename the unsupported prefab, and run Create Construction UI Prefab to generate the current hierarchy.
MaterialPropertyBlock constructor exception¶
Unity objects such as MaterialPropertyBlock must not be created in a MonoBehaviour field initializer or constructor. The package initializes runtime-only Unity objects from lifecycle/configuration code. If extending the ghost renderer, follow the same rule.
Save does not restore live simulation values¶
Version 1 intentionally saves construction only. It reconstructs rooms and crew after load; it does not persist live oxygen, pressure, fatigue, assignments, durability, or other simulation state.