IRC Raw Numerics
Look up server replies, find numeric codes and learn how RAW events work in mIRC.
What does that server reply mean?
IRC servers use three-digit numbers to identify many replies. Some confirm a request, while others explain why a command failed. Search the reference below by number, keyword or message.
Good to know: Numeric meanings and reply formats can vary between IRC networks and server software. This directory includes both commonly used and network-specific replies.
:irc.example.net 473 YourNick #channel :Cannot join channel (+i)
Find an IRC reply
Browse the reference or search for a code, command or error message.
-
: Welcome to the Internet Relay Network nickname
000 series -
: Your host is server, running version ver
000 series -
: This server was created datetime
000 series -
server ver usermode chanmode
000 series -
: map
000 series -
protocols : are available on this server
000 series -
: End of /MAP
000 series -
num : Server notice mask (hex)
000 series -
connection sendq sentmsg sentbyte recdmsg recdbyte pen
200 series -
command uses bytes
200 series -
C address * server port class
200 series -
N address * server port class
200 series -
I ipmask * hostmask port class
200 series -
k address * username details
200 series -
P port ?? ??
200 series -
Y class ping freq maxconnect sendq
200 series -
char :End of /STATS report
200 series -
mode
200 series -
B server * ?? ?? ??
200 series -
E hostmask * username ?? ??
200 series -
D ipmask * username ?? ??
200 series -
L address * server ?? ??
200 series -
: Server Up num days, time
200 series -
o mask password user ?? class
200 series -
H address * server ?? ??
200 series -
G address timestamp :reason
200 series -
U host * ?? ?? ??
200 series -
: info
200 series -
: Highest connection count: total (num clients)
200 series -
: There are user users and invis invisible on serv servers
200 series -
num perator(s) online
200 series -
num :unknown connection(s)
200 series -
num :channels formed
200 series -
: I have user clients and serv servers
200 series -
: Administrative info about server
200 series -
: info
200 series -
: info
200 series -
: info
200 series -
: Server load is temporarily too heavy. Please wait a while and try again.
200 series -
: Current local users: curr Max: max
200 series -
: Current global users: curr Max: max
200 series -
nick : End of Silence List
200 series -
address timestamp reason
200 series -
: End of G-line List
200 series -
: num ***** topic *****
200 series -
: text
200 series -
: ***** Go to #dalnethelp if you have any further questions *****
200 series -
: text
200 series -
: Your help-request has been forwarded to Help Operators
200 series -
nick : Nickname conflict has been resolved
200 series -
nick : away
300 series -
: userhosts
300 series -
: nicknames
300 series -
: You are no longer marked as being away
300 series -
: You have been marked as being away
300 series -
: userips
300 series -
nick : has identified for this nick
300 series -
nick : looks very helpful
300 series -
nick username address * : info
300 series -
nick server : info
300 series -
nick server : signoff
300 series -
nick : is an IRC Operator
300 series -
nick username address * : info
300 series -
request : End of /WHO list.
300 series -
nick seconds signon : info
300 series -
request : End of /WHOIS list.
300 series -
nick : channels
300 series -
Channel : Users Name
300 series -
channel users : topic
300 series -
: End of /LIST
300 series -
channel mode
300 series -
channel :url
300 series -
channel time
300 series -
channel : No topic is set.
300 series -
channel : topic
300 series -
channel nickname time
300 series -
nick channel
300 series -
channel invite nick time
300 series -
channel : End of Channel Invite List
300 series -
channel exception nick time
300 series -
channel : End of Channel Exception List
300 series -
version.debug server :info
300 series -
channel username address server nick flags :hops info
300 series -
= channel : names
300 series -
server hub : hops info
300 series -
mask : End of /LINKS list.
300 series -
channel : End of /NAMES list.
300 series -
channel ban nick time
300 series -
channel : End of Channel Ban List
300 series -
request : End of WHOWAS
300 series -
: info
300 series -
: - info
300 series -
: End of /INFO list.
300 series -
: - server Message of the Day -
300 series -
: End of /MOTD command.
300 series -
: - info
300 series -
: - info
300 series -
: You are now an IRC Operator
300 series -
file : Rehashing
300 series -
server : time
300 series -
nickname : No such nick
400 series -
* : Target left UnderNet. Failed to deliver: message
400 series -
server : No such server
400 series -
channel : No such channel
400 series -
channel : Cannot send to channel
400 series -
channel : You have joined too many channels
400 series -
nickname : There was no such nickname
400 series -
target duplicate recipients. No message delivered
400 series -
: No origin specified
400 series -
: No recipient given (command)
400 series -
: No text to send
400 series -
mask : No toplevel domain specified
400 series -
mask : Wildcard in toplevel Domain
400 series -
command : Too many lines in the output, restrict your query
400 series -
command : Unknown command
400 series -
: MOTD File is missing
400 series -
server : No administrative info available
400 series -
: No nickname given
400 series -
nickname : Erroneus Nickname
400 series -
nickname : Nickname is already in use.
400 series -
nickname : Nickname is registered to someone else.
400 series -
nickname : Nickname collision KILL
400 series -
channel : Cannot change nickname while banned on channel
400 series -
nick : Nick change too fast. Please wait sec seconds.
400 series -
target : Target change too fast. Please wait sec seconds.
400 series -
nickname channel : They aren't on that channel
400 series -
channel : You're not on that channel
400 series -
nickname channel : is already on channel
400 series -
: SUMMON has been disabled
400 series -
: USERS has been disabled
400 series -
command : Register first.
400 series -
: Your username ident contained the invalid character(s) chars and has been changed to new. Please use only the characters 0-9 a-z A-Z _ - or . in your username. Your username is the part before the @ in your email address.
400 series -
command : Not enough parameters
400 series -
: You may not reregister
400 series -
channel : Channel key already set
400 series -
channel only servers can change that mode
400 series -
channel : Cannot join channel (+l)
400 series -
char : is unknown mode char to me
400 series -
channel : Cannot join channel (+i)
400 series -
channel : Cannot join channel (+b)
400 series -
channel : Cannot join channel (+k)
400 series -
channel : Channel doesn't support modes
400 series -
channel : You need a registered nick to join that channel.
400 series -
channel ban : Channel ban/ignore list is full
400 series -
permission Denied- You're not an IRC operator
400 series -
channel : You're not channel operator
400 series -
: You cant kill a server!
400 series -
nick channel : Cannot kill, kick or deop channel service
400 series -
channel : Cannot join channel (reason)
400 series -
: No O-lines for your host
400 series -
: Unknown MODE flag
500 series -
: Cant change mode for other users
500 series -
: You must resolve the nickname conflict before you can proceed
500 series -
mask : Your silence list is full
500 series -
: Authorization required to use Registered Nickname nick
500 series -
address : No such gline
500 series -
nick : Maximum size for WATCH-list is num entries
500 series -
If you can't connect, type /QUOTE PONG code or /PONG code
500 series -
nick userid host time :logged offline
600 series -
nick userid host time :logged online
600 series -
nick userid host time :stopped watching
600 series -
: You have mine and are on other WATCH entries
600 series -
nick userid host time :is online
600 series -
nick userid host time :is offline
600 series -
: nicklist
600 series -
: End of WATCH query
600 series -
nick PROP channel (ownerkey,hostkey,onjoin,onpart) (key or message)
Other numerics -
1 0 GateKeeper,NTLM 512 *
Other numerics -
channel (owner,host,voice,grant) entry (how long) (address of person you entered entry) tag
Other numerics -
channel (owner,host,voice,grant) entry
Other numerics -
channel Start of access entries
Other numerics -
channel (owner,host,voice,grant) entry (how long) (address of person you entered entry) tag
Other numerics -
channel End of access entries
Other numerics -
channel (owner,host,voice,grant) Clear
Other numerics -
channel access denied
Other numerics -
channel duplicated access entry
Other numerics -
channel Whispers disabled in channel
Other numerics -
channel Already in channel
Other numerics -
Unknown error code 75476594
Other numerics
No matching numerics. Try a different code or keyword, or select All.
Working with RAW events
Examples and practical explanations for handling numeric replies in mIRC.
01Understanding IRC repliesHow the server communicates a numeric code.
The rest of the string will contain information pertaining to the reply. The rest of the string in the above example is telling us what channel we tried to join that was invite only.
02What can I do with numerics?Ways to customize replies and respond to events.
03Using RAW events in mIRCThe RAW event format and mIRC examples.
In the example above, we could echo that error by doing this:
To fully understand how to use raw events, you must first understand the parameters. You use $1, $2, $3, etc, just like you do in an alias. $1 would be the first 'word' in the servers reply, $2 would be the second, and $1- would be the full reply. One thing to note is that EVERY reply from the server will always contain your nickname, so $1 is always your nickname.
One other thing to note is that you must use the /halt command if you don't want mIRC to print out its normal text in relation to a raw event. I've added the halt command on my example so that only my message is displays, and mIRC hides its own standard error reply.
A very useful technique for learning raw events is to add this to your remote section:
This will trigger any time a raw event goes off, and will print out all the information to your status window for you to study. If you plan to customize the way mIRC looks, this will also let you catch any of the raw events that you didn't script for. One other magic identifier that you can use in raw events is $nick, which will tell you the server that sent the reply.
04WHOIS walkthroughReading the replies returned by /WHOIS.
Now, whois yourself. You should get a display similar to this in your status window:
319 Yeti`` _Yeti_ @#Yeti @#mIRC
312 Yeti`` _Yeti_ irc.core.com The Marklar for Marklars on Marklar.
317 Yeti`` _Yeti_ 529 955689355 seconds idle, signon time
318 Yeti`` _Yeti_ End of /WHOIS list.
We'll start with the first line. it tells me that my hostname and real name are contained in raw 311. As I mentioned, $1 is the first word, and is ALWAYS your nickname. As you can see, i used a second client to /whois the first one. $2 in this example would be _Yeti_, as was the target of the whois. $3 contains my ident, yeti. $4 is my hostname. That * is a 'word' by itself, so $5 would contain a single *. $6 and on would be whatever was in my real name field. The get it all, you would use $6-
You may have noticed that this is slightly different from way mIRC would print out whois information. For instance, you get [email protected] in a regular whois. Your script would have to do a bit of work here to combine the ident and the host. If you wanted to customize this info, you could do something like this:
You can do whatever you want with the information contained in raw events. I could store the information in variables, write it to a file, or just stop it from printing completely. You can add colors to the echoes, flip and bend it however you want basically.
I'll skip to the idle information now, as the way the server send it may seem rather odd. The first number there, 529, is the number of seconds idle. You can use $duration to convert this to something readable. The second number is a timestamp of when I logged on. That can also be converted to something more readable with $asctime. Heres an example:
In my case, it would print out:
05Ban-list walkthroughProcessing channel ban-list replies.
367 Yeti`` #Yeti *!*@*.test.com [email protected] 955710688
367 Yeti`` #Yeti *!*@*.lamer.com [email protected] 955710688
368 Yeti`` #Yeti End of Channel Ban List
Again, $1 is going to be your current nickname. $2 is going to be the channel that you requested the list for. $3 is the hostname that is currently banned. $4 tells you who set the ban, and $5 contains a timestamp of when it was set. You can use $asctime again to convert this to something readable.
A simple way to clear all the bans would be to do this:
As the information on each ban was received, you could grab the hostname and remove the ban. However, if there are 10 or 15 bans, this can get quite messy! Here's a more complicated version that would allow you to do 4 at a time.
%bans = $addtok(%bans,$3,32)
if ($numtok(%bans,32) == 4) { mode $2 -bbbb %bans | unset %bans }
halt
}
raw 368: { if (%bans) mode $2 - $+ $str(b,$numtok(%bans,32) %bans | unset %bans | halt }
So.. how does it work? As we receive each ban, we are adding the hostname to a variable called %bans. After we add the host, we see how many we have stored. If there are 4, we clear out 4 at once, then delete the variable. The next time around, we have an empty variable and try and add 4 more again.
In case you have an odd number of bans, we also have to check one last time as the ban list is finished. Since we only wipe bans every time we get 4, the above script would never unset them if there were only 3 bans. Once the server tells us that we have the ban list, we verify if %bans exists. if it does, we still have one last batch to get rid of. To avoid errors from the server, I used $str to repeat the b enough times to cover each unban. We could specify -bbbb, but the server might complain if you tell it your going to do 4 unbans and then only specify one hostname. The last thing we do is unset out %bans variable, and we're done!