Everything you can do in Slack or Discord as a channel manager has an IRC equivalent: a topic, a password, invite-only, read-only announcements, moderators, mutes and bans. In IRC these are called modes, and they are controlled by operators (ops).

The person who creates a new room is made its first op automatically on most networks, shown with an @ next to their nickname. On a room registered with ChanServ, the registered owner and their access list decide who gets ops. You can only change modes if you are an op, so look for the @ next to your name first.

Members · #retro
@quill
@sol
+marta
bram
Juno
VaLE
MsgWhoisOpDeopVoiceDevoiceBanKick
Ops show with @, voiced members with +. The buttons beside the member list do the same things as the commands in this section.

A mode is a short switch. Turn it on with + and off with -. Some modes act on the room (like +k), others on a person (like +o). To see which modes a room has right now, type /mode #room.

Set the topic

The topic is the line at the top of a room. Use it for a description, the rules and a link, the same way you would use a channel description in Slack or Discord.

/topic #retro Old computers, old games, old chat. Be kind. Rules: https://example.org/rules
  • Type /topic on its own to read the current topic.
  • Many rooms have topic lock (+t) turned on, so only ops can change the topic. Turn it off with /mode #retro -t to let anyone edit it.
  • Networks limit topic length, often to a few hundred characters. Keep it short and put the details in a linked page.
  • People who join see the topic immediately, and any change is announced to the whole room.
#retro
quill changed the topic to: Old computers, old games, old chat. Be kind. Rules: https://example.org/rules
20:50bramnice, rules are linked now
/topic #retro Old computers, old games, old chat. Be kind. Rules: https://example.org/rules

Lock a room with a password (+k)

A key turns a room into a password-protected room, like a private Slack channel with a shared password. Anyone who does not know the key cannot join.

  1. Set the key as an op: /mode #vault +k hunter2
  2. Tell the people you want inside. They join with: /join #vault hunter2
  3. To change the key, remove the old one and set a new one: /mode #vault -k hunter2 then /mode #vault +k newpassword
  4. To open the room again, remove the key: /mode #vault -k hunter2
#vault
Cannot join #vault (+k): bad channel key
You joined #vault
Mode #vault [+k] by quill
/join #vault hunter2
Joining without the key fails. Joining with the key works.
Remember. A key only stops new people from joining. Anyone already in the room stays, and anyone who has the key can share it. For a room that only specific people may enter, combine the key with invite-only (+i), or kick and ban anyone who should not be there.

Invite-only (+i) and how to invite people

An invite-only room cannot be joined by just anyone, even if they know its name. Ops must invite each person first. It is the closest match to a private Slack channel or a locked Discord channel where you add people by name.

  1. Make the room invite-only: /mode #team +i
  2. Invite someone by nickname: /invite bram #team
  3. They receive an invitation and join with /join #team. The invitation works for that person, usually until they join.
  4. To open the room again: /mode #team -i
#team
quill sets mode +i
You invited bram to #team
bram joined #team
/invite bram #team
  • Invite exceptions (+I). Let a person or group in without a per-visit invite: /mode #team +I *!*@trusted.example.org. See the list with /mode #team I. This is supported on most modern networks.
  • Who can invite? In an invite-only room only ops can send invites. In other rooms any member can invite someone.
  • Public rooms. To share a normal room, give people its name or a link such as irc://irc.libera.chat/#retro. A link does not bypass +i or +k.

Announcement rooms: moderated (+m) and voice (+v)

In a moderated room only ops and voiced members can speak. Everyone else can read. Use it for announcements, Q&A sessions, live events, or to cool down a heated conversation. It is the same idea as a read-only announcements channel.

  1. Moderate the room: /mode #retro +m
  2. Let a speaker talk: /mode #retro +v marta (a + appears next to their name).
  3. Take voice away again: /mode #retro -v marta
  4. End moderation: /mode #retro -m
#retro
quill sets mode +m
quill gives voice to marta (+v)
21:31martaFirst question: what is a mode?
Cannot send to #retro (+m): the room is moderated.
/mode #retro +m
Members without voice see an error when they try to talk.

Operators: +o and -o

Operators are your moderators. They can set modes, change the topic, invite, kick and ban.

/mode #retro +o sol (give op) /mode #retro -o sol (take op away)
  • Only give ops to people you trust, and take it back with -o when they step down.
  • You can remove your own op status when you are finished: /mode #retro -o yourname. If you registered the room, you can get it back later.
  • Some networks add more levels. You may see ~ (owner), & (admin) or % (half-op) in the member list, each with a different set of powers.

Kick and ban

A kick removes someone from the room right now. They can come straight back, so it works as a warning. A ban blocks an address from joining or talking, so the person stays out until the ban is lifted. For serious problems you usually ban, then kick.

/kick bram please stop flooding /mode #retro +b bram!*@* /mode #retro -b bram!*@* (lift the ban)

A ban matches an address pattern, nick!user@host, where * stands for anything:

PatternWhat it blocks
bram!*@*Anyone using the nickname bram. Easy to dodge by changing nickname.
*!*@203.0.113.7Anyone connecting from that host or address. Harder to dodge, but may also block other people who share it.
*!~spam@*Anyone with the username spam, from any host.
  • See the current ban list with /mode #retro b.
  • Ban exceptions (+e) let a specific address in even when a broader ban matches it: /mode #retro +e *!*@friend.example.org.
  • Always include a reason when you kick, so other ops and the person know why.
  • Some networks also support bans based on a person's account name. The syntax differs, so check the network's help.
#retro
quill sets mode +b spammer!*@*
quill kicked spammer from #retro (advertising)
spammer tried to join #retro: banned (+b)
/mode #retro +b spammer!*@*
Be fair. Warn first, kick second, ban last, and write the reason down for the next op. Bans stay in place until someone removes them.

More room modes

ModeWhat it doesExample
+nNo messages from outside the room. Usually on by default./mode #retro +n
+tOnly ops can change the topic./mode #retro +t
+iInvite only./mode #retro +i
+kRequires a key (password) to join./mode #retro +k secret
+lLimits how many people can be in the room./mode #retro +l 50
+mModerated: only ops and voiced members can speak./mode #retro +m
+sSecret: hidden from the room list./mode #retro +s
+bBan a hostmask./mode #retro +b nick!*@*
+e / +IExceptions to bans (+e) and to invite-only (+I)./mode #retro +I *!*@host
+o / +vGive operator or voice to a person./mode #retro +o nick

Modes can be combined: /mode #retro +ntk secret turns on three at once, with the key placed after them. Some modes (for example registered-only or no-colors) exist on some networks but not others; the network's help lists them.

Quick recipes

I want to…Do this
Make a private room for my team/mode #team +i and invite each person with /invite nick #team
Protect a room with a password/mode #team +k password and share it only with the right people
Make an announcement room/mode #news +m and give voice to the people who may post
Cool down a heated room/mode #retro +m for a few minutes, then /mode #retro -m
Remove a troublemakerKick with a reason, then ban their host: /mode #retro +b *!*@host
Hand a room over to someone/mode #retro +o newop, then /mode #retro -o yourname
Stop anyone from changing the topic/mode #retro +t
Cap the size of a room/mode #retro +l 100

Keep your room: registering with ChanServ

Without services, a room disappears when its last person leaves, and the next person to join becomes its op. On networks with ChanServ, you can register a room so that it keeps its ops, modes and topic. On Libera.Chat and OFTC:

/msg ChanServ REGISTER #retro

Afterwards, ChanServ remembers who the owner and ops are and can restore the room's settings. Read /msg ChanServ HELP for your network. EFnet has no ChanServ, so rooms there are managed by the people present.