config/locations.lua, or build them in the booth manager. The in-game route is easier and is what most people use — this page covers the config shape, which is also what the manager writes.
The shape
Add an entry toConfig.DefaultLocations. Every field is documented inline in the file.
Config booths are read-only at runtime. A database booth with the same
id overrides the config entry — and deleting that database row restores the config entry on the next reload.Sound points
This is the part worth understanding, because it’s what makes a club sound right. A booth has one or more sound points, each with its own audible radius. The loudest point you’re inside wins. That’s how a 55 m main stage and a 12 m side bar coexist at the same venue without one drowning the other.Falloff curves
On top of the curve:
vehicleMuffle applies only inside a sealed vehicle, and indoorBoost applies only when the listener and the emitter share an interior.
Effect emitters
effectPoints places individual lighting emitters around the venue. Each one is typed:
Up to 24 per booth, capped at 12 lights and 16 lasers per rig. Each emitter carries a heading, which is the direction a beam sweeps from.
Booths without a prop
Setbooth.spawn = false for an MLO that already contains a DJ booth. The interaction still registers — the script places a box zone at the anchor instead of attaching to a prop.
Per-booth capability
Reloading
Booths added toconfig/locations.lua need a resource restart. Booths in the database can be reloaded live with /djreload, and edits saved in the booth manager push to everyone immediately.
