Why Conversion Is Needed
GTA V single-player mods and FiveM server resources use the same underlying file formats — YDR models, YTD textures, meta XML files — but they're packaged completely differently. Single-player mods are designed to be injected into RPF archives using tools like OpenIV or ModWorks. FiveM resources use a flat folder structure with a fxmanifest.lua file that tells the server what to load.
You can't just drop an RPF file into your FiveM server's resources folder and expect it to work. The files need to be extracted, reorganized, and given a proper manifest. This guide walks through the full process.
What You Need
- The mod you want to convert (usually downloaded as an archive containing
.rpffiles, loose files, or a mix) - A tool that can open RPF files (ModWorks has a built-in RPF explorer and a dedicated RPF-to-FiveM converter)
- A text editor for creating or adjusting manifest and meta files
Step 1: Identify What's in the Mod
Before converting, understand what the mod contains. Open the download and look for:
- Model files (
.ydr,.yft,.ydd) — The 3D models - Texture files (
.ytd) — Texture dictionaries used by the models - Meta files (
.meta) — XML configuration likevehicles.meta,handling.meta,carvariations.meta,carcols.meta - Audio files (
.awc,.rel) — Custom sounds - RPF archives (
.rpf) — Bundled archives that contain any of the above
If the mod came as an RPF, you'll need to extract everything out of it first. Open it in ModWorks' RPF explorer and extract the contents to a working folder.
Step 2: Create the Resource Folder Structure
FiveM resources follow a specific folder layout. Create a new folder with your resource name (lowercase, no spaces):
my-vehicle/
├── fxmanifest.lua
├── stream/
│ ├── vehicle_name.yft
│ ├── vehicle_name.ytd
│ ├── vehicle_name_hi.yft
│ └── vehicle_name+hi.ytd
└── meta/
├── vehicles.meta
├── handling.meta
├── carvariations.meta
└── carcols.meta
stream/ — All binary assets (models, textures, collision files) go here. FiveM automatically streams these to clients when they're in this folder.
meta/ — Configuration files that define vehicle properties, handling, paint jobs, and lighting.
The folder names stream and meta aren't technically required by FiveM — you reference them in the manifest — but this convention is standard and keeps things organized.
Step 3: Write the fxmanifest.lua
Every FiveM resource needs a fxmanifest.lua at its root. This file tells the server what game version the resource targets and what files to load.
For a vehicle resource:
fx_version 'cerulean'
game 'gta5'
files {
'meta/vehicles.meta',
'meta/handling.meta',
'meta/carvariations.meta',
'meta/carcols.meta'
}
data_file 'HANDLING_FILE' 'meta/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'meta/vehicles.meta'
data_file 'CARCOLS_FILE' 'meta/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'meta/carvariations.meta'
The files block tells FiveM which files to send to clients. The data_file entries tell the game how to interpret each file. The data file type must match — using the wrong type silently fails.
Common data_file types you'll encounter:
| Type | Used For |
|---|---|
HANDLING_FILE | handling.meta |
VEHICLE_METADATA_FILE | vehicles.meta |
CARCOLS_FILE | carcols.meta |
VEHICLE_VARIATION_FILE | carvariations.meta |
CONTENT_UNLOCKING_META_FILE | dlctext.meta |
VEHICLE_LAYOUTS_FILE | vehiclelayouts.meta |
You don't need to list files in the stream/ folder — FiveM auto-detects and streams them.
Step 4: Adjust the Meta Files
Meta files from single-player mods usually work in FiveM, but there are a few things to check:
vehicles.meta — Make sure the <txdName> matches the actual .ytd filename in your stream folder (without the extension). If the mod uses adder.ytd, then <txdName> should be adder. A mismatch causes invisible vehicles.
handling.meta — Should work as-is in most cases. The <handlingName> must match what's referenced in vehicles.meta.
carvariations.meta — Defines liveries, extras, and color combinations. Check that referenced kit names exist in the model.
carcols.meta — Defines paint colors and siren settings. If the vehicle has custom sirens, the siren ID must not conflict with other vehicles on your server.
Step 5: Handle DLC and Naming Conflicts
FiveM resources operate in a shared namespace. If two resources define a vehicle with the same spawn name, one will override the other. Similarly, if two resources stream a file with the same name, only one will load.
To avoid conflicts:
- Use unique model names that won't collide with base game vehicles or other mods
- Prefix your filenames if needed (e.g.,
myserver_adder.yftinstead ofadder.yft) - Check
vehicles.metafor the<modelName>— this is the spawn name players use and must be unique across your server
Step 6: Test the Resource
- Place your resource folder in your server's
resources/directory - Add
ensure my-vehicleto yourserver.cfg - Start or restart the server
- In-game, try spawning the vehicle with its model name
If the vehicle doesn't appear or appears invisible:
- Check the server console for errors — FiveM will report missing meta files or bad manifest syntax
- Verify
<txdName>and<modelName>match your stream files - Confirm all required meta files are listed in both
filesanddata_filesections of the manifest - Check that
.yftand.ytdfiles aren't corrupted (open them in ModWorks to verify)
Automating the Conversion
ModWorks includes an RPF-to-FiveM conversion tool that automates most of this process. Point it at an RPF archive or a folder of extracted mod files, and it will:
- Extract all assets from RPF archives
- Create the
stream/andmeta/folder structure - Generate a
fxmanifest.luawith the correctdata_fileentries - Flag potential issues like missing textures or naming conflicts
This saves significant time when converting multiple mods, especially vehicle packs where each vehicle needs its own meta file entries.
Converting Other Mod Types
The process above focuses on vehicles since they're the most common conversion, but the same principles apply to other mod types:
Ped models — Stream .ydd and .ytd files, use PED_METADATA_FILE and PED_PERSONALITY_FILE data types.
Map props — Stream .ydr and .ytd files, use YMAP data types for placements.
Weapons — Stream model and texture files, use WEAPONINFO_FILE and WEAPON_ANIMATIONS_FILE data types.
MLOs (interiors) — Stream .ytyp, .ymap, and associated models. MLO conversion is more complex and often requires adjusting coordinates and entity references.
Common Mistakes
Forgetting to list meta files in files block. The data_file entry alone isn't enough — the file must also appear in files or FiveM won't send it to clients.
Using __resource.lua instead of fxmanifest.lua. The old __resource.lua format still works but is deprecated. Always use fxmanifest.lua with fx_version 'cerulean' for new resources.
Not matching texture dictionary names. The .ytd filename in your stream folder must exactly match the <txdName> in vehicles.meta. Case sensitivity varies by platform.
Including unnecessary files. Don't stream the entire contents of an RPF if the vehicle only needs a few files. Extra files waste bandwidth and can cause conflicts.
Further Reading
- How to Optimize YTD Textures for FiveM — Reduce file sizes and fix streaming issues
- GTA V File Formats Explained — Understand YDR, YTD, YFT, and meta files
- Best OpenIV Alternative for GTA V in 2026 — Tools for RPF extraction and more