We have released our next alpha build of Project OutFox, version 0.4.15! This build has a variety of fixes across the engine and many of our game types, with one mode in particular -- pump -- having a lion's share of fixes and improvements, and one game type featuring a brand new style.

This build was first released earlier this week as; on 19 June 2022 a hotfix release known as was released to fix a few additional bugs.




The pump mode has a plethora of updates and fixes in this build; we have been working a lot in the background for this mode, but it required a lot of other things to be implemented beforehand, so it has taken a bit longer than planned to get this stuff off the ground.

  • This release has fixed a lot of the music length issues, including charts ending early, charts not ending at all, charts having missing notes due to the song finishing at the incorrect time, and charts ending after 2 seconds (single) / 7 seconds (double). The reason for a lot of all these quirks was due to the charting methods used in StepF2 and StepP1 being based off an older version of StepMania, which then had some custom code added by xMAx for those versions targeting pump only.
    • We would like to thank xMAx for their insight and assistance with implementing some of those features into Project OutFox, but due to the fact we are a multi-modal simulator we had to heavily rewrite and redesign a lot of the functions and systems behind the original ideas they had.
  • We have written a custom parser for the stepf2 charts which internally is called NotesLoaderPIU. This focuses on only parsing charts using the old editor and targets pump mode, including the custom note types, and the effects and systems the mode needs. The parser uses the SSC header #VERSION: 0.81 to initialise this pathway for those charts.
    • This can lead to a few issues if you have any dance charts using version 0.81; if you get any quirks, you can just change this version number to 0.83 and it will use the normal SSC parser. You can also create a blank file with the title ForcePIU in the song group folder, which will make the engine use the PIU loader automatically. This is case sensitive, so use it as written here for it to work.
  • This alpha also begins to add support for notes within braces { 0 | h | 1 | v }. At the moment only h notes are implemented, with s and v planned for the next main alpha.
  • pumpholds have also had a major rewrite this release as well, with the stepping and judgement logic being more appropriate to the game system, with ticks and head logic being fixed as well. There are still likely to be a few quirks with it, as it is new code, and do let us know if there are things you notice that are incorrect.
  • Warps and how they are hit were also reworked, along with some notes and rows overflowing which caused a lot of the issues on how the game calculated some of the file/song lengths in the music wheel and evaluation screens. The values sometimes recorded in the #LASTSECONDHINT and #MUSICLENGTH in the cache file may not actually marry up. The game has several options internally for ensuring that songs do not go crazy on time. Again, this logic is new, so there may be edge cases that need to be ironed out. If you find a chart that is not behaving, let the team know so we can see what is happening.
  • There was also a lot of older code removed from the ScreenGameplay branches of code that we inherited from older builds (3.x era) that we have removed as it was not really doing anything, and in some cases actually caused the new pump code to not function correctly. A few tweaks were also done for older .sm and .ksf charts and we fixed a lot of the math overflows due to the way the charts were implemented into the older SM build.

For a better gameplay experience, we also recommend downloading the Infinitesimal theme, which provides a user experience faithful to the arcade games using original assets. Infinitesimal will also be the pump theme for Alpha V.

be-mu and po-mu

We had reports of the game being very unhappy with a lot of the earlier community charts from the BMS of Fighters series, and charts mainly created before 2009, so we have fixed a few of these not being parsed correctly.

We also have restored the 4K “DDR in BMS" chart support that Squirrel accidentally broke when adjusting the channel support. This has now been fixed and those simfile are recognised as dance charts once again.

There were also several crashes with the versus modes of po-mu and be-mu as well and these have been fixed as well, so 2 player works as intended.


The ds3ddx mode now features styles with five foot panels.

The upstream ds3ddx code from StepMania simulates the earlier iterations of 3DDX arcade games, which had four diagonal foot panels and four hand sensors in the cardinal directions. However, a newer Chinese dance game based on its gameplay, Dance Master Super Station (also known as E5 Online) added a fifth, center foot panel, making its gameplay closer-resemble Pump it Up. With this addition, we now simulate both generations of this "franchise".

Similarly to kbx mode, the smart autogen system can import pump charts for play in this style, populating the foot panel columns.

rtMIDI and portMIDI driver updates

We have had a few requests to reimagine the MIDI drivers for those with DJ controllers or systems which use channels but send the same notes. The MIDI standard states a controller should be able to do this with the client application supporting the note/channel sent data, so we have changed the way this is done to ensure we are compliant. Crossfaders and rotary controls, as well as some pitch bend triggers do have some weird quirks at the moment, but as we don’t have any modes that support these at the moment do not try to map them as a control.

We added up/down jog wheel support for those who play be-mu on MIDI, so this works as designed now for everyone using midi for their jogs.


This is just a recap of the major, user-facing features and technical changes. You can read the full changelog on the Alpha 4.15.1 page on outfox.wiki.

As always, be sure to report any bugs you encounter on either our issue tracker or Discord. Be sure to provide us with as much information as you can whenever you report an issue. We won't be able to fix bugs that aren't reported to us.