Troubleshooting (5.0.3)

GridBuilding 5.0.3 troubleshooting is mostly about understanding the maintenance wiring patterns:

  • injector/container composition
  • state-first signal flows
  • preview/targeting interactions

Start here:

If your issue involves targeting previews being cleared unexpectedly, see:

5.0.3-specific checks

Move fails with “not movable”

In 5.0.3, try_move() enforces is_movable() before move starts.

  • Verify the target has a valid ManipulatableNode component.
  • Verify its ManipulatableSettings allow movement (movable = true).
  • Ensure the ManipulatableNode.root_node is correctly assigned to the scene root.

Rotation / flip not preserved after move

5.0.3 preserves accumulated transform on successful placement. If this still appears broken:

  • Verify your placement flow uses try_move(...) followed by try_placement(...).
  • Verify no custom script resets transform after placement.
  • Verify your test/object is not being replaced by unrelated scene logic after placement.

Save data contains temporary preview objects

In 5.0.3, preview/manipulation copies are marked with gb_preview metadata on the parent node.

  • When saving, skip any placed object whose parent/root has gb_preview metadata.
  • Query placed nodes by their membership in the PlaceableInstance group.
1
2
3
func should_skip_preview(node: Node) -> bool:
    var parent_node = node.get_parent()
    return parent_node != null and parent_node.has_meta("gb_preview")