FiveM Ped Models and NPC Skins: Adding Custom Characters Without Streaming Errors or Crashes

FiveM Ped Models and NPC Skins: Adding Custom Characters Without Streaming Errors or Crashes

Custom peds are one of the highest-impact things you can add to a server — unique gang members, bespoke NPC shopkeepers, a player character model nobody else has — and also one of the most reliable ways to crash half your players if you do it carelessly. A bad ped doesn’t just look wrong; it can hard-crash any client that tries to render it. Here’s how to add them properly and why the broken ones break.

What an Addon Ped Is Made Of

A streamable ped is a small set of files: the model mesh (.ydd for the drawable components, .yft for the skeleton/fragment), the textures (.ytd), and the metadata that tells the game what kind of ped this is. For a full custom character you’ll often also see component and prop metadata if the ped has swappable clothing or accessories. The whole lot goes in a stream folder inside your resource.

Replace vs Addon Peds

You have two options and they behave very differently:

Manifest and Registration

Your fxmanifest.lua needs to expose the stream folder (files / the implicit stream/ scan) and, for addon peds, declare the metadata so the engine treats the new model as a valid ped. The model is then referenced by its model name — the same name you’ll pass to SetPlayerModel for a player skin, or to CreatePed / your NPC spawner for an NPC. Always request and load the model hash before you use it (the standard “request model, wait until it has loaded, then spawn” pattern); spawning before the model streams in is a classic source of invisible or fallback peds.

Using It for NPCs and Player Skins

For an NPC, you load the model and spawn it at a coordinate with CreatePed, set it persistent or let it despawn as needed, and freeze/scenario it if it’s a static shopkeeper. For a player skin, SetPlayerModel swaps the local player to the custom model — after which you may need to refresh appearance/components depending on your clothing system. The key discipline either way: request the model, confirm it loaded, then use it, and release the model when you’re done so you’re not pinning assets in memory.

Drawable and Texture Variation Limits

Peds have a fixed component structure — head, upper body, legs, feet, accessories, and so on — and each component has drawables, and each drawable has textures. Custom peds frequently ship with fewer variations than freemode peds, and that’s fine, but your clothing or appearance script has to respect the limits the model actually has. Asking for drawable #15 on a component that only has four will give you a missing/invisible component or a texture-less mess. If a custom ped looks like it’s wearing nothing or shows the default checkerboard, you’re either over-requesting a variation or missing the texture entirely.

Why Bad Peds Crash Clients

This is the part that turns a cosmetic mistake into an outage. The common crash causes:

The pattern is consistent: a single broken ped is a server-wide liability because it crashes whoever renders it. Test every new ped on a dev server and walk right up to it before it goes near a populated instance.

Keep the Stream Folder Lean

Every ped you stream costs memory whether or not anyone’s looking at it. A roster of fifty custom gang peds with 4K textures will eat your budget and punish players on weaker hardware. Use sensible texture sizes, don’t ship variations you’ll never use, and remove peds you’ve stopped spawning. A lean ped library keeps your overall streaming headroom available for the things that change every frame — vehicles, players, and effects.

Freemode vs Custom Skeleton and Clothing

One decision shapes everything downstream: is the ped built on the freemode skeleton (the mp_m_freemode_01 / mp_f_freemode_01 base) or a custom one? Freemode-based peds are compatible with the huge ecosystem of MP clothing and your existing character-creator/clothing scripts — drawables and props you already stream will work. A custom-skeleton ped looks unique but is effectively a closed model: standard clothing won’t fit it, and your appearance system has to be told to treat it specially. For player characters you want flexibility on, freemode-compatible is the safer base; reserve custom skeletons for fixed NPCs where you’ll never swap clothing.

Where to Get Clean Peds and Keep Things Fast

Save yourself the crash-hunting by starting with properly built models.

The Short Version

Prefer addon peds over replaces so you don’t clobber base models; stream the .ydd/.yft/.ytd, declare them in fxmanifest.lua, register the new model name, and always request-and-load the model before SetPlayerModel or CreatePed. Respect each model’s drawable/texture limits, keep the stream folder lean, and test every ped on a dev server — because missing textures, bad collision, and over-budget models crash all clients who render them, not just you. Build players on the freemode skeleton for clothing compatibility; save custom skeletons for fixed NPCs.

Related posts

FiveM EUP Explained: Installing and Streaming Emergency Uniform Packs Without Errors
Guide
FiveM EUP Explained: Installing and Streaming Emergency Uniform Packs Without Errors
FiveM Add-on Weapons and Skins: Installing Custom Firearms Without Tripping Your Anticheat
Guide
FiveM Add-on Weapons and Skins: Installing Custom Firearms Without Tripping Your Anticheat
FiveM Custom Props Explained: Streaming YDR and YTYP Objects for Jobs, Housing and Decoration
Guide
FiveM Custom Props Explained: Streaming YDR and YTYP Objects for Jobs, Housing and Decoration
Published · Jun 23, 2026 Read more posts →