fxmanifest per Armi Custom

INFO

Configurazione finale della risorsa arma per FiveM, con fxmanifest, script client/server e test.

ObiettivoDettagli
Cosa impareraiPreparare il fxmanifest e gli script per caricare l’arma custom su FiveM
PrerequisitiCompletare 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

  1. Avvia il server con la risorsa
  2. In gioco, apri la console F8
  3. Digita /givem4
  4. L’arma dovrebbe apparire nell’inventario
  5. 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.

ErroreCausaSoluzione
Arma invisibileModello mancante o nome erratoControlla che w_m4a1.ydr esista e che il nome matchi col meta
Nessuna animazioneWeaponAnimations.meta mancanteAggiungi data_file 'WEAPON_ANIMATIONS_FILE'
Crash all’impugnaturaModello FP assente ma referenziatoCrea modello FP o togli FirstPersonModel dal meta
Arma non raccoglibileWeaponPickups.meta mancanteAggiungi il file e il data_file
”Weapon not found”WeaponLayouts.meta con erroreControlla 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