forum

Map Setting Customizer (HP/CS/OD/AR Changer)

posted
Total Posts
63
Topic Starter
Norb
How it actually works (you don't need to read this)
This is a console application that takes the following arguments:
-t1 <parameter name:value> (group 1 parameter)
-t2 <parameter name:value> (group 2 parameter)
-t3 <parameter name:value> (group 3 parameter)
-t4 <parameter name:value> (group 4 parameter)
-make <parameter name:value> (program will overwrite these parameters with the new value - also works with stuff like SliderTickRate:99, etc)
-name <preffix for the name of the difficulty> (program will add the name value as a prefix for each difficulty and also use it to identify copies made for easier deletion)
-path <full path for the osu Songs folder> (might require to use quote marks if it contains spaces)
Sorry there is no -delete as the GUI allows this process to be performed quicker. If you do not pass any arguments through the application the GUI will open and allow you to manipulate the 4 main parameters (Circle Size, Approach Rate, Overall difficulty and Health Drain).
The program will only make a copy if the beatmap contains at least one value from each of the 4 groups. (The GUI uses group 1,2,3,4 for HP,CS,AR,OD respectively)
One last note: The program only reads values up to the [Events] section on the .osu file, so timing/hitobjects are completely ignored for faster performance.
How to use it

Tip: Please make sure osu! is in the Main Menu and NOT SONG SELECTION screen as it seems to slow everything down or sometimes cause other problems which I keep getting messages about, so please follow this tip.

Tip: It is highly recommended to have an English locale setting while using the application to create maps with decimal values.
Some languages seem to use ',' instead of '.' to mark decimals. So the application will generate decimals like 9,5 instead of 9.5 and osu! won't be able to read it. I'm not 100% sure because I haven't tested it but it worked for others: http://www.copsmodels.com/gpcommapnt.htm or if that doesn't work: http://puu.sh/lrWKo.png
.

1. Choose the Songs directory. Use the "Find" button if you're lazy, it will try find the folder through the registry.
2. Choose the conditions of which maps you want to take for creating converted copies. If you want all maps then leave everything from 0 to max, if you want Insanes, try AR8-AR10 and OD7-OD10
3. Choose the new parameters for the new copies. The created copies will overwrite these new settings chosen, if "No Change" is selected the GUI will ignore that parameter.
4. Create a name for these new difficulties. For example if you type in "Awesome", and the converted map was called [Best Insane Map], it will rename the copy to [Awesome-Best Insane Map]. This feature will allow you to create custom difficulties independent of each other (lets say copies called AR10 and seperate copies called OD10)
5. Now just click Create Maps and wait till it does its' thing. Also keep in mind that the console's title keeps track of the progress in % value and total beatmap count.
Deletion:
Go to the Delete tab, enter the name of the custom difficulty, and press Delete All. DO NOT WORRY! This feature will only delete files that end with "__<name>__].osu", I am positive that not a single mapper used a double underscore with a random word and then another double underscore to name their difficulty. Thus don't be afraid of the program deleting the wrong maps, I promise it's impossible:
If (foundFile.EndsWith("__" & Name & "__].osu")) Then
My.Computer.FileSystem.DeleteFile(foundFile)
End If
You may also decide to save a batch file that will execute the program with the chosen settings with just a double-click. Or if you want to take it to the next level you may set up a keyboard shortcut or macro to execute the program with those arguments so every time you download a new map you can just press a button to quickly create a specified copy of the map(s).
Credits
Programmed by Dubu
Thanks to givenameplz for making a number of good suggestions on how to improve this program. I appreciate the help.
Thanks to AJeyB and Zare for assisting me with a few tests in order to fix the crashing error.
Also thanks to everyone else who suggested this idea.

I appreciate any type of feedback, if you find any bugs please let me know! I will try fix them ASAP. You may share your ideas for what reasons you might be using this application.
Ajo Joestar
I can't make it
it stop working immediately

:!: EDIT: okay, working well now. gj :D
Zare
Works like a charm now that the fixes have been applied.
Thanks a lot ♥
go3001
osu! training camp this holidays~

Ermagawd it's Zare :D
Omgforz
I want to have your babies.
Pro1337Elite
Wow, this is epic!

Good work!
Howl
GJ on that!
tsundoll
This is a lot quicker than creating AR10 copies of things by hand. Good job.
Tari
Great Job!, People can optimize to the settings of their choice now :D
tsundoll
So I had it make AR10 versions of my AR 8 and 9 maps. And it did, I can see the files in the song folders. But they won't show up in osu. Only one or two showed up after doing an F5 full beatmap process

Edit:
Seems like it might just need to run a long time to recognize them.
Purple
Thanks

You should add an option to skip the maps that have already been modified
Xiipher
this is GODLIKE
Topic Starter
Norb

Purple wrote:

Thanks

You should add an option to skip the maps that have already been modified
It actually does that automatically, it ignores any .osu files made by the program (map files ending with "__].osu")

Or do you mean skip the original difficulties that already have a custom copy?
1xmiss
Help ;_;
When I open this application, I got this message People said this is because I open OS 32-bit applicaton on OS 64-bit
Topic Starter
Norb

-baka25- wrote:

Help ;_;
When I open this application, I got this message People said this is because I open OS 32-bit applicaton on OS 64-bit
Hmm, do you have the latest .NET framework installed? Link here

If you do then I'm not sure what the problem might be. I'm using a 64-bit OS as well and it works fine for me.
1xmiss

Dubu wrote:

-baka25- wrote:

Help ;_;
When I open this application, I got this message People said this is because I open OS 32-bit applicaton on OS 64-bit
Hmm, do you have the latest .NET framework installed? Link [url]http://www.microsoft.com/en-nz/download/details.aspx?id=30653]here[/url]

If you do then I'm not sure what the problem might be. I'm using a 64-bit OS as well and it works fine for me.
I already have it, must I download all of .NET framework? i really want to use this ;_;
Topic Starter
Norb

-baka25- wrote:

I already have it, must I download all of .NET framework? i really want to use this ;_;
Oops didn't see the broken link I sent. And I'm not sure, doesn't hurt to try? Maybe try running the program in compatibility mode? The type of error that you get has nothing to do with my code, the problem is concerning either your OS or .NET framework, I'm sorry that I can't help you with this ;w;
1xmiss

Dubu wrote:

-baka25- wrote:

I already have it, must I download all of .NET framework? i really want to use this ;_;
Oops didn't see the broken link I sent. And I'm not sure, doesn't hurt to try? Maybe try running the program in compatibility mode? The type of error that you get has nothing to do with my code, the problem is concerning either your OS or .NET framework, I'm sorry that I can't help you with this ;w;
I already do that too but still same ;_;

well, I will searching again and find the solve for this problem because I really need this ~_~


edit : I redownload this .exe and its work =_______=
What the.....Well sorry for my mistake m(_ _)m and thanks for the reply :D
Topic Starter
Norb
Ohhh thats great news :) no worries, glad it works for you
1xmiss
Sorry but I got new problem, the problem is like this ;_;

tsundoll wrote:

So I had it make AR10 versions of my AR 8 and 9 maps. And it did, I can see the files in the song folders. But they won't show up in osu. Only one or two showed up after doing an F5 full beatmap process
Topic Starter
Norb

-baka25- wrote:

Sorry but I got new problem, the problem is like this ;_;

tsundoll wrote:

So I had it make AR10 versions of my AR 8 and 9 maps. And it did, I can see the files in the song folders. But they won't show up in osu. Only one or two showed up after doing an F5 full beatmap process
This is quite common and I'm not exactly sure why it does this. But I found that the best way to use the program is to keep osu! open during the time the program is processing all maps (sitting on the main menu, not song selection). That way osu! counts all the changes (I think that's how it works, I'm not peppy and I didn't write osu! so I can only guess) and once you open the songs menu again it will do a full refresh for all of those maps. Sometimes I find myself pressing F5 for each song individually but that gets annoying.
Yuunee
This is really cool! :D Thank you so much! It works very well for me.
Asystole
Will this be updated to include the new 0.1 increment changes?
Topic Starter
Norb

Asystole wrote:

Will this be updated to include the new 0.1 increment changes?
I will once I find time. Probably at the end of June. Also the program already supports that. Just save a batch file and edit it to your own preference.

Dubu wrote:

Decimal values
-take ApproachRate:8 -take ApproachRate:8.1 -take ApproachRate:8.2 -take ApproachRate:8.3 -take ApproachRate:8.4 -take ApproachRate:8.5 -take ApproachRate:8.6 -take ApproachRate:8.7 -take ApproachRate:8.8 -take ApproachRate:8.9 -take ApproachRate:9 -make ApproachRate:9.9
This would take all maps from AR8 to AR9 and make AR9.9 copies.
If it's too difficult that way, you'll have to wait until I find time to rework the interface x.x
formi
Awesome tool, love it!
Lapis-
This program causes my osu! to crash a lot when I search for all the maps I've changed within osu: Here is the error code

error
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at #ii.#pi.#IU(Int32 )
at #ii.#pi.#HU(Int32 , Boolean , Boolean )
at #ii.#pi.#GU(Object , Keys , Boolean )
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at #an.#In.#vhb(Keys , Boolean )
at #an.#In.#thb(Keys )
at #5m.#Rn.#gib(List`1 )
at #5m.#Rn.#Cdb()
at #Og.#Qg.#0r()
at #rb.#xb.#Hs()
at #rb.#xb.#Ss(Object , EventArgs )
at #rb.#Bb.#dt()
at #rb.#Sb.#tv(Object , EventArgs )
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at #rb.#Sb.Run()
at #rb.#xb.Run()
at #Og.#Vo.#gvb(String , Boolean )
MillhioreF
That's just this bug, which is already fixed on latest test.
Topic Starter
Norb

PortalLife wrote:

This program causes my osu! to crash a lot when I search for all the maps I've changed within osu: Here is the error code

error
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at #ii.#pi.#IU(Int32 )
at #ii.#pi.#HU(Int32 , Boolean , Boolean )
at #ii.#pi.#GU(Object , Keys , Boolean )
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at #an.#In.#vhb(Keys , Boolean )
at #an.#In.#thb(Keys )
at #5m.#Rn.#gib(List`1 )
at #5m.#Rn.#Cdb()
at #Og.#Qg.#0r()
at #rb.#xb.#Hs()
at #rb.#xb.#Ss(Object , EventArgs )
at #rb.#Bb.#dt()
at #rb.#Sb.#tv(Object , EventArgs )
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at #rb.#Sb.Run()
at #rb.#xb.Run()
at #Og.#Vo.#gvb(String , Boolean )
I'm aware of these recent crashes. But I wouldn't say my program is causing them directly. It worked fine until the new/reworked song selection menu. I'm hoping peppy will fix this. Sorry about this but it's out of my control at the moment.

Edit: Oh right, thanks for the info MillhioreF.
Bungie2117
100% best program ever.
Doesn't get any better than this :P
-Ryosuke
Hello,

I have deleted all the maps edited I've made. Yet I still see them on my osu! (In-Game, not on my folder), I assume those are blank files but whenever I F2 and switch to any of those blank edited maps that should've been deleted, my osu! refreshes all my maps, and I have tons of maps.

Is there a way to fix that?
moph
Posting for Dubu

1. Stay in osu main menu (not song selection!) and recreate those same diffs again.
2. Open song selection, now it should refresh and re-load all those maps.
3. Go back to main menu (again, NOT song selection) and use the program to delete the copies.
4. Open song selection, it should now remove them from osu! client properly.

Sorry about this glitch, it just seems that the game behaves weirdly if you run the program while in song selection. Once my silence expires I will post a little warning on this thread so people don't keep making the same mistake.
-Ryosuke
Thanks a lot!
Phuture
Doesn't work for me quite unfortunate maybe outdated not sure :(
Topic Starter
Norb

Phuture wrote:

Doesn't work for me quite unfortunate maybe outdated not sure :(
What seems to be the problem? Describe your situation and I might be able to help you fix it.
Phuture

Dubu wrote:

Phuture wrote:

Doesn't work for me quite unfortunate maybe outdated not sure :(
What seems to be the problem? Describe your situation and I might be able to help you fix it.
Well whenever i Create Maps it says like 130 maps, but whenever i try to look for them they're never there
StarDrive0
Thank you very much for the program, it is so helpful <3

I have noticed that I had to change the , to . for the output format in the .bat file. Else the value would be replaced with 10.

Example
SPOILER
ApproachRate 8,5 ---> 10
ApproachRate 8.5 ---> 8.5
The , doesn't seem to matter on the map input, still all maps with decimals have been processed.
Topic Starter
Norb

StarDrive0 wrote:

Thank you very much for the program, it is so helpful <3

I have noticed that I had to change the , to . for the output format in the .bat file. Else the value would be replaced with 10.

Example
SPOILER
ApproachRate 8,5 ---> 10
ApproachRate 8.5 ---> 8.5
The , doesn't seem to matter on the map input, still all maps with decimals have been processed.
This is a result of specific system language locales as some countries use ',' instead of '.' for decimals and my application seems to be influenced by this. Thank you for pointing this out.
FINGERLOCK
Keeps saying " DONE! 0 Copies were made."
Help?
Topic Starter
Norb

[ Raspberry ] wrote:

Keeps saying " DONE! 0 Copies were made."
Help?
Did you set the right path for osu! Songs folder?
Flanster
You may want to update your application to autodetect the osu! folder.
You can use this thread, from what I saw in OP you are using Visual Basic.
t/381311
Topic Starter
Norb

LoliFlan wrote:

You may want to update your application to autodetect the osu! folder.
You can use this thread, from what I saw in OP you are using Visual Basic.
t/381311
That feature already exists. However some players purposely move their osu! files around so no matter what the registry says, the actual osu! path might be manually moved somewhere on their desktop or even music folder, etc.

Dubu wrote:

1. Choose the Songs directory. Use the "Find" button if you're lazy, it will try find the folder through the registry.
Flanster
o.
Good stuff :P
Topic Starter
Norb

LoliFlan wrote:

o.
Good stuff :P
Thank you for your concerns :) :)
FINGERLOCK

Dubu wrote:

[ Raspberry ] wrote:

Keeps saying " DONE! 0 Copies were made."
Help?
Did you set the right path for osu! Songs folder?
Yes I have done this. Still nothing.
Avratzzz
Whatever i choose for the output AR/CS ect, it create me only AR 10 , CS 10 ect diffs at the end.
I have no clue what's wrong, do you have any solution to fix this ? :(
Topic Starter
Norb

Savoiyare wrote:

Whatever i choose for the output AR/CS ect, it create me only AR 10 , CS 10 ect diffs at the end.
I have no clue what's wrong, do you have any solution to fix this ? :(
I'm not exactly sure about your problem, but you are most likely using a language setting that indicates decimal values with a comma "," instead of a "." period. The osu! client can't read decimal values with commas in the map files(ex.: ApproachRate:9,5), only works with periods (ex.: ApproachRate:9.5). Not sure why my program is influenced by these user settings, but here's an easy way to fix this issue (as it helped someone else with the same issue and guess what, he was also French, coincidence?):

Dubu wrote:

Here's what you could do: http://www.copsmodels.com/gpcommapnt.htm or if that doesn't work: http://puu.sh/lrWKo.png

Just change it to English (United States) or something. If that doesn't work you may switch back. Some of these changes might require you to restart your computer. Either way this is up to you. Sorry for the inconvenience. Good luck!
Sorry about this problem. I'm aware on how to fix it in the code, but I'm no longer working on this project. :(
Avratzzz
After a few tries with differents language, it's finally works.
Thank you for your answer !
StarDrive0

Savoiyare wrote:

Whatever i choose for the output AR/CS ect, it create me only AR 10 , CS 10 ect diffs at the end.
I have no clue what's wrong, do you have any solution to fix this ? :(
Another quick fix would be to save your desired settings to a .bat file and edit the "." and "," issue with editor for example.

That's the way I use so I can keep playing eroge japanese games without restarting my pc every time.
The Gambler
Would like support for AR11 copies as well. Or some setting that slows the song down so DT makes it regular again with higher AR.
Topic Starter
Norb

The Gambler wrote:

Would like support for AR11 copies as well.
Technically it'd work if you edit the AR like: -make ApproachRate:11 in the generated batch file. But I assume an AR11 beatmap would not be handled correctly by the game. The maximum is AR10, I didn't set these rules, peppy did. So there's nothing I can do about it.

Alternatively you could make AR10 copies and just put DT on it (with more forgiving OD/Health drain settings). If you trully want to play AR11 just take AR8/OD7 beatmaps (these are generally the DT Insanes) and make them AR10/OD6 (lower the OD as the hit window with DT is less forgiving).

There are other tools available like the Map Speed Changer (https://osu.ppy.sh/forum/t/114765) made by MillhioreF (edit: oops, or smoogipoo's version). Alongside an audio editor like Audacity, you could take a 180 BPM song and map, decrease the BPM (divide by 1.5) to 120. Use the osu! editor to make it AR10. When you play it, just put on DT and you'll have a 180 BPM AR11 map. Not gonna get too much into detail about this, but these are just suggestions.
show more
Please sign in to reply.

New reply