UE5 Weapon Pickup System

UE5 Weapon Pickup System

A weapon system starts failing long before shooting logic if your pickup and equip flow is messy. If the player cannot approach a weapon, get clear feedback, press a key, and equip it reliably, the rest of the combat system is already built on weak ground.

In this Unreal Engine 5 tutorial, you will build a complete weapon pickup and equip system from scratch using Blueprints and Enhanced Input. The player will walk up to a weapon in the level, see a pickup prompt, press E, and instantly equip the weapon in hand.

This tutorial also sets up the foundation for the next systems in the series, including aiming, animation blending, line tracing, shooting, health, destruction, and deeper AI combat behavior.

Watch the video on YouTube: UE5 Weapon System from Scratch Pickup and Equip

Subscribe for more Unreal Engine tutorials: Rambod YouTube Channel

What You Will Build

By the end of this tutorial, you will have:

  • A rifle skeletal mesh attached to the player character
  • A weapon pickup actor placed in the level
  • A floating pickup prompt widget that appears when the player gets close
  • An overlap-based detection system for pickup range
  • An Enhanced Input action mapped to the E key
  • A Blueprint equip flow that makes the weapon appear in the player’s hand and removes it from the world

This is not the full combat system yet, but it is the correct base for one. Build this part cleanly now, or you will be patching bad logic later.

Why Start with Pickup and Equip First

A lot of beginners want to jump straight into firing, recoil, and hit logic. That is backward. First, the weapon has to exist in the player flow properly. The player needs to discover it, interact with it, equip it, and transition into an armed state. That state change is what the rest of the system depends on.

A good pickup system also forces you to think modularly. You need a dedicated pickup actor, clear overlap logic, a simple UI prompt, and a reliable way for the character blueprint to know whether a weapon can be equipped. That is exactly the kind of discipline that makes bigger systems manageable.

Step 1: Add the First Person Content Pack and Prepare the Rifle Mesh

To begin, you need a weapon mesh. In this tutorial, the rifle from the Unreal Engine 5.6 First Person template is used.

In the Content Drawer, right-click and choose:

Add Feature or Content Pack

Then select the First Person content pack and add it to the project.

Once imported, a new Weapons folder will appear. Inside it, you will find several weapons, including a grenade launcher, pistol, and rifle. For this setup, the rifle is used as the main weapon example.

The exact weapon does not matter much. The logic will work for pistols, shotguns, launchers, or any other weapon type later. What matters is learning the workflow correctly.

Step 2: Prepare the Third Person Character to Hold the Rifle

Open:

Third Person > Blueprints > BP_ThirdPersonCharacter

In the Components panel, select the main character mesh, then add a new Skeletal Mesh component. Rename it:

Rifle

In the Details panel, assign the rifle skeletal mesh asset to this new component.

Next, attach the Rifle component to the character’s right hand by assigning the parent socket:

hand_r

At this point, the rifle is attached, but it will probably not sit correctly in the hand yet. That is normal.

Step 3: Align the Weapon in the Character’s Hand

To position the weapon more accurately, select the main character blueprint component and enable Pause Anim. This freezes the animation pose so you can adjust the rifle without chasing a moving hand.

Now select the Rifle component again and tweak its Location and Rotation values until it fits naturally in the hand.

Take your time here. A sloppy weapon attachment ruins the look of the whole system. Even if the logic is correct, a badly aligned rifle makes the result feel amateur.

Once the placement looks good, disable Pause Anim again, then compile and save the blueprint. Run the game and verify that the character moves with the rifle attached correctly.

Step 4: Create the Weapon Pickup Blueprint Actor

Now you need a separate actor that will exist in the level as the pickup object.

Create a new Blueprint Class based on Actor and name it:

BP_WepPickUp

Open the blueprint and add a Skeletal Mesh component. Drag it onto the Default Scene Root so it becomes the new root component. Then assign the rifle skeletal mesh to it.

This actor represents the weapon in the world before the player equips it. Keeping it separate from the character-held weapon is the right structure. Do not mash world pickup logic and equipped weapon logic into one messy blueprint if you want your project to stay maintainable.

Step 5: Add a Sphere Collision for Pickup Detection

With the skeletal mesh selected, add a Sphere Collision component. This will define the pickup range.

Set the sphere radius to:

150

This collision sphere is what allows the weapon to detect when the player enters or leaves interaction range. Without this, the pickup system has no clean way to decide when to show the prompt or allow pickup input.

Step 6: Add a Pickup Prompt Widget Component

Still inside BP_WepPickUp, add a Widget component to the skeletal mesh. In the Details panel, change its UI space from:

World

to:

Screen

This is a practical choice for a clean pickup prompt because screen space widgets remain easier to read and avoid some of the visual awkwardness of world-space UI in simple setups.

Create a new widget class from the Widget Class field and save it in a UI folder as:

WBP_PickUp

Step 7: Build the Pickup UI Widget

Open WBP_PickUp. Change the preview mode from Fill Screen to Custom and set the size to:

  • Width: 500
  • Height: 60

Add a Canvas Panel, then place a Text Block inside it.

Set the Text Block anchors to Fill, set all offsets to 0, and enable Size To Content. Then change the displayed text to something like:

Pick Up "E"

Set justification to Center.

This keeps the prompt simple and readable. You can style it later, but at this stage the goal is function first. Do not waste time polishing UI cosmetics while the system is still unproven.

Step 8: Add Rotating Movement to the Pickup Actor

Return to BP_WepPickUp and add a Rotating Movement component. The default settings are enough for this tutorial.

This gives the pickup that classic rotating item presentation seen in many games. It is optional, but it helps make the item more noticeable in the level and gives the pickup some visual life.

Step 9: Create Overlap Logic for Showing and Hiding the Pickup Prompt

In the Event Graph of BP_WepPickUp, add two events from the Sphere Collision component:

  • On Component Begin Overlap
  • On Component End Overlap

Then create a new Boolean variable named:

CanPick

On Begin Overlap:

  1. Cast the Other Actor to BP_ThirdPersonCharacter
  2. Set CanPick to true
  3. Set the Widget component visibility to true

On End Overlap:

  1. Cast the Other Actor to BP_ThirdPersonCharacter
  2. Set CanPick to false
  3. Set the Widget component visibility to false

Also make sure the Widget component starts hidden by default by turning off its visible setting in the Details panel.

This gives you a clean interaction zone. When the player steps in range, the prompt appears. When the player steps away, it disappears. That is the behavior players expect, and it prevents the UI from cluttering the screen.

Step 10: Test the Pickup Prompt in the Level

Compile and save BP_WepPickUp, then drag it into the level and press Play.

As the player approaches the rifle, the pickup prompt should appear. As the player leaves the sphere radius, it should disappear. The weapon should also rotate in place.

If the prompt placement looks wrong, go back to the Widget component and make sure its Draw Size matches the widget size:

  • 500 x 60

This small detail matters. If draw size is wrong, the prompt may look off-center or oddly scaled above the pickup.

Step 11: Create the Enhanced Input Action for Pickup

To let the player actually pick up the weapon, create a new Input Action in your Input folder. Name it:

IA_PickUp

Then open your input mapping context, usually something like:

IMC_Default

Add a new mapping for IA_PickUp and bind it to the E key.

This is where Enhanced Input enters the system. It keeps your interaction logic cleaner and easier to expand later than hardcoding random key checks all over the place.

Step 12: Hide the Equipped Rifle by Default

Go back to BP_ThirdPersonCharacter and select the Rifle skeletal mesh component. In the Details panel, disable its visible setting so the weapon starts hidden when the game begins.

This matters because the weapon should only become visible after the player picks it up. If the rifle is already visible from the start, the whole pickup flow becomes pointless.

Step 13: Build the Pickup Logic in the Character Blueprint

In the Event Graph of BP_ThirdPersonCharacter, add the IA_PickUp Enhanced Input Action Event and use the Started output.

Also add an overlap event from the character’s Capsule Component so the character can detect interaction with the pickup actor.

From the Other Actor pin, cast to:

BP_WepPickUp

After the cast, use an Is Valid node to check that the pickup reference is valid. Then pull the CanPick variable from the pickup blueprint and feed it into a Branch.

Next, create another Boolean variable in the character blueprint named:

Armed

Set it to false by default.

Add another Branch to check whether the player is already armed. If the player is not armed and the weapon can be picked, continue the flow.

Step 14: Equip the Rifle and Destroy the Pickup Actor

Once the branches pass successfully:

  1. Set the Rifle skeletal mesh visibility to true
  2. Set the Armed Boolean to true
  3. Destroy the BP_WepPickUp actor from the level

This is the core equip sequence. The character-held rifle appears, the world pickup disappears, and the player is marked as armed so the system cannot keep equipping the same item repeatedly.

That is exactly the kind of state control you need in every real gameplay system. If you skip the state check, you invite duplication bugs and weird edge cases later.

Important Common Fix in the Blueprint Logic

One easy mistake in this setup is wiring the wrong output pin from the second Branch that checks whether the player is already armed.

The logic must continue from the False output, not the True output. Why? Because the equip sequence should only run if the player is not already armed.

If this is wired incorrectly, the weapon may never appear when pressing E, even though the rest of the system looks right. This is one of those tiny Blueprint mistakes that wastes time because everything seems close to correct while the behavior is still broken.

How the Full Pickup Flow Works

Once everything is connected properly, the system works like this:

  1. The player approaches the weapon pickup actor
  2. The sphere overlap sets CanPick to true and shows the pickup prompt
  3. The player presses E
  4. The input action checks for a valid pickup actor
  5. The system confirms that CanPick is true
  6. The system checks that the character is not already armed
  7. The Rifle mesh becomes visible in the player’s hand
  8. The Armed variable becomes true
  9. The pickup actor is destroyed from the level

This flow is simple, readable, and easy to extend later. That is what you want.

Why This Weapon System Setup Is a Good Foundation

This system works well because it separates responsibilities cleanly:

  • The pickup actor handles world interaction and prompt display
  • The character blueprint handles equip state and actual ownership
  • Enhanced Input handles the interaction trigger cleanly
  • The Armed Boolean prevents duplicate pickup behavior

That structure matters. Later when you add aiming, animation blending, line tracing, ammo, firing, hit reactions, or enemy damage, you need a stable base. This gives you one.

Common Mistakes to Avoid

  • Forgetting to hide the equipped Rifle mesh by default in the character blueprint
  • Leaving the Widget component visible by default on the pickup actor
  • Not matching the widget Draw Size to the actual widget dimensions
  • Skipping the Cast check and letting any overlap trigger pickup logic
  • Connecting the armed branch from the wrong output pin
  • Not setting the Armed Boolean, which can allow repeated pickups or broken states
  • Trying to mix pickup actor logic and character equip logic inside one giant blueprint

What Comes Next in the Weapon System Series

After pickup and equip, the next logical steps are aiming, animation blending, and shooting logic. That usually means working inside the Animation Blueprint, separating upper and lower body motion, creating aiming states, then adding line trace or projectile firing logic.

After that, the system can expand into health, destruction, enemy damage, and full AI combat integration. That is where the series becomes more than just holding a rifle. It becomes an actual gameplay framework.

Conclusion

In this Unreal Engine 5 Blueprint tutorial, you built a complete weapon pickup and equip system from scratch. You imported the rifle mesh, attached it to the player character, created a pickup actor with collision and UI, set up overlap logic, added an Enhanced Input pickup action, and finished the flow by equipping the weapon in hand and destroying the world pickup actor.

This is exactly the kind of modular system you should build early if you want the rest of your combat mechanics to stay sane.

Watch the full tutorial on YouTube: UE5 Weapon System from Scratch Pickup and Equip

Subscribe for more Unreal Engine tutorials: Subscribe to Rambod on YouTube

Frequently Asked Questions

How do I create a weapon pickup system in Unreal Engine 5?

Create a pickup actor with a weapon mesh, collision sphere, and widget prompt, then use overlap logic and an Enhanced Input action to let the player equip the weapon when in range.

Why use a separate pickup blueprint instead of putting everything in the character blueprint?

Because the pickup actor should manage world interaction and prompt behavior, while the character should manage ownership and equip state. Mixing both makes the system harder to scale.

What does the Armed variable do in this UE5 weapon system?

It prevents the player from picking up and equipping the same weapon repeatedly by tracking whether the character already has a weapon equipped.

Why is my pickup prompt always visible?

Most likely the Widget component starts enabled by default. It should start hidden and only become visible when the player enters the sphere overlap range.

Why does pressing E not equip the weapon?

Common causes include a broken input mapping, a failed cast, the CanPick Boolean not being true, or the Armed branch being wired from the wrong output pin.

Can I reuse this system for pistols or other weapons?

Yes. The same overall workflow applies to pistols, shotguns, launchers, and other weapon types. You mainly swap the mesh, socket setup, and later any weapon-specific logic.

Rambod Ghashghai

Rambod Ghashghai

Technical Director & Unreal Engine Educator

Senior systems architect and Unreal Engine technical educator with 11+ years of enterprise infrastructure experience. Director of IT at Tehran Raymand Consulting Engineers and creator of Rambod Dev.

Full profile

Continue Unreal Engine 5 Enemy AI Series – Beginner Blueprint Tutorials

Back to Unreal Engine 5 Enemy AI Series – Beginner Blueprint Tutorials playlist • Lesson 5 of 14

What To Do Next

Keep exploring practical Unreal Engine and systems programming work.

Recommended resource

Recommended for this tutorial

Useful tools selected for this workflow topic.

Share this page

Send it to your network in one tap.

Instagram doesn’t provide direct web share links. We copy your URL and open Instagram.