fluXis ships with three first-party map importers that let you bring your existing libraries from other rhythm games directly into fluXis without losing timing data or metadata. Each importer converts the source format’s notes, timing points, and metadata into the nativeDocumentation 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.
.fsc + .ffx format and registers the result in the local map database. Imported maps are marked with a game-specific status code so the editor knows they originated externally and blocks saving or uploading to the fluXis online service.
How to Import
There are two ways to trigger an import regardless of which format you are using:- Drag and drop — Drag the map archive or file onto the fluXis window from your file manager. fluXis detects the file extension and routes it to the correct importer automatically.
- File picker — Use the import dialog accessible from the main menu. Browse to the file and confirm.
Format Details
- osu! (.osz)
- Quaver (.qp)
- Stepmania (.sm)
osu! Import
File extension:.oszSource game: osu!mania
Importer class:
OsuImportWhat gets converted
Each.osu file inside the archive that belongs to the mania game mode is converted to a .fsc chart file. The importer extracts the following data:| osu! field | fluXis equivalent |
|---|---|
| Title / TitleUnicode | Metadata.Title / Metadata.TitleRomanized |
| Artist / ArtistUnicode | Metadata.Artist / Metadata.ArtistRomanized |
| Creator | Metadata.Mapper |
| Version (difficulty name) | RealmMap.Difficulty |
| Source | Metadata.Source |
| Tags | Metadata.Tags |
| AudioFilename | Metadata.Audio |
| AudioLeadIn preview time | Metadata.PreviewTime |
| CircleSize | KeyCount |
| HPDrainRate | HealthDifficulty |
| OverallDifficulty | AccuracyDifficulty |
| TimingPoints (BPM/offset) | TimingPoints |
| HitObjects (notes, holds) | HitObjects |
| Background image | Metadata.Background |
.osb file bundled in the archive is parsed by OsuStoryboardParser and written as a .fsb storyboard file alongside the charts.All non-.osu files in the archive (audio, images, videos) are copied verbatim into the converted mapset folder.How it works internally
The.osz file is a standard ZIP archive. The importer opens it with ZipFile.OpenRead, iterates every entry, copies media files to a temporary directory, and queues each .osu entry for parsing. ParseOsuMap splits the file into sections ([General], [Metadata], [Difficulty], [Events], [TimingPoints], [HitObjects]) and delegates each section to OsuParser. The parsed OsuMap is converted to a MapInfo via ToMapInfo().Auto-import from an osu! installation
If you have a local osu! installation, you can configure the osu! plugin with the path to your osu! folder. fluXis readsosu!.db directly using OsuDb.Read and lists all mania beatmaps for in-place playback without re-importing. Background images are fetched by parsing each .osu file individually (configurable via the “Skip Backgrounds” toggle to speed up library loading).Limitations
- Only osu!mania difficulties are converted. Standard, Taiko, and Catch difficulties are skipped.
- osu! scroll velocity (SV) changes embedded in timing points are approximated but may not perfectly match osu!mania’s SV system.
- Custom skin elements and storyboard sprites have no fluXis equivalent and are silently ignored.
- Imported maps cannot be saved or uploaded; the editor opens them in read-only mode.
Conversion Pipeline
All three importers follow the same base pipeline defined inMapImporter:
Validate source file
The importer checks that the file exists. If not, the import is aborted silently.
Create notification
A task notification (e.g., “Importing osu!mania map…”) is added to the notification overlay so you can track progress.
Create a temporary working folder
A
temp/{filename} directory is created in the fluXis storage root. If it already exists it is deleted first to prevent stale files from a previous failed import.Parse and convert chart files
Each format-specific parser converts the source data into
MapInfo objects and writes them as .fsc JSON files into the temp folder. Media files are copied as-is.Package as .fms
The temp folder is zipped into a
.fms file (fluXis Map Set), which is the standard distribution format for fluXis mapsets.Finalize conversion
FinalizeConversion hands the .fms file off to FluXisImport, which unpacks it, registers all maps and assets in the Realm database, and triggers a song-select refresh.Notes on Imported Maps
Read-only in the editor
All imported maps have a
StatusInt equal to the importer’s internal ID, which is always ≥ 100. The editor’s canSave check rejects saves for any map with StatusInt ≥ 100, keeping your converted library safe from accidental modification.Playable immediately
After a successful import, maps appear in song select under the original song title and can be played with all standard fluXis gameplay features — mods, score tracking, and replays.
No online ID
Imported maps are local-only. They cannot be submitted to the fluXis online ranking queue or uploaded to the map hosting service.
Re-import to update
If you update a map in the source game, re-drag the file onto fluXis to re-import it. The previous import is replaced in the database.
