# Custom Vehicle Images

By default the tablet UI fetches vehicle images from **`https://docs.fivem.net/vehicles/<respname>.webp`** — that covers every stock GTA V vehicle, but **not** modded cars on your server.

This page shows how to ship your own images for custom vehicles.

***

## How it works

1. You put an image file at `web/build/images/vehicles/<respname>.webp`.
2. You register the `respname` in `Config.CustomVehicleImages`.
3. The UI loads **listed** respnames from your local resource and **falls back** to `docs.fivem.net` for everything else.

***

## Steps

::::steps
### Get the vehicle image

Recommended specs:

* **Format:** `.webp` (PNG works but is larger)
* **Size:** `512 × 256`
* **Background:** transparent
* **Crop:** vehicle centered, side or 3⁄4 view


### Drop it in the right folder

Save it as `<respname>.webp` in:

```
koja-carmarket/web/build/images/vehicles/
```

The filename **must** match the spawn model exactly, in lowercase:

```
web/build/images/vehicles/mymodcar1.webp   ✅
web/build/images/vehicles/MyModCar1.webp   ❌ (case mismatch)
web/build/images/vehicles/mymodcar1.png    ❌ (wrong format unless you set up otherwise)
```

:::hint{type="info"}
If you're contributing to the source tree, drop it in `web/public/images/vehicles/` instead — Vite will copy it to `web/build/` during `bun run build`.
:::


### Register it in the config

```lua title="shared/config.lua"
Config.CustomVehicleImages = {
    'mymodcar1',
    'mymodcar2',
    'supercarx',
}
```


Names are normalized to lowercase server-side, but it's good practice to write them lowercase here too.


### Restart and test

`restart koja-carmarket`. Open the tablet — your custom vehicle should now show with the local image instead of a missing-image placeholder.

:::hint{type="warning"}
If you only added the config entry but **not** the actual file, the tablet will silently show the missing-image fallback. Double-check the file path.
:::
::::

***

## Troubleshooting

| Symptom                                   | Likely cause                                                               |
| ----------------------------------------- | -------------------------------------------------------------------------- |
| Image shows for stock cars but not modded | Respname missing from `Config.CustomVehicleImages`                         |
| Modded car shows placeholder icon         | File not in `web/build/images/vehicles/` or name mismatch (case-sensitive) |
| Everything broken after rebuild           | Did you forget to `restart koja-carmarket` after building?                 |

***

## Bulk-registering many vehicles

If you have a vehicle pack with dozens of cars, just list them all:

```lua
Config.CustomVehicleImages = {
    'audi_r8', 'bmw_m4', 'mercedes_amg',
    'ferrari_488', 'lambo_huracan', 'porsche_911',
    -- ...
}
```

No artificial cap — the lookup is an `O(1)` `Set` on the frontend.

## Related pages

- [Parking](/free/carmarket/configuration/parking) — Players can buy individual market slots within zones, pay weekly rent, and park their listed vehicles there.
- [Overview](/free/carmarket/configuration/overview) — All tunable settings live in shared/config.lua.
- [Exchange](/free/carmarket/configuration/exchange) — The exchange is the player-or-server-owned tier above zones.
- [Test Drive](/free/carmarket/configuration/test-drive) — Buyers can take a listed vehicle for a spin before committing to a purchase.
- [Configuration](/free/carmarket/configuration) — back to the section overview
