StepMania 5.0.10

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

This is divided into three sections:

  • Build visible changes: Items related to compiling or running StepMania.
  • Player visible changes: Bug fixes and a couple new preferences.
  • Themer visible changes: Bug fixes, new lua functions, new metrics.

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

Build visible changes:

Running (Windows):

Windows users are required to have the Visual Studio 2015 Redistributable installed. All Windows users must have the x86 version of the runtime installed. All Windows users who are on a 64-bit operating system are also advised to install the x64 version as well.


Cmake is now required for compiling Stepmania. Read Build/ for instructions.
Lots of people came asking for help, so this bears repeating.
The thread in the release forum has been updated with instructions for compiling on Linux.
The linux tar.gz attached to this release was built for amd64 debian.

Additional compilation notes are found at the bottom of this document.

Player visible changes:


  • Fixed crash when an unknown type chart was in a bms.
  • Fixed bug that would load iidx bms files as kb7.
  • Added myo2 channel layout and kb7 charts. Added preview point and
    fixed offset support and linear solo bms layout.

Course Mode:

  • Fixed loading of courses that use WORST entries.

Edit Mode:

  • Current Second display no longer has the global offset added in. Good people were
    using the Current Second when syncing charts, and having the global offset added in
    made syncing more difficult.
  • Fixed crash on missing ScreenMiniMenuTimingDataChangeInformation metrics.
  • .sm files will no longer be saved when split timing is used because
    per-chart timing cannot be done in the .sm format.
    There was some consideration of trying to change the bpm of charts when
    saving to .sm, changing the bpm of the chart to match the song and moving
    notes to occur near the same time, but that would cause most notes to be
    several milliseconds off sync. So the idea of trying to create a similar
    .sm for compatibility was discarded.
    This only matters to people using split timing, which means different
    bpm and stop data for each chart.
  • Fixed crash on entering edit mode caused by entering edit mode as Player 2.
    Edit Mode only works as Player 1.


  • Fixed problems with disqualification and charts with attacks. If a chart
    has attacks, and the attack modifier is used to turn them "Off", then the
    score is disqualified.
    Turning on "Random Attacks" also disqualifies the score, even on charts that
    do not have attacks.
  • Fixed timing to apply the current music rate to the global
    offset so that playing at different music rates doesn't make a chart off
  • Fixed bug that caused missed holds to be recorded as held in some themes.
  • Fixed bug that skipped notes on beat 0 in score.


  • If the fallback for a noteskin is not found, that noteskin is not loaded,
    to prevent picking it and crashing.
  • Fixed bug where the hold body doesn't scroll if it goes off the top of the
  • Fixed bottomcap when NoteDisplay is zoomed out.


  • MaxRegenComboAfterMiss preference brought in.
    When a step is missed in gameplay, the combo has to get back up to
    RegenComboAfterMiss before the player starts regaining life. If
    MaxRegenComboAfterMiss is greater than RegenComboAfterMiss, then each
    successive miss increases RegenComboAfterMiss until it reaches
    MaxRegenComboAfterMiss defaults to 5, the same as RegenComboAfterMiss, so
    there should be no behavior change unless the preference is manually
  • Fixed crash on Advanced Input Options on OS X caused by the Axis Fix
    preference not existing on OS X. The preference does nothing on OS X, but
    the game no longer crashes on that screen.
  • Added TimingWindowSecondsCheckpoint for the timing window that
    checkpoint holds allow you to release for.


  • Changed song loading to allow a song to have a blank MusicFile field
    if the song has any keysounds. A blank MusicFile entry can result from
    having '#' in the music file name, or be intended for bms files. If the
    music file name comes up blank, and there are no keysounds, the engine
    looks in the song folder to find the music file, which makes loading the
    song slower.

Themer visible changes:

Bug fixes and new functions:

  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].


  • Texture Font Generator included again. It was left out by accident.


  • [B] Changed PlayCommandNoRecurse so that setting a theme metric to a
    function that doesn't exist doesn't emit an error.


  • [B] ActorFrame:SetDrawByZPosition now returns self. Missed a spot when
    implementing function chaining.


  • [B] Fixed bug that sometimes caused diffuse to be applied to verts wrong.


  • [B] ActorUtil.ResolvePath and ResolveRelativePath now take a boolean flag
    to tell if the thing is optional.


  • [F] set_mult_attrs_with_diffuse


  • [B] Fixed bug that clipped hash strings with zeros.


  • Respliced large kanji sprite sheets from 32x106 and 32x61 to 63x54 and
    48x41 to bring them under 4096 pixels tall, which was causing a forced
    resize and slowing down loading time. If your theme spends extra time in
    the black screen phase before the splash screen, check your font image
    sizes. Aim for the smallest power of 2 size in each dimension, and try to
    keep both dimensions under 4096.


  • [B] Fixed song position updating logic so that the ScreenGameplay:PauseGame
    lua function actually pauses the game. Start, Select, and Back are all used
    for different ways of giving up, so the feature remains unused in the
    default theme.
  • [B] Fixed Player logic that spammed TNS_AvoidMine repeatedly.
  • [M] Random background video behavior is now controlled by these
    three metrics in the Background section:
    RandomBGStartBeat sets the beat of the music the first random bg occurs on.
    RandomBGChangeMeasures sets the number of measures between changes.
    RandomBGChangesWhenBPMChangesAtMeasureStart toggles the behavior in its name.
    RandomBGEndsAtLastBeat toggles the behavior in its name. Defaults to true.


  • [B] Fixed SetItemPosition so that it actually passes the item index and the
    number of items to the transform function.


  • [B] Changed assert that occurs when leaving ScreenGameplay with
    SM_GoToNextScreen to give more info. (this only matters to certain
    misbehaving lua scripts that don't let ScreenGameplay finish the normal
  • [B] Fixed bug that caused missed holds to be recorded as held in the
    value returned by PlayerStageStats:GetRadarActual().


  • [M] If the AutoDismissWarningSecs metric is less than .25 seconds, the
    warning will not be shown (the TweenOn command for it will not be played).
    Instead, the NeverShow command will be played. If the NeverShow command
    does not exist for the warning actor, the warning actor will be set to
    hibernate forever.


  • [F] set_use_effect_clock_for_texcoords


  • [F] GetMainTitle


  • Now compiled in for all platforms.

Compiling (part 2)

  • Number of jobs used when building ffmpeg can be customized by
  • Fixed cmake error when compiling with -DWITH_SSE2=off.
  • Link with /MT on windows instead of /MD.
  • Compiling stepmania on Windows with the locale set to Japanese should work now.
  • Fixed compiling on 32bit linux.
  • FFmpeg upgraded to 2.1.3 on Windows and Mac OS X.
  • Fixed cmake WITH_SYSTEM_FFMPEG option.
  • Symbolic links will be followed to find the actual executable dir.
  • Minimaid support built in by default instead of off by default.