👋 PROJECT ROBIN
Project Robin is a simple, light-weight, completely client-side mod that allows servers to play Custom Sound directly to all clients developed by Project Furina.
⚠️ DISCLAIMER
This was made in Java 24, so it probably requires Java 24. This is an entirely experimental project and is not in it's final complete form, this is currently in Beta, so feel free to suggest features, and report issues.
❓ WHAT IS THIS AND WHY
Project Robin is a lightweight client-side mod that allows playback of .ogg files to all clients who have it. This allows for custom audio to be played, this is useful for open world RPG's, roleplay servers, or other types of servers and/or genre's that require real-time sound.
Running a Vanilla Server? No worries! This is an entirely client side plugin, all you need to do is setup a command block to properly send the request to the client /tellraw @a "[PLAY] https://(URL)". All your players need to do is have the mod!
🪪 LIMITATIONS AND SECURITY
- ❌ Only the server is able to send playback files to the client, and excess files are cleaned up automatically upon cessation or failure of playback.
- 🔊 As of writing this, for a new person to Java, I found it difficult and hard to integrate this with Minecraft's playback system, so I've stumbled across TinyAudio and decided to use it for this project. When I expand my knowledge, this will eventually move to Minecraft's audio system.
- 🛜 Hostnames are whitelisted by default, meaning only two hostnames are whitelisted, and only .ogg files can be played.
- 📵 Redirects are disabled, and the file must point to a valid .ogg file.
- 🔈 Only one sound may play at a time, if a sound is played, the one previously will and must stop before the new one must play.
- 💾 Only files up to 25MB may be downloaded.
- 📲 You may view all of the allowed hostnames that I have added here: Project Furina API
- 🗃️ All OGG files can be found at
%localappdata%\Temp\. They should be automatically cleared, but if they aren't you can always clear them there. - 👂 Sometimes the audio abruptly cuts out, I will investigate this later and it might just be because of how old TinySound is, but nevertheless from my testing, 90% of the time it works fine.
- 🖥️ From my testing which is not fully complete, you cannot have special characters in the file name otherwise it will not be able to be read. I will fix this in Version v0.0.2.
🔐 WHITELISTING DOMAINS
This feature is scheduled for user control in an upcoming release.
For the sake of protecting users and preventing malicious activity, we will be handling whitelists using the Project Furina API.
You are able to request to whitelist domains by contacting us on Discord. Please directly message outment on Discord, or one of our staff members on our Discord if you wish to whitelist a domain. Please note, it needs to be the the FQDN (e.g. api.project-furina.xyz).
🗣️ UTILIZING THE MOD
Utilizing the mod is pretty simple, on the server you just need to send the following chat messages to the player or all players:
To stop the sound on the client(s):
[STOP]
To play sound on the client(s), this must point DIRECTLY to a valid .ogg file, the URL MUST end in .ogg, and the URL MUST be HTTPS:
[PLAY] https://(url)
You can use /tellraw to easily do this as well! No fancy server plugin needed.
❗ DISCLAIMERS ABOUT EXTERNAL LIBRARIES
Project Robin automatically includes and/or downloads the following libraries to your computer to function properly.
🔮 FUTURE PLANS
I eventually want to overhaul and allow the user to control everything, this is more of a fun project I decided to do, so here's what I will eventually want to do:
- Move sound to Minecraft's built-in audio.
- Allow the user to control hostnames.
- Not rely on chat messages to send PLAY/STOP commands, but instead use probably custom packets or something and just have the client log the request in chat.
- Let the user configure how many sounds can play at once.
- Make a Minecraft server-side plugin for easier usability.
- Let the user configure how long temporary files can be stored, where, and how big downloads can be at maximum.
Integrate with ModMenu for easier control.Partially completed in v0.0.2.- Properly add this to GitHub and source control.
- Option to disable/enable Redirects, as well as redirect whitelisting.
Hash all file names and store them in a cache in Temp, so once downloaded it doesn't download again.Completed in v0.0.2.- Shutdown TinySound when not actively in a server/world to conserve resources.
Okay, that's all I have, see you in the next one!
❌ No, this will never be available for Forge nor Neoforge. It will never be planned, and it will never be considered.
INSPIRATION AND CREDITS
Concept inspired by VinURL.
Name inspired by Robin, from the game Honkai: Star Rail.
Mod created by Mango/Project Director @ Project Furina.
Logo created by Diamond_Shiba. Diamond_Shiba has also helped a lot with Quality Assurance, and suggestions for this mod.
Legal Disclaimer: We are not affiliated in any way, shape or form with HoYoverse, MiHoyo, or with Modrinth.

