Building fluXis from source gives you the latest unreleased changes, lets you attach a debugger, and is the starting point for any code contribution. The build system is standard .NET, so if you have worked with any modern C# project before you will feel right at home. The entire process — from a bare machine to a running game — usually takes less than ten minutes, most of which is NuGet package restoration on the first build.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/InventiveRhythm/fluXis/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
fluXis depends on a small set of tools. Have these installed before you clone the repository..NET 8 SDK
The only hard runtime requirement. fluXis targets .NET 8 (
global.json pins
the SDK to 8.0.0 with latestMajor roll-forward). Download the SDK — not
just the runtime — so that the dotnet CLI is available.Git
Required to clone the repository and its submodules. Git 2.13 or later is
recommended because of the
--recurse-submodules flag used during cloning.JetBrains Rider
The IDE used by most fluXis contributors. Rider has first-class support for
osu!framework projects and can run and debug
fluXis.Desktop with a single
click. A free non-commercial licence is available.Visual Studio / VS Code
Visual Studio 2022 (Windows only) and Visual Studio Code with the C# Dev
Kit extension are both supported alternatives if you prefer the Microsoft
toolchain.
fluXis runs on Windows, macOS, and Linux. All three platforms are equally
supported for development. The instructions below work identically on all
three; only the final executable name differs.
Step-by-Step Build Guide
Clone the repository with submodules
fluXis vendors osu!framework and a small set of other dependencies as Git
submodules. You must pass After cloning you will see a directory tree that includes
--recurse-submodules to clone them in a single
command — otherwise you will get an empty Framework/ directory and the
build will fail.fluXis/ (the
main game library), fluXis.Desktop/ (the desktop entry point),
fluXis.Import.osu/, fluXis.Import.Quaver/, fluXis.Import.Stepmania/,
and Framework/osu.Framework/ among others.Restore NuGet packages
The .NET CLI restores packages automatically when you build, but running
restore explicitly first gives clearer error messages if a package feed is
unavailable.This step requires an internet connection on the first run. Subsequent
builds use the local NuGet cache and work offline.
Build and run the desktop project
To compile and immediately launch fluXis, run the following command from the
repository root:On the very first build, .NET compiles osu!framework from source alongside
fluXis itself, which can take two to four minutes. Subsequent builds are
incremental and take only a few seconds.
Open the solution in your IDE (optional)
For a richer development experience, open the solution file in your IDE of
choice:The solution filter
fluXis.Desktop.slnf loads the projects needed for a
desktop build — including fluXis, fluXis.Desktop, the three import
plugins, fluXis.Resources, fluXis.Tests, osu!framework, and supporting
libraries — keeping solution load times fast.Keeping Your Local Copy Up to Date
Because fluXis uses Git submodules, a plaingit pull only updates the top-level repository. Always use --recurse-submodules to pull changes from osu!framework and other vendored dependencies at the same time:
Project Structure Reference
Understanding the solution layout makes navigation easier when you start exploring the codebase.| Project | Description |
|---|---|
fluXis/ | Core game library — screens, gameplay, editor, skinning, scripting, online |
fluXis.Desktop/ | Desktop entry point; creates the host window and starts the game loop |
fluXis.Import.osu/ | Converts osu! .osz / .osu maps to fluXis format |
fluXis.Import.Quaver/ | Converts Quaver .qp maps to fluXis format |
fluXis.Import.Stepmania/ | Converts Stepmania / ITG .sm / .ssc maps to fluXis format |
fluXis.Resources/ | Shared textures, fonts, audio assets, and shaders |
fluXis.Tests/ | Visual test scenes for individual components |
Framework/osu.Framework/ | Vendored osu!framework submodule |
