Browse docs
Boombox
Sky DJ includes four mobile boombox models: Classic, Retro, Field and Ivory. Each owner can have one deployed or stored device. Boomboxes use their own controls and online links; the club MP3 library remains separate.
Place first, then open the controls
The default /boombox command enters placement directly when you have no active device. Using the configured inventory item follows the same flow. The music panel opens only after placement succeeds.
- Run
/boombox, or use the boombox item when item mode is enabled. - Choose a ground position with the actual 3D ghost. The placement HUD shows the controls below.
- Press Enter at a valid position to place the device and open its panel. Backspace cancels without consuming an item.
- Reopen a nearby device through its Sky interaction. The command also opens your existing active device when you are close enough; it does not create a second one.
| Placement control | Action |
|---|---|
| Page Up / Page Down | Cycle the four models when placing a new device |
| Up / Down arrows | Adjust placement distance |
| Left / Right arrows | Rotate |
| Enter | Confirm a valid ground position |
| Backspace | Cancel |
Moving an existing device keeps its model. Interaction uses the configured Sky target provider when enabled; otherwise it uses Sky's TextUI/help adapter and the interaction key.
Shared YouTube and personal Spotify
The drawer has separate YouTube, Spotify, Queue and Settings pages. The shared player bar contains the current track, play/pause, next and progress controls.
| Source | How to use it | Who hears it |
|---|---|---|
| YouTube | Paste a supported video link, then choose Play link or Add to queue | Nearby listeners in the same routing bucket, with distance attenuation and shared playback timing |
| Spotify | Paste a supported https://open.spotify.com/ link, then choose Open Spotify player | Only the user of that visible Spotify Embed |
Spotify does not require a matching YouTube link. Its player is personal: it does not enter the shared queue, use the boombox's spatial range or synchronize nearby listeners. Spotify decides whether full playback or a preview is available. Stop player, changing pages, closing or reopening the panel, entering placement and storing the device remove the Embed and stop its playback.
Existing saved tracks with Spotify metadata and an explicit YouTube mapping remain compatible; their shared sound still comes from YouTube. New Spotify selections do not create those mappings. No Spotify token or stream extraction is part of this player.
YouTube playback can continue while the panel is closed. Video availability, provider restrictions, autoplay and advertisements can affect playback. Test shared playback with two actual FiveM clients before relying on a particular video or provider setup.
Volume, fixed range and access
Players can change volume and repeat. The audible radius is fixed by the server for every boombox: 25 metres by default. There is no per-device range slider. Administrators change the shared radius under Settings → Boombox; BoomboxMaxRange is the equivalent Lua setting in file mode and accepts 3–50 metres.
| Action | Access |
|---|---|
| View a nearby active device | Nearby players |
| Shared playback controls | Owner, an administrator, or nearby players when shared control is enabled |
| Change shared control, move, carry or pack | Owner only; carrying must also be enabled globally |
| Store another player's device | Administrator; the owner's claim is preserved |
An administrator storing another player's device does not receive its item. Packing returns an item only if that device consumed one during placement, including its recorded metadata. A device placed in command-only mode cannot produce an item if the server later enables item mode.
New devices start with their world display off. The player panel does not expose the retired floating-display/DUI controls.
Enable inventory placement
Command-only placement is the default:
BoomboxEnabled = true,
BoomboxRequireItem = false,
BoomboxItem = 'sky_boombox',
BoomboxCommand = 'boombox',
Edit these entries inside the existing Config table only in file mode. In SQL mode, use /djadmin → Settings → Boombox. See Configuration before changing modes.
To require an item, enable Require inventory item and make the configured item available in your inventory catalogue. Sky DJ registers the definition and usable action through Sky.FW.RegisterItem and Sky.FW.RegisterUsableItem; the selected Sky Base inventory integration handles delivery. Existing definitions are preserved. This does not add another required inventory provider or extend Sky DJ's ESX framework support.
For ox_inventory, add the item to data/items.lua if it is not already defined:
['sky_boombox'] = {
label = 'Boombox',
weight = 2500,
stack = false,
close = true,
consume = 0,
},
Do not add a client export, event or consuming action to this entry. Sky Base supplies the usable-item callback; Sky DJ removes the item only after successful placement. Restart the inventory after catalogue changes during your normal maintenance window. Supply items through your existing inventory or administration tools; Sky DJ does not add a shop or item-grant command.
Limits and restart recovery
The default server cap is 32 deployed or stored devices, adjustable from 1 to 64. The volume ceiling is 70%, and each client plays the nearest two audible devices by default. Global settings also control carrying and the number of simultaneous audible boomboxes.
Devices and outstanding item claims are journaled in SQL. Disconnecting stores the device; after a resource or server restart, devices are stored and paused. The owner can use /boombox to reclaim the recorded item and place again. Command-only devices can be cleared and placed again without an inventory return. Disabling new boombox use still allows owners to reclaim existing claims.
Changing the global item name does not rewrite outstanding claims: they keep their original item and metadata. Keep the boombox journal when updating. If an interrupted inventory operation requires administrator recovery, audit the inventory and journal first; see Troubleshooting. Deleting the journal can lose legitimate claims.