MadIRC is shutting down on 31.01.2024 - As of 11.02.2024 all servers have been shutdown.
So long, and thanks for all the fish.

Channel modes

Channel modes allow you to change the way the channel reacts to certain events. All channels have modes +nt set on them by default. To change a channel mode, simply enter:

/mode #channel +m

Keep in mind that Channel Modes are case sensitive, +b and +B are NOT the same thing. All the time codes do not have to be in seconds, if you want to do a 10 minute ban, rather than using “600” for your time, you can do “10m”. Supported time codes are: 1y2m3w4d5h6m Below is a list of Channel Modes supported by our InspIRCd instance:

Core Modes


Mode Effect
b [n!u@h] Bans matching [n!u@h] from joining the channel. Also, be sure to check out the extbans.
i Sets the channel as Invite-Only
k [key] Sets a key on the channel.
l [number] Sets the channel limit to [number]. Once the limit is reached, no more users can join.
m Makes a channel “moderated”. Only +qaohv can talk. (You must have at least a voice to talk)
n Forces a user to be in the channel to PRIVMSG it. You probably want to keep this mode.
o [nick] Makes [nick] a channel Operator.
p Sets the channel as ‘private’. Will not show up in /LIST, but WILL still show up in your WHOIS.
s Sets the channel as ‘secret’. Will not show up in /LIST or /WHOIS, generally preferred over +p
t Forces a user to have +o or +h to change the topic. You probably want to keep this mode.
v [nick] Gives voice to [nick]. Voiced users have no real power, the only thing special about being voiced is being able to speak when mode +m is set.

Modular Modes


These modes are available through modules. Once the module is unloaded, modes will be removed, and their effects gone.

Mode Providing Module Effect
A m_allowinvite Allows all users in the channel to use /INVITE, even if they don’t have half-op or above.
a m_chanprotect Gives protected status to [nick]. This protects them from channel ops (+o); as of 2.0, this now implies +o.
B m_blockcaps Blocks messages with too many CAPITAL LETTERS. The amount of capital letters that is decided to be too many is set by the network configuration.
C m_noctcp Blocks CTCPs to the channel.
c m_blockcolor Blocks messages and notices with colour or formatting codes. Also see chanmode +S.
D m_delayjoin Users are not shown as joined until they speak.
d [sec] m_delaymsg Disallows a user from talking in the channel unless they’ve been joined for [num] seconds.
e [n!u@h] m_banexception Allows users matching [n!u@h] to bypass +b
F [num]:[sec] m_nickflood Allows only [num] nick changes every [sec] seconds in a channel.
f {*}[num]:[sec] m_messageflood Allows only [num] messages from a user every [sec] seconds. Exceeding this will enact a KICK on the offending user (or ban if the * is included.)
G m_censor Censors bad words from the channel based on network configuration. In MadIRC it replaces some strings with translations and other confusing stuff.
g [keyword] m_chanfilter Blocks messages matching [keyword]. Wild cards are usable here; however, must be done with wildcards surrounding the keyword as well. For example, if you wanted to filter [key*word], you would type: /mode +g \*key\*word\*
H [num:sec] m_chanhistory Displays the last [num] lines of chat to a user joining a channel; [sec] is the maximum time to keep lines in the history buffer. Designed so that the new user knows what the current topic of conversation is when joining the channel.
h [nick] m_halfop Makes [nick] a channel Half-Operator
I [n!u@h] m_inviteexception Allows users matching [n!u@h] to bypass +i
J [sec] m_kicknorejoin Disallows a user from joining [sec] seconds after being /KICK’d
j [num]:[sec] m_joinflood Allows only [num] users to join the channel in [sec] seconds.
K m_knock Disallows usage of /KNOCK on the channel.
L [channel] m_redirect When the channel is “full” (from channel mode “l”), forwards the user to [channel].
M m_services_account Users must be registered with services to speak in the channel.
N m_nonicks Disallows nick changes for users on the channel.
O m_operchans Marks a channel as an oper-only channel; only users who are oper’ed will be able to join these channels. As well, only opers may set channel mode +O.
P m_permchannels Marks the channel as “permanent”. Will not disappear when there are no users. Note that only opers can set this mode.
Q m_nokicks Disallows channel kicks, except Services / U-Lined clients.
q m_chanprotect Makes [nick] a channel owner. Protects from +a and +o; as of 2.0, this now implies +o.
R m_services_account Users must be registered with services to join the channel.
S m_stripcolor Strips colour or formatting codes from messages and notices to the channel. Note that the user sending the message will still see the colour and/or formatting. Also see chanmode +c.
T m_nonotice Blocks /NOTICEs to the channel.
X [flag]:[restriction] m_exemptchanops Allows the level of channel access required to bypass a given permission to be set. For example, setting +NX v:nonick will prevent people from changing nicks unless they are voiced (or opped/halfopped).
Y m_ojoin Marks a user as an oper in-channel with a definable prefix in front of their nick, when an oper issues the /ojoin #channel command. An oper with +Y cannot be kicked or deoped. Note that this mode is oper only.
Z m_namedmodes This module allows for the display and manipulation of channel modes via long-form mode names. For example, to set a channel ban with named modes: /MODE #channel +Z ban=foo!bar@baz
z m_sslmodes All users must be connected to the network via SSL to join the channel.

Source: https://wiki.inspircd.org/Channel_Modes