Vehicle model files (yft, _hi.yft, ytd) and the oversized asset warning
A FiveM vehicle is streamed as a .yft model, a _hi.yft high-detail model and a .ytd texture dictionary. FXServer measures how much memory each file needs once loaded and prints a warning above 16 MiB. Above 48 MiB it adds that oversized assets "can and WILL lead to streaming issues". Smaller, compressed textures are the usual fix.
What are the .yft, _hi.yft and .ytd files?
The three files have fixed jobs, and their names must follow the model name from vehicles.meta.
stream/
mycar.yft model: lower LODs, skeleton, collision
mycar_hi.yft model: high detail version shown up close
mycar.ytd textures (name matches <txdName>)
mycar+hi.ytd optional: high resolution versions of the same textures
| File | Content | When the game uses it |
|---|---|---|
<model>.yft | The vehicle as a fragment: the lower-detail meshes, the bones (doors, wheels, seats) and the collision. | Always, while the vehicle exists. |
<model>_hi.yft | The high-detail mesh. | Only near the camera, inside the first lodDistances value of vehicles.meta. |
<txdName>.ytd | All textures of the vehicle. | Always. |
<txdName>+hi.ytd | Optional higher-resolution copies of textures. | Near the camera. |
The game builds the high-detail model name itself by adding _hi to the model name whenever the first LOD distance is above zero, so the file must be named exactly that. Tuning parts are separate small model files in the same folder, named as listed in carcols.meta.
What does the oversized assets warning mean?
When a resource starts, FXServer reads the header of every streamed file and works out how much memory it will take once loaded. If that is too much, it prints a line like this in the server console:
Asset mycar/mycar.ytd uses 62.5 MiB of physical memory. Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering).
The number is not the file size on disk. Streamed files are compressed, and the header records the size of the unpacked data in two parts: virtual memory (structure data) and physical memory (mostly texture pixels and mesh geometry). Each part is checked on its own.
| Memory of one file | Console line |
|---|---|
| 16 MiB or less | Nothing is printed. |
| Over 16 MiB | Printed in blue. |
| Over 32 MiB | Printed in yellow. |
| Over 48 MiB | The sentence "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)" is added. |
| Over 64 MiB | Printed in red. |
These steps are the ones in the FXServer source code (ResourceStreamComponent.cpp). The warning is about players' computers, not the server: every player near the vehicle has to hold that file in memory. Keep every file at or under 16 MiB and the console stays quiet.
To see this number for a file before starting the server, drop it into the YTD texture memory calculator. It also lists every texture with its memory.
How much memory does a texture use?
Texture memory depends on resolution and format, not on what the image looks like. Halving the width and height cuts memory to a quarter. Compressed formats store 4 or 8 bits per pixel instead of 32. Mipmaps add about one third.
| Resolution | DXT1 / BC1 (no alpha) | DXT5 / BC3 (alpha) | Uncompressed 32-bit |
|---|---|---|---|
| 512 x 512 | 0.17 MiB | 0.33 MiB | 1.33 MiB |
| 1024 x 1024 | 0.67 MiB | 1.33 MiB | 5.33 MiB |
| 2048 x 2048 | 2.67 MiB | 5.33 MiB | 21.3 MiB |
| 4096 x 4096 | 10.7 MiB | 21.3 MiB | 85.3 MiB |
Values include mipmaps. One uncompressed 4096 texture is already past every step of the warning, and a single 4096 DXT5 texture is over 16 MiB by itself. A .ytd with a handful of 4K textures is the most common source of the warning.
How do I reduce an oversized vehicle?
- Find the file. The console line names the resource and the file. Fix the largest one first.
- Resize the big textures. Body and interior textures at 2048 or 1024 are enough for a vehicle seen from normal play distance. Small parts, badges and lights rarely need more than 512.
- Compress them. Use DXT1 (BC1) for textures without transparency and DXT5 (BC3) for textures with it. Avoid uncompressed formats.
- Delete unused textures. Converted models often carry textures no material uses.
- Do not duplicate shared textures. Textures that several vehicles use can live in one dictionary set as the parent in
txdRelationshipsof vehicles.meta. - Reduce the mesh. If a
.yftis the file in the warning, the model has too many polygons, or the main.yftcontains the full-detail mesh instead of lower LODs. - Restart the resource and read the console again. No line means every file is at or under 16 MiB.
LOD settings, lodDistances and texture sizes by role are in how to optimise a FiveM vehicle.
How do LODs fit in?
The main .yft is meant to hold the lighter versions of the model, and _hi.yft the detailed one. That split is what lets the game keep only a light model in memory for vehicles that are far away. A conversion that puts the same heavy mesh in both files doubles the memory and makes every distant vehicle as expensive as a close one.
The levels and their distances are explained in what are LODs in FiveM vehicles. From our own catalog, the Coil S-Cooter and the three hoverboards ship with four LODs, High to Very Low.
Frequently asked questions
- What is the FiveM 16 MB limit?
- It is the first step of the FXServer asset size check. A streamed file that needs more than 16 MiB of physical or virtual memory once loaded gets a console warning. It is a warning, not a hard block, but large assets can fail to load for players.
- Why is my 5 MB file reported as 40 MiB?
- The warning shows memory use after loading, not the size on disk. Streamed files are compressed, so the loaded size can be several times the file size.
- What is the difference between .yft and _hi.yft?
- The .yft holds the lower-detail meshes, the skeleton and the collision and is always loaded. The _hi.yft holds the high-detail mesh and is only loaded when the vehicle is close to the camera.
- What texture size should a FiveM vehicle use?
- Compressed 2048 or 1024 textures for the main surfaces and 512 or smaller for details keep most vehicles under 16 MiB. A single 4096 DXT5 texture already uses about 21 MiB with mipmaps.
- Does the warning mean my server is lagging?
- No. The check is about memory on the players' side. The risk is models or textures that load late or not at all, more so when many heavy vehicles are in one place.
Sources
- FXServer source: asset size check (ResourceStreamComponent.cpp)
- Sollumz, Blender add-on for GTA V assets
Products from this guide
- Coil S-Cooter: FiveM Electric Scooter
- Airglider: FiveM Hoverboard
- Girlboard: FiveM Hoverboard
- Neonboard: FiveM Hoverboard
All guides
- How to install a FiveM resource from Cfx.re Escrow (Granted Assets)
- How to add a custom vehicle to an ESX, QBCore or QBox server
- What are LODs in FiveM vehicles?
- How to add an add-on vehicle to a FiveM server
- vehicles.meta explained, field by field
- handling.meta explained: fields, units and flags
- carvariations.meta and carcols.meta explained
- vehiclelayouts.meta explained: seats, entry points and animations
- fxmanifest data_file reference for vehicles
- FiveM add-on vehicle troubleshooting: causes and fixes
- How to fix "You lack the required entitlement" on a FiveM server
- How to convert a single-player GTA 5 car mod to a FiveM add-on
- How a FiveM hoverboard works without a script
- How to make a FiveM vehicle in Blender with Sollumz 2.9
- How to optimise a FiveM vehicle: polygons, LODs and texture budget
- How to set up vehicle collision in Sollumz
- Buying FiveM vehicles: what to check before you pay
- FiveM car packs vs single vehicles
- Real-brand cars on FiveM: allowed or not?
- CodeWalker vs Sollumz: which tool for FiveM vehicles?
