All Posts
June 28, 2026ModForge Team

How to Install Custom Cars on Your FiveM Server

Custom vehicles make your FiveM server stand out from the competition. This guide covers streaming files, fxmanifest setup, handling meta, spawn names, and vehicle shop integration.

Custom vehicles are one of the most immediately impactful additions you can make to any FiveM server. The moment a player drives something that does not exist in vanilla GTA V, they know your server is different. This guide covers the complete process of adding and streaming custom vehicles correctly.

How FiveM Vehicle Streaming Works

FiveM streams custom vehicle files to players automatically when they connect to your server. Players do not need to install anything manually — the files download from your server to their client during the connection process.

Custom vehicles are packaged as standard FiveM resources. Each vehicle or vehicle pack becomes its own resource in your resources/ folder, and you start it in server.cfg like any other resource.


Understanding Vehicle File Types

Before touching any files, understand what each file type does:

| File | Purpose | |---|---| | .yft | Vehicle model (high and low detail) | | .ytd | Vehicle textures and paint | | .ycd | Vehicle-specific animations | | vehicles.meta | Vehicle properties (doors, windows, seats, lights, horn) | | handling.meta | Physics and driving behavior | | carcols.meta | Color palette and livery options | | carvariations.meta | Which colors and extras spawn by default | | vehiclelayouts.meta | Seat positions and animations | | fxmanifest.lua | FiveM resource definition — required by every resource |


Step 1: Organize Your Vehicle Files

Create a clean resource folder structure:

resources/[vehicles]/my-vehicle-name/
└── stream/
    ├── myvehicle.yft
    ├── myvehicle_hi.yft
    └── myvehicle.ytd

The .yft, _hi.yft, and .ytd model and texture files go inside the stream/ subfolder. Meta files (.meta) go in the root of the resource folder, not inside stream/.


Step 2: Create fxmanifest.lua

Every FiveM resource requires a fxmanifest.lua at its root. Create one:

fx_version 'cerulean'
game 'gta5'

description 'My Custom Vehicle'
version '1.0.0'

data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
data_file 'HANDLING_FILE'         'handling.meta'
data_file 'VEHICLE_COLORS_FILE'   'carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
data_file 'VEHICLE_LAYOUTS_FILE'  'vehiclelayouts.meta'

files {
    'stream/*.yft',
    'stream/*.ytd',
    'stream/*.ycd',
}

Only include data_file lines for meta files that actually exist in your vehicle pack. If there is no carcols.meta, do not include that line.


Step 3: Find the Spawn Name

Open vehicles.meta and find the <modelName> tag — this is the internal spawn name you will use to call this vehicle in-game:

<modelName>myvehiclename</modelName>

Note this down. You will need it for:

  • Admin spawn commands
  • Vehicle shop configuration
  • Any job scripts that spawn this vehicle

Step 4: Add to server.cfg

Add an ensure line for your vehicle resource:

ensure my-vehicle-name

Vehicle resources have no framework dependencies, so they can be placed anywhere in your load order. Putting them together in a group makes the config easier to read:

# ── Custom Vehicles ─────────────────────────────────────────
ensure vehicle-pack-sports
ensure vehicle-pack-suvs
ensure vehicle-pack-emergency
ensure my-custom-vehicle

Step 5: Test with an Admin Spawn Command

Start your server, connect, and spawn the vehicle using your admin tool:

/car myvehiclename

If the vehicle appears and looks correct — solid textures, proper handling — the installation is complete.


Troubleshooting Vehicle Issues

Vehicle appears as a pink/black box: The .ytd texture file is not streaming. Verify it is inside the stream/ folder and listed in fxmanifest.lua under files.

Vehicle spawns invisible: The .yft model file is not streaming. Same fix as above.

Vehicle spawns but handling is wrong: The handling.meta is not loading. Check that the <HandlingName> in handling.meta matches the <handlingId> in vehicles.meta exactly.

Game client crashes when spawning: The model is corrupted, too high-polygon for FiveM's limits, or has a compatibility issue. Try a different version of the model from the source.

Wrong vehicle name showing on HUD: Check <gameName> and <vehicleMakeName> inside vehicles.meta — these control the display name.


Step 6: Add to a Vehicle Shop

Once the vehicle is working, add it to your server's vehicle shop. For qb-vehicleshop, add an entry to the shop config:

{
    model    = 'myvehiclename',      -- must match modelName in vehicles.meta
    name     = 'Display Name',
    brand    = 'Brand Name',
    price    = 75000,
    category = 'sports',
    shop     = 'pdm',
},

For ESX vehicle shop scripts, the format differs — check your specific script's documentation for the correct entry format.


Managing a Large Vehicle Library

Servers with large vehicle collections should:

  • Organize by categoryresources/[vehicles]/sports/, resources/[vehicles]/trucks/, etc.
  • Split large packs — a single resource with 100 vehicles is harder to manage than 10 resources with 10 vehicles each
  • Monitor download size — every vehicle adds to the size players download on first connection. Track your total addon size and remove vehicles that are never actually used
  • Test new vehicles in isolation — add one at a time to a test server before adding to production

Browse vehicle shop scripts and garage scripts that integrate with your custom vehicles at modforge.xyz.