This section lists all of the possible channel modes that may be used with /MODE
/mode <#channel> <+/-> <mode(s)>
No external messages.
-Only channel members may talk in the channel.
Users outside the channel may not send messages to it.
/mode <#channel> +n
-Only opped (+o) users may set the 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.
/mode <#channel> +t
-Channel will not be shown in /whois and /list etc.
This channel will not appear on channel lists or WHO or WHOIS output unless you are on it.
/mode <#channel> +s
-Disables /knock to the channel.
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.
/mode <#channel> +p
-Only opped/voiced users may talk in channel.
When a channel is set +m, only users with +o or +v on the channel can send to it. This mode does not prevent users without +v or +o from changing nicks.
/mode <#channel> +m
-Users need to be /invite'd or match a +I to join the channel.
No client can join this channel unless they are listed in the invite exemption list (+I).
/mode <#channel> +i
-Only users identified to services may join.
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. '/mode +q $~a' can be used to prevent unregistered users from speaking in channel while allowing them to join (old +R behaviour).
/mode <#channel> +r
-All color codes in messages are stripped.
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 escape sequences will usually leave cruft sent to the channel, just without the escape characters themselves.
/mode <#channel> +c
-Everyone may invite users. Significantly weakens +i control.
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, /invite is limited to channel operators. With this mode set, any client in the channel can affect who can join around modes such as +i, +j, +l or +r.
/mode <#channel> +g
-Messages blocked by +m, +b and +q are instead sent to ops.
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 set +o (channel operator). This is intended for use in moderated debates.
/mode <#channel> +z
Large ban/exempt/invex lists.
-Increase maximum number of +beIq entries. Only settable by opers.
This mode, which can only be set by freenode staff, allows a channel to have longer than normal ban, exempt, and invex lists.
/mode <#channel> +L
-Channel does not disappear when empty. Only settable by opers.
This mode may only be set by freenode staff. Once set, the channel will not be deleted when it becomes empty. Additionally, the +b, +e, +I and +q lists have higher capacity to make channel forwarding easier. NOTE: Permanent channels could still be erased by catastrophic network failures.
/mode <#channel> +P
-Anyone may set forwards to this (otherwise ops are necessary).
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).
/mode <#channel> +F
Block forwarded users.
-Users cannot be forwarded to the channel (however, new forwards can still be set subject to +F).
Users will not be able to be forwarded (see +f above) to a channel with +Q.
/mode <#channel> +Q
-All CTCP messages to the channel, except ACTION, are disallowed.
This mode blocks the sending of CTCP commands to whole channels.
/mode <#channel> +C
-Forwards users who cannot join because of +i, +j, +l or +r.
This feature is specified with some channel name #foo. When specified on a +i channel (invite-only), users who try to join the channel and are not in the invite-only exemption list (+I) are automatically sent to channel #foo. Clients receive a 470 numeric message which lists the original and the target channels. Clients will also be forwarded if +j is set and the join throttle is exceeded.
An operator can only set mode +f #channel2 if they are an op in #channel2 or if #channel2 has mode +F set.
An operator can only use ChanServ's MLOCK feature 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.
/mode <#channel> +f <#channel2>
-Limits number of joins to the channel per time.
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. Invited users can join regardless of +j, but are counted as normal. It is highly recommended that your channel use this mode to prevent against bot attacks (observe the average join rate of your channel and pick a good value for +j). If you also use +f, you can forward users who are throttled to another channel (e.g. ##overflow).
/mode <#channel> +j <count:time>
-Requires users to issue /join #channel KEY to join.
This mode sets up a channel password. To enter the channel, you must specify the password on your JOIN command.
/mode <#channel> +k <key>
-Impose a maximum number of LIMIT people in the channel.
Specified with a numeric value, this mode limits the number of users who can join your channel.
/mode <#channel> +l <limit>
-Allows a user to talk in a +m channel. Noted by +nick.
/mode <#channel> +v <nick>
-Allows a user full control over the channel.
/mode <#channel> +o <nick>
-Prevents a user from entering the channel, and from sending or changing nick if they are on it, based on a nick!user@host match.
Bans are used to prevent users from joining a channel. They take one parameter which can take many different forms. The most common 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 set on IP addresses will apply even if the affected user joins with a resolved or spoofed hostname. CIDR is supported in bans, like *!*@10.0.0.0/8. This is most useful with IPv6.
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, while 'data' depends on type. Potential types are a, r and x. For example, '/mode +b $a:foobar' will ban the user signed into the services account 'foobar' from joining the channel. '/mode +b $r:Baz*' will ban any user who's realname field (gecos) begins with 'Baz'. This is equivalent to '/mode +d Baz*' in other ircds. '/mode +b $~a:T*' would ban all users identified to accounts not beginning with the letter "T". '/mode +b $x:string' will ban any user where any part of their nick!user@host#gecos contains the string given as a parameter. The string should not be formatted as a hostmask, in this case.
Passing '/mode +b' alone will return a list of bans and can be used by any user. Actually setting bans is restricted to channel operators. Users matching bans are unable to join the channel or knocking on it. If the banned user is already in the channel, they will be prevented from speaking and from changing nicks in there, unless +v.
The suffix "$#channel" can be appended to any of the above bans masks to cause a user to be forwarded to #channel. The ban setter will only be able to set this ban if they are an op in #channel, or if #channel has mode +F set. In this case, in all situations where the user would previously have been told they could not join, they will instead join the channel named in the ban mask and be sent a 470 numeric describing the forward.
/mode <#channel> +b <nick!user@host>
-Prevents a user from sending to the channel or changing nick, based on a nick!user@host match.
This mode works like +b (ban user), but instead simply quiets the user. We encourage channels to use quiets in place of bans wherever possible. The list of quiets is seperate from the list of bans and can be viewed using '/mode #channel +q'.
/mode <#channel> +q <nick!user@host>
-Allows a user to join a channel and send to it even if they are banned (+b) or quieted (+q), based on a nick!user@host match.
This mode takes one parameter of the form nick!user@host, with the usual wildcards (including extban parameters), which overrides +b and +q bans for all clients it matches. 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 +be *!*@*.example.com *!*firstname.lastname@example.org
/mode <#channel> +e <nick!user@host>
Invite only exemption.
-Allows a user to join a +i channel without an invite, based on a nick!user@host match.
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 (+i). Unlike the INVITE command, this does not override +j, +l and +r. Only channel operators can see +I changes or request the list.
/mode <#channel> +I <nick!user@host>