How to implement characters blocking other characters from pushing open a door

I want a system where one heavy person can block a door that a light person is pushing. However, two light people can team up to push the door, opening the door and pushing the heavy person away from it, unless the heavy person is actively pushing against it as well. Sort of like a reverse tug of war where one side is trying to push the door open while the other tries to keep it closed.

So far, using the Physics Constraint component with a door mesh works for a single person to use. It opens when a player pushes it and closes by itself using physics and an angular motor which is great. However, I cannot get the functionality I described above.

A single character, by default, can simply stand in front of the door and nothing can move them out of the way. Changing the Mass in the CharacterMovementComponent does nothing. Increasing the Push Force Factor does nothing until increasing it to the point where the door just clips straight through the “blocking character” without pushing them out of the way. The door will also jitter erratically which is fine but not desired.

I am not sure if there is a simple way of implementing this. I am also not sure if relying on the physics system and the CharacterMovementComponent is the right way to go. Any advice would be highly appreciated.

Hello I’m new to gd but I came across this problem that was related to physics and velocity. Try to implement it where the two or more characters start pushing slowly but builds up momentum. Also all characters should be affected by physics applied on their upper body part(like a tree, the heavier top part leans or falls first) ,in this case the bigger character applies his (physics) to block one side of the door. But with enough force from the opposing side, the bigger character topples over away from said force.


Thanks for the reply, but more details would be appreciated. Have you managed to make this work with the built in ACharacter class? How exactly would you build up momentum using the physics engine, and how would you only apply it to a character’s upper half while also influencing their whole body?

Hey unfortunately I’m a noob in UE4 and wish I knew more to help you because I too want to implement this mechanic in a game. I have used this video(https://youtu.be/tNnbYu6SPqQ?si=uLXxe2LtMlc3tcGc)that helped get me started on the movement part, together I used it to run through a physics door but haven’t figured out the upper physics part though. I believe something like IK can help with hand placement but I’m not knowledgeable at all there.

I may have to compromise because I don’t think there’s an easy way to get this done without some serious work to iron out the bugs with having two opposing forces acting on one physics object without lots of jittering. But I’ll keep this open in case someone has any ideas!

Ok I understand that it can be frustrating but please don’t give up bro! I’ve found this video on something called QTE(Quick Time Event), it kinda demonstrates the ‘opposing’ mechanic you mentioned, maybe it can be the start to the answer you’re looking for.