GlymeraRadio - Custom Music Block with your own MP3s
Place a Glymera Radio block in your world, drop your own MP3 files into a folder, and stream them to nearby players. Owner-protected, configurable per block via a custom UI, with native distance attenuation and music ducking.
Most actual version only working for Hytale stable 5 !
Notice: This software uses libraries from the FFmpeg project under the LGPLv2.1.
GlymeraRadio bundles FFmpeg, licensed under the GNU Lesser General Public License (LGPL) v2.1. The full FFmpeg source code can be downloaded at https://ffmpeg.org/download.html. The bundled ffmpeg binary is extracted to plugins/GlymeraRadio/bin/ffmpeg and may be replaced by the user with any LGPL-compatible FFmpeg build of equal or higher version. The full LGPL v2.1 license text is included in the plugin (plugins/GlymeraRadio/LICENSE-ffmpeg.txt).
What is GlymeraRadio?
A craftable wooden radio block that plays your own MP3 collection in the world. Drop the MP3s into a folder on the server, restart, and they're available to every player who walks near a placed Glymera Radio. The block has a 6-button player UI (On/Off/Loop Single/Loop All/Last/Next), is protected so only the owner can break or configure it, and uses Hytale's native sound attenuation so the radio fades naturally with distance.
Includes its own asset pack with the custom Radio block, custom UI, and two demo tracks. Hytale's normal background music is automatically ducked when a radio plays nearby.
Features
Bring Your Own Music
Custom Radio Block
6-Button Player UI (right-click on the block)
Owner Protection
Distance-Attenuated Sound
Music Ducking
Multiple Radios in the Same World
Auto-Cleanup
Persistence
How to add your own music
1. Stop your server
2. Drop one or more .mp3 files into: <server-folder>/plugins/GlymeraRadio/music/default/ — or create additional sender folders next to it (tavern/, chillout/, etc.)
3. Start the server. Plugin converts the MP3s to OGG (about 3-5 seconds per track) and updates the block definition automatically
4. Reconnect with your client. New tracks appear in the UI list
Subfolder names should contain only letters, digits, and underscores.
How to remove songs
1. Stop your server
2. Delete the .mp3 files you no longer want from plugins/GlymeraRadio/music/<sender>/
3. Start the server. Plugin detects the orphans and removes their OGG + sound-event files automatically
That's it — no manual cleanup needed.
Demo songs
Plugin ships with two demo tracks (one is the GlymeraCraft theme). They're in plugins/GlymeraRadio/music/default/ after the first start. Delete them at any time to be rid of them — they will not be re-extracted (a marker file prevents that).
Crafting
The Glymera Radio is craftable at the Alchemy bench under the "Misc Potions" tab.
Crafting time: 5 seconds.
To disable crafting (admin-only block, only obtainable via /give), set "recipeEnabled": false in config.json. The recipe still appears in the bench UI, but clicking "Craft" cancels the action and returns the materials.
Server restart workflow
Commands
For Everyone
/radio list — List available senders
/radio info — Info about the nearest radio block
/radio set <sender> — Change the sender of the nearest radio (owner only)
/radio off — Stop the nearest radio (owner only)
For OPs Only
/radio convert — Re-run MP3 conversion immediately
/radio reload — Re-index the senders and tracks
In-game right-click on the block opens the full player UI.
Configuration
File at plugins/GlymeraRadio/config.json (created on first start):
Compatibility
License & Attribution
This plugin includes a statically linked FFmpeg LGPL build.
The plugin code itself is © Glymera, MaskedBlaze613.
Made with care by Glymera for the Hytale community
Place a Glymera Radio block in your world, drop your own MP3 files into a folder, and stream them to nearby players. Owner-protected, configurable per block via a custom UI, with native distance attenuation and music ducking.
Most actual version only working for Hytale stable 5 !
Notice: This software uses libraries from the FFmpeg project under the LGPLv2.1.
GlymeraRadio bundles FFmpeg, licensed under the GNU Lesser General Public License (LGPL) v2.1. The full FFmpeg source code can be downloaded at https://ffmpeg.org/download.html. The bundled ffmpeg binary is extracted to plugins/GlymeraRadio/bin/ffmpeg and may be replaced by the user with any LGPL-compatible FFmpeg build of equal or higher version. The full LGPL v2.1 license text is included in the plugin (plugins/GlymeraRadio/LICENSE-ffmpeg.txt).
What is GlymeraRadio?
A craftable wooden radio block that plays your own MP3 collection in the world. Drop the MP3s into a folder on the server, restart, and they're available to every player who walks near a placed Glymera Radio. The block has a 6-button player UI (On/Off/Loop Single/Loop All/Last/Next), is protected so only the owner can break or configure it, and uses Hytale's native sound attenuation so the radio fades naturally with distance.
Includes its own asset pack with the custom Radio block, custom UI, and two demo tracks. Hytale's normal background music is automatically ducked when a radio plays nearby.
Features
Bring Your Own Music
- Drop any .mp3 files into plugins/GlymeraRadio/music/<sender>/
- Plugin automatically converts them to mono OGG using a bundled FFmpeg binary — no external software, no manual steps
- Filename, length, and bitrate are auto-detected; the in-UI track names are derived from the filename and look human-readable ("My Cool Track 2024")
- Subfolders define senders (channels): music/tavern/, music/chillout/, music/boss_fight/ etc. — each radio can be tuned to one
Custom Radio Block
- Wisteria-trunk-themed cube with a working frequency display, two buttons, and a music note on the front
- Music note logo on the other five sides
- Auto-rotates so the control panel always faces the player when placed
6-Button Player UI (right-click on the block)
- On / Off — start or stop playback
- Loop Single — repeat the currently playing track
- Loop All — rotate through all tracks of the current sender
- Last / Next — skip back/forward through the playlist
- Status line shows the current sender and track
Owner Protection
- Only the player who placed the radio can break it
- Only the owner can damage/mine it
- Only the owner can open the UI; other players see "This radio belongs to ..."
- OPs always have full access
Distance-Attenuated Sound
- Loud near the block, fades smoothly to silence at the configured radius (default ~45 blocks)
- Uses Hytale's native AmbientSoundEventId mechanism, so the sound is client-managed: it stops cleanly on disconnect, on chunk unload, and when the block is broken
- No "stuck" sounds, no manual cleanup needed
Music Ducking
- Hytale's native background music automatically fades out when you walk into the radio's range
- Returns to normal volume when you walk away
- Strength configurable in dB (default: full silence inside the radius)
Multiple Radios in the Same World
- Every block has its own sender, mode, and current track — they all play independently
- Players in overlapping ranges hear both radios mixed naturally
Auto-Cleanup
- Delete an MP3 from the music folder — on the next server start the plugin removes the corresponding OGG, sound event, and block-state entry
- No leftover files, no stuck UI entries, no manual database cleanup
Persistence
- Block positions, owners, modes, and current sender are stored as JSON in plugins/GlymeraRadio/radios.json
- Survives server restarts and chunk unloads
- A ChunkPreLoad hook re-creates the block on every chunk load so its block-state index is always in sync with the current pack
How to add your own music
1. Stop your server
2. Drop one or more .mp3 files into: <server-folder>/plugins/GlymeraRadio/music/default/ — or create additional sender folders next to it (tavern/, chillout/, etc.)
3. Start the server. Plugin converts the MP3s to OGG (about 3-5 seconds per track) and updates the block definition automatically
4. Reconnect with your client. New tracks appear in the UI list
Subfolder names should contain only letters, digits, and underscores.
How to remove songs
1. Stop your server
2. Delete the .mp3 files you no longer want from plugins/GlymeraRadio/music/<sender>/
3. Start the server. Plugin detects the orphans and removes their OGG + sound-event files automatically
That's it — no manual cleanup needed.
Demo songs
Plugin ships with two demo tracks (one is the GlymeraCraft theme). They're in plugins/GlymeraRadio/music/default/ after the first start. Delete them at any time to be rid of them — they will not be re-extracted (a marker file prevents that).
Crafting
The Glymera Radio is craftable at the Alchemy bench under the "Misc Potions" tab.
- 1x Greater Essence of Life (Ingredient_Life_Essence_Concentrated)
- 1x Wisteria Trunk Full (Wood_Wisteria_Wild_Trunk_Full)
- Output: 1x Glymera Radio
Crafting time: 5 seconds.
To disable crafting (admin-only block, only obtainable via /give), set "recipeEnabled": false in config.json. The recipe still appears in the bench UI, but clicking "Craft" cancels the action and returns the materials.
Server restart workflow
- First server start (plugin extracts demos + ffmpeg): 1 restart
- Add or remove MP3s: 1 restart
- Change a block's sender / mode in-game: 0 restarts
Commands
For Everyone
/radio list — List available senders
/radio info — Info about the nearest radio block
/radio set <sender> — Change the sender of the nearest radio (owner only)
/radio off — Stop the nearest radio (owner only)
For OPs Only
/radio convert — Re-run MP3 conversion immediately
/radio reload — Re-index the senders and tracks
In-game right-click on the block opens the full player UI.
Configuration
File at plugins/GlymeraRadio/config.json (created on first start):
- audioBitrateKbps (default: 192) — Input bitrate hint for the MP3 (mono OGG output ends up at half this value, sufficient for music)
- soundAttenuationParent (default: SFX_Attn_Loud) — SFX_Attn_Quiet (~15 blocks), _Moderate (~25), _Loud (~45), _VeryLoud (very large)
- musicDuckingDb (default: -100.0) — How strongly to mute Hytale's native background music while the radio plays. -100 = silent, -20 = strong duck, 0 = no ducking
- tickIntervalMs (default: 2000) — How often the plugin checks for track end. 2 seconds is a good responsiveness/CPU compromise
- autoConvertOnShutdown (default: true) — Convert pending MP3s when the server stops
- autoConvertOnStartup (default: true) — Convert any leftover MP3s when the server starts (fallback if shutdown was unclean)
- recipeEnabled (default: true) — true lets players craft the radio at the Alchemy bench; false cancels the craft so only operators with /give can obtain it
Compatibility
- Hytale Server Version: any (*)
- Platform: Linux x64 server (the bundled FFmpeg binary is Linux-only)
- For Windows or Mac servers, replace plugins/GlymeraRadio/bin/ffmpeg with a compatible LGPL ffmpeg binary for your platform
License & Attribution
This plugin includes a statically linked FFmpeg LGPL build.
- FFmpeg is © FFmpeg Project, licensed under LGPLv2.1+
- Source: https://ffmpeg.org/download.html
- Full LGPL text: extracted to plugins/GlymeraRadio/LICENSE-ffmpeg.txt on first start
- FFmpeg is a trademark of Fabrice Bellard
The plugin code itself is © Glymera, MaskedBlaze613.
Made with care by Glymera for the Hytale community
