Quick answer: Construct 3 ScrollTo behavior offsets X / Y not visibly applied? Offsets read each time the parent moves; setting them while the parent is stationary doesn’t move the view.
Setting ScrollTo.X_Offset = 100 while the player is idle doesn’t shift the camera right.
Trigger via Movement
Move the parent by 0 or a tiny amount to re-trigger the scroll update: Player: Set X to Self.X after setting offsets. Cheap nudge.
Use ScrollX / ScrollY Directly
For independent camera control, write to ScrollX / ScrollY system expressions instead of relying on ScrollTo behavior. Direct, no offset trickery.
Per-Frame Update
Each tick, recalculate target and write ScrollX / ScrollY. Bypasses the behavior’s implicit update timing.
Multiple ScrollTo
Multiple ScrollTo behaviors on different objects average their positions. Useful for split-screen-ish “follow group” cameras.
Verifying
Camera offsets apply when set. Both behavior-based and direct-ScrollX paths produce expected positions.
“ScrollTo offsets apply on parent move. Use ScrollX/Y directly for explicit control.”
For polished cameras, drive ScrollX / ScrollY directly — the ScrollTo behavior is fine for prototypes, awkward for tuned cameras.