Quick answer: Construct 3 Board Behavior tracking a stale grid cell for an object that has moved? The Board reads cells on placement — manual moves don’t refresh it. Call SetXY through Board.SetCell or trigger PinTo.
An RPG grid where the player moves via setX/setY shows the player still at the start cell. Board didn’t notice the position change.
Use Board Actions
Don’t set X / Y directly — use Board’s Set Cell action. It updates internal state, then moves the sprite to the cell center. Board.CellAtX / CellAtY stay consistent.
Repaint After External Move
If you must use external positioning (e.g. a tween moves the sprite), call Move To Cell with the same target cell at the end. Forces a refresh.
Board vs Grid
Board is an event-aware grid. Grid behavior is simpler — just position quantization. Pick Board for turn-based gameplay; Grid for camera snapping.
Verifying
Board reports the correct cell after any movement, whether by Board actions or external moves.
“Board syncs on its own actions. External moves need a refresh call.”
Standardize on Board actions for movement — mixing Board moves with raw position changes is how state drift starts.