forum

Osu File Format?

posted
Total Posts
11
Topic Starter
[deleted user]
Does anyone know exactly how .osu files work, as far as how they're written?

I understand *some* of it, but not much, for example:

SPOILER
Beats: x-coordinate,y-coordinate,timing (milliseconds),?,? <- Most likely the first question mark somehow represents color, and the second one sound, or visa-versa...
Slider: x-coordinate,y-coordinate,timing (milliseconds),?,?,?|?,?,? <- I'm really not sure about these... But the last one *could* represent the angle of the curve?
Spinner: x-coordinate,y-coordinate,timing (milliseconds),?,?,? <- Obviously one of the question marks represents the length of the spinner, and one of the others has to be how hard it is to spin?

If this kind of talk isn't allowed, or if peppy doesn't like it, or whatever, feel free to delete the thread.

Thanks!

-me
Dusty
I think this is how it works.

Spinner: x, y, time in milliseconds, 12 tells osu! this is a spinner, hitsound, time the spinner ends.

Beat: x, y, time, 5 tells osu! this is a new combo beat while 1 tells osu! there's no new combo, hitsound

Slider: x, y, time, 6 tells osu! this is a new combo slider while 2 tells osu! there's no new combo, [B]ezier/[C]atmuill/[L]inear, hitsound, x, y, hitsound|x, y, hitsound|...for each of the sliderpoints that make up the slider
EDIT: No, wait, that's wrong.

x and y don't seem to matter for spinners.

For hitsounds you have 0 for hitnormal, 2 for hitwhistle, 4 for hitfinish, and 8 for hitclap; if you want to combine two or three hitsounds together you add the numbers for each of them. (whistle+finish is 6, finish+clap is 12, whistle+clap is 10, all three is 14) 1 seems to give you a hitnormal(?).
Topic Starter
[deleted user]
ZOMG, thanks!

And how does it tell which color? Or does it just cycle through the list, changing each time a "new combo" is signified?

-me
Dusty

--me-- wrote:

ZOMG, thanks!

And how does it tell which color? Or does it just cycle through the list, changing each time a "new combo" is signified?

-me
I think it just cycles.
Topic Starter
[deleted user]
Just as another quick question: How does the system know when a slider loops?

-me
Dusty
OK, I realized my guess of the slider format was completely wrong :D

X, Y, time, 2/6, hitsound #1, B/C/L |sliderpoint|sliderpoint|sliderpoint|..., number of repeats, slider speed*length of time in beats |hitsound|hitsound|hitsound...

It's a little complicated, apparently. :?

The sliderpoints go on for as many sliderpoints exist, same with the hitsounds, there are as many hitsounds as are needed.
Topic Starter
[deleted user]
Wow... That IS complicated. :o

Again, thanks!

May I ask how you know so much? Are you just that experienced? Or did you just test it out?
Dusty
I mostly tested it out :p

Anyway, some other stuff you can do with the .osu is change the circle size value to above/below the minimum/maximum, change timing sections to do interesting things, and create your own breaks.

Under [Difficulty] you can change the circle size value to below 3, the largest size you can create in the editor. (I like using 2 for some of my Easy maps.) You can also make it 10 for really small circles, but that's kind of dumb usually.

Under [Timing Points], you can change the third column to change the number of beats in a measure.
The second column is for BPM. If the value is negative, it makes it an inherited section. -100 is 1x BPM, -50 is 2x BPM, and -200 is 0.5x BPM. I found out from lepidopodus that you can use different values to make different inherited sections but you have to be careful because it might crash the editor if you go into the timing points editor. Also, it could make ticks happen on weird beats, so it's best used on Taiko maps, which often has weird speed changes in its authentic maps, anyways.

The formula is New slider speed = Old slider speed * -100 / second column value. Using -66 gives you about 1.5x BPM. If you go above 2.0x BPM or below 0.5x BPM you could crash the timing setup panel.

If you go beneath //Break Periods, you can create your own breaks with 2, break start time in ms, break end time. m980 did that in Don't Stop Me Now, I think.

Most of the other stuff in the .osu is self-explanatory, I think.
Topic Starter
[deleted user]
lol, I can't run osu (I have an older Mac), so I have no idea what you just said. :(

But this information is still really helpful, as I might try to create a map from scratch for use on my iPod Touch. It'll probably take forever, and be frustrating, but... I guess it's worth a short.

-me
m980

Dusty wrote:

If you go beneath //Break Periods, you can create your own breaks with 2, break start time in ms, break end time. m980 did that in Don't Stop Me Now, I think.
Stop assuming things. Check when the map was ranked. It was before the whole break thing was implemented.
Dusty
Oh, sorry about that.
Please sign in to reply.

New reply