Granny or Evil Nun Pick up mechanics

Hello. I want to make a mechanic like in Granny or Evil Nun, where by pointing the center of the screen at an object you can take the object in your hands and walk with it. And when you press a button or pick up another object, the first one is thrown away. There are no guides on how to do this. Please help me do this.

Funny you say that, there’s a recent post that I interacted with which is exactly about this topic :grin: and there are actually many tutorials online too! But I’m glad you’re comfortable enough to be a part of the community :innocent:

Now, there are certainly many ways to achieve this, but let me tell you the most straightforward and easy to implement one. You can get a “Line Trace by Channel” node and plug in the player’s location to the start pin. Then get the player’s forward vector, multiply it by a big number, then plug it into an addition node. That node should at least have 2 input pins, so go ahead and plug the player’s location to the second one, and plug the result into the end pin of the line trace node. Right click on the “Out Hit” pin of the line trace node and split it to expose it’s components, or you can drag a “Break Hit Result” node out of it to achieve the same thing. Connect the line trace node’s white execution pin into an “Is Valid?” node (with the question mark) and connect the “Hit Actor” pin of the hit results into it’s input object pin. The mechanic for detecting the object which the player’s looking could be done in different ways as well, but those are also going to give the same results. However now, you should decide how to handle the picking up mechanism. Do you want to change the item’s location by fixing it to the player? Do you want to destroy it and have the player walk around with a 3D model that doesn’t have any functionality? Or do you want it to be completely virtual, by again, destroying it and placing it’s image on a widget like HUD? And it doesn’t even and there, there are literally countless options here!

About placing it, you can use the “Spawn Actor” node if you’re gonna destroy it or you can always set it’s new location to where the player’s looking if you’re just gonna have it move with the player. You can also trigger this function when a new item gets picked like you want. Or if you want it to be thrown, you can spawn it if you destroyed it previously, enable physics and achieve that quite easily.

I hope I was clear, you can of course find more fancy and efficient ways of doing the same thing, but like I said, I wanted to provide you the most basic way imaginable. Hope this helps! :innocent:

I know about line trace and I made it so that it can be released, but there is still a question of how to make the pickup and throw the item.

Like I said, the answer to that question varies to your preference as I stated here:

And I’ve already explained the placing down / throwing mechanism in my third paragraph.

So please follow up by providing these necessary informations, or where you struggle on the disposing part

If your objects are simulating physics, any old Physics Handle tut will do.


For simpler, non-physical interactions:

  • trace → message hit Actor
  • check if you have an actor attached
  • if so, throw the old one
  • if not, attach Hit Actor / Component to socket

Which part of the above do you need help with?

Thanks, but I have a question. I tried to attach an item to the player using the node attach actor to component, but it didn’t work. Any advice on this? The item should disappear from the ground and appear on the player.

Here’s a video: https://m.youtube.com/watch?v=o5U7ejVp-gA

Thanks. But if my player don’t have skeletal mesh? Is there any way to add socket without skeletal mesh?

Is that a first person game? In that case, you can plug in the camera or whatever you want really to the target pin. Also about the socket part, you can use many different ways to have an actor move alongside the player, that socket approach in that video was just a way to make it move with the head. So you can simply set it’s relative location to a desired place around the player.

Here’s an example setup, perhaps it will inspire you:

  • player interaction:

  • pick up and throw:

  • results:

  • project link UE5 v5.3:

Massage the details as you see fit, socket is optional. Things can be done much better, ofc - all depends on the desired features.

Good Luck!

I repeated everything as in the video, except for the socket names, but nothing works. The BP_FirstPersonCharacter has a scene component called item grip. And the green key is what should appear in this scene component, But the key does not appear.