Skip to main content

Introduction

RKT Musicfy is an immersive sound system for FiveM. It combines a Spotify-style music player, a portable Bluetooth boombox, per-vehicle radio with realistic acoustics, and a full two-deck DJ booth with crossfader — all built on true 3D spatial audio.

3D Spatial Audio

Distance-based volume rolloff, per-vehicle-class range, and dynamic door/roof muffling.

Bluetooth Handoff

Seamlessly move your session between a portable boombox and any vehicle’s radio.

DJ Booth

Two independent decks with crossfader, monitor mode, pitch control and seek.

Playlists & Search

Search YouTube directly in-game, save playlists to the database, and share public ones.

Quick Start

  1. Download: place the rkt_musicfy folder in your server’s resources directory.
  2. Dependencies: requires ox_lib and oxmysql. The xsound resource is only needed if you set Config.AudioEngine = "xsound" — by default Musicfy uses its own native audio engine.
  3. Install the search engine: run npm install inside the rkt_musicfy folder. This installs youtube-search-api, used by server/search.js to power in-game search.
  4. Start the resource: add ensure rkt_musicfy to your server configuration, after ox_lib and oxmysql.
If npm install wasn’t run, search by name will fail — direct YouTube links still work since they don’t depend on the JS search engine.

Configuration

Every setting lives in config.lua.

Commands & Keybinds

How It Works

Each player’s music session is bound to a single “sound owner” entity — either their portable boombox or the vehicle they’re in.
1

Play

Hitting play with no active entity spawns a boombox (on foot) or plays straight through the vehicle radio you’re sitting in.
2

Bluetooth Connect

Entering a vehicle while a boombox is active swaps the session to the vehicle’s radio, and vice-versa when you exit.
3

Acoustics

Vehicle sound is muffled (reduced volume and range) whenever all doors, windows and the roof are closed — and restored instantly once one opens.
4

Auto-stop

If the sound-owner entity is deleted or despawns, the session stops for every listener automatically.
Sessions are synced server-side, so anyone who joins mid-session — or is near the entity when the resource restarts — hears the music already in progress.

DJ Booth

The DJ Booth is an independent two-deck system (A and B) that broadcasts from a fixed position (Config.DJBooth), separate from any player’s personal boombox/radio session.
  • Crossfader & per-deck volume — mix between decks live.
  • Monitor mode — the DJ can preview a deck privately at full volume without it affecting the public mix.
  • Pitch control — adjustable playback rate between 0.5x and 2.0x.
  • Seek & progress sync — scrub tracks with live position updates every 250ms.
Search accepts a song/artist name (resolved through the bundled YouTube search engine) or a direct YouTube/audio link. Results can be played immediately, saved to a favorites list, or added to a playlist. Playlists are stored in the musicfy_playlists table:
Public playlists can be imported (cloned) by other players into their own library via the in-game UI.