> For the complete documentation index, see [llms.txt](https://acestudios.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://acestudios.gitbook.io/docs/roleplay/live-radio/advanced-configuration.md).

# Advanced Configuration

Fine-tuning in config\_advanced.lua — most servers never need it.

`config_advanced.lua` holds fine-tuning that most servers never touch. **Anything set in `config.lua` wins over this file** — it only fills in values `config.lua` doesn't set.

## General

| Option                       | Default                                  | Description                                                                                                                                                           |
| ---------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Config.Frequency`           | `{ Min = 1.0, Max = 200.0, Step = 0.1 }` | Frequencies players can host on. With `Step = 0.1`, a typed `93.74` becomes `93.7`.                                                                                   |
| `Config.MinListenTimeToRate` | `60`                                     | Seconds a player must listen before they can rate a station.                                                                                                          |
| `Config.FetchTrackTitles`    | `true`                                   | Looks up track titles/thumbnails on the server. `false` shows the website name instead.                                                                               |
| `Config.GenerateItemFiles`   | `true`                                   | Writes item definitions for your inventory to the `items/` folder on start. See [Commands, Exports & Items](/docs/roleplay/live-radio/commands-and-exports.md#items). |

## Car radio

```lua
Config.CarRadio = {
    HearingDistance     = 12.0, -- meters, doors closed
    OpenHearingDistance = 30.0, -- meters, a door open or roof down
    OutsideVolume       = 0.6,  -- 0.0 - 1.0
    RequireEngine       = true, -- silent while the engine is off
}
```

## Signal fade

```lua
Config.SignalFade = {
    FadeStart     = 0.7,  -- starts fading after 70% of the range
    StaticVolume  = 0.35, -- 0.0 - 1.0
    Dropouts      = true,
    IndoorPenalty = 0.3,  -- signal lost indoors, 0.0 - 1.0
}
```

## Music ducking

```lua
Config.MusicDucking = {
    DuckVolume = 0.25, -- music volume while someone talks
}
```

## Headphones

```lua
Config.Headphones = {
    Command = 'headphones', -- false = no command
    PutOnAnimation   = { Dict = 'mp_masks@standard_car@ds@', Name = 'put_on_mask', Duration = 800 },
    TakeOffAnimation = { Dict = 'missfbi4', Name = 'takeoff_mask', Duration = 1000 },
    Prop = {
        Model    = 'ba_prop_battle_headphones_dj',
        Bone     = 31086, -- head
        Offset   = { 0.09, 0.0, 0.0 },
        Rotation = { 0.0, 90.0, 180.0 },
    },
}
```

`Command` only works when `Config.Headphones.Item` (in `config.lua`) isn't set — with an item, players use the item instead. Set `PutOnAnimation`, `TakeOffAnimation` or `Prop` to `false` to turn each one off. `Duration` is in milliseconds.

## Boombox

```lua
Config.Boombox = {
    Command          = 'boombox', -- false = no command
    Model            = 'prop_boombox_01',
    HearingDistance  = 35.0,
    Volume           = 0.8,
    MaxAudible       = 3,   -- boomboxes one player hears at once
    InteractDistance = 1.8,
    PlaceDistance    = 5.0, -- how far away players can place it
    MaxSlope         = 30,  -- steepest surface in degrees
    RotateStep       = 15,  -- degrees per scroll wheel tick
}
```

## DJ deck

A boombox for parties: much further range and full volume.

```lua
Config.DJDeck = {
    Command          = 'djdeck', -- false = no command
    Model            = 'prop_dj_deck_02',
    SpeakerModel     = 'prop_speaker_01', -- placed next to the deck; the music comes out of it
    SpeakerDistance  = 15.0,  -- max meters between the deck and its speakers
    MaxSpeakers      = 2,     -- speakers per deck (1 - 8)
    HearingDistance  = 100.0,
    Volume           = 1.0,
    MaxAudible       = 2,     -- decks one player hears at once
    InteractDistance = 2.0,
    PlaceDistance    = 5.0,
    MaxSlope         = 30,
    RotateStep       = 15,
}
```

## Station community

Times below are in seconds.

```lua
Config.Community = {
    MaxMessages           = 60,  -- kept per station; older ones scroll away
    MessageLength         = 200,
    ChatCooldown          = 1.5, -- between a listener's messages
    Reactions             = { '❤️', '🔥', '😂', '👏', '🎵', '👍' },
    ReactionCooldown      = 0.4,
    MaxReactionsPerMinute = 30,
    RequestLength         = 120,
    RequestCooldown       = 60,  -- between a listener's song requests
    MaxRequestsPerPlayer  = 2,   -- pending at once
    MaxPendingRequests    = 25,  -- pending at once, whole station
    MaxPinned             = 3,
}
```

## Voice & timing

| Option                       | Default  | Description                                                                                                         |
| ---------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `Config.VoiceChannelOffset`  | `100000` | pma-voice radio channels used by broadcasts start here. Change only if another radio script uses the same channels. |
| `Config.FallbackTrackLength` | `240`    | Seconds a track is assumed to last until its real length is known.                                                  |
| `Config.RangeCheckInterval`  | `30`     | Seconds between out-of-range checks.                                                                                |
