<?xml version="1.0" encoding="utf-8"?>
<Commands xmlns="http://tempuri.org/Commands.xsd">
    <Category Title="System Operations">
        <Item Name="Reboot" Description="Reboots your xbox">Reboot</Item>
        <Item Name="Shutdown" Description="Shuts down the xbox">Shutdown</Item>
        <Item Name="PowerCycle" Description="Shuts down the xbox and then turn it on">PowerCycle</Item>
        <Item Name="ResetMenuCache" Description="Resets the menu cache. Do this after copying a new app/game to the hard disk">ResetMenuCache</Item>
        <Item Name="TrayOpen" Description="Opens the DVD Tray">TrayOpen</Item>
        <Item Name="TrayClose" Description="Closes the DVD Tray">TrayClose</Item>
        <Item Name="LaunchDVD" Description="Launches the DVD in Drive">LaunchDVD</Item>
        <Item Name="SystemMenu &lt;Activate|Hide|Unhide|ActivateFull&gt;" Description="">SystemMenu</Item>
        <Item Name="EEPROMBackup [Filename]" Description="Backs up EEPROM contents, encrypted, to a file, file defaults to 'eeprom.bin' in current directory">EEPROMBackup</Item>
        <Item Name="EEPROMRestore [Filename]" Description="Restores EEPROM contents, encrypted, from a file, file defaults to 'eeprom.bin' in current directory">EEPROMRestore</Item>
        <Item Name="SetFanSpeed &lt;Manual|Default&gt; &lt;speed&gt;" Description="Sets speed from 10 to 50">SetFanSpeed</Item>
        <Item Name="Date &lt;Day&gt; &lt;Month&gt; &lt;Year&gt;" Description="Sets Date">Date</Item>
        <Item Name="Time &lt;00:00&gt;" Description="Sets time">Time</Item>
    </Category>
    <Category Title="Drive Operations">
        <Item Name="AllowFormat &lt;1|0&gt;" Description="Allows format through scripts and FTP SITE commands">AllowFormat</Item>
        <Item Name="Format &lt;Drive&gt;" Description="Formats the drive">Format</Item>
        <Item Name="Mount &lt;Drive:&gt; [&lt;DevicePartitionPath&gt;]" Description="">Mount</Item>
    </Category>
    <Category Title="File/Folder Operations">
        <Item Name="Attr &lt;FileOrDir&gt; ro|rw" Description="Sets file attributes">Attr</Item>
        <Item Name="Chmod 777 &lt;FileOrDir&gt;" Description="This command is compatible with FlashFXP's 'Attributes' action">Chmod</Item>
        <Item Name="MkDir &lt;PATH&gt;" Description="MAkes a directory">MkDir</Item>
        <Item Name="RmDir &lt;PATH&gt; &lt;CASCADE&gt;" Description="Removes a directory">RmDir</Item>
        <Item Name="CD &lt;PATH&gt;" Description="GUI only, sets default directory, which starts as MXM's path">CD</Item>
        <Item Name="Copy &lt;Path/File/Wildcard&gt; &lt;Path/File&gt;" Description="">Copy</Item>
        <Item Name="Rename &lt;FileOrPath&gt; &lt;FileOrPath&gt;" Description="Renames the file or directory">Rename</Item>
        <Item Name="Delete &lt;File&gt;" Description="Deletes the file">Delete</Item>
        <Item Name="MediaPatch &lt;FilePath&gt;" Description="Experimental, patches media flag and media check code">MediaPatch</Item>
        <Item Name="Exec &lt;xbe&gt; [&lt;args&gt;]" Description="Executes xbe">Exec</Item>
    </Category>
    <Category Title="Functions">
        <Item Name="Set &lt;VarName&gt; &lt;Value&gt;" Description="">Set</Item>
        <Item Name="SetFunc &lt;VarName&gt; XBETitle &lt;FileName&gt;" Description="Returns the XBE Title game name">XBETitle</Item>
        <Item Name="SetFunc &lt;VarName&gt; XBEID &lt;FileName&gt;" Description="Returns the XBE ID: unique (usually&gt;) number for each xbe">XBEID</Item>
        <Item Name="SetFunc &lt;VarName&gt; FileSize &lt;FileOrPath&gt;" Description="Returns the size of the file or folder">FileSize</Item>
        <Item Name="SetFunc &lt;VarName&gt; FileExist &lt;FileOrPath&gt;" Description="Returns whether the specified file or folder exists - (Returns 1 or 0)?">FileExist</Item>
        <Item Name="SetFunc &lt;VarName&gt; PathEmpty &lt;Path&gt;" Description="Returns whether the directory is empty">PathEmpty</Item>
        <Item Name="SetFunc &lt;VarName&gt; Left &lt;Count&gt; &lt;Text&gt;" Description="Returns the first &lt;Count&gt; characters from the left of the string">Left</Item>
        <Item Name="SetFunc &lt;VarName&gt; Right &lt;Count&gt; &lt;Text&gt;" Description="Similar to LEFT">Right</Item>
        <Item Name="SetFunc &lt;VarName&gt; Mid &lt;Count&gt; &lt;Length&gt; &lt;Text&gt;" Description="Returns &lt;Length&gt; characters, starting from &lt;Count&gt;">Mid</Item>
        <Item Name="SetFunc &lt;VarName&gt; Space &lt;Count&gt;" Description="Returns a string with &lt;Count&gt; spaces (?)">Space</Item>
        <Item Name="SetFunc &lt;VarName&gt; Repeat &lt;Count&gt; &lt;Text&gt;" Description="">Repeat</Item>
        <Item Name="SetFunc &lt;VarName&gt; Length &lt;Text&gt;" Description="Returns the length of the string">Length</Item>
        <Item Name="SetFunc &lt;VarName&gt; Trim &lt;Text&gt;" Description="Returns after removing leading and trailing spaces (whitespace) ">Trim</Item>
        <Item Name="SetFunc &lt;VarName&gt; TrimLeft &lt;Text&gt;" Description="Same as TRIM but from the left only">TrimLeft</Item>
        <Item Name="SetFunc &lt;VarName&gt; TrimRight &lt;Text&gt;" Description="Same as TRIM but from the right only">TrimRight</Item>
        <Item Name="SetFunc &lt;VarName&gt; Lower &lt;Text&gt;" Description="Returns the specified string, converted to lower case">Lower</Item>
        <Item Name="SetFunc &lt;VarName&gt; Upper &lt;Text&gt;" Description="Returns the specified string, converted to upper case">Upper</Item>
        <Item Name="SetFunc &lt;VarName&gt; Condition &lt;conditional&gt; " Description="Sets value to 1 or 0, depending on state of skin conditional">Condition</Item>
        <Item Name="SetFunc &lt;VarName&gt; !Condition &lt;conditional&gt;" Description="Not Condition">!Condition</Item>
        <Item Name="SetFunc &lt;VarName&gt; FNBaseName &lt;FilePath&gt;" Description="">FNBaseName</Item>
        <Item Name="SetFunc &lt;VarName&gt; FNExtension &lt;FilePath&gt;" Description="">FNExtension</Item>
        <Item Name="SetFunc &lt;VarName&gt; FNPath &lt;FilePath&gt;" Description="">FNPath</Item>
        <Item Name="SetFunc &lt;VarName&gt; FNMerge &lt;Path&gt; &lt;Filename&gt; [&lt;Extension&gt;]" Description="">FNMerge</Item>
        <Item Name="SetFunc &lt;VarName&gt; FATXify &lt;filename&gt; [&lt;replacementchar&gt;]" Description="Do not use with a full path! backslashes and colons will be removed!!">FATXify</Item>
        <Item Name="SetFunc &lt;VarName&gt; TempFile &lt;Path&gt; &lt;Prefix&gt; (Creates a new temporary filename)" Description="">TempFile</Item>
        <Item Name="SetFunc &lt;VarName&gt; Replace &lt;Old&gt; &lt;New&gt; &lt;Source&gt;" Description="Returns a string with all instances of 'Old' replaced with 'New'">Replace</Item>
        <Item Name="SetFunc &lt;VarName&gt; ContextScriptExists &lt;scriptName&gt;" Description="">ContextScriptExists</Item>
        <Item Name="SetFunc &lt;VarName&gt; ScriptExists &lt;scriptName&gt;" Description="">ScriptExists</Item>
    </Category>
    <Category Title="Arithmetic Operations">
        <Item Name="Add &lt;VarName&gt; &lt;Value&gt;" Description="Numerically adds value to variable's value">Add</Item>
        <Item Name="Sub &lt;VarName&gt; &lt;Value&gt;" Description="Numerically subtracts value from variable's value">Sub</Item>
        <Item Name="Div &lt;VarName&gt; &lt;Value&gt;" Description="Numerically divides the variable's value by value">Div</Item>
        <Item Name="Mult &lt;VarName&gt; &lt;Value&gt;" Description="Numerically multiplies the variable's value by value">Mult</Item>
    </Category>
    <Category Title="Scripting Commands">
        <Item Name=":&lt;Label&gt;" Description="">Label</Item>
        <Item Name="Goto &lt;Label&gt;" Description="">Goto</Item>
        <Item Name="Quit" Description="">Quit</Item>
        <Item Name="IF &lt;arg1&gt; &lt;op&gt; &lt;arg2&gt; GOTO &lt;label&gt;" Description=" Evaluates by comparing strings">IF</Item>
        <Item Name="IF#" Description="Used to evaluate numerically; used same as normal IF.">IF#</Item>
        <Item Name="CallFile &lt;file&gt; &lt;Args...&gt;" Description="Runs actionscript from the specified file">CallFile</Item>
        <Item Name="CallScript &lt;name&gt; &lt;Args...&gt;" Description="Used to call internal scripts (check internal scripts section)">CallScript</Item>
        <Item Name="Delay &lt;Delay Sec&gt;" Description="Waits specified number of seconds">Delay</Item>
        <Item Name="DelayMS &lt;Delay ms&gt;" Description="Waits specified number of miliseconds">DelayMS</Item>
    </Category>
    <Category Title="Drawing Commands">
        <Item Name="MsgBox &lt;message&gt;" Description="Displays a message box">MsgBox</Item>
        <Item Name="BeginDraw [UseCurrent]" Description="">BeginDraw</Item>
        <Item Name="Box &lt;X&gt; &lt;Y&gt; &lt;Width&gt; &lt;Height&gt; [&lt;Color&gt;] [&lt;BorderColor&gt;]" Description="Draws a box on the screen.  Requires begindraw">Box</Item>
        <Item Name="Text &lt;X&gt; &lt;YTOP&gt; &lt;CENTER|LEFT|RIGHT&gt; &lt;Text&gt; [&lt;Color&gt;]" Description="Writes text on the screen.  Requires begindraw">Text</Item>
        <Item Name="EndDraw" Description="">EndDraw</Item>
    </Category>
    <Category Title="XML Operations">
        <Item Name="XMLOpen &lt;HandleName&gt; &lt;FileName&gt;" Description="Opens an XML file or internal XML link (::MXM, ::PREFS, ::MENUCACHE, ::MENU, ::Internal)">XMLOpen</Item>
        <Item Name="XMLSave &lt;HandleName&gt; [&lt;FileName&gt;]" Description="Saves XML back out to a given file">XMLSave</Item>
        <Item Name="XMLSaveNode &lt;HandleName&gt; &lt;FileName&gt;" Description="Save current selected node to file (File must not exist)">XMLSaveNode</Item>
        <Item Name="XMLSetNodePtr &lt;HandleName&gt; &lt;Node&gt; [OnFail &lt;Label&gt;]" Description="Set the current node pointer.  To start from 'root' use ! Example: !.FTPServer.User:1 (Accesses second user node in FTPServer node of a config file)">XMLSetNodePtr</Item>
        <Item Name="XMLCreateNode &lt;HandleName&gt; &lt;Node&gt; [OnFail &lt;Label&gt;]" Description="">XMLCreateNode</Item>
        <Item Name="XMLCreateElement &lt;HandleName&gt; &lt;Element&gt; [OnFail &lt;Label&gt;]" Description="">XMLCreateElement</Item>
        <Item Name="XMLSetElementPtr &lt;HandleName&gt; &lt;Element&gt; [OnFail &lt;Label&gt;]" Description="Must be relative to currently set node, or this will also cause the current node to change">XMLSetElementPtr</Item>
        <Item Name="XMLSetElementValue &lt;HandleName&gt; &lt;Value&gt;" Description="">XMLSetElementValue</Item>
        <Item Name="XMLSetElementAttr &lt;HandleValue&gt; &lt;Attribute&gt; &lt;Value&gt;" Description="">XMLSetElementAttr</Item>
        <Item Name="XMLSetNodeAttr &lt;HandleValue&gt; &lt;Attribute&gt; &lt;Value&gt;" Description="">XMLSetNodeAttr</Item>
        <Item Name="XMLSetValue &lt;HandleValue&gt; &lt;Location&gt; &lt;Value&gt; [&lt;AttrPref&gt;]" Description="">XMLSetValue</Item>
        <Item Name="XMLGetValue &lt;HandleValue&gt; &lt;VarName&gt; &lt;Location&gt; [&lt;DefaultValue&gt;]" Description="">XMLGetValue</Item>
        <Item Name="XMLGetNodeCount &lt;HandleName&gt; &lt;VarName&gt; [&lt;Name&gt;]" Description="">XMLGetNodeCount</Item>
        <Item Name="XMLGetElementCount &lt;HandleName&gt; &lt;VarName&gt; [&lt;Name&gt;]" Description="">XMLGetElementCount</Item>
        <Item Name="XMLGetNodeAttrCount &lt;HandleName&gt; &lt;VarName&gt;" Description="">XMLGetNodeAttrCount</Item>
        <Item Name="XMLGetElementAttrCount &lt;HandleName&gt; &lt;VarName&gt;" Description="">XMLGetElementAttrCount</Item>
        <Item Name="XMLCreate &lt;HandleName&gt; &lt;MainNodeName&gt;" Description="">XMLCreate</Item>
        <Item Name="XMLClose &lt;HandleName&gt;" Description="">XMLClose</Item>
    </Category>
    <Category Title="File/Folder Searching">
        <Item Name="BeginSearch &lt;WildCardPath&gt;" Description="The local variables 'search_name', 'search_path', 'search_arg', 'search_size', 'search_type', 'search_active' (which equals '1' when the search values are OK) are upDated during the search">BeginSearch</Item>
        <Item Name="SearchItem &lt;VarName&gt;" Description="Load VarName with current file/pathname">SearchItem</Item>
        <Item Name="SearchSize &lt;VarName&gt;" Description="Load VarName with current file size">SearchSize</Item>
        <Item Name="SearchType &lt;VarName&gt;" Description="Load VarName with current type for entry - 'file' or 'dir'">SearchType</Item>
        <Item Name="SearchNext" Description="">SearchNext</Item>
        <Item Name="EndSearch" Description="">EndSearch</Item>
    </Category>
    <Category Title="File Read/Write">
        <Item Name="OpenRead &lt;HandleName&gt; &lt;FilePath&gt;" Description="Opens the specified file for input">OpenRead</Item>
        <Item Name="OpenWrite &lt;HandleName&gt; &lt;FilePath&gt;" Description="Opens the specified file for output">OpenWrite</Item>
        <Item Name="ReadFileLN &lt;HandleName&gt; &lt;VarName&gt; " Description="Reads line and loads variable">ReadFileLN</Item>
        <Item Name="WriteFileLN &lt;HandleName&gt; &lt;Text&gt; " Description="Writes line with text and appends CR/LF">WriteFileLN</Item>
        <Item Name="WriteFile &lt;HandleName&gt; &lt;Text&gt;" Description="Writes line with text">WriteFile</Item>
        <Item Name="CloseFile &lt;HandleName&gt;" Description="">CloseFile</Item>
        <Item Name="FileStat &lt;HandleName&gt; &lt;VarName&gt;" Description="If file access is OK, value will be '1' - for read, '0' means end - otherwise">FileStat</Item>
        <Item Name="WebFileFetch &lt;Filename&gt; &lt;URL&gt;" Description="A little goodie... but this is a very basic HTTP client, so it won't work with all sites">WebFileFetch</Item>
    </Category>
</Commands>