Skip to content
IRC protocol reference

IRC Raw Numerics

Look up server replies, find numeric codes and learn how RAW events work in mIRC.

IRC numeric reference 000–999 179 reference entries
Replies, errors and server events
The basics

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.

Example server replyInvite only
:irc.example.net 473 YourNick #channel :Cannot join channel (+i)
473
Cannot join channel (+i)The channel is invite-only. The numeric explains why joining failed.
Numeric directory

Find an IRC reply

Browse the reference or search for a code, command or error message.

179 matching entries

How to use RAW events
  1. 001

    : Welcome to the Internet Relay Network nickname

    000 series
  2. 002

    : Your host is server, running version ver

    000 series
  3. 003

    : This server was created datetime

    000 series
  4. 004

    server ver usermode chanmode

    000 series
  5. 005

    : map

    000 series
  6. 005

    protocols : are available on this server

    000 series
  7. 007

    : End of /MAP

    000 series
  8. 008

    num : Server notice mask (hex)

    000 series
  9. 211

    connection sendq sentmsg sentbyte recdmsg recdbyte pen

    200 series
  10. 212

    command uses bytes

    200 series
  11. 213

    C address * server port class

    200 series
  12. 214

    N address * server port class

    200 series
  13. 215

    I ipmask * hostmask port class

    200 series
  14. 216

    k address * username details

    200 series
  15. 217

    P port ?? ??

    200 series
  16. 218

    Y class ping freq maxconnect sendq

    200 series
  17. 219

    char :End of /STATS report

    200 series
  18. 221

    mode

    200 series
  19. 222

    B server * ?? ?? ??

    200 series
  20. 223

    E hostmask * username ?? ??

    200 series
  21. 224

    D ipmask * username ?? ??

    200 series
  22. 241

    L address * server ?? ??

    200 series
  23. 242

    : Server Up num days, time

    200 series
  24. 243

    o mask password user ?? class

    200 series
  25. 244

    H address * server ?? ??

    200 series
  26. 247

    G address timestamp :reason

    200 series
  27. 248

    U host * ?? ?? ??

    200 series
  28. 249

    : info

    200 series
  29. 250

    : Highest connection count: total (num clients)

    200 series
  30. 251

    : There are user users and invis invisible on serv servers

    200 series
  31. 252

    num perator(s) online

    200 series
  32. 253

    num :unknown connection(s)

    200 series
  33. 254

    num :channels formed

    200 series
  34. 255

    : I have user clients and serv servers

    200 series
  35. 256

    : Administrative info about server

    200 series
  36. 257

    : info

    200 series
  37. 258

    : info

    200 series
  38. 259

    : info

    200 series
  39. 263

    : Server load is temporarily too heavy. Please wait a while and try again.

    200 series
  40. 265

    : Current local users: curr Max: max

    200 series
  41. 266

    : Current global users: curr Max: max

    200 series
  42. 272

    nick : End of Silence List

    200 series
  43. 280

    address timestamp reason

    200 series
  44. 281

    : End of G-line List

    200 series
  45. 290

    : num ***** topic *****

    200 series
  46. 291

    : text

    200 series
  47. 292

    : ***** Go to #dalnethelp if you have any further questions *****

    200 series
  48. 293

    : text

    200 series
  49. 294

    : Your help-request has been forwarded to Help Operators

    200 series
  50. 298

    nick : Nickname conflict has been resolved

    200 series
  51. 301

    nick : away

    300 series
  52. 302

    : userhosts

    300 series
  53. 303

    : nicknames

    300 series
  54. 305

    : You are no longer marked as being away

    300 series
  55. 306

    : You have been marked as being away

    300 series
  56. 307

    : userips

    300 series
  57. 307

    nick : has identified for this nick

    300 series
  58. 310

    nick : looks very helpful

    300 series
  59. 311

    nick username address * : info

    300 series
  60. 312

    nick server : info

    300 series
  61. 312

    nick server : signoff

    300 series
  62. 313

    nick : is an IRC Operator

    300 series
  63. 314

    nick username address * : info

    300 series
  64. 315

    request : End of /WHO list.

    300 series
  65. 317

    nick seconds signon : info

    300 series
  66. 318

    request : End of /WHOIS list.

    300 series
  67. 319

    nick : channels

    300 series
  68. 321

    Channel : Users Name

    300 series
  69. 322

    channel users : topic

    300 series
  70. 323

    : End of /LIST

    300 series
  71. 324

    channel mode

    300 series
  72. 328

    channel :url

    300 series
  73. 329

    channel time

    300 series
  74. 331

    channel : No topic is set.

    300 series
  75. 332

    channel : topic

    300 series
  76. 333

    channel nickname time

    300 series
  77. 341

    nick channel

    300 series
  78. 346

    channel invite nick time

    300 series
  79. 347

    channel : End of Channel Invite List

    300 series
  80. 348

    channel exception nick time

    300 series
  81. 349

    channel : End of Channel Exception List

    300 series
  82. 351

    version.debug server :info

    300 series
  83. 352

    channel username address server nick flags :hops info

    300 series
  84. 353

    = channel : names

    300 series
  85. 364

    server hub : hops info

    300 series
  86. 365

    mask : End of /LINKS list.

    300 series
  87. 366

    channel : End of /NAMES list.

    300 series
  88. 367

    channel ban nick time

    300 series
  89. 368

    channel : End of Channel Ban List

    300 series
  90. 369

    request : End of WHOWAS

    300 series
  91. 371

    : info

    300 series
  92. 372

    : - info

    300 series
  93. 374

    : End of /INFO list.

    300 series
  94. 375

    : - server Message of the Day -

    300 series
  95. 376

    : End of /MOTD command.

    300 series
  96. 377

    : - info

    300 series
  97. 378

    : - info

    300 series
  98. 381

    : You are now an IRC Operator

    300 series
  99. 382

    file : Rehashing

    300 series
  100. 391

    server : time

    300 series
  101. 401

    nickname : No such nick

    400 series
  102. 401

    * : Target left UnderNet. Failed to deliver: message

    400 series
  103. 402

    server : No such server

    400 series
  104. 403

    channel : No such channel

    400 series
  105. 404

    channel : Cannot send to channel

    400 series
  106. 405

    channel : You have joined too many channels

    400 series
  107. 406

    nickname : There was no such nickname

    400 series
  108. 407

    target duplicate recipients. No message delivered

    400 series
  109. 409

    : No origin specified

    400 series
  110. 411

    : No recipient given (command)

    400 series
  111. 412

    : No text to send

    400 series
  112. 413

    mask : No toplevel domain specified

    400 series
  113. 414

    mask : Wildcard in toplevel Domain

    400 series
  114. 416

    command : Too many lines in the output, restrict your query

    400 series
  115. 421

    command : Unknown command

    400 series
  116. 422

    : MOTD File is missing

    400 series
  117. 423

    server : No administrative info available

    400 series
  118. 431

    : No nickname given

    400 series
  119. 432

    nickname : Erroneus Nickname

    400 series
  120. 433

    nickname : Nickname is already in use.

    400 series
  121. 433

    nickname : Nickname is registered to someone else.

    400 series
  122. 436

    nickname : Nickname collision KILL

    400 series
  123. 437

    channel : Cannot change nickname while banned on channel

    400 series
  124. 438

    nick : Nick change too fast. Please wait sec seconds.

    400 series
  125. 439

    target : Target change too fast. Please wait sec seconds.

    400 series
  126. 441

    nickname channel : They aren't on that channel

    400 series
  127. 442

    channel : You're not on that channel

    400 series
  128. 443

    nickname channel : is already on channel

    400 series
  129. 445

    : SUMMON has been disabled

    400 series
  130. 446

    : USERS has been disabled

    400 series
  131. 451

    command : Register first.

    400 series
  132. 455

    : 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
  133. 461

    command : Not enough parameters

    400 series
  134. 462

    : You may not reregister

    400 series
  135. 467

    channel : Channel key already set

    400 series
  136. 468

    channel only servers can change that mode

    400 series
  137. 471

    channel : Cannot join channel (+l)

    400 series
  138. 472

    char : is unknown mode char to me

    400 series
  139. 473

    channel : Cannot join channel (+i)

    400 series
  140. 474

    channel : Cannot join channel (+b)

    400 series
  141. 475

    channel : Cannot join channel (+k)

    400 series
  142. 477

    channel : Channel doesn't support modes

    400 series
  143. 477

    channel : You need a registered nick to join that channel.

    400 series
  144. 478

    channel ban : Channel ban/ignore list is full

    400 series
  145. 481

    permission Denied- You're not an IRC operator

    400 series
  146. 482

    channel : You're not channel operator

    400 series
  147. 483

    : You cant kill a server!

    400 series
  148. 484

    nick channel : Cannot kill, kick or deop channel service

    400 series
  149. 485

    channel : Cannot join channel (reason)

    400 series
  150. 491

    : No O-lines for your host

    400 series
  151. 501

    : Unknown MODE flag

    500 series
  152. 502

    : Cant change mode for other users

    500 series
  153. 510

    : You must resolve the nickname conflict before you can proceed

    500 series
  154. 511

    mask : Your silence list is full

    500 series
  155. 512

    : Authorization required to use Registered Nickname nick

    500 series
  156. 512

    address : No such gline

    500 series
  157. 512

    nick : Maximum size for WATCH-list is num entries

    500 series
  158. 513

    If you can't connect, type /QUOTE PONG code or /PONG code

    500 series
  159. 600

    nick userid host time :logged offline

    600 series
  160. 601

    nick userid host time :logged online

    600 series
  161. 602

    nick userid host time :stopped watching

    600 series
  162. 603

    : You have mine and are on other WATCH entries

    600 series
  163. 604

    nick userid host time :is online

    600 series
  164. 605

    nick userid host time :is offline

    600 series
  165. 606

    : nicklist

    600 series
  166. 607

    : End of WATCH query

    600 series
  167. 000

    nick PROP channel (ownerkey,hostkey,onjoin,onpart) (key or message)

    Other numerics
  168. 800

    1 0 GateKeeper,NTLM 512 *

    Other numerics
  169. 801

    channel (owner,host,voice,grant) entry (how long) (address of person you entered entry) tag

    Other numerics
  170. 802

    channel (owner,host,voice,grant) entry

    Other numerics
  171. 803

    channel Start of access entries

    Other numerics
  172. 804

    channel (owner,host,voice,grant) entry (how long) (address of person you entered entry) tag

    Other numerics
  173. 805

    channel End of access entries

    Other numerics
  174. 820

    channel (owner,host,voice,grant) Clear

    Other numerics
  175. 908

    channel access denied

    Other numerics
  176. 914

    channel duplicated access entry

    Other numerics
  177. 923

    channel Whispers disabled in channel

    Other numerics
  178. 927

    channel Already in channel

    Other numerics
  179. 999

    Unknown error code 75476594

    Other numerics
mIRC scripting guide

Working with RAW events

Examples and practical explanations for handling numeric replies in mIRC.

Back to numeric lookup ↑
01Understanding IRC repliesHow the server communicates a numeric code.
Any time you ask an IRC server some type of question, it will send you a reply. It can't send back plain data though, it has to code it in some way so that the IRC client can understand what the data is for. Confused? For example, if you tried to join a channel but couldn't get in, The server would reply with this string:
:irc.core.com 473 _Yeti_ #mIRC :Sorry, cannot join channel.
The first section identifies the server that sent the reply. This can come in handy, as you will sometimes receive a reply from a server you're not connected to. The next portion, 473, is the actual numeric. The message the server sends us tells us we can't get into the channel, but why? 473 is the reply for "Channel is invite only". There are other similar error codes, such as 471 for "Channel is full", or 474 for "You're banned"

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.
The main use that most people use raw events for is to customize the way their information is printed out, though there are many uses. You can change the way your /whois is printed out, customize error messages, gather ban list information, and much more.
03Using RAW events in mIRCThe RAW event format and mIRC examples.
Raw events work just like other mIRC events, such as on join, on kick, on text, etc. They are triggered by something that happens, and go in your remote section. The format is slightly different then a regular event though, and looks like this:
raw <numeric>:matchtext: { commands }

In the example above, we could echo that error by doing this:
raw 473:*: echo -a I tried to join $2 but its invite only! | halt

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:
raw *:*: echo -s $numeric $1-

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.
One of the most common uses for raw is to capture whois information. When you do a /whois, the server sends several replies at once. These can all be captured and manipulated as you please. First, add our previous example to your remote:
raw *:*: echo -s $numeric $1- | halt

Now, whois yourself. You should get a display similar to this in your status window:
311 Yeti`` _Yeti_ yeti slacker.to * Sasquatch
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.
I get 5 separate replies from my /whois. Some may not be present at all times. For instance, if I part all channels, raw 319 will not trigger. If the server doesn't care to share my idle time, raw 317 would be missing. If I suddenly became an IRC oper, raw 313 would show up.

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:
raw 311:*: { echo -a Whois Info for $2 - Hostname: $3 $+ @ $+ $4 - RealName: $6- | halt }

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:
raw 317:*: { echo -a $2 logged on $asctime($4) and has been idle for $duration($2) | halt }

In my case, it would print out:
Yeti_ logged on Fri Apr 14 00:15:55 2000 and has been idle for 8mins 49secs
raw 318 is somewhat common among many events as well. This is just the server telling you it's done sending information. For instance, when you join a channel, the servers send you all the users nicknames. When its done, it send an extra raw to say "Thats everyone, I'm done now". You can use this is a way to ensure that you have received all the information you need.
05Ban-list walkthroughProcessing channel ban-list replies.
Another common request for raw events is to process bans in a channel. This can be used to maintain your own custom internal banlist, or to clear all the bans on a channel. Just like /whois, you have to ask the server to send you information. To get a banlist, simply type /mode #channel +b. When I do this, I get this output:
367 Yeti`` #Yeti *!*@*.test2.com [email protected] 955710688
367 Yeti`` #Yeti *!*@*.test.com [email protected] 955710688
367 Yeti`` #Yeti *!*@*.lamer.com [email protected] 955710688
368 Yeti`` #Yeti End of Channel Ban List
In this example, you see that the server sends multiple replies for the same number. Many events will do this, like /who, /names, etc. There is also an extra event indicating that the list is complete.

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:
raw 367:*: mode $2 -b $3

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.
raw 367:*: {
%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!