--------------------------------------------------------------------------------

                        Undernet Channel Service Committee
                              CMaster Command List
                             Updated: July 3, 2001

--------------------------------------------------------------------------------

NOTE:
* Parameters enclosed in <>'s are mandatory.
* Parameters enclosed in []'s are optional.
* x|y means x or y.
* <nick> refers to a person's IRC nickname that they are online with.
* <username> refers to a person's username as it appears in the userlist; not to be confused
  with <nick>. For more information about usernames and how to determine a person's username,
  refer to the VERIFY and INFO commands (level 0).
* All commands shown with the <username> field can also work by specifying a user's IRC nickname
  that they are online with by preceding their nickname with an equal (=) sign.
  For example, consider a person with the nickname ^[Test]^ and username Test. The ACCESS command
  can be performed on this user in either of these 2 methods:
  1. /msg x access <#channel> Test
  or
  2. /msg x access <#channel> =^[Test]^
  The 1st method directly queries X as to whether or not the username "Test" is in the userlist.
  The 2nd method makes X lookup ^[Test]^'s username if they are authenticated, which refer's to
  their username of "Test."
  This can be performed with any command that requires a <username>, but will only work if the
  user is authenticated, otherwise a "No Match" reply or equivalent will be returned.

--------------------------------------------------------------------------------
LEVEL 500 Commands : Channel Manager
--------------------------------------------------------------------------------

  PART -  Makes X leave your channel.

    /msg x part <#channel>

  SET - Changes special X modes for channel.

    /msg x SET <#channel> <variable> <value>

   * Variables and Values:

   AUTOJOIN - When the flag is set ON, it makes X always join your channel. When the flag is
   OFF, it will make it part if it's on the channel, and not re-join after a netsplit.

     /msg x set <#channel> autojoin <on>
     /msg x set <#channel> autojoin <off>

   FLOODPRO -  The maximum number of KICKs, TOPIC and MODE CHANGES that can be sent to the
   channel in a 15 second period. Any user exceeding this will be kicked, suspended (if on the
   userlist) and a level 25 ban placed on them to prevent ops. The suspend and ban time is 5
   minutes. NOTE: This does NOT work against normal channel dialogue, since X is +d (deaf) to
   all channel text. When setting the FLOODPRO, value can be set from 1, which is the most
   sensitive, to 7, which is least sensitive. A value of 0 turns off the option.

     /msg x set <#channel> floodpro <0-7>

   LANG - Changes default language for the channel, making X's replies show in that language.

     Languages available:
      en - English

     /msg x set <#channel> lang <language>

   MASSDEOPPRO - The maximum number of deops X will allow in a 15 sec period. Any user
   exceeding this will be kicked, suspended (if on the userlist) and a level 25 ban placed on
   them to prevent ops. The suspend and ban time is 5 minutes. When setting the FLOODPRO, value
   can be set from 1, which is the most sensitive, to 7, which is least sensitive. A value of 0
   turns off the option.

     /msg x set <#channel> massdeoppro <0-7>

   NOOP - This means that nobody may be a channel operator except X. This does not mean you
   don't have control of X or the channel. If you are authenticated, you can issue commands
   like KICK, BAN, etc. through X, you just can't be opped yourself.

     /msg x set <#channel> noop <on|off>

   STRICTOP - This allows only Level 100+ users who are authenticated to be opped.

     /msg x set <#channel> strictop <on|off>

--------------------------------------------------------------------------------
LEVELS 450-499 : Trusted Channel Admin.
--------------------------------------------------------------------------------

  SET - Changes special X modes for channel.

    /msg x SET <#channel> <variable> <value>

   * Variables and Values:

   AUTOTOPIC - This flag makes X reset the topic to the channel URL and DESCRIPTION every 30
   minutes. Note that if the channel is idle, the topic will not be reset during that time.

     /msg x set <#channel> autotopic <on|off>

   DESCRIPTION - Sets the default channel topic (maximum of 80 characters). This does NOT
   affect the actual channel topic, unless AUTOTOPIC is ON. The topic can be seen only by the
   CHANINFO command (level 0). If no description text is specified, the current description is
   reset.
   Alias: DESC

     /msg x set <#channel> description [text]
     or
     /msg x set <#channel> desc [text]

   KEYWORDS - Sets keywords for your channel that will trigger on a SEARCH (level 0) of
   channels. If no keywords are specified, the current keywords are reset.

     /msg x set <#channel> keywords [text]

   MODE - This will save the current channel modes as default. Whenever X joins the channel, it
   will reset those modes if any are not set at the time.

     /msg x set <#channel> mode

   URL - You can state your channel's homepage address(es) with this option (maximum of 75
   characters). Spaces are permitted, allowing multiple URL parameters to be specified. This
   does NOT affect the channel topic, unless AUTOTOPIC is ON (level 450). The DESCRIPTION and
   URL can be seen by using the CHANINFO command (level 0). If no url is specified, the current
   url is reset.

   /msg x set <#channel> url [url url2 ... urlN]

   USERFLAGS - Determines whether or not OP or VOICE will automatically be set for AUTOMODE when
   a new user is added to the userlist. Default value is 0 (None). NOTE: Once a user is on the
   userlist, the MODINFO AUTOMODE command (level 400) can be issued to change the value for
   that individual alone.

   * Values: 0 = No AutoMode set for all new users added.
             1 = Op AutoMode set for all new users added.
             2 = Voice AutoMode set for all new users added.

      /msg x set <#channel> userflags <0-2>

  JOIN - Makes X join your channel.

    /msg x join <#channel>

--------------------------------------------------------------------------------
LEVELS 400-449 : Userlist Admin
--------------------------------------------------------------------------------

  ADDUSER - Adds a user to the channel's userlist. You cannot ADDUSER someone with equal or
  higher access than your own.

    /msg x adduser <#channel> <username> <access>

  CLEARMODE - Clears all channel modes. Can be used when your channel has been locked up
  (set +i or +k without your knowledge).
  NOTE: This is not necessarily the best method to gain entry to your channel, because other
  people or bots may be opped in the channel that may reset the modes as you clear them. Refer
  to the STATUS command (level 200) for related information.

    /msg x clearmode <#channel>

  MODINFO - The following commands can be used to make changes to existing users in your
  channel's userlist.

  * Variables for ModInfo:

     ACCESS - Changes the access level of a user. Access level can be set between 1 and one
     less than your own level (if you have an access level of 400, you may assign a level of up
     to 399 to other users).

       /msg x modinfo <#channel> access <username> <new level>

     AUTOMODE - Changes the automode of a user to one the specified modes: NONE, OP, or VOICE.
     OP or VOICE will make X op or voice an authenticated user when they enter the channel.
     NONE will make X do nothing when an authenticated user enters the channel.

       /msg x modinfo <#channel> automode <username> <none|op|voice>

  REMUSER - Removes a user from the channel database. You must have higher access than the user
  you want to remove. You can also remove yourself from any channel, as long as you are not the
  channel manager (500 access level in that channel). Managers wishing to remove themselves
  will need to purge their channel.

    /msg x remuser <#channel> <username>

--------------------------------------------------------------------------------
LEVEL 200 : Userlist Op
--------------------------------------------------------------------------------

  MASK KICK - Makes X kick all users matching the specified *!*user@*.host mask, but does not
  kick the person issuing the command if they match also. This should be a seldom used command.
  Use should be limited to extreme channel flooding or clones. You may want to set a ban on the
  mask, or +i (invite mode) on the channel before issuing the kick to prevent matching users
  from rejoining after being kicked.

    /msg x kick <#channel> <nick | *!*user@*.host> [reason]

  STATUS - Displays all special X settings, channel modes, the number of users and ops in the
  channel, and currently authenticated users for the channel (in "username/nickname (level)"
  format). The ability to see channel modes is extremely helpful in case the channel is +k
  (keyed mode), since you can find out what they key is.

    /msg x status <#channel>

--------------------------------------------------------------------------------
LEVELS 100-399 : Channel Operator
--------------------------------------------------------------------------------

  DEOP - Deops one or more persons in your channel. If no nick is specified, and you are opped
  on the channel, X will deop you. NOTE: be mindful of triggering the limit that may be in
  effect with MASSDEOPPRO (see SET MASSDEOPPRO - level 500).

    /msg x deop <#channel> [nick] [nick2] ... [nickN]

  OP - Ops one or more persons in your channel. If no nick is specified, and you are not opped
  on the channel, X will op you.

     /msg x op <#channel> [nick] [nick2] ... [nickN]

  INVITE - Makes X invite you to your channel.

    /msg x invite <#channel>

  SUSPEND - Suspends a user's access to X on your channel's userlist for the specified period
  of time. You can only SUSPEND someone with access lower than your own. If no duration is
  specified, the default time is 1 minute.

  * Time Values: D = days
                 H = hours
                 M = minutes

    /msg x suspend <#channel> <username> [duration]
    * Duration Example: "5 d" = 5 days (enter without quotations)

  UNSUSPEND - Unsuspends a user's access to X on your channel's userlist. You can only
  UNSUSPEND someone with access lower than your own.

    /msg x unsuspend <#channel> <username>

--------------------------------------------------------------------------------
LEVELS 75-99 : New Channel Operator
--------------------------------------------------------------------------------

  BAN - Adds a specific *!*user@*.host to the X banlist of your channel. You may place a ban on
  a nick if the person is online or ban their *!*user@*.host if the person is not online. Bans
  that cover a broader range than previously set bans will replace previous bans. Any user in the
  channel that matches the added ban will be kicked out if the ban level is 75+. The duration is
  in hours, with a maximum of 336 hours (2 weeks). The ban level can range from 1 to your own
  level.

  * Ban Levels: 1-74 = Prevents the user from having ops (+o) on the channel.
                75+ = Prevents the user from being in the channel at all.

    /msg x ban <#channel> <nick | *!*user@*.host> [duration] [level] [reason]

  UNBAN - Removes a *!*user@*.host from the X banlist of your channel and any matching bans
  from the channel banlist also. You can only remove bans from X's banlist that are equal to or
  lower than your own access. To search X's banlist, refer to the LBANLIST command (level 0).

    /msg x unban <#channel> <nick | *!*user@*.host>

--------------------------------------------------------------------------------
LEVELS 50-74 : Trusted Channel Regular
--------------------------------------------------------------------------------

  KICK - Makes X kick someone from your channel; reason is optional. Your nick will be placed
  in the kick message.

   /msg x kick <#channel> <nick> [reason]

  TOPIC - Makes X change the topic in your channel (maximum of 145 characters) and includes
  your username, enclosed in parentheses, at the beginning of the topic. NOTE: If a DESCRIPTION
  or URL has been set and AUTOTOPIC is ON, the channel topic will be overwritten in 30 minutes,
  unless the channel is idle.

    /msg x topic <#channel> <topic>

--------------------------------------------------------------------------------
LEVELS 25-49 : Channel Regular
--------------------------------------------------------------------------------

  DEVOICE - Devoices one or more users in your channel.

    /msg x devoice <#channel> [nick] [nick2] ... [nickN]

  VOICE - Voices one or more users in your channel.

    /msg x voice <#channel> [nick] [nick2] ... [nickN]

--------------------------------------------------------------------------------
LEVELS 1-24 : Minimum Access
--------------------------------------------------------------------------------

  STATUS - This does the same thing as level 200 STATUS, except it will not report channel
  modes (+nt etc.) to anyone with access below 200.

  /msg x status #channel

--------------------------------------------------------------------------------
LEVEL 0 : Everyone else
--------------------------------------------------------------------------------

  ACCESS - Can look up the access for a certain person or a string. The information indicates
  level, suspension status if suspended, and when the user was last seen.
  To see all users, use: /msg x access <#channel> *
  You can also use and mix these options instead of a username or string to get specific results.

  * Access options:

    username - shows the access level of a single user.
       /msg x access <#channel> <username>

    -min <level> - shows only users above the given level.
       /msg x access <#channel> -min <level>

    -max <level> - shows only users below the given level.
       /msg x access <#channel> -max <level>

    -op - shows only users with the OP AUTOMODE flag.
       /msg x access <#channel> -op

    -voice - shows only users with the VOICE AUTOMODE flag.
       /msg x access <#channel> -voice

    -none - shows only users with no AUTOMODE flag (None).
       /msg x access <#channel> -none

    -modif - shows who last modified the access listing.
       /msg x access <#channel> -modif

  BANLIST - Shows the channel banlist. You must be in the channel to use this command.

    /msg x banlist <#channel>

  CHANINFO - Displays whether or not a channel is registered, to whom, and the currently set
  DESCRIPTION and URL, if any.
  Alias: INFO

     /msg x chaninfo <#channel>
     or
     /msg x info <#channel>

  HELP - Displays help information on a given command.

     /msg x help [command]

  INFO - Displays information about a username such as their nick and user@host if they are
  currently online, their language setting, and last seen information. If used on yourself, it
  also lists all channels which you have access on (only CService and you can see this
  information, not other users). If you wish to make this information hidden to the public,
  refer to the SET INVISIBLE command (level 0).

    /msg x INFO <username>

  LBANLIST - Searches X's banlist for a certain string. Use * to see the whole list, or specify
  a *!*user@*.host to find a specific ban.

    /msg x lbanlist <#channel> <* | *!*user@*.host>

  LOGIN - This loads your access listing into memory and authenticates you on ALL channels
  which you have access on simultaneously.

    /msg x@channels.undernet.org login <username> <password>

  MOTD - Displays X's message of the day.

    /msg x motd

  NEWPASS - This allows you to change the password for your username. You must be authenticated
  with your old password before the command can be issued to change to the new password.
  NOTE: 1. Passwords are case-sensitive. For example: "CService" is not "cservice."
        2. Passwords can be more than one word long, allowing you to have a sentence or phrase
           as your password to increase the difficulty of it being discovered. We encourage you
           to take advantage of this feature. The maximum length is 50 characters.
           For example, a password can be: "Undernet Channel Service"

    /msg x@channels.undernet.org newpass <new password>

  REMUSER - At this level, and above, you can remove yourself from any channel, as long as you
  are not the channel manager (500 access level in that channel). Managers wishing to remove
  themselves will need to purge their channel.

    /msg x remuser <#channel> <your username>

  SEARCH - Makes X list channels where the given search parameters match set keywords on the
  channel, if any. The use of wildcards are not required.

    /msg x search <search parameter>

  SET INVISIBLE - This is a personal setting that allows you to toggle the visibility of your
  username information, retrievable from the INFO command, to be visible or hidden. To learn
  more about the available information, refer to the INFO command (level 0).

    /msg x set invisible <on|off>

  SHOWCOMMANDS - Shows all the commands you can use on a channel, according to your access
  level. If no channel is specified, then only the level 0 commands are shown.

    /msg x showcommands [#channel]

  SHOWIGNORE - Shows X's ignore list. Ignores happen when someone intentionally or accidentally
  floods X. The time length is 60 minutes.

    /msg x showignore

  VERIFY - Displays whether or not a person is logged in, and if so displays their username,
  and also indicates whether or not they are an Official CService Administrator or
  Representative, and/or an IRC Operator.

    /msg x verify <nick>

--------------------------------------------------------------------------------
This document was last updated on July 3, 2001 by Ace
This file is maintained by Undernet CService Committee
E-mail cservice@undernet.org with any suggestions or comments
--------------------------------------------------------------------------------