See also: skin.ini/Blank
The skin.ini
is an initialization file that is found in almost every skin folder.
This file will define how osu! will display certain skin elements.
Caution: skin.ini
commands are case sensitive, make sure you follow the proper spelling and are using the correct capitalisation!
Below is the skinning changelog.
The version number, seen in the headings, is what will be used in the Version
command for the skin.ini
file.
Original 2007 - 2013 skin
If your skin.ini
does not specify a Version
, it will default to this version.
lighting.png
).spinner-circle.png
, spinner-background.png
, and spinner-metre.png
).ranking-replay.png
and ranking-retry.png
).sliderpoint10.png
and sliderpoint30.png
).UI: positioning changes / osu!: visibility update (reduced clutter).
@2x.png
in the skinning element to let osu! know that the skinning element is higher in quality.spinner-middle.png
, spinner-middle2.png
, spinner-top.png
, spinner-bottom.png
, and spinner-glow.png
).lighting.png
.osu!taiko positioning changes
taiko-bar-right.png
and taiko-bar-right-glow.png
directly sits under taiko-bar-left.png
.interface/UI changes
star.png
instead of partially widthed star.png
.osu!catch changes
fruit-ryuuta.png
will no longer work from this point forward.comboburst-fruits.png
).
osu!mania stage scaling adjustments
osu!mania column and upscroll adjustments
KeyFlipWhenUpsideDown
and NoteFlipWhenUpsideDown
NoteBodyStyle
(stretch, cascade from top, cascade from bottom)LightingNWidth
and LightingLWidth
Allow per-type skinning of arrows
arrow-generic.png
, arrow-warning.png
and arrow-pause.png
.play-warningarrow.png
in favor of the above.osu!mania specific combobursts
comboburst-mania.png
.
Always the newest version
If your skin folder does not contain a skin.ini
file, it will default to this version.
latest
might break).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 User
will always use the latest skin version, regardless of any speification in skin.ini
or otherwise.
Before viewing the skin.ini
commands below, here are some notes.
tl;dr 0 = no
and 1 = yes
Some commands only accept a boolean value (a true
or a false
value). When skinning, osu! is setup to only recognise a 1
(one) as true
while a 0
(zero) as false
.
Here is a classic example:
SliderBallFlip: 0 |
SliderBallFlip: 1 |
---|---|
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 will either get a moonwalking sliderball, or one that turns around.
The tables below may list either a number, an integer or a positive integer.
When viewing these tables:
1.5
, 4.295
, 2
, 3.0
).-13
, -632
, 135
, 9
).
376
, 22
, or 5
).1, 2, 3, 55
).A few commands may ask for a colour in the RGB or RGB(a) format.
R, G, B
where R
is red, G
is green, and B
is blue.
R, G, B, a
, in addition to above, a
means alpha (opacity).
osu! organises the commands with a heading command. Which may look like this [General]
. osu! only uses five sections throughout the skin.ini file, which are indicated with the section headers below.
Name:
Author:
Version:
latest
skin.ini
file is not present, latest
will be used.skin.ini
file is present, but does not use the Version
command, 1.0
will be used (legacy support).AnimationFramerate:
-1
to to make osu! play all frames of the animation in one second-1
AllowSliderBallTint:
0
or 1
0
ComboBurstRandom
0
or 1
0
CursorCentre:
0
or 1
1
0
= top-left corner1
= centredCursorExpand:
0
or 1
1
CursorRotate:
0
or 1
1
CursorTrailRotate:
0
or 1
1
CustomComboBurstSounds:
HitCircleOverlayAboveNumber:
0
or 1
1
HitCircleOverlayAboveNumer
(with typo) still works for legacy supportLayeredHitSounds:
0
or 1
1
SliderBallFlip:
0
or 1
1
SpinnerFadePlayfield:
0
or 1
0
SpinnerFrequencyModulate:
0
or 1
1
SpinnerNoBlink:
0
or 1
0
Note: this header must be spelled as [Colours]
, not [Colors]
!
Combo1:
Combo2:
Combo3:
Combo4:
Combo5:
Combo6:
Combo7:
Combo8:
MenuGlow:
0,78,155
SliderBorder:
255,255,255
SliderTrackOverride:
SongSelectActiveText:
0,0,0
SongSelectInactiveText:
255,255,255
SpinnerBackground:
100,100,100
StarBreakAdditive:
255,182,193
star2
during breaksHitCirclePrefix:
default
HitCircleOverlap:
-2
ScorePrefix:
score
ScoreOverlap:
0
ComboPrefix:
score
ComboOverlap:
0
HyperDash:
255,0,0
HyperDashFruit:
HyperDash
HyperDashAfterImage:
HyperDash
Notes:
2.5
or higher....
[Mania]
Keys: 4
//*4K stuff*
[Mania]
Keys: 5
//*5K stuff*
...
Keys:
1
2
3
4
5
6
7
8
9
10
12
14
16
18
ColumnStart:
136
ColumnRight:
19
ColumnSpacing:
0
ColumnWidth:
30
ColumnLineWidth:
2
BarlineHeight:
1.2
LightingNWidth:
LightingN
use for all columns individually?LightingLWidth:
LightingL
use for all columns individually?WidthForNoteHeightScale:
HitPosition:
402
StageHint
, LightingN
, and LightingL
are drawn at this positionLightPosition:
413
StageLight
.ScorePosition:
ComboPosition:
JudgementLine:
0
or 1
LightFramePerSecond:
StageLight
animation in one second?SpecialStyle:
0
, 1
, or 2
0
0
= none1
= (left (SP) or outer (DP) lane)2
= (right (SP) or inner (DP) lane)ComboBurstStyle:
0
, 1
, or 2
1
0
= Left
1
= Right
2
= Both
(random)SplitStages:
0
or 1
0
= no splitting / forced SPStageSeparation:
40
SeparateScore:
0
or 1
1
0
= shows on both stages at the same time1
= shows when hit on specific stageKeysUnderNotes:
0
or 1
0
UpsideDown:
0
or 1
0
KeyFlipWhenUpsideDown:
0
or 1
1
2.5
or higher.KeyFlipWhenUpsideDown#:
0
or 1
2.5
or higher.#
with a valid column index (from 0 to 17).NoteFlipWhenUpsideDown:
0
or 1
1
2.5
or higher.KeyFlipWhenUpsideDown#D:
0
or 1
2.5
or higher.NoteFlipWhenUpsideDown#:
0
or 1
2.5
or higher.NoteFlipWhenUpsideDown#H:
0
or 1
2.5
or higher.NoteFlipWhenUpsideDown#L:
0
or 1
2.5
or higher.NoteFlipWhenUpsideDown#T:
0
or 1
2.5
or higher.NoteBodyStyle:
0
, 1
, or 2
1
2.5
or higher.NoteBodyStyle#:
0
, 1
, or 2
2.5
or higher.Colour#:
0,0,0,255
#
starts at 1
ColourLight#:
55,255,255
#
starts at 1
ColourColumnLine:
255,255,255,255
ColourBarline:
255,255,255,255
ColourJudgementLine:
255,255,255
ColourKeyWarning:
0,0,0
ColourHold:
255,191,51,255
ColourBreak:
255,0,0
KeyImage#:
KeyImage#D:
NoteImage#:
NoteImage#H:
NoteImage#L:
NoteImage#T:
StageLeft:
StageRight:
StageBottom:
StageHint:
StageLight:
LightingN:
LightingL:
WarningArrow:
Hit0:
Hit50:
Hit100:
Hit200:
Hit300:
Hit300g: