How to use the Push/Pull tool for objects

Hello,

I am currently creating a push action for boxes using the “Push Object” action. However, the behavior is unstable, as the boxes sometimes push and sometimes do not. Could you please advise on the correct configuration?

My main goal is to ensure that when boxes are stacked vertically, pushing the bottom box also moves the boxes stacked above it simultaneously.

I have attached a sample project. I have configured it so that the Shift key is used for jumping, and holding the input key while facing a box pushes it.

  • With one box: It can be pushed.
  • With two boxes stacked vertically: The behavior is inconsistent. It can be pushed from the left, but pushing from the right causes it to stop midway, or it may not move at all.
  • With three boxes stacked vertically: It cannot be pushed.

testproject_2026-08-17.zip (1.8 MB)

1 Like

Push Object isn’t a contact push, it’s an area of effect. The action projects a shape out from the object running it and every object inside that shape matching the Target Object filter gets the force. There’s no chain reaction, so a box being pushed won’t carry the one sitting on top of it, each box has to be inside the shape itself.

The default Rectangle Size is 10 x 10, a small patch right in front of the player. That covers one box, clips the second depending on your exact Y position, and misses the third entirely.

For the left and right difference I’d look at Shape Direction Type. It defaults to Set Direction Angle at 0, which is a fixed world direction no matter which way the player faces. Try Same Object Direction, and the same for Push Pull Effect Type in Effect Setting, otherwise the shape follows your facing but the force still fires along the fixed angle.

To move the stack together, make the Rectangle tall enough to span all three boxes and set Target Object to Group with your box group. On Contact Object only the box actually touching the player qualifies. I’d also turn Distance Effect off, since Near Rate and Far Rate scale force by distance and the upper boxes would trail the lower ones.

2 Likes

Thank you.

I tried changing the settings you provided, but it didn’t work as expected.

Stage 1: Works normally.
Stage 2: Stage 1 works, but Stage 2 advances prematurely.
Stage 3: Stage 1 does not work, and Stage 2 and above advance prematurely.

Could you please let me know if there are any other settings required or if there are any errors in the current configuration?

■ Current Settings
Execution Action: Push/Pull Object

• Group of the push target (box)

■ Operation
testmovie

I download the project files but I cannot seem to replicate on my end. Anything extra I need to do?

The test project attached initially was before the fix, so please check the following test project.
This reflects the settings of the image pasted above.
Thank you for your cooperation.
testproject_2026-08-19.zip (1.8 MB)

I want to let you know that I have reported the bug you found. I also am working on a custom action that may help you with future push/pull behavior. When it is ready I will post it:

2 Likes

Understood. Thank you for your assistance.

Thank you as well for the custom action. I look forward to its release.

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.

2 Likes

Thank you for your collaboration and support.

I performed some tests on my end. Please note that I did not test all configuration values.

I have also attached the test project I used. The PULL operation is also possible using the Z key.
■ Test Project
testproject_2026-08-22.zip (1.9 MB)

Below are the points that caught my attention. Please review them.

① Gaps appear between objects when pushing multiple objects together
testmovie_sukima

② During “Contact Push,” objects on top also move (is this intended?)
testmovie_contact

The following is the behavior when the “Stop on Slope” setting for BOX objects is turned “On.”
It is unclear how the above settings affect this, but it seems to work correctly when turned “Off.”

③ When pushing two or more layers of objects, the objects sometimes shift
S_testmovie_zureru

④ When pushing objects stacked three or more layers high, they sometimes stop moving midway (is this due to gaps?)
S_testmovie_ugokanakunaru

⑤ Objects shift when pulling them
S_testmovie_pull

Thanks for the in depth testing! I’ll try to fix these things.

2 Likes