Hi, so I’m trying to make a grab and throw mechanic for a game for class this week, but anything I’ve tried doesnt give the results i want. I wanna be able to pick up an item, throw it, then be able to pick it up again if i need to, but so far, I’ve only gotten it to work like the Half Life Gravity Gun instead. Anyone have ideas on how I can get the desired effect? (The game is first person, so I’d want the item to sit in the bottom right corner)
A Physics Handle will always feel like a gravity gun: it springs the object to a point in front of the camera and keeps simulating. For “pick up, sit in the bottom right, throw, pick up again” you want to attach it, not hold it with the physics handle.
-
On the camera (or the first person mesh), add a Scene Component named HoldPoint. Put it in camera space at the bottom right, something like X = 40, Y = 25, Z = -15. +Y is right, -Z is down. Nudge it until the mesh sits where you want. That offset is the whole “bottom right corner” part.
-
Interact with a short line trace from the camera. If you are not holding anything and you hit a grabbable mesh:
- Set Simulate Physics to false
- Attach Actor to Component, parent = HoldPoint, snap to target, keep world scale
- Store the actor in a Held Actor variable
While it is attached it will not swing, and it will move with the look.
- Throw:
- Detach From Actor, Keep World
- Set Simulate Physics back to true
- Add Impulse along camera forward times your throw strength. Enable Vel Change so mass does not make every prop feel different. A little +Z keeps it from nosediving.
- Clear Held Actor
- Pick up again is just the same trace. Two things usually block the second grab: collision was left on No Collision, or the actor is still attached so the trace hits yourself. Restore Query and Physics before you detach, and ignore Held Actor while you are holding it.
Skip the Physics Handle for this. Use it only if you later want the float-in-front gun. Attachment plus one impulse is the held-then-throw version, and the same actor can be grabbed again as soon as it is simulating.


