Skip to content

Allow beatmap conversion from non-std rulesets #32535

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

WebFreak001
Copy link
Contributor

@WebFreak001 WebFreak001 commented Mar 23, 2025

Supersedes #23875, fix #9263

Summary:

This gives rulesets full control which maps to show both with and without map conversion enabled.

For example a 2-player version ruleset of taiko could make taiko maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

Design decisions:

There is a CanConvert function in BeatmapConverter which I considered using as well. However this class wasn't accessible in the carousel and the implementation may be quite severe on performance impact, since they validate the full map, instead of going from metadata. Consider for example generally converted maps from mania to taiko might be able to usually convert well, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, which will then be shown when trying to start the map.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.

During playtesting I personally found adding a ctb -> mania convertor quite fun, but I would not make that part of this PR since the scope would explode when touching the default rulesets. (scoring, pp, web, how to handle changes in a ranked converter, etc.)

Supersedes ppy#23875, fix ppy#9263

Gives the ruleset full control which maps to show both with and without converts enabled - e.g. a competitive/harder version ruleset such as for mania could make mania maps show without enabling converts, as well as control which ones to support only if conversions are enabled in the settings.

There is a CanConvert function in BeatmapConverter which I considered using as well, however it looks like this beatmap converter isn't directly accessible in the carousel and adding it may be quite severe on performance impact. Also consider for example generally mania->taiko converts might be good to have, but a quality control function inside CanConvert could make the conversion fail if it's unplayable, so two different interfaces make more sense in that case.

This way, maps may also show if they fail in conversion, but playing them will show a notification that the maps aren't playable. For the future an async task that just goes through maps to try and see if they are convertible for different modes and caches that might be useful.

I did not change how the default rulesets behave, this is just for custom rulesets to be able to play more maps and start off with a larger pool of maps, which I think is an important part of custom ruleset adoption. I adjusted the scrolling example ruleset (pippidon) to include this as well.
@zzzzv
Copy link

zzzzv commented Apr 19, 2025

Mania players need this too.
7k+ beatmap is too rare, need easier way to convert beatmap from 6k and 7k

@bdach
Copy link
Collaborator

bdach commented Apr 21, 2025

@zzzzv this PR does nothing for you, something like #27374 might

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.

Ability to display beatmap conversions from non-osu! ruleset beatmaps via interfaces
4 participants