StepMania 5.0.8

StepMania 5.0.8; release notes compiled and Markdown formatted by @kyzentun:

This is divided into two sections:

  • Player visible changes: New configuration options players should try out,
  • Themer visible changes: New (optional) screens that themes can support, new metrics or lua functions, or fixes for existing functions.

Items are roughly grouped into the general part of StepMania they fit into.


Cmake is now the only method supported for compiling Stepmania. Read Build/ for instructions.
Some Linux users may need to pass -DWITH_LIBVA=ON and/or -DWITH_CRYSTALHD_DISABLED=ON to cmake when compiling.
There is a binary package for Linux which was built on amd64 debian. If it doesn't work, compile from the source instead.

Player visible changes:

Service Menu:

Entries in service menu rearranged to hopefully organize them better.
Test Input, Input Options, and Calibrate Machine Sync are now under Input Options.
Appearance Options, Set BG Fit Mode, and UI Options are now under Display Options.

Edit Mode:

  • Added submenus to the timing edit menu to allow shifting, copying, and
    pasting any or all timing segments in the selected region or after the
    current cursor position.
  • Shifting menus in edit mode now have choices for 1, 2, or 4 measures or 2
  • Revert From Disk actually works now.
  • Fixed bug that made alter menu choices prompt for clearing.


  • Holding Select on gameplay now skips the current song in course or endless
    mode. This is meant to address the problem some people had where they were
    unable to skip songs in endless mode.
  • Toasty animation can now occur multiple times during gameplay. The
    Allow Multiple Toasties preference controls whether it is played
    multiple times.

Bug fixes:

  • Fixed bug in screen filter in default theme that made it not appear under
    the field when a solo file was played without Center1Player.
  • Fixed crash on OS X for certain dance pads when in Japanese locale.
  • Scoring bug fixes related to radar calculation.
  • Scores on edit charts should now be loaded correctly. Before, they were
    only loaded after the chart had been played in the current session.
  • Fixed bug that made steps on the same row as a stop and a bpm change
    unhittable. (and possibly other weird edge cases of multiple timing segments
    on one row, nothing should accidentally cause unhittable steps now)
  • Joining on Select Music when on Extra Stage is disabled to prevent
    crashing on Evaluation Summary.
  • "Do not show again" button on missing texture dialog works now.
  • If the background or banner file for a song doesn't exist when the song is
    cached, the cache file will have a blank path so Stepmania won't try to load
    the nonexistent banner or background.
  • Default key configuration for beat game type slightly tweaked, space is
    now the default scratch key, key7 is now mapped to right instead of key3.
  • Backwards and shuffle chart mods in beat now ignore the scratch column.
  • The AxisFix preference has been added which might fix the axis problem
    for some people on windows or on linux using the event driver.

Themer visible changes:

Service Menu:

ScreenOptionsInputSub and ScreenOptionsDisplaySub added. Updating a theme
to show the options for the new screens should be a simple matter of
changing the LineNames entry for ScreenOptionsService to include
"InputOptions" and "SoundGraphics".


Added handling for diffuse to make rainbow and related effects work.


Stream, Voltage, Air, Freeze, and Chaos are no longer capped at 1. Stream
and Voltage no longer count hold heads twice. RadarCategory_Notes added,
which counts all notes.


The NoteField board is now underneath everything except the backgound. This
means underneath any custom actors on the underlay or overlay or decoration
layers, and also underneath the combo/judgment even when the ComboUnderField
metric is true.


The parameter table broadcast with this message has changed it is now as follows:

PlayerNumber= pn, -- the player number of the player that earned the
ToastyCombo= number, -- the current number of W2/W1 in a row the player has  
Level= number, -- the number of toasties earned in a row  

Adding the Level parameter allows the themer to easily set off a different
effect based on how long the player has gone without breaking their toasty
See Docs/Themerdocs/Examples/Example_Actors/Toasty.lua for an example of
BGAnimations/ScreenGameplay toasty.lua that uses these parameters.

The Gameplay::ToastyTriggersAt metric can be a function now, or a number.
If the metric is a function, the function is passed the player number, and the player's current
toasty level, and the number it returns is the number of additional steps to
earn the next toasty.
If the metric is a number, it is the number of additional steps to
earn the next toasty.
This means that ToastyTriggersAt=250 and
ToastyTriggersAt=function(pn, level) return 250 end have the same
effect: Toasties will be awared at 250, 500, 750, and so on.

The Gameplay::ToastyMinTNS metric has been added for controlling the minimum
TapNoteScore needed to maintain toasty combo.

Bug fixes and new functions:

  • Attributes added are marked with [A].
  • Bug fixes are marked with [B].
  • Functions are marked with [F].


  • [A] IsAction attribute added. If this is true, the sound will not be
    played if the MuteActions preference is true.


  • [F] commify
  • [F] convert_xml_bgs
  • [F] rec_print_children
  • [F] rec_print_table

XML converter

A converter has been added that takes care of the simple grunt work of converting an xml bg/fg file to lua for
SM5. Read Docs/Themerdocs/XmlToLua.txt for details.

A short digression about earning toasties

A toasty is a special award for achieving a certain number of W2 or W1 steps
in a row. In the default theme, this is 250 steps in a row, and W2 is known
as Perfect, and W1 is called Flawless. The number of toasties earned is
stored in the profile. Some themes show a special animation and play a
sound when a toasty is earned.
The current toasty combo is the progress towards this goal. Each note on a
row counts as one point in the toasty combo, thus jumps are two, and hands
are 3 or more.
Hitting a step with a judgment worse than W2 breaks the toasty combo,
resetting it to 0.
For many years, achieving 250 W2/W1 in a row, then 1 W3, then 250 more W2/W1
in a row would increment the toasty counter in the profile by 2, but only show the animation once. Earning 500 W2/W1 in a row was still only 1 toasty.
This behavior has been changed so that 500 W2/W1 in a row will increment the
toasty counter twice, and show the animation twice.