Overview
The.SM (StepMania) format is the classic simfile format used by StepMania. It uses the MSD (Music Simulation Data) format with tags beginning with # and ending with ;.
Key Characteristics
- Single timing data - All charts share the same BPM, stops, and delays
- Wide compatibility - Supported by all StepMania versions
- Simple structure - Easy to read and edit
- Multiple difficulties - One file can contain all difficulty levels
File Structure
A .SM file consists of:- Song metadata - Title, artist, media files
- Timing data - Offset, BPMs, stops, delays
- Display options - Sample preview, display BPM
- Notes sections - One per difficulty/style
Basic Template
Song Metadata Tags
#TITLE
#TITLE
Format:
#TITLE:text;The main title of the song.#SUBTITLE
#SUBTITLE
Format:
#SUBTITLE:text;Subtitle or remix name. Often used for mix/version information.#ARTIST
#ARTIST
Format:
#ARTIST:text;The song artist or composer.#TITLETRANSLIT
#TITLETRANSLIT
Format:
#TITLETRANSLIT:text;Romanized/transliterated version of the title for non-Latin scripts.#SUBTITLETRANSLIT
#SUBTITLETRANSLIT
Format:
#SUBTITLETRANSLIT:text;Romanized/transliterated subtitle.#ARTISTTRANSLIT
#ARTISTTRANSLIT
Format:
#ARTISTTRANSLIT:text;Romanized/transliterated artist name.#GENRE
#GENRE
Format:
#GENRE:text;Music genre for categorization.#CREDIT
#CREDIT
Format:
#CREDIT:text;Chart author or credits.Media File Tags
#MUSIC
#MUSIC
Format: Path is relative to the simfile directory.
#MUSIC:filename;Path to the audio file (MP3, OGG, WAV).#BANNER
#BANNER
#BACKGROUND
#BACKGROUND
Format:
#BACKGROUND:filename;Path to the background image.#CDTITLE
#CDTITLE
Format:
#CDTITLE:filename;Path to CD title graphic (typically 64x40 pixels).#LYRICSPATH
#LYRICSPATH
Format:
#LYRICSPATH:filename;Path to lyrics file (.LRC format).Timing Tags
#OFFSET
#OFFSET
Format: How to find the offset:
#OFFSET:seconds;The number of seconds to wait before the first beat. Can be negative.- Find when the first beat occurs in the audio file
- Use that time as the offset
- If the first beat is at 0.5 seconds, use
#OFFSET:0.500;
#BPMS
#BPMS
Format:
#BPMS:beat=bpm,beat=bpm,...;BPM (tempo) changes throughout the song.- First value is always at beat 0.000
- Beat numbers use decimal precision
- BPM can be decimal (e.g., 128.500)
#STOPS (or #FREEZES)
#STOPS (or #FREEZES)
Format: This stops scrolling for 0.5 seconds at beat 64, and 1.0 seconds at beat 128.
#STOPS:beat=seconds,beat=seconds,...;Freezes/stops where scrolling pauses but music continues.#FREEZES is an alias for #STOPS - they work identically.#DELAYS
#DELAYS
Format: Unlike stops, delays pause the music playback as well.
#DELAYS:beat=seconds,beat=seconds,...;Delays where both scrolling and music pause.#TIMESIGNATURES
#TIMESIGNATURES
Format:
#TIMESIGNATURES:beat=numerator=denominator,...;Time signature changes throughout the song.#TICKCOUNTS
#TICKCOUNTS
Format: Default is 4. Higher values make holds more precise.
#TICKCOUNTS:beat=ticks,beat=ticks,...;Number of ticks per beat for hold notes.Display Tags
#DISPLAYBPM
#DISPLAYBPM
Format:
#DISPLAYBPM:value; or #DISPLAYBPM:min:max; or #DISPLAYBPM:*;How to display the BPM on the song selection screen.#SAMPLESTART
#SAMPLESTART
Format:
#SAMPLESTART:seconds;Time in the song to start the preview on the song selection screen.#SAMPLELENGTH
#SAMPLELENGTH
Format:
#SAMPLELENGTH:seconds;Length of the preview in seconds.#SELECTABLE
#SELECTABLE
Format:
#SELECTABLE:YES; or #SELECTABLE:NO;Whether the song can be selected.Advanced Tags
#BGCHANGES
#BGCHANGES
Format: Parameters:
#BGCHANGES:beat=file=rate=transition=effect,...;Background changes/animations during gameplay.beat- When to changefile- Image/video filenamerate- Animation rate multipliertransition- Transition type (0-2)effect- Effect name (StretchNoLoop, etc.)
#FGCHANGES
#FGCHANGES
Format: Same as
#BGCHANGESForeground changes (displayed on top of gameplay).#KEYSOUNDS
#KEYSOUNDS
Format:
#KEYSOUNDS:file1,file2,...;List of keysound files to use with note keysounds.#ATTACKS
#ATTACKS
Format:
#ATTACKS:TIME=time:LEN=length:MODS=modifiers,...;Course mode attacks/modifiers.#INSTRUMENTTRACK
#INSTRUMENTTRACK
Format:
#INSTRUMENTTRACK:file1,file2,...;Additional instrument tracks for games like Guitar Hero.#NOTES Section
Each chart is defined in a#NOTES: section with the following format:
Notes Section Parameters
Steps Type
Steps Type
The game mode/style:
dance-single- 4-panel singledance-double- 8-panel doubledance-couple- 8-panel couple (2 players)dance-solo- 6-panel solopump-single- 5-panel single (Pump)pump-double- 10-panel double (Pump)pump-couple- 10-panel couple (Pump)
Description
Description
Chart description or author. Can be blank.
Difficulty
Difficulty
Difficulty slot:
BeginnerEasyMediumHardChallengeEdit
Meter
Meter
Numeric difficulty rating (1-20+).
Radar Values
Radar Values
Five comma-separated values (stream, voltage, air, freeze, chaos).StepMania calculates these automatically - usually left as defaults.
Note Data Format
Note Characters
Fordance-single (4 columns: Left, Down, Up, Right):
0- No note1- Normal note2- Hold head (start of hold)3- Hold/roll tail (end of hold)4- Roll head (start of roll)M- Mine (avoid this)K- Keysound note (plays keysound)L- Lift note (release foot)F- Fake note (doesn’t judge)
Measure Structure
Notes are organized into measures, separated by commas:- Each line represents a subdivision of a measure
- 4 lines = quarter notes (4ths)
- 8 lines = 8th notes
- 16 lines = 16th notes
- 12 lines = 12th notes (triplets)
- 24 lines = 24th notes
- Can use any number of lines per measure
Examples
Quarter Notes
Quarter Notes
8th Notes
8th Notes
Jumps (Multiple Arrows)
Jumps (Multiple Arrows)
Hold Notes
Hold Notes
Mines
Mines
Complete Example
Here’s a complete .SM file:Tips and Best Practices
Next Steps
SSC Format
Learn about the modern .SSC format with advanced features
Other Formats
Explore legacy simfile formats

