<?xml version="1.0" encoding="UTF-8" ?>

<!-- Before checking the documentation in, make sure that it validates by
     going to http://tools.decisionsoft.com/schemaValidate/ and using
     Lua.xsd for the XML Schema and this file for the XML Instance. -->

<!-- Using Link:
     If you leave out the text (i.e., <Link ... />), it tries to output what
     you would want.

     To add a link to a function in the current class:
     <Link function='addx' /> -> Actor.addx()
     To add a link to a function in another class:
     <Link class='ActorFrame' function='propagate' /> -> ActorFrame.propagate()
     To add a link to a class:
     <Link class='ActorFrame' /> -> ActorFrame
     To add a link to a global function:
     <Link class='GLOBAL' function='Basename' /> -> Basename()
     To add a link to an Enum:
     <Link class='ENUM' function='CoinMode' /> -> CoinMode
  -->

<Documentation xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
<!-- Global functions -->
<GlobalFunctions>
	<Function name='AreStagePlayerModsForced' theme='_fallback' return='bool' arguments=''>
		[02 StageMods.lua]
	</Function>
	<Function name='AreStageSongModsForced' theme='_fallback' return='bool' arguments=''>
		[02 StageMods.lua]
	</Function>
	<Function name='assert' return='various' arguments='LuaReference v, string sAssertMessage'>
		Issues an error when <code>v</code> is <code>false</code> (or <code>nil</code>). Returns all arguments otherwise. <code>sAssertMessage</code> is an optional error message (the default is "assertion failed!").
	</Function>
	<Function name='Basename' return='string' arguments='string path'>
		Returns the base name of file path.
	</Function>
	<Function name='BoostColor' theme='_fallback' return='color' arguments='color c, float fBoost'>
		[02 Colors.lua]
	</Function>
	<Function name='Brightness' theme='_fallback' return='color' arguments='color c, float percent'>
		[03 HSV.lua]
	</Function>
	<Function name='Center1Player' theme='_fallback' return='bool' arguments=''>
		[03 ProductivityHelpers.lua] Returns <code>true</code> if Center 1P is being used.
	</Function>
	<Function name='CheckpointsTapsSeparateJudgment' theme='_fallback' return='bool' arguments=''>
		[03 Gameplay.lua]
	</Function>
	<Function name='clamp' return='float' arguments='float fValue, float fLow, float fHigh'>
		CLAMP is an all-female Japanese mangaka group that formed in the mid 1980s. Erm, I mean... Clamps <code>fValue</code> between <code>fLow</code> and <code>fHigh</code>.
	</Function>
	<Function name='CloseConnection' sm-ssc='true' return='void' arguments=''>
		Closes any connection to an online server.
	</Function>
	<Function name='collectgarbage' return='void' arguments='string opt, float arg'>
		A generic interface to Lua's garbage collector. Performs different functions based on the value of <code>opt</code>.
	</Function>
	<Function name='color' return='color' arguments='string color'>
		Returns a color from a string. <code>color</code> can be in hex (<code>"#FFFFFFFF"</code>) or 0..1 values (<code>"1.0,1.0,1.0,1.0"</code>), in RGBA order.
	</Function>
	<Function name='ComboContinue' theme='_fallback' return='TapNoteScore' arguments=''>
		[03 Gameplay.lua] Determines what TapNoteScore allows for continuing the combo.
	</Function>
	<Function name='ComboMaintain' theme='_fallback' return='TapNoteScore' arguments=''>
		[03 Gameplay.lua] Determines what TapNoteScore allows for maintaining the combo.
	</Function>
	<Function name='ComboPerRow' theme='_fallback' return='bool' arguments=''>
		[03 Gameplay.lua] Determines if combo should be per row (Jump = 1) or per column (Jump = 2).
	</Function>
	<Function name='ConnectToServer' return='bool' arguments='string sAddress'>
		Tries to connect to the server at <code>sAddress</code>.
	</Function>
	<Function name='DayOfMonth' return='int' arguments=''>
		Returns the current day of the month.
	</Function>
	<Function name='DayOfYear' return='int' arguments=''>
		Returns the current day of the year.
	</Function>
	<Function name='dofile' theme='_fallback' return='chunk' arguments='string sFilePath'>
		[01 base.lua] "Override Lua's dofile to use our <Link function="loadfile">loadfile</Link>."
	</Function>
	<Function name='FindValue' theme='_fallback' return='string' arguments='table tab, various value'>
		[02 Utilities.lua] Find a key in <code>tab</code> with the given <code>value</code>.
	</Function>
	<Function name='FindSelection' theme='_fallback' return='int' arguments='table list'>
		[02 Utilities.lua] Return the index of a true value in <code>list</code>.
	</Function>
	<Function name='FormatNumberAndSuffix' return='string' arguments='int num'>
		Returns the number passed to the function followed by its suffix (&quot;th&quot;, &quot;nd&quot;, and so on).
	</Function>
	<Function name='FormatPercentScore' return='string' arguments='float fPercentDancePoints'>
		Returns <code>fPercentDancePoints</code> formatted as a percentage.
	</Function>
	<Function name='GameCompatibleModes' theme='_fallback' return='string' arguments=''>
		[03 Gameplay.lua] Returns a list of valid styles for the current gametype.
	</Function>
	<Function name='GetCustomDifficulty' return='string' arguments='StepsType st, Difficulty d, CourseType ct'>
		Returns the corresponding CustomDifficulty string for a StepsType/Difficulty (/optional CourseType) combination.
	</Function>
	<Function name='getenv' theme='_fallback' return='various' arguments='string name'>
		[03 EnvUtils2.lua] Returns the value of <code>name</code> from the Env table.
	</Function>
	<Function name='GetExtraColorThreshold' theme='_fallback' return='int' arguments=''>
		[03 Gameplay.lua] Returns the number at which the Extra color should be used.
	</Function>
	<Function name='GetGradeFromPercent' return='Grade' arguments='float fPercent, bool bMerciful'>
		Returns a corresponding <Link class='ENUM' function='Grade' /> for the given percentage.
	</Function>
	<Function name='GetLifeDifficulty' return='int' arguments=''>
		Returns the current Life Difficulty.
	</Function>
	<Function name='GetOSName' sm-ssc='true' return='string' arguments=''>
		Returns a string representing the name of the operating system being used. (e.g. "Windows", "Linux", "Mac, "Unknown")
	</Function>
	<Function name='GetProTiming' theme='default' return='bool' arguments='PlayerNumber pn'>
		[03 ThemePrefs.lua] Returns <code>true</code> if player <code>pn</code> is using ProTiming.
	</Function>
	<Function name='GetRandomSongBackground' theme='_fallback' return='string' arguments=''>
		[02 Utilities.lua] Returns a path to a random song background.
	</Function>
	<Function name='GetServerName' sm-ssc='true' return='string' arguments=''>
		Returns the name of the currently connected server.
	</Function>
	<Function name='GetSongBackground' theme='_fallback' return='string' arguments=''>
		[02 Utilities.lua] Returns a path to the current songs background.
	</Function>
	<Function name='GetThemeAspectRatio' return='float' arguments=''>
		Returns the theme's aspect ratio.
	</Function>
	<Function name='GetUserPref' theme='_fallback' return='string' arguments='string name'>
		[03 UserPreferences2.lua] Themer-facing function for getting a user preference.
	</Function>
	<Function name='GetUserPrefB' theme='_fallback' return='bool' arguments='string name'>
		[03 UserPreferences2.lua] Themer-facing function for getting a user preference as a boolean.
	</Function>
	<Function name='GetUserPrefC' theme='_fallback' return='color' arguments='string name'>
		[03 UserPreferences2.lua] Themer-facing function for getting a user preference as a color.
	</Function>
	<Function name='GetUserPrefN' theme='_fallback' return='float' arguments='string name'>
		[03 UserPreferences2.lua] Themer-facing function for getting a user preference as a number.
	</Function>
	<Function name='Hour' return='int' arguments=''>
		Returns the current hour.
	</Function>
	<Function name='InitUserPrefs' theme='default' return='void' arguments=''>
		[03 ThemePrefs.lua] Initializes various user preferences.
	</Function>
	<Function name='IsArcade' theme="_fallback" return='bool' arguments=''>
		[03 ProductivityHelpers.lua] Returns <code>true</code> if the coin mode is not set to <Link class='ENUM' function='CoinMode'>CoinMode_Home</Link>.
	</Function>
	<Function name='IsEventMode' return='bool' arguments=''>
		Returns <code>true</code> if Event Mode is turned on.
	</Function>
	<Function name='IsFreePlay' theme="_fallback" return='bool' arguments=''>
		[03 ProductivityHelpers.lua] Returns <code>true</code> <Link function='IsArcade'>if Arcade</Link> and the coin mode is <Link class='ENUM' function='CoinMode'>CoinMode_Free</Link>.
	</Function>
	<Function name='IsHome' theme="_fallback" return='bool' arguments=''>
		[03 ProductivityHelpers.lua] Returns <code>true</code> if the coin mode is set to <Link class='ENUM' function='CoinMode'>CoinMode_Home</Link>.
	</Function>
	<Function name='IsNetConnected' return='bool' arguments=''>
		Returns <code>true</code> if connected to the Internet.
	</Function>
	<Function name='IsNetSMOnline' return='bool' arguments=''>
		Returns <code>true</code> if connected to StepMania Online.
	</Function>
	<Function name='IsSMOnlineLoggedIn' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if Player <code>pn</code> is logged on to a SMOnline server.
	</Function>
	<Function name='IsRoutine' theme='_fallback' return='bool' arguments=''>
		[02 Branches.lua] Returns <code>true</code> if Routine mode is being played.
	</Function>
	<Function name='IsUsingWideScreen' theme='_fallback' return='bool' arguments=''>
		[04 WidescreenHelpers.lua] Returns <code>true</code> if the aspect ratio is 16:10 (<code>1.6</code>) or higher.
	</Function>
	<Function name='ivalues' theme='_fallback' return='{various}' arguments='table t'>
		[01 base.lua] "Like ipairs(), but returns only values."
	</Function>
	<Function name='join' theme='_fallback' return='string' arguments='string delimiter, table list'>
		[02 Utilities.lua] Joins a table, splitting each item with <code>delimiter</code>, returning a string of the results.
	</Function>
	<Function name='LoadActor' return='ActorDef' arguments='string sPath, ...'>
		Returns an Actor definition for the actor at <code>sPath</code>. If <code>sPath</code> points to a Lua file, any additional arguments will be passed to that script.
	</Function>
	<Function name='LoadActorFunc' theme='_fallback' return='ActorDef' arguments='string path, int level'>
		[02 ActorDef.lua] Loads an actor template. This is the actual core of LoadActor.
	</Function>
	<Function name='LoadActorWithParams' theme='_fallback' return='void' arguments='string path, table params, ...'>
		[02 ActorDef.lua] Loads an actor with params.
	</Function>
	<Function name='loadfile' theme='_fallback' return='chunk' arguments='string sFilePath'>
		[01 base.lua] "Override Lua's loadfile to use <Link class="lua" function="ReadFile">lua.ReadFile</Link>."
	</Function>
	<Function name='LoadFallbackB' theme='_fallback' return='ActorDef' arguments=''>
		[02 ActorDef.lua] Load the fallback BGA for the element that is currently being loaded.
	</Function>
	<Function name='LoadFont' theme='_fallback' return='ActorDef' arguments='string a, string b'>
		[02 ActorDef.lua] Loads a font.
	</Function>
	<Function name='LoadSongBackground' theme='_fallback' return='Sprite' arguments=''>
		[02 Sprite.lua] Returns a Sprite with the current song's background.
	</Function>
	<Function name='mbstrlen' return='int' arguments='string sString'>
		Returns the length of the multi-byte character string <code>sString</code>.
	</Function>
	<Function name='Minute' return='int' arguments=''>
		Returns the current Minute.
	</Function>
	<Function name='MonthOfYear' return='int' arguments=''>
		Returns the current month of the year.
	</Function>
	<Function name='MonthToLocalizedString' return='string' arguments='Month m'>
		Returns Month <code>m</code> as a localized string.
	</Function>
	<Function name='MonthToString' return='string' arguments='Month m'>
		Returns Month <code>m</code> as a string.
	</Function>
	<Function name='pname' theme='_fallback' return='string' arguments='PlayerNumber pn'>
		[03 ProductivityHelpers.lua] Converts a PlayerNumber into a short string (e.g. "P1", "P2").
	</Function>
	<Function name='PositionPerPlayer' theme='_fallback' return='float' arguments='PlayerNumber pn, float p1val, float p2val'>
		[03 ProductivityHelpers.lua] Returns either <code>p1val</code> or <code>p2val</code> depending on <code>pn</code>.
	</Function>
	<Function name='print' theme='_fallback' return='void' arguments='string s'>
		[00 init.lua] 
	</Function>
	<Function name='PrintTable' theme='_fallback' return='void' arguments='table t'>
		[03 ThemePrefs.lua] Prints a table's contents to the log.
	</Function>
	<Function name='ProductID' return='string' arguments=''>
		Returns the product ID.
	</Function>
	<Function name='ProductVersion' return='string' arguments=''>
		Returns the product version.
	</Function>
	<Function name='ResolveRelativePath' theme='_fallback' return='string' arguments='string path, int level'>
		[02 ActorDef.lua]
	</Function>
	<Function name='ReadFile' theme='_fallback' return='string' arguments='string path'>
		[04 FileUtils.lua] Reads the file at <code>path</code> and returns its contents.
	</Function>
	<Function name='ReadPrefFromFile' theme='_fallback' return='string' arguments='string prefName'>
		[03 UserPreferences2.lua] (internal) Reads the specified user preference from its config file.
	</Function>
	<Function name='round' theme='_fallback' return='int' arguments='float val, int decimal'>
		[02 Utilities.lua] Round a number.
	</Function>
	<Function name='ScoreKeeperClass' theme='_fallback' return='string' arguments=''>
		[03 Gameplay.lua] Returns the primary ScoreKeeper class to use.
	</Function>
	<Function name='Second' return='int' arguments=''>
		Returns the current second.
	</Function>
	<Function name='SecondsToHHMMSS' sm-ssc='true' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds:Milliseconds format using two digits for each section.
	</Function>
	<Function name='SecondsToMSS' sm-ssc='true' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format using two digits for each section except Minutes (uses 1).
	</Function>
	<Function name='SecondsToMMSS' sm-ssc='true' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds format.
	</Function>
	<Function name='SecondsToMSSMsMs' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format.
	</Function>
	<Function name='SecondsToMMSSMsMs' sm-ssc='true' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format using two digits for each section.
	</Function>
	<Function name='SecondsToMMSSMsMsMs' sm-ssc='true' return='string' arguments='float fSecs'>
		Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format using two digits for each section except Milliseconds (uses 3).
	</Function>
	<Function name='SelectMusicOrCourse' theme='_fallback' return='string' arguments=''>
		[02 Branches.lua] Determines the correct music/course selection screen to use and returns it.
	</Function>
	<Function name='SelectProfileKeys' theme='_fallback' return='string' arguments=''>
		[03 Gameplay.lua] (soon to be deprecated) Returns a list of codes to use on ScreenSelectProfile.
	</Function>
	<Function name='setenv' theme='_fallback' return='various' arguments='string name, various value'>
		[03 EnvUtils2.lua] Sets the value of <code>name</code> to <code>value</code> in the Env table.
	</Function>
	<Function name='SetUserPref' theme='_fallback' return='bool' arguments='string name, string value'>
		[03 UserPreferences2.lua] Themer-facing function for setting a user preference.
	</Function>
	<Function name='ShowStandardDecoration' theme='_fallback' return='bool' arguments='string sMetricsName'>
		[02 ActorDef.lua] Returns <code>true</code> if a decoration should be shown on the current screen or not.
	</Function>
	<Function name='SpeedMods' theme='_fallback' return='LuaOptionRow' arguments=''>
		[03 CustomSpeedMods.lua] Returns a Lua option row with the custom speed mods defined in SpeedMods.txt.
	</Function>
	<Function name='split' theme='_fallback' return='table' arguments='string delimiter, string text'>
		[02 Utilities.lua] Splits a string at every occurence of <code>delimiter</code>, returning a table of the results.
	</Function>
	<Function name='StandardDecorationFromTable' theme='_fallback' return='Actor' arguments='string sMetricsName, table t'>
		[02 ActorDef.lua] 
	</Function>
	<Function name='StandardDecorationFromFile' theme='_fallback' return='Actor' arguments='string sMetricsName, string sFileName'>
		[02 ActorDef.lua] 
	</Function>
	<Function name='StandardDecorationFromFileOptional' theme='_fallback' return='Actor' arguments='string sMetricsName, string sFileName'>
		[02 ActorDef.lua] 
	</Function>
	<Function name='TableStringLookup' theme='_fallback' return='table' arguments='table t, string group'>
		[02 Utilities.lua] Look up each value in a table, returning a table with the resulting strings.
	</Function>
	<Function name='TextBannerAfterSet' theme='default' return='void' arguments=''>
		[02 TextBanner.lua] This function defines how the TextBanner is laid out.
	</Function>
	<Function name='tobool' theme='_fallback' return='bool' arguments='various v'>
		[03 ProductivityHelpers.lua] Converts a string or number to a bool.
	</Function>
	<Function name='ToEnumShortString' theme='_fallback' return='string' arguments='enum e'>
		[02 Enum.lua] Returns a string representing an enum starting from '_'. For example, passing <Link class='ENUM' function='PlayerNumber'>PlayerNumber_P1</Link> to this function will return <code>P1</code>.
	</Function>
	<Function name='Trace' theme='_fallback' return='void' arguments='string sString'>
		[00 init.lua] Alias for <Link class='lua' function='Trace' />.
	</Function>
	<Function name='URLEncode' sm-ssc='true' return='string' arguments='string sInput'>
		Returns a string with characters escaped for URLs. (e.g. a space becomes '%20')
	</Function>
	<Function name='Var' theme='_fallback' return='ThreadVariable' arguments=''>
		[01 base.lua] Alias for <Link class="lua" function="GetThreadVariable">lua.GetThreadVariable</Link>.
	</Function>
	<Function name='Warn' theme='_fallback' return='void' arguments='string sString'>
		[00 init.lua] Alias for <Link class='lua' function='Warn' />.
	</Function>
	<Function name='WideScale' theme='_fallback' return='float' arguments='float ar43, float ar169'>
		[04 WidescreenHelpers.lua] Depending on the screen width, scales between <code>ar43</code> (4:3; 640px) and <code>ar169</code> (16:9; 854px).
	</Function>
	<Function name='WrapInActorFrame' theme='_fallback' return='ActorFrame' arguments='table children'>
		[02 ActorDef.lua] Wraps the children in an ActorFrame.
	</Function>
	<Function name='WriteFile' theme='_fallback' return='bool' arguments='string path, string buf'>
		[04 FileUtils.lua] Writes <code>buf</code> to the file at <code>path</code>.
	</Function>
	<Function name='WritePrefToFile' theme='_fallback' return='bool' arguments='string prefName, various value'>
		[03 UserPreferences2.lua] (internal) Writes user preference <code>prefName</code> to its config file with <code>value</code> being <code>tostring</code>'d.
	</Function>
	<Function name='Year' return='int' arguments=''>
		Returns the current year.
	</Function>
	<!-- new sm-ssc additions here -->

	<!-- default theme preferences -->
	<Function name='OptionRowProTiming' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for ProTiming.
	</Function>
	<Function name='UserPrefAutoSetStyle' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for toggling AutoSetStyle.
	</Function>
	<Function name='UserPrefGameplayShowScore' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for displaying the score on ScreenGameplay.
	</Function>
	<Function name='UserPrefGameplayShowStepsDisplay' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for displaying the StepsDisplay on ScreenGameplay.
	</Function>
	<Function name='UserPrefGameplayLongFail' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for determining the fail length.
	</Function>
	<Function name='UserPrefNotePosition' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row for determining the receptor arrow position.
	</Function>
	<Function name='UserPrefShowLotsaOptions' theme='default' return='LuaOptionRow' arguments=''>
		[03 ThemePrefs.lua] Returns a Lua option row determining how deep the player options menu should go.
	</Function>
</GlobalFunctions>

<!-- Namespaces -->
<Namespaces>
<Namespace name='ActorUtil'>
	<Function name='IsRegisteredClass' return='bool' arguments='string sClassName'>
		Returns <code>true</code> if <code>sClassName</code> is a registered Class.
	</Function>
</Namespace>
<Namespace name='Enum'>
	<Description>
		Enumerated types are lookup tables associating a string to each numerical
		value for each <Link class='Enums'>Enum</Link>. For example,
		<code><Link class='ENUM' function='PlayerNumber' />[1]</code> would be the
		string <code>'PlayerNumber_P1'</code>.<br />
		The functions defined in the <code>Enum</code> namespace are valid member
		functions of every <Link class='Enums'>Enum</Link> where the first argument is
		omitted and the name of the <Link class='Enums'>Enum</Link> is used in place
		of <code>Enum</code>. Instead of
		<code><Link function='GetName'>Enum.GetName</Link>(
		<Link class='ENUM' function='PlayerNumber' /> )</code> or
		<code><Link function='Reverse'>Enum.Reverse</Link>( 
		<Link class='ENUM' function='PlayerNumber' /> )</code>, one can use
		<code><Link class='ENUM' function='PlayerNumber' />:<!--
		--><Link function='GetName'>GetName</Link>()</code> or
		<code><Link class='ENUM' function='PlayerNumber' />:<!--
		--><Link function='Reverse'>Reverse</Link>()</code>, respectively.
	</Description>
	<Function name='Compare' return='int' arguments='Enum e, string x, string y'>
		Both <code>x</code> and <code>y</code> need to be elements of the enumerated
		type <code>e</code>. Returns a value less than/greater than/equal to
		<code>0</code> corresponding to the numerical value of <code>x</code> being
		less than/greater than/equal to the numerical value of <code>y</code> as
		determined by
		<code><Link function='Reverse'>Enum.Reverse</Link>( e )</code>.
	</Function>
	<Function name='GetName' return='string' arguments='Enum e'>
		Returns the type of <code>e</code>. For example,
		<code>Enum.GetName( <Link class='ENUM' function='PlayerNumber' /> )</code>
		will return the string <code>'PlayerNumber'</code>.
	</Function>
	<Function name='Reverse' return='{int}' arguments='Enum e'>
		Returns a reverse lookup table for the enumerated type <code>e</code>.  For
		example: <br /><code>local r =
		Enum.Reverse( <Link class='ENUM' function='PlayerNumber'/> );<br />
		local n = r['PlayerNumber_P2'];</code><br />
		The value of <code>n</code> in this case would be <code>1</code> corresponding
		to the 0-based indexing using in C++ and not <code>2</code> as might be
		expected for the 1-based indexing used in Lua.
	</Function>
</Namespace>
<Namespace name='lua'>
	<Function name='Trace' return='void' arguments='string sString'>
		Writes <code>sString</code> to log.txt. Aliased by
		<Link class='GLOBAL' function='Trace' />.
	</Function>
	<Function name='Warn' return='void' arguments='string sString'>
		Writes <code>sString</code> to info.txt and log.txt as
		a warning. Aliased by <Link class='GLOBAL' function='Warn' />.
	</Function>
	<Function name='Flush' return='void' arguments='' >
		Flushes log files to disk.
	</Function>
</Namespace>
<Namespace name='RageFileUtil'>
	<Function name='CreateRageFile' return='RageFile' arguments=''>
		Creates a RageFile handle with which one can use the commands in <Link class='RageFile' />.
	</Function>
</Namespace>
<Namespace name='ScreenSystemLayerHelpers'>
	<Function name='GetCreditsMessage' return='string' arguments='PlayerNumber pn'>
		Gets the credits message for Player <code>pn</code>.
	</Function>
</Namespace>
<Namespace name='SongUtil'>
	<Function name='IsStepsPlayable' return='bool' arguments='Song so, Steps st'>
		Returns true if the song's steps (<code>st</code>) are playable.
	</Function>
	<Function name='IsStepsTypePlayable' return='bool' arguments='Song so, StepsType st'>
		Returns true if the song's StepsType (<code>st</code>) are playable.
	</Function>
</Namespace>
<Namespace name='TrailUtil'>
	<Function name='GetNumSongs' return ='float' arguments='Trail pTrail'>
		Returns the number of songs in a Trail.
	</Function>
	<Function name='GetTotalSeconds' return ='int' arguments='Trail pTrail'>
		Returns the Trail's total length in seconds.
	</Function>
</Namespace>
</Namespaces>

<!-- Classes -->
<Classes>
<Class name='Actor'>
	<Function name='GetParent' return='Actor' arguments=''>
		Returns the Actor's parent, or <code>nil</code> if it doesn't have one.
	</Function>
	<Function name='GetVisible' return='bool' arguments=''>
		Returns the Actor's visibility.
	</Function>
	<Function name='GetX' return='float' arguments=''>
		Returns the Actor's x position.
	</Function>
	<Function name='GetY' return='float' arguments=''>
		Returns the Actor's y position.
	</Function>
	<Function name='GetZ' return='float' arguments=''>
		Returns the Actor's z position.
	</Function>
	<Function name='GetZoom' return='float' arguments=''>
		Returns the Actor's zoom.
	</Function>
	<Function name='GetZoomX' return='float' arguments=''>
		Returns the Actor's X zoom.
	</Function>
	<Function name='GetZoomY' return='float' arguments=''>
		Returns the Actor's Y zoom.
	</Function>
	<Function name='GetZoomZ' return='float' arguments=''>
		Returns the Actor's Z zoom.
	</Function>
	<Function name='SetTextureFiltering' return='void' arguments='bool b'>
		Sets Texture Filtering for an Actor to <code>b</code>.
	</Function>
	<Function name='accelerate' return='void' arguments='float fRate'>
		Plays the commands that follow at an accelerated rate (<code>fRate</code> * <code>fRate</code>), where <code>fRate</code> is in seconds.
	</Function>
	<Function name='addrotationx' sm-ssc='true' return='void' arguments='float rot'>
		Adds <code>rot</code> to the Actor's current x rotation.
	</Function>
	<Function name='addrotationy' sm-ssc='true' return='void' arguments='float rot'>
		Adds <code>rot</code> to the Actor's current y rotation.
	</Function>
	<Function name='addrotationz' sm-ssc='true' return='void' arguments='float rot'>
		Adds <code>rot</code> to the Actor's current z rotation.
	</Function>
	<Function name='addx' return='void' arguments='float xPos'>
		Adds <code>xPos</code> to the Actor's current x position.
	</Function>
	<Function name='addy' return='void' arguments='float yPos'>
		Adds <code>yPos</code> to the Actor's current y position.
	</Function>
	<Function name='addz' return='void' arguments='float zPos'>
		Adds <code>zPos</code> to the Actor's current z position.
	</Function>
	<Function name='align' theme='_fallback' return='void' arguments='float h, float v'>
		[02 Actor.lua] Sets the alignment of an Actor, where <code>h</code> and <code>v</code> are in the range 0..1.
	</Function>
	<Function name='animate' return='void' arguments='bool b'>
		Sets whether or not the Actor should animate.
	</Function>
	<Function name='aux' return='void' arguments='float fAux'>
		Sets the Actor's aux value. (This can be a solution for coupling data with an Actor.)
	</Function>
	<Function name='backfacecull' return='void' arguments='bool b'>
		If <code>true</code>, cull the Actor's back faces. See also: <Link class='Actor' function='cullmode' />.
	</Function>
	<Function name='basealpha' return='void' arguments='float fAlpha'>
		Sets the Actor's base alpha to <code>fAlpha</code>, where <code>fAlpha</code> is in the range 0..1.
	</Function>
	<Function name='baserotationx' return='void' arguments='float rot'>
		Sets the Actor's base X rotation to <code>rot</code>.
	</Function>
	<Function name='baserotationy' return='void' arguments='float rot'>
		Sets the Actor's base Y rotation to <code>rot</code>.
	</Function>
	<Function name='baserotationz' return='void' arguments='float rot'>
		Sets the Actor's base Z rotation to <code>rot</code>.
	</Function>
	<Function name='basezoom' sm-ssc='true' return='void' arguments='float zoom'>
		Sets the Actor's base zoom to <code>zoom</code>.
	</Function>
	<Function name='basezoomx' return='void' arguments='float zoom'>
		Sets the Actor's base X zoom to <code>zoom</code>.
	</Function>
	<Function name='basezoomy' return='void' arguments='float zoom'>
		Sets the Actor's base Y zoom to <code>zoom</code>.
	</Function>
	<Function name='basezoomz' sm-ssc='true' return='void' arguments='float zoom'>
		Sets the Actor's base Z zoom to <code>zoom</code>.
	</Function>
	<Function name='blend' return='void' arguments='BlendMode mode'>
		Sets the Actor to use the specified blend mode.
	</Function>
	<Function name='bob' return='void' arguments=''>
		Makes the Actor bob up and down. Can use <Link function='effectmagnitude' /> to define different bobbing behavior.
	</Function>
	<Function name='bounce' return='void' arguments=''>
		Makes the Actor bounce, similar to bob but with one point acting as the ground. Can use <Link function='effectmagnitude' /> to define different bouncing behavior (with effectmagnitude values relating to x, y, and z movement).
	</Function>
	<Function name='bouncebegin' theme='_fallback' return='void' arguments='float time'>
		[02 Actor.lua]
	</Function>
	<Function name='bounceend' theme='_fallback' return='void' arguments='float time'>
		[02 Actor.lua]
	</Function>
	<Function name='Center' theme='_fallback' return='void' arguments=''>
		[02 Actor.lua] Centers an Actor.
	</Function>
	<Function name='cropbottom' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the bottom, where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cropleft' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the left, where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cropright' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the right, where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='croptop' return='void' arguments='float percent'>
		Crops <code>percent</code> of the Actor from the top, where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='cullmode' return='void' arguments='CullMode mode'>
		Sets the Actor's cull mode to <code>mode</code>.
	</Function>
	<Function name='decelerate' return='void' arguments='float fRate'>
		Plays the commands that follow at an decelerated rate (1 - (1-<code>fRate</code>) * (1-<code>fRate</code>)), where <code>fRate</code> is in seconds.
	</Function>
	<Function name='diffuse' return='void' arguments='color c'>
		Set the Actor's diffuse color to <code>c</code>.
	</Function>
	<Function name='diffusealpha' return='void' arguments='float fAlpha'>
		Sets the Actor's alpha level to <code>fAlpha</code>, where <code>fAlpha</code> is in the range 0..1.
	</Function>
	<Function name='diffusebottomedge' return='void' arguments=''>
		Sets the Actor's bottom edge color to <code>c</code>.
	</Function>
	<Function name='diffusecolor' return='void' arguments='color c'>
		Set the Actor's diffuse color to <code>c</code>, ignoring any alpha value in <code>c</code>.
	</Function>
	<Function name='diffuseleftedge' return='void' arguments='color c'>
		Sets the Actor's left edge color to <code>c</code>.
	</Function>
	<Function name='diffuselowerleft' return='void' arguments='color c'>
		Sets the Actor's lower left corner color to <code>c</code>.
	</Function>
	<Function name='diffuselowerright' return='void' arguments='color c'>
		Sets the Actor's lower right corner color to <code>c</code>.
	</Function>
	<Function name='diffuserightedge' return='void' arguments='color c'>
		Sets the Actor's right edge color to <code>c</code>.
	</Function>
	<Function name='diffusetopedge' return='void' arguments='color c'>
		Sets the Actor's top edge color to <code>c</code>.
	</Function>
	<Function name='diffuseupperleft' return='void' arguments='color c'>
		Sets the Actor's upper left corner color to <code>c</code>.
	</Function>
	<Function name='diffuseupperright' return='void' arguments='color c'>
		Sets the Actor's upper right corner color to <code>c</code>.
	</Function>
	<Function name='draworder' return='void' arguments='int iOrder'>
		Sets the Actor's draworder to <code>iOrder</code>, where larger values display first.
	</Function>
	<Function name='drop' theme='_fallback' return='void' arguments='float time'>
		[02 Actor.lua] (Added in sm-ssc)
	</Function>
	<Function name='ease' theme='_fallback' return='void' arguments='float time, float fEase'>
		[02 Actor.lua]
	</Function>
	<Function name='effectclock' return='void' arguments='string s'>
		Set the Actor's effect clock to <code>s</code>.
	</Function>
	<Function name='effectcolor1' return='void' arguments='color c'>
		Sets the first effect color to <code>c</code>.
	</Function>
	<Function name='effectcolor2' return='void' arguments='color c'>
		Sets the second effect color to <code>c</code>.
	</Function>
	<Function name='effectmagnitude' return='void' arguments='float fX, float fY, float fZ'>
		Set the Actor's effect magnitude in each direction to the given values.
	</Function>
	<Function name='effectoffset' return='void' arguments='float fTime'>
		Set the Actor's effect offset to <code>fTime</code>.
	</Function>
	<Function name='effectperiod' return='void' arguments='float fTime'>
		Set the Actor's effect period to <code>fTime</code>.
	</Function>
	<Function name='effecttiming' return='void' arguments='float fRampUp, float fAtHalf, float fRampDown, float fAtZero'>
		Set the Actor's effect timing.
	</Function>
	<Function name='fadebottom' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the bottom where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='fadeleft' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the left where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='faderight' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the right where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='fadetop' return='void' arguments='float percent'>
		Fades <code>percent</code> of the Actor from the top where <code>percent</code> is in the range 0..1.
	</Function>
	<Function name='finishtweening' return='void' arguments=''>
		Finishes up an Actor's tween immediately.
	</Function>
	<Function name='FullScreen' theme='_fallback' return='void' arguments=''>
		[02 Actor.lua] Stretches an Actor to fill the entire screen.
	</Function>
	<Function name='getaux' return='float' arguments=''>
		Returns the Actor's aux value.
	</Function>
	<Function name='GetBaseZoomX' return='float' arguments=''>
		Returns the Actor's base X zoom value.
	</Function>
	<Function name='GetBaseZoomY' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's base Y zoom value.
	</Function>
	<Function name='GetBaseZoomZ' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's base Z zoom value.
	</Function>
	<Function name='GetCommand' return='bool' arguments='string sCmdName'>
		Returns <code>true</code> if the Actor has a command named <code>sCmdName</code>.
	</Function>
	<Function name='GetDiffuse' sm-ssc='true' return='color' arguments=''>
		Returns the Actor's current diffuse color.
	</Function>
	<Function name='GetDiffuseAlpha' return='float' arguments=''>
		Returns the Actor's current diffusealpha.
	</Function>
	<Function name='GetEffectDelta' return='float' arguments=''>
		Returns the Actor's current effect delta.
	</Function>
	<Function name='geteffectmagnitude' return='float' arguments=''>
		Returns the Actor's current effect magnitude as three floats (not one; I hate Lua.xsd).
	</Function>
	<Function name='GetGlow' sm-ssc='true' return='color' arguments=''>
		Returns the Actor's current glow color.
	</Function>
	<Function name='GetHAlign' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's horizontal alignment as a number in the range 0..1.
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the Actor's name.
	</Function>
	<Function name='GetNumStates' return='int' arguments=''>
		Returns the number of states the Actor has.
	</Function>
	<Function name='GetHeight' return='float' arguments=''>
		Returns the Actor's current height.
	</Function>
	<Function name='GetRotationX' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's current X rotation.
	</Function>
	<Function name='GetRotationY' return='float' arguments=''>
		Returns the Actor's current Y rotation.
	</Function>
	<Function name='GetRotationZ' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's current Z rotation.
	</Function>
	<Function name='GetSecsIntoEffect' return='float' arguments=''>
		Returns the number of seconds into the currently running effect (e.g. diffuseshift, bob).
	</Function>
	<Function name='GetTweenTimeLeft' return='float' arguments=''>
		Returns how much time is remaining for the current tween.
	</Function>
	<Function name='GetVAlign' sm-ssc='true' return='float' arguments=''>
		Returns the Actor's vertical alignment as a number in the range 0..1.
	</Function>
	<Function name='GetWidth' return='float' arguments=''>
		Returns the Actor's current width.
	</Function>
	<Function name='GetZoomedHeight' return='float' arguments=''>
		Returns the zoomed height of an Actor.
	</Function>
	<Function name='GetZoomedWidth' return='float' arguments=''>
		Returns the zoomed width of an Actor.
	</Function>
	<Function name='glow' return='void' arguments='color c'>
		Sets the Actor's glow color.
	</Function>
	<Function name='glowramp' sm-ssc='true' return='void' arguments=''>
		<!-- oh shit how do I document this -aj -->
	</Function>
	<Function name='halign' return='void' arguments='float fAlign'>
		Set the fractional horizontal alignment of the Actor according to <code>fAlign</code> which should be a float in the range 0..1. An alignment of 0 is left aligned while an alignment of 1 is right aligned. See <Link function='horizalign' /> for the common case.
	</Function>
	<Function name='hibernate' return='void' arguments='float fTime'>
		Hides the Actor for the specified amount of time.
	</Function>
	<Function name='hidden' return='void' theme='_fallback' arguments='bool b'>
		[Deprecated] Compatibility alias for the hidden command, which was removed in sm-ssc. Use <Link function='visible' /> instead.
	</Function>
	<Function name='hide_if' theme='_fallback' return='void' arguments='bool b'>
		[02 Actor.lua] "Hide if <code>b</code> is <code>true</code>, but don't unhide if <code>b</code> is <code>false</code>."
	</Function>
	<Function name='horizalign' return='void' arguments='HorizAlign align'>
		Set the horizontal alignment of the Actor according to <code>align</code>. See <Link function='halign' /> for fractional alignment.
	</Function>
	<Function name='hurrytweening' return='void' arguments='float factor'>
		Hurries up an Actor's tweening by <code>factor</code>.
	</Function>
	<Function name='linear' return='void' arguments='float fRate'>
		Plays the commands that follow at a normal rate, where <code>fRate</code> is in seconds.
	</Function>
	<Function name='LyricCommand' theme='_fallback' return='void' arguments='string side'>
		[02 Lyrics.lua] Plays the lyric command for the specified <code>side</code> (<code>"Back"</code> or <code>"Front"</code>).
	</Function>
	<Function name='name' return='void' arguments='string sName'>
		Sets the Actor's name to <code>sName</code>.
	</Function>
	<Function name='pause' return='void' arguments=''>
		Stops the Actor's movement. (Usually used for Sprites or Models.)
	</Function>
	<Function name='play' return='void' arguments=''>
		Starts the Actor's movement. (Usually used for Sprites or Models.)
	</Function>
	<Function name='playcommand' return='void' arguments='string sCommandName'>
		Plays a command named <code>sCommandName</code>.
	</Function>
	<Function name='player' theme='_fallback' return='void' arguments='PlayerNumber p'>
		[02 Actor.lua] Sets the visibility of the Actor based on <code>p</code> being a human player.
	</Function>
	<Function name='pulse' return='void' arguments=''>
		Makes the Actor grow and shrink. Can use <Link function='effectmagnitude' /> to define different pulsing behavior.
	</Function>
	<Function name='queuecommand' return='void' arguments='string sCommandName'>
		Queues a command named <code>sCommandName</code> to be played.
	</Function>
	<Function name='queuemessage' return='void' arguments='string sMessageName'>
		Basically creates a command named <code>!sMessageName</code> (Note the ! at the beginning. The source code says this: "Hack: use "!" as a marker to broadcast a command, instead of playing a command, so we don't have to add yet another element to every tween state for this rarely-used command.")
	</Function>
	<Function name='rainbow' return='void' arguments=''>
		Makes the Actor change colors continually using colors of the rainbow.
	</Function>
	<Function name='rotationx' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the X axis to <code>fAlign</code>.
	</Function>
	<Function name='rotationy' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the Y axis to <code>fAlign</code>.
	</Function>
	<Function name='rotationz' return='void' arguments='float fRotation'>
		Set the Actor's rotation on the Z axis to <code>fAlign</code>.
	</Function>
	<Function name='scale_or_crop_alternative' theme="_fallback" return='void' arguments=''>
		[02 Actor.lua] An alternative version of <Link function='scale_or_crop_background' />.
	</Function>
	<Function name='scale_or_crop_background' theme="_fallback" return='void' arguments=''>
		[02 Actor.lua]
	</Function>
	<Function name='scaletocover' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		Scales the Actor to cover a rectangle defined by the four float arguments.
	</Function>
	<Function name='scaletofit' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		Scales the Actor to fit inside a rectangle defined by the four float arguments.
	</Function>
	<Function name='SetHeight' return='void' arguments='float height'>
		Sets the height of the Actor.
	</Function>
	<Function name='setsize' return='void' arguments='float width, float height'>
		Sets the size of the Actor.
	</Function>
	<Function name='SetSize' theme='_fallback' return='void' arguments='float width, float height'>
		[01 alias.lua] Alias for setsize.
	</Function>
	<Function name='setstate' return='void' arguments='int iNewState'>
		Sets a multi-framed Actor's state to <code>iNewState</code>.
	</Function>
	<Function name='SetWidth' return='void' arguments='float width'>
		Sets the width of the Actor.
	</Function>
	<Function name='shadowcolor' return='void' arguments='color c'>
		Sets the shadow's color to <code>c</code>.
	</Function>
	<Function name='shadowlength' return='void' arguments='float fLength'>
		Sets the Actor's shadow length to <code>fLength</code>.
	</Function>
	<Function name='shadowlengthx' return='void' arguments='float fLength'>
		Sets the Actor's horizontal shadow length to <code>fLength</code>.
	</Function>
	<Function name='shadowlengthy' return='void' arguments='float fLength'>
		Sets the Actor's vertical shadow length to <code>fLength</code>.
	</Function>
	<Function name='skewx' return='void' arguments='float fAmount'>
		Skews the Actor on the x axis by <code>fAmount</code>.
	</Function>
	<Function name='skewy' sm-ssc='true' return='void' arguments='float fAmount'>
		Skews the Actor on the y axis by <code>fAmount</code>.
	</Function>
	<Function name='sleep' return='void' arguments='float fSeconds'>
		Waits <code>fSeconds</code> before executing the next command.
	</Function>
	<Function name='smooth' theme='_fallback' return='void' arguments='float time'>
		[02 Actor.lua]
	</Function>
	<Function name='spin' return='void' arguments=''>
		Tells the Actor to spin. Can use <Link function='effectmagnitude' /> to define different spinning behavior.
	</Function>
	<Function name='stopeffect' return='void' arguments=''>
		Stops any effect the Actor has.
	</Function>
	<Function name='stretchto' return='void' arguments='float x1, float y1, float x2, float y2'>
		Stretches the Actor to a rectangle of a specific size.
	</Function>
	<Function name='valign' return='void' arguments='float fAlign'>
		Set the fractional vertical alignment of the Actor according to <code>fAlign</code> which should be a float in the range 0..1. An alignment of 0 is top aligned while an alignment of 1 is bottom aligned. See <Link function="vertalign" /> for the common case.
	</Function>
	<Function name='vertalign' return='void' arguments='VertAlign align'>
		Set the vertical alignment of the Actor according to <code>align</code>. See <Link function="valign" /> for fractional alignment.
	</Function>
	<Function name='vibrate' return='void' arguments=''>
		Makes the Actor vibrate violently. Can use <Link function='effectmagnitude' /> to define different vibration behavior.
	</Function>
	<Function name='visible' return='void' arguments='bool b'>
		Sets an Actor's visibility to b.
	</Function>
	<Function name='x' return='void' arguments='float xPos'>
		Set the x position of the Actor to <code>xPos</code>.
	</Function>
	<Function name='y' return='void' arguments='float yPos'>
		Set the y position of the Actor to <code>yPos</code>.
	</Function>
	<Function name='z' return='void' arguments='float zPos'>
		Set the z position of the Actor to <code>zPos</code>.
	</Function>
	<Function name='zoom' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> scale.
	</Function>
	<Function name='zoomto' return='void' arguments='float zoomX, float zoomY'>
		Zooms the Actor on both the X and Y axis using <code>zoomX</code> and <code>zoomY</code>.
	</Function>
	<Function name='zoomtoheight' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> height. See also: <Link function='zoomy' />.
	</Function>
	<Function name='zoomtowidth' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> width. See also: <Link function='zoomx' />.
	</Function>
	<Function name='zoomx' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> scale on the X axis.
	</Function>
	<Function name='zoomy' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> scale on the Y axis.
	</Function>
	<Function name='zoomz' return='void' arguments='float zoom'>
		Zooms the Actor to <code>zoom</code> scale on the Z axis.
	</Function>
	<!-- addons from scripts that come with sm-ssc (non-compat) -->
	<Function name='bezier' theme='_fallback' return='void' arguments=''>
		[02 Actor.lua]
	</Function>
	<Function name='CenterX' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Centers an Actor on the X axis. (equivalent to <code>x,SCREEN_CENTER_X</code>)
	</Function>
	<Function name='CenterY' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Centers an Actor on the y axis. (equivalent to <code>y,SCREEN_CENTER_Y</code>)
	</Function>
	<Function name='heartbeat' theme='_fallback' return='void' arguments='float fEffectPeriod'>
		[03 ProductivityHelpers.lua] A customized version of pulse that is more appealing for on-beat effects.
	</Function>
	<Function name='MaskDest' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Sets and Actor as a mask destination.
	</Function>
	<Function name='MaskSource' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Sets an Actor as a mask source. (Also clears zbuffer; other mask sources need to not clear the zbuffer)
	</Function>
	<Function name='Real' theme='_fallback' return='void' arguments='float f'>
		[03 ProductivityHelpers.lua] Make graphics their true size at any resolution.
	</Function>
	<Function name='RealInverse' theme='_fallback' return='void' arguments='float f'>
		[03 ProductivityHelpers.lua] Scale things back up after they have already been scaled down.
	</Function>
	<Function name='thump' theme='_fallback' return='void' arguments='float fEffectPeriod'>
		[03 ProductivityHelpers.lua] A customized version of pulse that is more appealing for on-beat effects.
	</Function>
	<Function name='xy' theme='_fallback' return='void' arguments='float actorX, float actorY'>
		[03 ProductivityHelpers.lua] Sets the x and y location of the Actor in one command.
	</Function>
</Class>
<Class name='ActorFrame'>
	<Function name='fov' return='void' arguments='float fFOV'>
		Sets the field of view for the ActorFrame.
	</Function>
	<Function name='GetChild' return='Actor' arguments='string sName'>
		Returns the child with a name of <code>sName</code>.
	</Function>
	<Function name='GetChildren' return='{Actor}' arguments=''>
		Returns a table of all the children in the ActorFrame.
	</Function>
	<Function name='GetDrawFunction' return='LuaReference' arguments=''>
		Gets the ActorFrame's Draw function.
	</Function>
	<Function name='GetNumChildren' return='int' arguments=''>
		Returns the number of children in the ActorFrame.
	</Function>
	<Function name='playcommandonchildren' return='void' arguments='string sCommandName'>
		Plays the <code>sCommandName</code> command on the ActorFrame's children.
	</Function>
	<Function name='playcommandonleaves' return='void' arguments='string sCommandName'>
		Plays the <code>sCommandName</code> command on the ActorFrame's leaves.
	</Function>
	<Function name='propagate' return='void' arguments='bool bPropagate'>
		Sets if the Actorframe should propagate commands to its children.
	</Function>
	<Function name='propagatecommand' theme='_fallback' return='void' arguments='LuaReference cmd'>
		[02 Actor.lua] Propagates a command to the ActorFrame's children.
	</Function>
	<Function name='RunCommandsOnChildren' return='void' arguments='LuaReference cmds'>
		Runs the commands in <code>cmds</code> on the ActorFrame's children.
	</Function>
	<Function name='runcommandsonleaves' return='void' arguments='LuaReference cmds'>
		Runs the commands in <code>cmds</code> on the ActorFrame's leaves.
	</Function>
	<Function name='SetAmbientLightColor' sm-ssc='true' return='void' arguments='Color c'>
		Sets the ActorFrame's ambient light color to <code>c</code>.
	</Function>
	<Function name='SetDiffuseLightColor' sm-ssc='true' return='void' arguments='Color c'>
		Sets the ActorFrame's diffuse light color to <code>c</code>.
	</Function>
	<Function name='SetDrawByZPosition' return='void' arguments='bool b'>
		Sets if the ActorFrame should draw by Z position.
	</Function>
	<Function name='SetDrawFunction' return='void' arguments='LuaReference DrawFunction'>
		Sets the ActorFrame's Draw function to the specified Lua function.
	</Function>
	<Function name='SetFOV' return='void' arguments='float fFOV'>
		Sets the field of view for the ActorFrame.
	</Function>
	<Function name='SetLightDirection' sm-ssc='true' return='void' arguments='float x, float y, float z'>
		Currently unimplemented since it does not handle errors correctly. Arguments must be passed in as a table.
	</Function>
	<Function name='SetSpecularLightColor' sm-ssc='true' return='void' arguments='Color c'>
		Sets the ActorFrame's specular light color to <code>c</code>.
	</Function>
	<Function name='SetUpdateFunction' return='void' arguments='LuaReference UpdateFunction'>
		Sets the ActorFrame's update function to the specified Lua function.
	</Function>
	<Function name='SetUpdateRate' return='void' arguments='float fRate'>
		Sets the update function's rate to <code>fRate</code>.
	</Function>
	<Function name='SortByDrawOrder' return='void' arguments=''>
		Tells the ActorFrame to sort by draw order.
	</Function>
	<Function name='vanishpoint' return='void' arguments='float fX, float fY'>
		Sets the vanishing point for the ActorFrame.
	</Function>
</Class>
<Class name='ActorMultiTexture'>
	<Function name='ClearTextures' return='void' arguments=''>
		Clears all the textures from the MultiTexture.
	</Function>
	<Function name='SetEffectMode' return='void' arguments='EffectMode em'>
		Sets the EffectMode on the MultiTexture.
	</Function>
	<Function name='SetTextureMode' return='void' arguments='int iIndex, TextureMode tm'>
		Sets a TextureMode on the specified index.
	</Function>
</Class>
<Class name='ActorProxy'>
	<Function name='GetTarget' return='Actor' arguments=''>
		Returns the target of the ActorProxy.
	</Function>
	<Function name='SetTarget' return='void' arguments='Actor a'>
		Sets the ActorProxy target to <code>a</code>.
	</Function>
</Class>
<Class name='ActorScroller'>
	<Function name='GetCurrentItem' sm-ssc='true' return='float' arguments=''>
		Returns the scroller's current item.
	</Function>
	<Function name='GetDestinationItem' sm-ssc='true' return='float' arguments=''>
		Returns the item the scroller's going to.
	</Function>
	<Function name='GetFullScrollLengthSeconds' sm-ssc='true' return='float' arguments=''>
		Returns how long it will take for the scroller to completely scroll through all its items.
	</Function>
	<Function name='GetNumItems' sm-ssc='true' return='int' arguments=''>
		Returns the number of items in the ActorScroller.
	</Function>
	<Function name='GetSecondsToDestination' renamed='true' return='float' arguments=''>
		Returns the number of seconds until the scroller reaches its destination.
	</Function>
	<Function name='getsecondtodestination' theme='_fallback' return='float' arguments=''>
		Compatibility alias for <Link function='GetSecondsToDestination' />.
	</Function>
	<Function name='PositionItems' return='void' arguments=''>
		Positions the scroller items.
	</Function>
	<Function name='ScrollThroughAllItems' renamed='true' return='void' arguments=''>
		Scrolls through all the items in the scroller.
	</Function>
	<Function name='scrollthroughallitems' theme='_fallback' return='void' arguments=''>
		Compatibility alias for <Link function='ScrollThroughAllItems' />.
	</Function>
	<Function name='ScrollWithPadding' renamed='true' return='void' arguments='float fItemPaddingStart, float fItemPaddingEnd'>
		Scrolls through all the items in the scroller with padding at the beginning and end.
	</Function>
	<Function name='scrollwithpadding' theme='_fallback' return='void' arguments='float fItemPaddingStart, float fItemPaddingEnd'>
		Compatibility alias for <Link function='ScrollWithPadding' />.
	</Function>
	<Function name='SetCurrentAndDestinationItem' return='void' arguments='float fItemIndex'>
		Sets the item the scroller should scroll to next and makes it the current item.
	</Function>
	<Function name='SetDestinationItem' return='void' arguments='float fItemIndex'>
		Sets the item the scroller should scroll to next.
	</Function>
	<Function name='SetFastCatchup' renamed='true' return='void' arguments='bool bOn'>
		Sets if the scroller should catch up fast.
	</Function>
	<Function name='setfastcatchup' theme='_fallback' return='void' arguments='bool bOn'>
		Compatibility alias for <Link function='SetFastCatchup' />.
	</Function>
	<Function name='SetLoop' return='void' arguments='bool bLoop'>
		Specifies if the scroller should loop or not.
	</Function>
	<Function name='SetMask' return='void' arguments='float fWidth, float fHeight'>
		Sets the scroller's mask to a Quad that is <code>fWidth</code> by <code>fHeight</code> pixels.
	</Function>
	<Function name='SetNumItemsToDraw' sm-ssc='true' return='void' arguments='float fNumItems'>
		Sets the scroller to draw <code>fNumItems</code> items.
	</Function>
	<Function name='SetNumSubdivisions' renamed='true' return='void' arguments='int iNumSubdivisions'>
		Sets the number of subdivisions in the scroller.
	</Function>
	<Function name='setnumsubdivisions' theme='_fallback' return='void' arguments='int iNumSubdivisions'>
		Compatibility alias for <Link function='SetNumSubdivisions' />.
	</Function>
	<Function name='SetPauseCountdownSeconds' return='void' arguments='float fSecs'>
		Sets the scroller's pause countdown to <code>fSecs</code>.
	</Function>
	<Function name='SetSecondsPauseBetweenItems' return='void' arguments='float fSeconds'>
		Sets the scroller's pause between items to <code>fSeconds</code>.
	</Function>
	<Function name='SetSecondsPerItem' renamed='true' return='void' arguments='float fSeconds'>
		Sets how many seconds the scroller should spend on each item.<br />
		A value of <code>0</code> means the scroller will not scroll.
	</Function>
	<Function name='setsecondsperitem' theme='_fallback' return='void' arguments='float fSeconds'>
		Compatibility alias for <Link function='SetSecondsPerItem' />.
	</Function>
	<Function name='SetTransformFromFunction' return='void' arguments='LuaReference ScrollerFunction'>
		Sets the scroller's transform function to the specified Lua function.
	</Function>
	<Function name='SetTransformFromHeight' return='void' arguments='float fItemHeight'>
		Sets the scroller's transform function from <code>fItemHeight</code>.
	</Function>
	<Function name='SetTransformFromWidth' return='void' arguments='float fItemWidth'>
		Sets the scroller's transform function from <code>fItemWidth</code>.
	</Function>
</Class>
<Class name='ActorSound'>
	<Description>
		This Actor represents a playable sound. There are two attributes that can be set on load.<br />
		* <code>SupportPan</code> - Let the sound pan from side to side.<br />
		* <code>SupportRateChanging</code> - Let the sound change rate and pitch.
	</Description>
	<Function name='get' return='RageSound' arguments=''>
		Returns the <Link class='RageSound' /> that can be played by this Actor.
	</Function>
	<Function name='load' return='void' arguments='string sPath'>
		Loads the sound at <code>sPath</code>.
	</Function>
	<Function name='pause' sm-ssc='true' return='void' arguments='bool bPause'>
		Pauses or unpauses the sound based on <code>bPause</code>.
	</Function>
	<Function name='play' return='void' arguments=''>
		Plays the sound.
	</Function>
	<Function name='playforplayer' theme='_fallback' return='void' arguments='PlayerNumber pn'>
		[02 Sound.lua] Plays the sound on the given player's side. You must set <code>SupportPan = true</code> on load.
	</Function>
	<Function name='stop' sm-ssc='true' return='void' arguments=''>
		Stops the sound.
	</Function>
</Class>
<Class name='AnnouncerManager'>
	<Function name='DoesAnnouncerExist' sm-ssc='true' return='bool' arguments='string sAnnonucer'>
		Returns true if Announcer <code>sAnnouncer</code> exists.
	</Function>
	<Function name='GetAnnouncerNames' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of installed announcers.
	</Function>
	<Function name='GetCurrentAnnouncer' sm-ssc='true' return='string' arguments=''>
		Returns the current announcer's name.
	</Function>
	<Function name='SetCurrentAnnouncer' sm-ssc='true' return='void' arguments='string sNewAnnouncer'>
		Sets the announcer to <code>sNewAnnouncer</code>.
	</Function>
</Class>
<Class name='Banner'>
	<Function name='GetScrolling' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Banner is currently scrolling.
	</Function>
	<Function name='GetPercentScrolling' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='LoadBackgroundFromUnlockEntry' return='void' arguments='UnlockEntry pUE'>
		Loads the background from an UnlockEntry.
	</Function>
	<Function name='LoadBannerFromUnlockEntry' return='void' arguments='UnlockEntry pUE'>
		Loads the banner from an UnlockEntry.
	</Function>
	<Function name='LoadCardFromCharacter' return='void' arguments='Character pCharacter'>
		Loads the card image from the specified Character.
	</Function>
	<Function name='LoadFromCachedBanner' return='void' arguments='string sPath'>
		
	</Function>
	<Function name='LoadFromCourse' return='void' arguments='Course c'>
		Loads a Banner from a specified Course.
	</Function>
	<Function name='LoadFromSong' return='void' arguments='Song s'>
		Loads a Banner from a specified Song.
	</Function>
	<Function name='LoadFromSongGroup' return='void' arguments='string s'>
		Loads a Banner from a specified Song Group.
	</Function>
	<Function name='LoadFromSortOrder' return='void' arguments='SortOrder so'>
		Loads a Banner from a specified SortOrder.
	</Function>
	<Function name='LoadIconFromCharacter' return='void' arguments='Character pCharacter'>
		Loads an icon from the specified Character.
	</Function>
	<Function name='scaletoclipped' return='void' arguments='float fWidth, float fHeight'>
		See <Link class='Sprite' function='scaletoclipped' />.
	</Function>
	<Function name='ScaleToClipped' return='void' arguments='float fWidth, float fHeight'>
		See <Link class='Sprite' function='scaletoclipped' />.
	</Function>
	<Function name='SetScrolling' sm-ssc='true' return='void' arguments='bool bScroll'>
		<!-- todo -->
	</Function>
</Class>
<Class name='BitmapText'>
	<Function name='AddAttribute' return='void' arguments='int iPos, Attribute attr'>
		Add the attribute <code>attr</code> to the string at position
		<code>iPos</code>.<br />
		The attribute is a table that must contain <code>Length</code>
		which specifies how many (multi-byte) characters the attribute
		is to apply. If <code>Length=-1</code>, then the attribute applies
		until another attribute overrides it.<br />
		If the table contains <code>Diffuse</code>, then the color value
		is applied to the range of text.<br />
		If the table contains <code>Diffuses</code>, then it should be
		an array of 4 colors which specify the diffuse color for the
		top left, top right, bottom left, and bottom right.<br />
		If the table contains <code>Glow</code>, then the color value
		is applied as a glow to the range of text.<br />
		Example:<br />
		<code>attr = { Length = 10; Diffuse = color("#AABBCC"); }</code>
	</Function>
	<Function name='ClearAttributes' return='void' arguments=''>
		Clear all attributes associated with the BitmapText.
	</Function>
	<Function name='DiffuseAndStroke' theme='_fallback' return='void' arguments='color diffuseColor, color strokeColor'>
		[03 ProductivityHelpers.lua] Sets the diffuse and stroke color of text in one command.
	</Function>
	<Function name='GetText' return='string' arguments=''>
		Returns the text that is currently set.
	</Function>
	<Function name='jitter' return='void' arguments='bool bJitter'>
		If <code>bJitter</code> is <code>true</code>, move each character of the string around by a small random amount.
	</Function>
	<Function name='maxheight' return='void' arguments='float fHeight'>
		Set the maximum height of the unzoomed text to <code>fHeight</code>. If <code>fHeight</code> is <code>0</code>, then there is no maximum height.
	</Function>
	<Function name='maxwidth' return='void' arguments='float hWidth'>
		Set the maximum width of the unzoomed text to <code>fWidth</code>. If <code>fWidth</code> is <code>0</code>, then there is no maximum width.
	</Function>
	<Function name='NoStroke' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Remove any stroke color.
	</Function>
	<Function name='PixelFont' theme='_fallback' return='void' arguments=''>
		[03 ProductivityHelpers.lua] Alias for setting <Link class='Actor' function='SetTextureFiltering' /> to <code>false</code>.
	</Function>
	<Function name='rainbowscroll' return='void' arguments='bool bRainbowScroll'>
		If <code>true</code>, set each character of the text in turn to the rainbow colors in the metrics <code>BitmapText::RainbowColor#</code>.
	</Function>
	<Function name='settext' return='void' arguments='string sText'>
		Set the text to <code>sText</code>. This clears all attributes.
	</Function>
	<Function name='settextf' theme='_fallback' return='void' arguments='string sFormat, ...'>
		[03 ProductivityHelpers.lua] Sets text using <code>string.format(sFormat, ...)</code>.
	</Function>
	<Function name='Stroke' theme='_fallback' return='void' arguments='color c'>
		[03 ProductivityHelpers.lua] Alias for <Link function='strokecolor' />.
	</Function>
	<Function name='strokecolor' return='void' arguments='color c'>
		Sets the stroke color to <code>c</code>.
	</Function>
	<Function name='textglowmode' sm-ssc='true' return='void' arguments='TextGlowMode tgm'>
		If the text is glowing, specify if just the stroke layer, just the inner layer, or both are affected by the glow.
	</Function>
	<Function name='uppercase' return='void' arguments='bool b'>
		If <code>true</code>, make all text uppercase.
	</Function>
	<Function name='vertspacing' return='void' arguments='int iSpacing'>
		Add <code>iSpacing</code> pixels of padding between lines of text.
	</Function>
	<Function name='wrapwidthpixels' return='void' arguments='int iWidth'>
		Wrap the unzoomed text at <code>iWidth</code> pixels. If you <Link class='Actor' function='zoom' /> or <Link class='Actor' function='zoomx' /> by <code>x</code> and you want the text wrapped at <code>width</code>, then you should use <code>wrapwidthpixels(width/x)</code>.
	</Function>
</Class>
<Class name='BPMDisplay'>
	<Function name='GetText' sm-ssc='true' return='string' arguments=''>
		Returns the text that is currently set at the exact moment you call it. This is likely only going to be useful in an Update command.
	</Function>
	<Function name='SetFromCourse' sm-ssc='true' return='void' arguments='Course c'>
		Sets the BPMDisplay from the specified Course.
	</Function>
	<Function name='SetFromGameState' return='void' arguments=''>
		Sets the BPMDisplay from the GameState.
	</Function>
	<Function name='SetFromSong' sm-ssc='true' return='void' arguments='Song s'>
		Sets the BPMDisplay from the specified Song.
	</Function>
</Class>
<Class name='Character'>
	<Function name='GetCardPath' return='string' arguments=''>
		Returns the path to the character's card graphic.
	</Function>
	<Function name='GetCharacterDir' sm-ssc='true' return='string' arguments=''>
		Returns this character's directory.
	</Function>
	<Function name='GetCharacterID' sm-ssc='true' return='string' arguments=''>
		Returns this character's ID.
	</Function>
	<Function name='GetDanceAnimationPath' sm-ssc='true' return='string' arguments=''>
		Returns the path of the dancing animation of this character.
	</Function>
	<Function name='GetDisplayName' sm-ssc='true' return='string' arguments=''>
		Returns the character's display name.
	</Function>
	<Function name='GetIconPath' return='string' arguments=''>
		Returns the path to the character's icon.
	</Function>
	<Function name='GetModelPath' sm-ssc='true' return='string' arguments=''>
		Returns the path of the model of this character.
	</Function>
	<Function name='GetRestAnimationPath' sm-ssc='true' return='string' arguments=''>
		Returns the path of the rest animation of this character.
	</Function>
	<Function name='GetSongSelectIconPath' return='string' arguments=''>
		Returns the path to the character's ScreenSelectMode icon.
	</Function>
	<Function name='GetStageIconPath' return='string' arguments=''>
		Returns the path to the character's ScreenStage icon.
	</Function>
	<Function name='GetWarmUpAnimationPath' sm-ssc='true' return='string' arguments=''>
		Returns the path of the warm-up animation of this character.
	</Function>
</Class>
<Class name='CharacterManager'>
	<Function name='GetAllCharacters' sm-ssc='true' return='{Character}' arguments=''>
		Returns a table of all characters installed.
	</Function>
	<Function name='GetCharacter' return='Character' arguments='string sID'>
		Return the <Link class='Character' /> corresponding to <code>sID</code>.
	</Function>
	<Function name='GetRandomCharacter' sm-ssc='true' return='Character' arguments=''>
		Returns a random character.
	</Function>
</Class>
<Class name='ComboGraph'>
	<Function name='Load' return='void' arguments='string sMetricsGroup'>
		Loads the ComboGraph commands from the Metrics in group <code>sMetricsGroup</code>.
	</Function>
	<Function name='Set' return='void' arguments='StageStats s, PlayerStageStats pss'>
		Sets the values of the ComboGraph using the specified StageStats and PlayerStageStats.
	</Function>
</Class>
<Class name='ControllerStateDisplay'>
	<Function name='LoadGameController' return='void' arguments='string sType, GameController gc'>
		Loads the ControllerStateDisplay from the specified GameController.
	</Function>
	<Function name='LoadMultiPlayer' return='void' arguments='string sType, MultiPlayer mp'>
		Loads the ControllerStateDisplay from the specified MultiPlayer.
	</Function>
</Class>
<Class name='Course'>
	<Function name='GetAllTrails' return='{Trail}' arguments=''>
		Returns a table of all the Trails in the Course.
	</Function>
	<Function name='GetBackgroundPath' sm-ssc='true' return='string' arguments=''>
		Returns the path to the Course's background.
	</Function>
	<Function name='GetBannerPath' return='string' arguments=''>
		Returns the path to the Course's banner.
	</Function>
	<Function name='GetCourseDir' sm-ssc='true' return='string' arguments=''>
		Returns the Course's directory.
	</Function>
	<Function name='GetCourseEntries' sm-ssc='true' return='{CourseEntry}' arguments=''>
		Returns a table of CourseEntry items.
	</Function>
	<Function name='GetCourseEntry' return='CourseEntry' arguments='int iIndex'>
		Gets the CourseEntry at <code>iIndex</code> from the Course.
	</Function>
	<Function name='GetCourseType' renamed='true' return='CourseType' arguments=''>
		Returns the Course's <Link class='ENUM' function='CourseType' />. (Returns CourseType in sm-ssc; integer in SM4)
	</Function>
	<Function name='GetDisplayFullTitle' return='string' arguments=''>
		Returns the full display title of the Course.
	</Function>
	<Function name='GetEstimatedNumStages' return='int' arguments=''>
		Returns the estimated number of stages for the Course.
	</Function>
	<Function name='GetGoalSeconds' return='float' arguments=''>
		Returns the goal seconds for the Course.
	</Function>
	<Function name='GetGroupName' return='string' arguments=''>
		Returns the Course's group name.
	</Function>
	<Function name='GetPlayMode' renamed='true' return='PlayMode' arguments=''>
		Returns the Course's <Link class='ENUM' function='PlayMode' />. (Returns PlayMode in sm-ssc; integer in SM4)
	</Function>
	<Function name='GetScripter' sm-ssc='true' return='string' arguments=''>
		Returns the name of the person who scripted the Course.
	</Function>
	<Function name='GetTotalSeconds' return='float' arguments='StepsType st'>
		Returns the total length of the Course in seconds.
	</Function>
	<Function name='GetTranslitFullTitle' return='string' arguments=''>
		Returns the full transliterated title of the Course.
	</Function>
	<Function name='HasBackground' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Course has a background.
	</Function>
	<Function name='HasBanner' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Course has a banner.
	</Function>
	<Function name='HasMods' return='bool' arguments=''>
		Returns <code>true</code> if the Course has modifiers.
	</Function>
	<Function name='HasTimedMods' return='bool' arguments=''>
		Returns <code>true</code> if the Course has timed modifiers.
	</Function>
	<Function name='IsAnEdit' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Course is an edit.
	</Function>
	<Function name='IsAutogen' return='bool' arguments=''>
		Returns <code>true</code> if the Course was automatically generated.
	</Function>
	<Function name='IsEndless' return='bool' arguments=''>
		Returns <code>true</code> if the Course is Endless.
	</Function>
	<Function name='IsNonstop' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Course is Nonstop.
	</Function>
	<Function name='IsOni' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Course is Oni.
	</Function>
</Class>
<Class name='CourseContentsList'>
	<Function name='SetFromGameState' return='void' arguments=''>
		Sets the CourseContentsList from the GameState.
	</Function>
</Class>
<Class name='CourseEntry'>
	<Function name='GetSong' return='Song' arguments=''>
		Returns the Song that this CourseEntry corresponds to.
	</Function>
	<!-- sm-ssc additions -->
	<Function name='GetGainLives' sm-ssc='true' return='int' arguments=''>
		Returns the number of lives gained after completing the song.
	</Function>
	<Function name='GetGainSeconds' sm-ssc='true' return='float' arguments=''>
		Returns the number of seconds gained after completing the song.
	</Function>
	<Function name='GetNormalModifiers' sm-ssc='true' return='string' arguments=''>
		Returns any stage (non-timed) modifiers.
	</Function>
	<Function name='GetNumModChanges' sm-ssc='true' return='int' arguments=''>
		Returns the number of modifier changes in this CourseEntry.
	</Function>
	<Function name='GetTextDescription' sm-ssc='true' return='string' arguments=''>
		Returns a comma-delimited string representing various facts about the CourseEntry.
	</Function>
	<Function name='IsFixedSong' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if this CourseEntry is a fixed song.
	</Function>
	<Function name='IsSecret' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if this CourseEntry is secret.
	</Function>
</Class>
<Class name='CryptManager'>
	<Function name='MD5File' sm-ssc='true' return='string' arguments='string sPath'>
		Returns the MD5 hash for the file at <code>sPath</code>.
	</Function>
	<Function name='MD5String' sm-ssc='true' return='string' arguments='string s'>
		Returns the MD5 hash for <code>s</code>.
	</Function>
	<Function name='SHA1String' sm-ssc='true' return='string' arguments='string s'>
		Returns the SHA-1 hash for <code>s</code>.
	</Function>
</Class>
<Class name='DifficultyIcon'>
	<Function name='SetFromDifficulty' return='void' arguments='Difficulty dc'>
		Sets the DifficultyIcon's state from the difficulty passed in.
	</Function>
	<Function name='SetFromSteps' return='void' arguments='Steps pSteps'>
		Sets the DifficultyIcon's Player to <code>pn</code>,
		then sets the DifficultyIcon's state from the difficulty of Steps <code>pSteps</code>
	</Function>
	<Function name='SetFromTrail' return='void' arguments='PlayerNumber pn, Trail pTrail'>
		Sets the DifficultyIcon's Player to <code>pn</code>,
		then sets the DifficultyIcon's state from the difficulty of Trail <code>pTrail</code>
	</Function>
	<Function name='SetPlayer' return='void' arguments='PlayerNumber pn'>
		Sets the DifficultyIcon's Player to <code>pn</code>.
	</Function>
	<Function name='Unset' return='void' arguments=''>
		Blanks the DifficultyIcon.
	</Function>
</Class>
<Class name='FadingBanner'>
	<Function name='GetLatestIndex' sm-ssc='true' return='int' arguments=''>
		Returns the index of the last banner loaded.
	</Function>
	<Function name='LoadFromCourse' return='void' arguments='Course c'>
		Loads a Banner from a specified Course.
	</Function>
	<Function name='LoadFromSong' return='void' arguments='Song s'>
		Loads a Banner from a specified Song.
	</Function>
	<Function name='LoadFromSongGroup' return='void' arguments='string s'>
		Loads a Banner from a specified Song Group.
	</Function>
</Class>
<Class name='StepsDisplayList'>
	<Function name='setfromgamestate' return='void' arguments=''>
		Sets the StepsDisplayList from the GameState.
	</Function>
</Class>
<Class name='Game'>
	<Function name='GetName' return='string' arguments=''>
		Returns the name of the game such as &quot;dance&quot; or &quot;pump&quot;.
	</Function>
</Class>
<Class name='GameCommand'>
	<Function name='GetCharacter' sm-ssc='true' return='Character' arguments=''>
		Returns any Character associated with this item (or <code>nil</code> if there isn't one).
	</Function>
	<Function name='GetCourse' sm-ssc='true' return='Course' arguments=''>
		Returns any Course that may have been set.
	</Function>
	<Function name='GetIndex' return='int' arguments=''>
		Returns the index of this item.
	</Function>
	<Function name='GetMultiPlayer' return='MultiPlayer' arguments=''>
		Returns any MultiPlayer that may have been set.
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the choice name.
	</Function>
	<Function name='GetProfileID' return='string' arguments=''>
		Returns any Profile ID that may have been set.
	</Function>
	<Function name='GetScreen' sm-ssc='true' return='string' arguments=''>
		Returns any screen that may have been set as a string.
	</Function>
	<Function name='GetSong' return='Song' arguments=''>
		Returns any Song that may have been set.
	</Function>
	<Function name='GetSongGroup' return='string' arguments=''>
		Returns the name of any song group that may have been set.
	</Function>
	<Function name='GetSteps' sm-ssc='true' return='Steps' arguments=''>
		Returns any Steps that may have been set.
	</Function>
	<Function name='GetStyle' return='Style' arguments=''>
		Returns any Style that may have been set.
	</Function>
	<Function name='GetText' return='string' arguments=''>
		Returns the display text.
	</Function>
	<Function name='GetTrail' sm-ssc='true' return='Trail' arguments=''>
		Returns any Trail that may have been set.
	</Function>
	<Function name='GetUrl' sm-ssc='true' return='string' arguments=''>
		Returns any Url that may have been set.
	</Function>
</Class>
<Class name='GameManager'>
	<Function name='GetFirstStepsTypeForGame' return='StepsType' arguments='Game game'>
		Return the first <Link class='StepsType' /> for the specified <code>game</code>.
	</Function>
	<Function name='IsGameEnabled' sm-ssc='true' return='bool' arguments='string s'>
		Returns <code>true</code> if any noteskins exist for the specified Game <code>s</code>.
	</Function>
	<Function name='StepsTypeToLocalizedString' return='string' arguments='StepsType st'>
		Return the localized string representation of <code>st</code>.
	</Function>
</Class>
<Class name='GameSoundManager'>
	<Function name='DimMusic' return='void' arguments='float fVolume, float fDuration'>
		Set the music volume to <code>fVolume</code> for <code>fDuration</code> seconds.
	</Function>
	<Function name='GetPlayerBalance' return='float' arguments='PlayerNumber pn'>
		<!-- XXX: Presumably, 0 is all the way to the left, and 1 is all the way
		          to the right. -->
		Return the sound balance for <code>pn</code>.
	</Function>
	<Function name='PlayAnnouncer' sm-ssc='true' return='void' arguments='string sPath'>
		Plays a sound from the current announcer.
	</Function>
	<Function name='PlayOnce' return='void' arguments='string sPath'>
		Play the sound at <code>sPath</code> one time.
	</Function>
</Class>
<Class name='GameState'>
	<Function name='AnyPlayerHasRankingFeats' return='bool' arguments=''>
		Returns <code>true</code> if any player has performed a feat worthy of ranking.
	</Function>
	<Function name='ApplyGameCommand' return='void' arguments='string sCommand, PlayerNumber pn'>
		The second argument is optional. Apply the GameCommand represented by <code>sCommand</code>
		for <code>pn</code>, if given. See <Link class='GameCommand' />.
	</Function>
	<Function name='EnoughCreditsToJoin' return='bool' arguments=''>
		Returns <code>true</code> if enough credits have been inserted to join.
	</Function>
	<Function name='Dopefish' sm-ssc='true' return='bool' arguments=''>
		fishpolk.mid; See also: Rise of the Triad
	</Function>
	<Function name='Env' return='table' arguments=''>
		Returns the environment table. See <Link class='GameCommand' />.
	</Function>
	<Function name='GetCharacter' sm-ssc='true' return='Character' arguments='PlayerNumber pn'>
		Returns the current <Link class='Character' /> for the specified <Link class='ENUM' function='PlayerNumber' />.
	</Function>
	<Function name='GetCoinMode' return='CoinMode'>
		Returns the current <Link class='ENUM' function='CoinMode' />.
	</Function>
	<Function name='GetCoins' return='int' arguments=''>
		Return the number of inserted but unused coins. This number is
		decremented when players join.
	</Function>
	<Function name='GetCoinsNeededToJoin' return='int' arguments=''>
		Return the number of coins needed to join based on the current coin and premium modes
		as well as the number of people joined, if that matters for the premium mode. See
		<Link function='GetCoinMode' /> and <Link function='GetPremium' />.
	</Function>
	<Function name='GetCourseSongIndex' return='int' arguments=''>
		The <Link class='Song' />s in a <Link class='Course' /> are numbered sequentially
		starting from 0. Return the number of the current <Link class='Song' />.
	</Function>
	<Function name='GetCurMusicSeconds' sm-ssc='true' return='float' arguments=''>
		Return the current number of seconds that have passed in the current song. This value can be negative.
	</Function>
	<Function name='GetCurrentCourse' return='Course' arguments=''>
		Return the current <Link class='Course' />.
	</Function>
	<Function name='GetCurrentGame' return='Game' arguments=''>
		Return the current <Link class='Game' />.
	</Function>
	<Function name='GetCurrentSong' return='Song' arguments=''>
		Return the current <Link class='Song' />.
	</Function>
	<Function name='GetCurrentStage' return='Stage' arguments=''>
		Return the current <Link class='Stage' />.
	</Function>
	<Function name='GetCurrentStageIndex' return='int' arguments=''>
		Returns the current stage index (starts at 0).
	</Function>
	<Function name='GetCurrentSteps' return='Steps' arguments='PlayerNumber pn'>
		Return the current <Link class='Steps' /> for the specified Player.
	</Function>
	<Function name='GetCurrentStepsCredits' return='multiple' arguments=''>
		Return a variable number of arguments based on the <Link class='Steps' /> being
		played by all players. For each distinct <Link class='Steps' /> being played by
		the players, in increasing <Link class='ENUM' function='PlayerNumber' /> order,
		the difficulty and description of the <Link class='Steps' /> is returned as strings.
		<br />For example,<br />
		<code>local credits = {GAMESTATE:GetCurrentStepsCredits()};</code><br />
		will make a table of the difficulties and descriptions.
	</Function>
	<Function name='GetCurrentStyle' return='Style' arguments=''>
		Return the current <Link class='Style' />.
	</Function>
	<Function name='GetCurrentTrail' return='Trail' arguments='PlayerNumber pn'>
		Return the current <Link class='Trail' /> for the specified player.
	</Function>
	<Function name='GetDefaultSongOptions' return='string' arguments=''>
		Return a string representation of the default song options.
	</Function>
	<Function name='GetEasiestStepsDifficulty' return='Difficulty' arguments=''>
		Return the easiest <Link class='ENUM' function='Difficulty' /> of the
		currently selected steps by all players. For example, if player 1 has
		selected Hard steps and player 2 has selected Medium steps, Medium will
		be returned.
	</Function>
	<Function name='GetEditCourseEntryIndex' return='int' arguments=''>
		<!-- XXX: What is the edit course entry index? -->
	</Function>
	<Function name='GetEditLocalProfile' return='Profile' arguments=''>
		Return the Edit Local <Link class='Profile' /> (during Profile editing)
		or <code>nil</code> if it does not exist.
	</Function>
	<Function name='GetEditLocalProfileID' return='string' arguments=''>
		Returns the ID of the Edit Local <Link class='Profile' /> (during Profile editing).
	</Function>
	<Function name='GetEditSourceSteps' return='Steps' arguments=''>
		Return the source <Link class='Steps' /> for the editor or <code>nil</code>
		if it does not exist.
	</Function>
	<Function name='GetGameSeed' return='int' arguments=''>
		Return the random seed for the game.
	</Function>
	<Function name='GetGameplayLeadIn' return='bool' arguments=''>
		Return <code>true</code> if the gameplay lead in is enabled. If
		<code>false</code>, gameplay begins immediately. <!-- XXX: I think. -->
	</Function>
	<Function name='GetHardestStepsDifficulty' sm-ssc='true' return='Difficulty' arguments=''>
		Return the hardest <Link class='ENUM' function='Difficulty' /> of the
		currently selected steps by all players. For example, if player 1 has
		selected Hard steps and player 2 has selected Medium steps, Hard will
		be returned.
	</Function>
	<Function name='GetHumanPlayers' return='{PlayerNumber}' arguments=''>
		Returns an array of <Link class='PlayerNumber' />s corresponding to Human players.
	</Function>
	<Function name='GetMasterPlayerNumber' return='PlayerNumber' arguments=''>
		Returns the master player number.
	</Function>
	<Function name='GetMultiplayer' return='bool' arguments=''>
		Returns <code>true</code> if the game is Multiplayer.
	</Function>
	<Function name='GetNumMultiplayerNoteFields' return='int' arguments=''>
		Returns the number of active multiplayer NoteFields.
	</Function>
	<Function name='GetNumPlayersEnabled' return='int' arguments=''>
		Returns the number of players enabled.
	</Function>
	<Function name='GetNumSidesJoined' return='int' arguments=''>
		Returns the number of sides joined.
	</Function>
	<Function name='GetNumStagesForCurrentSongAndStepsOrCourse' return='int' arguments=''>
		Returns the number of stages for the current Song and its Steps or the current Course.
	</Function>
	<Function name='GetNumStagesLeft' return='int' arguments='PlayerNumber pn'>
		Returns the number of stages left for player <code>pn</code>.
	</Function>
	<Function name='GetPlayerDisplayName' return='string' arguments='PlayerNumber pn'>
		Returns the display name for player <code>pn</code>.
	</Function>
	<Function name='GetPlayerState' return='PlayerState' arguments='PlayerNumber pn'>
		Returns the PlayerState for player <code>pn</code>.
	</Function>
	<Function name='GetPlayMode' return='PlayMode' arguments=''>
		Returns the current PlayMode.
	</Function>
	<Function name='GetPreferredDifficulty' return='Difficulty' arguments=''>
		Returns the preferred difficulty.
	</Function>
	<Function name='GetPreferredSong' return='Song' arguments=''>
		Returns the preferred song.
	</Function>
	<Function name='GetPreferredSongGroup' return='string' arguments=''>
		Returns the preferred song group.
	</Function>
	<Function name='GetPremium' return='Premium' arguments=''>
		Returns the current Premium.
	</Function>
	<Function name='GetSongBeat' return='float' arguments=''>
		<!-- XXX: Not exactly sure on this. -->
		Returns the current beat of the song.
	</Function>
	<Function name='GetSongBeatVisible' return='float' arguments=''>
		Returns the current visible beat of the song.
	</Function>
	<Function name='GetSongBPS' return='float' arguments=''>
		Returns the song's current beats per second.
	</Function>
	<Function name='GetSongDelay' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if a delay is active in the song.
	</Function>
	<Function name='GetSongFreeze' return='bool' arguments=''>
		Returns <code>true</code> if the song is currently in a freeze.
	</Function>
	<Function name='GetSongOptions' return='string' arguments='ModsLevel ml'>
		Returns the song options for the specified ModsLevel as a string.
	</Function>
	<Function name='GetSongOptionsString' return='string' arguments=''>
		Returns the song options as a string.
	</Function>
	<Function name='GetSongPercent' sm-ssc='true' return='float' arguments='float fBeat'>
		Returns how much of the song is through at beat <code>fBeat</code>.
	</Function>
	<Function name='GetSongPosition' sm-ssc='true' return='SongPosition' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetSortOrder' return='SortOrder' arguments=''>
		Returns the current SortOrder.
	</Function>
	<Function name='GetStageIndex' return='int' arguments=''>
		Returns the current stage index.
	</Function>
	<Function name='GetStageSeed' return='int' arguments=''>
		Return the random seed for the current stage.
	</Function>
	<Function name='GetWorkoutGoalComplete' return='bool' arguments=''>
		Returns <code>true</code> if the workout goal is complete.
	</Function>
	<Function name='HasEarnedExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if an extra stage was earned.
	</Function>
	<Function name='IsAnExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if this is an extra stage.
	</Function>
	<Function name='IsAnyHumanPlayerUsingMemoryCard' return='bool' arguments=''>
		Returns <code>true</code> if any human player is using a memory card.
	</Function>
	<Function name='IsBattleMode' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if playing in Battle mode.
	</Function>
	<Function name='IsCourseMode' return='bool' arguments=''>
		Returns <code>true</code> if playing in a Course mode.
	</Function>
	<Function name='IsDemonstration' return='bool' arguments=''>
		Returns <code>true</code> if in Demonstration mode.
	</Function>
	<Function name='IsDraw' return='bool' arguments=''>
		Returns <code>true</code> if the match was a draw.
	</Function>
	<Function name='IsEventMode' return='bool' arguments=''>
		Returns <code>true</code> if Event Mode is on, <Link class='GameState' function='SetTemporaryEventMode'>temporary</Link> or otherwise.
	</Function>
	<Function name='IsExtraStage' return='bool' arguments=''>
		Returns <code>true</code> if this is the first extra stage.
	</Function>
	<Function name='IsExtraStage2' return='bool' arguments=''>
		Returns <code>true</code> if this is the second extra stage.
	</Function>
	<Function name='IsGoalComplete' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> has completed the current Goal.
	</Function>
	<Function name='IsHumanPlayer' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> is human.
	</Function>
	<Function name='IsPlayerEnabled' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> is enabled.
	</Function>
	<Function name='IsSideJoined' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> has joined the game.
	</Function>
	<Function name='IsWinner' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> is the winner.
	</Function>
	<Function name='JoinPlayer' sm-ssc='true' return='void' arguments='PlayerNumber pn'>
		Joins player <code>pn</code>.
	</Function>
	<Function name='PlayerIsUsingModifier' return='bool' arguments='PlayerNumber pn, string sModifier'>
		Returns <code>true</code> if player <code>pn</code> is using modifier <code>sModifier</code>.
	</Function>
	<Function name='PlayersCanJoin' return='bool' arguments=''>
		Returns <code>true</code> if players can join the game.
	</Function>
	<Function name='Reset' return='void' arguments=''>
		Resets the GameState.
	</Function>
	<Function name='SaveLocalData' return='void' arguments=''>
		Saves the bookkeeping and machine profile data.
	</Function>
	<Function name='SetCharacter' sm-ssc='true' return='void' arguments='PlayerNumber pn, string sCharID'>
		Sets the current <Link class='Character' /> for the specified <Link class='ENUM' function='PlayerNumber' />.
	</Function>
	<Function name='SetCurrentCourse' return='void' arguments='Course course'>
		Sets the current Course to <code>course</code>.
	</Function>
	<Function name='SetCurrentSong' return='void' arguments='Song song'>
		Sets the current Song to <code>song</code>.
	</Function>
	<Function name='SetCurrentSteps' return='void' arguments='PlayerNumber pn, Steps steps'>
		Sets Player <code>pn</code>'s current Steps to <code>steps</code>.
	</Function>
	<Function name='SetCurrentTrail' return='void' arguments='Trail trail'>
		Sets the current Trail to <code>trail</code>.
	</Function>
	<Function name='SetJukeboxUsesModifiers' return='void' arguments='bool bUseMods'>
		Sets if the Jukebox should use modifiers.
	</Function>
	<Function name='SetMultiplayer' sm-ssc='true' return='void' arguments='bool b'>
		
	</Function>
	<Function name='SetNumMultiplayerNoteFields' return='void' arguments='int iFields'>
		Sets the number of multiplayer notefields to <code>iFields</code>
	</Function>
	<Function name='SetPreferredDifficulty' return='void' arguments='PlayerNumber pn, Difficulty dc'>
		Sets the preferred difficulty of Player <code>pn</code> to Difficulty <code>dc</code>.
	</Function>
	<Function name='SetPreferredSong' return='void' arguments='Song song'>
		Sets the preferred Song to <code>song</code>.
	</Function>
	<Function name='SetPreferredSongGroup' return='void' arguments='String sGroup'>
		Sets the preferred song group to <code>sGroup</code>.
	</Function>
	<Function name='SetSongOptions' return='void' arguments='ModsLevel m, string so'>
		Sets the Song Options from <code>so</code> using ModsLevel <code>m</code>.
	</Function>
	<Function name='SetTemporaryEventMode' return='void' arguments='bool bOn'>
		Turns temporary Event Mode on or off, depending on <code>bOn</code>.
	</Function>
	<Function name='ShowW1' return='void' arguments='bool bOn'>
		Determines if Judgment W1 should be shown based on <code>bOn</code>.
	</Function>
	<Function name='UnjoinPlayer' sm-ssc='true' return='void' arguments='PlayerNumber pn'>
		Unjoins player <code>pn</code>.
	</Function>
</Class>
<Class name='GradeDisplay'>
	<Function name='Load' return='void' arguments='string sMetricsGroup'>
		Loads the GradeDisplay commands from the Metrics in group <code>sMetricsGroup</code>.
	</Function>
	<Function name='SetGrade' return='void' arguments='Grade g'>
		Sets the GradeDisplay to show Grade <code>g</code>.
	</Function>
</Class>
<Class name='GraphDisplay'>
	<Function name='Load' return='void' arguments='string sMetricsGroup'>
		Loads the GraphDisplay commands from the Metrics in group <code>sMetricsGroup</code>.
	</Function>
	<Function name='Set' return='void' arguments='StageStats s, PlayerStageStats pss'>
		Sets the values of the GraphDisplay using the specified StageStats and PlayerStageStats.
	</Function>
</Class>
<Class name='GrooveRadar'>
	<Function name='SetEmpty' return='void' arguments='PlayerNumber pn'>
		Sets the GrooveRadar values for Player <code>pn</code> to empty.
	</Function>
	<Function name='SetFromRadarValues' return='void' arguments='PlayerNumber pn, RadarValues rv'>
		Sets the GrooveRadar values for Player <code>pn</code> from RadarValues <code>rv</code>
	</Function>
	<Function name='tweenoffscreen' return='void' arguments=''>
		Tweens the GrooveRadar off screen.
	</Function>
	<Function name='tweenonscreen' return='void' arguments=''>
		Tweens the GrooveRadar on screen.
	</Function>
</Class>
<Class name='HelpDisplay'>
	<Function name='gettips' return='{string}' arguments=''>
		Returns two tables representing the tips and alternate tips in the HelpDisplay.
	</Function>
	<Function name='SetSecsBetweenSwitches' return='void' arguments='float fSeconds'>
		Sets the seconds between switches of tips to <code>fSeconds</code>.
	</Function>
	<Function name='settips' return='void' arguments='string tips, string altTips'>
		Sets the HelpDisplay's tips using <code>tips</code> (and optionally <code>altTips</code>).
	</Function>
	<Function name='SetTipsColonSeparated' return='void' arguments='string sTips'>
		Sets the HelpDisplay's text from <code>sTips</code> using colons to separate new sections.
	</Function>
</Class>
<Class name='HighScore'>
	<Function name='GetDate' return='DateTime' arguments=''>
		Returns the date and time the high score was achieved.
	</Function>
	<Function name='GetGrade' return='Grade' arguments=''>
		Returns the Grade of this high score.
	</Function>
	<Function name='GetHoldNoteScore' sm-ssc='true' return='int' arguments='HoldNoteScore hns'>
		Return the number of HoldNoteScores that match <code>hns</code>.
	</Function>
	<Function name='GetModifiers' sm-ssc='true' return='string' arguments=''>
		Returns the modifiers used for this HighScore.
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the name associated with the high score.
	</Function>
	<Function name='GetPercentDP' return='float' arguments=''>
		Returns the percentage of dance points associated with the high score.
	</Function>
	<Function name='GetRadarValues' sm-ssc='true' return='RadarValues' arguments=''>
		Returns the RadarValues for this HighScore.
	</Function>
	<Function name='GetScore' return='int' arguments=''>
		Returns the score associated with the high score.
	</Function>
	<Function name='GetSurvivalSeconds' return='float' arguments=''>
		Returns the number of seconds survived associated with the high score.
	</Function>
	<Function name='GetTapNoteScore' sm-ssc='true' return='int' arguments='TapNoteScore tns'>
		Return the number of TapNoteScores that match <code>tns</code>.
	</Function>
	<Function name="IsFillInMarker" return='bool' arguments=''>
		Returns <code>true</code> if this high score's name uses a fill-in marker.
	</Function>
</Class>
<Class name='HighScoreList'>
	<Description>
		You can get a HighScoreList using <Link class='Profile' function='GetHighScoreList' />.
	</Description>
	<Function name='GetHighScores' return='{HighScore}' arguments=''>
		Returns a table of the high scores.
	</Function>
</Class>
<Class name='HoldJudgment'>
	<Function name='LoadFromMultiPlayer' return='void' arguments='MultiPlayer mp'>
		Loads the HoldJudgment for the specified MultiPlayer.
	</Function>
</Class>
<Class name='InputFilter'>
	<Function name='GetMouseWheel' sm-ssc='true' return='float' arguments=''>
	</Function>
	<Function name='GetMouseX' sm-ssc='true' return='float' arguments=''>
		Returns the X position of the mouse.
	</Function>
	<Function name='GetMouseY' sm-ssc='true' return='float' arguments=''>
		Returns the Y position of the mouse.
	</Function>
</Class>
<Class name='LifeMeter'>
	<Function name='GetLife' return='float' arguments=''>
		Returns the amount of life left in the LifeMeter as a float in the range 0..1.
	</Function>
	<Function name='IsFailing' return='bool' arguments=''>
		Returns <code>true</code> if failing.
	</Function>
	<Function name='IsHot' return='bool' arguments=''>
		Returns <code>true</code> if the LifeMeter is "hot".
	</Function>
	<Function name='IsInDanger' return='bool' arguments=''>
		Returns <code>true</code> if in danger.
	</Function>
</Class>
<Class name='LifeMeterBattery'>
	<Function name='GetLivesLeft' sm-ssc='true' return='int' arguments=''>
		Returns the number of lives remaining.
	</Function>
	<Function name='GetTotalLives' sm-ssc='true' return='int' arguments=''>
		Returns the number of total lives.
	</Function>
</Class>
<Class name='MemoryCardManager'>
	<Function name='GetCardLocked' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code>'s card is locked.
	</Function>
	<Function name='GetCardState' return='MemoryCardState' arguments='PlayerNumber pn'>
		Return the state for player <code>pn</code>.
	</Function>
	<Function name='GetName' sm-ssc='true' return='string' arguments='PlayerNumber pn'>
		Returns the name of the storage device.
	</Function>
	<Function name='IsNameAvailable' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code>'s name is available.
	</Function>
</Class>
<Class name='MenuTimer'>
	<Function name='GetSeconds' sm-ssc='true' return='float' arguments=''>
		Returns the current MenuTimer's value.
	</Function>
	<Function name='pause' return='void' arguments=''>
		Pauses the MenuTimer, stopping it from counting down.
	</Function>
	<Function name='setseconds' return='void' arguments='float fSeconds'>
		Sets the MenuTimer's value to <code>fSeconds</code>.
	</Function>
	<Function name='silent' return='void' arguments='bool bSilent'>
		Sets the MenuTimer's silent setting to <code>bSilent</code>.
	</Function>
	<Function name='stealth' return='void' arguments='bool bStealth'>
		Sets the MenuTimer's stealth setting to <code>bStealth</code>. If
		<code>true</code>, the timer will be invisible and silent.
	</Function>
	<Function name='stop' return='void'>
		Stops the MenuTimer by setting it to 0 and pausing.
	</Function>
</Class>
<Class name='MessageManager'>
	<Function name='Broadcast' return='void' arguments='string sMessage, table paramTable'>
		Broadcast the message to all listeners subscribed to <code>sMessage</code>. The
		second argument is an optional table of parameters. It may be omitted or explicitly
		set to <code>nil</code>.
	</Function>
</Class>
<Class name='MeterDisplay'>
	<Function name='SetStreamWidth' return='void' arguments='float fWidth'>
		Sets the width of the MeterDisplay to <code>fWidth</code>.
	</Function>
</Class>
<Class name='Model'>
	<Function name='loop' return='void' arguments='bool bLoop'>
		Controls if the model should loop or not.
	</Function>
	<Function name='playanimation' return='void' arguments='string sAniName, float fPlayRate'>
		Plays animation <code>sAniName</code> at <code>fPlayRate</code> speed (default 1.0).
	</Function>
	<Function name='position' return='void' arguments='float fSeconds'>
		Sets how far into the animation the model is.
	</Function>
	<Function name='rate' return='void' arguments='float fRate'>
		Sets the current animation's playback rate to <code>fRate</code>.
	</Function>
	<Function name='SetDefaultAnimation' return='void' arguments='string sAnimation, float fPlayRate'>
		Sets the model's default animation to <code>sAnimation</code> at <code>fPlayRate</code> speed (default 1.0).
	</Function>
	<!-- sm-ssc additions -->
	<Function name='GetNumStates' sm-ssc='true' return='int' arguments=''>
		Returns the number of states the Model has.
	</Function>
</Class>
<Class name='ModIconRow'>
	<Function name='Load' return='void' arguments='string sMetricsGroup, PlayerNumber pn'>
		Loads the ModIconRow of Player <code>pn</code> from the Metrics in group <code>sMetricsGroup</code>.
	</Function>
</Class>
<Class name='NoteSkinManager'>
	<Function name='GetMetricA' return='ActorCommand' arguments='string sElement, string sValue'>
		Returns a command from the specified element and value.
	</Function>
	<Function name='GetMetricAForNoteSkin' return='ActorCommand' arguments='string sElement, string sValue, string sNoteSkin'>
		Returns a command from the specified element and value using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<Function name='GetMetricB' return='bool' arguments='string sElement, string sValue'>
		Returns a bool from the specified element and value.
	</Function>
	<Function name='GetMetricBForNoteSkin' return='bool' arguments='string sElement, string sValue, string sNoteSkin'>
		Returns a bool from the specified element and value using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<Function name='GetMetricF' return='float' arguments='string sElement, string sValue'>
		Returns a float from the specified element and value.
	</Function>
	<Function name='GetMetricFForNoteSkin' return='float' arguments='string sElement, string sValue, string sNoteSkin'>
		Returns a float from the specified element and value using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<Function name='GetMetricI' return='int' arguments='string sElement, string sValue'>
		Returns a integer from the specified element and value.
	</Function>
	<Function name='GetMetricIForNoteSkin' return='int' arguments='string sElement, string sValue, string sNoteSkin'>
		Returns a integer from the specified element and value using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<Function name='GetPath' return='string' arguments='string sButton, string sElement'>
		Returns the path for the specified <code>sButton sElement</code>.
	</Function>
	<Function name='GetPathForNoteSkin' return='string' arguments='string sButton, string sElement, string sNoteSkin'>
		Returns the path for the specified <code>sButton sElement</code> using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<Function name='LoadActor' return='Actor' arguments='string sButton, string sElement'>
		Returns the actor for the specified <code>sButton sElement</code>.
	</Function>
	<Function name='LoadActorForNoteSkin' return='Actor' arguments='string sButton, string sElement, string sNoteSkin'>
		Returns the actor for the specified <code>sButton sElement</code> using NoteSkin <code>sNoteSkin</code>.
	</Function>
	<!-- sm-ssc additions -->
	<Function name='DoesNoteSkinExist' sm-ssc='true' return='bool' arguments='string strName'>
		Returns <code>true</code> if the <code>strName</code> noteskin exists in the current gametype.
	</Function>
	<Function name='GetNoteSkinNames' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of noteskin names for the current gametype.
	</Function>
</Class>
<Class name='OptionRow'>
	<Function name='FirstItemGoesDown' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the first item in the row goes down.
	</Function>
	<Function name='GetChoiceInRowWithFocus' sm-ssc='true' return='int' arguments='PlayerNumber pn'>
		Returns an index of the choice in the row that player <code>pn</code> is on.
	</Function>
	<Function name='GetLayoutType' sm-ssc='true' return='LayoutType' arguments=''>
		Returns the OptionRow's layout type.
	</Function>
	<Function name='GetName' sm-ssc='true' return='string' arguments=''>
		Returns the name of the OptionRow.
	</Function>
	<Function name='GetNumChoices' sm-ssc='true' return='int' arguments=''>
		Returns the number of choices in this OptionRow.
	</Function>
	<Function name='GetRowTitle' sm-ssc='true' return='string' arguments=''>
		Returns the row title string.
	</Function>
	<Function name='GetSelectType' sm-ssc='true' return='SelectType' arguments=''>
		Returns the OptionRow's select type.
	</Function>
	<Function name='HasFocus' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if this row is focused by player <code>pn</code>.
	</Function>
	<Function name='OneChoiceForAllPlayers' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if this row forces one choice on all players.
	</Function>
</Class>
<Class name='PaneDisplay'>
	<Function name='SetFromGameState' return='void' arguments=''>
		Sets the PaneDisplay from the GameState.
	</Function>
</Class>
<Class name='PercentageDisplay'>
	<Function name='LoadFromStats' return='void' arguments='PlayerState pPlayerState, PlayerStageStats pPlayerStageStats'>
		Sets the PercentageDisplay from the specified PlayerState and PlayerStageStats.
	</Function>
</Class>
<Class name='PlayerInfo'>
	<Description>(PlayerInfo is a part of ScreenGameplay.)</Description>
	<Function name='GetLifeMeter' return='LifeMeter' arguments='PlayerNumber pn'>
		Returns the <Link class='LifeMeter' /> of player <code>pn</code>.
	</Function>
	<Function name='GetStepsQueueWrapped' return='Steps' arguments='int index'>
		
	</Function>
</Class>
<Class name='PlayerOptions'>
	<Function name='GetAlternate' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetAttackMines' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetBeat' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBig' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetBlind' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBlink' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBMRize' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetBoomerang' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBoost' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBrake' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetBumpy' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetCentered' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetCMod' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetConfusion' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetCover' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetCross' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetDark' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetDizzy' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetDrunk' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetEcho' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetExpand' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetFlip' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetFloored' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetHidden' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetHiddenOffset' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetHoldRolls' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetInvert' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetLeft' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetLittle' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetMines' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetMini' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetMirror' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoFakes' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoHands' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoHolds' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoJumps' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoLifts' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoMines' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoQuads' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoRolls' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoStretch' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetNoteSkin' sm-ssc='true' return='string' arguments=''>
		Returns the current NoteSkin set in the PlayerOptions.
	</Function>
	<Function name='GetPassmark' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetPlanted' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetQuick' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetRandomAttacks' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetRandomSpeed' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetRandomVanish' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetReverse' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetReversePercentForColumn' sm-ssc='true' return='float' arguments='int col'>
		
	</Function>
	<Function name='GetRight' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetRoll' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetShuffle' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetSkew' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetSkippy' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetSoftShuffle' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetSongAttacks' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetSplit' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetStealth' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetStomp' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetSudden' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetSuddenOffset' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetSuperShuffle' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetTiny' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetTipsy' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetTornado' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetTwirl' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetTwister' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetWave' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetWide' sm-ssc='true' return='bool' arguments=''>
		
	</Function>
	<Function name='GetXMod' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='GetXMode' sm-ssc='true' return='float' arguments=''>
		
	</Function>
	<Function name='SetNoteSkin' sm-ssc='true' return='void' arguments='string noteskin'>
		Changes the player's noteskin to <code>noteskin</code>.
	</Function>
	<Function name='UsingReverse' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the player is using reverse. (equivalent to <code>GetReverse() == 1</code>)
	</Function>
</Class>
<Class name='PlayerStageStats'>
	<Function name='FullCombo' return='bool' arguments=''>
		Returns <code>true</code> if a full combo (TNS_W3 and up) was obtained.
	</Function>
	<Function name='FullComboOfScore' sm-ssc='true' return='bool' arguments='TapNoteScore tns'>
		Returns <code>true</code> if a full combo (<code>tns</code> and up) was obtained.
	</Function>
	<Function name='GetActualDancePoints' return='int' arguments=''>
		Returns the number of Dance Points obtained by the player.
	</Function>
	<Function name='GetAliveSeconds' sm-ssc='true' return='float' arguments=''>
		Returns how long the player has been alive.
	</Function>
	<Function name='GetBestFullComboTapNoteScore' return='TapNoteScore' arguments=''>
		Returns the best tap note score for a full combo.
	</Function>
	<Function name='GetCaloriesBurned' return='float' arguments=''>
		Returns the number of calories burned.
	</Function>
	<Function name='GetCurMaxScore' sm-ssc='true' return='int' arguments=''>
		Returns the current possible maximum score.
	</Function>
	<Function name='GetCurrentCombo' return='int' arguments=''>
		Returns the player's current combo.
	</Function>
	<Function name='GetCurrentLife' return='float' arguments=''>
		Returns the player's current life from 0..1.
	</Function>
	<Function name='GetCurrentMissCombo' sm-ssc='true' return='int' arguments=''>
		Returns the player's current miss combo.
	</Function>
	<Function name='GetCurrentPossibleDancePoints' sm-ssc='true' return='int' arguments=''>
		Returns the number of Dance Points possible to be obtained by the player.
	</Function>
	<Function name='GetCurrentScoreMultiplier' return='int' arguments=''>
		Returns the player's current score multiplier.
	</Function>
	<Function name='GetGrade' return='Grade' arguments=''>
		Returns the player's grade.
	</Function>
	<Function name='GetHoldNoteScores' return='int' arguments='HoldNoteScore hns'>
		Returns the number of judgments for a specified HoldNoteScore.
	</Function>
	<Function name='GetLessonScoreActual' return='int' arguments=''>
		Returns the player's actual score on the lesson.
	</Function>
	<Function name='GetLessonScoreNeeded' return='int' arguments=''>
		Returns the score needed to pass the lesson.
	</Function>
	<Function name='GetLifeRemainingSeconds' return='float' arguments=''>
		Returns the player's life remaining seconds.
	</Function>
	<Function name='GetMachineHighScoreIndex' return='int' arguments=''>
		Returns the machine high score index for this performance.
	</Function>
	<Function name='GetPeakComboAward' return='PeakComboAward' arguments=''>
		Returns the peak combo award for this performance.
	</Function>
	<Function name='GetPersonalHighScoreIndex' return='int' arguments=''>
		Returns the personal high score index for this performance.
	</Function>
	<Function name='GetPlayedSteps' return='{Steps}' arguments=''>
		Returns a table of played steps.
	</Function>
	<Function name='GetPercentageOfTaps' sm-ssc='true' return='float' arguments='TapNoteScore tns'>
		Gets the percentage of taps that were scored as <code>tns</code>.
	</Function>
	<Function name='GetPercentDancePoints' return='float' arguments=''>
		Returns the player's Dance Point percentage.
	</Function>
	<Function name='GetPossibleDancePoints' return='int' arguments=''>
		Returns the number of possible Dance Points.
	</Function>
	<Function name='GetPossibleSteps' return='{Steps}' arguments=''>
		Returns a table of possible steps.
	</Function>
	<Function name='GetRadarActual' sm-ssc='true' return='RadarValues' arguments=''>
		Returns a RadarValues object representing the player's actual performance.
	</Function>
	<Function name='GetRadarPossible' sm-ssc='true' return='RadarValues' arguments=''>
		Returns a RadarValues object representing the total values for the song.
	</Function>
	<Function name='GetScore' return='int' arguments=''>
		Returns the score.
	</Function>
	<Function name='GetStageAward' return='StageAward' arguments=''>
		Returns the stage award for this performance.
	</Function>
	<Function name='GetSurvivalSeconds' return='float' arguments=''>
		Returns how long the player survived in seconds.
	</Function>
	<Function name='GetTapNoteScores' return='int' arguments='TapNoteScore tns'>
		Returns the number of judgments for a specified TapNoteScore.
	</Function>
	<!-- removed:
	<Function name='IsFullComboW1' renamed='true' return='bool' arguments=''>
		[01 compat.lua] Returns <code>true</code> if the player got a full combo of all W1s.
	</Function>
	<Function name='IsFullComboW2' renamed='true' return='bool' arguments=''>
		[01 compat.lua] Returns <code>true</code> if the player got a full combo of all W2s.
	</Function>
	<Function name='IsFullComboW3' renamed='true' return='bool' arguments=''>
		[01 compat.lua] Returns <code>true</code> if the player got a full combo of all W3s.
	</Function>
	<Function name='IsFullComboW4' renamed='true' return='bool' arguments=''>
		[01 compat.lua] Returns <code>true</code> if the player got a full combo of all W4s.
	</Function>
	-->
	<Function name='MaxCombo' return='int' arguments=''>
		Returns the max combo for this performance.
	</Function>
	<Function name='IsDisqualified' return='bool' arguments=''>
		Returns <code>true</code> if the player was disqualified from ranking.
	</Function>
	<Function name='SetCurMaxScore' sm-ssc='true' return='int' arguments=''>
		Sets the current possible maximum score.
	</Function>
	<Function name='SetScore' sm-ssc='true' return='void' arguments='int iScore'>
		Sets the Player's score to <code>iScore</code>.
	</Function>
</Class>
<Class name='PlayerState'>
	<Function name='GetCurrentPlayerOptions' sm-ssc='true' return='PlayerOptions' arguments='' >
		Returns the current PlayerOptions for this PlayerState.
	</Function>
	<Function name='GetHealthState' sm-ssc='true' return='HealthState' arguments=''>
		Returns the HealthState for this PlayerState.
	</Function>
	<Function name='GetMultiPlayerNumber' sm-ssc='true' return='MultiPlayer' arguments=''>
		Returns the multiplayer number for this PlayerState.
	</Function>
	<Function name='GetPlayerController' sm-ssc='true' return='PlayerController' arguments=''>
		Returns the PlayerController for this PlayerState.
	</Function>
	<Function name='GetPlayerNumber' return='PlayerNumber' arguments=''>
		Returns the player number for this PlayerState.
	</Function>
	<Function name='GetPlayerOptions' renamed='true' return='PlayerOptions' arguments='ModsLevel ml'>
		Returns a PlayerOptions object for the specified ModsLevel.
	</Function>
	<Function name='GetPlayerOptionsString' sm-ssc='true' return='string' arguments='ModsLevel ml'>
		Returns a string of player options for the specified ModsLevel. (was GetPlayerOptions in v1.2.2 and prior)
	</Function>
	<Function name='GetPlayerOptionsArray' return='{string}' arguments='ModsLevel ml'>
		Returns a table of strings, containing the player options for the specified ModsLevel.
	</Function>
	<Function name='GetSongPosition' sm-ssc='true' return='SongPosition' arguments=''>
		Returns the SongPosition for this PlayerState.
	</Function>
	<Function name='SetPlayerOptions' return='string' arguments='ModsLevel ml, string sPlayerOptions'>
		Sets the player options to <code>sPlayerOptions</code> for the specified ModsLevel.
	</Function>
</Class>
<Class name='PrefsManager'>
	<Function name='GetPreference' return='various' arguments='string sPreference'>
		Return the value of the preference <code>sPreference</code>.
	</Function>
	<Function name='PreferenceExists' sm-ssc='true' return='bool' arguments='string sPreference'>
		Return true if preference <code>sPreference</code> exists.
	</Function>
	<Function name='SetPreference' return='void' arguments='string sPreference, various value'>
		Set the value of the preference <code>sPreference</code> to <code>value</code>.
	</Function>
	<Function name='SetPreferenceToDefault' return='void' arguments='string sPreference'>
		Reset preference <code>sPreference</code> to the default value.
	</Function>
</Class>
<Class name='Profile'>
	<Function name='GetCaloriesBurnedToday' return='float' arguments=''>
		Returns the number of calories burned during the current day.
	</Function>
	<Function name='GetCharacter' return='Character' arguments=''>
		Returns the Character being used by this profile.
	</Function>
	<Function name='GetCoursesActual' return='float' arguments='StepsType st, Difficulty d'>
		Returns a composite of your high scores over courses with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetCoursesPercentComplete' return='float' arguments='StepsType st, Difficulty d'>
		Returns the percentage of courses that you've completed with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetCoursesPossible' return='float' arguments='StepsType st, Difficulty d'>
		Returns the possible score of courses with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetDisplayName' return='string' arguments=''>
		Returns the profile's display name.
	</Function>
	<Function name='GetDisplayTotalCaloriesBurned' return='string' arguments=''>
		Return the number of calories burned as a string.
	</Function>
	<Function name='GetGoalCalories' return='int' arguments=''>
		Returns the number of calories needed to reach the goal.
	</Function>
	<Function name='GetGoalSeconds' return='int' arguments=''>
		Returns the number of seconds needed to reach the goal.
	</Function>
	<Function name='GetGoalType' return='GoalType' arguments=''>
		Returns the current goal type.
	</Function>
	<Function name='GetHighScoreList' return='HighScoreList' arguments='Song s, Steps st'>
		Gets the profile's HighScoreList for a specified Song and Steps. (Alternate arguments for Courses: <code>Course c, Trail t</code>)
	</Function>
	<Function name='GetNumToasties' return='int' arguments=''>
		Returns the number of Toasties gotten using the specified profile.
	</Function>
	<Function name='GetMostPopularCourse' return='Course' arguments=''>
		Returns the profile's most popular course.
	</Function>
	<Function name='GetMostPopularSong' return='Song' arguments=''>
		Returns the profile's most popular song.
	</Function>
	<Function name='GetNumTotalSongsPlayed' return='int' arguments=''>
		Returns the total number of songs played with the profile.
	</Function>
	<Function name='GetSongNumTimesPlayed' return='int' arguments='Song s'>
		Returns the number of times song <code>s</code> has been played with the profile.
	</Function>
	<Function name='GetSongsActual' return='float' arguments='StepsType st, Difficulty d'>
		Returns a composite of your high scores over songs with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetSongsAndCoursesPercentCompleteAllDifficulties' return='float' arguments='StepsType st'>
		Returns the percent complete for all songs and courses for the specified StepsType <code>st</code>.
	</Function>
	<Function name='GetSongsPercentComplete' return='float' arguments='StepsType st, Difficulty d'>
		Returns the percentage of songs that you've completed with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetSongsPossible' return='float' arguments='StepsType st, Difficulty d'>
		Returns the possible score of songs with the specified StepsType and Difficulty.
	</Function>
	<Function name='GetTotalCaloriesBurned' return='float' arguments=''>
		Return the total number of calories burned.
	</Function>
	<Function name='GetTotalHands' return='int' arguments=''>
		Returns the number of Hands stepped on.
	</Function>
	<Function name='GetTotalHolds' return='int' arguments=''>
		Returns the number of successful Holds.
	</Function>
	<Function name='GetTotalJumps' return='int' arguments=''>
		Returns the number of Jumps stepped on.
	</Function>
	<Function name='GetTotalLifts' sm-ssc='true' return='int' arguments=''>
		Returns the number of successful Lifts.
	</Function>
	<Function name='GetTotalMines' return='int' arguments=''>
		Returns the number of Mines stepped on.
	</Function>
	<Function name='GetTotalNumSongsPlayed' return='int' arguments=''>
		Returns the total number of songs played with the profile.
	</Function>
	<Function name='GetTotalRolls' return='int' arguments=''>
		Returns the number of successful Rolls.
	</Function>
	<Function name='GetTotalStepsWithTopGrade' return='int' arguments='StepsType st, Difficulty d, Grade g'>
		Returns the number of steps with the specified StepsType and Difficulty that you've scored a certain Grade <code>g</code> on.
	</Function>
	<Function name='GetTotalTapsAndHolds' return='int' arguments=''>
		Returns the number of Taps and successful Holds.
	</Function>
	<Function name='GetTotalTrailsWithTopGrade' return='int' arguments='StepsType st, Difficulty d, Grade g'>
		Returns the number of trails with the specified StepsType and Difficulty that you've scored a certain Grade <code>g</code> on.
	</Function>
	<Function name='GetWeightPounds' return='int' arguments=''>
		Returns how much the player weighs.
	</Function>
	<Function name='HasPassedAnyStepsInSong' return='bool' arguments='Song s'>
		Returns <code>true</code> if the player has passed any steps in the specified Song <code>s</code>.
	</Function>
	<Function name='IsCodeUnlocked' return='bool' arguments='string sUnlockEntryID'>
		Returns <code>true</code> if the specified code <code>sUnlockEntryID</code> is unlocked.
	</Function>
	<Function name='SetCharacter' sm-ssc='true' return='void' arguments='string sCharID'>
		Sets the current <Link class='Character' /> for the Profile.
	</Function>
	<Function name='SetGoalCalories' return='void' arguments='int iCals'>
		Sets the goal to <code>iCals</code> calories.
	</Function>
	<Function name='SetGoalSeconds' return='void' arguments='int iSecs'>
		Sets the goal to <code>iSecs</code> seconds.
	</Function>
	<Function name='SetGoalType' return='void' arguments='GoalType gt'>
		Sets the current goal type to <code>gt</code>.
	</Function>
	<Function name='SetWeightPounds' return='void' arguments='int weightPounds'>
		Sets how much the player weighs (in pounds) to <code>weightPounds</code>.
	</Function>
	<!-- sm-ssc additions -->
	<Function name='GetTotalGameplaySeconds' sm-ssc='true' return='int' arguments=''>
		Returns the amount of time this profile has spent in gameplay (in seconds).
	</Function>
	<Function name='GetTotalSessions' sm-ssc='true' return='int' arguments=''>
		Returns the number of sessions this profile has had.
	</Function>
	<Function name='GetTotalSessionSeconds' sm-ssc='true' return='int' arguments=''>
		Returns the total session length (in seconds) of this profile.
	</Function>
</Class>
<Class name='ProfileManager'>
	<Function name='GetLocalProfile' return='Profile' arguments='string sProfileID' />
	<Function name='GetLocalProfileFromIndex' return='Profile' arguments='int iIndex' />
	<Function name='GetLocalProfileIDFromIndex' return='string' arguments='int iIndex' />
	<Function name='GetLocalProfileIndexFromID' return='int' arguments='string sProfileID' />
	<Function name='GetMachineProfile' return='Profile' arguments=''>
		Retuns the machine profile.
	</Function>
	<Function name='GetNumLocalProfiles' return='int' arguments=''>
		Retuns the amount of local profiles.
	</Function>
	<Function name='GetProfile' return='Profile' arguments='PlayerNumber pn'>
		Returns the profile for player <code>pn</code>.
	</Function>
	<Function name='GetProfileDir' sm-ssc='true' return='string' arguments='ProfileSlot slot'>
		Returns the profile directory of the specified <code>ProfileSlot</code>.
	</Function>
	<Function name='IsPersistentProfile' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code>'s profile is persistent.
	</Function>
	<Function name='IsSongNew' sm-ssc='true' return='bool' arguments='Song s'>
		Returns <code>true</code> if Song <code>s</code> has never been played before (according to the machine profile).
	</Function>
	<Function name='LastLoadWasFromLastGood' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if the last load of player <code>pn</code>'s profile was a LastGood copy of the profile.
	</Function>
	<Function name='LastLoadWasTamperedOrCorrupt' sm-ssc='true' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if the last load of player <code>pn</code>'s profile resulted in a tampered or corrupt profile.
	</Function>
	<Function name='SaveMachineProfile' return='void' arguments=''>
		Saves the machine profile.
	</Function>
</Class>
<Class name='RadarValues'>
	<Function name='GetValue' return='int' arguments='RadarCategory rc'>
		Returns the value of <code>rc</code> from <Link class='Steps' function='GetRadarValues' />.
	</Function>
</Class>
<Class name='RageDisplay'>
	<Function name='GetDisplayHeight' return='int' arguments=''>
		Return the height of the display.
	</Function>
	<Function name='GetDisplayWidth' return='int' arguments=''>
		Return the width of the display.
	</Function>
</Class>
<Class name='RageFile'>
	<Description>
		These commands require a RageFile handle. You can create one using
		<Link class='RageFileUtil' />.
	</Description>
	<Function name='AtEOF' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the current position within the file is the end. (EOF = End of File)
	</Function>
	<Function name='ClearError' return='void' arguments=''>
		Clears the last error message.
	</Function>
	<Function name='Close' return='void' arguments=''>
		Closes the file and releases it from memory.
	</Function>
	<Function name='destroy' return='void' arguments=''>
		Safely deletes the file handle.
	</Function>
	<Function name='GetError' return='string' arguments=''>
		Gets the last error message and returns it.
	</Function>
	<Function name='GetLine' return='string' arguments=''>
		Gets a line and returns it.
	</Function>
	<Function name='Open' return='bool' arguments='string sPath, int iAccessType'>
		Opens a file at <code>sPath</code> (relative to the StepMania root directory).<br />
		<code>iAccessType</code> can be set to read (<code>1</code>), write (<code>2</code>), stream (<code>4</code>) or flush to disk on close (<code>8</code>).<br />
		These can also be combined with addition. For example, to set up read and write, set <code>iAccessType</code> to <code>3</code> (1+2).
	</Function>
	<Function name='PutLine' return='int' arguments='string s'>
		Puts a new line in the file.
	</Function>
	<Function name='Read' return='string' arguments=''>
		Returns a string containing the entire contents of the file.
	</Function>
	<Function name='ReadBytes' sm-ssc='true' return='string' arguments='int length'>
		Returns <code>length</code> bytes from the RageFile's current position.
	</Function>
	<Function name='Seek' return='int' arguments=''>
		Seeks to a position in the file and returns the new position.
	</Function>
	<Function name='Tell' sm-ssc='true' return='int' arguments=''>
		Returns the current position in the file.
	</Function>
	<Function name='Write' return='int' arguments='string str'>
		Writes a file with the contents of <code>str</code>.
	</Function>
</Class>
<Class name='RageFileManager'>
	<Function name='DoesFileExist' sm-ssc='true' return='bool' arguments='string sPath'>
		Returns <code>true</code> if a file exists at <code>sPath</code>.
	</Function>
	<Function name='GetDirListing' sm-ssc='true' return='{string}' arguments='string sPath, bool bOnlyDirs, bool bReturnPathToo'>
		Returns a listing of files from <code>sPath</code>. The last two arguments are optional (and default to false).
	</Function>
	<Function name='GetFileSizeBytes' sm-ssc='true' return='int' arguments='string sPath'>
		Returns a file's size in bytes.
	</Function>
	<Function name='GetHashForFile' sm-ssc='true' return='int' arguments='string sPath'>
		Returns the hash of the file at <code>sPath</code>.
	</Function>
</Class>
<Class name='RageInput'>
	<Function name='GetDescriptions' return='{string}' arguments=''>
		Return an array of connected input device descriptions.
	</Function>
</Class>
<Class name='RageSound'>
	<Description>
		See <Link class='ActorSound' /> for loading a sound.
	</Description>
	<Function name='SetProperty' return='void' arguments='string sProperty, float fVal'>
		Sets the value of <code>sProperty</code> to <code>fVal</code>. The supported properties depend on how the associated <Link class='ActorSound' /> was loaded.
	</Function>
	<Function name='pitch' return='void' arguments='float fPitch'>
		Sets the pitch to <code>fPitch</code>. The associated <Link class='ActorSound' /> have <code>SupportsRateChanging = true</code> on load.
	</Function>
	<Function name='speed' return='void' arguments='float fSpeed'>
		Sets the speed (that is, the rate at which the sound plays) to <code>fSpeed</code>. The associated <Link class='ActorSound' /> must have <code>SupportsRateChanging = true</code> on load.
	</Function>
	<Function name='volume' sm-ssc='true' return='void' arguments='float fVolume'>
		Sets the volume to <code>fVolume</code>, which is between 0..1.
	</Function>
</Class>
<Class name='RageTexture'>
	<Function name='GetTextureCoordRect' return='{float}' arguments=''>
		Return the texture coordinate rectangle as <code>{left, top, right, bottom}</code>.
	</Function>
	<Function name='loop' return='void' arguments='bool bLoop'>
		Sets the animation or movie looping to <code>bLoop</code>.
	</Function>
	<Function name='position' return='void' arguments='float fPos'>
		Sets the animation or movie position to <code>fPos</code>.
	</Function>
	<Function name='rate' return='void' arguments='float fRate'>
		Sets the animation or movie playback rate to <code>fRate</code>.
	</Function>
</Class>
<Class name='RollingNumbers'>
	<Function name='Load' sm-ssc='true' return='void' arguments='string sGroupName'>
		Loads the metrics for this RollingNumbers from <code>sGroupName</code>.
	</Function>
	<Function name='targetnumber' return='void' arguments='float f'>
		Sets the target number to <code>f</code>.
	</Function>
</Class>
<Class name='Screen'>
	<Function name='GetNextScreenName' return='string' arguments=''>
		Returns the name of the next Screen.
	</Function>
	<Function name='GetPrevScreenName' sm-ssc='true' return='string' arguments=''>
		Returns the name of the previous Screen.
	</Function>
	<Function name='lockinput' return='void' arguments='float f'>
		Locks input for <code>f</code> seconds.
	</Function>
	<Function name='PostScreenMessage' return='void' arguments='string sScreenMsg'>
		Posts a message with the text <code>sScreenMsg</code> to the Screen.
	</Function>
</Class>
<Class name='ScreenEdit'>
	<Function name='GetEditState' sm-ssc='true' return='EditState' arguments=''>
		Returns the current <Link class='ENUM' function='EditState' />.
	</Function>
</Class>
<Class name='ScreenEvaluation'>
	<Function name='GetStageStats' return='StageStats' arguments=''>
		Returns the current StageStats.
	</Function>
</Class>
<Class name='ScreenGameplay'>
	<Function name='Center1Player' return='bool' arguments=''>
		Returns <code>true</code> if a single <Link class='Player' /> has its NoteField centered.
	</Function>
	<Function name='GetDummyPlayerInfo' return='PlayerInfo' arguments='int index'>
		Returns a dummy PlayerInfo for the specified index.
	</Function>
	<Function name='GetLifeMeter' return='LifeMeter' arguments='PlayerNumber pn'>
		Returns the <Link class='LifeMeter' /> for the specified <Link class='ENUM' function='PlayerNumber' /> <code>pn</code>.
	</Function>
	<Function name='GetNextCourseSong' return='Song' arguments=''>
		Returns the next <Link class='Song' /> in the current <Link class='Course' />.
	</Function>
	<Function name='GetPlayerInfo' return='PlayerInfo' arguments='PlayerNumber pn'>
		Returns the PlayerInfo for player <code>pn</code>.
	</Function>
	<Function name='SetNewScreen' return='void' arguments='string s'>
		Sets the next Screen to be loaded.
	</Function>
	<Function name='IsPaused' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the game is paused.
	</Function>
	<Function name='PauseGame' sm-ssc='true' return='void' arguments='bool bPause'>
		Pauses or unpauses the game, depending on the value of <code>bPause</code>.
	</Function>
</Class>
<Class name='ScreenHowToPlay'>
	<Function name='GetLifeMeter' return='LifeMeter' arguments=''>
		Returns the LifeMeter.
	</Function>
</Class>
<Class name='ScreenManager'>
	<Function name='AddNewScreenToTop' sm-ssc='true' return='void' arguments='string sScreenName'>
		Adds a screen at the top of the screen stack.
	</Function>
	<Function name='GetTopScreen' return='Screen' arguments=''>
		Gets the screen at the top of the screen stack.
	</Function>
	<Function name='ReloadOverlayScreens' sm-ssc='true' return='void' arguments=''>
		Reloads any loaded overlay screens.
	</Function>
	<Function name='ScreenClassExists' return='bool' arguments='string s'>
		Returns <code>true</code> if screen class <code>s</code> exists.
	</Function>
	<Function name='ScreenIsPrepped' return='bool' arguments='string s'>
		Returns <code>true</code> if screen <code>s</code> is prepared.
	</Function>
	<Function name='SetNewScreen' return='void' arguments='string s'>
		Sets the next screen to <code>s</code>.
	</Function>
	<Function name='SystemMessage' return='void' arguments='string s'>
		Broadcasts a system message.
	</Function>
</Class>
<Class name='ScreenNameEntryTraditional'>
	<Function name='Backspace' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if Player <code>pn</code> backspaced successfully.
	</Function>
	<Function name='EnterKey' return='bool' arguments='PlayerNumber pn, string sKey'>
		Returns <code>true</code> if Player <code>pn</code> was able to add <code>sKey</code> to their name.
	</Function>
	<Function name='Finish' return='bool' arguments='PlayerNumber pn'>
		Attempts to finish Player <code>pn</code> and returns <code>true</code>
		if successful.
	</Function>
	<Function name='GetAnyEntering' return='bool' arguments=''>
		Returns <code>true</code> if anyone is entering their name.
	</Function>
	<Function name='GetAnyStillEntering' return='bool' arguments=''>
		Returns <code>true</code> if anyone is still entering their name.<br />
		(As opposed to those who are Finalized; see <Link function="GetFinalized" />)
	</Function>
	<Function name='GetEnteringName' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if Player <code>pn</code> is entering their name.
	</Function>
	<Function name='GetFinalized' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if Player <code>pn</code> is finished entering their name.
	</Function>
	<Function name='GetSelection' return='string' arguments='PlayerNumber pn'>
		Gets the currently selected letter of Player <code>pn</code>.
	</Function>
</Class>
<Class name='ScreenNetEvaluation'>
	<Function name='GetNumActivePlayers' sm-ssc='true' return='int' arguments=''>
		Returns the number of active players.
	</Function>
</Class>
<Class name='ScreenOptions'>
	<Function name='AllAreOnLastRow' return='bool' sm-ssc='true' arguments=''>
		Returns <code>true</code> if all active players are on the last options row.
	</Function>
	<Function name='FocusedItemEndsScreen' return='bool' sm-ssc='true' arguments='PlayerNumber pn'>
		Returns <code>true</code> if the specified player is on an items that ends the screen.
	</Function>
	<Function name='GetCurrentRowIndex' renamed='true' return='int' arguments='PlayerNumber pn'>
		Returns the current row that player <code>pn</code> is on. (Was previously <code>GetCurrentRow</code>.)
	</Function>
	<Function name='GetOptionRow' sm-ssc='true' return='OptionRow' arguments='int iRow'>
		Returns the specified OptionRow.
	</Function>
</Class>
<Class name='ScreenPlayerOptions'>
	<Function name='GetGoToOptions' return='bool' arguments=''>
		Returns <code>true</code> if we are going to PlayerOptions.
	</Function>
</Class>
<Class name='ScreenProfileLoad'>
	<Function name='Continue' return='void' arguments=''>
		Continues to the next screen.
	</Function>
	<Function name='HaveProfileToLoad' return='bool' arguments=''>
		Returns <code>true</code> if there is a profile that can be loaded.
	</Function>
</Class>
<Class name='ScreenProfileSave'>
	<Function name='Continue' return='void' arguments=''>
		Continues to the next screen.
	</Function>
	<Function name='HaveProfileToSave' return='bool' arguments=''>
		Returns <code>true</code> if there is a profile that can be saved.
	</Function>
</Class>
<Class name='ScreenSelectMaster'>
	<Function name='GetSelectionIndex' sm-ssc='true' return='int' arguments='PlayerNumber pn'>
		Returns player <code>pn</code>'s current selected item as an integer.
	</Function>
</Class>
<Class name='ScreenSelectMusic'>
	<Function name='GetGoToOptions' return='bool' arguments=''>
		Returns <code>true</code> if the player is going to the options screen.
	</Function>
	<Function name='GetMusicWheel' sm-ssc='true' return='MusicWheel' arguments=''>
		Returns the MusicWheel used on this screen.
	</Function>
	<Function name='OpenOptionsList' sm-ssc='true' return='void' arguments='PlayerNumber pn'>
		Opens the OptionsList for Player <code>pn</code>
	</Function>
	<Function name='setupcoursestagemods' theme='_fallback' return='void' arguments=''>
		[02 StageMods.lua] Sets up modifiers for course modes.
	</Function>
	<Function name='setupmusicstagemods' theme='_fallback' return='void' arguments=''>
		[02 StageMods.lua] Sets up modifiers for non-course modes.
	</Function>
</Class>
<Class name='ScreenSelectProfile'>
	<Function name='Cancel' return='void' arguments=''>
		Tells the screen to go to the previous screen.
	</Function>
	<Function name='Finish' return='bool' arguments=''>
		Attempts to finish the screen and returns <code>true</code>
		if successful.
	</Function>
	<Function name='GetProfileIndex' return='int' arguments='PlayerNumber pn'>
		Returns the profile index of the specified Player.
	</Function>
	<Function name='SetProfileIndex' return='bool' arguments='PlayerNumber pn, int iProfileIndex'>
		Sets the profile index of Player <code>pn</code> to <code>iProfileIndex</code>.
	</Function>
</Class>
<Class name='ScreenTextEntry'>
	<Description>
		See the Changelog for details on TextEntrySetting's format.
	</Description>
	<Function name='Load' sm-ssc='true' return='void' arguments='TextEntrySettings args'>
		Sets up a ScreenTextEntry's values.
	</Function>
</Class>
<Class name='ScreenWithMenuElements'>
	<Function name='Cancel' return='void' arguments=''>
		Tells the screen to go to the previous screen.
	</Function>
</Class>
<Class name='Song'>
	<Function name='GetAllSteps' return='{Steps}' arguments=''>
		Returns an array of all the available <Link class='Steps' /> objects for a <Link class='Song' />.
	</Function>
	<Function name='GetBackgroundPath' return='string' arguments=''>
		Returns the path to the song's background image.
	</Function>
	<Function name='GetBannerPath' return='string' arguments=''>
		Returns the path to the song's banner.
	</Function>
	<Function name='GetCDTitlePath' sm-ssc='true' return='string' arguments=''>
		Gets the path to the CDTitle.
	</Function>
	<Function name='GetDisplayArtist' return='string' arguments=''>
		Returns the displayed artist of the song.
	</Function>
	<Function name='GetDisplayBpms' sm-ssc='true' return='{float}' arguments=''>
		Returns a table of 2 floats containing the display BPMs.
	</Function>
	<Function name='GetDisplayFullTitle' return='string' arguments=''>
		Returns the displayed full title of the song, including subtitle.
	</Function>
	<Function name='GetDisplayMainTitle' return='string' arguments=''>
		Returns the displayed main title of the song.
	</Function>
	<Function name='GetDisplaySubTitle' return='string' arguments=''>
		Returns the displayed subtitle of the song.
	</Function>
	<Function name='GetFirstBeat' return='float' arguments=''>
		Returns the first beat of the song.
	</Function>
	<Function name='GetGenre' return='string' arguments=''>
		Returns the genre of the song.
	</Function>
	<Function name='GetGroupName' return='string' arguments=''>
		Returns the group name that the song is in.
	</Function>
	<Function name='GetLastBeat' return='float' arguments=''>
		Returns the last beat of the song.
	</Function>
	<Function name='GetLyricsPath' sm-ssc='true' return='string' arguments=''>
		Gets the path to the lyrics.
	</Function>
	<Function name='GetMusicPath' sm-ssc='true' return='string' arguments=''>
		Gets the path to the music file.
	</Function>
	<Function name='GetOneSteps' return='Steps' arguments='StepsType st, Difficulty d'>
		Returns a Step object if the StepType and Difficulty exist.
	</Function>
	<Function name='GetOrigin' sm-ssc='true' return='string' arguments=''>
		Gets the Song's origin.
	</Function>
	<Function name='GetSongDir' return='string' arguments=''>
		Returns the song's directory.
	</Function>
	<Function name='GetSongFilePath' sm-ssc='true' return='string' arguments=''>
		Returns the songfile path.
	</Function>
	<Function name='GetStepsByStepsType' return='{Steps}' arguments='StepsType st'>
		Returns a table of Steps that have StepsType <code>st</code>.
	</Function>
	<Function name='GetStepsSeconds' sm-ssc='true' return='float' arguments=''>
		Returns how long the longest stepchart is in seconds.
	</Function>
	<Function name='GetTimingData' return='TimingData' arguments=''>
		Returns the song's TimingData.
	</Function>
	<Function name='GetTranslitArtist' return='string' arguments=''>
		Returns the transliterated artist of the song.
	</Function>
	<Function name='GetTranslitFullTitle' return='string' arguments=''>
		Returns the transliterated full title of the song, including subtitle.
	</Function>
	<Function name='GetTranslitMainTitle' return='string' arguments=''>
		Returns the transliterated main title of the song.
	</Function>
	<Function name='GetTranslitSubTitle' return='string' arguments=''>
		Returns the transliterated subtitle of the song.
	</Function>
	<Function name='HasStepsTypeAndDifficulty' return='bool' arguments='StepsType st, Difficulty d'>
		Returns <code>true</code> if the song has steps for the specified difficulty in <code>st</code>.
	</Function>
	<Function name='HasAttacks' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has attacks.
	</Function>
	<Function name='HasBackground' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has a background.
	</Function>
	<Function name='HasBanner' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has a banner.
	</Function>
	<Function name='HasBGChanges' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has BGChanges.
	</Function>
	<Function name='HasCDTitle' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has a CDTitle.
	</Function>
	<Function name='HasEdits' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has edits.
	</Function>
	<Function name='HasLyrics' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has lyrics.
	</Function>
	<Function name='HasMusic' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has music.
	</Function>
	<Function name='HasSignificantBPMChangesOrStops' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has significant elephants or bison.
	</Function>
	<Function name='HasStepsType' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song has .
	</Function>
	<Function name='IsDisplayBpmConstant' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song's DisplayBPM is constant.
	</Function>
	<Function name='IsDisplayBpmRandom' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song's DisplayBPM is random.
	</Function>
	<Function name='IsDisplayBpmSecret' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song's DisplayBPM is secret.
	</Function>
	<Function name='IsEasy' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song is considered easy.
	</Function>
	<Function name='IsEnabled' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the song is enabled.
	</Function>
	<Function name='IsLong' return='bool' arguments=''>
		Returns <code>true</code> if the song meets the criteria for a &quot;Long Version&quot;.
	</Function>
	<Function name='IsMarathon' return='bool' arguments=''>
		Returns <code>true</code> if the song meets the criteria for &quot;Marathon&quot; length.
	</Function>
	<Function name='IsTutorial' return='bool' arguments=''>
		Returns <code>true</code> if the song only has Beginner steps.
	</Function>
	<Function name='MusicLengthSeconds' return='float' arguments=''>
		Returns the length of the song in seconds.
	</Function>
	<Function name='NormallyDisplayed' sm-ssc='true' return='bool' arguments=''>
		Returns true if the song is normally displayed.
	</Function>
</Class>
<Class name='SongManager'>
	<Function name='FindCourse' return='Course' arguments='string sCourse'>
		Returns a Course if one matching <code>sCourse</code> is found.
	</Function>
	<Function name='FindSong' return='Song' arguments='string sSong'>
		Returns a Song if one matching <code>sSong</code> is found.
	</Function>
	<Function name='GetAllCourses' return='{Course}' arguments='bool bIncludeAutogen'>
		Returns an array of all the installed courses.
	</Function>
	<Function name='GetAllSongs' return='{Song}' arguments=''>
		Returns an array of all the installed songs.
	</Function>
	<Function name='GetCourseColor' return='color' arguments='Course c'>
		Returns the course color of Course <code>c</code>.
	</Function>
	<Function name='GetCourseGroupNames' sm-ssc='true' return='{string}' arguments=''>
		Returns a table containing all of the course group names.
	</Function>
	<Function name='GetExtraStageInfo' return='various' arguments='bool bExtra2, Style s'>
		Returns the extra stage info (Song, Steps) for the specified Style <code>s</code>. (If <code>bExtra2</code> is true, it will use the second Extra Stage data instead of the first. Again, Lua.xsd sucks)
	</Function>
	<Function name='GetNumAdditionalCourses' return='int' arguments=''>
		Returns the number of courses loaded via Additional folders.
	</Function>
	<Function name='GetNumAdditionalSongs' return='int' arguments=''>
		Returns the number of songs loaded via Additional folders.
	</Function>
	<Function name='GetNumCourseGroups' return='int' arguments=''>
		Returns the number of course groups.
	</Function>
	<Function name='GetNumCourses' return='int' arguments=''>
		Returns the number of courses.
	</Function>
	<Function name='GetNumSelectableAndUnlockedSongs' return='int' arguments=''>
		Returns the number of selectable and unlocked songs.
	</Function>
	<Function name='GetNumSongGroups' return='int' arguments=''>
		Returns the number of song groups.
	</Function>
	<Function name='GetNumSongs' return='int' arguments=''>
		Returns the number of songs.
	</Function>
	<Function name='GetNumUnlockedSongs' return='int' arguments=''>
		Returns the number of unlocked songs.
	</Function>
	<Function name='GetRandomCourse' return='Course' arguments=''>
		Returns a random course.
	</Function>
	<Function name='GetRandomSong' return='Song' arguments=''>
		Returns a random song.
	</Function>
	<Function name='GetSongColor' return='color' arguments='Song s'>
		Returns the song color of Song <code>s</code>.
	</Function>
	<Function name='GetSongFromSteps' return='Song' arguments='Steps st'>
		Returns a Song given a set of Steps <code>st</code>.
	</Function>
	<Function name='GetSongGroupColor' return='color' arguments='string sGroupName'>
		Returns the song group color of <code>sGroupName</code>.
	</Function>
	<!-- sm-ssc additions: -->
	<Function name='GetSongGroupNames' sm-ssc='true' return='{string}' arguments=''>
		Returns a table containing all of the song group names.
	</Function>
	<Function name='GetSongRank' sm-ssc='true' return='int' arguments='Song s'>
		Returns the rank (popularity) of Song <code>s</code>.
	</Function>
	<Function name='GetSongsInGroup' sm-ssc='true' return='{Song}' arguments='string sGroupName'>
		Returns a table containing all of the songs in group <code>sGroupName</code>.
	</Function>
	<Function name='ShortenGroupName' sm-ssc='true' return='string' arguments='string sGroupName'>
		Returns the shortened group name (based on entries in Translations.xml).
	</Function>
	<Function name='SetPreferredCourses' sm-ssc='true' return='void' arguments='string sListName'>
		Loads preferred courses from <code>{theme}/Other/SongManager sListName.txt</code>.
	</Function>
	<Function name='SetPreferredSongs' sm-ssc='true' return='void' arguments='string sListName'>
		Loads preferred songs from <code>{theme}/Other/SongManager sListName.txt</code>.
	</Function>
</Class>
<Class name='SongPosition'>
	<Function name='GetCurBPS' sm-ssc='true' return='float' arguments=''>
		Returns the current beats per second.
	</Function>
	<Function name='GetDelay' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if a Delay is active.
	</Function>
	<Function name='GetFreeze' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if a Freeze is active.
	</Function>
	<Function name='GetMusicSeconds' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetMusicSecondsVisible' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetSongBeat' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetSongBeatNoOffset' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetSongBeatVisible' sm-ssc='true' return='float' arguments=''>
		<!-- todo -->
	</Function>
	<Function name='GetWarpBeginRow' sm-ssc='true' return='int' arguments=''>
		Returns the row where a warp appears.
	</Function>
	<Function name='GetWarpDestination' sm-ssc='true' return='float' arguments=''>
		Returns the warp destination length.
	</Function>
</Class>
<Class name='Sprite'>
	<Function name='GetAnimationLengthSeconds' return='float' arguments=''>
		Returns the length of the animation in seconds.
	</Function>
	<Function name='GetNumStates' sm-ssc='true' return='int' arguments=''>
		Return the number of states this Sprite has.
	</Function>
	<Function name='GetState' sm-ssc='true' return='int' arguments=''>
		Returns the Sprite's current state (frame number in a multi-frame sprite).
	</Function>
	<Function name='GetTexture' return='RageTexture' arguments=''>
		Returns the Sprite's texture.
	</Function>
	<Function name='LinearFrames' theme='_fallback' return='{Frame}' arguments='int iNumFrames, float fSeconds'>
		[02 Sprite.lua] Returns a <code>Frames</code> table consisting of <code>iNumFrames</code> frames lasting for a total of <code>fSeconds</code> seconds. This function is not a member function and should be used as <code>Frames = Sprite.LinearFrames( 5, 2.6 )</code>.
	</Function>
	<Function name='Load' return='void' arguments='string sPath'>
		If <code>sPath</code> is <code>nil</code>, then unload the texture. Otherwise, load the texture at path <code>sPath</code>.
	</Function>
	<Function name='LoadBackground' return='void' arguments='string sPath'>
		Load the song background texture at <code>sPath</code>.
	</Function>
	<Function name='LoadBanner' return='void' arguments='string sPath'>
		Load the song banner texture at <code>sPath</code>.
	</Function>
	<Function name='LoadFromSongBackground' theme='_fallback' return='void' arguments='Song song'>
		[02 Sprite.lua] Load the texture for <code>song</code>'s background.
	</Function>
	<Function name='LoadFromSongBanner' theme='_fallback' return='void' arguments='Song song'>
		[02 Sprite.lua] Load the texture for <code>song</code>'s banner.
	</Function>
	<Function name='SetCustomImageRect' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		Sets the custom image rectangle. (Works in image pixel space.)
	</Function>
	<Function name='SetEffectMode' return='void' arguments='EffectMode mode'>
		Set the <Link class='ENUM' function='EffectMode' /> to <code>mode</code>.
	</Function>
	<Function name='SetTexture' return='void' arguments='RageTexture texture'>
		Set the texture to <code>texture</code>.
	</Function>
	<Function name='addimagecoords' return='void' arguments='float fX, float fY'>
		<!-- XXX: how does this work? -->
	</Function>
	<Function name='customtexturerect' return='void' arguments='float fLeft, float fTop, float fRight, float fBottom'>
		Allows the themer to set a custom texture rectangle that effects the way the texture is drawn.
	</Function>
	<Function name='loop' theme='_fallback' return='void' arguments='bool bLoop'>
		[02 Sprite.lua] Call <Link class='RageTexture' function='loop'><code>RageTexture:loop</code></Link><code>( bLoop )</code> on the texture.
	</Function>
	<Function name='position' theme='_fallback' return='void' arguments='float fPos'>
		[02 Sprite.lua] Call <Link class='RageTexture' function='position'><code>RageTexture:position</code></Link><code>( fPos )</code> on the texture.
	</Function>
	<Function name='rate' theme='_fallback' return='void' arguments='float fRate'>
		[02 Sprite.lua] Call <Link class='RageTexture' function='rate'><code>RageTexture:rate</code></Link><code>( fRate )</code> on the texture.
	</Function>
	<Function name='scaletoclipped' return='void' arguments='float fWidth, float fHeight'>
		Scale the Sprite to width <code>fWidth</code> and height <code>fHeight</code> clipping if the dimensions do not match.
	</Function>
	<Function name='setstate' return='void' arguments='int iNewState'>
		Set the Sprite's state to <code>iNewState</code>.
	</Function>
	<Function name='stretchtexcoords' return='void' arguments='float fX, float fY'>
		<!-- XXX: What does this do? -->
	</Function>
	<Function name='texcoordvelocity' return='void' arguments='float fVelX, float fVelY'>
		Set the texture coordinate velocity which controls how the Sprite changes as it animates. <!-- XXX: Can we be more specific? -->
	</Function>
	<!-- sm-ssc addons -->
	<Function name='CropTo' sm-ssc='true' return='void' arguments='float fWidth, float fHeight'>
		Crops the Sprite to <code>fWidth</code>x<code>fHeight</code>.
	</Function>
	<Function name='cropto' theme='_fallback' return='void' arguments='float fWidth, float fHeight'>
		[01 alias.lua] Alias for CropTo.
	</Function>
	<Function name='SetAllStateDelays' sm-ssc='true' return='void' arguments='float fRate'>
		Sets all the state delays to <code>fRate</code>. Useful for Sprites that need to change by BPM (e.g. Tran from DDR 5th Mix, the cube from DS EuroMix 2).
	</Function>
</Class>
<Class name='StageStats'>
	<Function name='AllFailed' return='bool' arguments=''>
		Returns <code>true</code> if everyone failed.
	</Function>
	<Function name='GetEarnedExtraStage' return='EarnedExtraStage' arguments=''>
		Returns the <Link class="ENUM" function="EarnedExtraStage">EarnedExtraStage</Link> value.
	</Function>
	<Function name='GetGameplaySeconds' return='float' arguments=''>
		Returns the number of seconds played.
	</Function>
	<Function name='GetMultiPlayerStageStats' return='PlayerStageStats' arguments='MultiPlayer mp'>
		Returns the PlayerStageStats of multiplayer <code>mp</code>.
	</Function>
	<Function name='GetPlayedSongs' return='{Song}' arguments='' />
	<Function name='GetPlayerStageStats' return='PlayerStageStats' arguments='PlayerNumber pn'>
		Returns the PlayerStageStats of player <code>pn</code>.
	</Function>
	<Function name='GetPossibleSongs' return='{Song}' arguments='' />
	<Function name='GetStage' return='Stage' arguments=''>
		Returns the <Link class="ENUM" function="Stage">Stage</Link> value.
	</Function>
	<Function name='GetStageIndex' return='int' arguments=''>
		Returns the stage index.
	</Function>
	<Function name='OnePassed' return='bool' arguments=''>
		Returns <code>true</code> if at least one person passed.
	</Function>
	<Function name='PlayerHasHighScore' return='bool' arguments='PlayerNumber pn'>
		Returns <code>true</code> if player <code>pn</code> has a high score.
	</Function>
</Class>
<Class name='StatsManager'>
	<Function name='GetAccumPlayedStageStats' return='StageStats' arguments=''>
		Returns the accumulated played StageStats.
	</Function>
	<Function name='GetBestFinalGrade' return='Grade' arguments=''>
		Returns the best final grade.
	</Function>
	<Function name='GetBestGrade' return='Grade' arguments=''>
		Returns the best grade.
	</Function>
	<Function name='GetCurStageStats' return='StageStats' arguments=''>
		Returns the current StageStats.
	</Function>
	<Function name='GetFinalGrade' return='Grade' arguments='PlayerNumber pn'>
		Returns player <code>pn</code>'s final grade.
	</Function>
	<Function name='GetPlayedStageStats' return='StageStats' arguments='int iAgo'>
		Get the StageStats from <code>iAgo</code> rounds ago.
	</Function>
	<Function name='GetStagesPlayed' return='int' arguments=''>
		Returns the number of stages played.
	</Function>
	<Function name='GetWorstGrade' return='Grade' arguments=''>
		Returns the worst grade.
	</Function>
	<Function name='Reset' return='void' arguments=''>
		Resets the stats.
	</Function>
</Class>
<Class name='Steps'>
	<Function name='GetAuthorCredit' return='string' arguments=''>
		Returns the author that made that particular Steps pattern.
	</Function>
	<Function name='GetChartStyle' sm-ssc='true' return='string' arguments=''>
		Returns the Chart Style for this Steps.
	</Function>
	<Function name='GetDescription' return='string' arguments=''>
		Returns the Steps description.
	</Function>
	<Function name='GetDifficulty' return='Difficulty' arguments=''>
		Returns the Steps difficulty.
	</Function>
	<Function name='GetFilename' return='string' arguments=''>
		Returns the Steps filename from the Cache.
	</Function>
	<Function name='GetHash' sm-ssc='true' return='unsigned' arguments=''>
		Returns a hash of the Steps.
	</Function>
	<Function name='GetMeter' return='int' arguments=''>
		Returns the numerical difficulty of the Steps.
	</Function>
        <Function name='HasSignificantTimingChanges' sm-ssc='true' return='bool' arguments=''>
                Returns <code>true</code> if the song has significant timing changes.
        </Function>
	<Function name='GetRadarValues' return='RadarValues' arguments='PlayerNumber pn'>
		Returns the complete list of RadarValues for player <code>pn</code>. Use <Link class='RadarValues' function='GetValue' /> to grab a specific value.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the Steps type.
	</Function>
	<Function name='GetTimingData' sm-ssc='true' return='TimingData' arguments=''>
		Returns the TimingData for the Steps.
	</Function>
	<Function name='IsAnEdit' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Steps are an edit.
	</Function>
	<Function name='IsAPlayerEdit' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Steps are a player edit (loaded from a profile).
	</Function>
	<Function name='IsAutogen' return='bool' arguments=''>
		Returns <code>true</code> if the steps were automatically generated.
	</Function>
	<Function name='UsesSplitTiming' return='bool' sm-ssc='true' arguments=''>
		Returns <code>true</code> if the Steps use different <code>TimingData</code> from the Song.
	</Function>
</Class>
<Class name='StepsDisplay'>
	<Function name='Load' return='void' arguments='string sMetricsGroup'>
		Loads the StepsDisplay commands from the Metrics in group <code>sMetricsGroup</code>.
	</Function>
	<Function name='SetFromGameState' return='void' arguments='PlayerNumber pn'>
		Sets the StepsDisplay from the GameState using Player <code>pn</code>.
	</Function>
	<Function name='SetFromSteps' return='void' arguments='PlayerNumber pn, Steps pSteps'>
		Sets the StepsDisplay based on Steps <code>pSteps</code>.
	</Function>
	<Function name='SetFromStepsTypeAndMeterAndDifficulty' return='void' arguments='StepsType st, int iMeter, Difficulty dc'>
		Sets the StepsDisplay based on the passed in StepsType, <code>iMeter</code>, and Difficulty.
	</Function>
	<Function name='SetFromTrail' return='void' arguments='Trail pTrail'>
		Sets the StepsDisplay based on Trail <code>pTrail</code>.
	</Function>
</Class>
<Class name='Style'>
	<Function name='ColumnsPerPlayer' sm-ssc='true' return='int' arguments=''>
		Returns the number of total tracks this Style contains (e.g. 4 for dance-versus, but 8 for dance-double).
	</Function>
	<Function name='GetName' return='string' arguments=''>
		Returns the name of the Style.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the StepsType for this Style.
	</Function>
	<Function name='GetStyleType' return='StyleType' arguments=''>
		Returns the StyleType for this Style.
	</Function>
	<Function name='NeedsZoomOutWith2Players' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the Style needs to be zoomed out with two players.
	</Function>
</Class>
<Class name='TextBanner'>
	<Function name='Load' return='void' arguments='string sMetricsGroup'>
		Loads the TextBanner from the specified metrics group.
	</Function>
	<Function name='SetFromSong' return='void' arguments='Song s'>
		Loads the TextBanner's child elements from a <Link class='Song' />.
	</Function>
	<Function name='SetFromString' return='void' arguments='string sDisplayTitle, string sTranslitTitle, string sDisplaySubTitle, string sTranslitSubTitle, string sDisplayArtist, string sTranslitArtist'>
		Loads the TextBanner's child elements from strings.
	</Function>
</Class>
<Class name='ThemeManager'>
	<Function name='GetCurLanguage' sm-ssc='true' return='string' arguments=''>
		Returns the current language.
	</Function>
	<Function name='GetCurrentThemeDirectory' sm-ssc='true' return='string' arguments=''>
		Returns the theme's current directory.
	</Function>
	<Function name='GetMetric' return='string' arguments='string ClassName, string Element'>
		Returns the value of <code>Element</code> in <code>Class</code> from metrics.ini.
	</Function>
	<Function name='GetNumSelectableThemes' return='int' arguments=''>
		Returns the number of selectable themes.
	</Function>
	<Function name='GetPathB' return='string' arguments='string ClassName, string Element'>
		Returns the path of <code>ClassName Element</code> in the BGAnimations folder.
	</Function>
	<Function name='GetPathF' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Fonts folder.
	</Function>
	<Function name='GetPathG' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Graphics folder.
	</Function>
	<Function name='GetPathInfoB' return='string' arguments='string ClassName, string Element'>
		returns three strings: BGAnimation ResolvedPath, MatchingMetricsGroup, MatchingElement. Used in <Link class='GLOBAL' function='LoadFallbackB'>LoadFallbackB</Link> in themes/_fallback/02 Other.lua. (Lua.xsd sucks)
	</Function>
	<Function name='GetPathO' sm-ssc='true' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Other folder.
	</Function>
	<Function name='GetPathS' return='string' arguments='string ClassName, string Element'>
		Returns the path of an element in the Sounds folder.
	</Function>
	<Function name='GetSelectableThemeNames' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of selectable theme directories.
	</Function>
	<Function name='GetString' return='string' arguments='string ClassName, string Element'>
		Returns the value of <code>Element</code> in <code>Class</code> for the currently loaded language.
	</Function>
	<Function name='GetThemeAuthor' sm-ssc='true' return='string' arguments=''>
		Returns the author of the current theme or "[unknown author]".
	</Function>
	<Function name='GetThemeDisplayName' sm-ssc='true' return='string' arguments=''>
		Returns the display name of the current theme.
	</Function>
	<Function name='ReloadMetrics' sm-ssc='true' return='void' arguments=''>
		Reloads the current theme's metrics.
	</Function>
</Class>
<Class name='TimingData'>
	<Function name='GetActualBPM' sm-ssc='true' return='{float}' arguments=''>
		Returns the minimum and maximum BPM of the song in a table (in that order).
	</Function>
	<Function name='GetBeatFromElapsedTime' sm-ssc='true' return='float' arguments='float fElapsedTime'>
		Returns the beat from <code>fElapsedTime</code>.
	</Function>
	<Function name='GetBPMAtBeat' sm-ssc='true' return='float' arguments='float fBeat'>
		Returns the BPM at <code>fBeat</code>.
	</Function>
	<Function name='GetBPMs' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of the BPMs as strings.
	</Function>
	<Function name='GetBPMsAndTimes' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of the BPMs and the times they happen as strings with the format "<code>beat=BPM</code>".
	</Function>
	<Function name='GetElapsedTimeFromBeat' return='float' arguments='float fBeat'>
		Returns the elapsed time from <code>fBeat</code>.
	</Function>
	<Function name='GetStops' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of the Stops and the times they happen as strings with the format "<code>beat=stop seconds</code>".
	</Function>
	<Function name='GetDelays' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of the Delays and the times they happen as strings with the format "<code>beat=stop seconds</code>".
	</Function>
	<Function name='GetLabels' sm-ssc='true' return='{string}' arguments=''>
		Returns a table of the Labels and the times they happen as strings with the format "<code>beat=label name</code>."
	</Function>
	<Function name='HasBPMChanges' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains BPM changes.
	</Function>
	<Function name='HasNegativeBPMs' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains any BPM changes with a negative BPM.
	</Function>
	<Function name='HasStops' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains stops.
	</Function>
	<Function name='HasWarps' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains warps.
	</Function>
        <Function name='HasFakes' sm-ssc='true' return='bool' arguments=''>
                Returns <code>true</code> if the TimingData contains fake segments.
        </Function>
	<Function name='HasSpeedChanges' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the TimingData contains speed scrolling changes.
	</Function>
</Class>
<Class name='Trail'>
	<Function name='GetArtists' return='{string}' arguments=''>
		Returns an array with all the artists in the Trail.
	</Function>
	<Function name='GetDifficulty' return='Difficulty' arguments=''>
		Returns the Trail's difficulty.
	</Function>
	<Function name='GetTrailEntries' sm-ssc='true' return='{TrailEntry}' arguments=''>
		Returns a table of TrailEntry items.
	</Function>
	<Function name='GetMeter' return='int' arguments=''>
		Returns the Trail's difficulty rating.
	</Function>
	<Function name='GetRadarValues' return='RadarValues' arguments=''>
		Returns the Trail's RadarValues.
	</Function>
	<Function name='GetStepsType' return='StepsType' arguments=''>
		Returns the Trail's StepsType.
	</Function>
	<Function name='GetTrailEntry' sm-ssc='true' return='TrailEntry' arguments='int iEntry'>
		Returns the TrailEntry at index <code>iEntry</code>.
	</Function>
</Class>
<Class name='TrailEntry'>
	<Function name='GetNormalModifiers' sm-ssc='true' return='string' arguments=''>
		Returns a string of modifiers used in this TrailEntry.
	</Function>
	<Function name='GetSong' return='Song' arguments=''>
		Returns the Song used in this TrailEntry.
	</Function>
	<Function name='GetSteps' sm-ssc='true' return='Steps' arguments=''>
		Returns the Steps used in this TrailEntry.
	</Function>
	<Function name='IsSecret' sm-ssc='true' return='bool' arguments=''>
		(why'd I think this was a good idea when we have <Link class='CourseEntry' function='IsSecret' />?)
	</Function>
</Class>
<Class name='UnlockEntry'>
	<Function name='code' return='void' arguments='string m_sEntryID'>
		Sets the UnlockEntry's ID to <code>m_sEntryID</code>.
	</Function>
	<Function name='course' return='void' arguments='string sCourseName'>
		Sets the UnlockEntry's course to <code>sCourseName</code>.<br />
		Example: <code>course,"Driven"</code>
	</Function>
	<Function name='GetCode' sm-ssc='true' return='string' arguments=''>
		Returns the code for this unlock.
	</Function>
	<Function name='GetCourse' sm-ssc='true' return='Course' arguments=''>
		Returns the Course for this unlock.
	</Function>
	<Function name='GetDescription' return='string' arguments=''>
		Returns the unlock description.
	</Function>
	<Function name='GetRequirement' return='UnlockRequirement' arguments=''>
		Returns the UnlockRequirement.
	</Function>
	<Function name='GetRequirePassHardSteps' return='bool' arguments=''>
		Returns <code>true</code> if the UnlockEntry requires you to pass Hard steps.
	</Function>
	<Function name='GetSong' return='Song' arguments=''>
		Returns the Song related to the UnlockEntry.
	</Function>
	<Function name='GetUnlockRewardType' return='UnlockRewardType' arguments=''>
		Returns the UnlockRewardType for this entry.
	</Function>
	<Function name='IsLocked' return='bool' arguments=''>
		Returns <code>true</code> if the UnlockEntry is locked.
	</Function>
	<Function name='mod' return='void' arguments='string sModifier'>
		Sets the UnlockEntry's modifier to <code>sModifier</code>.
	</Function>
	<Function name='require' return='void' arguments='UnlockRequirement ut, float m_fRequirement'>
		Sets the requirement for this unlock to <code>m_fRequirement</code>.
	</Function>
	<Function name='requirepasshardsteps' return='void' arguments=''>
		Makes the UnlockEntry require passing Hard steps.
	</Function>
	<Function name='roulette' return='void' arguments=''>
		Makes the UnlockEntry hide in Roulette.
	</Function>
	<Function name='song' return='void' arguments='string sSongName'>
		Sets the UnlockEntry's song to <code>sSongName</code>.<br />
		<code>sSongName</code> also requires the group.<br />
		Example: <code>song,"In The Groove/Pandemonium"</code>
	</Function>
	<Function name='steps' return='void' arguments='string sSong, string sSteps'>
		Sets the UnlockEntry to unlock a specified song's steps.<br />
		Example: <code>steps,"In The Groove/Pandemonium","expert"</code>
	</Function>
</Class>
<Class name='UnlockManager'>
	<Function name='AnyUnlocksToCelebrate' return='bool' arguments=''>
		Returns <code>true</code> if there are any unlocks to celebrate.
	</Function>
	<Function name='FindEntryID' return='string' arguments='string sName'>
		Returns the associated EntryID.
	</Function>
	<Function name='GetNumUnlocked' return='int' arguments=''>
		Returns the number of unlocked items.
	</Function>
	<Function name='GetNumUnlocks' return='int' arguments=''>
		Returns the number of all unlock items, regardless of status.
	</Function>
	<Function name='GetPoints' sm-ssc='true' return='float' arguments='UnlockRequirement ur' >
		Returns the number of points for the machine profile based on the specified UnlockRequirement.
	</Function>
	<Function name='GetPointsForProfile' sm-ssc='true' return='float' arguments='Profile p, UnlockRequirement ur' >
		Returns the number of points for the specified profile based on the specified UnlockRequirement.
	</Function>
	<Function name='GetPointsUntilNextUnlock' return='float' arguments='UnlockRequirement ut'>
		Returns the number of points until the next unlock.
	</Function>
	<Function name='GetSongsUnlockedByEntryID' return='{Song}' arguments='string sEntryID'>
		Returns a table of songs unlocked by UnlockEntry <code>sEntryID</code>.
	</Function>
	<Function name='GetStepsUnlockedByEntryID' return='{Steps}' arguments='string sEntryID'>
		Returns a table of steps unlocked by UnlockEntry <code>sEntryID</code>.
	</Function>
	<Function name='GetUnlockEntry' return='UnlockEntry' arguments='int iIndex'>
		Returns the UnlockEntry at <code>iIndex</code>.
	</Function>
	<Function name='GetUnlockEntryIndexToCelebrate' return='int' arguments=''>
		Returns the UnlockEntry index to celebrate.
	</Function>
	<Function name='PreferUnlockEntryID' return='void' arguments='string sUnlockEntryID' />
	<Function name='UnlockEntryID' return='void' arguments='string sUnlockEntryID'>
		Unlocks an entry by ID.
	</Function>
	<Function name='UnlockEntryIndex' return='void' arguments='int iUnlockEntryID'>
		Unlocks an entry by index.
	</Function>
</Class>
<Class name='WheelBase'>
	<Function name='GetCurrentIndex' sm-ssc='true' return='int' arguments=''>
		Returns the wheel's current index.
	</Function>
	<Function name='GetNumItems' sm-ssc='true' return='int' arguments=''>
		Returns the total number of items in the wheel.
	</Function>
	<Function name='GetWheelItem' return='WheelItemBaseData' arguments='int iIndex'>
		Returns the WheelItem at index <code>iIndex</code>.
	</Function>
	<Function name='IsLocked' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the wheel is locked.
	</Function>
	<Function name='IsSettled' sm-ssc='true' return='bool' arguments=''>
		Returns <code>true</code> if the wheel is settled/stopped moving.
	</Function>
	<Function name='Move' sm-ssc='true' return='void' arguments='int n'>
		Moves the wheel by <code>n</code>.
	</Function>
	<Function name='SetOpenSection' sm-ssc='true' return='void' arguments='string sSection'>
		Attempts to set the open section to <code>sSection</code>.
	</Function>
</Class>
<Class name='WorkoutGraph'>
	<Function name='SetFromCurrentWorkout' return='void' arguments=''>
		Sets the WorkoutGraph from the current Workout.
	</Function>
	<Function name='SetFromGameStateAndHighlightSong' return='void' arguments='int iSongIndex'>
		Sets the WorkoutGraph from GameState and song index <code>iSongIndex</code>.
	</Function>
</Class>
</Classes>
<!-- Enums -->
<Enums>
<Enum name='BlendMode'>
	<Description>
		Blending modes. See <Link class='Actor' function='blend' />.
	</Description>
</Enum>
<Enum name='HorizAlign'>
	<Description>
		Horizontal alignment. See <Link class='Actor' function='horizalign' />.
	</Description>
</Enum>
<Enum name='VertAlign'>
	<Description>
		Vertical alignment. See <Link class='Actor' function='vertalign' />.
	</Description>
</Enum>
</Enums>
</Documentation>
