242 lines
9.9 KiB
Plaintext
242 lines
9.9 KiB
Plaintext
Complete Course Template
|
|
|
|
[[ Header Content ]]
|
|
-- Header Content is any course-defining data, such as the title, banner,
|
|
-- and other parameters.
|
|
|
|
#COURSE:My Course!;
|
|
-- The title of the course.
|
|
|
|
#COURSETRANSLIT:My Course, Translated!;
|
|
-- The title of the course, transliterated into english.
|
|
|
|
#REPEAT:YES;
|
|
-- If this is present, the course does not end.
|
|
-- Useful for endless & workout courses.
|
|
|
|
#LIVES:4;
|
|
-- The maximum(?) number of lives attainable in the course. Enabling this will
|
|
-- automatically force your course into an Oni course.
|
|
|
|
#BANNER:My Banner.png;
|
|
-- A banner for your course.
|
|
|
|
#BACKGROUND:My Background.png;
|
|
-- A background for your course. Currently only available in SM5 and sm-ssc.
|
|
|
|
#STYLE:SINGLE,VERSUS;
|
|
-- Denote which styles may be played on this course. This is useful for
|
|
-- cloning courses for doubles and single styles.
|
|
|
|
#METER:Beginner:3;
|
|
-- A custom-set meter for that course difficulty. You may set the difficulty
|
|
-- for Beginner, Easy, Medium, Hard, Challenge and Edit difficulties.
|
|
|
|
[[ Song Content ]]
|
|
-- Song Content makes up the entries in the course,
|
|
-- and also allows for timed modifiers.
|
|
|
|
-- Modifiers can be assigned in a variety of formats, the most effective three being the following:
|
|
|
|
1.) Repeated Modifier Block w/ Length:
|
|
#MODS:TIME:0.500:LEN:0.500:MODS:2x;
|
|
#MODS:TIME:1.500:LEN:0.500:MODS:0.5x;
|
|
|
|
2.) Nested Modifier Block w/ Length:
|
|
#MODS:
|
|
TIME:0.500:LEN:0.500:MODS:2x;
|
|
TIME:1.500:LEN:0.500:MODS:0.5x;
|
|
|
|
3.) Nested Modifier Block w/ Ends:
|
|
#MODS:
|
|
TIME:0.500:END:1.000:MODS:2x;
|
|
TIME:1.500:END:1.500:MODS:0.5x;
|
|
|
|
#GAINSECONDS:60.5;
|
|
-- The number of seconds gained before starting a song. This and #LIVES are
|
|
-- mutually exclusive: you can either have one, the other, or none: both
|
|
-- is not possible. This is meant to be used for Survival courses.
|
|
|
|
#SONG:*:Medium:2x;
|
|
-- #SONG can take quite a variety of parameters, of which may be useful to you
|
|
-- for testing or other purposes.
|
|
-- * is a wildcard item, meaning that StepMania will always pick a random song
|
|
-- for this part of the course.
|
|
-- You can also replace with BEST*,WORST*,GRADEBEST*, or GRADEWORST*, where *
|
|
-- is a number to retrive the first of each category above.
|
|
#SONG:BEST1:Medium:2x;
|
|
-- As well as that, you may also do Group Random, like such:
|
|
#SONG:Dance Dance Revolution 8th Mix/*:Medium:2x;
|
|
-- If the above is not applicable, StepMania will search for the song title as best it can, depending on what you give it:
|
|
#SONG:Xepher:Medium:2x;
|
|
-- Will simply search the title of the song.
|
|
#SONG:DDR Supernova/Xepher:Medium:2x;
|
|
-- Will search for the exact directory.
|
|
|
|
-- #SONG can also apply different effects on each entry in the course by adding
|
|
-- special modifiers to the modifiers segment:
|
|
#SONG:*:Medium:showcourse;
|
|
-- For example, forces the course to never be hidden, noshowcourse being the
|
|
-- reverse of such.
|
|
|
|
-- nodifficult also exists to disable a player from changing difficulties,
|
|
-- barring the player from making it easier or harder ( Gauntlets & Survivals
|
|
-- do not allow you to change difficulties ).
|
|
|
|
-- Finally, award*, where * is a number, allows you to control how many lives
|
|
-- the player gains from successfully completing a course in Oni mode.
|
|
|
|
|
|
|
|
#SONGSELECT:GROUP=Stepmania 5:BPMRANGE=120-160:Difficulty=Medium:MODS=2x;
|
|
-- #SONGSELECT is a new alternative to the #SONG tag, which will (hopefully)
|
|
-- be easier to use and understand. Instead of relying on values input in a
|
|
-- very specific and poorly-documented order, this tag is composed of
|
|
-- a series of PARAM=VALUE statements, separated by :'s.
|
|
|
|
-- The following parameters are available for selecting a song:
|
|
-- TITLE, GROUP, ARTIST, GENRE, DIFFICULTY, METER, BPMRANGE, DURATION, SORT
|
|
-- These can be used in any combination and order.
|
|
-- If none are specified, then a song and difficulty will be chosen completely at random.
|
|
-- If a combination is specified that results in no possible songs to select,
|
|
-- then that #SONGSELECT entry is skipped.
|
|
|
|
-- Parameter Desciptions:
|
|
-- TITLE= A list of one or more song titles, separated by commas.
|
|
-- Notes:
|
|
-- - The "title" here can be either the name of the song directory,
|
|
-- the #TITLE, or the #TITLETRANSLIT.
|
|
-- - Titles must be an *exact match*.
|
|
-- - Unlike the #SONG tag, this will not take into account group names.
|
|
-- If you want to specify a specific song from a specific group, use
|
|
-- this along with the GROUP parameter.
|
|
-- - Commas, and other control characters (`#`,`;`, `=`, and `:`) can be used,
|
|
-- but they must be escaped (like `\#`, `\,`, etc).
|
|
-- Example:
|
|
#SONGSELECT:TITLE=Goin' Under,Springtime;
|
|
#SONGSELECT:TITLE=thank u\, next;
|
|
|
|
-- GROUP= A list of one or more song groups, separated by commas.
|
|
-- Notes:
|
|
-- - The "group" refers to the directory name of the song group.
|
|
-- - Group names must be an *exact match*.
|
|
-- - Commas, and other control characters (`#`,`;`, `=`, and `:`) can be used,
|
|
-- but they must be escaped (like `\#`, `\,`, etc).
|
|
-- Example:
|
|
#SONGSELECT:GROUP=Stepmania 5,In The Groove;
|
|
|
|
-- ARTIST= A list of one or more artist names, separated by commas.
|
|
-- Notes:
|
|
-- - The "artist" refers to either the #ARTIST or #ARTISTTRANSLIT value
|
|
-- of the simfile.
|
|
-- - Commas, and other control characters (`#`,`;`, `=`, and `:`) can be used,
|
|
-- but they must be escaped (like `\#`, `\,`, etc).
|
|
-- Example:
|
|
#SONGSELECT:ARTIST=Kommisar,NegaRen;
|
|
|
|
-- GENRE= A list of one or more song genres, separated by commas.
|
|
-- Notes:
|
|
-- - The "genre" refers to the #GENRE tag of a song.
|
|
-- - Commas, and other control characters (`#`,`;`, `=`, and `:`) can be used,
|
|
-- but they must be escaped (like `\#`, `\,`, etc).
|
|
-- - Most songs don't actually have a #GENRE defined, which unfortunately
|
|
-- makes this parameter not terribly useful at this time.
|
|
-- Example:
|
|
#SONGSELECT:GENRE=J-Pop,Black Metal;
|
|
|
|
-- DIFFICULTY= A list of one or more difficulties, separated by commas.
|
|
-- Notes:
|
|
-- - There are a number of acceptable values for this, but for the sake
|
|
-- of consistency, please try to use:
|
|
-- Beginner,Easy,Medium,Hard,Challenge,Edit
|
|
-- (if you really want to use whacky value names, you can find the rest
|
|
-- defined in Diffiulty.cpp)
|
|
-- Example:
|
|
#SONGSELECT:DIFFICULTY=Medium,Hard;
|
|
|
|
-- METER= A minimum and maximum value of a song's difficulty meter,
|
|
-- separated by a dash `-`.
|
|
-- Notes:
|
|
-- - This is independent of the DIFFICULTY parameter, which can be used
|
|
-- along with METER to further refine a specific song hardness.
|
|
-- - If DIFFICULTY is not specified, then any difficulty may be picked from
|
|
-- a song that matches the given range.
|
|
-- - These values must be whole numbers.
|
|
-- - These values are inclusive, meaning that song with a meter that is exactly
|
|
-- the value of minimum or maximum can be chosen.
|
|
-- Example:
|
|
#SONGSELECT:METER=8-12;
|
|
|
|
-- BPMRANGE= A minimum and maximum value of a song's bpm,
|
|
-- separated by a dash `-`.
|
|
-- Notes:
|
|
-- - The "bpm" values refer to the displayed bpm value/range of a song.
|
|
-- This means that a song may be chosen if its #DISPLAYBPM matches the
|
|
given range, even though it's true bpm might not.
|
|
-- - These values should only whole numbers (no decimal places).
|
|
-- - If a song has a displayed bpm range, both the min and max values must
|
|
-- be within the specified range.
|
|
-- - This range is inclusive, meaning that a song with a bpm that is exactly
|
|
-- the value of the lower or upper range can also be chosen.
|
|
-- - This also means that if you want to choose songs of a very specific bpm,
|
|
-- like songs that are exactly 120 bpm, you can specify BPMRANGE=120-120
|
|
-- Example:
|
|
#SONGSELECT:BPMRANGE=120-150;
|
|
|
|
-- DURATION= A minimum and maximum value, in seconds, for the length of a song,
|
|
-- separated by a dash `-`.
|
|
-- Notes:
|
|
-- - The "duration" values refers to either the song file's actual length, or
|
|
-- The simfile's #MUSICLENGTH value, if specified.
|
|
-- - These values should only be whole numbers (no decimal places).
|
|
-- - This range is inclusive.
|
|
-- Example:
|
|
#SONGSELECT:DURATION=90-125;
|
|
|
|
-- SORT= A set of two values that specify a sort type and a number, separated
|
|
-- by a comma. For example, SORT=MostPlays,1 selects the #1 most played song on
|
|
-- the machine, SORT=LowestGrades,10 selects the song that you've gotten your 10th
|
|
-- worst score on.
|
|
-- One possible use for this would be to create a course to force you to play songs
|
|
-- from certain groups that you likely haven't played before, by combining this with
|
|
-- the GROUP parameter, eg "#SONGSELECT:GROUP=In the Groove:SORT=FewestPlays,1;"
|
|
--
|
|
-- Notes:
|
|
-- - Like DIFFICULTY, there are several acceptable values that are equivalent to each other.
|
|
-- The old style values are Best, Worst, GradeBest, or GradeWorst.
|
|
-- For the sake of consistency and clarity, please consider using:
|
|
-- MostPlays, FewestPlays, TopGrades, or LowestGrades.
|
|
-- - The number value can be between 1 and 500.
|
|
-- - As of right now, the results from using this parameter aren't exactly accurate.
|
|
-- I can't quite work out how/why it makes the choices that it does.
|
|
-- Example:
|
|
#SONGSELECT:SORT=MostPlays,4;
|
|
|
|
-- Besides the selection parameters, there are a few more parameters added to make sure that
|
|
-- this can be a complete replacement for the #SONG tag.
|
|
-- These parameters are:
|
|
-- MODS, GAINSECONDS, GAINLIVES
|
|
|
|
-- MODS= A list of modifiers that are applied to the entire song.
|
|
-- Notes:
|
|
-- - This does *NOT* replace the #MODS tag for specifying timed mods/attacks.
|
|
-- - At ths time, I don't actually know what all can be specified as a modifier.
|
|
|
|
-- GAINSECONDS= The number of seconds gained before starting a song.
|
|
-- This is exactly the same as if specifying the #GAINSECONDS tag.
|
|
|
|
-- GAINLIVES= The number of lives gained for completing this song.
|
|
-- This is equivalent to the 'award*' modifier for #SONG.
|
|
|
|
Finally, here's an example course:
|
|
|
|
#COURSE:My Awesome Course - The Revenge;
|
|
#METER:Medium:8;
|
|
|
|
#MODS:
|
|
TIME:1.00:END:50.00:MODS:C150;
|
|
#SONGSELECT:GROUP=Stepmania 5:MODS=Overhead;
|
|
#SONGSELECT:ARTIST=Kommisar:MODS=2x;
|
|
#SONGSELECT:GROUP=In The Groove:TITLE=Mouth;
|
|
#SONGSELECT:BPMRANGE=110-160:DIFFICULTY=Medium;
|