FiveM streaming, properly explained
Streaming is the mechanism that lets a server hand the client files the base game does not have. It is simple in principle — put a file in a stream folder and the game can find it by name — and everything that goes wrong comes from not knowing what the file types are or that names are global.

#What each file type is
GTA V asset files all start with "y" and are RAGE containers. Knowing which is which turns "the car is invisible" from a mystery into a two-minute check.
| Extension | Contains | You will meet it in |
|---|---|---|
| .ydr | A single drawable — one model with its geometry and LODs | Props, map pieces, minimap geometry |
| .ydd | A drawable dictionary — several drawables in one file | Clothing, vehicle mods, minimap tiles |
| .ytd | A texture dictionary — the images | Liveries, skins, minimap textures |
| .yft | A fragment — a model that can break apart, with a skeleton | Vehicles, breakable props |
| .ymap | Placement — what is placed where in the world | MLO interiors, map edits |
| .ytyp | Archetype definitions — what an object is | Always paired with a .ymap |
| .ybn | Collision bounds | Anything you can walk into |
| .ynv | Navmesh — where AI peds may walk | Custom map areas |
| .awc | Audio wave container | Custom vehicle and weapon sounds |
#The stream folder
A resource declares a stream folder in its manifest, or simply has a folder called stream/ which modern manifests pick up automatically. Every file in it, at any depth, is offered to clients by its filename.
Sub-folders are purely for your own sanity — the game does not see them. Two files called vehicle.ytd in different sub-folders are still a name collision.
my_cars/
├─ fxmanifest.lua
├─ vehicles.meta <- declared with data_file
└─ stream/
├─ police2024/
│ ├─ police2024.yft
│ ├─ police2024_hi.yft <- high detail LOD
│ └─ police2024.ytd
└─ ambulance2024/
├─ ambulance2024.yft
└─ ambulance2024.ytd#Finding a name collision
Before installing anything large, check whether it collides with what you already have. On Linux this is one command; on Windows, one PowerShell line.
# Linux / git bash
find resources -path '*/stream/*' -type f -printf '%f\n' \
| sort | uniq -dThe same on Windows
Anything it prints is a genuine conflict and needs one of the two removed.
Get-ChildItem -Path .\resources -Recurse -File |
Where-Object { $_.FullName -match '\\stream\\' } |
Group-Object Name |
Where-Object { $_.Count -gt 1 } |
Select-Object Name, Count#Add-on vehicles
A vehicle is not just a model. The game needs the model files, a vehicles.meta describing it, a carvariations.meta for colours and mods, a carcols.meta for liveries, and a handling.meta. Missing any of those gives a different, specific failure.
fx_version 'cerulean'
game 'gta5'
files {
'vehicles.meta',
'carvariations.meta',
'carcols.meta',
'handling.meta',
'vehiclelayouts.meta',
}
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
data_file 'CARCOLS_FILE' 'carcols.meta'
data_file 'HANDLING_FILE' 'handling.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta'| Symptom | Cause |
|---|---|
| Vehicle does not spawn at all | vehicles.meta missing, or the model name in it does not match the .yft |
| Spawns but handles like a brick | handling.meta missing or the handling id does not match |
| Spawns black or untextured | .ytd missing, or its embedded name differs from the model name |
| Spawns but no extras or liveries | carvariations.meta / carcols.meta missing |
| Client crashes on spawn | A corrupt .yft, or a model from a newer DLC than sv_enforceGameBuild allows |
#MLO interiors
An MLO is an interior placed into the world. It needs the .ytyp registered so the game knows the archetype exists, and the .ymap to place it. The order and the manifest lines matter.
- this_is_a_map tells the game to load the .ymap files in the resource. Without it the interior exists but is never placed.
- DLC_ITYP_REQUEST registers the archetypes. Without it you get an interior shell with missing props.
- Two MLOs at the same coordinates will z-fight and the result is undefined. Check the coordinates before installing.
- An MLO usually needs an interior-proxy removal .ymap to delete the vanilla building first. If the old building is still there, that file is missing.
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
files { 'custom_interior.ytyp' }
data_file 'DLC_ITYP_REQUEST' 'custom_interior.ytyp'#Textures: the .ytd rules
A texture dictionary contains named textures. The model asks for a texture by name; if the name inside the .ytd does not match what the model expects, you get the checker pattern even though the file is present and loading correctly.
- Use DXT compression. DXT1 for opaque, DXT5 when you need alpha. Uncompressed textures cost several times the VRAM for no visible benefit.
- Dimensions must be powers of two — 512, 1024, 2048. Anything else is either rejected or silently rescaled.
- Generate mipmaps. Without them, distant surfaces shimmer badly.
- 1024 is enough for almost everything. 4096 on a vehicle dirt map is pure waste and a common cause of stutter.
- The dictionary name and the texture names inside it both matter, and they are checked separately.
#Pool sizes
When you stream a lot, you will eventually see a console message saying a pool is full. Raise that pool, and only that pool. Raising everything "to be safe" wastes memory and hides the next real problem.
set sv_poolSizesIncrease "{ \"TxdStore\": 25000, \"DrawableStore\": 5000 }"#A checklist that finds it every time
- 01 Is the resource started?
Console at start. An unstarted resource streams nothing and logs one line you probably scrolled past.
- 02 Is there a name collision?
Run the duplicate check above. This is the answer more often than anything else.
- 03 Did the client cache?
FiveM caches streamed files hard. Delete FiveM Application Data/data/cache and reconnect before concluding anything.
- 04 Is the game build high enough?
Content from a DLC newer than sv_enforceGameBuild does not appear and does not warn.
- 05 Are the .meta files declared twice?
Both files and data_file, spelled exactly.
- 06 Only then, suspect the asset
Open it in CodeWalker. A file that will not open there will not load in game either.
Questions
Why do I see a purple and black checker pattern?
Do I need to restart the server after adding a stream file?
Can two resources stream the same file name?
Does streaming a custom minimap conflict with map resources?
Ready to pick a map?
Twelve themes on three base map styles, $8 each, instant download.