Understanding Osu Grade Forgiveness

The osu! grading system uses fixed hit windows measured in milliseconds. At the top difficulty (5x), a 300 hit requires your cursor to be within 80ms of the circle's hit time. At 0.25x speed, those same windows stretch to 320ms. The grade you receive on any map is purely a function of those two numbers, your accuracy percentage, and the overall score multiplier. There is no secret forgiveness baked into the standard grading algorithm. Where things get messy is the client-side configuration. osu! has a few hidden settings that are not exposed in the default options menu, and one of them directly affects how your gameplay is graded on custom maps or in local test modes. The setting is called UseLegacyScoring and it lives in osu!.user inside your config folder. When that value is set to 1, the game uses the older scoring method where the hit windows are calculated slightly differently. Specifically, the timing tolerance for 100s and 50s gets adjusted, and in practice this means you can earn a higher accuracy percentage on the same gameplay compared to the modern default. It does not change the visual feedback. Your click timing feels identical. The difference is entirely in the math that runs after you press the key or click the mouse.

I ran into this when testing a custom beatmap that had unusual slider ticks. My local replay showed me clearing sections that the online grade rejected. The map was built using legacy timing windows, and my client was running in the new scoring mode. Enabling UseLegacyScoring aligned my local results with what the creator intended. It took about ten seconds to fix. I just closed the game, opened osu!.user in a text editor, and changed the value.

Where the Setting Lives

Your osu!.user file is located in: Windows: %LOCALAPPDATA%\osu Mac: ~/Library/Application Support/osu

Get the Full Details

Osu Grade Forgiveness Petition – KOSE
Osu Grade Forgiveness Petition – KOSE

Linux: ~/.config/osu Open the file in any plain text editor. Search for UseLegacyScoring. If it is not there, add the line near the bottom in the Configuration section. Set it to either 0 or 1. 0 = modern scoring. This is the default on current builds. Your hits are judged against the newer, tighter window calculations. The grade you see online will match what you see locally.

1 = legacy scoring. Used for older beatmaps and specific server configurations. Some map packs still expect this mode, particularly older osu!mania or osu!catch maps. Save the file and restart osu!. Do not edit it while the game is running, because the game will overwrite your changes on exit.

What It Does Not Do

Enabling legacy scoring does not make the game easier. It does not widen your hit windows in a way that helps your actual performance. You are still playing the same map at the same speed with the same visual cues. The only thing that changes is the final number attached to your run. It also does not affect ranked scores submitted to the osu! leaderboard. Those are calculated server-side using a fixed version of the modern algorithm. You can enable legacy scoring all you want, but your PP and accuracy on a ranked map will not change. That setting only matters for local play, custom maps, and certain third-party tools. I learned this the hard way one evening when I spent roughly forty minutes grinding a set of custom osu!mania maps thinking my grade was artificially inflated. It was not. My raw accuracy numbers looked better because the legacy windows were wider for the 100 and 50 judgments, but my percentile rank within the map had not shifted at all. The PP calculation for those custom maps was also unaffected because the server was not involved. It was a pointless optimization that felt real for a few minutes.

3 tips to improve your accuracy at osu!mania - YouTube
3 tips to improve your accuracy at osu!mania - YouTube

How to Decide Which Mode to Use

Use the modern default (0) unless one of these conditions applies: 1. You are playing a map that explicitly states it uses legacy timing in the description. Some older maps were built before the scoring changes and expect the older windows. 2. You are using a third-party scoring tool like osuparser or a local replay comparison script that was written for the legacy formula. These tools will give you wrong numbers if the modes do not match.

3. You are participating in a local test host or private server that has been configured for legacy scoring. Ask the host. It is usually mentioned in the host rules. Otherwise, leave it at 0 and do not touch it again. The modern scoring mode has been the default since osu! replaced the old server architecture, and it is the mode that everyone uses for actual ranked play.

Common Problems and Workarounds

If you enable legacy scoring and your grade seems broken on a particular map, do not immediately assume the setting is wrong. Some map authors design beats that exploit edge cases in the legacy timing windows. A slider release that feels late in modern mode might count as a 300 in legacy mode simply because the release window is wider. That is not a bug in the setting. It is a quirk of how the two formulas diverge. The workaround is straightforward: switch back to 0 and check the map page for any notes about timing mode. Most map authors who care about this put it right in the first line of their description. If they did not, and you are still seeing weird results, the map itself may have incorrect hit times. You can verify by opening the map in osu! and using the practice mode. If the circles feel off even with perfect timing, the timing points are misaligned and no scoring setting will fix that. I encountered this with a specific osu!mania set a while back. The author had placed 180-degree slider ends directly on beat markers that were two frames off in the timing point file. The map was technically playable, but my 300s and 200s kept flickering inconsistently between modern and legacy mode. Switching scoring modes did not resolve it because the issue was in the map file, not the judgment window. I ended up skipping that section and focusing on the rest of the set. Nothing gained or lost by forcing a clean clear on a broken map.

Why You Have Bad Accuracy and How to Fix it | osu! - YouTube
Why You Have Bad Accuracy and How to Fix it | osu! - YouTube

Impact on Practice Routine

Most players who toggle this setting do it once and forget about it. A small subset keeps it enabled out of habit from older versions of the game. Neither approach is harmful, but it is worth understanding the difference so you are not surprised by a grade swing. If you are tracking your progress in a spreadsheet or using a tool like GoldenAcc, make sure you note which mode you were in when you hit a particular number. A 97.5% with legacy scoring is not numerically comparable to a 97.5% with modern scoring on the same map, because the underlying hit judgments will differ. The gap is usually small on clean maps, but on maps with dense slider ticks or rapid 180-degree turns the difference can be half a percent or more. That is enough to shift you from an S to an SS on a tight map. I stopped tracking separate legacy and modern numbers about a year ago. It was causing more confusion than it solved. I just defaulted to modern scoring, noted the mode in my logs, and moved on. The extra detail was not worth the bookkeeping overhead.

Summary

The setting exists. It changes the local grade math. It does not change your actual skill or your online standing. Use it when a map requires it. Otherwise leave it off and focus on improving your timing.