This page covers common 6.0 runtime issues and where to inspect first.
Validation always fails
- Verify entity has
PlaceableComponent,GridPositionComponent, andPlacementRequestComponent. - Ensure placeable template includes a valid collision shape when collision rules are enabled.
- Inspect
request.get_validation_issues()for exact failure reasons.
Preview not visible or unstable
- Confirm
PlacementComponent.is_placingremains true. - Confirm request is active and target position is updating.
- Verify scene contains cursor/manipulation parent structure used by preview reparenting (
Cursor2D+ManipulationParent).
Placement never executes
- Ensure request reaches a successful validation result before execution.
- Confirm
PlacementExecutionSystemis added to world. - Check for lockouts:
placement_attempts/is_placement_lockedinPlacementComponent.
Save/load mismatch
- Persist GECS-serialized entities/components instead of ad-hoc node state.
- Keep persistent fields as
@exportcomponent properties. - Re-test with integration patterns from serialization tests.
Manipulation actions don’t apply
- Ensure manipulation systems are registered in runtime (
Movement,Rotation,Placement,Removal). - Confirm entity has
ManipulationComponentand required supporting components. - Test with
ManipulationSystem.try_move/try_rotate/try_place/try_demolishto isolate UI wiring issues.