Skip to content

Add Wrap mod into the osu!catch ruleset#38072

Open
TomyDoesThings wants to merge 1 commit into
ppy:masterfrom
TomyDoesThings:catch-mod-wrap
Open

Add Wrap mod into the osu!catch ruleset#38072
TomyDoesThings wants to merge 1 commit into
ppy:masterfrom
TomyDoesThings:catch-mod-wrap

Conversation

@TomyDoesThings

@TomyDoesThings TomyDoesThings commented Jun 13, 2026

Copy link
Copy Markdown

Took a few years after I thought of the idea (#25036), but at long last after some recent tinkering and courage with the osu!lazer code along with me learning more programming, I present the Wrap mod which is a Conversion mod. The mod is doable!

Video of me doing Perfect + Wrap on Mniam's beatmap of Champion Cynthia [Platter]:

wrap_clip.mp4

This brings the classic wraparound game mechanic into osu!catch, visually as a portal indicator on the left and right wall. The floor and ceiling of the osu!catch playfield are left unaffected. This mod:

  • Makes the maximum distance required to each fruit be half of the osu!catch playfield instead of whole.
  • Turns one path into two paths for each fruit with the shorter path always being the better path.
  • Can make hypers turn into regulars from the portals removing the need for a hyper.

One may think portals providing quicker traversal would make a map easier. It sometimes will and the star rating can decrease. But the star rating can also increase from precision. Additionally, learning how to move through the portals and especially read when to use them adds an extra skill layer to train. Maps can punish you heavily for taking the longer path because you may simply not reach the next fruit or fruits.

Still though, this mod is pretty fun to mess around playing with and makes for even more ways on how a map can be played because there is not always a single correct path to the next fruit with this mod, and it feels good to actually catch fruits after wrapping around the screen. It's fun even when some patterns can catch me off guard.

The visible-to-player flaws of this mod are:

  • Replays are based off the Catcher's X position so the teleporation looks like an input was done opposite of the portal with the catcher running really fast, but in normal gameplay the telportation is a teleporation.
  • Visuals do not wrap around through the portal, only the fruit catching logic.
  • A fruit being caught by reaching out through either portal places that fruit on the opposite of Catcher's X which visually seems incorrect.
  • currentDirection needing to be calculated from it being private means if any code besides CatcherArea affects its own currentDirection, the incorrect currentDirection in the Wrap mod will be calculated. For example, the Moving Always mod (Add Moving Always mod into the osu!catch ruleset #37852) with this mod would mean that left or right would have to be tapped or clicked to use the portals even though the catcher should always be moving.

The flaws code wise are:

  • Some beatmap processing code is taken from other parts of the osu!lazer code to be adapted to the Wrap mod when it feels like a method could be made OOP-style so that the code can be shared or so that a repeat check or run does not need to occur, but I put emphasis in showing that this mod is doable without having to modify the code of any pre-existing osu!catch logic.
  • Any other mod that affects catch logic or hyper logic is almost certainly incompatible unfortunately (because of commutativity needing to be maintained and mods needing to not override each other), such as the Rotten Fruits mod (Add Rotten Fruits mod into the osu!catch ruleset #37065).
  • There are no implemented tests yet, but only when the mod is for certain stable should this be done.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant