Config Files
All configuration is done inside config.lua. The file is unescrowd and fully editable.
Core Settings
Config.Locale = 'en'
Sets the language. Must match a file in the locales/ folder. Currently supported: en, sl.
Config.Debug = false
When true, prints debug output to the server and client console. Useful for troubleshooting.
Config.DefaultVolume = 0.3
Default audio volume for booths that don't specify their own. Range: 0.0 – 1.0.
Config.DefaultDistance = 30.0
Default xsound broadcast radius in metres for booths without an override.
Config.CooldownTime = 3000
Milliseconds a player must wait between DJ booth actions. Prevents spam.
Config.EnableJob2 = false
When true, a player's ESX secondary job (job2) is also checked against booth.job. Useful for servers using ESX's dual-job system.
Config.VolumeMin = 0.01
Config.VolumeMax = 1.0
Server-side volume clamp limits. All client input is validated against these values.
Config.DistanceMin = 5.0
Config.DistanceMax = 100.0
Server-side distance clamp limits in metres.
Config.MaxPlaylists = 10
Maximum number of named playlists per booth.
Config.MaxPlaylistTracks = 20
Maximum number of tracks per individual playlist.
Live Radios
You can define preset live radio streams that DJs can quickly play.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Display label shown in the context menu |
url | string | ✅ | Direct stream URL |
Example
Config.LiveRadios = {
{
name = 'Radio Veseljak',
url = 'https://live.radio.si/Veseljak',
},
{
name = 'Radio Center',
url = 'https://live.radio1.si/Radio1',
},
}
Booth Definitions
Booths are defined in Config.Booths. Each booth is a table with the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✅ | Unique identifier used as the xsound sound name. Must be unique across all booths. |
name | string | ✅ | Display label shown in the context menu title bar. |
coords | vec3 | ✅ | World position of the booth prop. |
targetRadius | number | ✅ | ox_target interaction sphere radius in metres. |
soundRadius | number | ❌ | xsound broadcast radius override. Defaults to Config.DefaultDistance if nil. |
job | string | ❌ | Required ESX job name. Set to nil for public access. |
volume | number | ❌ | Initial volume override. Defaults to Config.DefaultVolume if nil. |
Example
Config.Booths = {
{
id = 'vu',
name = 'Vanilla Unicorn',
coords = vec3(120.5514, -1281.0736, 29.4805),
targetRadius = 1.5,
soundRadius = 35.0,
job = 'police',
volume = nil,
},
}
To make a booth accessible to everyone regardless of job, set job = nil or simply omit the field.
You can define as many booths as you need by adding more entries to Config.Booths. Each id must be unique.