.ssc - RhythmLunatic/stepmania GitHub Wiki

Information about .ssc fields

Header data

type tag description sample
float VERSION This must be the first tag in the file!!! Usually 0.81. No idea what differences there are. #VERSION:0.81;
String TITLE The title of the song in its original language. Should be UTF-8 encoded. #TITLE:Gargoyle;
String SUBTITLE The subtitle of the song. For example, if the full name of the song is "Spectrum (DJ Noriken Remix)", the subtitle would be "(DJ Noriken Remix)". Themes will decide what to do with this subtitle, but usually it's in small letters under the title or simply combined with the title with a space. #SUBTITLE:(DJ Noriken Remix)
String ARTIST The artist of the song, duh. #ARTIST:Sanxion7;
String TITLETRANSLIT The transliterated name of the song, meaning the name in pure English characters. For example, if the song's name is 冥, the tag would say "Mei", as that is the romanized name. #TITLETRANSLIT:Mei;
String SUBTITLETRANSLIT Same as title.
String ARTISTTRANSLIT Same as title.
String GENRE The genre of the song. Used for genre sorts in StepMania, but has special meanings in StepF2. In StepF2, you can use FULLSONG, J-MUSIC, K-POP, etc change where the song is sorted in the group (PIU sorts songs by genre within groups). #GENRE:J-MUSIC;
String ORIGIN This tag is never used for anything, it is essentially a free tag to put anything you want. The original intent was to specify what game the song came from, but virtually no themes use it. In SM-RIO this is used for what year the song came from, allowing you to sort by year. #ORIGIN:DDRMAX;
String CREDIT The stepmaker credit, but since charts can have their own credits this tag is redundant and essentially depreciated. #CREDIT:KONAMI;
String (file path) BANNER The relative path to the banner. #BANNER:15E5_B.png;
String (file path) BACKGROUND The relative path to the background.
String (file path) PREVIEWVID The relative path to the preview video. Preview videos are used in pump themes and displayed while hovering over a song.
String (file path) CDTITLE The relative path to the "CD Title", which is a spinning graphic that some themes display on top of the banner/jacket while hovering over the song. Most themes no longer use this.
String (file path) MUSIC The relative path to the song's music. Duh.
float OFFSET The song start offset. Overridden if the chart has its own offset. #OFFSET:0.060000;
float SAMPLESTART The time in seconds to start playing the song's sample while previewing it in the music select. #SAMPLESTART:136.029999;
float SAMPLELENGTH The length in seconds to play the sample. #SAMPLELENGTH:10.000000;
Enum SELECTABLE If this song is available in the music select while the unlock system is enabled. If the unlock system is disabled, this song is always selectable.In StepMania, the only valid values are "YES" and "NO", and any other value will default to "YES". In SM-RIO, you may use "YES", "NO", and "EASY". "EASY" means this song is only available if GAMESTATE:SetBasicMode() was called before entering the music select and the unlock system is enabled. #SELECTABLE:YES;
Enum SONGTYPE (SF2 & RIO only) Enum with SHORTCUT,ARCADE,REMIX,FULLSONG, or MUSICTRAIN. * SHORTCUT: Returns 1 in song:GetPIUStageCost(). Song will still cost 1 stage because of SM engine limitations. * ARCADE: Regular length. Overrides song so it will cost one stage and IsLong() and IsMarathon() returns false. song:GetPIUStageCost() returns 2. * REMIX: Will override length so IsLong() and IsMarathon() returns false. Song will still cost 1 stage because of SM engine limitations. song:GetPIUStageCost() returns 3. * FULLSONG: Return true for song:IsLong(), in other words overrides stage cost and length so it's two stages. song:GetPIUStageCost() returns 4. * MUSICTRAIN: Return true for song:IsMarathon(), in other words overrides stage cost and length so it's three stages. song:GetPIUStageCost() returns 6. #SONGTYPE:FULLSONG;
Enum SONGCATEGORY (StepF2/StepPXX only) Controls if this song should be added to additional genre folders in the StepF2 music wheel. By default this is set to USE_GENRE, which tells the game to check the genre tag for the matching category. Consult the StepF2 manual for more information. #SONGTYPE:FULLSONG;
int? VOLUME (StepF2 only?) Controls the volume of the song. Can go from 0 to ???, supports values above 100. Might be StepF2 only. #VOLUME:100;
float DISPLAYBPM The BPM to show during the song select. #DISPLAYBPM:150.000000;
[[float,float],*] BPMS A list of BPMs this song uses. However, individual charts can have their own BPMs. The first value is when the BPM changes, and the second value is what to change it to. #BPMS:0.000=150.000;
[[float,int,int],*] TIMESIGNATURES A list of time signatures, the first value being when the signature changes, the second and third being the signature (For example, 4=4 is 4/4 time). Note that this is not implemented in StepMania, the value does nothing at all and will not change the measure lines displayed in-game. However, ArrowVortex uses it so it may help you create charts.
[[float,int],*] TICKCOUNTS List of 'ticks' to apply during a hold note, which seems to be based on the BPM. I have no idea how it works.
[[float,int],*] COMBOS I have no idea what this value does.
[[float,float,float,bool],*] SPEEDS When to apply, scroll speed multiplier, tween time, second or beat timing (either 0 or 1). #SPEEDS:0.000000=1.000000=0.000000=0,156.000000=0.500000=1.000000=0,192.000000=0.750000=1.000000=0;
[[float,float],*] SCROLLS
LABELS This is only used in the SM5 editor, but it's shown next to the note track.
... BGCHANGES lol

BGChanges & FGChanges

  1. start beat
  2. file or folder name
  3. play rate (Probably won't work due to ffmpeg issues)
  4. Backward compatible transition type. CrossFade is used if this is not 0.
  5. Backward compatible effect flag. StretchRewind is used if this is not 0.
  6. Backward compatible effect flag. StretchNoLoop is used if this is not 0.
  7. Name of the effect file to use. The BackgroundEffects folder will be searched for a match.
  8. Name of the second file, not sure what this is used for.
  9. Name of the transition file to use. The BackgroundTransitions folder will be searched for a match.
  10. Color string in either "1.0^0.5^0.75^0.25" or "#ff7fcf3f" form. The fourth channel is optional. (no, I don't know why it uses ^ instead of ,)
  11. Second color string, same format.

Notedata specific fields

type tag description sample
null NOTEDATA Signifies the start of reading per-chart data #NOTEDATA:;
String CHARTNAME Name of the chart. Usually used if the chart is EDIT difficulty to give it a unique name. #CHARTNAME:Slumpage;
String DESCRIPTION Mostly only used in the chart editor for normal StepMania, refer below for StepF2 usage. #DESCRIPTION:DP99 New;
String STEPSTYPE A combination of the game and style, separated by a dash. pump-single, pump-double, pump-halfdouble, bm-5key, etc. Refer to Supported Game Modes for the full list.
Enum? DIFFICULTY Beginner, Easy, Medium, Hard, Challenge, and Edit. In StepMania steps are sorted by difficulty first, then EDITs are appended to the end and sorted by level. In StepF2 this tag does nothing and all steps are treated equally. #DIFFICULTY:Beginner;
Unsigned int METER A number from 0 to 65535 that shows the difficulty level of this chart. In StepF2 and most other PIU themes, 99 is shown as "??" in the song select. #METER:4;
[unsigned float,*] RADARVALUES A long list of floats for each 'radar value', displayed on the music select in DDR themes as that pentagon thing. Also stores number of notes, taps and holds, jumps, mines, hands, etc. #RADARVALUES:0.144295,0.201382,...;
String CREDIT The chart author. Duh. #CREDIT:Rhythm Lunatic;
note data NOTES The notedata field. Refer to Note Types on the wiki for more information. (It would be too long to list here)

StepF2 DESCRIPTION tag

Adding certain words in the description tag will change how the steps appears in the music wheel.

word meaning
new Shows "New" label under the chart, similar to the arcade game.
another Shows "Another" label under the chart, similar to Pro/Infinity. This is meant to indicate alternative charts.
pro Shows Pro label under the chart, similar to how Pro/Infinity shows Pro/Infinity labels for charts from those games.
quest Shows quest label to indicate that this chart is from a quest mode such as Mission Zone, World Max, etc
train Indicates that this chart is part of a music train.
hidden Indicates that this chart is not playable in the real arcade game without a hidden requirement (ex. hold upleft and upright after you select a different chart, 5% chance to appear instead of a normal chart, etc)
UCS Indicates that this chart is not from the real arcade game, but a fan creation ("User Custom Step"). Also adds the chart to the UCS channel.
HalfDouble Turns the chart into a HalfDouble chart if you didn't make it in the HalfDouble style for some reason
SP Changes the chart into Single Performance, which gives it a different color.
DP Changes the chart into Double Performance, which gives it a different color. In addition, jumps for each noteskin color are judged separately.
CO-OP Changes this chart into CO-OP, which gives it a yellow color. In addition, jumps for each noteskin color are judged separately. (In PIU, routine charts are called CO-OP. So this essentially turns it into a routine chart.)