Skip to content
/ osu-tools Public

command line tools to get stuff done

License

Notifications You must be signed in to change notification settings

ppy/osu-tools

Repository files navigation

osu!tools

Build status CodeFactor dev chat

Tools for osu!.

Current Versions

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.

Requirements

Getting Started

I just want to run it

  • 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.

I want to make changes

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 the osu 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

Code analysis

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.

I want to run someone else's changes

  • 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

Contributing

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.

Licence

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.