Here’s an early copy of the push/pull replacement so you can get started. It isn’t the official release post yet, that’ll come later with the full writeup.
Two files, both needed:
BazPushPullAction.gd (50.8 KB)
BazIsPushedCondition.gd (5.0 KB)
The action is a replacement for the native Push/Pull Object. Instead of feeding velocity into the movement pipeline (which is what silently freezes stacked objects), it moves the target directly with a proper collision sweep, so it stops clean at walls and doesn’t zero out when something is standing on top.
The Mode dropdown is the main choice:
Contact Push is the classic feel. Anything touching you on the side you’re facing gets pushed. No rectangle needed.
Area Push pushes everything inside a rectangle you define (Rectangle Size + Area Offset). The rectangle rotates or mirrors with your facing. Good for spell knockback type effects.
Area Pull pulls everything inside that same rectangle toward you. Think of it as an ability, not a grab. Anything in the zone gets drawn in and stops at your edge.
Quick notes on the other settings: put your pushable objects in a group and set Target Group to it. Push Speed is in editor px per second. Stacked Slow Rate and Chain Slow Rate control how much speed is kept per stacked rider and per extra box in a row (100 = no slowdown, 0 on Chain Slow Rate gives you the classic one box only feel). Max Push Chain is an optional Sokoban style hard cap. Distance Effect adds near/far falloff for the Area modes.
The condition reads marks the action leaves on whatever it pushed, so it only reacts to this action, nothing else. Put it on a transition on the pushed object and it fires while that object is being pushed (or only when it actually moved, there’s a Check Type option). You can filter by push vs pull and by direction.
Turn on Debug Visualize while setting up, it draws the detection zone and marks what got hit so you can see exactly what the action is doing.
Let me know how it goes and I’ll fold anything you hit into the official post.