Files
itgmania212121/Docs/CourseFormat.txt
T

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;