Convertire Ped e Player Mod SP in FiveM

INFO

I ped mod (personaggi) sono comuni su GTA5-Mods.com. Possono essere mod complete (nuovo modello) o semplici texture replace.

ObiettivoDettagli
Cosa impareraiConvertire ped e player model da SP a FiveM, creare file YMT obbligatori
PrerequisitiConoscenza base di FiveM, una mod ped da convertire, CodeWalker

Scenario 1: Ped Completo (Addon)

Scarichi un ped con modello, texture e meta:

custom_police/
├── s_m_y_cop_01.yft       ← Modello con scheletro
├── s_m_y_cop_01.ytd       ← Texture
├── s_m_y_cop_01.ymt       ← Meta ped (a volte assente)
└── pedvariation.meta       ← Varianti outfit

Passo 1: Verifica i file

FilePresente?Azione
.yft✅ SempreMetti in stream/
.ytd✅ SempreMetti in stream/
.ymt⚠️ SpessoSe manca, devi CREARLO (fondamentale!)
pedvariation.meta⚠️ A volteSe manca, il ped avrà outfit di default
.ydd❌ RaramenteSolo se ha vestiti separati

Passo 2: Creare .ymt (se manca)

WARNING

Il file .ymt è obbligatorio per FiveM. Senza di esso il ped non verrà riconosciuto dal gioco e otterrai l’errore “Model does not exist”.

Le mod SP spesso non includono .ymt perché in SP il ped viene aggiunto tramite script (.asi). Per FiveM è obbligatorio.

<?xml version="1.0" encoding="UTF-8"?>
<CPedModelInfo>
    <Item>
        <Name>s_m_y_cop_01</Name>
        <Model>s_m_y_cop_01</Model>
        <Type>PED_TYPE_COP</Type>
        <VoiceGroup>VOICE_GROUP_COP</VoiceGroup>
        <MovementGroup>MOVE_M@TOUGH_GUY</MovementGroup>
        <Audio>PED_MALE</Audio>
        <CollisionHeight>1.85</CollisionHeight>
        <CollisionWidth>0.5</CollisionWidth>
    </Item>
</CPedModelInfo>

Name e Model devono matchare il nome del file .yft.

TIP

Per il Type usa valori nativi come PED_TYPE_COP, PED_TYPE_CIVMALE o PED_TYPE_CIVFEMALE. Il tipo sbagliato può causare comportamenti anomali (es. ped che scappa senza motivo).

Passo 3: fxmanifest

-- fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
 
author 'TuoNome'
description 'Custom Police Ped - Convertito da SP'
version '1.0.0'
 
data_file 'PED_METADATA_FILE' 'stream/*.ymt'
 
client_script 'client.lua'

Passo 4: Script Lua

-- client.lua
local pedHash = GetHashKey('s_m_y_cop_01')
 
RegisterCommand('spawnped', function()
    RequestModel(pedHash)
    while not HasModelLoaded(pedHash) do
        Citizen.Wait(100)
    end
    
    local playerPed = PlayerPedId()
    local coords = GetEntityCoords(playerPed)
    
    local ped = CreatePed(1, pedHash, coords.x + 3, coords.y + 3, coords.z, 0.0, true, false)
    SetEntityInvincible(ped, false)
    TaskWanderStandard(ped, 10.0, 10)
    SetModelAsNoLongerNeeded(pedHash)
end, false)

Scenario 2: Player Model (Sostituzione Giocatore)

INFO

I modelli giocatore sostituiscono il tuo personaggio con un modello custom. Usano lo scheletro di mp_m_freemode_01 o mp_f_freemode_01, non uno scheletro unico.

Alcune mod SP sostituiscono il modello del giocatore:

player_model/
├── player_one.yft
└── player_one.ytd

Conversione

Lo stesso procedimento del ped addon, ma con una differenza: questo modello probabilmente usa lo scheletro di mp_m_freemode_01 o mp_f_freemode_01.

<!-- .ymt -->
<Name>player_one</Name>
<Model>player_one</Model>
<Type>PED_TYPE_CIVMALE</Type>

Script per usarlo come giocatore

RegisterCommand('mymodel', function()
    local model = GetHashKey('player_one')
    RequestModel(model)
    while not HasModelLoaded(model) do
        Citizen.Wait(100)
    end
    SetPlayerModel(PlayerId(), model)
    SetModelAsNoLongerNeeded(model)
end, false)

Scenario 3: Solo Texture Replace (Skin)

Alcune mod SP sono solo texture (nessun modello). Scarichi:

fbi_suit/
├── mp_m_freemode_01_diff_000_a.dds
├── mp_m_freemode_01_diff_001_a.dds
└── mp_m_freemode_01_nrm_000.dds

Conversione per FiveM

  1. Converti i .dds in .ytd:

    • Apri OpenIV
    • Crea un nuovo .ytd
    • Importa le texture DDS
    • Salva come nome_pack.ytd
  2. Crea pedvariation.meta che referenzi le nuove texture

Oppure usa il sistema di Drawable Variations:

stream/
├── mp_m_freemode_01_diff_000_a.ytd
└── mp_m_freemode_01_diff_001_a.ytd

E referenziali nel pedvariation.meta come nuovi texture index.


Problemi Comuni

ProblemaCausaSoluzione
”Model does not exist”YMT mancante o nome erratoCrea .ymt con Name = nome file .yft
Ped T-poseRigging mancante o scheletro diversoIl .yft deve avere weight painting
Texture pelle violaYTD non caricatoControlla che .ytd sia in stream/
Ped giganteCollisionHeight erratoImposta ~1.85m nello YMT
Ped non si muoveMovementGroup erratoUsa MOVE_M@TOUGH_GUY o MOVE_M@BUSINESS
Crash allo spawnYFT corrotto o ossa mancantiApri in CodeWalker per verificare

TIP

Prossimo passo: 05 - Convertire Mappe e MLO


Torna alla: Indice Generale