StepMania Changelog

What's new in StepMania 5.0.12

Dec 12, 2016
  • Player visible changes:
  • Gameplay:
  • Fixed bug that allowed pausing by pressing Select then Back. Pausing requires pressing the same button twice.
  • Default theme ignores holding Select, or Start during gameplay. The pause menu must be used to back out of a song.
  • Select Music:
  • Added AllowHoldForOptions preference. When this is set to 0 (off), going to the player options screen requires pressing Start a second time, instead of holding it.
  • Other:
  • Fixed bug that deleted a warp on the same beat as a stop when saving.
  • Ready and Go announcer sounds no longer play simultaneously.
  • Fixed cmake settings so that player profiles can be loaded from USB drives once again.
  • Fixed crash in loading profiles from USB drives.
  • Themer visible changes:
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].
  • ScreenSyncOverlay:
  • Actors are loaded from BGAnimations/ScreenSyncOverlay overlay instead of being hardcoded.
  • Pausing gameplay:
  • Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.

New in StepMania 5.1.0 Alpha 3 (Sep 6, 2016)

  • Compiling:
  • Check the section on Compiling in the release notes for the previous 5.1.0
  • alpha release. Those instructions still apply.
  • Player visible changes:
  • NoteSkins
  • NoteSkins for 5.1 go in the NoteSkins folder now. NoteSkins made for 5.1.-2
  • will need trivial fixes before they work on 5.1.-3.
  • NoteSkins for 5.1.-3 and 5.0.x should be able to peacefully coexist.
  • Remember that NoteSkins for 5.1 go directly in the folder. They are not
  • separated by game type. If you put a NoteSkin for 5.1 inside
  • "NoteSkins/dance/", it won't show up.
  • Edit mode:
  • ScreenEditMenu
  • The screen for picking a for edit mode has been completely reworked.
  • Groups/songs displayed in a list.
  • Page up/down keys can page through the list.
  • Copying a chart from a different game type is possible.
  • History of recently edited charts to skip navigating the menu. (no cap, probably have to add a way to clear old entries and add a cap later)
  • NoteField options:
  • Choose noteskin from menu.
  • Tilting if you want to edit in Distant.
  • Zoom options for adjusting size.
  • Other notefield options.
  • Other stuff:
  • Player Options:
  • Added life and background options back in.
  • Added menu for hiding noteskins.
  • Debug Menu:
  • Removed Debug Lights preference so it does not persist after the game is restarted.
  • Removed Monkey Input from menu.
  • Moved Mute Actions to where Monkey Input was so the keys for everything else stay the same.
  • Key mapping:
  • Screenshot key can be remapped.
  • NoteField
  • Changed note render order to render notes closer to the receptors on top.
  • Themer visible changes:
  • Obsolete things removed
  • ThemePrefs
  • UserPrefs
  • GamePrefs
  • CustomSpeedMods
  • ArbitrarySpeedMods
  • Docs/Themerdocs/5.1_incompatibilities/ThemePrefs_removed.md
  • The lua config system explained in Docs/Themerdocs/lua_config_system.md
  • replaces ThemePrefs, UserPrefs, and GamePrefs. Having a single system for
  • handling custom preferences is easier for developers to maintain.
  • CustomSpeedMods was replaced by ArbitrarySpeedMods two years ago.
  • ArbitrarySpeedMods is an inferior version of the speed mod menu that is built
  • into the nesty menu system.
  • NoteSkins
  • Changed various "NewSkin" and "NewField" names to "NoteSkin" and "NoteField".
  • Added hold_gray_percent.
  • Added use_hold_heads_for_taps_on_row.
  • Added custom_x.
  • Old notefield and noteskin systems removed
  • Various metrics and functions removed while removing all traces of the old notefield and noteskin system. See Docs/Themerdocs/5.1_incompatibilities/oldfield_removal_notes.md for details.
  • Other stuff
  • Modifiers:
  • Added modifiers that use random numbers.
  • Rewrote mod system internals to give control over how random modifiers are seeded.
  • Updated NewField_mod_system.md
  • Item Scroller:
  • Added item_params arg to item_scroller:create_actors. item_params is passed
  • to each item when it is created.
  • Nesty Menus:
  • Doc/Themerdocs/nesty_menus.md
  • Defective mode:
  • Fixed bug in beat mod.
  • GetPlayerOptionsArray and GetPlayerOptionsString added to the list of lua functions that activate defective mode.
  • Profile:
  • LoadProfileCustom function is now passed the player number the profile is being loaded for.
  • OptionRows Deprecated:
  • Bad for setting numbers:
  • OptionRows is based around picking from a list of choices, not changing a
  • number. So when a number needs to be changed, it's a mile long list of
  • choices, or a list that is too short to give everyone the needed precision.
  • Look at the mess speed mod choices went through.
  • The nesty menu system has an actor specifically for showing the current value
  • of the number being changed. Each item on the menu changes the value by
  • some amount.
  • Cannot handle dynamic menus
  • The OptionRows menu system does not have the adaptability to handle dynamic
  • menus. The Noteskin Params menu is one example of a dynamic menu. It allows
  • the player to set options in the noteskin. Those options are created by the
  • noteskin, and can be different for every noteskin. So the menu must be
  • dynamically generated based on the noteskin the player has chosen. When there
  • are two players, they can choose different noteskins. Each player must have
  • their own noteskin params menu.
  • Dynamically generated menus is part of the core of the nesty menu system.
  • Per-player menus handled poorly
  • It is possible to set flags in an OptionRow to only allow one player to use
  • it, but this does not hide the row. The other player's cursor skips over the row.
  • This feels strange and confusing.
  • Each player has their own menu, on their own side of the screen in the nesty
  • menu system.
  • Negative version numbers:
  • Just a random idea I had one day. "Alpha" or "beta" releases get a negative
  • patch version number to indicate that some things are incompatible with the
  • previous release, and some things might not be compatible with the next
  • release. Eventually there will be 5.1.0, and 5.1.1 after that won't break
  • anything more.

New in StepMania 5.0.12 RC (Jul 4, 2016)

  • Player visible changes:
  • Gameplay:
  • Fixed bug that allowed pausing by pressing Select then Back. Pausing requires pressing the same button twice.
  • Default theme ignores holding Back, Select, or Start during gameplay. The pause menu must be used to back out of a song.
  • Select Music:
  • Added AllowHoldForOptions preference. When this is set to 0 (off), going to the player options screen requires pressing Start a second time, instead of holding it.
  • Other:
  • Fixed bug that deleted a warp on the same beat as a stop when saving.
  • Ready and Go announcer sounds no longer play simultaneously.
  • Fixed crash in loading profiles from usb drives.
  • Themer visible changes:
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].
  • ScreenGameplay:
  • [M] UsePauseMenuInsteadOfGiveUp
  • ScreenSyncOverlay:
  • Actors are loaded from BGAnimations/ScreenSyncOverlay overlay instead of being hardcoded.
  • Pausing gameplay:
  • Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.

New in StepMania 5.0.11 (Apr 11, 2016)

  • Player visible changes:
  • Edit Mode:
  • Beat bars are drawn properly when M-mods are used.
  • Added "Clear timing in region" to timing menu.
  • Fixed crash that occurs when "Paste timing data" is used after copying a region of timing data that only contains stops.
  • Gameplay:
  • Added a pause menu to the default theme. This menu can be brought up by pressing Select or Back twice, or by pressing MenuLeft and MenuRight at the same time. The pause menu allows exiting from the middle of the song or restarting the song or continuing.
  • In an Endless course, songs will only be repeated after all songs in the group have been played.
  • Language:
  • Bahasa Indonesian translation added to default theme.
  • Minimaid:
  • Minimaid driver added for Linux. This is practically identical to the
  • Windows minimaid driver that pkgingo wrote.
  • Preferences:
  • Added DisableUploadDir preference to skip saving a score entry to Save/Upload
  • every time a song is played. Generating the unique filename can take several
  • seconds when there are years of scores accumulated. This preference defaults
  • to false.
  • Bug Fixes:
  • Fixed No Fakes mod to remove fakes inside warps.
  • Colon key should be mappable.
  • BG Brightness is no longer forced to 100% on songs that only have a beginner chart.
  • Graphics/Sound options screen should not crash or hang on load anymore. The list of resolutions was being fetched in an inefficient and buggy way.
  • Linux event devices now start at JOY10 instead of JOY1. Without this change, if one dance pad is a joystick device, and the other is an event device, they will both be JOY1, and stepmania will think they are the same dance pad. If you use Linux, assume that you have to remap your dance pad.
  • Stepmania will force disconnection from the SMO server when entering the jukebox or sync calibration screens to avoid crash.
  • 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].
  • Actor:
  • [F] get_tween_uses_effect_delta and set_tween_uses_effect_delta added.
  • Global:
  • [F] get_sound_driver_list added.
  • RageFileManager:
  • [B] OS X special files should be ignored in general.
  • [B] Lua functions for RageFile should now emit an error when the file was not opened correctly instead of crashing.
  • Player:
  • [F] ChangeLife and SetLife added.
  • Popn:
  • [B] Judgment levels in popn game mode now use W1 to W5.
  • ScreenManager:
  • [F] get_input_redirected and set_input_redirected added.
  • SelectMusic:
  • Using lua music files for the section music and similar things works now.
  • [F] Added CanOpenOptionsList. OpenOptionsList will do nothing if CanOpenOptionsList returns false.

New in StepMania 5.1.0 Alpha 2 (Apr 1, 2016)

  • Compiling:
  • Check the section on Compiling in the release notes for the previous 5.1.0 alpha release. Those instructions still apply.
  • Linux Fullscreen:
  • The backend for fullscreen mode on linux has been rewritten to allow control
  • over which display is used and whether stepmania uses exclusive mode.
  • NewField changes:
  • All themes use the NewField in gameplay now. The old NoteField actor does
  • not exist on gameplay anymore.
  • Compatibility mode:
  • NewField has a special mode to make it use the old PlayerOptions mods instead
  • of the mods that are built into it. Anything that touches the old
  • PlayerOptions mods will trigger the auto detection to put the field into
  • defective mode for that player.
  • Edit Mode:
  • If the beat bars are misaligned and the receptors are shaking when htting play in edit mode, something is triggering the defective mode detection in the NewField. Look for things that touch PlayerOptions and remove them if you're a themer.
  • NewSkin changes:
  • Noteskin parameters
  • This is a system for allowing a noteskin to provide choices to the player
  • that change the behavior of the noteskin. The noteskin creates some
  • variables and decides what to do with them, the theme provides a menu, and
  • the engine saves the parameters in the player's profile.
  • Other changes:
  • Added support for 3D noteskins.
  • Added anim_time and anim_uses_beats for controlling how fast taps are animated.
  • Added quantum_time for controlling how many beats the quantizations are spread over. This should make is possible to make a noteskin where half notes look different from 4th notes.
  • Added edgy, EasyV2 and ExactV2 noteskins, which support dance, pump, and solo.
  • Removed rotations table from the column data. Set the rotation of the taps with InitCommand instead.
  • layers_above_notes and layers_below_notes fields merged into a single layers field. Each layer must set its draw order so the NewField knows when to render it. Each layer should also set its fade type and transform type so that the NewField knows which mods to apply to it.
  • Lifts:
  • Lifts are rendered with a hold body preceding them to give the player some
  • warning time. The length of the hold body defaults to .25 seconds or .25
  • beats, whichever puts it further away from the note. The hold body is purely
  • visual, it is not judged with a hold judgment.
  • Other NewField changes:
  • reverse_percent changed to reverse_scale to simplify reverse code.
  • Themers should reread Docs/Themerdocs/5.1_incompatibilities/NewField.md.
  • Player Options:
  • The default theme has a new Player Options screen designed to allow setting
  • all the NewField related options.
  • Other bug fixes:
  • Fixed bug that broke charts that had scroll segments but not other timing segments.
  • Themer visible changes:
  • CustomSpeedMods:
  • The CustomSpeedMods system that reads SpeedMods.txt from the profile is
  • deprecated and its load function is no longer called. Using CustomSpeedMods
  • or ArbitrarySpeedMods will trigger the defective mode auto detection.
  • GameState:
  • The ApplyGameCommand function has been removed. Everything that it did has
  • been possible through other functions for a year, so it's obsolete.
  • Item Scroller:
  • A lua based alternative to ActorScroller. Docs/Themerdocs/item_scroller.md.
  • Judgment/Combo:
  • The JudgmentUnderField and ComboUnderField metrics are no longer used. The
  • judgment and combo must set their draw order to control whether they are
  • under notes or not. The draw order for the judgment and combo works the same
  • as for a layer in the NewField. This allows players to choose different
  • settings for judge and combo placement.
  • Lua config system:
  • A lua based system for per-profile settings. Designed to save arbitrary lua
  • tables. Read Docs/Themerdocs/lua_config_system.md.
  • Notefield board:
  • Graphics/Notefield board is not loaded by NewField. Create
  • Graphics/Notefield layers instead, which returns a table of actors that are
  • rendered by draw order.
  • Graphics/NoteColumn layers is loaded by each column in the NewField and also
  • drawn in order of draw order.
  • PlayerState:
  • [F] get_read_bpm added.

New in StepMania 5.1.0 Alpha (Nov 2, 2015)

  • Compiling:
  • The 5_1_0 branch uses submodules for some external dependencies like ffmpeg,
  • so they are not bundled. As a side effect, if you click the "Download ZIP"
  • button on github to get a source zip, you will not be able to build that zip.
  • If you are not compiling from source, you can ignore this section. The linux tar.gz attached to this release was built for amd64 debian.
  • The --recursive flag is not used in the clone command given above
  • because some submodules like cppformat have their own submodules that are not
  • needed for building or running stepmania.
  • After the submodules have been updated, compiling can be done in the same way
  • as on the master branch of stepmania.
  • New systems:
  • The new systems in this alpha release are not in their final form. They will
  • be extended and modified based on feedback from noteskin and theme authors
  • who create new content. Keeping the systems simple and allowing new people
  • to learn them gradually is one of the goals.
  • RollingNumbers:
  • This is the simplest one, so it is explained first. The changes to
  • RollingNumbers were more of an attempt to improve it than a serious rewrite
  • like the other new systems. Changes to RollingNumbers are fully documented
  • in Docs/Themerdocs/5.1_incompatibilities/RollingNumbers.md.
  • Feature Overview:
  • More lua control: Various things that could only be set through metrics can now be set by calling lua functions.
  • Attributes: The attribute system from BitmapText is used, giving more freedom than the multiply color metric.
  • Configurable leading glyph: Any glyph can be used as the leading character for the number. This is for people that don't want zeroes in front.
  • NewSkins:
  • A new noteskin system has been created. The goals of the new system are to
  • provide a solid base for future development, clear out cruft, remove metrics
  • from noteskins, and provide more advanced features.
  • The new noteskin system is fully documented in NewSkins/default, which is an
  • example noteskin explaining all the features and demonstrating some of them.
  • Feature Overview:
  • Pure lua: The metrics system is outdated and tends to obstruct advanced authors trying to handle varied cases. The NewSkin system does not use metrics at all. Everything is done in lua.
  • Not tied to game types: A NewSkin can be used in any game type, as long as it supports the buttons used by the current chart.
  • Adjustable column width: The NewSkin controls how wide each column is and the padding on the sides of each column. The hardcoded values from the Style are ignored, and will be removed in a future version.
  • Quantizable holds: Hold bodies can be quantized the same way taps are, if the noteskin author uses the feature.
  • Superior quantization: Quantizations are not forced to fit the traditional categories of 4th, 8th, 12th, 16th, 24th, 32nd, 48th, 64th. Instead, notes are quantized using a system based on how many times a quantization occurs each beat. The simfile format and internal note data structures are still limited, but the noteskin system is not.
  • Receptor warnings: The receptors are told when the next arrow is coming, even if it's off the bottom of the screen, so the receptor can warn of upcoming notes by changing color or something.
  • Superior multiplayer support: The NewSkin system does not force a hard limit of 2 players, and noteskin authors are encouraged to support as many players as feasible. Edit mode and gameplay will need upgrades before more than 2 players is really possible, but the NewSkin system is prepared.
  • NewField:
  • NewField is a completely new notefield system. It gives the theme more
  • control over every aspect, and is self contained.
  • Initial documentation is in
  • Docs/Themerdocs/5.1_incompatibilities/NewField.md.
  • Feature Overview:
  • Columns are actors: Each column is its own actor, with extra features.
  • More info for Notefield board: The Notefield board file in Graphics should be a lua file now. It is passed more info to make using it for a screen filter easier. Using the notefield board for a screen filter makes positioning logic much simpler because the themer doesn't have to worry about the current style or how many players there are.
  • Better multiplayer support: The NewField does not pull anything from a global player state. Instead, all behavior is set by whatever creates the NewField, or by the theme. It will not be an obstacle to having more than 2 players. Many other parts of the engine still stand in the way of multiplayer, but the NewField is prepared.
  • ModValue:
  • The new notefield system also has a completely new modifier system. This is
  • extensible, predictable, and documented. Figuring out exactly what a
  • modifier does no longer requires digging through ArrowEffects.cpp. Detailed
  • control over exactly what the arrows do is possible.
  • Full docs in Docs/Themerdocs/5.1_incompatibilities/NewField_mod_system.md.
  • Feature Overview:
  • Field mods separate from Column mods: The field and the columns have different mods, for doing different things.
  • Per-column mods: Each column can have its own mods.
  • Mods for more things: FOV, vanish point, field transform, column transform, note transform, note/explosion/receptor glow/alpha, time offset, quantization, reverse offset, reverse, center.
  • Separate glow and alpha: Glow and alpha are controlled by different mods because the white flash that hidden/sudden force in the old system bothers some people.
  • No hidden quirk interactions: In the old mod system, C600 + Boost plays differently from M600 + Boost. That's just weird and wrong, so the new system does not do that.
  • Splines are mods: The spline mod system added last Christmas was not well integrated with the old mod system because the old mod system didn't have a place for it. So there were weird interactions between the two that made splines awkward to use. Splines are part of the design of the new system, so they are much easier to use now.
  • Mods are equations: At its simplest, a mod is an equation that takes one aspect of a note as input (say, y offset) and sets an attribute based on that aspect (say, x position). Possible equations range from simple numbers to wave functions and splines.
  • Detailed control: Building on the idea of using equations for mods, there are many minor variables that can be set when creating a mod to customize exactly how it affects the notes.
  • Built in timed mods: The columns and field have managers built in that can be told when a mod should start and end. The manager efficiently handles turning mods on and off at the right times.
  • Rate adjusted mods: Mods are tied to the current time of the field, so when the music rate changes, mods play out at exactly the same beat. This relieves the burden of writing lua code to find the current music rate and try to adjust tween times, or forcing people to only play on 1x rate.
  • Options screen:
  • Because the modifier system does not use PlayerOptions, large parts of the
  • options screen do nothing. Mods that change the steps in a chart like
  • Shuffle work the same, but mods that change the appearance of notes like
  • Dizzy do nothing. This is because the system was not designed with OptionRow
  • in mind (I hate OptionRow, it can't do anything I want to do, I don't use
  • it).
  • Instead, the NewField relies on the theme to set mods through lua
  • function calls when ScreenGameplay starts. To assist themers, _fallback
  • provides functions for setting speed, tilt (distant), mini, and reverse by
  • reading them from PlayerOptions. There are also functions for setting hidden
  • and sudden mods (with control over exactly where the line is, and only
  • affecting note alpha. So no white flash), but they do not read from
  • PlayerOptions and must be called directly.
  • A future version will probably use lua option rows and a global lua variable
  • to store the mod choices from the options screen before applying them on
  • gameplay.

New in StepMania 5.0.10 (Nov 2, 2015)

  • 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.
  • Compiling:
  • Cmake is now required for compiling Stepmania. Read Build/README.md 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:
  • BMS:
  • 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.
  • Gameplay:
  • 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 sync.
  • Fixed bug that caused missed holds to be recorded as held in some themes.
  • Fixed bug that skipped notes on beat 0 in score.
  • Noteskins:
  • 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 screen.
  • Fixed bottomcap when NoteDisplay is zoomed out.
  • Preferences:
  • 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.
  • MaxRegenComboAfterMiss defaults to 5, the same as RegenComboAfterMiss, so there should be no behavior change unless the preference is manually changed.
  • 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.
  • Songs:
  • 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].
  • General:
  • Texture Font Generator included again. It was left out by accident.
  • Actor:
  • [B] Changed PlayCommandNoRecurse so that setting a theme metric to a function that doesn't exist doesn't emit an error.
  • ActorFrame:
  • [B] ActorFrame:SetDrawByZPosition now returns self. Missed a spot when implementing function chaining.
  • ActorMultiVertex:
  • [B] Fixed bug that sometimes caused diffuse to be applied to verts wrong.
  • ActorUtil:
  • [B] ActorUtil.ResolvePath and ResolveRelativePath now take a boolean flag to tell if the thing is optional.
  • BitmapText:
  • [F] set_mult_attrs_with_diffuse
  • CryptMan:
  • [B] Fixed bug that clipped hash strings with zeros.
  • Fonts:
  • 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.
  • Gameplay:
  • [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.
  • MusicWheel:
  • [B] Fixed SetItemPosition so that it actually passes the item index and the number of items to the transform function.
  • ScreenEvaluation:
  • [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 way.)
  • [B] Fixed bug that caused missed holds to be recorded as held in the value returned by PlayerStageStats:GetRadarActual().
  • ScreenMapControllers:
  • [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.
  • Sprite:
  • [F] set_use_effect_clock_for_texcoords
  • Song:
  • [F] GetMainTitle

New in StepMania 5.0.9 (Jun 22, 2015)

  • PLAYER VISIBLE CHANGES
  • BMS
  • .lua files defined in the #BMP tags now work as BG animations.
  • The #difficulty tag is now supported. The difficulty numbers 1-6 map to StepMania's difficulties from Novice to Edit.
  • Bug fixes
  • Autokeysounds are no longer twice as loud when playing keysounded charts with two players.
  • 1 pixel seam in hold cap rendering fixed.
  • Noteskin animation fixed.
  • ScreenOverscanConfig
  • There is a new screen for interactively adjusting the variables that already existed in the preferences for dealing with overscan problems. This allows
  • editing the CenterImage* preferences without restarting StepMania to set them so that the whole image appears on screen. This currently handles the aspect ratio wrong, so it's not a perfect overscan solution.
  • THEME VISIBLE CHANGES
  • Bug fixes and new functions
  • Attributes added are marked with [A].
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Actor
  • [B] bounce and bob effects no longer round pixel coords.
  • When an actor had a slow tween moving it in a direction and a slow bounce effect, the bounce would round the resulting position and cause jitter. That jitter is gone now.
  • [B] BlendMode_Subtract no longer crashes on the d3d renderer. It does not do proper subtraction blending, this is just a bandaid to prevent crashing.
  • Global
  • [F] get_music_file_length
  • [F] multiapproach function now takes an optional 4th argument to multiply the speeds by.
  • [F] update_centering
  • OptionsList
  • The OptionsListQuickChange, OptionsListLeft, and OptionsListRight messages now have a Selection parameter that has the id of the selection the player moved to.
  • RageFile
  • [F] Flush
  • ScreenInitialScreenIsInvalid
  • If you see this screen come up, you need to fix the InitialScreen metric in your theme.

New in StepMania 5.0.8 (May 11, 2015)

  • 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.
  • Compiling:
  • Cmake is now the only method supported for compiling Stepmania. Read Build/README.md 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 beats.
  • Revert From Disk actually works now.
  • Fixed bug that made alter menu choices prompt for clearing.
  • Gameplay:
  • 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.
  • 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".
  • NoteColumnRenderer:
  • Added handling for diffuse to make rainbow and related effects work.
  • RadarValues:
  • 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.
  • ScreenGameplay:
  • 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.
  • Bug fixes and new functions:
  • Attributes added are marked with [A].
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • ActorSound:
  • [A] IsAction attribute added. If this is true, the sound will not be played if the MuteActions preference is true.
  • Global:
  • [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.

New in StepMania 5.0.7 (Apr 1, 2015)

  • 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.
  • Player visible changes:
  • Loading Time:
  • Simfile loading and caching has been changed internally to speed up loading
  • time. If you're using an SSD, or only have a few hundred songs, you probably won't see any difference. People with large song collections who don't have SSDs should be able to measure the difference.
  • Most of the changes are aimed at making StepMania read song data from the and not look in the song folder until gameplay if the cache file exists. To take full advantage of this, you should have the Fast Load preferences set to true.
  • There are new things to help simfile authors deal with cases where the cache file is out of date.
  • Because this release bumps the cache version, the first time you start up it will rebuild the cache, which takes some time.
  • Reload current song:
  • Pressing Ctrl+Shift+R on Select Music will reload the currently selected song from its song folder, updating any cached information.
  • Never Cache List preference:
  • The NeverCacheList preference has been added to Preferences.ini. You can use it to set song group folders that should never be cached. The preference is set to a comma separated list of group names. Because it disables the cache for the songs in the groups listed, it should only be used sparingly, the cache is important for loading quickly.
  • Example: NeverCacheList=work_in_progress,abandoned_in_progress
  • This will cause the songs in the work_in_progress and abandoned_in_progress groups to never be cached.
  • Delete songs from Select Music:
  • Pressing Ctrl+Backspace on the Select Music screen will prompt you to permanently delete the currently selected song.
  • The Allow Song Deletion preference must be turned on in the Advanced Options section of the service menu for this to be enabled.
  • Edit Mode:
  • Autosave:
  • The song is automatically saved every 5 minutes if there are any changes.
  • EditClearPromptThreshold:
  • When clearing an area with the Alter menu, if the area contains at least EditClearPromptThreshold notes, you will be prompted. It's a preference that is settable in the Advanced Options section or in the Options in Edit Mode. Setting it to -1 means it will always prompt, setting it to 1000000 will make it never prompt.
  • Per-chart music:
  • Each chart in a simfile can have its own MUSIC tag, pointing to a music file to use instead of the normal song music. This does not change the logic for when the song ends in gameplay. The time of the last step of any chart is still used as the time to end the song in gameplay, so if you use per-chart music, make sure your music is the same length.
  • Preview tag:
  • Simfiles can have a PREVIEW tag which tells StepMania to use a specific file for the preview instead of the song music file. When you set the preview tag, the length of the named file will be used to set the sample length. After that, the sample length can be adjusted as normal. The sample start is forced to 0 when the preview tag is used.
  • Preferences:
  • HarshHotLifePenalty:
  • Normally, if your life bar is full (1.0), and you get a judgment that would decrease it, 0.1 is taken off your life bar even if the penalty would be less than 0.1. If HarshHotLifePenalty is false, then the penalty is used instead of 0.1.
  • General:
  • DX9 support:
  • DX9 support improved, giving a large speed boost and fixing the problem that made people get stuck with 16bit color. [xwidghet]
  • Mutable actions:
  • Pause/Break key now toggles "action" sounds off or on. There is also a button in the F3 debug menu for people that don't have a Pause/Break key (press A, there are so many that it is off the bottom).
  • CMake:
  • This only affects people building from source. StepMania has moved to using CMake as the primary system for generating project files. This saves us the trouble of keeping several different project files updated. Read Build/README.md for instructions on using CMake to build.
  • Language changelog:
  • To make life slightly easier for translators, a language changelog has been added in Docs/Changelog_language.txt.
  • Themer visible changes:
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • ActorFrame:
  • [B] Fixed RemoveChild and RemoveAllChildren Lua functions to delete the children instead of leaking memory.
  • ActorFrameTexture:
  • [E] Example added to Themerdocs/Examples/Example_Actors/.
  • [B] Various bug fixes.
  • BitmapText:
  • [B] Place characters of right-to-left alphabets correctly. (untested) [roothorick]
  • Font:
  • [B] Asserts and other things that caused StepMania to crash on font mistakes now emit non-fatal errors.
  • Global:
  • [B] foreach_ordered lua function now works on tables that have both number and string keys. Number keys are iterated over first.
  • PaneDisplay:
  • [B] Changed to print an error when metrics or player number are omitted instead of crashing.
  • RageTexture:
  • [F] GetPath
  • Screen:
  • [B] Fixed crash when AddInputCallback is passed nil .
  • Song:
  • [F] GetPreviewMusicPath
  • [F] ReloadFromSongDir

New in StepMania 5.0.7 RC (Mar 10, 2015)

  • 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.
  • Player visible changes:
  • Edit Mode:
  • Autosave:
  • The song is automatically saved every 5 minutes if there are any changes.
  • EditClearPromptThreshold:
  • When clearing an area with the Alter menu, if the area contains at least
  • EditClearPromptThreshold notes, you will be prompted. It's a preference
  • that is settable in the Advanced Options section or in the Options in Edit
  • Mode. Setting it to -1 means it will always prompt, setting it to 1000000
  • will make it never prompt.
  • Per-chart music:
  • Each chart in a simfile can have its own MUSIC tag, pointing to a music file
  • to use instead of the normal song music. This does not change the logic for
  • when the song ends in gameplay. The time of the last step of any chart is
  • still used as the time to end the song in gameplay, so if you use per-chart
  • music, make sure your music is the same length.
  • Preview tag:
  • Simfiles can have a PREVIEW tag which tells Stepmania to use a specific file
  • for the preview instead of the song music file. The preview length should
  • be read from the preview music file, so cut it right.
  • Preferences:
  • ### HarshHotLifePenalty: Normally, if your life bar is full (1.0), and you get a judgement that would decrease it, 0.1 is taken off your life bar even if the penalty would be less than 0.1. If HarshHotLifePenalty is false, then the penalty is used instead of 0.1.
  • General:
  • DX9 support:
  • DX9 support improved, giving a large speed boost and fixing the problem that
  • made people get stuck with 16bit color. [xwidghet]
  • Mutable actions:
  • Pause/Break key now toggles "action" sounds off or on. There is also a
  • button in the F3 debug menu for people that don't have a Pause/Break key
  • (press A, there are so many that it is off the bottom).
  • Themer visible changes:
  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • ActorFrame:
  • [B] Fixed RemoveChild and RemoveAllChildren Lua functions to delete the children instead of leaking memory.
  • BitmapText:
  • [B] Place characters of right-to-left alphabets correctly. (untested) [roothorick]
  • Font:
  • [B] Asserts and other things that caused StepMania to crash on font mistakes now emit non-fatal errors.
  • Global:
  • [B] foreach_ordered lua function now works on tables that have both number and string keys. Number keys are iterated over first.
  • PaneDisplay:
  • [B] Changed to print an error when metrics or player number are omitted instead of crashing.
  • Screen:
  • [B] Fixed crash when AddInputCallback is passed nil .
  • Song:
  • [F] GetPreviewMusicPath

New in StepMania 5.0 Beta 4a (Dec 18, 2014)

  • Fixes:
  • [BackgroundEffects] Fix error reporting messages coming up unnecessarily.
  • New Features:
  • [NoteDisplay] Add two noteskin metrics, {PartName}NoteColorType and {PartName}NoteColorCount. View #328 for more information.
  • [NoteDisplay] Var Player and Var Controller work for non-receptor arrows.

New in StepMania 5.0 Beta 4 (Oct 15, 2014)

  • Player visible changes:
  • Arbitrary Speed Mods
  • Customize Profile
  • Error Reporting
  • CMods adjust for song rate.
  • Lowercase and longer ranking names. (if theme supports it)
  • New Swap Up/Down and Arbitrary Remap feature in Edit Mode
  • Extra Stage: Default theme's speed mod changed to 2x.
  • New Preferences:
  • BackgroundFitMode
  • ComboContinuesBetweenSongs
  • DebounceCoinInputTime
  • DefaultFailType
  • FastNoteRendering
  • ThreeKeyNavigation
  • Themer visible changes:
  • New stuff added to Docs/Themerdocs.
  • Metrics are marked with [M].
  • Functions are marked with [F].
  • Attributes (things you set inside the lua file when creating the actor with Def.whatever) are marked with [A].
  • Bug fixes are marked with [B].
  • If a function is explained sufficiently by its entry in Docs/Luadoc/Lua.xml, it won't have a detailed entry.
  • Bug fixes:
  • Endless mode loop crash/repick songs: Repeating courses now repick randomized songs when they repeat and no longer crash on evaluation.
  • Harmful pad codes disabled: No more accidentally turning on drunk.