]> jfr.im git - solanum.git/blob - doc/oper-guide/cmodes.rst
do not hardcode theme
[solanum.git] / doc / oper-guide / cmodes.rst
1 Channel modes
2 =============
3
4 ``+b``, channel ban
5 -------------------
6
7 Bans take one parameter which can take several forms. The most common
8 form is ``+b nick!user@host``. The wildcards ``*`` and ``?`` are
9 allowed, matching zero-or-more, and exactly-one characters
10 respectively. The masks will be trimmed to fit the maximum allowable
11 length for the relevant element. Bans are also checked against the IP
12 address, even if it resolved or is spoofed. CIDR is supported, like
13 ``*!*@10.0.0.0/8``. This is most useful with IPv6. Bans are not
14 checked against the real hostname behind any kind of spoof, except if
15 host mangling is in use (e.g. ``extensions/ip_cloaking.so``): if the
16 user's host is mangled, their real hostname is checked additionally,
17 and if a user has no spoof but could enable mangling, the mangled form
18 of their hostname is checked additionally. Hence, it is not possible
19 to evade bans by toggling host mangling.
20
21 The second form (extban) is ``+b $type`` or ``+b $type:data``. type is
22 a single character (case insensitive) indicating the type of match,
23 optionally preceded by a tilde (``~``) to negate the comparison. data
24 depends on type. Each type is loaded as a module. The available types
25 (if any) are listed in the ``EXTBAN`` token of the 005
26 (``RPL_ISUPPORT``) numeric. See ``doc/extban.txt`` in the source
27 distribution for more information.
28
29 If no parameter is given, the list of bans is returned. All users can
30 use this form. The plus sign should also be omitted.
31
32 Matching users will not be allowed to join the channel or knock on it.
33 If they are already on the channel, they may not send to it or change
34 their nick.
35
36 ``+c``, colour filter
37 ---------------------
38
39 This cmode activates the colour filter for the channel. This filters out
40 bold, underline, reverse video, beeps, mIRC colour codes, and ANSI
41 escapes. Note that escape sequences will usually leave cruft sent to the
42 channel, just without the escape characters themselves.
43
44 ``+e``, ban exemption
45 ---------------------
46
47 This mode takes one parameter of the same form as bans, which overrides
48 ``+b`` and ``+q`` bans for all clients it matches.
49
50 This can be useful if it is necessary to ban an entire ISP due to
51 persistent abuse, but some users from that ISP should still be allowed
52 in. For example::
53
54 /mode #channel +be *!*@*.example.com *!*someuser@host3.example.com
55
56 Only channel operators can see ``+e`` changes or request the list.
57
58 ``+f``, channel forwarding
59 --------------------------
60
61 This mode takes one parameter, the name of a channel (``+f
62 #channel``). If the channel also has the ``+i`` cmode set, and
63 somebody attempts to join without either being expliticly invited, or
64 having an invex (``+I``), then they will instead join the channel
65 named in the mode parameter. The client will also be sent a 470
66 numeric giving the original and target channels.
67
68 Users are similarly forwarded if the ``+j`` cmode is set and their attempt
69 to join is throttled, if ``+l`` is set and there are already too many users
70 in the channel or if ``+r`` is set and they are not identified.
71
72 Forwards may only be set to ``+F`` channels, or to channels the setter has
73 ops in.
74
75 Without parameter (``/mode #channel f`` or ``/mode #channel +f``) the forward
76 channel is returned. This form also works off channel.
77
78 ``+F``, allow anybody to forward to this
79 ----------------------------------------
80
81 When this mode is set, anybody may set a forward from a channel they
82 have ops in to this channel. Otherwise they have to have ops in this
83 channel.
84
85 ``+g``, allow anybody to invite
86 -------------------------------
87
88 When this mode is set, anybody may use the ``INVITE`` command on the channel
89 in question. When it is unset, only channel operators may use the ``INVITE``
90 command.
91
92 When this mode is set together with ``+i``, ``+j``, ``+l`` or ``+r``, all channel
93 members can influence who can join.
94
95 ``+i``, invite only
96 -------------------
97
98 When this cmode is set, no client can join the channel unless they have
99 an invex (``+I``) or are invited with the ``INVITE`` command.
100
101 ``+I``, invite exception (invex)
102 --------------------------------
103
104 This mode takes one parameter of the same form as bans. Matching clients
105 do not need to be invited to join the channel when it is invite-only
106 (``+i``). Unlike the ``INVITE`` command, this does not override ``+j``, ``+l`` and ``+r``.
107
108 Only channel operators can see ``+I`` changes or request the list.
109
110 ``+j``, join throttling
111 -----------------------
112
113 This mode takes one parameter of the form n:t, where n and t are
114 positive integers. Only n users may join in each period of t seconds.
115
116 Invited users can join regardless of ``+j``, but are counted as normal.
117
118 Due to propagation delays between servers, more users may be able to
119 join (by racing for the last slot on each server).
120
121 ``+k``, key (channel password)
122 ------------------------------
123
124 Taking one parameter, when set, this mode requires a user to supply the
125 key in order to join the channel: ``/JOIN #channel key``.
126
127 ``+l``, channel member limit
128 ----------------------------
129
130 Takes one numeric parameter, the number of users which are allowed to be
131 in the channel before further joins are blocked. Invited users may join
132 regardless.
133
134 Due to propagation delays between servers, more users may be able to
135 join (by racing for the last slot on each server).
136
137 ``+L``, large ban list
138 ----------------------
139
140 Channels with this mode will be allowed larger banlists (by default, 500
141 instead of 50 entries for ``+b``, ``+q``, ``+e`` and ``+I`` together). Only network
142 operators with resv privilege may set this mode.
143
144 ``+m``, moderated
145 -----------------
146
147 When a channel is set ``+m``, only users with ``+o`` or ``+v`` on the channel can
148 send to it.
149
150 Users can still knock on the channel or change their nick.
151
152 ``+n``, no external messages
153 ----------------------------
154
155 When set, this mode prevents users from sending to the channel without
156 being in it themselves. This is recommended.
157
158 ``+o``, channel operator
159 ------------------------
160
161 This mode takes one parameter, a nick, and grants or removes channel
162 operator privilege to that user. Channel operators have full control
163 over the channel, having the ability to set all channel modes except ``+L``
164 and ``+P``, and kick users. Like voiced users, channel operators can always
165 send to the channel, overriding ``+b``, ``+m`` and ``+q`` modes and the per-channel
166 flood limit. In most clients channel operators are marked with an '@'
167 sign.
168
169 The privilege is lost if the user leaves the channel or server in any
170 way.
171
172 Most networks will run channel registration services (e.g. ChanServ)
173 which ensure the founder (and users designated by the founder) can
174 always gain channel operator privileges and provide some features to
175 manage the channel.
176
177 ``+p``, paranoid channel
178 ------------------------
179
180 When set, the ``KNOCK`` command cannot be used on the channel to request an
181 invite, and users will not be shown the channel in ``WHOIS`` replies unless
182 they are on it. Unlike in traditional IRC, ``+p`` and ``+s`` can be set
183 together.
184
185 ``+P``, permanent channel
186 -------------------------
187
188 Channels with this mode (which is accessible only to network operators
189 with resv privilege) set will not be destroyed when the last user
190 leaves.
191
192 This makes it less likely modes, bans and the topic will be lost and
193 makes it harder to abuse network splits, but also causes more unwanted
194 restoring of old modes, bans and topics after long splits.
195
196 ``+q``, quiet
197 -------------
198
199 This mode behaves exactly like ``+b`` (ban), except that the user may still
200 join the channel. The net effect is that they cannot knock on the
201 channel, send to the channel or change their nick while on channel.
202
203 ``+Q``, block forwarded users
204 -----------------------------
205
206 Channels with this mode set are not valid targets for forwarding. Any
207 attempt to forward to this channel will be ignored, and the user will be
208 handled as if the attempt was never made (by sending them the relevant
209 error message).
210
211 This does not affect the ability to set ``+f``.
212
213 ``+r``, block unidentified
214 --------------------------
215
216 When set, this mode prevents unidentified users from joining. Invited
217 users can still join.
218
219 ``+s``, secret channel
220 ----------------------
221
222 When set, this mode prevents the channel from appearing in the output of
223 the ``LIST``, ``WHO`` and ``WHOIS`` command by users who are not on it. Also, the
224 server will refuse to answer ``WHO``, ``NAMES``, ``TOPIC`` and ``LIST`` queries from
225 users not on the channel.
226
227 ``+t``, topic limit
228 -------------------
229
230 When set, this mode prevents users who are not channel operators from
231 changing the topic.
232
233 ``+v``, voice
234 -------------
235
236 This mode takes one parameter, a nick, and grants or removes voice
237 privilege to that user. Voiced users can always send to the channel,
238 overriding ``+b``, ``+m`` and ``+q`` modes and the per-channel flood limit. In most
239 clients voiced users are marked with a plus sign.
240
241 The privilege is lost if the user leaves the channel or server in any
242 way.
243
244 ``+z``, reduced moderation
245 --------------------------
246
247 When ``+z`` is set, the effects of ``+m``, ``+b`` and ``+q`` are relaxed. For each
248 message, if that message would normally be blocked by one of these
249 modes, it is instead sent to all channel operators. This is intended for
250 use in moderated debates.
251
252 Note that ``+n`` is unaffected by this. To silence a given user completely,
253 remove them from the channel.