Project OutFox Wiki
Project OutFox home View the OutFox Wiki source on GitHub Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto mode Back to homepage

BMS/BME/PMS Support

Project OutFox contains parsers for the BMS and PMS chart formats, which are the standard formats used in conjunction with mostly the be-mu and po-mu game types. The following page contains details on the BMS/PMS channels that Project OutFox currently supports. This is a living document, and will be updated as progress is made to expand the work to support as much of these as possible.


Introduction


The BMS file standard was devised by Urao Yane in 1998. It was originally created to be a format to simulate the game Beatmania by Konami. There have been several dozen iterations over the years, and we will talk about some of them here in one easy to contain and read page. Do not be afraid of this format, it is incredibly versatile and have been used to simulate a variety of games.

Project OutFox uses mostly BM98 (1998 to 2003) era definitions for this file standard, though it is improving all the time. The format is used to simulate most of the ‘Down Scroll Rhythm Game Systems’ and is known by several other derivatives which we are also slowly building support for.

BMS charts are mostly composed by artists from Asia, so reading them in non-asian locales can be difficult. OutFox has overcome this limitation in 2022, so if you see any charts in the music wheel with ?????????? and you are updating from a previous build, reset your cache. If you do find a glyph the game does not understand, do let Squirrel know so it can be added.

The other two file types on this page, PMS and BME were born from this format and are used for other types of games. PMS was originally designed to simulate Keyboardmania and had a very different channel layout than BMS, but it’s use moved towards po-mu / feeling po-mu (po-mu is short for Pop’n Music). This had a unique layout for 9 key/button charts.

BME is an Extension of BMS and offers newer features that were not offered in raw simulators of BM98. This was also used in the actual arcade and console games for a few years in the early 2000s. Project OutFox recently fixed a lot of support for this parser, along with adding several of the missing modes often charted by simfile authors. This extension allowed for channel numbers beyond 00-99 (99 values), then extended to base16 for 00-FF (255 values), which was then finally extended to 00-ZZ (1295 values), being based on base36.

The other system we support is BML files, which PMS incorporated by default in 2002. BML adds Long Note (known as holds in StepMania), which again extends the BMS specification. We now fully support both BME and BML fully, including mines and extended hidden note keysounds, as well as player 2 wide channel support.

Again, if you feel any particular command or object should be included, do let us know. There are quite a few bits of the specification that just simply have not been considered or added at this time, I’m documenting what we do have, and you are more than welcome to give suggestions for future additions. - Squirrel


Basic Format


The BMS file format describes how notes are arranged and how the game is meant to behave if/when a player takes a specific action. It is usually a simple plain text file with the command lines starting with the # character.

The file consists of a HEADER FIELD section and a MAIN DATA FIELD section. We will be going through in detail on the most commonly used commands and channels so you have the information here. A lot of the available commands ever offered to BMS/PMS over the years have faded into deprecation/not being used, but the ones we have seen in actual files include what we will be supporting.

If you find a file that is not showing up in OutFox you may need to switch the encoding options of the chart, or just wait until the new string system is added in the future.

Commands are in the header formatted as the following:

#[Command] [Value]

For these commands, a space between the command and value is required or you will have offset issues in most simulators. A Simple Example of some common commands used in the header field are:

*---------------------- HEADER FIELD
#PLAYER 3
#GENRE Dance
#TITLE My Dance Classics
#ARTIST DJ Superstar
#BPM 128
#PLAYLEVEL 5
#TOTAL 100
#RANK 2

#bmp00 miss.bmp
#bmp01 01.bmp
#wav01 01.wav

*---------------------- MAIN DATA FIELD
#00111:01010101
#00211:0101010001010100

Common HEADER FIELD commands


#PLAYER n [1 - 4]

Status: ✅ Supported

Usage Example:

#PLAYER 3 

This command defines the play style that the chart is set for. In the earlier versions of BMS they also specified the number of players.

  • 1 = 1 Player or Single Play, with 1 life gauge.
  • 2 = 1 + 2 Player or Couples Play, with 2 life gauges. Mostly deprecated and not used. OutFox mostly supports these and can parse them under the old iidx-* styles from SM3.x
  • 3 = 1 Player on 2 sides, or Double play. Modern sims use this value the most, or just ignore the PLAYER setting completely. Often a lot of PMS files have value of 3, though I have not been able to find out why. OutFox supports the odd use of this command but again most simulators post 2015 ignore this value.
  • 4 = 1 vs 2 Player, or Battle Play, with two life gauges, which was removed in iidx19, has fallen out of favour in use. I have actually only found PMS battle mode files with 3 key vs 3 key chart styles from portable 2. OutFox currently can parse these files, but has no battle mode support.

Project OutFox also supports ‘duet’ or normal 2 player mode without needing to be set in the file itself, by joining a second player on the select music screen. As of Alpha 4.9.8 this was extended to PMS offering new modes with a 2 player option of po-mu for the first time. All po-mu styles (3k, 4k, 5k, 7k, 9k) have 2 player support now, with battle mode planned in the future.


#GENRE genre [string]

Status: ✅ Supported

Usage Example:

#GENRE Blues 

This command sets the genre or type of music that the chart is going to play. It could be used by the simulator for sorting or grouping charts, or to allow for just more information to be displayed on the song select screen. The genre is usually written in SHIFT-JIS on older charts, but UTF8/UTF16 are becoming a lot more common, so do check.


#TITLE title [string]

Status: ✅ Supported

Usage Example:

#TITLE Take (Bamboo) 

The title command sets the SongTitle and this will be displayed on the song wheel to be selected, as well on the screen game-play and evaluation screen. It will also be recorded in high scores and on your profile etc. Older charts used SHIFT-JIS.


#ARTIST artist [string]

Status: ✅ Supported

Usage Example:

#ARTIST 立秋 feat.ちょこ

The artist command sets the SongArtist and this is usually displayed on the song wheel when selected and on the evaluation screen. The artist information is usually recorded in high scores and on your profile. Older charts used SHIFT-JIS.


#BPM n [0.0-1400.00]/[0-255]

Status: ✅ Supported

Usage Example:

#BPM 140.35

This setting allows the chart to specify the beginning (or starting) BPM of a song. This value will also be shown in the music wheel, and will be setting the speed that will be used as part of the modifiers / scrolling of the notes. This value used to require a whole number. Project OutFox allows for floats here - you are limited to 6 decimal places - so 143.000290 as an example.

Older simulators do not support decimal point BPM values, and you cannot enter a value above 255 as it can crash the simulator. If you are wishing to make your chart portable to other programs, bear this in mind; not every simulator supports this!

This value also can (and will!) be overwritten by channel commands/settings later on in the chart.


#PLAYLEVEL n [0-6]/[0-9]/[0/15]/[1-49]

Status: ✅ Supported

Usage Example:

#PLAYLEVEL 5

The playlevel sets the number of ‘stars’ (from the old games) or the difficulty specified. In BMS files this difficulty ranges normally from 0 to 6 - 6 being the hardest. The older scale from 0 to 9 was from the BM98 spec, which was never really used much or supported.

In some BME and most PMS files, the playlevel can be from 1 to 49. This reflects the style from other games with the wider difficulty ranges, and po-mu has had a wider difficulty rating for some years.

In older versions of StepMania, this difficulty used to be squished into a 5 tier difficulty system and sometimes didn’t really work that well. It needed to use a hint from the file name to ensure it didn’t make everything an EDIT. This also meant that a lot of charts disappeared/were not parsed correctly and was generally not that suitable for use. OutFox has remedied this by fixing how the parser sees difficulties, and also widens the difficulty arc to out of 10 fields.


#RANK n [0-4]

Status: ❌ Unsupported

Usage Example:

#RANK 2

The rank entry used in the old BMS specification used to allow the chart artist to select a difficulty on how the ’timing window’ would be set when playing the chart. It was designed for those simulators that didn’t have ways of difficulty or setting different timing windows.

There were 5 different ranks, the last being added by nanasi which was a more relaxed timing window compared to the other simulators. Almost all of the simulators that are active today set 2 as the default. The old ranking timing windows are listed below for historical purposes. They are ignored on OutFox as we have a custom timing window solution, but if you would like us to add this to set a timing system in the future, do let us know!

ValueLabelCOOL Time window
0VERY HARD+/- 8ms
1HARD+/- 15ms
2NORMAL+/- 18ms
3EASY+/- 21ms
4VERY EASY+/- 33ms

Most of these timing windows are not really tied to any specific game or methodology of timing, so it is why we made the decision to not support any of the RANK commands: we also do not support the timing system used by Angolmois which uses 6 ranks. We do not support #DEFEXRANK / #EXRANK as they were additions by nanasi and it seems they did not carry over to be commonly used in other simulators. Changing timing mid song is something we could support, but we do not really see a need to add that to the engine at this time.

The ’timing’ windows used in Project OutFox are closer to RANK 2 to follow the standard others use.


#TOTAL n [0-999]

Status: ❌ Unsupported

Usage Example:

#TOTAL 430

The TOTAL command is to set the value of what could be considered an extension of the ‘gauge’ in older simulators, before life gauges existed. The value of TOTAL is added to a normal gauge to increase it’s length. if the value was 300, then the gauge would go from 0 to 100% in size, to the intial value (normally around 25% + 300% for a total gauge size of 325%).

This only occurs when the notes are hit and combo is kept, otherwise things would return to the old gauge size. It was more of a consideration on gauge/groove/clear amounts (what you needed to reach to be considered a pass in that song). This did lead to some confusion on how TOTAL should affect the gameplay/level of the chart.

The gauge never changed size; it was an off screen calculation on how you could ‘score’ your chart. Several simulators over the years have changed this value if TOTAL was omitted, we at the moment do not honour the value, mainly because we do not follow the iidx scoring system since 2005.


#MAKER maker [string] or

#CREDIT credit [string] or

#SUBARTIST subartist [string]

Status: ✅ Supported

Usage Example:

#MAKER Ima StepChart

or

#CREDIT Ima StepChart

or

#SUBARTIST Ima StepChart

The MAKER or CREDIT command simply allows the author or maker of the chart to add their credit so it will be displayed in the simulator. The main support for MAKER comes from around 2002 onwards. It is common in most 5 Key styles to be used, as well as being used on 10 Key (double play) styles. CREDIT is more recent, being seen from around 2013 in charts. I know not it’s origin, we support both as to not ignore honouring those that take the time to make charts for us to enjoy.

Since around 2017, another command, SUBARTIST began to be used more commonly in BME/PMS files, which was inherited from DTX. The sub artist is not normally displayed until the evaluation screen on earlier simulators, but in OutFox we treat all three of these in the same manner. If you are creating a new BMS chart, then #MAKER is usually safer to use for other simulator support.


#STAGEFILE stagefile [string]

Status: ✅ Supported

Usage Example:

#STAGEFILE loadingscreen.png

The stagefile command is used to set an image to the ’loading screen’ of the simulator - when the song and options/modifiers have been set, this file is then placed as part of the loading process on the ’loading screen’.

On older simulators, this loading process could take a long time, so it was wise to incorporate a loading screen system into the simulator. This has also been recently done in Project OutFox so we do not need to freeze the game while loading these files any more. This file is read in and parsed, just no theme at the moment takes advantage of the loading screen as of yet.


Main DATA FIELD commands


#SCROLLxx n.n [-999.0 - 999.0]

Status: ✅ Supported

Definition Usage Example:

#SCROLL01 0.5
#SCROLL02 1.0
#SCROLL03 -2.75

Channel Usage Example:

#003SC:02010001
#005SC:03000002

The scroll command works similar to how it does in native SM5, but if you are unfamiliar with the system, the value is a multiplier of the speed of the movement of any note on the screen.

If your notes were moving at 130BPM, but you did not wish to edit the BPM directly, you could use scroll to change that speed. The game also supports negative values (this has the affect of moving things in the opposite direction), which can provide some very interesting affects.

The channel command to action #SCROLL values are a Base36 value which are #xxxSC. There are several benefits to using this system as legacy BMS use items you need to name on each measure, whereas #xxxSC can last beyond this restriction. You need to be aware, not many clients support this system, so it is not backwards compatible if you are making your chart available to other simulators.


Key:

  • ✅ Fully supported and used in Mode
  • ✓ Fully supported and not used in Mode
  • 📝? No Documentation on this channel’s support
  • ❌ Not Supported / Not Available
  • ~ Not Used

PMSX listed below on some channels, is the wider 2 player mode that outfox supports for 18k mode.

BMS / BME / PMS Channel Support Table

The earlier versions of BMS were based on a 0-9 supported channel value, being 00 to 99. Over time, it was extended to base16 (00 to FF), and then to base36. I won’t list the tables in full base 36, as those extra channels are mostly used for player notes and keysounds, so it would be very long and hard to read. This table takes the most common layout which is base 16 based, and is also the most common supported by most of the other simulators. There are parts where *0 to *Z can be used, and those will be noted.

This table will be updated and modified as information is found out or addenda needed to fix mistakes. If you notice anything on this page that needs correcting, do let Squirrel know, or make a PR to the wiki’s repo!


BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
01Background MusicBackground MusicBackground MusicSupported
02Measure LengthMeasure LengthMeasure lengthSupported
03Set Initial BPMSet Initial BPMSet Initial BPMSupported
04BGA BaseBGA BaseBG BaseSupported - needs enabling
05eXtended ObjecteXtended ObjecteXtended ObjectSupported
06BGA Layer MissBGA Layer MissBGA PoorSupported - needs enabling
07BGA LayerBGA LayerBG LayerSupported - needs enabling sits above channel 4
08Extended BPMExtended BPMSet BPMSupported - Changes bpm to value
09StopStopStopSupported
0ANot Used~BGA Layer 2BGA Layer 2Supported
0BNot Used~BGA Base OpacityBGA Base OpacityNot Supported
0CNot Used~BGA Layer OpacityNot Used~Not Supported
0DNot Used~BGA Layer 2 OpacityNot Used~Not Supported
0ENot Used~BGA Poor OpacityBGA Poor OpacityNot Supported
0FNot Used~Not Used~Not Used~Not Used

Channel 00 to 0F

The lower channels on a BMS / PMS file mostly set up the specifics of the musical side of the chart, enabling BPM, backgrounds, and special effects like Stops and BGA (background) changes and selection.

The most important channel on this table is 01 which sets the ‘backing’ track or ‘master keysound’ of this track as created by some users. Most of the community do not use a completed file here however, it is better practice for the chart author to create keysounded files, as charting for a ‘single’ file is often thought of as lazy.

On PMS files, the BGA transparency settings are set here as well for effects and ‘cool/miss’ events that happen during the song if the user triggers those. On OutFox we support this mechanic, but as of yet we have not seen any files or have had any reported bugs with this, so it is a low priority option. Do reach out to us if you spot a pack or a song which has these channels within them so we can see what they are and how the effects work.


BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS / PMSX NameOutFox PMS SupportOutFox BMS/PMS Status Comments
10Not Used~Not Used~Not Used~Not Used
11P1 Key 1P1 Key 1P1 Left White / P1 Left WhiteSupported
12P1 Key 2P1 Key 2P1 Left Yellow / P1 Left YellowSupported
13P1 Key 3P1 Key 3P1 Left Green / P1 Left GreenSupported
14P1 Key 4P1 Key 4P1 Left Blue / P1 Left BlueSupported
15P1 Key 5P1 Key 5P1 Red / P1 RedSupported
16P1 Turn/ScratchP1 Turn/ScratchNot Used / P1 Right BlueSupported
17P1 FootPedalP1 FootPedalNot Used / P1 Right GreenSupported in Alpha 4.16.0
18P1 Key 6P1 Key 6Not Used / P1 Right YellowSupported
19P1 Key 7P1 Key 7Not Used / P1 Right WhiteSupported
1ANot Used~Not Used~Not Used~Not Used
1BNot Used~Not Used~Not Used~Not Used
1CNot Used~Not Used~Not Used~Not Used
1DNot Used~Not Used~Not Used~Not Used
1ENot Used~Not Used~Not Used~Not Used
1FNot Used~Not Used~Not Used~Not Used

Channel 10 to 1F

This block of channels is used for visible player notes for player 1. This selection of channels from 10 to 19 is ordered and swapped around depending on the game chosen. This is why in the early 2000s there were arrangements made for pomu / PMS to be split into it’s own file name, as it reused a lot of notes which on some simulators were loaded as BMS files. Do remember your target mode/game/style when you create your chart! This is especially important if you plan to have support with other simulators as they will not be as relaxed and ‘wide supporting’ as OutFox is.

The pomu-extended mode which is very common in BME files is one such example. It uses 11 to 19 which on some simulations are incorrectly loaded. This type of chart was common in nanasi and we have aligned our support to this as it seems to be more common for the extended options than other ‘formats’.


BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS / PMSX NameOutFox PMS SupportOutFox BMS/PMS Status Comments
20Not Used~Not Used~Not Used~Not Used
21P2 Key 1P2 Key 1Not UsedSupported
22P2 Key 2P2 Key 2P1 Right Blue / P2 Left WhiteSupported
23P2 Key 3P2 Key 3P1 Right Green / P2 Left YellowSupported
24P2 Key 4P2 Key 4P1 Right Yellow / P2 Left GreenSupported
25P2 Key 5P2 Key 5P1 Right White / P2 RedSupported
26P2 Turn/ScratchP2 Turn/ScratchNot Used / P2 Right BlueSupported
27P2 FootPedalP2 FootPedalNot Used / P2 Right GreenSupported in Alpha 4.16.0
28P2 Key 6P2 Key 6Not Used / P2 Right YellowSupported
29P2 Key 7P2 Key 7Not Used / P2 Right WhiteSupported
2ANot Used~Not Used~Not Used~Not Used
2BNot Used~Not Used~Not Used~Not Used
2CNot Used~Not Used~Not Used~Not Used
2DNot Used~Not Used~Not Used~Not Used
2ENot Used~Not Used~Not Used~Not Used
2FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
30Not Used~Not Used~Not Used~Not Used
31P1 Key 1 HiddenP1 Key 1 HiddenP1 Left White HiddenSupported in 4.10.0
32P1 Key 2 HiddenP1 Key 2 HiddenP1 Left Yellow HiddenSupported in 4.10.0
33P1 Key 3 HiddenP1 Key 3 HiddenP1 Left Green HiddenSupported in 4.10.0
34P1 Key 4 HiddenP1 Key 4 HiddenP1 Left Blue HiddenSupported in 4.10.0
35P1 Key 5 HiddenP1 Key 5 HiddenP1 Left Red HiddenSupported in 4.10.0
36P1 Turn/Scratch HiddenP1 Turn/Scratch HiddenNot Used~Supported in 4.10.0
37P1 FootPedal HiddenP1 FootPedal HiddenNot Used~Supported in 4.10.0
38P1 Key 6 HiddenP1 Key 6 HiddenNot Used~Supported in 4.10.0
39P1 Key 7 HiddenP1 Key 7 HiddenNot Used~Supported in 4.10.0
3ANot Used~Not Used~Not Used~Not Used
3BNot Used~Not Used~Not Used~Not Used
3CNot Used~Not Used~Not Used~Not Used
3DNot Used~Not Used~Not Used~Not Used
3ENot Used~Not Used~Not Used~Not Used
3FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
40Not Used~Not Used~Not Used~Not Used
41P2 Key 1 HiddenP2 Key 1 HiddenNot Used~Supported in 4.10.0
42P2 Key 2 HiddenP2 Key 2 HiddenP1 Right Blue HiddenSupported in 4.10.0
43P2 Key 3 HiddenP2 Key 3 HiddenP1 Right Green HiddenSupported in 4.10.0
44P2 Key 4 HiddenP2 Key 4 HiddenP1 Right Yellow HiddenSupported in 4.10.0
45P2 Key 5 HiddenP2 Key 5 HiddenP1 Right White HiddenSupported in 4.10.0
46P2 Turn/Scratch HiddenP2 Turn/Scratch HiddenNot Used~Supported in 4.10.0
47P2 FootPedal HiddenP2 FootPedal HiddenNot Used~Supported in 4.10.0
48P2 Key 6 HiddenP2 Key 6 HiddenNot Used~Supported in 4.10.0
49P2 Key 7 HiddenP2 Key 7 HiddenNot Used~Supported in 4.10.0
4ANot Used~Not Used~Not Used~Not Used
4BNot Used~Not Used~Not Used~Not Used
4CNot Used~Not Used~Not Used~Not Used
4DNot Used~Not Used~Not Used~Not Used
4ENot Used~Not Used~Not Used~Not Used
4FNot Used~Not Used~Not Used~Not Used

Long Note Sections #xxx51-69 - #LNTYPE1, #LNTYPE2 (BML/PMS)

The original Long Note Implementation is now supported in OutFox, and we do parse #LNTYPE. We have tested these with a lot of different charts from the mid 2000s and we are now reproduce these perfectly.

BME and PMS support for these channels is to the LR2 specification, where Player 1 channels are used. The Player 2 Channel options are not included in this specification.

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
50Not Used~Not Used~Not Used~Not Supported
51P1 Key 1 LongNoteP1 Key 1 LongNoteP1 Left While LongNoteSupported in 4.10.0
52P1 Key 2 LongNoteP1 Key 2 LongNoteP1 Left Yellow LongNoteSupported in 4.10.0
53P1 Key 3 LongNoteP1 Key 3 LongNoteP1 Left Green LongNoteSupported in 4.10.0
54P1 Key 4 LongNoteP1 Key 4 LongNoteP1 Left Blue LongNoteSupported in 4.10.0
55P1 Key 5 LongNoteP1 Key 5 LongNoteP1 Red LongNoteSupported in 4.10.0
56P1 Turn/Scratch LongNoteP1 Turn/Scratch LongNoteNot Used~Supported in 4.10.0
57P1 FootPedal LongNoteP1 FootPedal LongNoteNot Used~Supported in 4.10.0
58P1 Key 6 LongNoteP1 Key 6 LongNoteNot Used~Supported in 4.10.0
59P1 Key 7 LongNoteP1 Key 7 LongNoteNot Used~Supported in 4.10.0
5ANot Used~Not Used~Not Used~Not Used
5BNot Used~Not Used~Not Used~Not Used
5CNot Used~Not Used~Not Used~Not Used
5DNot Used~Not Used~Not Used~Not Used
5ENot Used~Not Used~Not Used~Not Used
5FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
60Not Used~Not Used~Not Used~Not Used
61P2 Key 1 LongNoteP2 Key 1 LongNoteNot Used~Supported in 4.10.0
62P2 Key 2 LongNoteP2 Key 2 LongNoteP1 Right Blue LongNoteSupported in 4.10.0
63P2 Key 3 LongNoteP2 Key 3 LongNoteP1 Right Green LongNoteSupported in 4.10.0
64P2 Key 4 LongNoteP2 Key 4 LongNoteP1 Right Yellow LongNoteSupported in 4.10.0
65P2 Key 5 LongNoteP2 Key 5 LongNoteP1 Right White LongNoteSupported in 4.10.0
66P2 Turn/Scratch LongNoteP2 Turn/Scratch LongNoteNot Used~Supported in 4.10.0
67P2 FootPedal LongNoteP2 FootPedal LongNoteNot Used~Supported in 4.10.0
68P2 Key 6 LongNoteP2 Key 6 LongNoteNot Used~Supported in 4.10.0
69P2 Key 7 LongNoteP2 Key 7 LongNoteNot Used~Supported in 4.10.0
6ANot Used~Not Used~Not Used~Not Used
6BNot Used~Not Used~Not Used~Not Used
6CNot Used~Not Used~Not Used~Not Used
6DNot Used~Not Used~Not Used~Not Used
6ENot Used~Not Used~Not Used~Not Used
6FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
70Not Used~Not Used~Not Used~Not Used
71Not Used~Not Used~Not Used~Not Used
72Not Used~Not Used~Not Used~Not Used
73Not Used~Not Used~Not Used~Not Used
74Not Used~Not Used~Not Used~Not Used
75Not Used~Not Used~Not Used~Not Used
76Not Used~Not Used~Not Used~Not Used
77Not Used~Not Used~Not Used~Not Used
78Not Used~Not Used~Not Used~Not Used
79Not Used~Not Used~Not Used~Not Used
7ANot Used~Not Used~Not Used~Not Used
7BNot Used~Not Used~Not Used~Not Used
7CNot Used~Not Used~Not Used~Not Used
7DNot Used~Not Used~Not Used~Not Used
7ENot Used~Not Used~Not Used~Not Used
7FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
80Not Used~Not Used~Not Used~Not Used
81Not Used~Not Used~Not Used~Not Used
82Not Used~Not Used~Not Used~Not Used
83Not Used~Not Used~Not Used~Not Used
84Not Used~Not Used~Not Used~Not Used
85Not Used~Not Used~Not Used~Not Used
86Not Used~Not Used~Not Used~Not Used
87Not Used~Not Used~Not Used~Not Used
88Not Used~Not Used~Not Used~Not Used
89Not Used~Not Used~Not Used~Not Used
8ANot Used~Not Used~Not Used~Not Used
8BNot Used~Not Used~Not Used~Not Used
8CNot Used~Not Used~Not Used~Not Used
8DNot Used~Not Used~Not Used~Not Used
8ENot Used~Not Used~Not Used~Not Used
8FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
90Not Used~Not Used~Not Used~Not Used
91Not Used~Not Used~Not Used~Not Used
92Not Used~Not Used~Not Used~Not Used
93Not Used~Not Used~Not Used~Not Used
94Not Used~Not Used~Not Used~Not Used
95Not Used~Not Used~Not Used~Not Used
96Not Used~Not Used~Not Used~Not Used
97Not Used~Not Used~BGM VolumeNot Supported
98Not Used~Not Used~KeySound VolumeNot Supported
99Not Used~Not Used~TEXT StringNot Supported
9ANot Used~Not Used~Not Used~Not Used
9BNot Used~Not Used~Not Used~Not Used
9CNot Used~Not Used~Not Used~Not Used
9DNot Used~Not Used~Not Used~Not Used
9ENot Used~Not Used~Not Used~Not Used
9FNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
A0Not Used~Not Used~Not Used~Not Used
A1Not Used~Not Used~Not Used~Not Used
A2Not Used~Not Used~Not Used~Not Used
A3Not Used~Not Used~Not Used~Not Used
A4Not Used~Not Used~Not Used~Not Used
A5Not Used~Not Used~Not Used~Not Used
A6Not Used~Change OptionChange OptionThis was the deprecated mod system for BMS and PMS.
A7Not Used~Not Used~Not Used~Not Used
A8Not Used~Not Used~Not Used~Not Used
A9Not Used~Not Used~Not Used~Not Used
AANot Used~Not Used~Not Used~Not Used
ABNot Used~Not Used~Not Used~Not Used
ACNot Used~Not Used~Not Used~Not Used
ADNot Used~Not Used~Not Used~Not Used
AENot Used~Not Used~Not Used~Not Used
AFNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
B0Not Used~Not Used~Not Used~Not Used
B1Not Used~Not Used~Not Used~Not Used
B2Not Used~Not Used~Not Used~Not Used
B3Not Used~Not Used~Not Used~Not Used
B4Not Used~Not Used~Not Used~Not Used
B5Not Used~Not Used~Not Used~Not Used
B6Not Used~Not Used~Not Used~Not Used
B7Not Used~Not Used~Not Used~Not Used
B8Not Used~Not Used~Not Used~Not Used
B9Not Used~Not Used~Not Used~Not Used
BANot Used~Not Used~Not Used~Not Used
BBNot Used~Not Used~Not Used~Not Used
BCNot Used~Not Used~Not Used~Not Used
BDNot Used~Not Used~Not Used~Not Used
BENot Used~Not Used~Not Used~Not Used
BFNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
C0Not Used~Not Used~Not Used~Not Used
C1Not Used~Not Used~Not Used~Not Used
C2Not Used~Not Used~Not Used~Not Used
C3Not Used~Not Used~Not Used~Not Used
C4Not Used~Not Used~Not Used~Not Used
C5Not Used~Not Used~Not Used~Not Used
C6Not Used~Not Used~Not Used~Not Used
C7Not Used~Not Used~Not Used~Not Used
C8Not Used~Not Used~Not Used~Not Used
C9Not Used~Not Used~Not Used~Not Used
CANot Used~Not Used~Not Used~Not Used
CBNot Used~Not Used~Not Used~Not Used
CCNot Used~Not Used~Not Used~Not Used
CDNot Used~Not Used~Not Used~Not Used
CENot Used~Not Used~Not Used~Not Used
CFNot Used~Not Used~Not Used~Not Used

LandMine Sections #xxxD1-E9 - (BMS/PMS)

The original Land Mine Implementation is now supported in OutFox after some serious rewriting of the code to ensure these extended (greater than 9) channels were supported. We have tested these with a lot of different charts from the mid 2000s and we are now reproduce these perfectly with mines behaving as expected on BMS/BME and PMS files. Thanks to Bobini for the suggestion on ensuring that these channels were supported.

BME and PMS support for the landmines (mines) is now 100% complete, and work as planned.

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
D0Not Used~Not Used~Not Used~Not Used
D1Not Used~P1 Key 1 LandMineP1 Left White LandMineSupported in 4.10.0
D2Not Used~P1 Key 2 LandMineP1 Left Yellow LandMineSupported in 4.10.0
D3Not Used~P1 Key 3 LandMineP1 Left Green LandMineSupported in 4.10.0
D4Not Used~P1 Key 4 LandMineP1 Left Blue LandMineSupported in 4.10.0
D5Not Used~P1 Key 5 LandMineP1 Red LandMineSupported in 4.10.0
D6Not Used~P1 Turn/Scratch LandMineNot Used~Supported in 4.10.0
D7Not Used~P1 FootPedal LandMineNot Used~Supported in 4.10.0
D8Not Used~P1 Key 6 LandMineNot Used~Supported in 4.10.0
D9Not Used~P1 Key 7 LandMineNot Used~Supported in 4.10.0
DANot Used~Not Used~Not Used~Not Used
DBNot Used~Not Used~Not Used~Not Used
DCNot Used~Not Used~Not Used~Not Used
DDNot Used~Not Used~Not Used~Not Used
DENot Used~Not Used~Not Used~Not Used
DFNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
E0Not Used~Not Used~Not Used~Not Used
E1Not Used~P2 Key 1 LandMineNot Used~Supported in 4.10.0
E2Not Used~P2 Key 2 LandMineP1 Right Blue LandMineSupported in 4.10.0
E3Not Used~P2 Key 3 LandMineP1 Right Green LandMineSupported in 4.10.0
E4Not Used~P2 Key 4 LandMineP1 Right Yellow LandMineSupported in 4.10.0
E5Not Used~P2 Key 5 LandMineP1 Right White LandMineSupported in 4.10.0
E6Not Used~P2 Turn/Scratch LandMineNot Used~Supported in 4.10.0
E7Not Used~P2 FootPedal LandMineNot Used~Supported in 4.10.0
E8Not Used~P2 Key 6 LandMineNot Used~Supported in 4.10.0
E9Not Used~P2 Key 7 LandMineNot Used~Supported in 4.10.0
EANot Used~Not Used~Not Used~Not Used
EBNot Used~Not Used~Not Used~Not Used
ECNot Used~Not Used~Not Used~Not Used
EDNot Used~Not Used~Not Used~Not Used
EENot Used~Not Used~Not Used~Not Used
EFNot Used~Not Used~Not Used~Not Used

BMS / BME / PMS ChannelBMS NameOutFox BMS SupportBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
F0Not Used~Not Used~Not Used~Not Used
F1Not Used~Not Used~Not Used~Not Used
F2Not Used~Not Used~Not Used~Not Used
F3Not Used~Not Used~Not Used~Not Used
F4Not Used~Not Used~Not Used~Not Used
F5Not Used~Not Used~Not Used~Not Used
F6Not Used~Not Used~Not Used~Not Used
F7Not Used~Not Used~Not Used~Not Used
F8Not Used~Not Used~Not Used~Not Used
F9Not Used~Not Used~Not Used~Not Used
FANot Used~Not Used~Not Used~Not Used
FBNot Used~Not Used~Not Used~Not Used
FCNot Used~Not Used~Not Used~Not Used
FDNot Used~Not Used~Not Used~Not Used
FENot Used~Not Used~Not Used~Not Used
FFNot Used~Not Used~Not Used~Not Used

Scroll #xxxSC / Speed #xxxSP Sections - (BMS/PMS)

These two channels were recent additions to the specification used in the beatoraja and bemuse clients, and are done slightly differently to the specification. Rather than using one of the 30 spare channels in the lower ranges, these two options require full base 36 (00-ZZ) support to work as they use SC/SP instead of a Hex (00-FF) value. OutFox’s BMS-like parsers were updated in 4.9.9 to support base 36 channel values even though not required by specification, so these channels were a trivial addition to our support.

Speed and Scroll segments replicate behaviour done with Channel 02/08/09, without relying on these channels changing. They were introduced in the SSC updates to StepMania and are natively supported in the engine in OutFox. These add a new layer of effects to be utlised without using #BPMxx or #STOPxx.

BMS / BME / PMS ChannelBME NameOutFox BME SupportPMS NameOutFox PMS SupportOutFox BMS/PMS Status Comments
SCScroll AdjustmentNot Used~Not Supported Yet
SPSpeed AdjustmentNot Used~Not Supported Yet

Written and Maintained with ♡ by Squirrel, with thanks to the feeling-po-mu, BMS command memo, BMS Discord, and Japanese BMS/PMS community