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

Undernet X Commands


In this section, we will be teaching you about the Undernet Channel Services bot, X. X can usually be found in most registered channels, and is the service which Undernet provides to registered channels to assist them in maintaining stability. Some of X’s core functions are: the ability to set bans for a set period of time, maintaining an access list from which X can voice or op users with the appropriate access level, and preventing channel take-overs during a netsplit.

Before we get started, we’d like to take some time to explain some information about the things you’ll see in this document. It’s recommended that you read this, as it contains important information on how to properly read this document.

About the Command Syntaxes and Parameters

X follows a standard syntax scheme for IRC bots. You do not need a special client, or any scripts loaded to use X. Now keep in mind that X has three types of commands. Channel commands, which can only be used in channels. User commands which can only be used on users. There are also Shared commands, which can be used in a channel or on a user. We’ll give you an example of a shared command below. Please keep in mind that this command does not exist in X. It is merely to show you the structure.

/msg X testcommand [#Test] <option>;

Throughout this documentation, you may see things such as <> and []. They are identifiers for the type of information the command requests.

<>This is a required piece of information. You can’t use the command without it.
[]This is an optional piece of information. You don’t need to use it to use the command.
x|yThis is a decision. You need to pick one of the options given for this command to work.
x-yThis is a range. You can pick anything between the given ranges.
*This is a documentation identifier. Commands with this in front of them are part of the MODINFO or SET command. The commands with these identifiers are always underneath the command that owns it.

The identifiers are usually coupled together with a placeholder to tell you what to enter for a particular command to work.

<nick>The user’s nick is required.
<username>The user’s username is required. If you’re not sure of it, you can always substitute a username with =<nick> in place of their actual username, but this will only work if they are logged into X. You can also use the VERIFY command to get a user’s username and determine if they’re logged in.
<pattern>Any search string that makes use of wildcards (* and ?). A *!*ident@host string is an example of a pattern.

Note for scripters

Scripts that make use of X’s commands should always use /msg for all commands. Not just the login command. This will ensure that the command always gets sent to X in the event that X temporarily has its nick changed, or some other unforeseen circumstance which would otherwise make your script unusable until X is restored to its proper nick and operational status.

Command List

This is a list of all available commands in X. It’s been divided up by access level. So we’ll start with the highest access level and go down to to the lowest. Please keep in mind, users with higher access levels can perform all commands lower than their access level. So for example, if you had 450 access in channel #Test, you could use commands that need access 0 all the way up to access 450. You can never use commands that are greater than your access level.

Level 500 – Channel Manager

PART/msg X part <#channel>This will tell X to leave your channel. Usually, this is a bad idea.
SET/msg X set <#channel> <feature> <value>Turns a feature on or off for your channel.
AUTOJOIN/msg X set <#channel> autojoin <on|off>If this feature is turned on, X will join your channel automatically when it reconnects to the network.
MASSDEOPPRO/msg X set <#channel> massdeoppro <0-7>This feature tells X the maximum number of deops X will allow a user to place within 15 seconds. If any user deops more than the number specified in this setting, X will ban the user at access 25, and suspend them for 5 minutes. Note: This feature only works with the /mode #channel –o command. X’s deop command is exempt from this feature. If this is set to 0, this feature will be disabled.
NOOP/msg X set <#channel> noop <on|off>If this is turned on, X will not allow any users to be opped in the channel. Even if they’re logged into X. Users with 100 access or higher will still be able to use X to kick, ban, etc. Using this feature may leave your channel opless if X goes down for maintenance.
STRICTOP/msg X set <#channel> strictop <on|off>If this is turned on, X will only allow users who are logged in and have access 100 or higher to be opped in the channel.

Level 450 – Trusted Channel Administrator

JOIN/msg X join <#channel>This will tell X to join your channel.
SET/msg X set <#channel> <feature> <value>Sets a feature in your channel.
* AUTOTOPIC/msg X set <#channel> autotopic <on|off>If this is turned on, X will set the topic to the channel description and URL every 30 minutes.
* CTCPFLOOD/msg X set <#channel> ctcpflood <0|2-15>This is the maximum number of CTCP commands that a user can send in your channel at once within the time you set for floodperiod, before being punished by X. Setting this to 0 will disable flood protection.
* DESCRIPTION/msg X set <#channel> description [text]This will set the channel description (up to 380 characters long) for your channel in X. It will be visible in the CHANINFO reply. If no description text is provided, the current description will be removed.
* FLOATLIM/msg X set <#channel> floatlim <on|off>If this is turned on, X will set a channel limit with a margin above the number of users in your channel. This can help prevent large botnets from joining and flooding your channel.
* FLOATGRACE/msg X set <#channel> floatgrace <0-19>This allows you to set the grace value for the floating limit feature. If the difference between the channel limit, and what the new limit would be is less than the grace value, X will not change the limit. This will cut down on the noise that X makes with each mode change. Setting this to 0 will turn off this feature. This feature’s default setting is 1.
* FLOATMARGIN/msg X set <#channel> floatmargin <2-20>This sets the margin for the channel limit. The channel limit will always be set to the number of users in your channel + the FLOATMARGIN value. The default value for this is 3.
* FLOATMAX/msg X set <#channel> floatmax <0-65536>When this is turned on, X will not set a limit higher than the value of FLOATMAX. The default value for this is 0.
* FLOATPERIOD/msg X set <#channel> floatperiod <20-200>This is the amount of time in seconds, X will wait before resetting the channel limit. The default value for this is 20 seconds.
* FLOODPERIOD/msg X set <#channel> floodperiod <0-15>This command will set the amount of time before one of the flood protection counters must be met before X takes action against a user. Setting this to 0 will turn off flood protection.
* FLOODPRO/msg X set <#channel> floodpro <defaults|kick|ban|off>This command turns on X’s flood protection for your channel.
* KEYWORDS/msg X set <#channel> keywords [keywords]This will set the keywords for the channel. Each keyword will need to be separated by a space.
* MODE/msg X set <#channel> modeThis will save the current modes in your channel as the default. When X rejoins your channel, it will reset these modes.
* MSGFLOOD/msg X set <#channel> msgflood <0|2-220>This is the maximum number of message a user can send in your channel at once within the time you set for floodperiod, before being punished by X. Setting this to 0 will disable flood protection.
* NOTICEFLOOD/msg X set <#channel> noticeflood <0|2-15>This is the maximum number of notices a user can send in your channel at once within the time you set for floodperiod, before being punished by X. Setting this to 0 will disable flood protection.
* NOTAKE/msg X set <#channel> notake <on|off>When this is turned on, X will not allow ops in your channel to attempt to set a massban (which is a ban on *!*@*. If the TAKEREVENGE option is set, X will punish anyone who attempts to do this.
* REPEATFLOOD/msg X set <#channel> repeatflood <0|2-15>If a user repeats an action more than the value you have set here, X will punish the user according to what you have set for floodpro.
* TAKEREVENGE/msg X set <#channel> takerevenge <none|ban|suspend>If this is set to none, X will not punish users who attempt to set a massban in your channel. If it is set to ban, X will kickban the user for 7 days at access 500. If it is set to suspend, X will suspend and kickban the user for 7 days at access 500.
* URL/msg X set <#channel> url [url(s)]This will set the url for your channel. The URL can be viewed in the CHANINFO command, or on the CService Website for your channel. If no url is given, this setting will be cleared.
* USERFLAGS/msg X set <#channel> userflags <0-2>This setting will set the default automode for all new users who are added to the channel’s access list. Value 0 will set an automode of none. Value 1 will set an automode of Op. Value 2 will set an automode of Voice. The default value for this is 0.

Level 400 – Userlist Administrator

ADDUSER /msg X adduser <#channel> <username> <access> This will add a new user to your channel. You won’t be able to add a user to your channel with access equal to or greater than your own.
CLEARMODE /msg X clearmode <#channel> You can use this to clear all modes in a channel when it’s locked. It will remove channel modes +i, +l, and +k. This may be the best way to regain entry to your channel if you’ve been locked out.
MODINFO /msg X modinfo <#channel> <access|automode> <username> <value> This command allows you to make changes to your channel’s access list.
ACCESS /msg X modinfo <#channel> access <username> <level>Using this command, you can modify the access level of a user who is already added to your channel. The access level you set here cannot be greater than or equal to your own access level. So if you had access 400, the highest you’d be able to give to another user is 399. Also, you can’t modify your own access, and you can’t modify a user with access higher than your own.
AUTOMODE /msg X modinfo <#channel> automode <username> <op|voice|none> This command will allow you to set a user’s automode to op or voice, or remove it altogether.

Level 100 – Userlist Operator

OP/msg X op <#channel> <nick1> [nick2 nick3]This command will make X op a user in your channel. You can op multiple users by giving multiple nicks separated by a space.
DEOP/msg X deop <#channel> <nick1> [nick2 nick3]This command will make X deop a user in your channel. Much like the op command,you can deop multiple users by giving multiple nicks separated by a space.
INVITE/msg X invite <#channel>This will make X invite you to your channel. This is useful if your channel is set to mode +i (Invite Only).
MODINFO/msg X modinfo <#channel> <invite> <on|off>*Since this modinfo command only has one option,it’ll be explained here.* You can use this command to set your autoinvite in a channel by setting invite to ON. Only you can set this option.
SUSPEND/msg X suspend <#channel> <username> <duration> <access> [reason]This will make X suspend a user’s access in your channel for a set duration. The suspension access level cannot be greater than your own. You cannot suspend users who have access greater than or equal to your own. The reason is optional.
UNSUSPEND/msg X unsuspend <#channel> <username>This will make X remove a suspension on a user’s access in your channel. You cannot unsuspend users who are suspended with an access level greater than or equal to your own.

Level 75 – New Operator

BAN/msg X ban <#channel> <nick!ident@host> <duration> <access> [reason]This will make X ban a user from your channel for the set duration. If the ban access level is 74 or lower,the user will be deopped and cannot be opped. If the access level is 75 or higher the user will be kick banned from the channel. The ban access level cannot be greater than your own. The ban duration cannot be shorter than 5 minutes,and cannot be longer than 365 days. If you wish to set a permanent ban,use 0d as the duration. You may ban users by their nick,or using a pattern. The reason is optional,but will be used in the ban comment. Your ban reason cannot be longer than 300 characters. Your channel may not have more than 500 bans set in X.
UNBAN/msg X unban <#channel> <nick!ident@host>This will make X remove a ban from your channel. You cannot unban users who are banned with an access level greater than or equal to your own.

Level 50 – Half Op

KICK/msg X kick <#channel> <nick!ident@host> [reason]This will make X kick a user from the channel. The reason is optional.
TOPIC/msg X topic <#channel> <topic>This will make X set the channel topic. It can be 145 characters long, and your username will be prepended to the topic you set.

Level 25 – Trusted Channel User

VOICE/msg X voice <#channel> <nick1> [nick2 nick3]This will make X voice a user. You can voice multiple users by giving multiple nicks separated by spaces.
DEVOICE/msg X devoice <#channel> <nick1> [nick 2 nick3]This will make X devoice a user. You can devoice multiple users by giving multiple nicks separated by spaces.

Level 1 – Channel User

BANLIST/msg X banlist <#channel>Using this command will make X show you the banlist for the channel.
STATUS/msg X status <#channel>Using this command will show you the status information for a channel, except for the set modes.

Level 0 – Registered User

ACCESS/msg X access <#channel> <username>This command will show you a user’s access in a channel.
CHANINFO/msg X chaninfo <#channel>This command will show you if a channel is registered, and if it is, who is registered to, as well as its description and url.
INFO/msg X info <username>This command will display information about a user if they don’t have the invisible flag set. If you use it on yourself, it will show you all channels you have access too. (Only you and Cservice can see that)
HELP/msg X help <command>Using this command will help you learn about other commands. Use it wisely ,)
LBANLIST/msg X lbanlist <#channel> <pattern>You can use this command to search through a channel’s ban list in X. You can use * as a pattern to display all bans, or you can give a nick!ident@host pattern to search for a specific ban. If there are more than 10 bans, you will need to login to the CService website to see all of them.
LOGIN/msg LOGIN <username> <password>This command logs you into X! Note: You must message You cannot do /msg X login.
MOTD/msg X motdThis command will show you X’s message of the day.
NEWPASS– COMMAND DISABLED –Unfortunately, because of the abusive users, we can’t have nice things. To change your password, please go to the CService website.
REMUSER/msg X remuser <#channel>If there’s a channel you’re added to that you no longer wish to be added to, you can use the REMUSER command to remove yourself from that channel.
SET/msg X set <option> <flag>You can use this to set options and flags on your account.
INVISIBLE/msg X set invisible <on|off>If this is turned on, users won’t be able to get information about your account, like your online status, via the INFO command. This is turned on by default for all accounts registered after November 1st, 2016.
LANG/msg X set lang <language code>You can change this setting to make X reply to you in a different language if English isn’t what you speak. The available language options are: AR - Arabic, CA - Catalan, CH - Christmas, DK - Danish, NL - Dutch, EA - Easter, EN - English, FR - Français, DE - German, IL - Hebrew, HU - Hungarian, IT - Italian, NO - Norsk, SV - Svenska, PT - Portuguese, RO - Romanian, ES - Spanish, TR - Turkce, GR - Greek, HA - Halloween, SW - Star Wars.
NOADDUSER/msg X set noadduser <on|off>If this is turned on, X will not allow other users to add you to their channels.
SHOWCOMMANDS/msg X showcommands <#channel>If you need help with one of X’s commands, use the help command! X will explain how to use whatever command you ask it to explain.
SHOWIGNORE/msg X showignoreIs X ignoring one of your friends? If so, use this command. It’ll show you X’s ignore list, and tell you how long each user has to wait before the ignore expires.
SUPPORT/msg X support <#channel> <yes|no>If you use this command and say YES, you will support a channel’s registration application. If you say NO, you will object to this channel being registered. This command can only be used in channels with a valid registration application.*
VERIFY/msg X verify <nick>If you’re uncertain about a user’s status on the network, this command can be used to tell if they’re logged into X. It’ll also tell you if they’re an official CService member, or an IRC Operator.

The content on this page was obtained by looking directly into the GNUWorld source and existing Undernet documentation.