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 thehitnormalsounds always be played?Value:0or1Default:1
This is not for osu!taiko.
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.
osu! will use a default alpha value.
This is the colour outlining the fruit.
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 the judgement line be drawn at?Value:integerDefault:402
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
should be used depending on note and key designs.
Question:Should thestagealways be upside down?Value:0or1Default:0
Act like DDR/StepMania?
Requires skin version
2.5or higher.This applies for all columns.
Question:Should the specified column’skeybe flipped when the stage is flipped?Value:0or1
Requires skin version
2.5or higher.This applies for the specified column.
Replace
#with a valid column index (from 0 to 17).
Requires skin version
2.5or higher.This applies for all columns.
Requires skin version
2.5or higher.This applies for the specified column’s pressed key state.
Requires skin version
2.5or higher.Column specific (for notes)
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)