WhereiamL
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 = 6

Since 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,
}
FieldMeaning
enabledMaster switch for all checks.
rate.count / rate.windowMsMax trigger events a player may fire per window (ms).
maxVolumeVolume is clamped into [0, maxVolume].
allowedExtAllowed file extensions for emulator sound files.
allowedDomainsAllowed hosts for crewphone remote links.
broadcastAceACE permission required to broadcast to everyone. Empty = no gate (default).
logPrint 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
}

On this page