How to Stream Custom Cars, Maps and Clothing in FiveM

Adding custom cars, MLO maps, and clothing is what makes a FiveM roleplay server feel unique. But dropping a few .yft or .ymap files into your server and hoping they load is a recipe for missing models and “stream timeout” errors. FiveM uses a specific system to mount custom assets into GTA V, built around the stream folder, the fxmanifest.lua resource manifest, and data_file declarations. Get those three right and your assets load every time. This guide walks through each piece using the current naming from the official FiveM documentation.

How asset streaming actually works

Every custom asset in FiveM lives inside a resource — a folder containing an fxmanifest.lua file plus your asset files. There are two categories of files you’ll deal with:

  • Stream assets — the actual game model files: .yft, .ytd, .ydr, .ymap, .ytyp. These go in a folder named stream inside your resource and are loaded automatically.
  • Metadata files — XML files such as vehicles.meta or handling.meta that tell the game how to register and behave with the model. These are declared with data_file entries in the manifest.

Anything placed inside a stream folder is mounted into the game’s content system without needing an explicit manifest line. Metadata, by contrast, must be registered through data_file so GTA V’s extra-content mounting system knows what type of file it is.

The fxmanifest.lua basics

Every resource needs an fxmanifest.lua at its root. At minimum it declares the FXv2 version and the target game:

fx_version 'cerulean'
game 'gta5'

cerulean is the current resource manifest version. The game directive defines the supported game API set. With those two lines present, FiveM will scan the resource and automatically pick up any stream folder it finds.

Streaming a custom map (ymap / ytyp)

Map mods are the simplest case because they are pure stream assets. Create your resource and drop the map files into a stream subfolder:

my_custom_map/
├── stream/
│   ├── myinterior.ymap
│   └── myinterior.ytyp
└── fxmanifest.lua

The manifest can be as small as the example below. The optional this_is_a_map flag signals FiveM to treat the resource as a map resource:

fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

YMAP and YTYP files placed in stream load automatically — no extra manifest entries are required beyond the basics above. Add the resource to your server.cfg with ensure my_custom_map and restart.

Streaming a custom vehicle

Cars need both the model files (in stream) and metadata files registered via data_file. A typical layout:

my_car/
├── stream/
│   ├── mycar.yft
│   ├── mycar_hi.yft
│   ├── mycar.ytd
│   └── mycar+hi.ytd
├── data/
│   ├── vehicles.meta
│   ├── carcols.meta
│   ├── carvariations.meta
│   └── handling.meta
└── fxmanifest.lua

The metadata files are not in stream; they’re registered in the manifest. Each must be listed in a files block so it gets packaged, and then declared with a data_file entry of the correct type:

fx_version 'cerulean'
game 'gta5'

files {
    'data/vehicles.meta',
    'data/carcols.meta',
    'data/carvariations.meta',
    'data/handling.meta',
}

data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'CARCOLS_FILE'           'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
data_file 'HANDLING_FILE'          'data/handling.meta'

The files block adds the metadata to the resource packfile so clients download it; the data_file line tells the game engine how to interpret each one. Globbing is supported, so 'data/*_handling.meta' would also work if you split files per vehicle.

Common data_file types

data_file identifierUsed for
VEHICLE_METADATA_FILEVehicle definition (vehicles.meta)
CARCOLS_FILEVehicle colors / mod kits (carcols.meta)
VEHICLE_VARIATION_FILEVehicle variations (carvariations.meta)
HANDLING_FILEHandling / physics data (handling.meta)
SHOP_PED_APPAREL_META_FILEClothing / apparel shop metadata
PED_OVERLAY_FILEPed decorations / overlays

Streaming custom clothing

Clothing follows the same pattern as vehicles: the drawable and texture files (.ydd, .ytd) go in stream, while the apparel metadata is declared with a data_file such as SHOP_PED_APPAREL_META_FILE. Most server owners, however, use a dedicated clothing framework (EUP-style add-ons or a clothing-store resource) that bundles the correct manifest entries for you. If you’re using one of those, follow its packaging conventions rather than hand-rolling the metadata, because component numbering is easy to get wrong.

Loading and testing your assets

  • Place the resource folder in your server’s resources directory (a subfolder prefixed with [ like [vehicles] keeps things organized).
  • Add ensure my_car to your server.cfg.
  • Restart the server or run refresh then ensure my_car from the console.
  • Watch the server console for stream errors and use resmon in-game (F8 → resmon 1) to confirm the resource is running.

If a custom car spawns as a default Vanilla model or your map interior is invisible, it almost always means a metadata file is missing a data_file line, or a stream asset name doesn’t match the model name in the meta. For deeper troubleshooting, our FiveM resmon performance guide shows how to spot which resources are misbehaving. Streaming heavy add-on packs also needs headroom, which is why a properly provisioned host matters — see our dedicated FiveM hosting plans if you’re outgrowing a home box. Full reference material is also in the XGamingServer FiveM docs, and if you’re building your framework from scratch, start with our QBCore installation guide.

Frequently asked questions

Do I need to list every .yft and .ytd file in fxmanifest.lua?

No. Files placed inside a stream folder are mounted automatically and do not need manifest entries. Only metadata files (like vehicles.meta) require a files block plus a data_file declaration.

Why does my custom car spawn as a stock vehicle?

This usually means the vehicles.meta wasn’t registered. Confirm you have data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta' in the manifest and that the model name in the meta matches the .yft filename in your stream folder exactly.

Can I put multiple cars in one resource?

Yes. Drop all model files into a single stream folder and combine their definitions into one set of meta files, or use globbing such as data_file 'HANDLING_FILE' 'data/*_handling.meta' to load many files at once. Keep an eye on stream size, since large packs increase client download times and memory use.

Ready to play?

Run your own FiveM server with XGamingServer

Spin up an always-on FiveM server your friends can join in minutes — no port-forwarding, no tech headaches.

99.9%Uptime SLA
< 5 minInstant setup
24/7Human support
DDoSProtected
Instant setup Your server is live in minutes with a one-click control panel.
Mods & plugins Install mods, plugins and workshop content in a few clicks.
DDoS protected Enterprise DDoS mitigation keeps your server online 24/7.
Low-latency hardware Premium CPUs & NVMe SSDs for lag-free multiplayer.
Free backups Automatic backups so your world is never lost.
Real human support Gamers helping gamers — 24/7, no bots, no scripts.

Pick your FiveM plan & play in minutes

See all plans
Starter $8.40/mo 4 GB RAM Renews $12/mo Buy now
Rookie $17.50/mo 8 GB RAM Renews $25/mo Buy now
Pro $24.50/mo 12 GB RAM Renews $35/mo Buy now