Table of Contents

# $EPIC: mode.txt,v 1.3 2006/08/29 18:22:56 sthalik Exp $

Synopsis:

mode <your nickname|channel> [<+|→<mode> [<mode parameter(s)>]]

# Currently I (hop) am renovating the structure of this help file.  The
# first part of the help file will be a basic description of the purpose
# of modes in irc, both to users and to channels.  Then a description of
# user modes will follow, with each user mode documented and its side
# effects explained.  Each network will get a section where its deviant
# user modes will be explained.
# After this, a description of channel modes, with each channel mode explained.
# Each network will get a section where its deviant channel modes will be
# explained.
# After all of this, will be a description of how to use the /mode command,
# complete with examples.  The first part of this help file should be put
# in an external document at some point, but for now it's going to be in
# here until we move it.

About Modes:

A mode is an irc attribute which describes the current state of a channel or irc user. These are called “channel modes” and “user modes”. Modes are traditionally single characters, usually lower case letters, and are manipulated with the MODE command. You can turn on (“set”) a mode by prefixing the character with a plus sign ('+') and turn off (“unset”) a mode by prefixing the character with a minus sign ('-'). You can set or unset multiple modes at a time.

User Modes:

You can set and unset your user modes to change certain attributes about your irc session. User modes are lost when your server connection ends. You may be given a set of “default” user modes by your server when you initially connect to it. You may be given a set of extra user modes when the OPER command is successful. Some user modes are “privileged” which means that you cannot turn them on yourself; the server has to turn them on for you. You may not change or query the mode of any other user.

Standard User Modes:

    i   "Invisible mode".  Everybody is permitted to ask for a list of
        members on a channel, or a detailed list of members on a channel
        with the [[NAMES]] or [[WHO]] request.  If the requester is a
        member of the channel he requests, he will see the full details of
        all other members on the channel.  However, if the requester is
        NOT a member of the channel he requests, any channel members who
        have this user mode set will NOT be shown in the list.  They will
        be "invisible" to those who are not channel members.  This same
        effect occurs if you are a member of a secret channel (channel mode
        +s, see below).
    o   "Operator mode".  This user mode is privileged.  Some irc commands
        (relating to the administration of the irc server and network) may
        not be executed by those who do not have this user mode set. This
        mode must be enabled through the sucessful use of the OPER
        command, however, it can be removed with the MODE command
    s   "Server Notices mode".  The server sends out special information
        that is not generally useful to non-techie irc users when you turn
        this user mode on.  Not every user receives every server notice just
        because they have +s turned on.  Some server notices require more
        than one user mode to be turned on (particularly +o).  The types and
        number of messages you receive varies from server to server.
    w   "Wallops mode".  Whereas server notices generally are of interest
        to local users, WALLOPS ("Write ALL OperatorS") are of interest to
        all privileged users on all servers.  You will receive WALLOPS when
        you turn this user mode on.  Some networks restrict WALLOPS only
        for server use.  Other networks permit operators to send WALLOPS.
        Still other networks permit everybody to send WALLOPS.  As with
        all other output modes, everything varies from server to server.

Non-standard User Modes:

Undernet (ircu2.9.x):

    d   "Deaf mode".  The server will not send public message to this
        client for any channels it is a member of.
        This mode is primarily intended for services, and may or may
        not be accessible to clients.
    k   "No-kick mode".  This user mode is privileged.  All servers on
        the network will reject any attempt to [[KICK]] this client from
        any channel it is a member of.  There is no way to the server to
        set this mode for you.

DALnet (ircu2.9.x+DAL, DAL4.x, Bahamut, Dreamforge)

    g   All will see nickname collisions.  Those with user mode +o will
        also see all uses of the [[OPER]] command and all failed/aborted
        server connection attempts.
    h   "Help mode".  This user mode is privileged.  The server will
        show you all uses of the HELP protocol command.  All who [[WHOIS]]
        you will get the 310 server numeric indicating your +h status.

IRCNet (irc2.9.x):

    r   "Restricted mode".  The server will not permit this client to
        become a channel operator either through the __MODE__ command or
        through the [[JOIN]] command.  The server will not permit this
        client to use the [NICK]] command.  You cannot unset this mode.
   (s)  These servers do not have the +s user mode.

EFnet [Comstud] (irc2.8.x+CSr27 and beyond):

    b   When enabled, shows connects from potential bots, and attempts
          with invalid usernames.
    c   When enabled, shows all clients connecting and disconnecting
          from your server.  Limited to irc operators.
    d   When enabled, shows connects where the username given and the
          client's ident response differ.
    f   When enabled, shows all "Fake MODE" and "Nickname Collision"
          notices.
    k   When enabled, shows all global and local operator kills.
    l   When enabled, shows connect attempts from clients that exceed
          their connect class (Y:line) limit.
   (r)  Replaced by +bdl after CSr25.
    s   When enabled, it shows any miscellaneous server notices that
          are not shown with modes bcdfklu (even if they are not
          enabled).
    u   When enabled, shows all unauthorized connect attempts, as well
          as connect attempts when the server has reached its maximum
          connection limit.

EFnet [/th] servers (irc2.8/th):

    User Modes:
       c   When enabled, shows all clients connecting and disconnecting
             from your server.  Limited to IRC operators.
       d   Debug mode, displays miscellaneous messages.  Limited to irc
             operators.
       k   When enabled, shows all server kills
       n   Shows all local nickname changes.  Limited to irc operators.
       r   When enabled, shows all rejected connections.
       s   When enabled, it shows any miscellaneous server notices that
             are not shown with modes ckr, including operator kills
       y   Spy mode, informs operators of all [[LINKS]], [[STATS]], and [[TRACE]]
             commands issued, and of any failed [[MSG]] commands.

EFnet Hybrid 6 servers (2.8/hybrid-6):

    User Modes:
       O   Designates this client is a local IRC Operator.
       o   Designates this client is a global IRC Operator.
       w   Can see server wallops.
             May be irc operator only depending on server configuration.
       z   Can see oper wallops.
             No function unless irc operator.
       s   Can see generic server messages and oper kills.
       c   Can see client connections and exits.
             No function unless irc operator.
       r   Can see 'rejected' client notices.
             No function unless irc operator.
       k   Can see server kill messages.
       f   Can see 'I-line is full' notices.
             No function unless irc operator.
       y   Can see stats/links/admin requests to name a few.
             No function unless irc operator.
       d   Can see server debug messages. Note that if the server was
             compiled with DEBUG defined, this information can potentially
             be an invasion of user privacy.
             Limited to irc operators with D flag.
       n   Can see client nick changes. Limited to irc operators with N flag.
       b   Can see bot detection notices.
             No function unless irc operator

EFnet Hybrid 7 servers (2.8/hybrid-7):

    All modes for EFNet Hybrid 6 Servers apply, and the following
    additional modes are available, or are changed in meaning.
    User Modes:
      (O)   Obsolete. Hybrid-7 does not support local operators.
       a    Server administrator flag. Automatically set by server in
            conjunction with the OPER command, not usable by normal users.
       g    Reject all PRIVMSG/NOTICE not addressed to a channel, unless
            the sender has been authorized by the ACCEPT protocol command
            (presently you must use /quote for this)

AnotherNet servers

    User Modes:
       c   Show all [dis]connections, possible clones, and invalid logins
       f   Show all [[DCC]] handshakes (mnemonic: file transfers)
       h   Makes operator completely invisible to all normal users;
           mainly meant for channel services (mnemonic: hidden)

UnderNet servers

    Server notice masks:
       Under ircu servers the +s usermode can optionally take a numeric
       argument prefixed by + or -
       This argument is used to show only specific types of server messages.
         1     unsorted old messages
         2     server kills (nick collisions)
         4     oper kills
         8     desyncs (hack2)
         16    temporary desyncs (hack3)
         32    unauthorized connections
         64    common TCP or socket errors
         128   too many connections
         256   services actions on channels (hack4)
         512   glines
         1024  net join/break, etc
         2048  IP mismatches
         4096  host throttle add/remove notices
         8192  old oper-only messages (Oper Only)
         16384 client connect/exit messages (Oper Only)
       To set a server notice mask (allowing you to see that type of notice)
         /mode <your nickname> +s +mask
       Only one number may be specified, and it is added to your current
         server notice mask. However you can combine values before passing them
         to the mode command.
       To clear a server notice mask (preventing you from seeing that type of
         notice)
         /mode <your nickname> +s -mask
       Default server notice mask for users who just set +s usermode is 1540
         (4+512+1024)
       Default server notice mask for opers is 1799 (1+2+4+256+512+1024)

Channel Modes:

You can set and unset your user modes to change certain attributes about a channel. Channel modes are lost when the last person leaves a channel (the channel is destroyed). Channels may be given a set of “default” channel modes by the server when you create it. The first person to join a channel creates it and becomes the channel operator. The mode of a channel may only be changed by one of its operators. The operatorship may be shared among any of the channel's members. be set and unset by channel operators. “prinitially nnect to it. You may be given a set of extra user modes when the OPER command is successful. Some user modes are “privileged” turn them on for you. You may not change or query the mode of any other user.

 =====Standard Channel Modes:=====
    b   When enabled, this prevents the specified nick!user@host mask
          from entering the channel.  If only the @host portion is
          specified, "*!*" is prepended; if only user@host is specified,
          "*!" is prepended; if the mask does not contain a "@", it is
          assumed to be a nickname, and a !*@* is appended.  When used
          with no arguments, the channels list of "bans" is displayed.
          On some servers, this also prevents any users matching the
          specified nick!user@host mask from speaking on the channel or
          changing nicks.
    i   When enabled, users may only join the channel if [[INVITE]]d.
    k   When enabled, users may only join the channel if they specify
          the proper "key" (which is specified when +k is set).
    l   When enabled, only the specified number of users may enter the
          channel.
    m   When enabled, only users with +o or +v may speak on the channel.
    n   When enabled, public messages from outside the channel are not
          allowed.
    o   When enabled, grants the specified nickname channel operator
          status.
    p   When enabled, the channel is made private.  The channel name
          will not show up in [[WHO]], [[WHOIS]], [[NAMES]], or [[LIST]] replies (though
          users who are not +i will still be shown in [[NAMES]], the channel
          name is simply masked as "Private").
          This no longer works as expected on all servers, as some have
          given +p other meanings.
    s   When enabled, makes the channel secret.  This is the same as +p,
          except the channel will not show up in any [[WHO]]/[[WHOIS]]/etc.
          queries from a person not on the channel.  Anyone who is on a
          +s channel is effectively invisible, as per user mode +i.
    t   When enabled, only channel operators may set a topic.
    v   When enabled, grants the specified nickname voice status.
IRCNet
    Channel Modes:
       a   When enabled, this makes the channel anonymous.  Nicknames are
             hidden (and thus nick changes are not shown), and no other
             channel modes are permitted.  Note that this can seriously
             confuse the client...
       I   Invite exemption. This takes a hostmask like a ban would, and
           acts as a perminant invite.
       e   Ban exemption. Same format as +b, except user matching a
             ban exemption can join regardless of bans.
Hybrid6
    Channel Modes:
       e   Ban exemption. Same format as +b, except users matching a
             ban exemption can walk through any bans matching them.
             The server may remove ban exemptions automatically when
             a ban-exempt client is kicked shortly after joining through
             a ban.
       p   Paranoid. Channel operators will see when another channel
             operator invites someone. (this differs from the old
             chanmode p, which was formerly used for "private" mode)
             Beware that this will not have the desired effect in a
             mixed hybrid-6/hybrid-7 network, as +p is redefined to mean
             knock disable in hybrid-7.
Hybrid7
    Channel Modes:
       a   Anonymous channel operators. Channel operators will not be
             identified as channel operators, and channel operator commands
             will not reveal the identity of a channel operator.
       e   Ban exemption. Same format as +b, except users matching a
             ban exemption can walk through any bans matching them.
             The server may remove ban exemptions automatically when
             a ban-exempt client is kicked shortly after joining through
             a ban.
       p   Knock Disable - This differs yet again from previous uses for
             the +p channel mode, which previously meant "private" or
             "paranoid". Setting this mode on a channel will prevent
             KNOCK from being used on hybrid-7 servers. This will not
             have the expected results on a mixed hybrid-6/hybrid-7
             network!
       I   Invite exemption. This takes a hostmask like a ban would, and
           acts as a perminant invite.

Description:

Both channels and users have modes associated with them. For channels, they determine who is a channel operator, the number of people who may join the channel, who may not enter the channel, and myriad other things. For users, they determine whether the user will is an IRC operator, whether the user will receive special server notices, etc.

Modes are enabled when prepended with a ”+“, and disabled when with a ”-“. Modes may be clustered as well. When clustering modes, all mode changes are specified first, then their parameters (see the examples below).

Examples:

To receive operator WALLOPS and server notices (both examples are equivalent):

    /mode your_nick +sw
    /mode your_nick +s+w

To set a channel limit (the number is arbitrary):

    /mode #channel +l 35

To make someone a channel operator:

    /mode #channel +o theirnick

To set a ban, a key, and to remove chanop status from someone:

    /mode #channel +bk-o *!*some@*.ban.com Secret_Key foobar

Restrictions:

Only channel operators may set modes for a channel (though anyone may view them), and only you may set or view your personal user modes. Additionally, the user mode +o may NOT be set with MODE, you must use the OPER command. However, it may be removed with -o (see DEOP as well).

Also note that some server variants do not allow for redundant mode changes, such as ”+oo foobar foobar“. This shouldn't cause too many problems though, since you can easily reverse a mode if you wish to set it again, such as ”-o+o foobar foobar“, which is allowed.

Finally, note that mode changes are limited to a maximum of 4 total parameters. Thus you could give +o to 3 people and set +l, but you could not do those and set +k as well, since that would involve 5 parameters.

Other Notes:

On Undernet servers, the maximum number of parameters for MODE is 6. Additionally, some server versions have extra modes that may be used. Keep in mind that these do not apply everywhere, so you should check what software version your server is using to be sure (see VERSION).

Undernet servers (ircu2.9.x):

    User Modes:
       d   When enabled, your client does not receive any public messages
             from any channel you are on. (mnemonic: deaf mode)
       k   No-kick mode.  Any client with this mode may not be kicked from
             any channel it applies to.  Limited to services.

DALnet servers (ircu2.9.x+DAL, DAL4.x)

    User Modes:
       g   Allows operators to see all [[OPER]] attempts, and failed server
             connects.  Allows all users to see nickname collisions.
       h   Shows operators the arguments to any protocol HELP command
             issued.  Server numeric [[on 310|310]] is returned in [[WHOIS]] to denote
             +h users.

IRC 2.9 servers (irc2.9.x):

    User Modes:
       r   When enabled, the client cannot be a channel operator (even if
             it is the first to join), nor can it change nicknames.  This
             mode is automatic if the connecting client has a matching i:
             line.  This mode cannot be reversed once enabled.
      (s)  Version 2.9 servers do not have a +s user mode.
    Channel Modes:
       a   When enabled, this makes the channel anonymous.  Nicknames are
             hidden (and thus nick changes are not shown), and no other
             channel modes are permitted.  Note that this can seriously
             confuse the client...

EFnet +CS servers (irc2.8.x+CSr27 and beyond):

    User Modes:
       b   When enabled, shows connects from potential bots, and attempts
             with invalid usernames.
       c   When enabled, shows all clients connecting and disconnecting
             from your server.  Limited to irc operators.
       d   When enabled, shows connects where the username given and the
             client's ident response differ.
       f   When enabled, shows all "Fake MODE" and "Nickname Collision"
             notices.
       k   When enabled, shows all global and local operator kills.
       l   When enabled, shows connect attempts from clients that exceed
             their connect class (Y:line) limit.
      (r)  Replaced by +bdl after CSr25.
       s   When enabled, it shows any miscellaneous server notices that
             are not shown with modes bcdfklu (even if they are not
             enabled).
       u   When enabled, shows all unauthorized connect attempts, as well
             as connect attempts when the server has reached its maximum
             connection limit.

EFnet /th servers (irc2.8/th):

    User Modes:
       c   When enabled, shows all clients connecting and disconnecting
             from your server.  Limited to IRC operators.
       d   Debug mode, displays miscellaneous messages.  Limited to irc
             operators.
       k   When enabled, shows all server kills
       n   Shows all local nickname changes.  Limited to irc operators.
       r   When enabled, shows all rejected connections.
       s   When enabled, it shows any miscellaneous server notices that
             are not shown with modes ckr, including operator kills
       y   Spy mode, informs operators of all [[LINKS]], [[STATS]], and [[TRACE]]
             commands issued, and of any failed [MSG]] commands.

EFnet Hybrid 6 servers (2.8/hybrid-6):

    User Modes:
       O   Designates this client is a local IRC Operator.
       o   Designates this client is a global IRC Operator.
       w   Can see server wallops.
             May be irc operator only depending on server configuration.
       z   Can see oper wallops.
             No function unless irc operator.
       s   Can see generic server messages and oper kills.
       c   Can see client connections and exits.
             No function unless irc operator.
       r   Can see 'rejected' client notices.
             No function unless irc operator.
       k   Can see server kill messages.
       f   Can see 'I-line is full' notices.
             No function unless irc operator.
       y   Can see stats/links/admin requests to name a few.
             No function unless irc operator.
       d   Can see server debug messages.
             Limited to irc operators with D flag.
       n   Can see client nick changes. Limited to irc operators with N flag.
    Channel Modes:
       e   Ban exemption. Same format as +b, except users matching a
             ban exemption can walk through any bans matching them.
       p   Paranoid. Channel operators will see when another channel
             operator invites someone. (this differs from the old
             chanmode p, which was formerly used for "private" mode)

EFnet Hybrid 7 servers (2.8/hybrid-7):

    All modes for EFNet Hybrid 6 Servers apply, and the following
    additional modes are available, or are changed in meaning.
    User Modes:
       a    Server administrator flag. Automatically set by server in
            conjunction with the [[OPER]] command, not usable by normal users.
       g    Reject all PRIVMSG/NOTICE not addressed to a channel, unless
            the sender has been authorized by the ACCEPT protocol command
            (presently you must use /quote for this)
    Channel Modes:
      a     Anonymous channel operators. Channel operators will not be
            identified as channel operators, and channel operator commands
            will not reveal the identity of a channel operator.
      I     Standing Invitation. Format is the same as a ban. Users matching
            will be able to join regardless of the +i mode, as if they had
            been given an [[INVITE]] by one of the ops.

AnotherNet servers

    User Modes:
       c   Show all [dis]connections, possible clones, and invalid logins
       f   Show all DCC handshakes (mnemonic: file transfers)
       h   Makes operator completely invisible to all normal users;
           mainly meant for channel services (mnemonic: hidden)

UnderNet servers

    Server notice masks:
       Under ircu servers the +s usermode can optionally take a numeric
       argument prefixed by + or -
       This argument is used to show only specific types of server messages.
         1     unsorted old messages
         2     server kills (nick collisions)
         4     oper kills
         8     desyncs (hack2)
         16    temporary desyncs (hack3)
         32    unauthorized connections
         64    common TCP or socket errors
         128   too many connections
         256   services actions on channels (hack4)
         512   glines
         1024  net join/break, etc
         2048  IP mismatches
         4096  host throttle add/remove notices
         8192  old oper-only messages (Oper Only)
         16384 client connect/exit messages (Oper Only)
       To set a server notice mask (allowing you to see that type of notice)
         /mode <your nickname> +s +mask
       Only one number may be specified, and it is added to your current
         server notice mask. However you can combine values before passing them
         to the mode command.
       To clear a server notice mask (preventing you from seeing that type of
         notice)
         /mode <your nickname> +s -mask
       Default server notice mask for users who just set +s usermode is 1540
         (4+512+1024)
       Default server notice mask for opers is 1799 (1+2+4+256+512+1024)