osu! Set Builder lets you merge multiple .osu files into one .osz package with shared metadata and assets. Useful when you have separate difficulty files and want to bundle them properly for submission or sharing.
- Merge multiple
.osufiles into a single set - Edit metadata (title, artist, creator, source, tags) across all difficulties at once
- Set a shared background image
- Pick the audio preview point with an interactive player
- Export to
.oszor open directly in osu!
Requirements: Python 3.10+
git clone https://github.com/rosacry/osuSetBuilder.git
cd osuSetBuilder
pip install -r requirements.txt
python osu_set_builder.pyOr download the latest release from Releases.
- Click Add .osu Files to import your difficulty files
- Fill in the metadata fields (or let them auto-populate from your files)
- Set a background image and preview point if needed
- Click Save .osz to export, or Open in osu! to import directly
Tip
Use Auto-Number to quickly rename difficulties as "1", "2", "3", etc.
pip install pyinstaller
pyinstaller osu_set_builder.specThe executable will be in dist/.
- osu! - The rhythm game this tool is built for
- PySide6 - Qt bindings for Python
- PyInstaller - For creating standalone executables
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Made for the osu! community

