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
- Architecture overview (5.0.3)
- Getting Started (5.0.3)
- Composition + injection (5.0.3) - Initialization and dependency wiring
- Placement Workflow (5.0.3) - End-to-end node-centric placement flow
- Targeting Flow (5.0.3)
- Manipulation: System vs Parent (5.0.3)
- Placement Rules (5.0.3) - Runtime placement validation
- Validation: Configuration (5.0.3) - Configuration validation at startup
- Save and Load (5.0.3)
- Troubleshooting (5.0.3)
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 enforcesis_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_movableis 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).
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).