How to Install Custom Weapons in FiveM [2026]
fivem

How to Install Custom Weapons in FiveM [2026]

fivevault_fivevault_
10 min readviews
fivemweaponsesxqbcoretutorialcustomizationscriptsaddons

What Are Custom Weapons in FiveM?

Custom weapons are community-made or converted firearm, melee, and equipment models that replace or extend the default GTA V weapon roster on your FiveM server. Unlike vanilla GTA V, custom weapons let you add:
  • Tactical rifles & military-grade firearms
  • Realistic pistols & revolvers with custom animations
  • Suppressed and modded weapon variants
  • Melee weapons — batons, knives, machetes
  • Law enforcement tools — tasers, pepper spray, stingers
  • Prop weapons & roleplay-only items (radios, handcuffs, medkits)

If your scripts define your server's economy and your MLOs define your world, custom weapons define your server's combat identity. They're essential for military RP, gang RP, police RP, and any server where firefights are part of the experience.


Why Add Custom Weapons to Your Server

BenefitWhy It Matters
ImmersionRealistic or themed weapons make every combat scenario feel authentic
Server identityUnique weapon loadouts distinguish your server from stock GTA
Job integrationCustom police, EMS, and gang weapons tie directly into job systems
Roleplay depthProp weapons and tools expand what's possible in non-combat RP
Player engagementCollecting and unlocking unique weapons keeps players invested
Did you know? FiveVault hosts weapon packs and resources tagged by framework compatibility — ESX, QBCore, QBOX, OX Core, and Standalone. Browse all weapon resources →

Prerequisites

RequirementDetails
FiveM serverAny artifact build, 6016+ recommended
Server accessSFTP (FileZilla, WinSCP) or file manager via hosting panel
A weapon resourceDownloaded from FiveVault — all resources are framework-tagged
server.cfg accessTo add the ensure line
Inventory systemox_inventory, qb-inventory, or esx_inventory (for item registration)
txAdminRecommended for resource management and restarts

Step 1: Understand How Custom Weapons Work in FiveM

Custom weapons in FiveM come in two types — it's important to know which one you're installing:

Type 1 — Weapon replacement (skin swap):

Replaces the model and texture of an existing GTA V weapon while keeping its stats and animations.

my-weapon-pack/
├── stream/
│   ├── w_pi_pistol.ydr        ← replaces default pistol model
│   └── w_pi_pistol.ytd        ← replaces default pistol texture
└── fxmanifest.lua
Type 2 — Addon weapon (new weapon hash):

Adds an entirely new weapon with its own weapon hash, name, and stats. Requires framework registration to give to players.

my-addon-weapon/
├── stream/
│   ├── w_custom_taser.ydr
│   └── w_custom_taser.ytd
├── data/
│   └── weaponarchetypes.meta
│   └── weapons.meta
│   └── weaponanimations.meta
└── fxmanifest.lua
Pro tip: Replacement weapons are easier to install — they work automatically once streamed. Addon weapons require additional metadata registration and framework config. FiveVault's weapon tags will tell you which type you're downloading.

Step 2: Download Your Weapon Pack

Head to FiveVault and pick a weapon pack. Once downloaded, extract the .zip or .rar. Check for the folder structure shown in Step 1 to confirm whether it's a replacement or addon weapon.

Pro tip: Always check the framework tag before downloading. A weapon pack tagged "Standalone" works on any server. One tagged "ESX" or "QBCore" requires framework-specific registration in your inventory system.

Step 3: Import the Weapon Metadata (Addon Weapons Only)

If your weapon pack is an addon weapon (has a data/ folder with .meta files), you need to declare these in fxmanifest.lua. Open the manifest and confirm these data files are registered:

lua
fx_version 'cerulean'
game 'gta5'

description 'My Custom Weapon Pack'
version '1.0.0'

data_file 'WEAPONARCHETYPES_FILE'  'data/weaponarchetypes.meta'
data_file 'WEAPON_METADATA_FILE'   'data/weapons.meta'
data_file 'WEAPON_ANIMATIONS_FILE' 'data/weaponanimations.meta'

files {
    'data/*.meta'
}

If any of these data_file lines are missing but the corresponding .meta file exists in the folder — add them manually. Missing metadata is the most common cause of addon weapons not working.


Step 4: Upload to Your Server's Resources Folder

Connect via SFTP or your hosting panel's file manager. Upload the weapon pack into a dedicated subfolder:

resources/
└── [weapons]/
    └── my-weapon-pack/

Do not rename the folder after uploading — the name must match exactly what you put in server.cfg.


Step 5: Add the Weapon to server.cfg

Open your server.cfg and add the ensure line. Place it before your inventory system:

# Inventory (must load after weapon streams)
ensure ox_inventory
# or
ensure qb-inventory

# Weapons (load before inventory)
ensure [weapons]/my-weapon-pack
ensure [weapons]/police-taser-pack
ensure [weapons]/gang-weapon-pack
Order matters for addon weapons — they must be streamed before your inventory system tries to register them as items.

Step 6: Register the Weapon as an Item in Your Inventory

Replacement weapons skip this step — they use existing GTA weapon hashes and are already known to your inventory system. Addon weapons need to be registered as items so players can receive, store, and use them. For ox_inventory — add to ox_inventory/data/items.lua:
lua
['custom_taser'] = {
    label = 'Custom Taser',
    weight = 500,
    stack = false,
    close = true,
    description = 'A custom police taser.',
},
For QBCore — add to qb-core/shared/items.lua:
lua
['custom_taser'] = {
    name = 'custom_taser',
    label = 'Custom Taser',
    weight = 500,
    type = 'item',
    image = 'custom_taser.png',
    unique = true,
    useable = true,
    shouldClose = true,
    description = 'A custom police taser.'
},
For ESX — insert into the database:
sql
INSERT INTO items (name, label, weight)
VALUES ('custom_taser', 'Custom Taser', 500);
Pro tip: The item name must exactly match the weapon hash defined in weapons.meta. Open the .meta file and look for — that's your hash/item name.

Step 7: Give the Weapon to Players

Once registered, you can give the weapon to players using standard framework commands or scripts.

Using a server-side script (universal):
lua
-- Give a weapon to a player by server ID
TriggerClientEvent('weapons:giveWeapon', playerId, 'WEAPON_CUSTOM_TASER', 100)
Using ESX:
lua
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.addInventoryItem('custom_taser', 1)
Using QBCore:
lua
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.AddItem('custom_taser', 1)
Using an in-game admin command:
/giveweapon [playerid] custom_taser 100

Step 8: Restart and Test

Restart the weapon resource in your txAdmin console or server console:

restart [weapons]/my-weapon-pack

Join your server and give the weapon to a test character. For replacement weapons, the existing spawn name works:

/giveweapon [playerid] WEAPON_PISTOL 100

For addon weapons, use the custom hash from weapons.meta:

/giveweapon [playerid] WEAPON_CUSTOM_TASER 100

If the weapon spawns with the correct model — you're done.


Framework Compatibility

FrameworkCompatibility Notes
StandaloneReplacement weapons stream automatically. Addon weapons need metadata but no inventory config.
ESXRegister addon weapons in the items database table. Use esx_weaponshop for shop integration.
QBCoreRegister addon weapons in qb-core/shared/items.lua. Use qb-shops for shop integration.
QBOXSame as QBCore — fully compatible with shared items config.
OX CoreRegister addon weapons in ox_inventory/data/items.lua. Use ox_inventory shops for access.
How to check: Open the weapon folder. If you see only stream/ + fxmanifest.lua with no data/ folder — it's a replacement weapon and works standalone. If you see a data/ folder with .meta files — it's an addon weapon requiring registration.

Troubleshooting Common Weapon Issues

❌ Weapon spawns but shows original GTA model

Solution: For a replacement weapon, the stream file names must exactly match the original GTA weapon filename (e.g., w_pi_pistol.ydr). Any mismatch means the replacement doesn't apply.

❌ Addon weapon causes server crash on startup

Solution: One of the .meta files has a syntax error or references a missing animation/archetype. Comment out data_file lines one by one in fxmanifest.lua to find the culprit.

❌ "Could not find resource" error in console

Solution: The folder name in server.cfg doesn't match the actual folder name on disk. Linux hosting is case-sensitive — My-Weapon-Pack and my-weapon-pack are different.

❌ Weapon item exists in inventory but has no model (invisible weapon)

Solution: The weapon stream resource isn't started or the hash in weapons.meta doesn't match the item name registered in your inventory. Double-check both match exactly.

❌ Weapon animations are broken or T-pose on equip

Solution: The weaponanimations.meta file is missing or not declared in fxmanifest.lua. Add the data_file 'WEAPON_ANIMATIONS_FILE' line and restart.

❌ ox_inventory doesn't recognise the weapon item

Solution: The item isn't registered in ox_inventory/data/items.lua. Add the entry from Step 6, save, and restart ox_inventory.

❌ QBCore shop doesn't show the weapon

Solution: The item isn't in qb-core/shared/items.lua or the shop config doesn't reference it. Add the item entry and the shop entry, then restart qb-core.

Recommended Weapon Resources for Your Server

ResourceTypeBest For
Police Weapon Pack 2026Addon weaponsPolice RP servers
Taser & Less-Lethal PackReplacement weaponsLaw enforcement RP
Gang Weapon CollectionAddon weaponsGang & street RP
Military Rifle PackAddon weaponsMilitary & war RP
Melee Weapon PackReplacement weaponsAll RP servers
ox_inventoryInventory systemAll frameworks — weapon item management
esx_weaponshop / qb-shopsShop systemIn-game weapon purchasing
Browse all weapon packs on FiveVault →

Final Tips

  • ✅ Know your weapon type — replacement vs. addon have completely different install steps
  • ✅ Match stream filenames exactly — one character wrong and the replacement won't apply
  • ✅ Declare all .meta files in fxmanifest.lua — missing data files cause crashes
  • ✅ Load weapon streams before your inventory in server.cfg
  • ✅ Match item names to weapon hashes — they must be identical for addon weapons
  • ✅ Test on a dev server first — a broken weapons.meta will crash your entire server on startup
  • ✅ Source from FiveVault — quality-checked packs reduce broken metadata issues
  • ✅ Back up server.cfg before every session of adding new weapon resources

Frequently Asked Questions

Q: Do players need to download anything to see custom weapons?

A: No — FiveM streams weapon assets to players automatically when they join the server.

Q: Can I use weapon mods from GTA V SP on FiveM?

A: Not directly. SP weapon mods use a different format. They need to be converted to FiveM addon format first — look for FiveM-converted versions on trusted platforms like FiveVault.

Q: Can I restrict certain weapons to specific jobs?

A: Yes — most inventory systems (ox_inventory, qb-inventory) support job-gated items. Only players with the correct job can carry or purchase the weapon.

Q: What's the difference between a weapon replacement and an addon weapon?

A: A replacement swaps the look of an existing GTA weapon — it uses the same hash and stats. An addon adds a brand new weapon with its own hash, stats, and animations — it needs full registration.

Q: Why does my weapon show correctly in single-player but not on FiveM?

A: SP and FiveM use different streaming systems. The weapon files need to be in FiveM's resource format with a valid fxmanifest.lua and correct data_file declarations.

Q: Can two weapon packs conflict with each other?

A: Yes — if two replacement packs both replace the same weapon (e.g., both replace w_pi_pistol), whichever loads last in server.cfg wins. Addon weapons rarely conflict unless they share the same weapon hash.


Have questions about custom weapons? Drop by our Discord — 7,000+ members and counting.