Tutorials:Theming for StepMania 5

From SMTheming Wiki

Jump to: navigation, search

With sm-ssc becoming StepMania 5, more people may wish to learn how to theme for it. This tutorial will help you theme for SM5.


Theme Structure

Unlike other versions of StepMania, SM5 employs a fallback system, where the core metrics are in Themes/_fallback and the default theme is in Themes/default. Previous versions of StepMania put every metric into the default theme, making it a mess to go through. This was adopted from the arcade games that the original StepMania team made, like In the Groove.

Creating a New Theme

Creating a theme from scratch is easy.

  1. Create a new folder in the Themes directory.
  2. Create two files in the new folder: ThemeInfo.ini and metrics.ini.
  3. Create the following folders: BGAnimations, Fonts, Graphics, Languages, Scripts, and Sounds.

You now have a skeleton theme structure.


ThemeInfo.ini holds some general information about the theme.

An example ThemeInfo.ini from the SM5 default theme:



metrics.ini was once the heart of StepMania theming. It still plays a major role in StepMania 5, though Lua has taken over some of the roles.


This is where all the text goes. If you're familiar with StepMania 3.9 theming, this is where the window title has moved to.

Each language is defined by a two character code, such as en, ja, it, de, fr... A list of such codes is available here.


BGAnimations play a much larger role in StepMania 5 theming, especially with decorations. The BGAnimation folder also contains screen transitions, the system overlay, and various other items.


The Graphics folder is where various graphics that StepMania asks for are found. When using decorations, the files the theme looks for are in Graphics as well. Contrary to the name, the Graphics folder can also contain Lua scripts (allowing for multi-layered graphics in some instances).


Any font textures/inis belong in this folder. The Windows-only Texture Font Generator program creates StepMania-compatible fonts. Texture Font Generator should work in Linux using WINE.


As you've probably guessed, this is where the sounds go.

When it comes to music, you're able to have a .sm or .ssc simfile in the same folder with the same name as the song. This allows you to set the bpm, stops, and so on, which will allow commands like effectclock to work with your music.


Last but not least, the Scripts folder contains various Lua scripts that the rest of the theme can access. Typically, the screen branches (NextScreen, PrevScreen) are defined in a file in the Scripts folder.

Personal tools