ChanServ
REGISTER
Command: /msg ChanServ REGISTER #channel
Allows you to register a channel so that you have better control. Registration allows you to maintain a channel access list and other functions that are normally provided by IRC bots.
Channel Registration Guidelines
1. #test* channels aren’t allowed to be registered
2. Illegal channels (consult Terms of Service)
3. User can register 2 (two) channels for the first year, and additional channel on the second year. Limited 3 channels per user.
INFO
Command: /msg ChanServ INFO #channel
Displays channel information such as registration time, flags, and other details.
TAXONOMY
Command: /msg ChanServ TAXONOMY #channel
The taxonomy command lists metadata information associated with registered channels.
FLAGS
Command: /msg ChanServ FLAGS #channel
Allows for the granting/removal of channel privileges on a more specific, non-generalized level. It supports nicknames, groups and hostmasks as targets. When only the channel argument is given, a listing of permissions granted to users will be displayed.
If you are not a founder, you may only manipulate flags you have yourself, and may not edit users that have flags you don’t have. For this purpose, +v grants +V, +o grants +O and +r grants +b. If you are not a founder, you may only manipulate flags you have yourself, and may not edit users that have flags you don’t have. For this purpose, +v grants +V, +h grants +H, +o grants +O and +r grants +b.
If the LIMITFLAGS option is set for the channel, this is restricted further, see help for SET LIMITFLAGS.
If you do not have +f you may still remove your own access with -*
Command:
/msg ChanServ FLAGS #channel <nickname|hostmask|group template>
/msg ChanServ FLAGS #channel <nickname|hostmask|group flag_changes>
Permissions:
+v – Enables use of the voice/devoice commands.
+V – Enables automatic voice.
+h – Enables use of the halfop/dehalfop commands.
+H – Enables automatic halfop.
+o – Enables use of the op/deop commands.
+O – Enables automatic op.
+a – Enables use of the protect/deprotect commands.
+q – Enables use of the owner/deowner commands.
+s – Enables use of the set command.
+i – Enables use of the invite and getkey commands.
+r – Enables use of the kick, kickban, ban and unban commands.
+R – Enables use of the recover and clear commands.
+f – Enables modification of channel access lists.
+t – Enables use of the topic and topicappend commands.
+A – Enables viewing of channel access lists.
+S – Marks the user as a successor.
+F – Grants full founder access.
+b – Enables automatic kickban.
+e – Exempts from +b and enables unbanning self.
The special permission +* adds all permissions except +b and +F. The special permission -* removes all permissions including +b and +F.
Examples:
/msg ChanServ FLAGS #gotham
/msg ChanServ FLAGS #gotham Belle!*@host.mask VOP
/msg ChanServ FLAGS #gotham Belle!*@host.mask -V+oO
/msg ChanServ FLAGS #gotham Belle!*@host.mask -*
/msg ChanServ FLAGS #gotham Belle +oOtsi
/msg ChanServ FLAGS #gotham TroubleUser!*@*.troubleisp.net +b
/msg ChanServ FLAGS #gotham !baz +*
SET
Allows you to set various control flags for channels that change the way certain operations are performed on them.
The following subcommands are available:
ANTIFLOOD
Command: /msg ChanServ SET #channel ANTIFLOOD <ON/OFF>
This command configures ChanServ flood control settings. The action parameter can be QUIET, KICKBAN or AKILL. Flood control can be turned off using the OFF setting, and turned on using default settings with the ON setting.
Examples:
/msg ChanServ SET #channel ANTIFLOOD QUIET
/msg ChanServ SET #channel ANTIFLOOD KICKBAN
/msg ChanServ SET #channel ANTIFLOOD AKILL
Command: /msg ChanServ SET #channel EMAIL your@email.address
Allows you to change or set the email address associated with a channel. This is shown to all users in INFO. Using the command in this way results in an email address being associated with the channel.
ENTRYMSG
Command: /msg ChanServ SET #channel ENTRYMSG <message>
Allows you to change or set a message sent to all users joining the channel.
e.g: /msg ChanServ SET #Agrabah ENTRYMSG Welcome to #Agrabah – The Cave of Wonders. Have a nice chat!
FANTASY
Command: /msg ChanServ SET #channel FANTASY <ON/OFF>
Allows you to enable or disable ChanServ fantasy commands (!op, !deop, etc.) on your channel. GUARD must be enabled as well for fantasy commands to work.
GUARD
Command: /msg ChanServ SET #channel GUARD <ON/OFF>
Allows you to have ChanServ join your channel.
KEEPTOPIC
Command: /msg ChanServ SET #channel KEEPTOPIC <ON/OFF>
Enables restoration of the old topic after the channel has become empty. In some cases, it may revert topic changes after netsplits or services outages, so it is not recommended to turn this on if your channel tends to never empty.
LIMITFLAGS
Command: /msg ChanServ SET #channel LIMITFLAGS <ON/OFF>
Limits the power of the +f flag.
Users with +f that have neither +s nor +R may only set +b (akick), and users that do not have all of +s and +R may not set +s, +R and +f.
MLOCK
Command: /msg ChanServ SET #channel MLOCK <modes>
MLOCK (or “mode lock”) allows you to enforce a set of modes on a channel. This can prevent abuse in cases such as +kl. It can also make it harder to fight evil bots, be careful. Locked modes can be seen by anyone recreating the channel (this includes keys).
Examples:
/msg ChanServ SET #channel MLOCK +nt-lk
/msg ChanServ SET #channel MLOCK +inst-kl
/msg ChanServ SET #channel MLOCK +ntk c
/msg ChanServ SET #channel MLOCK +ntcjf-kl 2:30 #overflow
/msg ChanServ SET #channel MLOCK +mntF-kljf
/msg ChanServ SET #channel1 MLOCK +ntlL 40 #channel2
NOSYNC
Command: /msg ChanServ SET #channel NOSYNC <ON/OFF>
Allows channel staff to disable automatic syncing of channel status when it is changed.
PREFIX
Command: /msg ChanServ SET #channel <prefix>
Allows you to customize the channel fantasy trigger for your channel. This is particularly useful if you have channel bots that conflict with ChanServ’s default fantasy prefix. Providing no prefix argument (or DEFAULT) resets the channel fantasy prefix to the network default prefix.
Examples:
/msg ChanServ SET #chanel PREFIX
/msg ChanServ SET #channel PREFIX ‘
/msg ChanServ SET #channel PREFIX %
/msg ChanServ SET #channel PREFIX default
PROPERTY
Command: /msg ChanServ SET #channel PROPERTY <name> [value]
SET PROPERTY manipulates metadata associated with a channel. To delete a metadata entry, specify the name and leave the value blank.
Examples:
/msg ChanServ SET #gotham PROPERTY URL https://www.gotham.chat/
/msg ChanServ SET #meat PROPERTY VEGETABLES
RESTRICTED
Command: /msg ChanServ SET #channel RESTRICTED <ON/OFF>
Designates a channel as restricted access. Users who are not on the access list of the channel, or who do not have the chan:joinstaffonly privilege will be kicked and banned from the channel upon join, removing any ban exceptions matching them first. If the channel is set +i, no ban will be set and invite exceptions will be removed.
SECURE
Command: /msg ChanServ SET #channel SECURE <ON/OFF>
Prevents anyone that’s not on the channel’s access lists from gaining operator or halfop status on the channel. This is useful if you’re paranoid.
TOPICLOCK
Command: /msg ChanServ SET #channel TOPICLOCK <ON/OFF>
Causes ChanServ to revert topic changes by users without the +t flag. Topic changes during netsplits or services outages will always be reverted.
TOPICLOCK requires KEEPTOPIC and will automatically enable it; disabling KEEPTOPIC will disable TOPICLOCK also.
URL
Command: /msg ChanServ SET #channel URL <your-url>
Allows you to change or set the URL associated with a channel. This is shown to all users joining the channel. Example: /msg ChanServ SET #gotham URL https://www.gotham.chat
VERBOSE
Command: /msg ChanServ SET #channel VERBOSE <ON/OPS/OFF>
VERBOSE ON sends a notice to the channel when someone makes changes to the access lists.
VERBOSE OPS sends a notice to the channel operators when someone makes changes to the access lists.
Fantasy commands are always executed as if SET VERBOSE ON is in effect.
GETKEY
Command: /msg ChanServ GETKEY #channel
GETKEY returns the key (+k, password to be allowed in) of the specified channel: /join #channel key
RECOVER
Command: /msg ChanServ RECOVER #channel
Allows you to regain control of your channel in the event of a takeover.
More precisely, everyone will be deopped, limit and key will be cleared, all bans matching you are removed, a ban exception matching you is added (in case of bans ChanServ can’t see), the channel is set invite-only and moderated and you are invited.
If you are on channel, you will be opped and no ban exception will be added.
WHY
Command: /msg ChanServ WHY #channel <nickname>
The WHY command shows the access entries an online user matches.
DROP
Command: /msg ChanServ DROP #channel
Allows you to “unregister” a registered channel. Once you DROP a channel all of the data associated with it (access lists, etc) are removed and cannot be restored.
See help on FLAGS for transferring a channel to another user.
ACCESS
The following subcommands are available:
ACCESS ADD
Command:
/msg ChanServ ACCESS #channel ADD <user> <role>
/msg ChanServ ACCESS #gotham ADD Robin helper
This will assign the given user to the given channel role.
ACCESS DEL
Command: /msg ChanServ ACCESS #channel DEL <user>
This will remove all channel access from a given user.
ACCESS INFO
Command: /msg ChanServ ACCESS #channel INFO <user>
Displays what level of access a given user has in a given channel. It will display role, long-form flags and short-form flags along with the last date the user’s access was modified.
ACCESS LIST
Command: /msg ChanServ ACCESS #channel LIST
Lists all users with channel access and their roles in the channel. It uses fuzzy matching so if a user does not exactly match any role, they will be listed as the closest role they match.
ACCESS SET
Command: /msg ChanServ ACCESS #channel SET <user> <role|flags>
Allows you to set specific flags on a user above or below a certain role or lets you change the role a user is in. Multiple flags should be separated by a space and have the modifier (+ or -) in front of each flag.
Flags:
+voice – Enables use of the voice/devoice commands.
+autovoice – Enables automatic voice.
+halfop – Enables use of the halfop/dehalfop commands.
+autohalfop – Enables automatic halfop.
+op – Enables use of the op/deop commands.
+autoop – Enables automatic op.
+protect – Enables use of the protect/deprotect commands.
+owner – Enables use of the owner/deowner commands.
+set – Enables use of the set command.
+invite – Enables use of the invite and getkey commands.
+remove – Enables use of the kick, kickban, ban and unban commands.
+remove – Enables use of the ban and unban commands.
+remove – Enables use of the unban command.
+recover – Enables use of the recover and clear commands.
+acl-change – Enables modification of channel access lists.
+topic – Enables use of the topic and topicappend commands.
+acl-view – Enables viewing of channel access lists.
+successor – Marks the user as a successor.
+founder – Grants full founder access.
+banned – Enables automatic kickban.
Examples:
/msg ChanServ ACCESS #gotham SET Robin channel-ops
/msg ChanServ ACCESS #gotham SET Robin -topic
/msg ChanServ ACCESS #gotham set Belle +acl-view +topic +autoop
CLEAR
Allows you to clear various aspects of a channel.
The following subcommands are available:
CLEAR AKICKS
Command: /msg ChanServ CLEAR #channel AKICKS
This will remove all AKICK entries, including all access list entries whose only flags are +b, from a channel’s access list. This command can only be used by users with the +R and +f flags.
CLEAR BANS
Command: /msg ChanServ CLEAR #channel BANS <types>
This will remove all bans found in a specific channel. If a channel has ban exceptions, you can clear these by specifying the mode letters. Specify an asterisk to clear all lists.
Clears #channel ban list:
/msg ChanServ CLEAR #channel BANS
Removes all ban and invite exceptions on #channel:
/msg ChanServ CLEAR #channel BANS eI
Clears all lists of #channel:
/msg ChanServ CLEAR #channel BANS *
Shows the possible letters:
/msg ChanServ CLEAR #channel BANS +
CLEAR FLAGS
Command: /msg ChanServ CLEAR #channel FLAGS
This will kick remove all flags from all users (or groups) with channel access on the channel specified except for users who are channel founders. This command can only be used by channel founders.
CLEAR USERS
Command: /msg ChanServ CLEAR #channel USERS <reason>
This will kick all users out of the channel, except you. The channel will be cycled (recreated) if you are not on it. If a reason is specified, it will be included in the kick message.
COUNT
Command: /msg ChanServ COUNT #channel
This will give a count of how many entries are in each of the channel’s xOP lists and how many entries on the access list do not match a xOP value. The second line shows how many access entries have each flag.
xOP
Command: /msg ChanServ VOP|HOP|AOP|SOP #channel ADD|DEL|LIST <nickname|hostmask>
The xOP commands allow you to maintain channel access lists. Channel access lists can contain registered accounts or hostmasks (nick!user@host). The exact meanings of the access levels are differ on Gotham IRC Network, use /msg ChanServ TEMPLATE to check.
Not all channel access entries can be edited with these commands, see the FLAGS help entries for details.
The privileges required to execute these commands are the same as those required for the corresponding FLAGS commands.
Examples:
/msg ChanServ VOP #gotham ADD Belle
/msg ChanServ VOP #gotham ADD Belle!*@host.mask
/msg ChanServ AOP #gotham DEL Belle
/msg ChanServ SOP #gotham LIST
AKICK
Allows you to maintain channel ban lists. Users on the AKICK list will be automatically kickbanned when they join the channel, removing any matching ban exceptions first. Users with the +e flag are exempt.
AKICK ADD
Command: /msg ChanServ AKICK #channel ADD <nickname|hostmask> [!P|!T ] [reason]
You may also specify a hostmask (nick!user@host) for the AKICK list.
The reason is used when kicking and is visible in AKICK LIST. If the reason contains a ‘|’ character, everything after it does not appear in kick reasons but does appear in AKICK LIST.
If the !P token is specified, the AKICK will never expire (permanent). If the !T token is specified, expire time must follow, in minutes, hours (“h”), days (“d”) or weeks (“w”).
Examples:
/msg ChanServ AKICK #gotham ADD Robin Please stop trolling | private op info
/msg ChanServ AKICK #gotham ADD *!*user@host.mask !T 5d
AKICK DEL
Command: /msg ChanServ AKICK #channel DEL <nickname|hostmask>
This will remove an entry from the AKICK list. Removing an entry will remove any matching channel bans unless the channel is set NOSYNC.
AKICK LIST
Command: /msg ChanServ AKICK #channel LIST
This will list all entries in the AKICK list, including the reason and time left until expiration.
KICK
Command: /msg ChanServ KICK #channel <nickname> [reason]
Allows for the removal of a user from a channel. The user can immediately rejoin. Your nick will be added to the kick reason.
BAN
Command: /msg ChanServ BAN #channel <nickname|hostmask>
Allows you to ban a user or hostmask from a channel. (If the user is inside the channel, they will still need to be kicked).
Examples:
/msg ChanServ BAN #gotham Robin
/msg ChanServ BAN #gotham *!*@host.mask
KICKBAN
Command: /msg ChanServ KICKBAN #channel <nickname> [reason]
Allows for the removal of a user from a channel while placing a ban on the user. Any matching ban exceptions will be removed.
QUIET
Command: /msg ChanServ QUIET #channel <nickname|hostmask>
Allows you to mute a user or hostmask in a channel. Affected users will be notified that you did it.
UNQUIET
Command: /msg Chanserv UNQUIET #channel <nickname|hostmask>
Allows you to unmute a user or hostmask in a channel. If no nickname or hostmask is specified, you are unquieted. Affected users will be notified that you did it.
VOICE
Command: /msg ChanServ VOICE #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ VOICE #gotham
/msg ChanServ VOICE #gotham Belle
DEVOICE
Command: /msg ChanServ DEVOICE #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ DEVOICE #gotham
/msg ChanServ DEVOICE #gotham Belle
HALFOP
Command: /msg ChanServ HALFOP #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ HALFOP #gotham
/msg ChanServ HALFOP #gotham Belle
DEHALFOP
Command: /msg ChanServ DEHALFOP #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ DEHALFOP #gotham
/msg ChanServ DEHALFOP #gotham Belle
OP
Command: /msg ChanServ OP #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ OP #gotham
/msg ChanServ OP #gotham Belle
DEOP
Command: /msg ChanServ DEOP #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ DEOP #gotham
/msg ChanServ DEOP #gotham Belle
PROTECT
Command: /msg ChanServ PROTECT #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ PROTECT #gotham
/msg ChanServ PROTECT #gotham Belle
DEPROTECT
Command: /msg ChanServ DEPROTECT #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ DEPROTECT #gotham
/msg ChanServ DEPROTECT #gotham Belle
OWNER
Command: /msg ChanServ OWNER #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ OWNER #gotham
/msg ChanServ OWNER #gotham Belle
DEOWNER
Command: /msg ChanServ DEOWNER #channel <nickname>
This command perform status mode changes on a channel. If you perform an operation on another user, they will be notified that you did it. If the last parameter is omitted the action is performed on the person requesting the command.
Examples:
/msg ChanServ DEOWNER #gotham
/msg ChanServ DEOWNER #gotham Belle
INVITE
Command: /msg ChanServ INVITE #channel
INVITE requests services to invite you to the specified channel. This is useful if you use the +i channel mode.
TOPIC
Command: /msg ChanServ TOPIC #channel <topic>
Allows for the changing of a topic on a channel.
TOPICAPPEND
Command: /msg ChanServ TOPICAPPEND #channel <topic>
Allows for the addition to a topic on a channel.
TOPICPREPEND
Command: /msg ChanServ TOPICPREPEND #channel <topic>
Allows for the addition to a topic on a channel.
TOPICSWAP
Command: /msg ChanServ TOPICSWAP #channel <search>:[<replace>]
Allows easily swapping out parts of a topic on a channel.
Example:
/msg ChanServ TOPICSWAP #gotham orange:apple
ROLE
The following subcommands are available:
ROLE ADD
Command: /msg ChanServ ROLE #channel ADD <role> [flags]
This will create a channel role with the given flags. Multiple flags should be separated by a space.
Flags:
+voice – Enables use of the voice/devoice commands.
+autovoice – Enables automatic voice.
+halfop – Enables use of the halfop/dehalfop commands.
+autohalfop – Enables automatic halfop.
+op – Enables use of the op/deop commands.
+autoop – Enables automatic op.
+protect – Enables use of the protect/deprotect commands.
+owner – Enables use of the owner/deowner commands.
+set – Enables use of the set command.
+invite – Enables use of the invite and getkey commands.
+remove – Enables use of the kick, kickban, ban and unban commands.
+remove – Enables use of the ban and unban commands.
+remove – Enables use of the unban command.
+recover – Enables use of the recover and clear commands.
+acl-change – Enables modification of channel access lists.
+topic – Enables use of the topic and topicappend commands.
+acl-view – Enables viewing of channel access lists.
+successor – Marks the user as a successor.
+founder – Grants full founder access.
+banned – Enables automatic kickban.
Examples:
/msg ChanServ ROLE #gotham ADD helpers topic autovoice
ROLE DEL
Command: /msg ChanServ ROLE #channel DEL <role>
This will delete a channel-specific role.
Examples:
/msg ChanServ ROLE #gotham DEL helpers
ROLE LIST
Command: /msg ChanServ ROLE #channel LIST
Lists all channel-specific and network-wide roles and the flags that each role has.
ROLE SET
Command: /msg ChanServ ROLE #channel SET <role> <flags>
Allows you to modify the flags of a role that already exists. All users in the given role will receive the effects of the changes. Multiple flags should be separated by a space and have the modifier (+ or -) before each flag.
Examples:
/msg ChanServ ROLE #gotham SET channel-ops +acl-change +set +recover
/msg ChanServ ROLE #gotham SET helpers +invite
/msg ChanServ ROLE #arkham SET helpers -topic -invite
TEMPLATE
Allows definition of sets of flags, simplifying the use of the FLAGS command.
Command: /msg ChanServ TEMPLATE
Without arguments, network wide templates are shown. These include at least SOP/AOP/HOP/VOP. These include at least SOP/AOP/VOP.
Command: /msg ChanServ TEMPLATE #channel
When given only the channel argument, a listing of templates for the channel will be displayed.
Otherwise, a template is modified. A modification may be specified by a template name (copies the template) or a flags change (starts with + or -, optionally preceded by an !). Templates cannot be the empty set (making a template empty deletes it).
Command:
/msg ChanServ TEMPLATE #channel [template oldtemplate]
/msg ChanServ TEMPLATE #channel [template flag_changes]
/msg ChanServ TEMPLATE #channel [template !flag_changes]
If the ! form is used, all access entries which exactly match the template are changed accordingly. This is not supported if the template includes or included founder access (+F).
There is a limit on the length of all templates on a channel.
If you are not a founder, similar restrictions apply as in FLAGS.
Examples:
/msg ChanServ TEMPLATE #gotham
/msg ChanServ TEMPLATE #gotham user VOP
/msg ChanServ TEMPLATE #gotham user !+A
/msg ChanServ TEMPLATE #gotham co-founder +*-OH
/msg ChanServ TEMPLATE #gotham op -*+vVhoti
/msg ChanServ TEMPLATE #gotham co-founder +*-O
/msg ChanServ TEMPLATE #gotham op -*+vVoti
/msg ChanServ TEMPLATE #gotham obsoletetemplate -*
CLONE
Command: /msg ChanServ CLONE #source-channel #target-channel
Copies a channel’s chanacs and metadata to a new channel. Both channels must be registered with ChanServ and you must be founder in the target channel for this command to work.
It will not copy the topic as most people will want that different between the 2 channels.
It will also remove all chanacs (except founders) and metadata of the same type from the target channel.
Example:
/msg ChanServ CLONE #gotham #arkham