StepMania User Guide

Guide to installation, configuration, and use of StepMania

Front matter

Front matter


©2019-present StepMania Development Team, Team Rizu and contributors

Except where otherwise noted, this manual is licensed under the Creative Commons Attribution 4.0 International License. Source code and other code content from StepMania itself is licensed under the MIT License.

Setup and Configuration

Setup and Configuration


Installing StepMania


On Windows, it is recommended that you utilize the installer.


On some distributions, StepMania may be available in your package repository, although the availability of current versions is not guaranteed. It is recommended that you compile source code instead.


The installation is simply done by dragging the folder contained within the .DMG file itself to your desired location.

Keep in mind, because of Apple's security concerns, some procedures are required in order to boot up the game. These are mentioned on MacOS's Troubleshooting section.

    Setup and Configuration


    In some cases it is more preferable to compile StepMania from its source code than use an installer or binary build.

    StepMania utilizes the Git distributed version control system, and the cmake build system.

    Compilation on Linux

    Install dependencies

    On current versions of Debian and Ubuntu (since at least 9.0 and 17.04 respectively), the following commands will install the dependencies needed to compile StepMania 5.1.

    sudo apt-get install build-essential
    sudo apt-get install git cmake mesa-common-dev libglu1-mesa-dev libglew1.5-dev libxtst-dev libxrandr-dev libpng-dev libjpeg-dev zlib1g-dev libbz2-dev libogg-dev libvorbis-dev libc6-dev yasm libasound-dev libpulse-dev binutils-dev libgtk2.0-dev libmad0-dev libudev-dev libva-dev nasm

    Here is a more elaberated explanation on what you install:

    We will update this list when we change requirements.

    First lets get the basic build-essentials

    sudo apt-get install build-essential

    The sudo means we run the command as root which is the highest level of permission on your system,

    apt-get is the package manager of ubuntu, We use the install argument to tell it to install the packages we need,


    Now lets get 2 packages we need on every system

    sudo apt-get install git cmake

    We use git to download the sourcecode from example github, this makes a clone of the files on github and put them on our harddrive.

    Cmake is the configuration system for our game, it checks what system you have and whats available for our compiler to use.


    Now we have both those, we can get the libaries we need for compiling the actual thing.

    Here is an overview and explanation of all the libs we use.

    • mesa-common-dev - These are the main graphic libs to make the game work on your pc.
    • libglu1-mesa-dev - This is the GLU sub graphic lib, It has GLU which we use together with GLEW
    • libglew1.5-dev - This is the GLEW main graphic lib, we use this for OpenGL.
    • libxtst-dev - This is the X11 package, We use xorg/x11 as our graphical interface/GUI on linux.
    • libxrandr-dev - This is the XRandr package, This package makes it so it works with your display settings.
    • libpng-dev - PNG package, we use this to load PNG images in the game.
    • libjpeg-dev - JPG/JPEG, same as above, but for JPG/JPEG instead.
    • zlib1g-dev - zlib is a compressing lib, It makes sure we can compress stuff to make it smaller.
    • libbz2-dev - Same as zlib, its for compressing, but it uses a higher quality compression.
    • libogg-dev - libogg is what we use for our ogg support, most audio files these days made for SM are .ogg.
    • libvorbis-dev - Vorbis is the same as above, Its for our ogg support, We mainly use this cuz its licences.
    • libc6-dev - The standard C libraries we use for compiling, don't worry to much about this one.
    • yasm or nasm - YASM or NASM are are assemblers, most people prefer YASM because of its licence and rewrite.
    • libasound-dev - libasound-dev is the main ALSA sound development files, we need this for ALSA sound.
    • libpulse-dev - Same as above but for pulseaudio, pulseaudio runs on ALSA and most systems use this.
    • binutils-dev - An collection of binary utilities we use to compile the game.
    • libudev-dev - An package that contains more dev files for compiling.
    • libva-dev -Video Acceleration development files.
    sudo apt-get install mesa-common-dev libglu1-mesa-dev libglew1.5-dev libxtst-dev libxrandr-dev libpng-dev libjpeg-dev zlib1g-dev libbz2-dev libogg-dev libvorbis-dev libc6-dev yasm libasound-dev libpulse-dev binutils-dev libmad0-dev libudev-dev libva-dev

    The rest is optimal for a reason, and I'll explain why.

    • libgtk2.0-dev - We use this to show the loading window at the start, its old and broken.
    • libmad0-dev - libmad is the MP3 support, its has licencing issues, don't use if you want to sell SM as a game.
    sudo apt-get install libgtk2.0-dev libmad0-dev


    Retrieving source code 

    To retrieve the StepMania 5.1 source code, run the following command.

    git clone --single-branch -b 5_1-new --depth=1 

    Building StepMania

    Run the following commands in sequence

    cd stepmania
    git submodule update --init
    cd Build
    make -jN

    Change the N to a number less than or equal to double the number of cores in your CPU. 

    In case you want to test features and obtain more detailed debug information, replace "Release" in the cmake command with "Debug".

    Compilation on macOS

    Building StepMania

    First, you'll need to install Homebrew package manager. Then open the terminal, and run the following commands.

    brew install cmake yasm
    cd stepmania
    git submodule update --init
    cd Build
    cmake -G 'Xcode' -DCMAKE_BUILD_TYPE=Release .. && cmake ..


    After compilation is complete, just double click the .xcodeproj file that is in the Build folder

    If you have an error like Command /usr/bin/codesign failed with exit code 1 then it means that the project was able to build the application, but the name of the app is not the exact one with the code sign process. To fix this, simply change the "Executable file" on the XCode project to: "Stepmania-[The CMake Build type you've chosen]".

    Compilation on Windows

    Windows dependencies

    To compile StepMania on Windows, you'll require a few things, including

    be sure to install it to your PATH during installation so you can execute it on the command line

    • Git - there are several options, such as Git for Windows, GitKraken, and the GitHub Desktop client. As long as you have the command line tools available, you'll be fine. If you use the GitHub Desktop application, it installs a PowerShell instance called "Git Shell" that provides enhancements for navigating Git repositories.
    • Visual Studio 2017 or 2019 (these instructions presume that you will be using the free Community edition)
      • When installing Visual Studio, you will require at least the following components/workloads:
        • Desktop development with C++ components
        • Visual C++ Tools for CMake
        • Windows 10 SDK
        • Windows 8.1 SDK and UCRT SDK
    • The DirectX SDK
      • If you encounter error code S1023 whilst installing the DirectX SDK, run the following commands in an Administrator command prompt, install the DirectX SDK, and then reinstall Visual C++ 2010 SP1 runtimes.
        • MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
        • MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}

    Building StepMania

    When you're ready, once again retrieve the source code and run the following commands (assuming you are running Git from the command line. If not, follow the instructions for your software);

    cd stepmania
    cd Build

    Visual Studio 2017.

    cmake -DCMAKE_BUILD_TYPE=Release .. 

    Visual Studio 2019 or newer.

    cmake -A win32 .. 

    After running the commands, CMake will generate Visual Studio solution files, which can then be used to compile StepMania from within Visual Studio.

    The directory structure containing the source folder MUST NOT contain spaces in ANY of the folder names.


    Setup and Configuration


    StepMania's directory structure contains multiple folders used to store content and user data. By default, versions of most of these folders are also created in your user directory (including %appdata% on Windows and a home directory folder on Linux), along with folders for storing user data. If portable mode is enabled, user data folders are instead placed in the installation directory.

    Content directories


    The Appearance folder is used to store content used for customizing StepMania. Prior to 5.3, the Appearance subdirectories were top-level directories in the StepMania installation folder.

    • Themes change the user interface of StepMania.
    • NoteSkins change the appearance of notes in-game. They are divided into folders for noteskins specific to individual game types (such as dance), as well as "global" noteskins that can be used for any game type.
    • Toasties are combinations of sounds and graphic animations that can be displayed for specific combo milestones in-game.
    • Avatars is used to store profile-specific avatars that can be used in supported themes. Currently, they are used by placing images matching a profile's name in this folder.
    • Judgments contains images that can be displayed for judgments in supported themes. They are titled with hints to specify their functionality, including [ECFA] or [Pro] to mark them as being used for ECFA and "advanced" timing window settings (which use more than 6 judgment tiers), and [double] to mark judgment font graphics that contain specific frames to denote early and late timing.


    Announcers is used to store sets of audio files that can be played on specific events in the user interface and gameplay.


    BackgroundEffects is used to store preset effects that can be used by background sequences in song files.


    BackgroundTransitions is self-explanatory, and also used by background sequences in song files.


    BGAnimations is used to store animation scripts that can be used by background sequences in song files, such as the "flash" effects (commonly used in In the Groove 2 background videos).


    Characters that can be rendered in the background as dancers.


    Courses are used to define playlists of songs for the nonstop modes.


    Without Songs there isn't really a point to the game. The songs folder contains folders for each "group" of songs (also sometimes referred to as a "pack"), which in turn contain individual folders for each song.

    System and user data directories


    Song files and graphics are cached on startup to improve performance and speed up subsequent startups.


    This folder contains other configuration files used by StepMania


    This folder contains various logs and other information generated while StepMania is running.


    Most user data is stored in this directory, including the preferences and configuration files, and local profiles (including high scores, etc.)

    Setup and Configuration


    Installing themes and songs

    The theme and song directories expect specific directory structures. For instance, for songs, the folder structure must be:

    Songs/Song Group Title/Song

    Likewise for themes, they must be

    Themes/Theme Name/BGAnimations (etc.)

    If a song is not loading, or a theme loads up to a black screen with a menu rather than the theme (the "Fallback" theme), you may have placed the directories too deep.

    Graphics on Windows

    Make sure you have the latest drivers for your video card. Both AMD and Nvidia typically include an update mechanism with their drivers (such as AMD Radeon Settings and GeForce Experience) that display driver versions and provide updates functionality. You can also use dxdiag to show version information.


    If you need to download drivers manually, please consult your manufacturer's website.




    if you have a weird video card that is not supported or having issues, contact us on Discord for help.

    Direct3D and OpenGL

    Some features used in StepMania themes and content are not supported in Direct3D mode. It is recommended that you switch to OpenGL mode to maintain full functionality and compatibility.

    To do so, edit the VideoRenderers line in your Preferences.ini file to list "ogl" first; it is located in the Save directory where StepMania is installed, or in your %appdata%\StepMania 5.3 directory if portable mode is disabled.

    • In cases like "No Noteskins Found", you will need to open the terminal, and type the following command.

    xattr -dr /path/to/OutFox

    The reason for this error is that MacOS doesn't trust unsigned applications, and prevents access to external files unless given manual permission by the user.

    You can alternatively simply type the command like this, and drag the folder into the terminal window to auto complete the folder location.

    xattr -dr

    • When booting up the game in MacOS Catalina, you might get this message upon startup:

    MacOS Input Not Allowed

    This message will popup due to MacOS's strict input rules brought in 10.15 Catalina. You will need to give permission to StepMania to use the keyboard, otherwise, it won't be able to recieve any input at all.

    To do this, simply hit "Open System Preferences" and Select StepMania from the list. It will ask you to restart the application in order for the changes to take effect.

    If this window doesn't show up, check if "StepMania" is already listed and checked on the "Input Monitoring" submenu. If it is, remove it from the list and start StepMania again for the request window to show up.


    • My Game Window is only showing on the bottom left corner of the window, why is that?

    This is due to the renderer not supporting scaled screens yet. So to fix this, simply open the app's information window by pressing Command (⌘) + I , and then tick "Open in Low Resolution" under General.

    MacOS ticklowres.png