fxmanifest per Armi Custom
INFO
Configurazione finale della risorsa arma per FiveM, con fxmanifest, script client/server e test.
| Obiettivo | Dettagli |
|---|---|
| Cosa imparerai | Preparare il fxmanifest e gli script per caricare l’arma custom su FiveM |
| Prerequisiti | Completare Animations.meta |
Struttura Finale della Risorsa
weapon_m4a1/
├── fxmanifest.lua
├── client.lua
├── server.lua
└── stream/
├── w_m4a1.ydr ← Modello TP
├── w_m4a1_fp.ydr ← Modello FP
├── w_m4a1.ytd ← Texture
├── w_m4a1_p_suppressor.ydr ← Componenti (se presenti)
├── w_m4a1_p_scope.ydr
├── w_m4a1.weaponlayouts.meta ← Statistiche arma
├── w_m4a1.weaponanimations.meta ← Animazioni
└── w_m4a1.weaponpickups.meta ← Pickup
fxmanifest Completo
-- fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
author 'TuoNome'
description 'Arma Custom - M4A1 Tactical'
version '1.0.0'
-- I file in stream/ vengono caricati automaticamente
-- I file .meta richiedono data_file esplicito
files {
'stream/*.meta',
}
data_file 'WEAPON_INFO_FILE' 'stream/*.weaponlayouts.meta'
data_file 'WEAPON_ANIMATIONS_FILE' 'stream/*.weaponanimations.meta'
data_file 'WEAPON_METADATA_FILE' 'stream/*.weaponcomponents.meta'
data_file 'WEAPON_PICKUP_FILE' 'stream/*.weaponpickups.meta'
client_script 'client.lua'
server_script 'server.lua'Client Lua (per dare l’arma al giocatore)
-- client.lua
-- Registra il nome visualizzato
Citizen.CreateThread(function()
AddTextEntry('WT_M4A1', 'M4A1 Tactical')
end)
-- Comando per ottenere l'arma (debug/test)
RegisterCommand('givem4', function()
local playerPed = PlayerPedId()
local weaponHash = GetHashKey('w_m4a1')
-- Dai l'arma con 120 munizioni
GiveWeaponToPed(playerPed, weaponHash, 120, false, false)
end, false)Server Lua (opzionale)
-- server.lua
-- Puoi loggare quando un giocatore riceve l'arma
RegisterNetEvent('weapon:received')
AddEventHandler('weapon:received', function(weaponName)
print(('^2[WEAPON] %s ha ricevuto %s'):format(GetPlayerName(source), weaponName))
end)Test dell’Arma
- Avvia il server con la risorsa
- In gioco, apri la console F8
- Digita
/givem4 - L’arma dovrebbe apparire nell’inventario
- Prova: spara, ricarica, mira, cammina
Debug Comandi
# Verifica che la risorsa sia caricata
status
# Dai l'arma a tutti i giocatori (da RCON/admin)
# Nel server.cfg o tramite comando
add_ace resource.weapon_m4a1 command.givem4 allow
Errori Comuni
WARNING
La maggior parte degli errori con le armi custom deriva da nomi sbagliati o file mancanti. Usa questa tabella per il debug rapido.
| Errore | Causa | Soluzione |
|---|---|---|
| Arma invisibile | Modello mancante o nome errato | Controlla che w_m4a1.ydr esista e che il nome matchi col meta |
| Nessuna animazione | WeaponAnimations.meta mancante | Aggiungi data_file 'WEAPON_ANIMATIONS_FILE' |
| Crash all’impugnatura | Modello FP assente ma referenziato | Crea modello FP o togli FirstPersonModel dal meta |
| Arma non raccoglibile | WeaponPickups.meta mancante | Aggiungi il file e il data_file |
| ”Weapon not found” | WeaponLayouts.meta con errore | Controlla che Name e Model siano corretti |
TIP
Prossimo passo: Armi Melee per la guida specifica sulle armi da corpo a corpo, oppure passa al Modulo 04 — Ped Custom se hai completato tutte le armi.
Torna alla: Indice Generale