This website is NOT affiliated with the Undernet IRC Network in any capacity. This is a privately operated website.

Channel and User Modes

There are many modes that are available for use on the Undernet IRC modes that provide a variety of different functions at the server level. In this document, we will review each mode and give a detailed explanation of what each mode does. But first things first, lets start by talking about the types of modes that exist, Channel modes and User modes.

About Channel Modes
These are modes that affect the operation of a channel. By setting a channel mode, you can enable or disable certain functionality for a particular channel. To set channel modes, you must be an Operator (@) for that channel.

About User Modes
Unlike channel modes, user modes affect your session on Undernet. When you set a usermode, you enable or disable undernet functions on your session. User modes are set by you, and only for your session. You cannot set a user mode for another user. Likewise, other users cannot set user modes on you.

List of Channel Modes

Here you will find a list of all channel modes, and a brief description in the table below, as well as a detailed explaination. In our examples we’ve used the channel #Test. Please be aware that you need to replace #Test with the name of your channel, including the hashtag symbol.

It’s quite easy to set a channel mode. Let’s say for example, we wanted to make our channel available to registered users only, we’d just run this command: /mode #Test +r.

Unsetting a mode is just as easy. Just change the + to a -. So if we wanted to open back up #Test to all users, we can undo the mode we just set, like this: /mode #Test -r.

ModeDescription
bBans a user from the channel.
CPrevents users from executing CTCP commands on a channel.
cRestricts color usage in a channel.
DDelays the join message in the channel until the user is active.
dServer-only mode used to indicate delayed users still present.
iOnly allows invited users to join the channel.
kOnly allows users with a key to join the channel.
lSet a limit on the maximum number of users permited to join the channel.
mModerates the channel, only allowing voiced or opped users to talk.
nStops users from talking in the channel, unless they are in the channel.
oGives Operator status (@) to a user in the channel.
pSets a channel to private. Outsiders won’t see the channel in /whois.
RServer-only mode used to indicate channel is registered.
rOnly allows users who are registered with CService and logged in to join.
sSets a channel to secret. Outsiders won’t see the channel in /whois or /list, and won’t be included in /topic, /names, or /lusers.
tRestricts topic changes to operators only.
vGives Voice status (+) to a user in the channel.

Mode Explanations

Ban (Mode +b)
Bans rely on masks to be set. Merely banning a user using the ban mode will not remove them from your channel. Bans will, however, stop that user from being able to talk in your channel, acting effectively as a mute command for channels. (Ops and voiced users are immune from this.)

To set a ban on a user, use this command: /mode #Test +b BadGuy!*@*
To remove a ban on a user, you would need this command: /mode #Test -b BadGuy!*@*

To remove a banned user from your channel, you will need to kick them after setting the ban. This is called a kickban. Many IRC Clients couple the function of kicking a user with setting the ban mode on that user into a single option.

For example, if we wanted to kick BadGuy from #Test,we’d do the following:

  • First, set the ban on BadGuy to stop him from talking in #Test: /mode #Test +b *!*@*.badguys.isp.com
  • Then, kick BadGuy from #Test: /kick #Test BadGuy You are a bad guy.

In our kick command, we told the server to kick the user BadGuy from the channel #Test with the reason You are a bad guy. Since there’s a ban set on him, he won’t be able to rejoin the channel.

This is just an example of a kickban. There is another document which explains all of the various ways you can kickban a user from your channel.

CTCP Block (Mode +C)
This mode blocks all users (including ops) from performing all CTCP commands on a channel. The sole exemption to this is the action command (/me) which can always be performed in channels. Users attempting to perform a mass-CTCP command on your channel will receive the following message from the server: * #Test Cannot send to channel

Color block (Mode +c)
With the color block mode turned on, users won’t be permitted to use color control codes in your channel. Users who attempt to use colors in a channel with mode +c set, will receive the following message from the server: * #Test Cannot send to channel

This restriction applies to all users, including ops in both channel messages and channel notices. However, this restriction does NOT apply to operator notices (wallchops/onotices), part messages, or quit messages. Formatting control codes, such as BOLD, Italics, and underline are also unaffected by this mode.

Delay Join (Mode +D)
The Delay Join mode will prevent the server from passing the join message to your channel. This may sound complicated, but it’s function is rather simple. When mode +D is set, until a user performs an action (talks in the channel) or has an action performed on them (they get voiced or opped), they wont appear in the channel nicklist. Users who join a channel with mode +D set will be able to see all of the joined users. However, users who are fully joined to a channel that has mode +D set, will not see the newly-joined user(s).

To see the users who are delay-joined to your channel, you will need to use the /names -d #channel command.When this command is sent to the server, you’ll get a response that looks something like this:

[03:36] = #Test Tenrednu
[03:36] #Test End of /NAMES list. 

This indicates that user Tenrednu is delay-joined to #Test. For Tenrednu to be fully joined to #Test, he would need to either talk in the channel #Test, or be given voice or ops.

The delay-join mode can be combined with the moderation mode to create a secure channel. This will be explained in another document.

Hidden Users Present (Server Mode +d)
If you had your channel set to Delay-Join (mode +D) for a while, and you’ve recently unset it, you might see mode +d get set automatically. Chances are, you’ve probably tried to unset this new mode, and couldn’t. That’s because it’s a server mode.

The server set mode +d to indicate that your channel has users who are still delay-joined. Until they talk in your channel, or you op or voice them, they will remain hidden, and mode +d will remain set. Once the last hidden user has joined the channel fully, the server will unset mode +d.

Invite-Only (Mode +i)
Ever want to run your own exclusive, members-only channel? If so, mode +i is for you. What this mode does is set the channel to invite-only. This means, only users who are invited by an Op (a user with an @) can join the channel. This mode is best used with X’s automode funtion. (You can read about that in the CService documentation.)

Keyed Channel (Mode +k)
Similar to Invite-Only (mode +i), using mode +k will restrict the users who are able to join your channel. Only, instead of needing an invite from an op to join, your users will need to provide a key or password to join the channel.

You must set the key when you set mode +k. For example, if we wanted to set a key on #Test, the command would be: /mode #Test +k SuperSecretKey

To join a keyed channel, just append the key to your join command. So if UserABC wanted to join #Test, they would need to use this command: /join #Test SuperSecretKey

Users who attempt to join #Test must give the key, or they’ll receive the following message from the server: * #Test unable to join channel (need correct key)

Limit Users (Mode +l)
This mode is pretty simple. Whatever value you set along with this mode becomes the maximum user limit for the channel. Setting it is easy. Just run: /mode #Test +l 30

In our example, we limited #Test to 30 users. This means at any given time, #Test cannot have more than 30 users joined to the channel. If a user attempted to join #Test while the channel was full, they would receive the following message from the server: #Test unable to join channel (channel is full)

Moderation (Mode +m)
The moderation mode, or mode +m, is another way to restrict your users from being able to talk in your channel. When this mode is set, only users who are voiced (+) or opped (@) are able to talk in the channel. Anyone else attempting to talk in the channel would receive the following message from the server: #Test Cannot send to channel

No External Messages (Mode +n)
No one likes a party crasher. If you notice random nicks talking in your channel without being joined to your channel, it’s probably time for you to set mode +n. This will only allow users who are joined to your channel to talk in your channel. Outsiders will need to join first, otherwise they’ll receive the following message from the server: #Test Cannot send to channel

Operator (mode +o)
This famed mode gives ordinary users, extraordinary powers in a channel. A user who is made an Operator, or Op for short, can ban, op, or voice other users. They can also set and unset modes in the channel as well as kick users from the channel. They are also immune from Bans (mode +b) as well as Moderation (mode +m) and Registered Users Only (mode +r).

To give a user Operator status, just use this command: /mode #Test +o MyFriendsNick

Excercise this mode with great caution. Giving ops to the wrong users can be a critical error, especially if your channel is not registered.

If your channel isn’t registered and no one is opped in your channel, /join #zt and a staff member in there will assist you to the best of their ability.

Private (Mode +p)
A private channel does not appear in a /whois or a /list. It will however show up in /mode #Test, /topic #Test,/who #Test and will be counted in /lusers.

Registered Channel (Server-Mode +R)
Channels that registered with X get mode +R. This tells X that it is permitted to join the channel. It also tells C to avoid reopping users in the channel. You cannot unset this mode.

Registered Users Only (Mode +r)
If you only want users who are logged into their CService Username to be able to join your channel, use mode +r. It’ll restrict the channel to registered users. An unregistered user attempting to join your channel while mode +r is set will receive the following message from the server: Cannot join channel (+r): this channel requires authentication – you can obtain an account from <a href=”https://channels.undernet.org/live/”>https://channels.undernet.org/live/</a>

An unregistered user will be able to join your channel, even if mode +r is set, if they are invited by an op, however, they will need to be voiced or opped before they are able to talk.

Secret (Mode +s)
Much like a private channel, a secret channel does not apear in a /whois or a /list. Unlike a private channel, a secret channel also will not appear in /topic #Test or /who #Test. It also will not be counted in /lusers. It will, however, still be available through /mode #Test.

Restrict Topic Changes to Ops Only (Mode +t)
This mode does exactly as the title implies. It stops regular users from setting a topic in your channel. Only ops will be able to set the topic as long as mode +t is set.

Voice (Mode +v)
This mode will give a user voice in your channel. A user with voice gains certain privileges in your channel. They can talk in the channel, even if it’s set to Moderated (mode +m) or Registered Users Only (mode +r). They can also talk in the channel, even if there is a ban set against them.

To give a user voice, use this command: /mode #Test +v MyFriendsNick

List of User Modes

Now we move on to the list of all user modes modes, and a brief description. As we did for channel modes, a more in-depth explanation of channel modes is available later on in this document.

Setting a user mode is similar to setting a channel mode, only you replace the channel name with your nick. For example, if we wanted to become invisible on the network, we can use this command: /mode TestOp +i.

Unsetting a user mode is no different than unsetting a channel mode. To remove our invisibility, we just need to reverse the command: /mode TestOp -i. It’s that simple!

ModeDescription
dMakes you deaf. You won’t see any channel messages. This is only useful for bots.
iMakes you invisible. This prevents others from searching for you using /who and /whois without knowing your exact nick.
wAllows you to see wallops messages. This is rarely used on Undernet.
xActivates your Undernet hidden host. You must be logged into your CService Username for this to work.

Mode Explanations

Deaf (Mode +d)
When you have mode +d set, you won’t be able to see anything that goes on in a channel. This mode only really for network service bots, although, you could use it for a bot of your own creation if you really wanted to. To the average user, this mode serves no purpose.

Invisible (Mode +i)
If you’re set to invisible, you will not appear in the results for a wildcarded who or /whois/ search. You also won’t appear in /names #Test. This mode essentially stops people from finding you on the network unless they know your exact nick or share a channel in common with you.

IRC Operators can see you, even if you’re invisible. So can X.

Wallops (Mode +w)
Turning on wallops allows you to see public conversations between IRC Operators. This does NOT allow you to see their privmsgs. Wallops are seldomly used on Undernet today.

Hidden Host (Mode +x)
This is the mode that most people set. It activates your Undernet Username Hidden Host. This mode requires you to be logged into X for it to actually take effect. Once you’re logged in to X, and you set mode +x, your IP address will be hidden from all users on the network, and replaced with username.users.undernet.org.

Keep in mind, CService Administrators, IRC Operators, and Network Service Bots (like X), can still see your real IP address.

Also, this mode cannot be unset. The only way to remove your hidden host is to disconnect from the network and reconnect.