Note: the Polish and French translations are unavailable in the latest version. They are available in v1.2.2 if needed, but mind that there are large differences between v1.2.2 and releases from v2.0.0 and onward.
FLUX is a spiritual successor to an old Japanese ghost called FLELE (mirror). FLELE is a music player which many people have created unique shells for! There are various collections of FLELE shells spread across the internet. The one I have linked is only a small collection.
I created FLUX because I wanted to expand on the music player concept, and I wanted to solve certain issues that we were having with FLELE. Over the years it's grown from a messy project held together with duct tape and misguided dreams, and now has a polished music interface with many capabilities.
Main points to consider:
Polished music player interface with smooth navigation, hotkeys and hotspots for quick adjustments, multiple play modes, and various quality of life features.
Supports multiple languages.
Automatic network update checks, including for shells.
Compatibility with FLELE shells.
Supports many filetypes if using LAV Filters.
Can load and save .m3u playlists, the same format FLELE uses. Can also read .m3u8 playlists.
Adjustable volume, speed, and left/right balance.
Default balloon 'Notes' comes in both dark and light mode.
Options to stop playback after the current song completes, or after the current playlist completes.
If a song gives an error, it will attempt to play the next song instead of stopping.
Notifies other running ghosts of information such as what song is currently playing, etc.
Current song and shell information can be displayed in your Discord status if the Discord Rich Presence plugin is installed.
... And much more! I've poured a lot of time into making this a competent player that feels satisfying to use.
If you are interested in creating a shell, there is a template included within the files, which details some of the special features that FLUX has for shells. However, I discourage making shells with very complex functionality for FLUX. If it has a ton of content beyond just being a skin for the music player, then you should make a simple ghost instead! I have provided a template expressly for this purpose, which has the same music player integrated. (Why you should not make complex shells.)
If you're interested in having your ghost react to details from FLUX's music player, such as the currently playing song, you can find documentation for the stat share event on Ukadoc.
If you are interested in translating FLUX to another language, please get in contact! There is some documentation for this in FLUX's files, as well.