Guides (5.0.3 Production Stable)

GridBuilding 5.0.3 is the production stable maintenance patch line. It predates the explicit payload-vs-snapshot split introduced in 6.0 and uses more state-first / node-first wiring.

Use this section when you are:

  • Debugging a 5.0.3-era project that can’t migrate yet.
  • Understanding why 6.0 changed the architecture.

If you are starting a new project, prefer:

  • v6-0 (GECS + clean architecture)

Guides

Patch-level notes (5.0.3)

5.0.3 includes important manipulation runtime fixes that this guide set assumes:

  • Level transitions now preserve player inventory by default; fresh starts still reset inventory through the world startup path.
  • try_move() now enforces is_movable() and returns a configured failure message when blocked.
  • Move placement now preserves rotation/flip/scale when committing the manipulated object.
  • ManipulationSettings.failed_object_not_movable is available for custom/localized messaging.

Architecture summary (5.0.3 mental model)

The 5.0.3 line is best understood as a composition-container / injector era (with bridge-style integration patterns).

1
2
3
4
5
Godot nodes / scripts
  v
Composition container + injector
  v
Backend state + (maintenance) bridge patterns

Signals, State, and Snapshots (5.0.3 maintenance)

On this topic (targeting + UI updates):

  • 5.0.3 commonly exposed public state objects that listeners subscribed to.
  • Signals often carried state references (or listeners polled state directly).
  • There was no separate snapshot type whose only job is safe diagnostics/test consumption.

In later versions (6.0), the architecture improves by separating:

  • Event payloads (EventData): small, stable signal/event contracts.
  • Snapshots: read-only projections for diagnostics/tests.
  • Service state: authoritative, private, and not exposed as public API.

Troubleshooting + next steps

See the main table of contents above.

Runtime validation suites (5.0 maintenance)

These guides are validated against the 5.0 maintenance runtime test root:

  • res://addons/grid_building/test/

Guide-to-suite cross-links:

  • Architecture / workflow -> res://addons/grid_building/test/e2e/all_systems_integration_tests.gd, res://addons/grid_building/test/integration/grid_positioner_rotation_integration_test.gd
  • Composition + injection -> res://addons/grid_building/test/utilities/data/composition_container_subresources_test.gd, res://addons/grid_building/test/utilities/gb_configuration_validator_test.gd
  • Validation -> res://addons/grid_building/test/rules/validation/valid_placement_tile_rule_test.gd, res://addons/grid_building/test/building/placement/rect4x2_bounds_validation_unit_test.gd
  • Placement rules -> res://addons/grid_building/test/rules/validation/rule_system_integration_tests.gd, res://addons/grid_building/test/rules/validation/tilemap_bounds_rule_unit_test.gd
  • Placement workflow -> res://addons/grid_building/test/e2e/all_systems_integration_tests.gd, res://addons/grid_building/test/rules/validation/rule_system_integration_tests.gd, res://addons/grid_building/test/building/placement/rect4x2_bounds_validation_unit_test.gd
  • Manipulation -> res://addons/grid_building/test/integration/grid_positioner_rotation_integration_test.gd, res://addons/grid_building/test/unit/rotation_reset_on_placeable_switch_test.gd
  • Targeting/preview -> res://addons/grid_building/test/integration/system_interactions/targeting_system_consolidated_tests.gd, res://addons/grid_building/test/positioning/targeting/targeting_integration_test.gd
  • Save/load and runtime resources -> res://addons/grid_building/test/building/placement/placement_report_unit_test.gd, res://addons/grid_building/test/utilities/data/environment_loading_unit_test.gd

Note: The addon should be installed at res://addons/grid_building (not grid_building_dev or other variants).