betterxSound
Configuration
Every option in config.lua.
All options live in config.lua.
Memory
-- Seconds with no sound playing before the audio browser is recycled to reclaim memory.
-- 0 disables. Recycling only happens while nothing is playing, so it never interrupts music.
config.idleDuiRecycleSec = 20
-- Max simultaneous YouTube player instances (default 6). Players are pooled and reused across
-- songs via loadVideoById, so back-to-back playback never keeps spawning players CEF cannot free.
-- Total YouTube memory is bounded by this number regardless of how many songs are played.
config.youtubePoolMax = 6Since v1.1, YouTube players are pooled. A jukebox that changes tracks on the same sound id reuses
one player; new-id-per-track playback reuses freed players up to youtubePoolMax. Memory stays
flat during continuous playback instead of rising to a ceiling.
YouTube track length is not shown — end-of-track detection uses the player state, not the duration. (An earlier build read length via the YouTube Data API, but that required a key on the client, which would be exposed, so it was removed.)
Anti-abuse
config.security = {
enabled = true,
rate = { count = 5, windowMs = 10000 },
maxVolume = 1.0,
allowedExt = { "ogg", "mp3", "wav" },
allowedDomains = { "youtube.com", "youtu.be" },
broadcastAce = "",
log = true,
}| Field | Meaning |
|---|---|
enabled | Master switch for all checks. |
rate.count / rate.windowMs | Max trigger events a player may fire per window (ms). |
maxVolume | Volume is clamped into [0, maxVolume]. |
allowedExt | Allowed file extensions for emulator sound files. |
allowedDomains | Allowed hosts for crewphone remote links. |
broadcastAce | ACE permission required to broadcast to everyone. Empty = no gate (default). |
log | Print a one-line warning when an event is rejected. |
See Security for how these are applied.
General
config.RefreshTime = 300 -- how often a player's position is sent to the UI (ms)
config.interact_sound_file = "ogg" -- default extension for the interact-sound emulator
config.interact_sound_enable = false -- enable the interact-sound emulator
config.distanceBeforeUpdatingPos= 40 -- how close a player must be before position updates start
config.AddonList = {
crewPhone = false, -- enable the crewphone addon
}