MADiSON Stlye Drag-Doors

I’ve had issues making a system like this for months. The idea is, you walk up to a door, click and hold LMB, and drag the mouse to open a door. If you move the mouse forward, it opens the door away from the player, and back vice versa. Also, if you move the mouse side-to-side, it will also open the door, based on the players location and rotation relative to the doors location and rotation. Here’s the thing - the math to figure out that last part, seems to not work for certain doors. The doors movement will be inverted, in some cases and not others. For example - Im in front of the door, I drag the mouse backwards, the door moves away from the player (wrong). But then, if I go to the other side, itll work properly. Same idea with the left and right movement. Here’s the very odd thing - the math works fine with the door that comes with the starter content. If I take a static mesh door, export it out, and make sure all of it’s transform match the starter door, it still will not work properly.

A problem in terms of sharing my code, is I’m using code from this asset pack: First Person Story Adventure Template in Blueprints - UE Marketplace

So I don’t want to post there code publicly. But basically, the math used to determine if your infront/behind the door, or left or right of the door, basically just varies based on the mesh I’m using.

The overall premise, is when I interact some math is done to determine the players rotation and location relative to the door. Based on that, it determines whether to multiply the input action value of the mouse drag by 1, or -1. However, the math to determine which one to use is not working properly and varying for seemingly no reason.

Also, I want to try and encapsulate the behavior in static mesh components, so I can do things like making cupboards with different combinations of doors and drawers etc.

I cannot find a single youtube tutorial that does what I need. They all involve using physics grabbing which is not what I want. Also, I don’t want to use animation/matinee.

If anyone can give me some guidance on how to achieve a system like this, I will be verry greatful.