Help with Pushing Blocks with Blueprint

I’ve been developing a 3D sidescroller in which the player runs constantly; when runs into a movable block, I want him to get into position and begin pushing it. This bit is easy; my issue is trying to get the block to move efficiently as the player continues to push the block, and then have the player stop grabbing onto the block when it collides with a wall.

To give you a visual, here’s a one-minute video showing sort of what I’m going for. The only difference is that I want it to be only one side, obviously, because this is a sidescroller.

Another example would be like in Zelda. I was surprised to see that there are really no tutorials on this; the only ones I found were these:

The problem here is that these blueprints lead to some awful bugs, most of which I cannot fix. So I need a simpler, better way to handle it than what is shown in these tutorials. Does anyone know of a simple, efficient way to set this up?

Create an additional square mesh, with collision set to only overlap. Scale it to cover the areas of your object where you want the player to be able to push.

Track when the player is overlapped with this area, and use it to determine if your player can push, and set your IsPushing variable.

When the player IsPushing, slow the player.

  • If your cube is simulating physics. Then , and also AddForce to the cube.
  • If it isn’t, you can set an updated location based on the player’s movement vector and relative position to the cube (to detect if the player is pushing into the cube or pulling.

I’m going to bump this, since it’s been nearly two weeks without answer.

I know it’s a difficult thing to handle, but if anyone is able to offer some help, I would really appreciate it!