# .osu Codes (Timing Points, Objects) This is just some of my notes about the meaning of the codes in .osu files There may be other people who had already done stuff like this anyway but i just dont really care. Feel free to correct me if anything below is incorrect Feb 12th 2022 edit: apparently https://osu.ppy.sh/wiki/en/Client/File_formats/Osu_%28file_format%29 it has been explained on wiki sooooooo um. this document is useless now i guess ## Timing points ### Red Lines #### Example `901,258.620689655173,4,1,20,50,1,0` #### format: a, b, c, d, e, f, g, h | | Explanation | Corresponding value to the example above | Notes | | --- | -------------------------- | ---------------- | ------------------------------- | | a | Offset | 901 | | | b | Time diff. every 1/1 | 258.620689655173 | value = 60000 / BPM | | c | ?/4 beat | 4 | | | d | Sampleset | 1 | 1 = Normal, 2 = Soft, 3 = Drum | | e | Custom Hitsound Sample No. | 20 | ex. if N:C20, value = 20 | | f | volume | 50 | | | g | Inherit or not | 1 | value is always 1 for red lines | | h | Kiai | 0 | 0 = not kiai, 1 = kiai | `901,258.620689655173,4,1,20,50,1,0` Above red line has these properties: * Offset: 901 (00:00:901 -) * BPM = 231 (60000/258.620689...) * Uses 4/4 time signature * Uses N:C20 as its sampleset * 50% Volume * Not Kiai -------------------------- ### Green Lines #### Example `2199,-133.333333333333,4,1,43,50,0,0` #### format: a, b, c, d, e, f, g, h | | Explanation | Corresponding value to the example above | Notes | | --- | ----------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------- | | a | Offset | 2199 | | | b | SV Multiplier<br>(Not sure the actual meaning though) | -133.3333333333 | value = -100 / SV Multiplier | | c | ?/4 beat | 4 | For green lines, this value always syncs with the red line that it inherits | | d | Sampleset | 1 | 1 = Normal, 2 = Soft, 3 = Drum | | e | Custom Hitsound Sample No. | 43 | ex. if N:C20, value = 20 | | f | volume | 50 | | | g | Inherit or not | 0 | value is always 0 for green lines | | h | Kiai | 0 | 0 = not kiai, 1 = kiai | `2199,-133.333333333333,4,1,43,50,0,0` Above green line has these properties: * Offset: 2199 (00:02:199 -) * has 0.75* SV Multiplier (-100 / -133.3333..) * Inherits a 4/4 time signature red line * Uses N:C43 as its sampleset * 50% Volume * Not Kiai -------------------------- ## GameObjects ### Notes: #### Example `144,298,1939,1,2,1:0:0:0:` #### format: a, b, c, d, e, f1:f2:f3:f4: | | Explanation | Corresponding value to the example above | Notes | | --- | --------------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | a | X Axis | 144 | | | b | Y Axis | 298 | | | c | Offset | 1939 | | | d | NC | 1 | 1 = non-NC circle, 5 = NC circle | | e | Hitsounds | 2 | whistle = 2, finish = 4, clap = 8<br>could be added if multiple hitsounds are applied<br>(ex. clap + whistle, value = 10) | | f | f1 = Sampleset<br> f2 = Addition <br> f3 & f4 are *seems to be* unused (always 0) | 1:0:0:0: | 0 = Auto, 1 = Normal, 2 = Soft, 3 = Drum | `144,298,1939,1,2,1:0:0:0:` Above note has these properties: * Note placement: x: 144, y:298 * Offset: 1939 (00:01:930 -) * Has no NC * Has whistle on it * Has Normal Sampleset + Auto Addition on it -------------------------- ### Sliders (Note: Sliders require more patience to understand) #### Example `153,169,2069,6,2,P|235:165|292:207,1, 156.093755954504,10|14,2:2|2:3,1:2:0:0:` 0 reverse `153,169,2069,6,2,P|235:165|292:207,2, 156.093755954504,10|14|2,2:2|2:3|0:3,1:2:0:0:` 1 reverse format: ![](https://i.imgur.com/O0Rnopa.png) (I figured out that it would be clearer to put format like this) | | Explanation | Corresponding value to the example above | Notes | | --- | --------------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | a | Slider Start X Axis | 153 | | | b | Slider Start Y Axis | 169 | | | c | Offset (Starting Point) | 2069 | | | d | NC | 6 | 2 = non-NC slider, 6 = NC slider | | e | Slider Body Hitsounds | 2 | whistle = 2, finish = 4, clap = 8<br>could be added if multiple hitsounds are applied<br>(ex. clap + whistle, value = 10) | | f | Curve Type \| <br> slider nodes x:y \| <br> slider end point x:y | P\|235:165\|292:207 | Curve Type: <br> B = Bezier, P = non-Bezier <br><br> if there are more than 2 slider nodes (other than slider start/end node), their x:y information will be divided with **\|**<br>| | g | Traverse Time | non-reverse slider: 1<br>reversed slider: 2 | basically reverses amount +1 | | h | Length (Pixel?) | 156.093755954504 | This value is equal to:<br> (SliderEndTime - SliderStartTime) * (SliderBeatLength * Time diff. every 1/1) * (original SV * 100) * SV Multiplier<br><br>SliderBeatLength = 3/4, 1/2, 1/1.. etc<br>Time diff. every 1/1: check red lines | i | Hitsounds on slider start/reverses/end | non-reverse slider: 10\|14<br>reversed slider: 10\|14\|2 | The nth number means the hs settings on:<br><br>- slider start, if n = 1 (basically the start)<br>- (n-1)th reverse, if 1<n<length(i)<br>- slider end, if n = length(i) (basically the end of i)<br><br>Value shares the same rule as Note Hitsounds | | j | Sampleset:Addition on slider start/reverses/end | non-reverse slider: 2:2\|2:3<br>reversed slider: 2:2\|2:3\|0:3 | The nth number means the Sampleset/Addition settings on:<br><br>- slider start, if n = 1 (basically the start)<br>- (n-1)th reverse, if 1<n<length(j)<br>- slider end, if n = length(j) (basically the end of j)<br><br>Value shares the same rule as Note Sampleset/Addition | k | SliderBody Sampleset:Addition | 1:2:0:0 | The last 2 numbers are unused<br><br>Value shares the same rule as Note Sampleset/Addition `153,169,2069,6,2,P|235:165|292:207,1,156.093755954504,10|14,2:2|2:3,1:2:0:0:` Above slider has these properties: * Slider start: x: 153, y:169 * Offset: 2069 * Has NC * Has whistle on its slider body * Is a non-bezier style slider * Has 1 additional slider-nodes besides start/end nodes on x:235, y: 165 * Slider end: x: 292, y: 207 * Has 0 reverses * Is 156.093755954504 pixels long (?) * Has whistle + clap on its slider start, and whistle + finish + clap on its slider end * Has Soft Sampleset + Soft Addition on its slider start, and Soft Sampleset + Drum Addition on its slider end * Has Normal Sampleset + Soft Addition on its slider body ### Spinner #### Example `256,192,10942,8,0,13412,0:0:0:0:` #### Format: a,b,c,d,e,f,g1:g2:g3:g4 | | Explanation | Corresponding value to the example above | Notes | | --- | --------------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | a | X Axis | 256 | For spinners, this value is always 256 | | b | Y Axis | 192 | For spinners, this value is always 192 | | c | Offset | 10942 | | | d | NC | 8 | 8 = non-NC spinner, 12 = NC spinner | | e | Hitsounds | 0 | whistle = 2, finish = 4, clap = 8<br>could be added if multiple hitsounds are applied<br>(ex. clap + whistle, value = 10) | f | End Time | 13412 | spinner length = f - c | g | g1 = Sampleset<br> g2 = Addition <br> g3 & g4 are *seems to be* unused (always 0) | 0:0:0:0: | 0 = Auto, 1 = Normal, 2 = Soft, 3 = Drum | `256,192,10942,8,0,13412,0:0:0:0:` Above spinner has these properties: * Spinner placement: x: 256, y:192 (as always) * Offset: 10942 (00:10:942 -) * Has no NC * Has no hitsounds on it * Ends at offset 13412 (00:13:412 -) * Has no Sampleset/Addition on it