2017-03-25 15:15:03 +00:00
|
|
|
Channel modes
|
|
|
|
=============
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-08-29 13:10:37 +00:00
|
|
|
Channel modes are determined by the various plugins loaded by the
|
|
|
|
server. The following consists only of a base list of common modes:
|
|
|
|
your server may have more plugins available, which you can see with
|
|
|
|
the following server command, depending on your IRC client::
|
|
|
|
|
|
|
|
/QUOTE HELP CMODE
|
|
|
|
|
|
|
|
or::
|
|
|
|
|
|
|
|
/RAW HELP CMODE
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+b``, channel ban
|
|
|
|
-------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Bans take one parameter which can take several forms. The most common
|
2017-03-25 15:42:51 +00:00
|
|
|
form is ``+b nick!user@host``. The wildcards ``*`` and ``?`` are
|
|
|
|
allowed, matching zero-or-more, and exactly-one characters
|
|
|
|
respectively. The masks will be trimmed to fit the maximum allowable
|
|
|
|
length for the relevant element. Bans are also checked against the IP
|
|
|
|
address, even if it resolved or is spoofed. CIDR is supported, like
|
|
|
|
``*!*@10.0.0.0/8``. This is most useful with IPv6. Bans are not
|
|
|
|
checked against the real hostname behind any kind of spoof, except if
|
|
|
|
host mangling is in use (e.g. ``extensions/ip_cloaking.so``): if the
|
|
|
|
user's host is mangled, their real hostname is checked additionally,
|
|
|
|
and if a user has no spoof but could enable mangling, the mangled form
|
|
|
|
of their hostname is checked additionally. Hence, it is not possible
|
|
|
|
to evade bans by toggling host mangling.
|
|
|
|
|
|
|
|
The second form (extban) is ``+b $type`` or ``+b $type:data``. type is
|
|
|
|
a single character (case insensitive) indicating the type of match,
|
|
|
|
optionally preceded by a tilde (``~``) to negate the comparison. data
|
|
|
|
depends on type. Each type is loaded as a module. The available types
|
|
|
|
(if any) are listed in the ``EXTBAN`` token of the 005
|
|
|
|
(``RPL_ISUPPORT``) numeric. See ``doc/extban.txt`` in the source
|
|
|
|
distribution for more information.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
If no parameter is given, the list of bans is returned. All users can
|
|
|
|
use this form. The plus sign should also be omitted.
|
|
|
|
|
|
|
|
Matching users will not be allowed to join the channel or knock on it.
|
|
|
|
If they are already on the channel, they may not send to it or change
|
|
|
|
their nick.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+c``, colour filter
|
|
|
|
---------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This cmode activates the colour filter for the channel. This filters out
|
|
|
|
bold, underline, reverse video, beeps, mIRC colour codes, and ANSI
|
|
|
|
escapes. Note that escape sequences will usually leave cruft sent to the
|
|
|
|
channel, just without the escape characters themselves.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+e``, ban exemption
|
|
|
|
---------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This mode takes one parameter of the same form as bans, which overrides
|
2017-03-25 15:33:06 +00:00
|
|
|
``+b`` and ``+q`` bans for all clients it matches.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This can be useful if it is necessary to ban an entire ISP due to
|
|
|
|
persistent abuse, but some users from that ISP should still be allowed
|
2017-03-25 15:42:51 +00:00
|
|
|
in. For example::
|
|
|
|
|
|
|
|
/mode #channel +be *!*@*.example.com *!*someuser@host3.example.com
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Only channel operators can see ``+e`` changes or request the list.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+f``, channel forwarding
|
|
|
|
--------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:42:51 +00:00
|
|
|
This mode takes one parameter, the name of a channel (``+f
|
|
|
|
#channel``). If the channel also has the ``+i`` cmode set, and
|
|
|
|
somebody attempts to join without either being expliticly invited, or
|
|
|
|
having an invex (``+I``), then they will instead join the channel
|
|
|
|
named in the mode parameter. The client will also be sent a 470
|
|
|
|
numeric giving the original and target channels.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Users are similarly forwarded if the ``+j`` cmode is set and their attempt
|
|
|
|
to join is throttled, if ``+l`` is set and there are already too many users
|
|
|
|
in the channel or if ``+r`` is set and they are not identified.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Forwards may only be set to ``+F`` channels, or to channels the setter has
|
2017-03-25 14:42:32 +00:00
|
|
|
ops in.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Without parameter (``/mode #channel f`` or ``/mode #channel +f``) the forward
|
2017-03-25 14:42:32 +00:00
|
|
|
channel is returned. This form also works off channel.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+F``, allow anybody to forward to this
|
|
|
|
----------------------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When this mode is set, anybody may set a forward from a channel they
|
|
|
|
have ops in to this channel. Otherwise they have to have ops in this
|
|
|
|
channel.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+g``, allow anybody to invite
|
|
|
|
-------------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:42:51 +00:00
|
|
|
When this mode is set, anybody may use the ``INVITE`` command on the channel
|
|
|
|
in question. When it is unset, only channel operators may use the ``INVITE``
|
2017-03-25 14:42:32 +00:00
|
|
|
command.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
When this mode is set together with ``+i``, ``+j``, ``+l`` or ``+r``, all channel
|
2017-03-25 14:42:32 +00:00
|
|
|
members can influence who can join.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+i``, invite only
|
|
|
|
-------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When this cmode is set, no client can join the channel unless they have
|
2017-03-25 15:42:51 +00:00
|
|
|
an invex (``+I``) or are invited with the ``INVITE`` command.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+I``, invite exception (invex)
|
|
|
|
--------------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This mode takes one parameter of the same form as bans. Matching clients
|
|
|
|
do not need to be invited to join the channel when it is invite-only
|
2017-03-25 15:42:51 +00:00
|
|
|
(``+i``). Unlike the ``INVITE`` command, this does not override ``+j``, ``+l`` and ``+r``.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Only channel operators can see ``+I`` changes or request the list.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+j``, join throttling
|
|
|
|
-----------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This mode takes one parameter of the form n:t, where n and t are
|
|
|
|
positive integers. Only n users may join in each period of t seconds.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Invited users can join regardless of ``+j``, but are counted as normal.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Due to propagation delays between servers, more users may be able to
|
|
|
|
join (by racing for the last slot on each server).
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+k``, key (channel password)
|
|
|
|
------------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Taking one parameter, when set, this mode requires a user to supply the
|
2017-03-25 15:42:51 +00:00
|
|
|
key in order to join the channel: ``/JOIN #channel key``.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+l``, channel member limit
|
|
|
|
----------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Takes one numeric parameter, the number of users which are allowed to be
|
|
|
|
in the channel before further joins are blocked. Invited users may join
|
|
|
|
regardless.
|
|
|
|
|
|
|
|
Due to propagation delays between servers, more users may be able to
|
|
|
|
join (by racing for the last slot on each server).
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+L``, large ban list
|
|
|
|
----------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Channels with this mode will be allowed larger banlists (by default, 500
|
2017-03-25 15:33:06 +00:00
|
|
|
instead of 50 entries for ``+b``, ``+q``, ``+e`` and ``+I`` together). Only network
|
2017-03-25 14:42:32 +00:00
|
|
|
operators with resv privilege may set this mode.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+m``, moderated
|
|
|
|
-----------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
When a channel is set ``+m``, only users with ``+o`` or ``+v`` on the channel can
|
2017-03-25 14:42:32 +00:00
|
|
|
send to it.
|
|
|
|
|
|
|
|
Users can still knock on the channel or change their nick.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+n``, no external messages
|
|
|
|
----------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When set, this mode prevents users from sending to the channel without
|
|
|
|
being in it themselves. This is recommended.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+o``, channel operator
|
|
|
|
------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This mode takes one parameter, a nick, and grants or removes channel
|
|
|
|
operator privilege to that user. Channel operators have full control
|
2017-03-25 15:33:06 +00:00
|
|
|
over the channel, having the ability to set all channel modes except ``+L``
|
|
|
|
and ``+P``, and kick users. Like voiced users, channel operators can always
|
|
|
|
send to the channel, overriding ``+b``, ``+m`` and ``+q`` modes and the per-channel
|
2017-03-25 14:42:32 +00:00
|
|
|
flood limit. In most clients channel operators are marked with an '@'
|
|
|
|
sign.
|
|
|
|
|
|
|
|
The privilege is lost if the user leaves the channel or server in any
|
|
|
|
way.
|
|
|
|
|
|
|
|
Most networks will run channel registration services (e.g. ChanServ)
|
|
|
|
which ensure the founder (and users designated by the founder) can
|
|
|
|
always gain channel operator privileges and provide some features to
|
|
|
|
manage the channel.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+p``, paranoid channel
|
|
|
|
------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:42:51 +00:00
|
|
|
When set, the ``KNOCK`` command cannot be used on the channel to request an
|
|
|
|
invite, and users will not be shown the channel in ``WHOIS`` replies unless
|
2017-03-25 15:33:06 +00:00
|
|
|
they are on it. Unlike in traditional IRC, ``+p`` and ``+s`` can be set
|
2017-03-25 14:42:32 +00:00
|
|
|
together.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+P``, permanent channel
|
|
|
|
-------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Channels with this mode (which is accessible only to network operators
|
|
|
|
with resv privilege) set will not be destroyed when the last user
|
|
|
|
leaves.
|
|
|
|
|
|
|
|
This makes it less likely modes, bans and the topic will be lost and
|
|
|
|
makes it harder to abuse network splits, but also causes more unwanted
|
|
|
|
restoring of old modes, bans and topics after long splits.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+q``, quiet
|
|
|
|
-------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
This mode behaves exactly like ``+b`` (ban), except that the user may still
|
2017-03-25 14:42:32 +00:00
|
|
|
join the channel. The net effect is that they cannot knock on the
|
|
|
|
channel, send to the channel or change their nick while on channel.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+Q``, block forwarded users
|
|
|
|
-----------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
Channels with this mode set are not valid targets for forwarding. Any
|
|
|
|
attempt to forward to this channel will be ignored, and the user will be
|
|
|
|
handled as if the attempt was never made (by sending them the relevant
|
|
|
|
error message).
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
This does not affect the ability to set ``+f``.
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+r``, block unidentified
|
|
|
|
--------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When set, this mode prevents unidentified users from joining. Invited
|
|
|
|
users can still join.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+s``, secret channel
|
|
|
|
----------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When set, this mode prevents the channel from appearing in the output of
|
2017-03-25 15:42:51 +00:00
|
|
|
the ``LIST``, ``WHO`` and ``WHOIS`` command by users who are not on it. Also, the
|
|
|
|
server will refuse to answer ``WHO``, ``NAMES``, ``TOPIC`` and ``LIST`` queries from
|
2017-03-25 14:42:32 +00:00
|
|
|
users not on the channel.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+t``, topic limit
|
|
|
|
-------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
When set, this mode prevents users who are not channel operators from
|
|
|
|
changing the topic.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+v``, voice
|
|
|
|
-------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
|
|
|
This mode takes one parameter, a nick, and grants or removes voice
|
|
|
|
privilege to that user. Voiced users can always send to the channel,
|
2017-03-25 15:33:06 +00:00
|
|
|
overriding ``+b``, ``+m`` and ``+q`` modes and the per-channel flood limit. In most
|
2017-03-25 14:42:32 +00:00
|
|
|
clients voiced users are marked with a plus sign.
|
|
|
|
|
|
|
|
The privilege is lost if the user leaves the channel or server in any
|
|
|
|
way.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
``+z``, reduced moderation
|
|
|
|
--------------------------
|
2017-03-25 14:42:32 +00:00
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
When ``+z`` is set, the effects of ``+m``, ``+b`` and ``+q`` are relaxed. For each
|
2017-03-25 14:42:32 +00:00
|
|
|
message, if that message would normally be blocked by one of these
|
|
|
|
modes, it is instead sent to all channel operators. This is intended for
|
|
|
|
use in moderated debates.
|
|
|
|
|
2017-03-25 15:33:06 +00:00
|
|
|
Note that ``+n`` is unaffected by this. To silence a given user completely,
|
2017-03-25 14:42:32 +00:00
|
|
|
remove them from the channel.
|