Tracks and Resource Pack¶
Run /radio zip after changing the music library. The command scans the source files, converts non-OGG audio, reads track metadata, updates tracks.yml, and builds the Minecraft resource pack.
Supported source formats¶
The default scan list is:
Ready-to-use OGG Vorbis files are copied and inspected directly. Other formats are converted to OGG with FFmpeg.
Track IDs and metadata¶
The filename becomes a lowercase track ID:
| Source file | Track ID |
|---|---|
Lobby Theme.ogg |
lobby_theme |
DJ-Test #2.mp3 |
dj_test_2 |
Café.wav |
cafe |
Embedded title and artist metadata is used when available. Otherwise, the original filename becomes the title. Duplicate normalized IDs receive numeric suffixes.
Add or remove audio files in tracks/, then run /radio zip again. Do not add new tracks manually to tracks.yml.
Conversion settings¶
channels: 1produces mono audio and is recommended for positional sound.sample-rate: 44100works with all supported server versions.vorbis-qualityaccepts0through10; higher values increase quality and file size.cache-converted-audioreuses OGG output when the source file has not changed.
FFmpeg and FFprobe¶
If a non-OGG source requires conversion, the plugin searches the server PATH and common installation locations. When tools are unavailable, it attempts to download the correct Windows x64, Linux x64, or Linux ARM64 build into the plugin's tools/ directory.
If automatic installation is blocked by the hosting provider:
- Download FFmpeg and FFprobe from ffmpeg.org.
- Put both executables in
plugins/<edition>/tools/. - On Linux, ensure both files are executable.
- Run
/radio zipagain.
OGG-only libraries do not require FFmpeg or FFprobe.
Run /radio zip again after:
- adding, replacing, renaming, or deleting tracks;
- changing maximum radio distances;
- updating from a build that changes generated sound definitions.
Hosting modes¶
External¶
EXTERNAL is the default. Upload the ZIP to a host that provides a direct HTTP or HTTPS response:
Links to a web page, cloud-drive preview, or permission screen will not work. The URL must return the ZIP itself.
Built-in¶
resource-pack:
hosting-mode: BUILTIN
builtin:
port: 8123
public-url: "https://radio.example.com/resourcepack.zip"
The plugin listens on port, while public-url is sent to players. The plugin cannot discover your public domain, reverse proxy, firewall, or NAT mapping.
Local addresses
127.0.0.1 works only when the Minecraft client runs on the server computer. It is not a public address.
Required pack behavior¶
resource-pack:
required: true
required-kick-delay-seconds: 20
send-on-join: true
join-delay-ticks: 20
notify-on-load: false
Vanilla radio playback waits until Minecraft confirms that the pack loaded. When the pack is required, refusal and download failure use the configured grace period before disconnecting the player.