# How to Replace the Weapon With a Custom Model in Unreal Engine 5 (Blender to UE5)

#### Summary / Table of Contents

* [Introduction](#introduction)
* [Requirements](#requirements)
* [Find a Custom Weapon Model](#find-a-custom-weapon-model)
* [Blender](#blender)
  * [Open the Weapon Rig in Blender](#open-the-weapon-rig-in-blender)
  * [Import the Model and Clean It Up](#import-the-model-and-clean-it-up)
  * [Fit Scale and Placement to the Reference Weapon](#fit-scale-and-placement-to-the-reference-weapon)
  * [Separate the Magazine Mesh (Optional)](#separate-the-magazine-mesh-optional)
  * [Clean Up Unused Material Slots (Optional)](#clean-up-unused-material-slots-optional)
  * [Skin the Weapon to the Existing Armature](#skin-the-weapon-to-the-existing-armature)
  * [Assign Vertex Groups (Grip Trigger Bolt Etc)](#assign-vertex-groups-grip-trigger-bolt-etc)
  * [Fix Pivot Issues for Moving Parts](#fix-pivot-issues-for-moving-parts)
  * [Fix the Magazine Pivot Point](#fix-the-magazine-pivot-point)
  * [Export FBX From Blender](#export-fbx-from-blender)
* [Unreal Engine 5](#unreal-engine-5)
  * [Import the Custom Meshes Into Unreal Engine](#import-the-custom-meshes-into-unreal-engine)
  * [Import Textures and Fix Common Material Issues](#import-textures-and-fix-common-material-issues)
  * [Create Material Instances](#create-material-instances)
  * [Set Up Weapon Sockets for the Demo (Optional)](#set-up-weapon-sockets-for-the-demo-optional)
  * [Test in the Demo Map and Troubleshoot](#test-in-the-demo-map-and-troubleshoot)
* [Conclusion](#conclusion)
* [Common Issues & Troubleshooting](#common-issues--troubleshooting)

***

## Introduction

***

In this guide, I’ll walk you through replacing the existing gun model in the project with a custom one.

You can use pretty much any weapon 3D model, but you’ll get the best results when the new model’s overall shape and proportions match the weapon you’re replacing. That keeps the animations looking believable and helps prevent hand clipping.

<figure><img src="/files/u5xplsEKn4oEqLUP6FqU" alt=""><figcaption></figcaption></figure>

For this walkthrough I’m replacing the [**assault rifle**](https://www.fab.com/listings/1ae386ab-4a40-4a0f-ac17-621e2d9d1028), but the same workflow applies to any other weapon. You’ll prep and skin the mesh in Blender, then import it into Unreal Engine 5 (UE5) using the existing weapon skeleton.

***

## Requirements

***

* Blender 4.5 LTS or later (earlier versions may work, but I haven’t tested them).
* A custom weapon model (FBX works great).
* An Unreal Engine project with the Tactical FPS animations pack installed.
* The Blender rig/source files for the weapon you’re replacing.

{% hint style="info" %}
If you’re not sure where to find the Blender source files, check the product’s **Additional files** section on Fab.
{% endhint %}

***

## Find a Custom Weapon Model

***

First, you need a model to work with. I used an assault rifle model created by [Firewarden3D](https://sketchfab.com/Firewarden) (licensed under [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/)).

{% embed url="<https://skfb.ly/oF9QK>" %}

The main thing I’m looking for is similar proportions to the original weapon. A similarly shaped weapon saves you a lot of headache later, because the hands and fingers will naturally line up better with the animations.

<div align="left"><figure><img src="/files/6rRt8XIFNjvsrv6ocKms" alt="" width="563"><figcaption></figcaption></figure></div>

Download the model as an FBX file, then unzip it into a clean folder. After extracting, you’ll usually end up with something like:

* a folder containing the model/source files
* a folder containing the textures

<div align="left" data-with-frame="true"><figure><img src="/files/klS1mwM85Df6nRxfzZ9J" alt="" width="326"><figcaption></figcaption></figure></div>

(This varies a lot depending on the source site.)

***

## Blender

***

### Open the Weapon Rig in Blender

***

Now open the Blender rig/source files for the weapon you want to replace (assault rifle in this example).

If you don't have the source files downloaded yet, you can find them directly on the FAB store page for the specific product that you purchased from us.

After downloading, unzip the files and open the folder.

Inside the `Rigs` folder you’ll find the weapon-specific Blender rig. I would recommend duplicating it before editing, so you can always revert back to it later if something breaks.

<div align="left" data-with-frame="true"><figure><img src="/files/Cff5QW7gc4tD4Vv6wlav" alt="" width="378"><figcaption></figcaption></figure></div>

***

### Import the Model and Clean It Up

***

Open your duplicated rig file. You should see the weapon meshes plus the rig (called an **Armature** in Blender).

<div align="left"><figure><img src="/files/zjVqvP0YsyIyU7h838PU" alt=""><figcaption></figcaption></figure> <figure><img src="/files/3mSYiGoPOR4BBidXAop4" alt="" width="375"><figcaption></figcaption></figure></div>

#### Create a Collection for the Custom Weapon

To keep things tidy, create a new collection for your custom model:

1. Right-click inside the Outliner.
2. Select **New Collection**.
3. Rename it to something like `RIG_CustomRifle`.

<div align="left"><figure><img src="/files/LKnXpH0bxVxiB4lCVTNu" alt=""><figcaption></figcaption></figure> <figure><img src="/files/I6Bo72V4OgWfABZ215tZ" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
You can rename items in Blender by selecting them and pressing **F2**.
{% endhint %}

#### Import the FBX

Go to **File > Import > FBX**, locate the FBX you downloaded earlier, and import it.

<div align="left"><figure><img src="/files/Ly31ZtthNzaMoRFiRb6Z" alt="" width="563"><figcaption></figcaption></figure></div>

#### Clean Up Extra Meshes and Fix Transforms

If you’re lucky, the scale matches right away. Usually it’s a surprise. In many Sketchfab exports, you’ll also get extra meshes (multiple weapons, bullets, display props), plus odd rotation/placement.

Here’s a workflow that tends to be quick and reliable:

* Hide the current weapon meshes by unchecking the box next to its collection.

<div align="left"><figure><img src="/files/JObUi6LpYdoOdr2lr548" alt=""><figcaption></figcaption></figure></div>

* Select everything with **A**.
* Switch to wireframe with **Shift + Z**.

<div align="left"><figure><img src="/files/h4VhmzPDgacasAGmn0Yo" alt="" width="563"><figcaption></figcaption></figure></div>

* Box select with **B**, while holding **Left Shift**, to deselect the parts you want to keep.

<div align="left"><figure><img src="/files/VDUsR7sbIlGSv073Plmn" alt="" width="563"><figcaption></figcaption></figure></div>

* Delete the remaining selected parts with **X > Delete**.

<div align="left"><figure><img src="/files/wpTZjbAPqKQxCQ7Vgew1" alt=""><figcaption></figcaption></figure></div>

If the weapon comes in as multiple separate objects, I usually join them into one mesh to make scaling and positioning easier:

* Select the parts and press **Ctrl + J**.

<div align="left"><figure><img src="/files/qR3IL7YKpyGTcsR1v27x" alt="" width="563"><figcaption></figcaption></figure></div>

Then reset the imported model’s transforms:

* Reset rotation: **Alt + R**
* Reset location: **Alt + G**

<div align="left"><figure><img src="/files/8Lg5WVTGHfHoEkk94t8I" alt=""><figcaption></figcaption></figure></div>

***

### Fit Scale and Placement to the Reference Weapon

***

Now we match the custom model to the weapon we’re replacing.

1. Re-enable the reference weapon by ticking the checkbox next to its collection.
2. Move the custom model with **G** and rotate with **R** until it lines up as closely as possible.

<div align="left"><figure><img src="/files/xuEDg9Ydy2FAXse9kIbS" alt="" width="563"><figcaption></figcaption></figure></div>

If the weapon is facing the wrong direction, a quick flip is:

* Select the model, press **R**, then **Z**, then type `180`.
* This will rotate the model 180 degrees on the Z axis.

<div align="left"><figure><img src="/files/9pmlsW9HeTZqjtrT9vgF" alt="" width="563"><figcaption></figcaption></figure></div>

It won’t be perfect (and that’s normal). Focus on the parts the hands interact with the most:

* **Grip** (right hand is placed here)
* **Trigger + trigger area**
* **Magazine** (left hand will grab it)
* **Handguard / barrel** (left hand placement in idle poses)

<div align="left"><figure><img src="/files/QdxuozpqpF0LCrZKPqN2" alt="" width="563"><figcaption></figcaption></figure></div>

I usually start by matching the trigger area first, then adjust from there.

When you’re happy, apply transforms:

* Select the model and press **Ctrl + A > All Transforms**

<div align="left"><figure><img src="/files/mDvGPumPSfVllAu64i7I" alt="" width="563"><figcaption></figcaption></figure></div>

That sets location/rotation to `0,0,0` and scale to `1,1,1`.

Then rename the mesh to something clear, like `SK_CustomRifle` (`SK` = skeletal mesh).

***

### Separate the Magazine Mesh (Optional)

***

This step is optional, but I recommend it. It makes the magazine easier to tweak later (and the included demo logic expects the magazine to be its own mesh).

To separate the magazine:

* Select the weapon mesh and enter **Edit Mode**.
* Hover the magazine and press **L** to select linked vertices.

<div align="left"><figure><img src="/files/QgSFtKFxtVELVT6JBn7g" alt="" width="563"><figcaption></figcaption></figure></div>

* Make sure you also select internal parts (bullets/spring/etc), if your model has them.
* Press **P** and choose **Selection**.

<div align="left"><figure><img src="/files/hoOvIU4KpSNV0X9DIjk3" alt="" width="556"><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="/files/sJ9alElLkUP5SXGf3Cc6" alt="" width="563"><figcaption></figcaption></figure></div>

This turns the magazine into its own object.

Rename it to something like `SM_CustomRifle_Magazine` (`SM` = static mesh).

***

### Clean Up Unused Material Slots (Optional)

***

Totally optional, but it keeps things clean (and I’m also the type who can’t ignore a messy material list).

Select the mesh, open the Materials tab, then choose **Remove Unused Slots**. Blender will remove any material slots that aren’t actually assigned to the mesh.

<div align="left" data-with-frame="true"><figure><img src="/files/22WHX0p3eM3vfadyuKWv" alt=""><figcaption></figcaption></figure></div>

***

### Skin the Weapon to the Existing Armature

***

Now we assign (skin) the custom model to the skeleton.

<div align="left"><figure><img src="/files/VaVhWmSO8eU4Yb76Wi6h" alt=""><figcaption></figcaption></figure></div>

Enable the **Deform Bones** collection if it’s hidden.

These are the bones that will be exported to Unreal Engine. Controller bones are mainly there to make the rig easier to animate.

<div align="left"><figure><img src="/files/vnaHRZHEky8wTeyqgrGT" alt="" width="332"><figcaption></figcaption></figure></div>

To bind the custom gun to the armature:

* **Shift**-select the weapon mesh.
* **Shift**-select the armature (second).
* Press **Ctrl + P** and choose **With Empty Groups**.

<div align="left"><figure><img src="/files/o3MbqoK3O4AAbNEyoMgV" alt=""><figcaption></figcaption></figure></div>

This will:

* add an **Armature** modifier to the mesh
* create vertex groups for each deform bone

***

### Assign Vertex Groups (Grip Trigger Bolt Etc)

***

Some bones are only used as sockets/reference points, so you don’t need vertex weights for everything. You can delete vertex groups by selecting them and pressing the minus button.

Common groups you’ll want to keep (names vary per weapon of course):

* `Grip`
* `Trigger`
* `Bolt`
* `Dust_Cover`
* `Charging_Handle`
* `Magazine_Release`
* `Fire_Selector`

#### A Simple Weighting Workflow

My usual workflow is:

* In **Edit Mode**, select the whole mesh.

<div align="left"><figure><img src="/files/BHNYHCmyObimNM1Tzz9s" alt="" width="563"><figcaption></figcaption></figure></div>

* Assign everything to `Grip` first. This gives you a solid baseline.

<div align="left" data-with-frame="true"><figure><img src="/files/h1cLjVmsL0EEp26L9PNM" alt="" width="341"><figcaption></figcaption></figure></div>

* For a moving part (example: trigger), select just that part (hover it and press **L**).

<div align="left"><figure><img src="/files/y1vnzraTU5wjaAgP4X56" alt="" width="563"><figcaption></figcaption></figure></div>

* In `Grip`, click **Remove** to unassign that selection from the grip bone.
* Select the part’s real group (example: `Trigger`) and click **Assign**.
* This transfers the influence from the grip bone to the trigger bone for the selected vertices on the mesh.
* Repeat this process for each moving part you want animated by a specific bone.

#### Test Your Weights

To test, select the armature and switch to **Pose Mode**.

Move/rotate the bones and watch the mesh. Ideally you should not see obvious stretching, popping, or parts moving with the wrong bone.

<div align="left"><figure><img src="/files/8XPO8b4KLZHCPs3VZGZL" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Fix Pivot Issues for Moving Parts

***

During testing, you might notice some parts aren’t rotating cleanly around their intended pivot (trigger, fire selector, dust cover, etc).

That usually means the bone pivot isn’t aligned well with the new custom mesh.

Here’s a quick fix approach:

* Re-enable the **Deform Bones** collection (if you hid it).

<div align="left"><figure><img src="/files/sVHyGOLoIfMB860rTcc3" alt="" width="323"><figcaption></figcaption></figure></div>

* Enable **Names** under **Viewport Display** so you can see bone names.

<div align="left"><figure><img src="/files/lKhMDDFCzwpkH4SdOMWf" alt="" width="297"><figcaption></figcaption></figure></div>

* For a part like the fire selector, select both the deform bone and its controller bone (example: `Fire_Selector` and `CB_Fire_Selector`).

<div align="left"><figure><img src="/files/BH2x8hZcWqutIWSgMhyQ" alt="" width="312"><figcaption></figcaption></figure></div>

* Move them so the bone pivot (bone endpoint) sits right in the “hinge” center of the mesh.

<div align="left"><figure><img src="/files/VPo1w6E3srHP96TLT6NV" alt="" width="563"><figcaption></figcaption></figure></div>

Repeat for other parts like the trigger. Then go back to **Pose Mode** and test again.

<div align="left"><figure><img src="/files/J5LJw6Pz4GWX3lPqPQNQ" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Fix the Magazine Pivot Point

***

If the magazine mesh pivot is in the middle, it won’t attach nicely to the magazine bone. We want the magazine mesh origin aligned to the magazine bone, so attachments and animations behave predictably.

* In **Pose Mode**, select the magazine bone.
* Press **Shift + S** and choose **Cursor to Selected** (this moves the 3D cursor to the bone).

<div align="left"><figure><img src="/files/bFnL4jFQDOrZwuNWLh4w" alt="" width="563"><figcaption></figcaption></figure></div>

* Switch to **Object Mode**, select the magazine mesh.
* Go to **Object > Set Origin > Origin to 3D Cursor**.

<div align="left"><figure><img src="/files/Aa7ZxS4Nt0PFbbiVXjc9" alt=""><figcaption></figcaption></figure></div>

Now the magazine pivot should align with the magazine bone.

<div align="left"><figure><img src="/files/KHe3Q5bSkIChVZUDsb1W" alt="" width="563"><figcaption></figcaption></figure></div>

You can sanity check it by adding a **Copy Transforms** constraint on the magazine mesh and targeting the `Magazine` bone on the armature. If it lines up perfectly, you’re good.

<div align="left"><figure><img src="/files/HkKv7U3YdEBsMneXzlcL" alt="" width="318"><figcaption></figcaption></figure></div>

Before export, remove/disable the constraint and make sure transforms are applied.

***

### Export FBX From Blender

***

At the end you should have two FBX exports:

* receiver as a **skeletal mesh** (example: `SK_CustomRifle.fbx`)
* magazine as a **static mesh** (example: `SM_CustomRifle_Magazine.fbx`)

#### Export the Magazine (Static Mesh)

* Select the magazine mesh in **Object Mode**.
* Disable any temporary constraints (like **Copy Transforms**) so it exports cleanly.
* Go to **File > Export > FBX** and export.

These are the export settings that I use for static meshes:

<details>

<summary><strong>Static Mesh Export Settings</strong></summary>

{% hint style="info" %}
You can save these export settings as an **Operator Preset** in Blender to re-use it later.
{% endhint %}

<div align="left"><figure><img src="/files/shcF8xtHO3EHfM64IyDk" alt=""><figcaption></figcaption></figure></div>

</details>

#### Export the Receiver (Skeletal Mesh)

* Select both the receiver mesh and the armature.
* Go to **File > Export > FBX** and export.

These are the export settings that I use for skeletal meshes:

<details>

<summary><strong>Skeletal Mesh Export Settings</strong></summary>

<div align="left"><figure><img src="/files/jyvfOOPXlxcFpj3sFHec" alt=""><figcaption></figcaption></figure></div>

</details>

You should now have both FBX files ready to import into Unreal Engine.

<div align="left" data-with-frame="true"><figure><img src="/files/6UMtM98yxvJVSGNBMD1a" alt="" width="368"><figcaption></figcaption></figure></div>

***

## Unreal Engine 5

***

### Import the Custom Meshes Into Unreal Engine

***

Now we’ll set everything up in Unreal Engine. This guide assumes you’re testing using the included assault rifle demo setup, but the same import steps apply to any weapon.

#### Create a Clean Folder Structure

Create a folder for the weapon (example: `CustomRifle`). Inside it, create:

* `Materials`
* `Meshes`
* `Textures`

<div align="left" data-with-frame="true"><figure><img src="/files/Kj1DqnEQQLqxdwcOtqWd" alt="" width="515"><figcaption></figcaption></figure></div>

#### Import the Magazine Mesh

1. Open the `Meshes` folder.
2. Right-click and choose **Import to...**
3. Import the magazine FBX first.

Leave most settings as default. Just make sure you’re not importing textures or auto-creating materials if you don’t want that.

<div align="left" data-with-frame="true"><figure><img src="/files/1UMIKgutalEjjOOWtnbH" alt="" width="562"><figcaption></figcaption></figure></div>

{% hint style="info" %}
If faces look invisible in Unreal, your normals might be flipped. Fix it in Blender (flip normals) and re-export.
{% endhint %}

#### Import the Receiver Skeletal Mesh

Import the skeletal mesh FBX. The most important part is selecting the correct weapon skeleton on import, otherwise your animations won’t play without retargeting.

For the assault rifle, that skeleton is `SKEL_TFA_AR`. Other weapons follow the same naming pattern: `SKEL_TFA_WeaponName` (example: `SKEL_TFA_Pistol`).

<div align="left"><figure><img src="/files/K9mtT7e1CU7JyrYWTqdB" alt=""><figcaption></figcaption></figure></div>

Unreal will also generate a Physics Asset. It’s fine to leave it as-is for now.

<div align="left"><figure><img src="/files/dNEmqMbOiwBH3IIgnmD2" alt="" width="563"><figcaption></figcaption></figure></div>

After import, open the skeletal mesh and quickly verify that the bones drive the correct moving parts (trigger, bolt, etc).

<div align="left"><figure><img src="/files/Gte7Xft4cGv9pmnR4EhD" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Import Textures and Fix Common Material Issues

***

Most downloaded models come with textures. Import them by dragging them into your `Textures` folder.

<div align="left" data-with-frame="true"><figure><img src="/files/H20GtAk8J5d3yQrbT7G8" alt="" width="563"><figcaption></figcaption></figure></div>

#### Fix Normal Maps (OpenGL vs DirectX)

Unreal expects normal maps created for **DirectX**. Many online assets use **OpenGL** normals if they were not specifically created for use in Unreal.

If the shading looks “inside out" after assigning the textures in a material, open the normal map texture and enable **Flip Green Channel**.

<div align="left" data-with-frame="true"><figure><img src="/files/94gYIFxCgdW8cJIesHtV" alt="" width="563"><figcaption></figcaption></figure></div>

#### Disable sRGB on Data Textures (Roughness/Metallic/AO)

Make sure roughness, metallic, and AO textures have **sRGB** disabled. Open each texture and uncheck **sRGB** if it’s enabled.

<div align="left" data-with-frame="true"><figure><img src="/files/Uh32NDZ7EtllvtplZRDR" alt=""><figcaption></figcaption></figure></div>

***

### Create Material Instances

***

Now let’s create the actual weapon materials.

* In the `Materials` folder, right-click and choose **Material > Material Instance**.
* Name it something like `MI_CustomRifle` (`MI` = material instance).

<div align="left" data-with-frame="true"><figure><img src="/files/aDnQoGfbyDFIUdAqbFVc" alt="" width="563"><figcaption></figcaption></figure></div>

* Open it and set the Parent to `M_TFA_Weapon_Master`.

<div align="left" data-with-frame="true"><figure><img src="/files/efoK9Oea5CSMJTJuhg42" alt="" width="563"><figcaption></figcaption></figure></div>

If you have separate roughness and metallic textures, uncheck **Use Packed ORM Texture** so you can plug them in separately. Then assign each texture to its correct slot.

<div align="left"><figure><img src="/files/0zv5hJhPAAGdtqlomWbf" alt=""><figcaption></figcaption></figure> <figure><img src="/files/4w7XupUFwkifr0rVMEGX" alt="" width="375"><figcaption></figcaption></figure></div>

If your model has bullet textures, duplicate the material instance and suffix it with `_Bullet` (example: `MI_CustomRifle_Bullet`), then assign the bullet textures there.

<div align="left" data-with-frame="true"><figure><img src="/files/yvvWrXiQc7dS2tZMHTgD" alt="" width="375"><figcaption></figcaption></figure></div>

Finally, apply the material(s) to your custom weapon mesh and preview it.

<div align="left"><figure><img src="/files/yg7Q6Sf2yfuAUummrQM8" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Set Up Weapon Sockets for the Demo (Optional)

***

Only do this if you’re using the included demo logic. If you’re using your own gameplay/attachment system, you can skip it.

Open the receiver skeletal mesh, go to the skeleton hierarchy, and create these sockets:

* `SOCKET_Muzzle` (muzzle flash / VFX spawn point)
* `SOCKET_Laser` (laser attachment spawn)
* `SOCKET_Grip` (grip attachment spawn)

<div align="left" data-with-frame="true"><figure><img src="/files/T75GPo6qBSYhUI4rpyox" alt=""><figcaption></figcaption></figure></div>

Place them where you want the attachment or VFX to appear. You can set a preview mesh on a socket, like a grip mesh, to make placement easier.

<div align="left"><figure><img src="/files/2FoG6bEePYvWaQssyOO2" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Test in the Demo Map and Troubleshoot

***

Now for the fun part: test it in the demo map.

* Open the weapon data asset for the weapon you’re replacing (example: `DA_TFA_AssaultRifle`).

<div align="left"><figure><img src="/files/Bwvb14UGKv25QgdTh9In" alt="" width="563"><figcaption></figcaption></figure></div>

* Assign your custom receiver skeletal mesh and your custom magazine mesh in their slots.

<div align="left"><figure><img src="/files/ugLDankTzh6rKd1iSwJw" alt="" width="296"><figcaption></figcaption></figure></div>

* Remove meshes you don’t need. Keep the defaults you still want (example: bullet, casing, laser, grips).
* Press **Play** in the demo map!

<figure><img src="/files/johlUikcZQk8lOA3fNbr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/kcMFvUojFpiZEIWWzXEB" alt=""><figcaption></figcaption></figure>

***

## Conclusion

***

That’s it! Once you’ve done this a couple of times, it starts feeling way more straightforward (even if it’s still a little bit tedious).

If anything looks “off,” it’s almost always one of these:

* Forgetting to apply transforms in Blender before exporting
* Missing sockets
* Incorrect weight painting (for example multiple bones influencing the same part)
* Flipped normals on the exported meshes, making faces appear invisible in engine

***

## Common Issues & Troubleshooting

***

If the demo setup behaves oddly (attachments spawning at origin, no muzzle flash, etc), it’s usually a socket issue. Double-check socket names and placement.

#### Left Hand Clipping Through the Gun/Grip Area

A super common issue when replacing existing weapon models is that the left hand will clip through the model.

If you notice hand clipping with your custom model, check out this guide:

[How to Fix Left-Hand Clipping in Unreal Engine 5](/product/tactical-fps-animation-packs/guides-and-tutorials/editor/how-to-fix-left-hand-clipping-in-unreal-engine-5.md)

<div align="left"><figure><img src="/files/QvqQiwuxcNkl3P1X4jeM" alt="" width="282"><figcaption></figcaption></figure></div>

#### No Bullets in Magazine When Doing Mag Check/Reloading

If the magazine bullets don’t populate, it’s because the demo expects bullet sockets on the magazine mesh. By default, it scans socket names by a prefix (commonly `Bullet_`), then fills bullet meshes into those sockets.

So you typically want names like:

* `Bullet_001`
* `Bullet_002`
* `Bullet_003`
* And so on

The exact prefix is config-driven. If you want to be 100% sure, check your weapon config and the magazine logic:

* [Base Config (BP\_TFA\_BaseConfig)](/product/tactical-fps-animation-packs/guides-and-tutorials/reference/blueprints/base-config-bp_tfa_baseconfig.md)
* [Base Magazine (BP\_TFA\_BaseMagazine)](/product/tactical-fps-animation-packs/guides-and-tutorials/reference/blueprints/base-magazine-bp_tfa_basemagazine.md)

Add as many sockets as you want. For placement, use the original magazine mesh as a reference:

1. Open your weapon data asset (example: `DA_TFA_AssaultRifle`).
2. Find the magazine mesh field.
3. Open that static mesh and inspect how its `Bullet_*` sockets are placed.

If you want a quick shortcut, you can also replace the old magazine by reimporting:

1. Duplicate the old magazine mesh first (recommended).
2. Right-click the duplicate and choose **Reimport with New File**.

That replaces the mesh completely, so keep backups.

Once the magazine is set, reassign it in your weapon data asset and test again.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.infimagames.com/product/tactical-fps-animation-packs/guides-and-tutorials/editor/how-to-replace-the-weapon-with-a-custom-model-in-unreal-engine-5-blender-to-ue5.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
