]> jfr.im git - irc/freenode/web-7.0.git/blob - content/kb/using/channelmodes.md
Add pages on channel and usermodes, extbans and chanserv usage
[irc/freenode/web-7.0.git] / content / kb / using / channelmodes.md
1 Title: Channel modes
2 ---
3 There are various modes that can be set on channels.
4 You can list current channel modes with the `/mode #channel` command.
5 Use `/msg chanserv info #channel` to see modes [set with MLOCK](kb/using/chanserv_overview)
6
7 ### Setting channel modes
8 Most channel modes require you to be opped (+o) in the channel in question to modify them.
9 You can not override modes [set with MLOCK](kb/using/chanserv_overview) with the /mode command.
10
11 For those that you can set, `/mode #channel +mode` will work.
12 Most modes should also be explained by the built in help of our network, use `/help cmode` or `/quote help cmode` if your client does not pass through `/help`.
13
14 Keep in mind that all channel modes are lost when a channel becomes empty, so consider enabling the GUARD setting of [ChanServ](kb/using/chanserv_overview) in your channel to avoid that.
15
16 ### Available channel modes
17 The following user modes are available:
18
19 | Mode (name) | Description |
20 | ----------- | ----------- |
21 | b<br>(channel ban) | Bans are used to prevent users from joining a channel. Sending `/mode #channel +b` alone will return a list of bans and can be seen by any user. Actually setting bans is restricted to channel operators. Users matching bans are unable to join the channel unless they are exempt (see below). If the banned user is already in the channel, they will be prevented from speaking and from changing nicks in there, unless voiced (+v). Often users are removed with the `/kick` or `/remove` command after a ban is set.<br>On freenode, bans can take one of two main forms. The most common form is `+b nick!user@host`. The wildcards * and ? are allowed, matching zero-or-more and exactly-one characters, respectively. Bans set on IP addresses will apply even if the affected user joins with a resolved or cloaked hostname. CIDR is supported in bans, like *!*@10.0.0.0/8. This is most useful with IPv6.<br>The second form is described on the [Extbans](kb/using/extbans) page and can be used for bans based on user data or to forward banned users to a different channel. |
22 | c<br>(colour filter) | This mode activates the colour filter for the channel. This filters out bold, underline, reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that this is a filter, so enabling the mode disables colours and the likes. |
23 | C<br>(block CTCPS) | This mode blocks the sending of CTCP commands (other than `/me` actions) to whole channels. |
24 | e<br>(ban exemption) | This mode takes one parameter, just like ban (above). Wildcards and [extbans](kb/using/extbans) can be used, like ban. Ban exemption matches override +b and +q bans for all clients it matches, allowing the exempted user to join/speak as if they were not banned or quieted. 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 in. For example: `/mode #channel +bee *!*@*.example.com *!*someuser@host3.example.com $a:JohnDoe` would block all users from example.com, while still allowing someuser from host3 and JohnDoe to join.
25 | f<br>(forward on uninvited) | This mode takes one parameter, a channel name. Users who cannot join the channel (because of +i, +j, +r, see below) are instead sent to the channel given in +f. The most common example would be something like `/mode #channel1 +if #channel2`, which would cause any users trying to join #channel1 and who are not in the invite-only exemption list (+I, see below) to be sent to #channel2 instead. Clients receive a 470 numeric message which lists the original and the target channels.<br>An operator can only set mode +f #channel2 if they are an op in #channel2 or if #channel2 has mode +F set (see below).<br>Usually you want to set forwards with [MLOCK](kb/using/chanserv_overview), because the channel will become empty over time and the channel modes are lost. You might also want to set [ChanServ's GUARD](kb/using/chanserv_overview) to prevent the channel from becoming empty. An operator can only use [ChanServ's MLOCK feature](kb/using/chanserv_overview) with +f if they have access flag +s in both channels, or if the channel to be forwarded to is +F and they have +s in the original channel. |
26 | F<br>(enable forwarding) | This mode can be set by any channel operator to allow operators in other channels to set bans to forward clients to their channel, without requiring ops in it (see +b above). |
27 | g<br>(allow anybody to invite) | With this mode set, anybody in the channel is allowed to invite others (using the `/invite` command) to the channel. If this mode is not set, invitations may only be sent by channel operators. Keep in mind that with this mode set, any client in the channel can affect who can join around restrictive modes such as +i, +j, +l or +r. |
28 | i<br>(invite-only) | No client can join this channel unless they are listed in the invite exemption list (+I) or are invited by someone through the `/invite` or `/msg ChanServ INVITE #channel` command. |
29 | I<br>(invite-only exemption) | This mode takes one parameter of the same form as bans. [Extbans](kb/using/extbans) are supported and common, e.g. for setting an exemption for a specific registered user. Matching clients do not need to be invited to join the channel when it is invite-only (+i). Unlike the `/invite` command, this does not override +j, +l and +r. Only channel operators can see +I changes or see the list with `/mode #channel +I`. |
30 | j<br>(join throttling) | 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, so with e.g. 3:10 only 3 users could join within 10 seconds. Invited users can join regardless of +j, but are counted as normal. You can use this mode to prevent bot attacks. Observe the average join rate of your channel and pick a good value for +j. If you also use +f (see above), you can forward users who are throttled to another channel like ##overflow.
31 | k<br>(channel password) | This mode sets up the channel password given as a parameter. To enter the channel, you must specify the password on your `/join` command. Keep in mind, modes locked with ChanServ's MLOCK command can be seen by anyone recreating the channel; this includes keys. Also keep in mind that users being on the channel when +k is set will see the key as well. |
32 | l<br>(join limit) | Specified with a numeric value, this mode limits the number of users who can be in your channel at the same time. |
33 | L<br>(large ban/exempt/invex lists) | This mode, which can only be set by freenode staff, allows a channel to have longer than normal ban, exempt, and invite exemption lists. Note that this is usually not needed and thus not handed out. Well maintained lists with old and unneeded entries removed rarely ever surpass the maximal list size. |
34 | m<br>(moderated) | When a channel is set +m, only users who are opped (+o) or voiced (+v) on the channel can send to it. This mode does not prevent users without voice or op from changing nicks. |
35 | n<br>(prevent external send) | Users outside the channel may not send messages to it. |
36 | p<br>(paranoid) | 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 they are on it. Unlike on some ircds, +p and +s can be set together. |
37 | P<br>(permanent channel) | This mode may only be set by freenode staff. Once set, the channel will not be deleted when it becomes empty. Keep in mind that permanent channels can still be erased by catastrophic network failures. This mode is rarely handed out, you probably don't need to request it. Enable [ChanServ's GUARD](kb/using/chanserv_overview) setting to keep a channel from becoming empty. |
38 | q<br>(quiet user) | This mode works like +b (ban user), but instead simply quiets the user. The user can join, but cannot speak in the channel or change nicks whilst in the channel. We encourage channels to use quiets in place of bans wherever possible. The list of quiets is separate from the list of bans and can be viewed using `/mode #channel +q`. This mode also supports [extbans](kb/using/extbans), e.g. `/mode #channel +q $~a` can be used to prevent unregistered users from speaking in channel while allowing them to join. |
39 | Q<br>(block forwarded users) | Users will not be able to be forwarded (see +f above) to a channel with +Q. |
40 | r<br>(block unidentified)|This mode prevents users who are not identified to NickServ from joining the channel. Users will receive a server notice explaining this if they try to join. See +q (quiet) above for an alternative which lets unregistered users join but not speak in your channel. |
41 | s<br>(secret channel) | This channel will not appear on channel lists or WHO or WHOIS output unless you are on it. |
42 | S<br>(SSL-only) | Only users connected via SSL may join the channel while this mode is set. Users already in the channel are not affected. Keep in mind that this also blocks all webchat users, as they are not marked as connected via SSL. |
43 | t<br>(only ops can change topic) | When +t is set, only channel operators may modify the topic of the channel. This mode is recommended in larger, more public channels to protect the integrity of the topic. |
44 | z<br>(reduced moderation) | When +z is set, the effects of +b, +q, and +m are relaxed. For each message, if that message would normally be blocked by one of these modes, it is instead sent to all the users who are currently channel operators (+o). This is intended for use in moderated debates. |