skin.ini
Versions
Original 2007 - 2013 skin
If your
skin.inidoes not specify aversion, it will default to this version.- Hit circle numbers are part of hitburst explosions.
- Large expansion of hitlighting (
lighting.png). - Old styled spinner (
spinner-circle.png,spinner-background.png, andspinner-metre.png). - Segmented countdown image build-up.
- Smaller selection bar images (87px height max).
- Uncoloured play-warningarrow during end of breaks.
- Version exclusive ranking screen buttons (
ranking-replay.pngandranking-retry.png). - Version exclusive sliderpoints display (
sliderpoint10.pngandsliderpoint30.png).
UI: positioning changes / osu!: visibility update (reduced clutter).
- High definition skins
- Use the suffix
@2x.pngin the skinning element to let osu! know that the skinning element is higher in quality.
- Use the suffix
- New style spinner (
spinner-middle.png,spinner-middle2.png,spinner-top.png,spinner-bottom.png, andspinner-glow.png). - Countdown sequence instead of segmented image.
- Countdowns are now centred.
- Hitcircle numbers are no longer part of hitburst explosions.
- Red coloured play-warningarrow during end of breaks.
- Smaller expansion of
lighting.png. - Anchor changes of selectionbar images.
- Positioning changes of ranking screen images (generally, it is shifted down).
- High definition skins
osu!taiko positioning changes
taiko-bar-right.pngandtaiko-bar-right-glow.pngdirectly sits undertaiko-bar-left.png.- Taiko drum postion changes (allows larger areas).
osu!catch changes
fruit-ryuuta.pngwill no longer work from this point forward.- New catcher states (and images).
- New osu!catch specific combobursts (
comboburst-fruits.png).- osu! combobursts will no longer be used for osu!catch.
osu!mania stage scaling adjustments
- Downscale combo counter and hitbursts.
- Column lines are drawn on both sides of the column when columns are spaced.
- Introduction of hold note tails on release (works for all versions).
osu!mania column and upscroll adjustments
- New commands:
KeyFlipWhenUpsideDownandNoteFlipWhenUpsideDownNoteBodyStyle(stretch, cascade from top, cascade from bottom)LightingNWidthandLightingLWidth
- New commands:
Allow per-type skinning of arrows
- Adds
arrow-generic.png,arrow-warning.pngandarrow-pause.png. - Deprecates
play-warningarrow.pngin favor of the above.
- Adds
osu!mania specific combobursts
- Adds
comboburst-mania.png.- Displays on the right side of the stage.
- Adds
Always the newest version
If your skin folder does not contain a
skin.inifile, it will default to this version.- Never use this when distributing skins! (if a new skin version releases, a skin with its version set to
latestmight break). - Always uses the latest version the game supports.
- Never use this when distributing skins! (if a new skin version releases, a skin with its version set to
This is not a version, but a special skin folder that is created when the default skin is modified, e.g. by dragging in a custom menu background into the game window (with osu!supporter) or when attempting to modify osu!mania keybinds for the default skin from the options.
A skin in a folder named
Userwill always use the latest skin version, regardless of any speification inskin.inior otherwise.
Notes
Before viewing the skin.ini commands below, here are some notes.
1's and 0's
tl;dr 0 = no and 1 = yes.
Some commands only accept a boolean value (a true or a false value).
When skinning, osu! is set up to only recognise a 1 (one) as true while a 0 (zero) as false.
Here is a classic example:
|
|
|---|---|
|
|
|
Note that Reisen, the sliderball, does not flip when 0 is used.
However, Reisen does flip when a 1 is used.
Depending on what sprite is used, you’ll either get a moonwalking sliderball or one that turns around.
Numbers and Integers
The tables below may list either a number, an integer, or a positive integer.
When viewing these tables:
numbermeans a whole or decimal number (e.g.1.5,4.295,2,3.0).integermeans whole numbers only (e.g.-13,-632,135,9).positive integermeans positive whole numbers only (e.g.376,22, or5).
comma-split list with positive integersis — literally — a list of positive integers split with commas (e.g.1, 2, 3, 55).
RGB and RGB(a)
A few commands may ask for a colour in the RGB or RGB(a) format.
- For RGB, the format looks like
R, G, Bwhere
R= red,G= green, andB= blue.- Most commands will only accept
RGBwithout the alpha component.
If you specify an alpha value here, osu! will ignore it.
- Most commands will only accept
- For RGB(a), the format looks like
R, G, B, a,
whereameans alpha (opacity).- A few commands accept
RGB(a)(including alpha).
If you don’t specifya, 255 (opaque) will be used.
- A few commands accept
Sections
osu! organises commands using a header-like syntax, such as [General].
osu! only uses five sections throughout the skin.ini file, indicated by the headers below.
[General]
Question:What is the name of this skin?Value:text (skin name)Default:Unknown
After exporting the skin, the filename is
<Name>.osk.- In osu!(lazer), the filename is
<Name> (<Author>).osk.
- In osu!(lazer), the filename is
The skin selector uses folder names, not the names given by this option.
- In osu!(lazer), the skin selector options are in the format
<Name> (<Author>), or<Name> [<.osk filename>] (<Author>)if the name inskin.inidiffers from the name of the.oskfile.
- In osu!(lazer), the skin selector options are in the format
Question:Who is the author of this skin?Value:text (skin creator)Default:(empty)
In osu!(lazer), after exporting the skin, the filename is
<Name> (<Author>).osk.- In osu!(lazer), the skin selector options are in the format
<Name> (<Author>), or<Name> [<.osk filename>] (<Author>)if the name inskin.inidiffers from the name of the.oskfile.
- In osu!(lazer), the skin selector options are in the format
Question:How should the skin behave?Value:A version number orlatest
Question:How many frames should be displayed by the animations that depend on this value in one second?Value:positive integer or-1to to make osu! play all frames of the animation in one secondDefault:-1
This will set the framerate of most animations.
- Except circleoverlays, sliderball, pippidon, osu!mania notes and lighting
Question:Should the slider combo colour tint thesliderball?Value:0or1Default:0
The default sliderball will always get tinted, if enabled in options.
Question:Shouldcomboburstbe shown in a random order?Value:0or1Default:0
This is not for osu!taiko.
Question:Should thecursorhave an origin at the centre of the image?Value:0or1Default:1
0= top-left corner1= centred
Question:Should thecursorexpand when clicked?Value:0or1Default:1
Question:Should thecursorsprite rotate constantly?Value:0or1Default:1
Question:Should thecursor trailsprite rotate constantly?Value:0or1Default:1
Question:On which combo counts should thecomboburstsounds be played?Value:comma-split list with positive integersDefault:(empty)
This is not for osu!taiko.
This only affects the combo burst sounds, not the milestones.
Question:Should thehitcircleoverlaybe drawn above the numbers?Value:0or1Default:1
This is for osu! only.
Old command:
HitCircleOverlayAboveNumer(with typo) still works for legacy support
Question:Should the score and accuracy display be centered at the top of the screen?Value:0or1Default:0
This is available in the cuttingedge stream only.
Question:If thesliderballis reversed, should thesliderballsprite flip horizontally?Value:0or1Default:1
This is for osu! only.
Question:Should thespinneradd black bars during spins?Value:0or1Default:0
Question:Should thespinnerspinsound pitch up the longer the spinner goes?Value:0or1Default:1
Question:Should the highest bar of themetrestay visible all the time?Value:0or1Default:0
[Colours]
Question:What colour is used for the last combo?Value:RGBDefault:255,192,0
This is used if beatmap skin is disabled or uses default colours.
This appears last.
Question:What colour is used for the first combo?Value:RGBDefault:0,202,0
This is used if beatmap skin is disabled or uses default colours.
This appears first.
Question:What colour is used for the second combo?Value:RGBDefault:18,124,255
This is used if beatmap skin is disabled or uses default colours.
This appears second, if defined.
Question:What colour is used for the third combo?Value:RGBDefault:242,24,57
This is used if beatmap skin is disabled or uses default colours.
This appears third, if defined.
Question:What colour is used for the fourth combo?Value:RGBDefault:(empty)
This is used if beatmap skin is disabled or uses default colours.
This appears fourth, if defined.
Question:What colour is used for the fifth combo?Value:RGBDefault:(empty)
This is used if beatmap skin is disabled or uses default colours.
This appears fifth, if defined.
Question:What colour is used for the sixth combo?Value:RGBDefault:(empty)
This is used if beatmap skin is disabled or uses default colours.
This appears sixth, if defined.
Question:What colour is used for the seventh combo?Value:RGBDefault:(empty)
This is used if beatmap skin is disabled or uses default colours.
This appears seventh, if defined.
Question:What colour should thenumbers on the input keysbe tinted in?Value:RGBDefault:0,0,0
Question:What colour should the defaultsliderballbe coloured in?Value:RGBDefault:2,170,255
Question:What colour should be used for the sliderborders?Value:RGBDefault:255,255,255
This is for osu! only.
Question:What colour should all sliderbodies be coloured in?Value:RGBDefault:use current combo colour
This is for osu! only.
Using this will make all slider track colours the same.
Question:What colour should the text of the active panel be tinted in?Value:RGBDefault:0,0,0
Question:What colour should the text of the inactive panels be tinted in?Value:RGBDefault:255,255,255
Question:What colour should be added to thespinner-background?Value:RGBDefault:100,100,100
[Fonts]
Question:What prefix is used for thehit circle numbers?Value:text (path/filename prefix)Default:default
You can use a custom path
Question:By how many pixels should thehit circle numbersoverlap?Value:integerDefault:-2
Negative integers will add a gap.
Question:What prefix is used for thescore numbersnumbers?Value:text (path/filename prefix)Default:score
Question:By how many pixels should thescore numbersoverlap?Value:integerDefault:0
Negative integers will add a gap.
Question:What prefix is used for thecombo numbers?Value:text (path/filename prefix)Default:score
Question:By how many pixels should thecombo numbersoverlap?Value:integerDefault:0
Negative integers will add a gap.
[CatchTheBeat]
Question:What colour should be used for the dash?Value:RGBDefault:255,0,0
osu! will use a default alpha value.
This is the colour of the catcher itself.
Question:What colour should be used for the after images?Value:RGBDefault:useHyperDash
osu! will use a default alpha value.
This is the colour of the images following the catcher after obtaining the hyperdash fruit.
[Mania]
Question:What keycount are these settings for?Value:1,2,3,4,5,6,7,8,9,10,12,14,16,18
This is required per key set
Question:Where does the left column start?Value:numberDefault:136
Question:Up to which point can columns be drawn?Value:numberDefault:19
Question:What is the distance between all columns individually?Value:comma-split list with numbersDefault:0
This is the spacing between the columns
The gap will be transparent.
Question:What widths do all columns have individually?Value:comma-split list with numbersDefault:30
It is suggested to keep this thin if high keycounts or wide keys are used.
Question:How thick are the column separators individuallyValue:comma-split list with numbersDefault:2
Question:How thick is the barline?Value:numberDefault:1.2
Question:Which widths shouldLightingNuse for all columns individually?Value:comma-split list with numbersDefault:(empty)
Question:Which widths shouldLightingLuse for all columns individually?Value:comma-split list with numbersDefault:(empty)
Question:Which height should allnoteshave if columns have individual widths?Value:number
If not defined, the height scale of the smallest column width is used
Question:On which height should thestage lightsbe drawn at?Value:integerDefault:413
This is only for
StageLight.
Question:On which height should thehitburstsappear at?Value:integer
The hitbursts will be vertically centred on the stage.
Question:On which height should the combo counter appear at?Value:integer
The combo counter will be vertically centred on the stage.
Question:Should an additional line be drawn above theStageHint?Value:0or1
This is the hint for when the keys should be pressed.
Question:How many frames should be displayed by theStageLightanimation in one second?Value:integerDefault:unknown
Question:What SpecialStyle is used for this keycount if available?Value:0,1, or2Default:0
0= none1= (left (SP) or outer (DP) lane)2= (right (SP) or inner (DP) lane)For even keycounts, more than 4.
For DP, the centre between the stages is used for determining positions.
Question:On what side should thecomboburstappear?Value:0,1, or2Default:1
0=Left1=Right2=Both(random)You can use the words or values, both are accepted.
Combobursts will be flipped on the right stage half.
Question:Should thestagebe split into 2 stages?Value:0or1
This value is forced, if defined.
0= no splitting / forced SPEach keycount higher than 1 can be split (or merged, if count is higher than 9).
Question:What distance apart should the 2 stages be when split?Value:numberDefault:40
The distance between the two stages, if split.
Question:Should thehitburstonly be shown on the stage it was scored on?Value:0or1Default:1
0= shows on both stages at the same time1= shows when hit on specific stageFor DP, each stage gets shown its own judgement or of both stages
Question:Should thestagealways be upside down?Value:0or1Default:0
Act like DDR/StepMania?
Question:Should the column’shold note headbe flipped when thestageis flipped?Value:0or1
Requires skin version
2.5or higher.Column specific (for head parts)
Question:Should the column’shold note bodybe flipped when thestageis flipped?Value:0or1
Requires skin version
2.5or higher.Column specific (for length parts)
Question:Should the column’shold note tailbe flipped when thestageis flipped?Value:0or1
Requires skin version
2.5or higher.Column specific (for tail parts)
Question:What style should be used for allhold note bodies?Value:0,1, or2Default:1
0= Stretch1= Cascade from top2= Cascade from bottomRequires skin version
2.5or higher.All columns.
Question:What style should be used for the column’shold note body?Value:0,1, or2
0= Stretch1= Cascade from top2= Cascade from bottomRequires skin version
2.5or higher.Column specific (for notes)
Question:What colour should be used for the column’s lane?Value:RGB(a)Default:0,0,0,255
For the specific column’s background.
#starts at1
Question:What colour should be used for the column’slighting?Value:RGBDefault:55,255,255
Column specific (StageLight).
#starts at1
Question:What colour should be used for the column lines?Value:RGB(a)Default:255,255,255,255
These are the lines that separate the columns.
Question:What colour should be used for the bar separator?Value:RGB(a)Default:255,255,255,255
A bar is one full measure.
Question:What colour should be used for the timing line?Value:RGBDefault:255,255,255
Question:What colour should be used for the keybinding reminders?Value:RGBDefault:0,0,0
This is the colour of the keybindings check before the game starts
Question:What colour should be used for the combo counter during holds?Value:RGB(a)Default:255,191,51,255
This is the colour of the combo counter during holds.
Question:What colour should be used for the combo counter when it breaks?Value:RGBDefault:255,0,0
This is the colour of combo counter during a combobreak.
Question:What is the name of the column’sunpressed keyimage?Value:text (path to image)
This is for the specific column’s idle key image.
Question:What is the name of the column’spressed keyimage?Value:text (path to image)
This is for the specific column’s pressed key image.
Question:What is the name of the column’snoteimage?Value:text (path to image)
This is for the specific column’s note image.
Question:What is the name of the column’shold note headimage?Value:text (path to image)
This is for the specific column’s hold note head image.
Question:What is the name of the column’shold note bodyimage?Value:text (path to image)
This is for the specific column’s hold note body image.
Question:What is the name of the column’shold note tailimage?Value:text (path to image)
This is for the specific column’s hold note tail image.
Question:What is the name of theleft stageimage?Value:text (path to image)
This is the left border.
Question:What is the name of theright stageimage?Value:text (path to image)
This is the right border.
Question:What is the name of thebottom stageimage?Value:text (path to image)
This will not be stretched to fit
Question:What is the name of thestage hintimage?Value:text (path to image)
This is the graphical judgement line.
Question:What is the name of thestage lightimage?Value:text (path to image)
This is the column lighting.
Question:What is the name of thenote lightingimage?Value:text (path to image)
Question:What is the name of thehold note lightingimage?Value:text (path to image)
Question:What is the name of thewarning arrowimage?Value:text (path to image)
This appears three barlines before the map starts, if there is enough time.
Question:What is the name of thehit0image?Value:text (path to image)
Question:What is the name of thehit50image?Value:text (path to image)
Question:What is the name of thehit100image?Value:text (path to image)
Question:What is the name of thehit200image?Value:text (path to image)
Question:What is the name of thehit300image?Value:text (path to image)
Question:What is the name of thehit300gimage?Value:text (path to image)