Tools for osu!.
This is part of a group of projects which are used in live deployments where the deployed version is critical to producing correct results. The master
branch tracks ongoing developments. If looking to use the correct version for matching live values, please consult this wiki page for the latest information.
- A desktop platform with the .NET 8.0 SDK installed.
- When working with the codebase, we recommend using an IDE with intelligent code completion and syntax highlighting, such as the latest version of Visual Studio, JetBrains Rider or Visual Studio Code with the EditorConfig and C# Dev Kit plugin installed.
- These instructions assume you have the the CLI git client installed, but any other GUI client such as GitKraken will suffice.
- Clone the repository (
git clone https://github.com/ppy/osu-tools
) - Navigate to each tool's directory (i.e.
cd PerformanceCalculator
) and follow the instructions listed in the tool's README.- PerformanceCalculator - A tool for calculating the difficulty of beatmaps and the performance of replays.
- PerformanceCalculatorGUI - A GUI tool for calculating the difficulty of beatmaps, changes in profile scores and leaderboards.
Most relevant code is in the main ppy/osu repository. To make any meaningful changes you will likely need to edit that as well.
- Clone all relevant repos into the same directory
git clone https://github.com/ppy/osu-tools
git clone https://github.com/ppy/osu
- If you're planning to work on the difficulty and/or performance calculation changes you will need to use the
pp-dev
branch of theosu
repository
cd osu
git checkout -b pp-dev origin/pp-dev
- Run the
./UseLocalOsu.ps1
powershell script (or./UseLocalOsu.sh
) to use your local copy of ppy/osu
Before committing your code, please run a code formatter. This can be achieved by running dotnet format
in the command line, or using the Format code
command in your IDE.
We have adopted some cross-platform, compiler integrated analyzers. They can provide warnings when you are editing, building inside IDE or from command line, as-if they are provided by the compiler itself.
JetBrains ReSharper InspectCode is also used for wider rule sets. You can run it from PowerShell with .\InspectCode.ps1
. Alternatively, you can install ReSharper or use Rider to get inline support in your IDE of choice.
- Clone all relevant repos into the same directory
git clone https://github.com/ppy/osu-tools
git clone https://github.com/ppy/osu
- Navigate to
osu
repository and checkout version you want to run
cd osu
git remote add smoogi https://github.com/smoogipoo/osu.git
git fetch smoogi branch_name
git checkout -b branch_name smoogi/branch_name
- Run the
./UseLocalOsu.ps1
powershell script (or./UseLocalOsu.sh
) to use your local copy of ppy/osu
When it comes to contributing to the project, the two main things you can do to help out are reporting issues and submitting pull requests. You might want to refer to the contributing guidelines in the main osu! repository to understand how to help in the most effective way possible.
We love to reward quality contributions. If you have made a large contribution, or are a regular contributor, you are welcome to submit an expense via opencollective. If you have any questions, feel free to reach out to peppy before doing so.
osu!'s code, framework, and tools are licensed under the MIT licence. Please see the licence file for more information. tl;dr you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source.
Please note that this does not cover the usage of the "osu!" or "ppy" branding in any software, resources, advertising or promotion, as this is protected by trademark law.
Please also note that game resources are covered by a separate licence. Please see the ppy/osu-resources repository for clarifications.