streamingytdydrymapmlovehicles15 min read · updated 9/7/2026

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.

How FiveM streaming works: ydr, ytd, ymap and why yours does not load

#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.

ExtensionContainsYou will meet it in
.ydrA single drawable — one model with its geometry and LODsProps, map pieces, minimap geometry
.yddA drawable dictionary — several drawables in one fileClothing, vehicle mods, minimap tiles
.ytdA texture dictionary — the imagesLiveries, skins, minimap textures
.yftA fragment — a model that can break apart, with a skeletonVehicles, breakable props
.ymapPlacement — what is placed where in the worldMLO interiors, map edits
.ytypArchetype definitions — what an object isAlways paired with a .ymap
.ybnCollision boundsAnything you can walk into
.ynvNavmesh — where AI peds may walkCustom map areas
.awcAudio wave containerCustom 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 -d

The 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'
SymptomCause
Vehicle does not spawn at allvehicles.meta missing, or the model name in it does not match the .yft
Spawns but handles like a brickhandling.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 liveriescarvariations.meta / carcols.meta missing
Client crashes on spawnA 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

  1. 01 Is the resource started?

    Console at start. An unstarted resource streams nothing and logs one line you probably scrolled past.

  2. 02 Is there a name collision?

    Run the duplicate check above. This is the answer more often than anything else.

  3. 03 Did the client cache?

    FiveM caches streamed files hard. Delete FiveM Application Data/data/cache and reconnect before concluding anything.

  4. 04 Is the game build high enough?

    Content from a DLC newer than sv_enforceGameBuild does not appear and does not warn.

  5. 05 Are the .meta files declared twice?

    Both files and data_file, spelled exactly.

  6. 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?
The model loaded and its texture did not. Either the .ytd is missing from the stream folder, or the texture names inside the .ytd do not match what the model asks for. It is never a permissions or a server.cfg problem.
Do I need to restart the server after adding a stream file?
Yes. Streamed files are indexed when the resource starts, so refresh then restart the resource — and clients need to reconnect to receive the new files.
Can two resources stream the same file name?
They can, and you should never let them. Which one wins is undefined and can change between restarts. Rename one, or remove it.
Does streaming a custom minimap conflict with map resources?
Only with another minimap. The minimap texture dictionaries are a fixed set of names, so two minimap resources collide with each other — but never with an MLO, a vehicle pack or a map edit, which use entirely different names.

Ready to pick a map?

Twelve themes on three base map styles, $8 each, instant download.