<!-- fivemad.com, Markdown source of https://fivemad.com/docs/tools/mod-converter -->
> Source: https://fivemad.com/docs/tools/mod-converter
> Section: Tools
> Tags: vehicles, weapons, peds, clothing, addon cars, dlc.rpf, fxmanifest, converter
> Tool: https://fivemad.com/tools/mod-converter
> Last updated: 2026-09-25
> Site map for assistants: https://fivemad.com/llms.txt

# Mod Converter

Turn a GTA5-Mods car, weapon, ped or clothing pack into a FiveM resource: what it accepts, what it writes, how it tells the kinds apart, and what to do with an encrypted dlc.rpf.

The Mod Converter takes a mod the way you downloaded it and gives back a FiveM resource: a `stream/` folder with the model files named the way the game looks them up, the metas it needs, and an `fxmanifest.lua` that loads all of it. It handles cars, weapons, peds and freemode clothing. Everything runs in your browser. No file is uploaded anywhere.

## What it is for

A GTA V mod and a FiveM resource are not the same thing. A mod expects you to drop a `dlc.rpf` into `dlcpacks` and edit `dlclist.xml`, which FiveM cannot do: it refuses to load extra DLC archives, so the pack has to be unpacked into loose stream files plus `data_file` lines in a manifest. Doing that by hand means reading five metas, matching model names to file names, guessing which `data_file` type each meta needs and hoping you did not miss one.

This tool does that part. It is for server owners installing something they bought or downloaded, and for anyone who keeps converting the same kind of pack over and over.

## Quick start

1. Open the tool and use **Choose a folder** (the folder you unzipped), **Open a .zip or .rpf**, or drag the folder, zip or `dlc.rpf` onto the card.
2. Wait for it to read the files. A big pack with a `dlc.rpf` takes a second or two.
3. Read the verdict at the top: what it found, how many things it had to fill in, and how many checks failed.
4. Look through **What it found**. Every car, weapon, ped and clothing slot gets a card, with a note for anything that was renamed, copied or generated.
5. Change the resource name or any of the switches if you want. The conversion runs again immediately.
6. Press **Download the resource**, unzip it into your server's `resources` folder and add `ensure <name>` to `server.cfg`.

No mod at hand? **Try a sample** loads a made up one, broken in the usual ways.

> [!NOTE]
> The resource folder is named `fivemad_<the mod's name>` by default, so you can see at a glance where a folder in your resources list came from. It is an editable field. Change it to whatever you like before you download.

## What it converts

| Kind | What goes in | What comes out |
|---|---|---|
| Car | `.yft`, `_hi.yft`, `.ytd`, tuning parts, the vehicle metas | `stream/` plus `data/` with `HANDLING_FILE`, `VEHICLE_METADATA_FILE` and the rest |
| Weapon | the `w_` models and the weapon metas | `stream/` plus `data/` with `WEAPONINFO_FILE` and the rest |
| Ped | `<model>.ydd` + `.ytd`, or `<model>.yft` plus a folder of component files | `stream/` plus `data/peds.meta` and `data_file 'PED_METADATA_FILE'` |
| Freemode clothing | `jbib_000_u.ydd`, `jbib_diff_000_a_uni.ytd`, `p_head_000.ydd` and friends | either a collection of its own, or a replacement of the drawables the mod names. See [Clothing](#clothing-add-it-or-replace-something) |

### How it tells them apart

From the metas that parsed and from the file names, never from the mesh.

A car ships a model and its `_hi` twin. A weapon model is called `w_…`. A ped is named after itself. The one that needs care is a ped against clothing, because both are skinned drawables and look identical to a file reader.

The rule is the name. A file called `jbib_000_u.ydd`, `uppr_diff_003_a_whi.ytd` or `p_head_000.ydd` is **a component of some ped, never a ped**. Which ped it belongs to is the only question left:

- a `mp_m_freemode_01^` or `mp_f_freemode_01_<collection>^` prefix: freemode clothing
- a prefix or a folder named after anything else, with that name's `.yft` next to it: that ped's own component files
- nothing says: freemode clothing, because that is what a loose `jbib_000_u.ydd` on gta5-mods is

## What it accepts

### Loose files

The common case. A folder with `car.yft`, `car_hi.yft`, `car.ytd`, or `myped.ydd` and `myped.ytd`, or a pile of `jbib_*.ydd` and `jbib_diff_*.ytd`. It does not matter how deep the files are nested, what the folders are called or whether the names are in capitals.

### A readme with the metas pasted in

A lot of mods print the `vehicles.meta`, `handling.meta`, `carcols.meta` and `carvariations.meta` blocks inside a text file and tell you to paste them in yourself. Those blocks are read straight out of the text and turned back into real meta files. The report says which parts came from the readme, so you know which values were never in a file.

### An existing FiveM resource

Drop one that already has `stream/` and an `fxmanifest.lua` and it is read, corrected and written out again: a `data_file` type that does not exist gets the right one, a meta that was never listed in `files { }` gets listed, and a glob that matched nothing becomes a real path.

### An add-on dlc.rpf

See [About dlc.rpf](#about-dlcrpf) below. In short: one a modder built opens here, one taken from the game does not.

### Several cars in one download

You choose one resource for the whole pack, or one resource per car so you can start and stop them separately.

> [!WARNING]
> `.rar` and `.7z` cannot be opened in a browser. Unpack those with 7-Zip or WinRAR first and drop the folder. A `.oiv` installer is a zip with a different extension, so renaming it to `.zip` usually works.

## About dlc.rpf

Whether a `dlc.rpf` opens here comes down to one number in its first 16 bytes.

- An archive a modder built in **OpenIV or CodeWalker** is written with its file table unencrypted. The models, textures and metas come straight out and the conversion is the same as for loose files. This is what most add-on packs on gta5-mods are.
- An archive **taken out of the game**, or one run through **ArchiveFix** so it works without OpenIV.asi, is encrypted with a key that only exists inside `GTA5.exe`. This site does not carry game keys and will not, so it cannot be opened here.

When you drop the second kind the tool says so, names the archive and tells you what to do: open it in OpenIV or CodeWalker on your own machine, drag out the `.yft`, the `.ytd` and the `data` folder, and drop those here instead. It does not fail with a vague error and it does not pretend to have tried.

## What it writes

| Path | What is in it |
|---|---|
| `stream/` | The model and texture files, renamed the way the game looks them up |
| `data/` | The metas, one file per kind (`peds.meta` for a ped) |
| `<ped>_<collection>.meta` | A clothing collection's `ShopPedApparel` meta, at the resource root |
| `convert_in_codewalker/` | A clothing collection's `.ymt` XML, the one file a browser cannot compile |
| `fxmanifest.lua` | `fx_version 'cerulean'`, `game 'gta5'`, a `files { }` list and one `data_file` line per meta |
| `client.lua` | An `AddTextEntry` per car or weapon, so menus show a real name |
| `README.md` | The same report you see on the page, so it travels with the resource |

Stream names follow the game, not the download:

- a car's model becomes `<modelName>.yft` and its textures `<txdName>.ytd`
- a ped's files become `<model>.ydd` / `.ytd` / `.yft`; a ped whose components sat in a folder inside the archive keeps that folder in the name with a caret, `<model>^uppr_000_r.ydd`, which is how FiveM flattens a streamed ped. Its props go in as `<model>_p^p_head_000.ydd` and the entry names them with `<PropsName>`
- clothing becomes `<ped>_<collection>^jbib_000_u.ydd` in a collection, or `<ped>^jbib_000_u.ydd` as a replacement

A meta the mod shipped as one clean file is **copied through as it is**, values and all. It is only rebuilt when something had to change: two files of the same kind merged into one, entries recovered from a readme, or a mod kit wired up to the car that was supposed to use it. The Files tab says, per file, where it came from.

### data_file types

The type is picked from what is inside the file, not from its name, so a meta saved as `vehicles.meta.txt` or `handling.xml` still gets the right line.

Vehicles:

```lua title="fxmanifest.lua"
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.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 'CONTENT_UNLOCKING_META_FILE' 'data/contentunlocks.meta'
data_file 'VEHICLE_SHOP_DLC_FILE' 'data/shop_vehicle.meta'
```

Weapons:

```lua title="fxmanifest.lua"
data_file 'WEAPONINFO_FILE' 'data/weapons.meta'
data_file 'WEAPON_METADATA_FILE' 'data/weaponarchetypes.meta'
data_file 'WEAPON_ANIMATIONS_FILE' 'data/weaponanimations.meta'
data_file 'WEAPONCOMPONENTSINFO_FILE' 'data/weaponcomponents.meta'
data_file 'PED_PERSONALITY_FILE' 'data/pedpersonality.meta'
data_file 'LOADOUTS_FILE' 'data/loadouts.meta'
data_file 'DLC_WEAPON_PICKUPS' 'data/pickups.meta'
```

Peds and clothing:

```lua title="fxmanifest.lua"
data_file 'PED_METADATA_FILE' 'data/peds.meta'
data_file 'SHOP_PED_APPAREL_META_FILE' 'mp_m_freemode_01_mybrand.meta'
data_file 'ALTERNATE_VARIATIONS_FILE' 'data/pedalternatevariations.meta'
data_file 'PED_OVERLAY_FILE' 'data/overlays.xml'
```

They are written in the order Rockstar's own DLCs load them, which rules out a class of problem where a mod kit loads before the car that uses it.

Two types people write that do not exist get corrected on the way through. `DLCTEXT_FILE` is not a type FiveM has a loader for, so a line using it loads nothing: `dlctext.meta` is dropped and the names go into `client.lua` instead. And `shop_vehicle.meta` is `VEHICLE_SHOP_DLC_FILE`, not `VEHICLE_SHOP_FILE`.

## When the mod is missing something

Nothing is invented quietly. Every one of these is a switch you can turn off, and every one is reported when it fires.

| Missing | What happens |
|---|---|
| `handling.meta` | An entry is written from one of the templates in the Vehicle Handling Editor, and the report says the numbers are not the author's. Turn the switch off and it tells you to supply one instead. |
| `_hi.yft` | The normal model is copied to that name, so the car does not flicker or fall through the world up close. It will not look sharper up close until the author ships a real one. |
| carvariations entry | One is written with the default colour and `0_default_modkit`, so tuning menus are not empty. |
| `vehicles.meta` | One is generated from the model files, with `LAYOUT_STANDARD` and class `VC_SPORT`. |
| `.ytd` | Nothing is generated. A texture dictionary cannot be made up, so the report says the car will render untextured and that the file has to come from the mod. |
| `peds.meta` entry | One is written from a real base game civilian entry. The ped then walks, talks and reacts like an ambient ped. Change the ped type, the walk and the voice in `data/peds.meta` if it should be something else. |
| `pedalternatevariations.meta` | Nothing is generated. Hair that has to shrink under a hat, or a shoe with a heel, needs one; a file the mod ships is carried over, one is never invented. |

> [!IMPORTANT]
> A car with generated handling drives on template numbers, not the ones the mod author tuned. Open it in the [Vehicle Handling Editor](/tools/vehicle-handling-editor) before it goes on a live server.

## Clothing: add it or replace something

These are two different resources, not two settings of one, and it is the thing people get wrong.

### Add it as a collection (the default)

The pack gets a name of its own and the clothes get drawable numbers of its own, so nothing the base game ships is touched. Your players keep every outfit they had, and the new ones sit after them.

```text
fivemad_mybrand/
  fxmanifest.lua
  mp_m_freemode_01_mybrand.meta          <- ShopPedApparel
  stream/
    mp_m_freemode_01_mybrand.ymt         <- you make this, see below
    mp_m_freemode_01_mybrand^jbib_000_u.ydd
    mp_m_freemode_01_mybrand^jbib_diff_000_a_uni.ytd
  convert_in_codewalker/
    mp_m_freemode_01_mybrand.ymt.xml
```

A `.ymt` is a binary RAGE meta container and a browser cannot compile one, so the XML ships instead. Open it in CodeWalker (RPF Explorer, Tools, Import XML), put the `.ymt` it writes into `stream/`, delete `convert_in_codewalker/`, and the collection is done. Until then the clothes are streamed but the game does not know they exist. The [YMT Creator](/tools/ymt-creator) opens the same XML if you want to change a slot, a texture race or a heel height by hand.

### Replace the drawables it names

The files keep the numbers the mod gave them and stream as `mp_m_freemode_01^jbib_000_u.ydd`, which overwrites that exact drawable for every player on the server. Nobody keeps the outfit that was there before.

```text
fivemad_mybrand/
  fxmanifest.lua
  stream/
    mp_m_freemode_01^jbib_000_u.ydd
    mp_m_freemode_01^jbib_diff_000_a_uni.ytd
```

No meta and no `data_file` line. A streamed file whose name is the ped, a caret and the drawable is read instead of the game's own copy, and that is the whole resource.

### Which one you get

Left on **Whatever the mod's own file names say**, a pack whose files already carry a freemode ped name and a caret is converted as a replacement, because that prefix is the author naming the drawable they meant to take. Everything else is added as a collection. Both choices are in the dropdown at all times.

> [!WARNING]
> Each add-on collection uses one of the freemode ped's spare `.ymt` slots and current game builds only have about three per gender. If a collection's clothes never show up and nothing is in the server log, that is the first thing to check.

## Add-on or replace

A lot of car downloads ship both halves: an `Add-On` folder with the car under its own model name, and a `Replace` folder with the same car under a base game name.

Converting both would give you the same car twice, so the add-on is taken by default and the other half is left out, with a note saying so. You can switch to the replace version, but understand what it does: every car of that model on the server becomes this one, traffic included, and any other resource that touches the same model fights with it.

## The checks tab

For a car or a weapon, the output is run through the [Vehicle Pack Validator](/tools/vehicle-pack-validator) before you download anything, the same checks you would run on the finished resource. That is there so a conversion can never hand you something that tool would reject. A ped or a clothing resource gets no checks tab: that validator is a vehicle tool and would only report that the resource is not a car.

Anything still listed there is a fact about the mod's own assets, not a wiring problem. The usual one is an oversized `.ytd`: FiveM warns about anything over 16 MiB of memory and says assets over 48 MiB will cause streaming problems. The [YTD Optimizer](/tools/ytd-optimizer) shrinks those.

## Limits

- It does not open the models. A broken mesh, a missing bone or a wrong embedded texture is not something it can see. Use the [Drawable Studio](/tools/drawable-studio) for that.
- A clothing collection is not finished until the `.ymt` XML is imported in CodeWalker. Nothing in a browser can write that file.
- A ped's `.ymt` variation file is carried over when the mod ships one and is never written from nothing. A ped that needs one and has none shows only its first component.
- An encrypted `.rpf` cannot be opened, and neither can a password protected zip.
- Engine sound packs are carried over with their `data_file` lines, but the sounds themselves are not checked.
- A very large pack is read into memory, so a multi gigabyte archive is better unpacked first.
- The sample is made up: invented names, placeholder model files, no game or author data.

## Credit

The models, textures and metas in a converted resource belong to whoever made the mod. This tool only repacks them. Check the mod's own licence before you put it on a public server or redistribute it.
