osuskins.org

osuskins.org / make a skin

Making an osu! skin

A skin is a folder of PNGs and WAVs plus a skin.ini, zipped and renamed to .osk. There is no editor to install and no format to learn beyond file names — osu! looks for elements by name, and any it cannot find it takes from the default skin.

What a real skin actually contains

osu! recognises around 800 element names. Almost nobody ships all of them. We opened 561 archives and counted what is really in there — the top of that table is the shortlist for a first skin:

ElementShips it
cursor100%
hit judgements (hit300, hit100, …)99.8%
sliderb99.8%
hitcircle + hitcircleoverlay99.6% / 98.7%
cursortrail99.6%
approachcircle98%+
default-0…9 (combo font)96%
reversearrow, sliderfollowcircle98%

The two rules that catch everyone

@2x means double. A file named hitcircle@2x.png is drawn at 256px and displayed at 128. Ship the @2x version — 93% of inspected archives do — or your skin goes soft on any modern display.

osu! tints some elements and not others. hitcircle.png and approachcircle.png are multiplied by the combo colour, so draw them near-white and let the colour come from skin.ini. hitcircleoverlay.png and the combo digits are never tinted, so whatever colour you draw them is the colour they stay. Getting this backwards is why a first skin comes out grey.

Three skins to take apart

We generate our own skins from primitives — every sprite drawn in code, every hitsound synthesised — partly to prove the element list above is complete enough to build from. It was not, and the gaps are documented. They are yours to open, copy and edit: no attribution needed, nothing in them belongs to anyone else.

Once you have something, export it with Options → Skin → Export as .osk and send it to us — we will index it with your name on it.