-
Notifications
You must be signed in to change notification settings - Fork 6
SSC format
Rodrigo Alfonso edited this page Sep 8, 2020
·
42 revisions
Field | Type | Description |
---|---|---|
TITLE |
String | Id of the song |
SUBTITLE |
String | Name of the song |
ARTIST |
String | Author of the song |
SONGCATEGORY |
One of ORIGINAL , K-POP , WORLD MUSIC
|
Channel of the song |
LASTSECONDHINT |
Number | (Optional) Timestamp (in seconds) when the song ends. Used when songs have a trailing silence |
PIUGBA |
Object | (Optional) Custom configuration of the song. See the example below |
Field | Type | Description |
---|---|---|
DESCRIPTION |
String | Name of the chart. Used by the importer |
DIFFICULTY |
One of NORMAL , HARD , CRAZY , NUMERIC
|
Named difficulty level |
METER |
Int | Numeric difficulty level |
PIUGBA_ORDER |
Int |
METER override for sorting purposes |
OFFSET |
Number | Audio offset (in seconds) from the chart notes. If positive, audio starts after the chart |
BPMS |
Dictionary | Dictionary with all the BPM changes. Beat => BPM |
SPEEDS |
Quad Dictionary | Speed factors that affect display BPM. Beat => Percent (scroll factor) => Delay (a value of 1 will make it linearly scale from the current scroll speed to the new one in 1 beat/second) => Unit (0 = delay is in beats, 1 = delay is in seconds) |
TICKCOUNTS |
Dictionary | Affects the combo ticks of hold notes. Beat => Denominator (4 = quarter note, 8 = eighth note, etc.) |
STOPS |
Dictionary | Completely stops the scrolling and affects all the next events. Beat => Length (in seconds) |
DELAYS |
Dictionary | Same as STOPS
|
SCROLLS |
Dictionary | Sets the scrolling ON or OFF, without affecting all the next events. Used to fake stops (also called "async stops"). Beat => Enabled (0 = no, 1 = yes) |
WARPS |
Dictionary | Teleports to another part of the chart. Beat => Jump (in beats) |
FAKES |
Dictionary | Notes during this segment won't be counted for or against players. Beat => Length (in beats) |
If a BPM
segment sets BPM to anything higher than 9999999
, StepMania interprets it as a warp to the next BPM change. If there're STOPS
/DELAYS
in the middle, it stops and then continues warping so it can create stuttering effects like warp-stop-warp-stop-warp-stop...
KEY=VALUE
separated by ,
Like Dictionary
, but separated by ,,,
KEY=VALUE=PARAM1=PARAM2
separated by ,
#TITLE:230;
#SUBTITLE:Name of the song;
#ARTIST:Author of the song;
#SONGCATEGORY:WORLD MUSIC;
#LASTSECONDHINT:99.002441;
#SAMPLESTART:27.322994;
#SAMPLELENGTH:15.000004;
#PIUGBA:
APPLY_TO=101,,,
IS_BOSS=TRUE,,,
PIXELATE=BLINK_IN,,,
JUMP=ON,,,
REDUCE=RANDOM,,,
NEGATIVECOLORS=ON,,,
RANDOMSPEED=ON,,,
EXTRAJUDGEMENT=ON,,,
MESSAGE=
This is a message to be
read before the song.
The maximum is 25 cols,
4 lines between \r\n.
;
# APPLY_TO = Indicates what campaign modes are affected by those options (101 means "NORMAL & CRAZY, but not HARD").
# IS_BOSS = Changes the song's channel to BOSS
# Other chart properties can be here, e.g.: BPMS, STOPS, etc.
# They serve as a default value when a chart doesn't include them
//---------------pump-single - chart name ----------------
#DESCRIPTION:s8 Pro;
#DIFFICULTY:NUMERIC;
#METER:8;
#OFFSET:0.003000;
#BPMS:0.000000=158.000000
,156.000000=197.500000
,158.000000=237.000000
,160.000000=276.500000
,162.000000=316.000000
,176.000000=276.500000
,178.000000=237.000000
,180.000000=197.500000
,182.000000=158.000000
,184.000000=118.500000
,185.000000=104.500000
,186.000000=158.000000
;
#STOPS:186.000000=3.038000
;
#DELAYS:;
#WARPS:;
#TICKCOUNTS:0.000000=4
;
#SPEEDS:0.000000=1.000000=0.000000=0
;
#SCROLLS:0.000000=1.000000
;
#FAKES:;
#NOTES:
// measure 0
00000
01100
00001
00000
, // measure 1
00000
00200
00000
00000
, // measure 2
00000
00000
00000
00300
//---------------pump-single - another chart ----------------
#DESCRIPTION:s19;
#DIFFICULTY:CRAZY;
#METER:19;
#OFFSET:0.003000;
// ...