]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/opserv.help
Fix typos and copy errors in opserv help
[irc/evilnet/x3.git] / src / opserv.help
index bb24b5209c46f58db0bdf7e541b95875b780d454..f9c040131d8174452722fa5a6e27dee475f86881 100644 (file)
-"<INDEX>"  ("=------------------ $b$O Help$b ------------------=",
+"<INDEX>"  (
             " $O provides Oper Services for the Network.    ",
             " Please choose from the following categories:  ",
-            "  $bGOD$b         Enabling channel override.   ",
-            "  $bPUNISH$b      Commands to discipline users.",
             "  $bINFORMATION$b Get information about users. ",
             "              or $O, $C, and $N.           ",
-            "  $bTRACES$b      Powerfull commands for       ",
+            "  $bPUNISH$b      Commands to discipline users.",
+            "  $bCHANNEL$b     Channel commands.            ",
+            "  $bUSER$b        User commands.               ",
+            "  $bTRACES$b      Powerful commands for       ",
             "              viewing or acting on lists of",
             "              IRC objects.                 ",
             "  $bALERTS$b      Automated responses.         ",
-            "  $bCHANNEL$b     Channel commands.            ",
+            "  $bGOD$b         Enabling channel override.   ",
+            "  $bTRACKING$b    Tracking commands. (if enabled)",
             "  $bCLONES$b      Manage trusts and limits.    ",
+            "  $bROUTING$b     Manage the Auto Routing System.",
             "  $bSETTINGS$b    View and temporarily change  ",
             "              config file settings.        ",
             "  $bADMIN$b       Misc Administrator Commands. ",
-            "  $bOWNERONLY$b   $O operator only commands.   ",
-            "=---------------- End of Help ----------------="
+            "  $bOWNERONLY$b   $O operator only commands.   "
 );
-"COMMANDS" "${index}";
-
-"PUNISH"   ("=------------- $bUser Punishments$b --------------=",
+"COMMANDS" ("The following commands are available in $O:",
+            "${index}",
+            "$uSee Also$u: modcmd, access, command");
+"INDEX" ("The following commands are available in $O:",
+            "${index}",
+            "$uSee Also$u: modcmd, access, command");
+
+"PUNISH"   (
             "  $bGLINE$b       Global Ban a host.",
             "  $bUNGLINE$b     Remove a GLINE.",
             "  $bBLOCK$b       Gline by nickname.",
             "  $bTRACE GLINE$b Gline all hosts matching a search.",
             "  $bGTRACE$b      Search the gline list.",
             "  $b$b",
+            "  $bSHUN$b        Global Shun a host.",
+            "  $bUNSHUN$b      Remove a SHUN.",
+            "  $bSBLOCK$b      Shun by nickname.",
+            "  $bTRACE SHUN$b  Shun all hosts matching a search.",
+            "  $bSTRACE$b      Search the shun list.",
+            "  $b$b",
             "  $bGAG$b         Cause the services to ignore... ",
-            "  $bUNGAG$b       ...or unignore by mask.",
-            "=---------------- End of Help ----------------="
+            "  $bUNGAG$b       ...or unignore by mask."
             );
 
-"INFORMATION"  ("=----------- $bInformation Gathering$b -----------=",
+"USER"     (
+            " $bSVSJOIN$b      Force a user to join a channel.",
+            " $bSVSPART$b      Force a user to part a channel.",
+            " $bSVSNICK$b      Force a user to change nicks.",
+            " $bACCESS$b       Show/modify $O access level of a user."
+           );
+
+"INFORMATION"  (
                 "  $bACCESS$b  Shows a users $O access level.",
                 "  $bSTATS$b   Show various lists and runtime info.",
                 "  $bWHOIS$b   Show details about a user by nick.",
                 "  $bVERSION$b Show the $O version information.",
                 "  $bLOG$b     View $O logs.",
-                "  $bTRACES$b  Powerfull commands for viewing or acting on lists of IRC objects.",
-                "=--------------- End of Help ----------------="
+                "  $bTRACES$b  Powerful commands for viewing or acting on lists of IRC objects."
                );
 
-"TRACES"   ("=------------------ $bTraces$b ------------------=",
+"TRACES"   (
             "  $bTRACE$b    Search current users and optionally apply an action.",
             "  $bGTRACE$b   Search current GLINEs and optionally remove them.",
-            "  $bCSEARCH$b  Search current channels.",
-            "=--------------- End of Help ----------------="
+            "  $bSTRACE$b   Search current SHUNs and optionally remove them.",
+            "  $bCSEARCH$b  Search current channels."
            );
 
-"ALERTS"   ("=------------------ $bAlerts$b ------------------=",
+"ALERTS"   (
             "  $bADDALERT$b  Make $O automatically do something",
             "            when users match a criteria.",
             "  $bDELALERT$b  Remove an alert.",
-            "  $bWARN$b      Cause activity on a channel to warn",
-            "  $b$b          ircops.",
-            "  $bUNWARN$b    Remove a channel activity warning.",
-            "  $bSTATS ALERT$b See a listing of alerts. ",
-            "=--------------- End of Help ----------------="
+            "  $bSTATS ALERTS$b See a listing of alerts. "
            );
 
-"CHANNEL"  ("=------------- $bChannel Commands$b -------------=",
+"TRACKING"   (
+              " These commands only work if the tracking module has been compiled in",
+              "  $b$b",
+              "  $bTRACK$b     Display and set tracking options.",
+              "  $bADDTRACK$b  Adds a nick to the tracking list.",
+              "  $bDELTRACK$b  Deletes an active track.",
+              "  $bLISTTRACK$b Lists all active tracks.",
+             );
+
+"PRIVILEGE" (
+             " The Privilege list system: ",
+             " $b$b",
+             " $bPRIVSET$b Set and unset privileges on the fly."
+            );
+
+"ROUTING"  (
+            " The Auto Routing System: ",
+            " $b$b",
+            " $bSTATS ROUTING$b     Shows everything about the auto routing configuration.",
+            " $bROUTING ADDPLAN$b   Creates a new routing plan. Routing plans are a collection of server linking information that $O uses to decide how to route.",
+            " $bROUTING DELPLAN$b   Deletes a routing plan (and all its servers).",
+            " $bROUTING ADDSERVER$b Adds server linking information to a plan.",
+            " $bROUTING DELSERVER$b Deletes a server from a routing plan.",
+            " $bROUTING SET$b       Show and change routing settings. ",
+            " $bROUTING MAP$b       Show what the active routing plan says the network should look like.",
+            " $bREROUTE$b           Connect servers to the network, optionally squiting them first to change the routing.",
+            " $b$b ",
+            " Start by creating a routing plan, and then adding servers to it, with their listening port, uplink, and a backup uplink. You can view it in $bSTATS ROUTING planname$b. Take care not to create loops, and that you make everything connected. Then set your new plan ACTIVE using $bROUTING SET$b. $O does the rest! See help topic $bROUTING EXAMPLE$b for a working example."
+            );
+
+"CHANNEL"  (
             "  $bOP$b      Op someone.",
             "  $bDEOP$b    Deop someone.",
+            "  $bHOP$b     Half Op someone.",
+            "  $bDEHOP$b   DeHalfop someone.",
             "  $bVOICE$b   Voice someone.",
             "  $bDEVOICE$b Devoice someone.",
             "  $bKICK$b    Kick someone.",
             "  $b$b",
             "  $bOPALL$b      Op everyone in a channel.",
             "  $bDEOPALL$b    Deop everyone in a channel.",
+            "  $bHOPALL$b     Half Op everyone in a channel.",
+            "  $bDEHOPALL$b   Dehalfop everyone in a channel.",
             "  $bVOICEALL$b   Voice everyone in a channel.",
             "  $bDEVOICEALL$b Devoice everyone in a channel.",
+            "  $bFORCEKICK$b  Kicks someone even if they are +k.",
             "  $bKICKALL$b    Kick everyone from a channel.",
             "  $bKICKBANALL$b Kickban everyone from a channel.",
             "  $b$b",
             "  $bINVITE$b     Invite someone to a channel.",
             "  $bINVITEME$b   Invite yourself to a channel.",
-            "  $bCLEARBANS$b  Cear all bans from a channel.",
-            "  $bCLEARMODES$b Clear all modes from a channel.",
-            "=--------------- End of Help ----------------="
+            "  $bCLEARBANS$b  Clear all bans from a channel.",
+            "  $bCLEARMODES$b Clear all modes from a channel."
            );
 
-"CLONES"   ("=-------------- $bClone handling$b --------------=",
+"CLONES"   (
             "  $bADDTRUST$b  Add a clone limit exemption for a host.",
             "  $bDELTRUST$b  Remove a clone exemption.",
             "  $bEDITTRUST$b Modify a clone exemption.",
             "  $bquery services/opserv/untrusted_max$b",
-            "                View the clone kill limit",
-            "=--------------- End of Help ----------------="
+            "                View the clone kill limit"
            );
 
-"SETTINGS" ("=----------------- $bSettings$b -----------------=",
+"SETTINGS" (
             "  $bQUERY$b  Show a runtime config setting.",
-            "  $bSET$b    $uTemporarily$u change a runtime config setting.",
-            "=--------------- End of Help ----------------="
+            "  $bSET$b    $uTemporarily$u change a runtime config setting."
            );
 
-"ADMIN"    ("=---------- $bAdministrative Commands$b ---------=",
+"ADMIN"    (
             "  $bACCESS$b  Modify someone's $O access level.",
             "  $bCOMMAND$b      Show details of a command.",
             "  $bSHOWCOMMANDS$b List all commands and required access levels.",
             "  $bCLONE$b        Create and manipulate a fake user.",
             "  $bCOLLIDE$b      Create a clone, colliding an existing user.",
             "  $bRESERVE$b      Permanently reserve a nick with a clone.",
-            "  $bUNRESERVE$b    Remove a perminant reserved clone.",
+            "  $bUNRESERVE$b    Remove a permanent reserved clone.",
             "  $bJUPE$b         Create dummy server.",
             "  $bUNJUPE$b       Remove a dummy server.",
             "  $b$b",
+            "  $bDEFCON$b       Manipulate the DefCon system.",
             "  $bREFRESHG$b     Refresh the Glines.",
+            "  $bREFRESHS$b     Refresh the Shuns.",
             "  $bSETTIME$b      Synchronize time across the network.",
-            "  $bTIMECMD$b      Time how long a command runs.",
-            "=--------------- End of Help ----------------="
+            "  $bTIMECMD$b      Time how long a command runs."
            );
 
-"OWNERONLY" ("=------------- $bOwner Only Stuff$b -------------=",
+"OWNERONLY" (
              "  $bWRITE$b         Write out a database.",
              "  $bWRITEALL$b      Write out ALL databases.",
              "  $bREOPEN$b        Close and Re-Open the logs.",
              "  $bDIE$b           Make the bot quit.",
              "  $bJUMP$b          Change uplink servers.",
              "  $bRECONNECT$b     Reconnect to this uplink server.",
-             "  $bGSYNC$b         Pull glines from the givin server into memory.",
+             "  $bGSYNC$b         Pull glines from the given server into memory.",
+             "  $bSSYNC$b         Pull shuns from the given server into memory.",
              "  $b$b",
              "  $bMODCMD$b        Change details of a command.",
              "  $bBIND$b          Make a command alias.",
              "  $bUNBIND$b        Remove a command alias.",
+             "  $bREBINDALL$b     Re-create all missing commands on all services",
              "  $bHELPFILES$b     Change the helpfile priority order.",
              "  $b$b",
              "  $bSERVICE ADD$b         Create a new service bot.",
              "  $bADDEXEMPT$b     Make an exception to the illegal word list for a channel.",
              "  $bDELEXEMPT$b     Remove an exception of the illegal word list.",
              "  $b$b",
-             "  $bDUMP$b          Drop safetychecked server protocol to the server. ",
-             "  $bRAW$b           Draw raw server protocol to the server. (DANGEROUS!)",
-             "=--------------- End of Help ----------------="
+             "  $bDUMP$b          Drop safety-checked server protocol to the server. ",
+             "  $bRAW$b           Drop raw server protocol to the server. (DANGEROUS!)",
+             "  $b$b",
+             "  $bRESETMAX$b      Reset the maximum recorded users. (used in the event of a clone flood)"
             );
 
 
 "ACCESS" ("/msg $O ACCESS [nick|*account] [new-level]",
         "Displays the $O access level for the specified user or account.  With no arguments, displays your own access level.  With two arguments, sets the target's $O access level to the second argument (assuming you have sufficient access to do so).",
+        "\"ACCESS *\" will show the access levels of everyone.",
         "Access level: $b${level/access}$b",
         "$uSee Also:$u commands, modcmd"
         );
 
-"ADDALERT" ("/msg $O ADDALERT <name> <reaction> <criteria>",
+"ADDALERT" ("/msg $O ADDALERT <name> <reaction> [expire <duration>] <criteria>",
         "Adds the specified alert to the $b$O$b alert list.",
-        "Alerts watch for users matching a givin criteria and perform an action on them.",
+        "Alerts watch for users matching a given criteria and perform an action on them.",
         "   <name> - An alphanumeric word to identify this alert in the list",
         "   <reaction> - What to do if a user matches the criteria. See $bALERT REACTION$b.",
+        "   <duration> - Duration after which the alert should be deleted. See $bdurations$b.",
         "   <criteria> - What to look for. See $bTRACE CRITERIA$b.",
         "Access level: $b${level/addalert}$b",
         "$uSee Also:$u delalert, alert reaction, trace criteria"
         );
 
-"TIME NOTATION" ("=---------------- $bTime Notation$b ---------------=",
-                 " Many commands require a duration perameter ",
+"TIME NOTATION" (
+                 " Many commands require a duration parameter ",
                  " which all use the same syntax: ",
                  "      1s  - 1 second ",
                  "      2m  - 2 minutes ",
                  "      1y  - 1 year",
                  " Times can be compounded such as: ",
                  "      1m40s - 1 minute and 40 seconds ",
-                 "      5h20m30s - 5 hours 20 minutes and 30 seconds ",
-                 "=-----------------------------------------------="
+                 "      5h20m30s - 5 hours 20 minutes and 30 seconds "
                  ); 
 
 "ADDTRUST" ("/msg $O ADDTRUST <ip> <count> <duration> <reason>",
         "<duration> uses $btime  notation$b",
         "You may use 0 as the duration if you do not wish the trust to ever expire, and 0 as the count for unlimited connections.",
         "Access level: $b${level/addtrust}$b",
-        "$uSee Also:$u deltrust, stats trusted, time notation"
+        "$uSee Also:$u deltrust, edittust, stats trusted, time notation"
         );
 
 "ALERT REACTION" ("$bALERT REACTION$b",
         "$bNOTICE$b:       Send a notice to the $b$O$b alert channel",
         "$bKILL$b:         Disconnect the user",
         "$bGLINE$b:        Gline the user that tripped the alert",
+        "$bTRACK$b:        Send a notice to the $b$O$b alert channel and track the user (if the tracking module is loaded)",
+        "$bSHUN$b :        Shun the user that tripped the alert",
+        "$bTEMPSHUN$b :    Temporarily shun the user that tripped the alert",
+        "$bVERSION$b :     Check the version on the user that tripped the alert",
+        "$bSVSJOIN$b :     Force the user that tripped the alert to join the target channel",
+        "$bSVSPART$b :     Force the user that tripped the alert to part the target channel",
+        "$bMARK$b :        Mark the user that tripped the alert (must be used in combination with the mark trace criteria)",
         "$uSee Also:$u addalert, delalert"
         );
 
 "DELTRUST" ("/msg $O DELTRUST <ip>",
         "Deletes a trusted IP from $b$O's$b trusted hosts list. A trusted IP address is exempted from normal client limits. A list of currently trusted IPs is displayed by $bstats trusted$b.",
         "Access level: $b${level/deltrust}$b",
-        "$uSee Also:$u addtrust, stats"
+        "$uSee Also:$u addtrust, edittrust, stats"
         );
-
+"EDITTRUST" ("/msg $O EDITTRUST <ip> <count> <duration> <reason>",
+        "Edits the 'trust' for the specified IP, changing the count, duration and/or reason.",
+        "You may use 0 as the duration if you do not wish the trust to ever expire, and 0 as the count for unlimited connections.",
+        "$uSee Also:$u addtrust, deltrust, stats trusted");
+"INVITE" ("/msg $O INVITE #channel",
+        "Invites you to the specified channel.");
 "INVITEME" ("/msg $O INVITEME [nick]",
         "Invites the specified user (if omitted, you) to $O's debug channel.",
         "This is currently pointless, since no output is sent to the debug channel.",
         
 "TRACE" ("/msg $O TRACE <action> <criteria> <value> [<criteria> <value>]...",
         "Searches through the current users for those matching the specified criteria, and applies the specified action to them. A detailed list of actions can be found in $bhelp trace action$b and a list of criteria in $bhelp trace criteria$b.",
-        "Quick Ref ACTIONS: PRINT, COUNT, KILL, GLINE, GAG, DOMAINS",
-        "Quick Ref CRITERIA: MASK, NICK, IDENT, HOST, INFO, SERVER, IP, ACCOUNT, AUTHED, CHANNEL, NUMCHANNELS, LIMIT, NICKAGE, ACCESS, REASON, DEPTH, DURATION, CLONES, INFO_SPACE, ABUSE OPERS, LOG",
+        "Quick Ref ACTIONS: PRINT, COUNT, PRIVMSG, NOTICE, KILL, GLINE, SHUN, TEMPSHUN, GAG, DOMAINS, SVSJOIN, SVSPART, VERSION",
+        "Quick Ref CRITERIA: MASK, NICK, IDENT, HOST, INFO, SERVER, IP, ACCOUNT, AUTHED, CHANNEL, NUMCHANNELS, LIMIT, NICKAGE, ACCESS, REASON, DEPTH, DURATION, CLONES, INFO_SPACE, CHECKRESTRICTIONS ABUSE OPERS, LOG, REGEX, CHANTARGET, SILENT, VERSION, MARKED",
         "Access level: $b${level/trace}$b",
         "$uSee Also:$u trace action, trace criteria"
         );
 
 "TRACE ACTION" ("$bTRACE ACTION$b",
         "Options for action in $btrace$b are:",
-        "$bPRINT$b:   Display the hostmask to you.",
-        "$bCOUNT$b:   Count all matching users.",
-        "$bKILL$b:    Kill matching clients.",
-        "$bGLINE$b:   Issue a gline for the client's host (by default, 1 hour long).",
-        "$bGAG$b:     Gag all matching users (by default, does not expire).",
-        "$bDOMAINS$b: Display counts of users in each domain (length specified by DEPTH criteria.", 
-        "Note: By default, IRC operators are not affected by the KILL, GLINE or GAG actions.  You can override this by specifying the $bABUSE OPERS$b criteria for a trace.  Even if you do specify $bABUSE OPERS$b, it will not affect opers at your access level or above.",
+        "$bPRINT$b:    Display the hostmask to you.",
+        "$bCOUNT$b:    Count all matching users.",
+        "$bPRIVMSG$b:  Send a PRIVMSG to all matching users containing REASON.",
+        "$bNOTICE$b:   Send a NOTICE to all matching users containing REASON.",
+        "$bKILL$b:     Kill matching clients.",
+        "$bGLINE$b:    Issue a gline for the client's host (by default, 1 hour long).",
+        "$bSHUN$b:     Issue a shun for the client's host (by default, 1 hour long).",
+        "$bTEMPSHUN$b: Issue a temporary shun that affects only the targeted users.",
+        "$bGAG$b:      Gag all matching users (by default, does not expire).",
+        "$bDOMAINS$b:  Display counts of users in each domain (length specified by DEPTH criteria.", 
+        "$bSVSJOIN$b:  Force users to join channel given in chantarget criteria.",
+        "$bSVSPART$b:  Force part the matching clients out of the specified target channel.",
+        "$bVERSION$b:  Query for the users CTCP VERSION reply.",
+        "$bMARK$b:     Set a nefarious 'mark' named via the mark criteria as if the user were in that dnsbl.",
+        "Note: By default, IRC operators are not affected by the KILL, GLINE, SHUN or GAG actions.  You can override this by specifying the $bABUSE OPERS$b criteria for a trace.  Even if you do specify $bABUSE OPERS$b, it will not affect opers at your access level or above.",
         "$uSee Also:$u trace criteria, trace"
         );
 
 "TRACE CRITERIA" ("$bTRACE CRITERIA$b",
         "Criteria and values for $btrace$b (a search with $btrace$b must match all specified items):",
-        "$bMASK$b nick!user@host    Specifies a full hostmask to search for.",
-        "$bNICK$b nick              Specifies a nick to search for.",
-        "$bIDENT$b ident            Specifies an ident to search for.",
-        "$bHOST$b host              Specifies a hostname to search for.",
-        "$bINFO$b infoline          Specifies a user's info to search for.",
-        "$bSERVER$b server          Specifies a server to search for.",
-        "$bIP$b 127.0.0.1           Specifies an IP to search for (independent of hostname).",
-        "$bACCOUNT$b account        Specifies an account to search for.",
-        "$bAUTHED$b yes/no          Specifies if matching users must be authenticated with $N or not",
-        "$bCHANNEL$b #target        Specifies a channel the client must be in.",
-        "$bNUMCHANNELS$b 5          Specifies a number of channels the client must be in.",
-        "$bLIMIT$b 50               Limits the number of responses to a certain number.",
-        "$bNICKAGE$b cmp            Client has had nick this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
-        "$bACCESS$b cmp             Access constraints (<nnn, <=nnn, =nnn, >=nnn or >nnn)",
-        "$bREASON$b reason          Reason for kill or gline (must be listed last).",
-        "$bDEPTH$b depth            How many domain-name parts to use for $bDOMAINS$b action.",
-        "$bDURATION$b duration      How long to apply a G-line or gag.",
-        "$bCLONES$b min             Ignore clients from hosts with fewer than this many connections.",
-        "$bINFO_SPACE$b yes/no      Clients match only if their info starts with a space (' ') character.",
-        "$bABUSE OPERS$b            Force adverse actions to affect opers as well.",
-        "$bLOG$b                    Record matching users in $O's log file (in addition to acting).",
+        "$bMASK$b nick!user@host      Specifies a full hostmask to search for.",
+        "$bNICK$b nick                Specifies a nick to search for.",
+        "$bIDENT$b ident              Specifies an ident to search for.",
+        "$bHOST$b host                Specifies a hostname to search for.",
+        "$bINFO$b infoline            Specifies a user's info to search for.",
+        "$bMODES$b +modes-modes       Specifies modes they have and don't have.",
+        "$bSERVER$b server            Specifies a server to search for.",
+        "$bIP$b 127.0.0.1             Specifies an IP to search for (independent of hostname).",
+        "$bACCOUNT$b account          Specifies an account to search for.",
+        "$bAUTHED$b yes/no            Specifies if matching users must be authenticated with $N or not",
+        "$bCHANNEL$b #target          Specifies a channel the client must be in.",
+        "$bNUMCHANNELS$b 5            Specifies a number of channels the client must be in.",
+        "$bLIMIT$b 50                 Limits the number of responses to a certain number.",
+        "$bNICKAGE$b cmp              Client has had nick this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bLINKED$b cmp               Connected to the network this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bACCESS$b cmp               Access constraints (<nnn, <=nnn, =nnn, >=nnn or >nnn)",
+        "$bREASON$b reason            Reason for kill, gline or shun (must be listed last).",
+        "$bDEPTH$b depth              How many domain-name parts to use for $bDOMAINS$b action.",
+        "$bDURATION$b duration        How long to apply a G-line or gag (see $C help topic $bdurations$b).",
+        "$bCLONES$b min               Ignore clients from hosts with fewer than this many connections.",
+        "$bINFO_SPACE$b yes/no        Clients match only if their info starts with a space (' ') character.",
+        "$bABUSE OPERS$b              Force adverse actions to affect opers as well.",
+        "$bABUSE TRUSTED$b            Force adverse actions to affect users on trusted hosts as well.",
+        "$bTARGET$b                   Send alert notice to this channel.",
+        "$bLOG$b                      Record matching users in $O's log file (in addition to acting).",
+        "$bREGEX$b yes/no             Specifies if NICK/IDENT/HOST/INFO should be treated as a regular expression.",
+        "$bSILENT$b yes/no            If yes, AUTO is prepended to the gline message, making the gline silent in nefarious ircd.",
+        "$bVERSION$b version          If they have been queried using the VERSION action and responded, they are matched if the reply they give matches.",
+        "$bMARKED$b mark              If they have a dnsbl mark matching mark. (e.g. from an X line or alert)",
+        "$bCHANTARGET$b #channel      For use with SVSJOIN action, this specifies the channel they are svsjoined to.",
+        "$bCHECKRESTRICTIONS$b yes/no For use with SVSJOIN action, this specifies to check channel modes like bans, invite, limits, and key before the SVSJOIN is issued.",
+        "$bMARK$b mark                For use with the MARK action, this is what they are marked with.",
         "Additionally, the $bCHANNEL$b target may be prefixed with @ to select channel operators, + to select voiced users (will not select chanops unless @ is also used), or - to select non-voiced non-chanop users.  For example, CHANNEL #foo will select all users in #foo; CHANNEL +#foo will select only users voiced in #foo; CHANNEL @+#foo will select ops and voiced users in #foo; etc.",
+        "When searching on the criteria of nick, ident, or info, the search string can be another of the three, prefixed with a & character, to indicate that the match should compare each user's individual data.  For example, $binfo &nick$b would search for all users whose info matches their nick.  To search for that phrase explicitly, prefix the & with a backslash; e.g.: $binfo \&ident$b.",
         "$uSee Also:$u trace action, trace"
         );
 
         "Criteria and values for $bcsearch$b (a search with $bcsearch$b must match all specified items):",
         "$bNAME$b name              Specifies a name to search for.",
         "$bTOPIC$b topic            Specifies a topic to search for.",
-       "$bUSERS$b cmp              User count constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bUSERS$b cmp              User count constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
         "$bTIMESTAMP$b cmp          Timestamp constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu; supports interval notation)",
         "$bLIMIT$b 50               Limits the number of responses to a certain number."
         );
 "ADDBAD" ("/msg $O ADDBAD <word>",
         "Adds a bad word to $b$O's$b bad word list. Bad words make any channel that has a bad word anywhere in a channel's name illegal. A list of current bad words can be displayed by $bstats bad$b.",
         "Access level: $b${level/addbad}$b",
-        "$uSee Also:$u addexempt, delbad, stats"
+        "$uSee Also:$u addexempt, delbad, stats bad, $C:noregister"
         );
 
 "ADDEXEMPT" ("/msg $O ADDEXEMPT <#channel>",
 "DELBAD" ("/msg $O DELBAD <keyword>",
         "Deletes a bad word from $b$O's$b bad word list. Bad words make any channel that has a bad word anywhere in a channel's name illegal. A list of current bad words can be displayed by $bstats bad$b.",
         "Access level: $b${level/delbad}$b",
-        "$uSee Also:$u addbad, delexempt, stats"
+        "$uSee Also:$u addbad, delexempt, stats bad, $C:allowregister"
         );
 
 "DELEXEMPT" ("/msg $O DELEXEMPT <#channel>",
         "$uSee Also:$u addexempt, delbad, stats"
         );
 
-"UNWARN"  ("/msg $O UNWARN <#channel>",
-        "Deletes the activity warning for a channel.",
-        "Access level: $b${level/unwarn}$b",
-       "$uSee Also:$u warn, stats warn"
-        );
-
-"WARN"  ("/msg $O WARN <#channel> [reason]",
-        "Adds an activity warning for the channel.",
-        "Access level: $b${level/warn}$b",
-       "$uSee Also:$u unwarn, stats warn"
-        );
-
 "BAN" ("/msg $O BAN <#channel> <nick|hostmask>",
         "Bans the specified hostmask from the specified channel.",
         "If a nick is used instead of hostmask, the hostmask is generated based on the nickname.",
         );
 
 "UNBAN" ("/msg $O UNBAN <#channel> <hostmask>",
-       "Unbans the specified hostmask from the specified channel.",
-       "If the channel is omitted, the $bunban$b will be done in the channel where the command was given.",
+        "Unbans the specified hostmask from the specified channel.",
+        "If the channel is omitted, the $bunban$b will be done in the channel where the command was given.",
         "Access level: $b${level/unban}$b",
-       "$uSee Also:$u kickban, kickbanall, ban"
+        "$uSee Also:$u kickban, kickbanall, ban"
         );
 
 "CLEARBANS" ("/msg $O CLEARBANS <#channel> ",
         "$uSee Also:$u deop, devoiceall, op, opall"
         );
 
+"DEHOP" ("/msg $O DEHOP <#channel> <nick> [nick]...",
+        "Dehalfops the specified user from the specified channel.",
+        "If the channel is omitted, then $bdehop$b will be done in the channel where the command was given.",
+        "Access level: $b${level/dehalfop}$b",
+        "$uSee Also:$u dehalfopall, hop, hopall"
+        );
+
+"DEHOPALL" ("/msg $O DEHOPALL <#channel>",
+        "Dehalfops all members of the specified channel.",
+        "If the channel is omitted, then $bdehopall$b will be done in the channel where the command was given.",
+        "Access level: $b${level/dehopall}$b",
+        "$uSee Also:$u dehop, hop, hopall"
+        );
+
 "DEVOICEALL" ("/msg $O DEVOICEALL <#channel>",
         "Devoice all members of the specified channel who do not have channel ops.",
         "If the channel is omitted, then $bdevoiceall$b will be done in the channel where the command was given.",
         "Access level: $b${level/kick}$b",
         "$uSee Also:$u ban, kickall, kickban, kickbanall"
         );
-
+"FORCEKICK" ("/msg $O FORCEKICK <#channel> <nick> [reason]",
+        "Kicks the specified user from the specified channel even if he is a channel service (+k).",
+        "If the channel is omitted, then $bforcekick$b will be done in the channel where the command was given.",
+        "$uSee Also:$u ban, kick, kickall, kickban, kickbanall"
+        );
 "KICKALL" ("/msg $O KICKALL <#channel> [reason]",
         "Kicks all users in the specified channel except for the user issuing the command.",
         "If the channel is omitted, then $bkickall$b will be done in the channel where the command was given.",
         "$uSee Also:$u ban, kick, kickban"
         );
 
+"MARK" ("/msg $O MARK <mark>",
+        "Sets a nefarious 'mark' on the user as if they are in <mark> dnsbl. ",
+        "(shows in /whois and prefixes their host, for easy banning)",
+        "Mark must be a-z0-9 or dash (-) 20 chars or less.",
+        "$uSee Also:$u trace action"
+        );
+
+"SVSJOIN" ("/msg $O SVSJOIN <nick> <#channel>",
+        "Forces nick to join #channel",
+        "$uSee Also:$u svspart, join, trace action"
+        );
+
+"SVSPART" ("/msg $O SVSPART <nick> <#channel>",
+        "Forces nick to part #channel",
+        "$uSee Also:$u svsjoin, part, trace action"
+        );
+
+"SVSNICK" ("/msg $O SVSNICK <nick> <newnick>",
+        "Forces nick to change nick to newnick",
+        "$uSee Also:$u svspart, svsjoin"
+        );
+
 "MODE" ("/msg $O MODE <#channel> <+/- mode>",
         "Sets the specified modes (but cannot include voice, ban or op changes) on a channel.",
         "If the channel is omitted, then $bmode$b will be done in the channel where the command was given.",
         "$uSee Also:$u deopall"
         );
 
+"HOP" ("/msg $O HOP <#channel> <nick> [nick]...",
+        "Half ops specified nicknames the specified channel.",
+        "If the channel is omitted, then $bhop$b will be done in the channel where the command was given.",
+        "Access level: $b${level/hop}$b",
+        "$uSee Also:$u dehop, dehopall, hopall"
+        );
+
+"HOPALL" ("/msg $O HOPALL <#channel>",
+        "Half ops all members of the specified channel.",
+        "If the channel is omitted, then $bhopall$b will be done in the channel where the command was given.",
+        "Access level: $b${level/hopall}$b",
+        "$uSee Also:$u dehopall"
+        );
+
 "VOICEALL" ("/msg $O VOICEALL <#channel>",
         "Voices all members of the specified channel who do not have channel ops.",
         "If the channel is omitted, then $bvoiceall$b will be done in the channel where the command was given.",
         "  UNGLINE  [${level/ungline}]"
         );
 
-"BLOCK" ("/msg $O BLOCK <nick> [reason]",
-        "GLINES the host of the specified nick for one hour  If no reason is given, use a default reason.",
+"BLOCK" ("/msg $O BLOCK <nick> [duration] [reason]",
+        "GLINES the host of the specified nick for one hour if no duration is given.  If no reason is given, use a default reason.",
         "Access level: $b${level/block}$b",
         "$uSee Also:$u gline, ungline"
         );
 
 "GLINE" ("/msg $O GLINE <user@host> <duration> <reason>",
-        "Issues a GLINE (network ban) on the network for the speicified user@host for the specified duration (making the expiration time: net time + duration).",
+        "Issues a GLINE (network ban) on the network for the specified user@host for the specified duration (making the expiration time: net time + duration).",
+        "duration is in the form nnm, where nn is a number, and m is a character representing the unit (e.g., d for days.)",
         "Access level: $b${level/gline}$b",
-        "$uSee Also:$u trace, ungline"
+        "$uSee Also:$u trace, ungline, ($C) durations"
         );
 
 "GTRACE" ("/msg $O GTRACE <action> <criteria> [<criteria> <value>]...",
         "Options for the action in $bgtrace$b are:",
         "$bPRINT$b: Display the glines (mask, issuer, expiration time, reason)",
         "$bCOUNT$b: Count the number of matching glines",
-       "$bUNGLINE$b: Remove matching glines",
+        "$bUNGLINE$b: Remove matching glines",
         "$uSee Also:$u gtrace criteria, gtrace"
         );
 
         "$bLIMIT$b count            Limits the number of matching glines.",
         "$bREASON$b reason          Looks for glines with the given reason.",
         "$bISSUER$b account         Looks for glines issued by the given account.",
+        "$bLASTMOD$b interval       Looks for glines last modified in the specified time.",
         "$bAFTER$b interval         Looks for glines that expire more than $binterval$b in the future.",
         "$uSee Also:$u gtrace action, gtrace"
         );
 
 "GSYNC" ("/msg $O GSYNC [server]",
-       "Requests a list of GLINES from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
+        "Requests a list of GLINES from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
         "Access level: $b${level/gsync}$b",
-       "$uSee Also:$u refreshg, gline, ungline"
+        "$uSee Also:$u refreshg, gline, ungline"
+        );
+
+"DEFCON" ("/msg $O DEFCON [1|2|3|4|5]",
+        "The defcon system can be used to implement a pre-defined set of restrictions to services useful during an attempted attack on the network. Not specifying a level will cause $O to display the currently set defcon level and options if the level is below 5",
+        "Access level: $b${level/defcon}$b",
         );
 
 "REFRESHG" ("/msg $O REFRESHG [server]",
         "$uSee Also:$u gline"
         );
 
+"SHUN" ("$bSHUN COMMANDS$b",
+        "Searches for, issues, and removes Shuns.",
+        "  SBLOCK   [${level/sblock}]",
+        "  SHUN     [${level/shun}]",
+        "  STRACE   [${level/strace}]",
+        "  SSYNC    [${level/ssync}]",
+        "  REFRESHS [${level/refreshs}]",
+        "  UNSHUN   [${level/unshun}]"
+        );
+
+"SBLOCK" ("/msg $O SBLOCK <nick> [duration] [reason]",
+        "SHUNS the host of the specified nick for one hour if no duration is given.  If no reason is given, use a default reason.",
+        "Access level: $b${level/sblock}$b",
+        "$uSee Also:$u shun, unshun"
+        );
+
+"SHUN" ("/msg $O SHUN <user@host> <duration> <reason>",
+        "Issues a SHUN on the network for the specified user@host for the specified duration (making the expiration time: net time + duration).",
+        "Access level: $b${level/shun}$b",
+        "$uSee Also:$u trace, unshun"
+        );
+
+"STRACE" ("/msg $O STRACE <action> <criteria> [<criteria> <value>]...",
+        "Searches through the shuns, much like $bTRACE$b does for users.",
+        "Access level: $b${level/strace}$b",
+        "$uSee Also:$u trace, strace action, strace criteria"
+        );
+
+"STRACE ACTION" ("$bSTRACE ACTION$b",
+        "Options for the action in $bstrace$b are:",
+        "$bPRINT$b: Display the shuns (mask, issuer, expiration time, reason)",
+        "$bCOUNT$b: Count the number of matching shuns",
+        "$bUNSHUN$b: Remove matching shuns",
+        "$uSee Also:$u strace criteria, strace"
+        );
+
+"STRACE CRITERIA" ("$bSTRACE CRITERIA$b",
+        "Criteria and values for $bstrace$b (a search with $bstrace$b must match all the criteria you give):",
+        "$bMASK SUPERSET$b user@host Shun matches if it applies to someone with this hostmask.",
+        "$bMASK SUBSET$b user@host  Shun matches if this hostmask \"covers\" the Shun target.",
+        "$bMASK EXACT$b user@host   Shun matches only if the target is exactly this.",
+        "$bMASK$b user@host         Specifies a mask to search for (equivalent to MASK SUPERSET).",
+        "$bLIMIT$b count            Limits the number of matching shuns.",
+        "$bREASON$b reason          Looks for shuns with the given reason.",
+        "$bISSUER$b account         Looks for shuns issued by the given account.",
+        "$BLASTMOD$b interval       Looks for shuns last modified in the specified time.",
+        "$bAFTER$b interval         Looks for shuns that expire more than $binterval$b in the future.",
+        "$uSee Also:$u strace action, strace"
+        );
+
+"SSYNC" ("/msg $O SSYNC [server]",
+        "Requests a list of SHUNS from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
+        "Access level: $b${level/ssync}$b",
+        "$uSee Also:$u refreshs, shun, unshun"
+        );
+
+"REFRESHS" ("/msg $O REFRESHS [server]",
+        "Re-issues all SHUNS in $b$O's$b database. Usually used for newly joining or desynched servers.  If a server mask is specified, the SHUNS are only sent to server(s) with matching names.",
+        "Access level: $b${level/refreshs}$b",
+        "$uSee Also:$u shun, unshun, ssync"
+        );
+
+"UNSHUN" ("/msg $O UNSHUN <user@host>",
+        "Removes a shun from the network before it expires.",
+        "Access level: $b${level/unshun}$b",
+        "$uSee Also:$u shun"
+        );
+
 "CLONE" ("/msg $O CLONE <sub-command> <sub-command arguments>",
-        "Creats and manipulates a fake user. Sub-commands for $bclone$b are:",
+        "Creates and manipulates a fake user. Sub-commands for $bclone$b are:",
         "$bADD$b:    Adds a new clone. Arguments: <nickname> <user@host> <info>",
         "$bREMOVE$b: Removes a clone. Arguments: <nickname>",
         "$bJOIN$b:   Joins a clone to a channel. Arguments: <nickname> <channel>",
         );
 
 "JUPE" ("/msg $O JUPE <srvname> <srvnum> <description>",
-       "Causes X3 to create a \"juped\" (dummy) server.  This can be used to prevent a poorly connected server from connecting.",
+        "Causes X3 to create a \"juped\" (dummy) server.  This can be used to prevent a poorly connected server from connecting.",
         "Access level: $b${level/jupe}$b",
-       "$uSee Also:$u unjupe, clone, reserve"
+        "$uSee Also:$u unjupe, clone, reserve"
         );
 
 "RESERVE" ("/msg $O RESERVE <nickname> <user> <host> <comment>",
         );
 
 "UNJUPE" ("/msg $O UNJUPE <srvname>",
-       "Causes X3 to unjupe a jupe server.",
+        "Causes X3 to unjupe a jupe server.",
         "Access level: $b${level/unjupe}$b",
-       "$uSee Also:$u jupe, unreserve, clone"
-        );
+        "$uSee Also:$u jupe, unreserve, clone"
+        );
+
+"ROUTING ADDPLAN" ("/msg $O ROUTING ADDPLAN <name>",
+        "Creates a new blank routing plan named name.",
+        "You can then use $bROUTING ADDSERVER$b to build it.",
+        "Use $bSTATS ROUTING [name]$b to view it, and $bROUTING SET ACTIVE$b to activate it.",
+        "$uSee Also:$u routing, stats routing, routing delplan, routing set, routing addserver"
+        );
+"ROUTING DELPLAN" ("/msg $O ROUTING DELPLAN <name>",
+        "Removes the routing plan name, including all the servers that make it up. Use with caution, there is no undo.",
+        "$uSee Also:$u routing, stats routing, routing addplan"
+        );
+
+"ROUTING ADDSERVER" ("/msg $O ROUTING ADDSERVER <plan> <name>[:port] <uplink> [backup uplink]",
+        "Adds a server to the routing plan 'plan'.",
+        " plan   - The name of a routing plan already created.",
+        " server - The name of the server you are adding (full hostname).",
+        " port   - The port that the server listens to connections on. If you leave this out, the default is taken from $bSET ROUTING DEFAULT_PORT$b.",
+        " uplink - This is the server (full hostname) that you want the server to connect to.",
+        " backup uplink - If uplink is offline, this one takes over.",
+        " $b$b ",
+        " It is $uvery$u important that the routing plan be from a consistent perspective, without any loops, or disconnected pieces. It helps to pick a server (usually the one $O is liked to) and consider which server each of the servers links to towards $O. For an example see /msg $O HELP ROUTING EXAMPLE.",
+        " If you add a server whose name already exists, the old one will be replaced.",
+        "$uSee Also:$u routing, stats routing, routing delserver, routing addplan",
+        );
+
+"ROUTING EXAMPLE" ("An Auto Routing System Example:",
+        "  Consider the following map: ",
+        "    test.net.org         - test's uplink is x3",
+        "    |-X3.NET.Services    - this is me",
+        "    |-laptop.net.org     - laptop's uplink is test",
+        "    | `-foobar.net.org   - foobar's uplink is laptop",
+        "    `-test2.net.org      - test2's uplink is test",
+        "      `-test3.net.org    - test3's uplink is test2",
+        " $b$b ",
+        " It's important that every entry in your routing plan be specified relative to the same location. Usually this is the location of X3 itself but it does not have to be. In the above example you could do:",
+        "  ROUTING ADDPLAN myplan ",
+        "  ROUTING ADDSERVER myplan test.net.org:4400 x3.net.services ",
+        "  ROUTING ADDSERVER myplan test2.net.org:4400 test.net.org ",
+        "  ROUTING ADDSERVER myplan test3.net.org:4400 test2.net.org ",
+        "  ROUTING ADDSERVER myplan laptop.net.org:4400 test.net.org ",
+        "  ROUTING ADDSERVER myplan foobar.net.org:4400 laptop.net.org ",
+        "  ROUTING SET ACTIVE myplan ",
+        " $b$b ",
+        " If there are loops, or two servers who point to each other, $O will not be able to use the plan. If there are sections which do not link back to the rest, they will be lost and the plan will not work properly.",
+        );
+       
+"ROUTING DELSERVER" ("/msg $O ROUTING DELSERVER <plan> <server>",
+        "Deletes a server from a routing plan.",
+        "$uSee also:$u routing, stats routing, routing addserver, routing delplan",
+        );
+
+"ROUTING SET" ("/msg $O ROUTING SET [option] [value]",
+        "Changes The Auto Routing System options",
+        "  ACTIVE           - Sets which routing plan is active. ",
+        "                     Set to 'none' to disable auto routing.",
+        "  RETRY_PERIOD     - How often to check for missing servers",
+        "                     see /msg $C durations for help with units",
+        "  CONN_PINGOUT     - enable to auto-reconnect servers that ping out",
+        "  CONN_READERROR   - enable to auto-reconnect servers that squit with a read error",
+        "  KARMA            - enable to keep track of oft-splitting servers, and try to route around them",
+        "  DEFAULT_PORT     - If you don't specify a port in $brouting addserver$b, this port is used",
+        " $b$b ",
+        " Issue without any option/value to see the current value(s).",
+        "$uSee also:$u routing, stats routing, routing addserver",
+       );
+
+"ROUTING MAP" ("/msg $O ROUTING MAP",
+        "Shows the currently active routing plan, as parsed and re-centered for use.",
+        "Before $O can take a routing plan as entered by you, and use it, $O must re-orient the map so all the uplinks point toward it. Loops are detected, and missing pieces lost. This command shows you the desired route, as $O has compiled it.",
+        "If KARMA is enabled, or a server is un-connectable, $O may use a backup uplink to build this map to attempt to repair the network.",
+        "The check box [ ] is used to indicate if the current routing of the network conforms to the routing map.",
+        "[X] - Server is linked correctly",
+        "[!] - Server is linked, but not where the plan specifies",
+        "[ ] - Server is not linked to the network at all",
+        " $b$b",
+        "$uSee also:$u routing, stats routing, routing set, routing addserver",
+        );
+
+"REROUTE" ("/msg $O REROUTE <C|N|T>",
+        "Allows $O to make changes to the linkage of the servers on the network. It has 3 modes: Normal, Connect-only, and Test:",
+        " N - Normal mode: Will delink any servers which are not linked to their primary uplink and try to reconnect them correctly according to the active routing plan. it will also try to connect servers that are completely missing.",
+        " C - Connect-only:  Will attempt to connect any missing servers to the network, using the active routing plan.",
+        " T - Test: Will do the same as normal mode, only all actions will be simulated. No actual rerouting will take place, it will only tell you what it WOULD do in normal mode.",
+        " $b$b ",
+        "$uSee also:$u routing, routing map, stats routing",
+        );
+
+"STATS ROUTING" ("/msg $O STATS ROUTING [planmask]",
+        "Provides information about The Auto Routing System's configuration. You can see the routing plans, and the current routing options.",
+        " If planmask is provided, you will see the full details for any plans matching the mask (* and ? wildcards)",
+        "$uSee also:$u routing, routing set",
+        );
+
+"PRIVSET" ("/msg $O PRIVSET <nick> <+/-flag>",
+           "Allows $O to set flags on users.",
+           "Access level: $b${level/privset}$b",
+           "$uSee also: privflags"
+          );
 
 "UNRESERVE" ("/msg $O UNRESERVE <nick>",
         "Removes a nick from $b$O's$b reserve list.",
         );
 
 "LOG" ("/msg $O LOG <criteria> <value> [<criteria> <value>]...",
-        "Searches services logs based on critera specified and displays the results.",
-        "Criteria and associated values (a search match all specified items):",
+        "Searches services logs based on criteria specified and displays the results.",
+        "Criteria and associated values (a search matches all specified items):",
         "$bBOT$b -         A service bot's name (for example, $O).",
         "$bCHANNEL$b -     The channel where a command was issued (accepts wildcards).",
         "$bNICK$b -        The nickname issuing the command (accepts wildcards).",
         );
 
 "GAG" ("/msg $O GAG <mask> <duration> <reason>",
-        "Sets a complete services-wide ignore on all users matching the provided mask. All services will completely ignore all private messages or notices from gagged users, who are only notified when a gag goes into effect, or they sign onto the network. Gags have no effect on opers, and as a safety feature, only affect the first 250 matching users.  The gag will automatically expire after $b<duration>$b (or last forever if that is zero).",
+        "Sets a complete services-wide ignore on all users matching the provided mask. All services will completely ignore all private messages or notices from gagged users.",
+        "The gag will automatically expire after $b<duration>$b (or last forever if that is zero).",
         "Access level: $b${level/gag}$b",
-        "$uSee Also:$u ungag, trace"
+        "$uSee Also:$u ungag, trace, stats gags"
         );
 
 "HELPSERV" ("/msg $O HELPSERV <command>",
         "$uSee also:$u /msg $O HELPSERV HELP"
         );
 
-"QUERY" ("/msg $O QUERY <option>",
-        "Displays the value of the given configuration key.  If the key is a composite entry, show the subkeys inside it.",
+"QUERY" ("/msg $O QUERY [key][/<sub-key>[/<sub-sub-key>]...]",
+        "Displays the value of the given configuration key.  ",
+        "If the key is a composite entry, show the subkeys inside it.",
+        "Examples:",
+        " QUERY                    - shows 1st level keys ",
+        " QUERY services/chanserv  - shows list of chanserv settings ",
+        " QUERY services/chanserv/chan_expire_delay - shows value ",
         "Access level: $b${level/query}$b",
         "$uSee Also:$u set, rehash"
         );
         );
 
 "UNGAG" ("/msg $O UNGAG <hostmask>",
-        "Ungags a gaged hostmask and displays how many users were affected by $bungag$b. You can get a list of gaged hostmasks from $bgags$b.",
+        "Ungags a gaged hostmask.",
         "Access level: $b${level/ungag}$b",
         "$uSee Also:$u gag, stats gags"
         );
         "$bBAD$b:        Current list of bad words and exempted channels.",
         "$bGAGS$b:       The list of current gags.",
         "$bGLINES$b:     Reports the current number of glines.",
+        "$bSHUNS$b :     Reports the current number of shuns.",
         "$bLINKS$b:      Information about the link to the network.",
         "$bMAX$b:        The max clients seen on the network.",
         "$bNETWORK$b:    Displays network information such as total users and how many users are on each server.",
         "$bOPERS$b:      A list of users that are currently +o.",
         "$bPROXYCHECK$b: Information about proxy checking in X3.",
         "$bRESERVED$b:   The list of currently reserved nicks.",
+        "$bROUTING$b:    The routing plans and settings of the Auto Routing System",
         "$bTIMEQ$b:      The number of events in the timeq, and how long until the next one.",
         "$bTRUSTED$b:    The list of currently trusted IPs.",
         "$bUPTIME$b:     X3 uptime, lines processed, and CPU time.",
-        "$bWARN$b:       The list of channels with activity warnings.",
         "$bMODULES$b:    Shows loaded modules that implement commands.",
         "$bSERVICES$b:   Shows active service bots.",
         "Access level: $b${level/stats}$b",
-        );
+        "$b$b",
+        "$uSee Also:$u stats alerts"
+        );
+
+"STATS ALERTS" ("/msg $O STATS ALERTS [Owner|Filter]",
+        "Show alerts. If a parameter is given, only alerts who match it are shown.",
+        "$b$b",
+        " Owner  - the account name of whoever created the alert",
+        " Filter - A wildcard (* and ?) match string compared against the criteria string",
+        "$b$b",
+        "Example: STATS ALERTS *nick phil*",
+        "$uSee Also:$u addalert, delalert, stats"
+        );
+
+"TRACK" ("/msg $O TRACK <+/-type|all|none>",
+        "This specifies what will be tracked in the tracking channel.",
+        "Use + to add flags and - to remove types. Use ALL to enable all",
+        "tracking options available, use NONE to completely disable them.",
+        "Available flags are:",
+        "auth  - Auths",
+        "chanmode - Channel Modes",
+        "del   - Quits",
+        "join  - Joins",
+        "kick  - Kicks",
+        "new   - New Nicks",
+        "nick  - Nick Changes",
+        "part  - Parts",
+        "umode - Umodes");
+
+"ADDTRACK" ("/msg $O ADDTRACK <nick>",
+        "Adds the given <nick> to the tracking list.",
+        "$uSee Also:$u deltrack listtrack addalert");
+
+"DELTRACK" ("/msg $O DELTRACK <nick>",
+        "Removes the given <nick> from the tracking list.",
+        "$uSee Also:$u deltrack listtrack");
+
+"LISTTRACK" ("/msg $O LISTTRACK",
+        "Lists all currently active tracks.",
+        "$uSee Also:$u addtrack deltrack");
+
+"RESETMAX" ("/msg $O RESETMAX",
+        "Resets the max clients number to the current amount of connected clients. Use with caution.",
+        "$uSee Also:$u stats max");
 
-"INDEX" "${index}";