FiveM Ped Models
A FiveM ped model identifies the character appearance used by an NPC or player. This reference contains 474 searchable model names and hashes for animals, ambient pedestrians, emergency services, gangs, military characters, service workers, and story characters.
Use the model name when possible because names such as a_m_y_hipster_01 are
easier to review than numeric hashes. FiveM natives accept the matching hash
returned by GetHashKey or the backtick syntax in Lua.
Search the Ped Model List
Search by model name, hexadecimal hash, or category. The model names are case-insensitive, but copying the exact lowercase name avoids configuration and support mistakes.
| Model Name | Hash | Category |
|---|---|---|
| a_c_boar | Animals | |
| a_c_cat_01 | Animals | |
| a_c_chickenhawk | Animals | |
| a_c_chimp | Animals | |
| a_c_chop | Animals | |
| a_c_cormorant | Animals | |
| a_c_cow | Animals | |
| a_c_coyote | Animals | |
| a_c_crow | Animals | |
| a_c_deer | Animals | |
| a_c_dolphin | Animals | |
| a_c_fish | Animals | |
| a_c_hen | Animals | |
| a_c_husky | Animals | |
| a_c_killerwhale | Animals | |
| a_c_mtlion | Animals | |
| a_c_pig | Animals | |
| a_c_pigeon | Animals | |
| a_c_poodle | Animals | |
| a_c_pug | Animals | |
| a_c_rabbit_01 | Animals | |
| a_c_rat | Animals | |
| a_c_retriever | Animals | |
| a_c_rottweiler | Animals | |
| a_c_seagull | Animals | |
| a_c_sharkhammer | Animals | |
| a_c_sharktiger | Animals | |
| a_c_shepherd | Animals | |
| a_c_stingray | Animals | |
| a_c_westy | Animals | |
| a_f_m_beach_01 | Ambient | |
| a_f_m_bevhills_01 | Ambient | |
| a_f_m_bevhills_02 | Ambient | |
| a_f_m_bodybuild_01 | Ambient | |
| a_f_m_business_02 | Ambient | |
| a_f_m_downtown_01 | Ambient | |
| a_f_m_eastsa_01 | Ambient | |
| a_f_m_eastsa_02 | Ambient | |
| a_f_m_fatbla_01 | Ambient | |
| a_f_m_fatcult_01 | Ambient | |
| a_f_m_fatwhit_01 | Ambient | |
| a_f_m_ktown_01 | Ambient | |
| a_f_m_ktown_02 | Ambient | |
| a_f_m_prolhost_01 | Ambient | |
| a_f_m_salton_01 | Ambient | |
| a_f_m_skidrow_01 | Ambient | |
| a_f_m_soucent_01 | Ambient | |
| a_f_m_soucent_02 | Ambient | |
| a_f_m_soucentmc_01 | Ambient | |
| a_f_m_tourist_01 | Ambient |
Spawn a Ped Safely in Lua
Always validate and load the model before calling CreatePed. A timeout prevents
an invalid or unavailable model from blocking the resource forever.
local function loadModel(modelName, timeoutMs)
local model = joaat(modelName)
if not IsModelInCdimage(model) or not IsModelValid(model) then
return nil, ("Invalid ped model: %s"):format(modelName)
end
RequestModel(model)
local deadline = GetGameTimer() + timeoutMs
while not HasModelLoaded(model) do
if GetGameTimer() >= deadline then
return nil, ("Timed out loading ped model: %s"):format(modelName)
end
Wait(0)
end
return model
end
local model, loadError = loadModel("a_m_y_hipster_01", 5000)
if not model then
print(loadError)
return
end
local ped = CreatePed(4, model, 215.76, -810.12, 30.73, 158.0, true, false)
SetEntityAsMissionEntity(ped, true, true)
SetModelAsNoLongerNeeded(model)SetModelAsNoLongerNeeded releases the streaming reference after the entity has
been created. Delete temporary peds with DeleteEntity when the resource no
longer needs them.
Spawn a Ped in JavaScript
const modelName = "s_m_y_cop_01";
const model = GetHashKey(modelName);
if (!IsModelInCdimage(model) || !IsModelValid(model)) {
throw new Error(`Invalid ped model: ${modelName}`);
}
RequestModel(model);
const deadline = GetGameTimer() + 5000;
while (!HasModelLoaded(model)) {
if (GetGameTimer() >= deadline) {
throw new Error(`Timed out loading ped model: ${modelName}`);
}
await Delay(0);
}
const ped = CreatePed(4, model, 441.2, -981.9, 30.7, 90.0, true, false);
SetEntityAsMissionEntity(ped, true, true);
SetModelAsNoLongerNeeded(model);Set a Player Model
Run player-model changes on the client. Load the model first, call
SetPlayerModel, and release it afterward.
local model = joaat("mp_m_freemode_01")
RequestModel(model)
while not HasModelLoaded(model) do
Wait(0)
end
SetPlayerModel(PlayerId(), model)
SetModelAsNoLongerNeeded(model)For production code, reuse the timeout and validation checks from the spawn example. Freemode models can also require component and appearance setup after the model change.
Ped Model Categories
| Category | Typical use |
|---|---|
| Animals | Wildlife, pets, and ambient animals |
| Ambient | General city and rural NPCs |
| Emergency | Police, fire, and medical roles |
| Gang | Gang members and related scenarios |
| Military | Military NPCs and guarded locations |
| Service | Mechanics, workers, and service roles |
| Story | Named GTA V story characters |
Common Problems
The ped is invisible or never spawns
Confirm that HasModelLoaded returns true before CreatePed. Also verify the
coordinates and make sure the entity is not spawning below the map.
The loading loop never ends
Validate the model with IsModelInCdimage and IsModelValid, and add a timeout.
A misspelled model name should fail cleanly instead of creating an infinite loop.
The ped disappears
For scripted NPCs, mark the entity as a mission entity and keep its network ownership in mind. A networked ped can migrate between clients unless your resource manages ownership and cleanup deliberately.
The player appearance resets
Framework appearance resources may reapply a saved skin after
SetPlayerModel. Integrate with the active appearance resource instead of
fighting its restore flow.