Add "Perfect Timing" mod setting to Relax (RX) mod
Addresses https://github.com/ppy/osu/discussions/20086
https://github.com/user-attachments/assets/e14d0f00-00cf-4e25-a32f-52256c3ea45d
Transferred from https://github.com/ppy/osu/pull/34349 since I forgot to create a new branch for the pull request
I randomly searched "relax" in pull requests just now, and noticed https://github.com/ppy/osu/pull/32487. Haven't checked whether it does the same thing.
Ah yes, it does seem to do the job but with more functionality. I'll be closing this pull request and redirecting to the other one.
Actually, I'm considering forking #32487 and adding pp adjustment.
Please don't add pp changes in the same PR as the change itself
Please don't add pp changes in the same PR as the change itself
Okay, understood. I'll open a separate PR for this later.
does this work in replays? if so, it's better than mine was.
does this work in replays? if so, it's better than mine was.
@Empika1 We basically just happened to almost write the exact same code. My version does everything except forcing the user to miss. It appears to work okay in replays, but I haven't got a solid replay to test it on. It does seem to produce more misses if I failed though.
Basically the way I implemented it it only simulates keyclicks perfectly on time, and nothing else. However, it does rely on game frames so it performs worse if your frame rate is very low.
However, when I tested it the replays always have the same misscount regardless of the game render rate. I looked at the code and everything suggests that the keyclicks being simulated should (??) be registered as important, since the mod basically tricks osu! into thinking the user actually did keystrokes.
if it works properly when fast forwarding in replays and when viewing replays in a different framerate (eg. it doesn't cause any extra misses, or remove any real misses), then its already better than mine was. if so, probably reopen this pr and i'll close mine.
if it works properly when fast forwarding in replays and when viewing replays in a different framerate (eg. it doesn't cause any extra misses, or remove any real misses), then its already better than mine was. if so, probably reopen this pr and i'll close mine.
Okay.
I've just checked with a longer replay, I have the exact same miss-count as when I played it live and I can jump around and I always have the same miss-count. It seems the clicks are actually hard-coded into the replay file.
I don't think we want this. Shouldn't we instead be aiming to make relax behave like stable – more dynamically based on a user's cursor position? Adding a setting like this will get baked into scores, and we'll eventually want to remove it when relax is fixed to work better, right?
Sorry, i'm not sure I quite get what you mean. This setting is intended to be a different (and stricter) experience than normal relax, or relax on stable for that matter.
Yeah, the point of this setting is for aim practice, since normal RX is way too lenient for this. Here's the original discussion
Hmm, right. I'm in two minds about this because it goes against the concept of the mod (being that you can relax. now we're adding options to make relax less relaxing.)
That makes sense. Perhaps relax could be renamed, or this option could be added as a separate mod
"Easy" goes against the concept of the mod, because it makes reading very difficult for Insane and above. It's still a great mod! It just has a silly name. Lots of the mods have silly names. Calling this one Relax is par for the course.
I like this mod setting and would play it.
Any updates on this?
Just wanted to add that the current implementation only emulates physical inputs into the game, so it won't be able to hit notes the user wouldn't be physically able to.
Also you can get note-locked on streams.