This repository contains themes and skins for UltraStar Deluxe.
Note that except for the Modern and Deluxe theme, these themes do not work with the USDX Release version yet! Please use one of these versions if you want to use any of the other themes:
Themes define the position, size, color, text, and behavior of UI elements. Skins map the texture names used by a theme to image, video, and other asset files. Together they provide the visual appearance of the game menus, song selection, singing screen, score screen, party mode, jukebox, editor, and popups.
Copy this repository's contents into the themes directory of an UltraStar
Deluxe installation.
In the main USDX source tree this directory is:
game/themes/
Each theme has a top-level .ini file, for example Modern.ini, and one
directory containing the skin .ini files and assets for that theme, for example
Modern/.
After copying or updating themes, restart UltraStar Deluxe. Themes and skins can then be selected in:
Options -> Themes
themes/
Modern.ini Theme definition
Modern/ Skins and assets used by the Modern theme
Blue.ini Skin definition
Winter.ini Skin definition
[main]button.png Example texture asset
Top-level .ini files are loaded as themes. .ini files inside theme
directories are loaded as skins.
A theme file starts with a [Theme] section:
[Theme]
Name = My Theme
Creator = Your Name
US_Version = USD 110
DefaultSkin = Blue
BaseTheme = ModernUseful fields:
Name: display name shown by USDX.Creator: theme author.US_Version: supported USDX theme format. The included themes currently useUSD 110.DefaultSkin: skin selected by default for this theme.BaseTheme: optional parent theme used for missing sections.
Themes can inherit from another theme. If a section is not present in the active
theme, USDX can resolve it from the BaseTheme chain. This is useful for themes
that only override selected screens or controls.
Colors are defined in the [Colors] section as RGB values:
[Colors]
White = 255 255 255
Black = 0 0 0
Accent = 40 160 220Other sections define screen elements such as buttons, statics, text, select slides, popups, and screen-specific layout objects.
A skin file starts with a [Skin] section:
[Skin]
Theme = Modern
Name = Blue
Color = BlueThe [Textures] section maps texture names used by the theme to files in the
skin directory:
[Textures]
Button = [main]button.png
MainBG = [bg-main]blue.jpg
Cursor = [interface]cursor.pngThe Theme value should match the theme's [Theme] Name. USDX lists themes
when it can find at least one matching skin.
One possible workflow:
- Create or copy a top-level theme file, for example
MyTheme.ini. - Set
[Theme] Name,Creator,US_Version = USD 110, andDefaultSkin. - Create a matching directory, for example
MyTheme/. - Add at least one skin
.iniin that directory. - Set the skin's
[Skin] Themeto the theme name. - Add texture mappings under
[Textures]and place the referenced assets in the same directory. - Run USDX and check the screens or modes your change touches.
For smaller changes, prefer inheriting from an existing theme with BaseTheme
and overriding only the sections that differ.
- Use
US_Version = USD 110for themes targeting the current format. - Texture names are referenced directly by theme files, so changing shared names may also require updating the related theme sections.
BaseThemeinheritance works best as a simple chain.- A theme needs at least one matching skin before it appears in the game.
- File names referenced in skin
.inifiles need to match the files on disk.
When contributing a change, it helps to:
- Keep changes focused on the affected theme or skin.
- Include any new image, video, or font assets referenced by the
.inifiles. - Preserve author and source attribution for third-party assets.
- Try the theme in UltraStar Deluxe before opening a pull request.
- Mention the USDX version and the screens or modes you checked.
- Add a screenshot or video to visualize the change or the theme in general.
UltraStar Deluxe source code and releases are maintained at: