# Voice lines

Every word dispatch says is a short audio clip in `lwk_control_assets`. Replace them with your own voice, add variants, or add the name of an addon car.

## How clips are picked

Clips live in `lwk_control_assets/nui/voice/<key>_<n>.ogg`. Each reply has a key, like `name_return`, and a random variant is picked each time. To use your own voice, replace a file. To add a variant, add `<key>_<n+1>.ogg`.

## Plate and name readbacks

A plate check is built from parts:

| Folder | Holds |
|---|---|
| `nui/voice/letters/` | Phonetic letters and digits for plates |
| `nui/voice/vehicle/` | `year_1960` to `year_2030`; 16 base colours (names like "Metallic Black" or "Hot Pink" are mapped down to them); about 90 makes, e.g. `make_bravado`, `make_ford`; about 700 base-game models named after their display names, e.g. `model_buffalo_s` |
| `nui/voice/places/` | `street_<name>` for all 226 named roads, `zone_<code>` for the game's 92 areas, and `poi_<clip>` for hospitals, stations and the impound |

A word without a clip is skipped, so a missing model just isn't said.

### Adding an addon car

Drop in `nui/voice/vehicle/model_<name>.ogg`, where `<name>` is the car's display name in lowercase with anything that isn't a letter replaced by `_`. A car that comes with a spawn name like `buffalo2` is turned into its display name in game first.

> [!TIP]
> With `Config.Debug = true`, the server console prints each stopped car's raw year, colour, make and model, so you can see the exact name to use. `/controlplate 4ABC123 2015 Black Bravado Buffalo` plays a readout without a traffic stop.

## Making clips

The shipped voice is [Kokoro](https://huggingface.co/hexgrad/Kokoro-82M) (Apache-2.0, voice `af_heart`) through a 300-3400 Hz radio filter. Your own recordings will sound right if you give them the same treatment: band-pass 300-3400 Hz, a little compression, mono `.ogg`.

> [!NOTE]
> Changing files in `lwk_control_assets` makes every player download it again on their next join. Do voice changes in one go rather than a file a day.
