Skip to content

Add Bad Apple mod into the osu!catch ruleset#37065

Open
Tenexxt wants to merge 3 commits intoppy:masterfrom
Tenexxt:catch-mod-bad-apple
Open

Add Bad Apple mod into the osu!catch ruleset#37065
Tenexxt wants to merge 3 commits intoppy:masterfrom
Tenexxt:catch-mod-bad-apple

Conversation

@Tenexxt
Copy link

@Tenexxt Tenexxt commented Mar 22, 2026

The Bad Apple mod serves as a Dodge the Fruit mod basically - when you catch the fruit you get a miss, when you actaully miss you 'catch'. I can change the name to not be a obvious touhou reference but for now it is one.

2026-03-22.11-30-01.mp4

This allows for combo tracking in DTF and I think it just feels better this way, it allows for more possibilities in DTF as hitsounding and actuall score grading. Worth noting this mod would also obviously work on ranked maps, so the score multiplier most likely shouldn't stay at a perfect 1, if you have a idea what the multiplier should be please share!

For now, hyperdashing is entirely blocked as DTF maps don't utalize hypers when playing (except as a miss chain penalty). If you think there should also be a penalty in form of a forced hyperdash on a miss, please comment on that. (basically when you catch the fruit you enter into a brief hyperdash as a penalty)

Tenexxt and others added 2 commits March 19, 2026 23:31
Co-Authored-By: maarvin <8039761+minetoblend@users.noreply.github.com>
@Shavixinio
Copy link
Contributor

Shavixinio commented Mar 22, 2026

Good mod idea if executed correctly, though this comes with a few problems:

  1. Not sure how hard this will be on a technical level, but please make the mod disable catch sound effects
    (Loud warning)
myears.mp4

Even if a map doesn't have that much fruits at once, a sudden loud sound effect is still annoying, especially coming from a person who has a worse than average sensitivity to loud noise, explosions, bangs, etc.

Alternatively, depending on how hardcoded scoring is in this game, make the beats actually go under you how it is currently when playing with nofail and just reward you with points for each missed fruit, and just remove a chunk of your score on each caught fruit. Not only that, but it feels more natural and misses don't have play a sound effect until you hit 20 combo

In terms of hyperdashes as a punishment, I don't think it's a bad idea, but imo it should probably just be an option in the mod settings, and let it be disabled by default, since hyperdashes in a setting like this are just very annoying

The mod naming is smart and fine if understood correctly, because not gonna lie I got confused for a second when I saw the name

@Tenexxt
Copy link
Author

Tenexxt commented Mar 22, 2026

There now should be a setting to mute all hitsounds (left it optional because mappers can later take the mod into account and adress this themselves however they want). Its turned on by default, but you can dissable it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mod should be in "Conversion" category since it fundamentally alters goals of gameplay. This has tagging / medal implications.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yea I guess that makes sense, will adjust

Comment on lines +55 to +56
// Block hyperdashing to avoid hyperdashes when two objects appear at the same time.
catcher.SetHyperDashState(1, -1);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty terrible and in general I don't know that having hyperfruit at all here is a good idea.

Rather than doing whatever this is doing, I'd implement IApplicableToBeatmap and forcefully set HyperDash = false, HyperDashTarget = null to all objects in the beatmap to just turn off hyperdash mechanics entirely.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea that makes more sense, will do

{
if (drawable is DrawableCatchHitObject catchHitObject)
{
catchHitObject.CheckPosition = hitObject => !catcher.CanCatch(hitObject);
Copy link
Collaborator

@bdach bdach Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get what this is going for, but the visual effects of this change mean that this mod looks terrible on argon and legacy skins, and a little less terrible on triangles.

See video below. Fruit disappear instantly on miss and slowly fade out on catch which is all types of wrong IMO.

Screen.Recording.2026-03-23.at.08.48.18.mov

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try to change the behaviour and see what I can do

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In terms of constructive feedback, in a perfect world I think dodged fruits could explode in some way to indicate hit, while missed fruits... not sure. Maybe missed fruits could stay on the catcher? Could be a fun idea as a way of punishing the player for catches, but maybe overly punishing if you catch too much.

Might not be very easy to pull any of that though.

@peppy
Copy link
Member

peppy commented Mar 23, 2026

I'd hope the fruit don't get visually caught and continue through the level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants