ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.30
Committed: Mon Jul 21 01:41:01 2003 UTC (20 years, 10 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.29: +4 -4 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 <html>
2 <head>
3 <title>KGS Protocol Description</title>
4 <!--
5 Copyright (C) 2003 Marc Lehmannn &lt;pcg@goof.com&gt;
6
7 You can redistribute and/or modify this document under the terms of
8 the GNU General Public License as published by the Free Software
9 Foundation; either version 2 of the License, or (at your option) any
10 later version.
11
12 This document is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 -->
21 </head>
22 <body>
23
24 <h1>$Revision: 1.29 $</h1>
25
26 <h1>KGS Protocol Description</h1>
27
28 <p>This XML document describes the KGS protocol. It is also used
29 to automatically generate the perl parser for all the messages and
30 structures in the protocol. Adapting it to other languages should be
31 trivial.</p>
32
33 <p>
34 <b>Please note that the author of KGS has told me that he will
35 change the protocol in response to my efforts. Unfortunately, he does
36 this just to make it more difficult to reverse-engineer it, since his
37 changes are neither required, nor useful (they just make the protocol
38 less robust, without adding added value).</b>
39 </p>
40
41 <p>If you feel you need to update the visual appearance of this
42 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
43 it.</p>
44
45 <p>The current version of this document can always be found at
46 <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.xml?rev=HEAD&amp;content-type=text/xml">here</a>, while
47 the HTML version of it can be found
48 <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.html?rev=HEAD&amp;content-type=text/html">here</a>.
49 </p>
50
51 <h2>Changes for server version 2.5</h2>
52
53 <p>Sorry - I have little time to dissect the protocol, but as far
54 as I can see, there was no deeper need for the protocol change, as
55 the protocol itself didn't change in a significant way. The only
56 significant change was the addition of a linear congruence generator
57 that is xor'ed into the packet length, and some heavy foolery to change
58 receive packets. It seems that wms prefers to lock out many of his own
59 users than to have a few people write their own client. I didn't really
60 expect that from him, but instead expected real changes for the good,
61 as he is claiming all the time.</p>
62
63 <p>Well, that is just what he accouned earlier, so he just did what he
64 said...</p>
65
66 <p>Anything I know about changes in 2.5.x are reflected in this
67 document already. You can log-in, chat, log-out, watch games, but you
68 cannot comment games nor play nor privately chat.</p>
69
70 <h2>Structure and conventions of this document and the protocol</h2>
71
72 <p>"Send" means messages send from the client to the server, while
73 "received" means messages send by the server to the client.</p>
74
75 <p>Everything on the wire is in little-endian format (what a shame).</p>
76
77 <p>Primitive types are mostly integers (signed
78 "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
79 ascii strings ("<code>username</code>"), or zero-terminated
80 UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
81 do UTF-16, but no implementation seems to care...</p>
82
83 <p>For the rest, go figure or bug me, <a href="mailto:pcg@goof.com">Marc Lehmann &lt;pcg@goof.com&gt;</a>
84 </p>
85
86 <h2>Stream and message structure.</h2>
87
88 <p>After connecting to the server, a handshake byte is sent. It's
89 the major version number of the protocol the client expects to
90 receive. Version 3 and 4 are mostly the same, except that Version 4
91 clients expect server messages to be compressed, version 3 clients
92 not.</p>
93
94 <p>The server sends back his protocol number, which is always 3 in
95 the current protocol. Most of the protocol variation is determined by
96 the server using the client version that is used in the initial login
97 message, not the initial handshake byte.</p>
98
99 <p>After the initial handshake, the client sends uncompressed
100 messages, while the server sends back a zlib-compressed
101 stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
102
103 <p>All messages have the same header:</p>
104
105 <h4>STRUCTURE message_header</h4>
106 <p>
107 </p>
108 <table border="1" width="100%">
109 <tr>
110 <th width="10%">NAME</th>
111 <th width="10%">TYPE</th>
112 <th width="15%">DEFAULT</th>
113 <th>DESCRIPTION</th>
114 <th width="15%">DEC-GUARD</th>
115 </tr>
116 <tr>
117 <td>_unknown</td>
118 <td>U16</td>
119 <td> </td>
120 <td>
121
122  
123 </td>
124 <td>
125 <b></b>
126  
127 </td>
128 </tr>
129 <tr>
130 <td>length</td>
131 <td>U16</td>
132 <td> </td>
133 <td>
134
135
136  
137 </td>
138 <td>
139 <b></b>
140  
141 </td>
142 </tr>
143 <tr>
144 <td>type</td>
145 <td>U16</td>
146 <td> </td>
147 <td>
148
149  
150 </td>
151 <td>
152 <b></b>
153  
154 </td>
155 </tr>
156 </table>
157
158 <h2>Primitive types used in the protocol.</h2>
159
160 <p>Apart from the basic types, I need to define some extra types to
161 deal with fixed-point values (based on integer types) or fixed-length
162 strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
163 based (<code>S</code>)).</p>
164
165 <h4>TYPE username</h4>
166 BASE TYPE A, LENGTH 10, MULTIPLIER <br />
167
168 <p>The basic user or login name, used throughout the protocol
169 as a handle to the user.</p>
170
171 <h4>TYPE roomname</h4>
172 BASE TYPE S, LENGTH 25, MULTIPLIER <br />
173 <!-- argh, how horribly broken -->
174
175 <p>Many strings in the protocol are fixed-width for no good reason
176 (maybe this is one reason for using compression in newer versions, as
177 the packets itself are wasting lots of space.</p>
178
179 <h4>TYPE realname</h4>
180 BASE TYPE S, LENGTH 50, MULTIPLIER <br />
181 <h4>TYPE email</h4>
182 BASE TYPE S, LENGTH 70, MULTIPLIER <br />
183 <h4>TYPE userinfo</h4>
184 BASE TYPE S, LENGTH 1000, MULTIPLIER <br />
185 <h4>TYPE url</h4>
186 BASE TYPE A, LENGTH 100, MULTIPLIER <br />
187
188 <p>Used in user_record.</p>
189
190 <h4>TYPE locale</h4>
191 BASE TYPE A, LENGTH 5, MULTIPLIER <br />
192
193 <p>A kind of locale specifier. It seems the general format seems to be
194 lowercase language, underscore, uppercase location, e.g. en_US. More
195 fancy specifications don't fit.</p>
196
197 <h4>TYPE flag</h4>
198 BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
199
200 <p>Just a simple boolean value. 0 means false, and 1 generally true,
201 but I suggest ccepting != 0 as true.</p>
202
203 <h4>TYPE komi16</h4>
204 BASE TYPE I16, LENGTH , MULTIPLIER 2<br />
205 <h4>TYPE komi32</h4>
206 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
207 <h4>TYPE komi324</h4>
208 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
209
210 <p>Komi values are multiplied by 2 to make them integer in the
211 protocol. Well, *most* of the time at least...</p>
212
213 <h4>TYPE result</h4>
214 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
215
216 <p>The game result is also multiplied by two to give it higher
217 resolution. There are also special values for wins by time etc., either
218 in result or in the score* types, or both :)</p>
219
220 <h4>TYPE score16</h4>
221 BASE TYPE I16, LENGTH , MULTIPLIER 4<br />
222 <h4>TYPE score32</h4>
223 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
224 <h4>TYPE score1000</h4>
225 BASE TYPE I32, LENGTH , MULTIPLIER 1000<br />
226
227 <p>A score value (used for displaying the score at the end of a game)
228 are multiplied by four for a change (the 0.25 resolution is not
229 used). In game structures it is encoded by dividing by two, though, so
230 watch out! And in some others, it's encoded by multiplying by 1000...
231 yuck!</p>
232
233 <h4>TYPE time</h4>
234 BASE TYPE U32, LENGTH , MULTIPLIER 1000<br />
235
236 <p>Time values are multiplied by 1000, giving them millisecond
237 accuracy.</p>
238
239 <h4>TYPE timestamp</h4>
240 BASE TYPE U64, LENGTH , MULTIPLIER 1000<br />
241
242 <p>64 bit timeval, milliseconds since posix epoch, e.g. <code>my
243 ($year, $month, $day) = (gmtime $date * 0.001)[5,4,3];</code>
244 </p>
245
246 <h4>TYPE password</h4>
247 BASE TYPE U64, LENGTH , MULTIPLIER <br />
248
249 <p>Password is a number calculated as follows (VERY insecure, basically
250 plaintext!): <code>password = 0; for char in characters do password ←
251 password * 1055 + ascii_code (char)</code>
252 </p>
253
254 <h2>Constants, enumeration and set types used in the protocol.</h2>
255
256 <p>Baaah... not yet.</p>
257
258 <h2>Structs used in send &amp; receive messages</h2>
259
260 <h4>STRUCTURE user</h4>
261 CLASS: KGS::User<br />
262 <p>
263
264 <p>Everywhere a user + flags is required, even used in some places
265 where only a username is required. I see no general rule on when a
266 complete user and when a partial user is required.</p>
267 </p>
268 <table border="1" width="100%">
269 <tr>
270 <th width="10%">NAME</th>
271 <th width="10%">TYPE</th>
272 <th width="15%">DEFAULT</th>
273 <th>DESCRIPTION</th>
274 <th width="15%">DEC-GUARD</th>
275 </tr>
276 <tr>
277 <td>name</td>
278 <td>username</td>
279 <td> </td>
280 <td>
281
282  
283 </td>
284 <td>
285 <b></b>
286  
287 </td>
288 </tr>
289 <tr>
290 <td>flags</td>
291 <td>U32</td>
292 <td>1 </td>
293 <td>
294
295  
296 </td>
297 <td>
298 <b></b>
299  
300 </td>
301 </tr>
302 </table>
303
304 <h4>STRUCTURE rules</h4>
305 CLASS: KGS::Rules<br />
306 <p>
307
308 <p>This structure is used for challanges as well as in the special
309 TREE "subprotocol". It tightly encodes the game parameters.</p>
310 </p>
311 <table border="1" width="100%">
312 <tr>
313 <th width="10%">NAME</th>
314 <th width="10%">TYPE</th>
315 <th width="15%">DEFAULT</th>
316 <th>DESCRIPTION</th>
317 <th width="15%">DEC-GUARD</th>
318 </tr>
319 <tr>
320 <td>ruleset</td>
321 <td>U8</td>
322 <td> </td>
323 <td>
324
325  
326 </td>
327 <td>
328 <b></b>
329  
330 </td>
331 </tr>
332 <tr>
333 <td>size</td>
334 <td>U8</td>
335 <td> </td>
336 <td>
337
338  
339 </td>
340 <td>
341 <b></b>
342  
343 </td>
344 </tr>
345 <tr>
346 <td>handicap</td>
347 <td>U8</td>
348 <td> </td>
349 <td>
350
351  
352 </td>
353 <td>
354 <b></b>
355  
356 </td>
357 </tr>
358 <tr>
359 <td>komi</td>
360 <td>komi16</td>
361 <td> </td>
362 <td>
363
364  
365 </td>
366 <td>
367 <b></b>
368  
369 </td>
370 </tr>
371 <tr>
372 <td>timesys</td>
373 <td>U8</td>
374 <td> </td>
375 <td>
376
377  
378 </td>
379 <td>
380 <b></b>
381  
382 </td>
383 </tr>
384 <tr>
385 <td>time</td>
386 <td>U32</td>
387 <td> </td>
388 <td>
389
390  
391 </td>
392 <td>
393 <b></b>
394  
395 </td>
396 </tr>
397 <tr>
398 <td>interval</td>
399 <td>U32</td>
400 <td> </td>
401 <td>
402 byo-yomi time / canadian time
403
404  
405 </td>
406 <td>
407 <b></b>
408  
409 </td>
410 </tr>
411 <tr>
412 <td>count</td>
413 <td>U16</td>
414 <td> </td>
415 <td>
416 periods / moves
417
418  
419 </td>
420 <td>
421 <b></b>
422  
423 </td>
424 </tr>
425 </table>
426
427 <h2>Structs used in send messages</h2>
428
429 <h2>Send messages</h2>
430
431 <h4>
432 <a name="S0000"></a>SEND
433 MESSAGE login</h4>
434 NUMERIC TYPE (hex): 0000<p>
435
436 <p>Sent to login, usually the first message sent. The password needs to be set when the
437 guest flag is true.
438 Possible replies: <a href="#R0001">login(0001)</a>
439 <a href="#R0002">login(0002)</a>
440 <a href="#R0003">login(0003)</a>
441 <a href="#R0004">login(0004)</a>
442 <a href="#R0005">login(0005)</a>
443 <a href="#R0006">login(0006)</a>
444 <a href="#R0018">login(0018)</a>
445 <a href="#R0022">login(0022)</a>. Followed by: <a href="#R001b">timewarning_default(001b)</a> <a href="#R0411">chal_defaults(0411)</a>
446 </p>
447 </p>
448 <table border="1" width="100%">
449 <tr>
450 <th width="10%">NAME</th>
451 <th width="10%">TYPE</th>
452 <th width="15%">DEFAULT</th>
453 <th>DESCRIPTION</th>
454 <th width="15%">DEC-GUARD</th>
455 </tr>
456 <tr>
457 <td>ver_major</td>
458 <td>U32</td>
459 <td>2 </td>
460 <td>
461
462  
463 </td>
464 <td>
465 <b></b>
466  
467 </td>
468 </tr>
469 <tr>
470 <td>ver_minor</td>
471 <td>U32</td>
472 <td>5 </td>
473 <td>
474
475  
476 </td>
477 <td>
478 <b></b>
479  
480 </td>
481 </tr>
482 <tr>
483 <td>ver_micro</td>
484 <td>U32</td>
485 <td>1 </td>
486 <td>
487
488  
489 </td>
490 <td>
491 <b></b>
492  
493 </td>
494 </tr>
495 <tr>
496 <td>name</td>
497 <td>username</td>
498 <td> </td>
499 <td>
500
501  
502 </td>
503 <td>
504 <b></b>
505  
506 </td>
507 </tr>
508 <tr>
509 <td>password</td>
510 <td>password</td>
511 <td>0 </td>
512 <td>
513
514  
515 </td>
516 <td>
517 <b></b>
518  
519 </td>
520 </tr>
521 <tr>
522 <td>guest</td>
523 <td>flag</td>
524 <td>1 </td>
525 <td>
526
527  
528 </td>
529 <td>
530 <b></b>
531  
532 </td>
533 </tr>
534 <tr>
535 <td>_unknown3</td>
536 <td>U16</td>
537 <td>0 </td>
538 <td>
539
540  
541 </td>
542 <td>
543 <b></b>
544  
545 </td>
546 </tr>
547 <tr>
548 <td>locale</td>
549 <td>locale</td>
550 <td>"en_US" </td>
551 <td>
552
553  
554 </td>
555 <td>
556 <b></b>
557  
558 </td>
559 </tr>
560 <tr>
561 <td>clientver</td>
562 <td>DATA</td>
563 <td>"1.4.1_01:Swing app:Sun Microsystems Inc." </td>
564 <td>
565 The "default" is the java vm version, not exactly he client version. However,
566 you should always send a text like "Jonathan's C client bersion 0.6" or somesuch,
567 so the server can, if necessary, block broken clients or client versions.
568
569  
570 </td>
571 <td>
572 <b></b>
573  
574 </td>
575 </tr>
576 </table>
577
578 <h4>
579 <a name="S0007"></a>SEND
580 MESSAGE req_userinfo</h4>
581 NUMERIC TYPE (hex): 0007<p>
582 <p>Request info about a certain user. Possible reply: <a href="#R0008">userinfo(0008)</a>
583 </p>
584 </p>
585 <table border="1" width="100%">
586 <tr>
587 <th width="10%">NAME</th>
588 <th width="10%">TYPE</th>
589 <th width="15%">DEFAULT</th>
590 <th>DESCRIPTION</th>
591 <th width="15%">DEC-GUARD</th>
592 </tr>
593 <tr>
594 <td>name</td>
595 <td>username</td>
596 <td> </td>
597 <td>
598
599  
600 </td>
601 <td>
602 <b></b>
603  
604 </td>
605 </tr>
606 </table>
607
608 <h4>
609 <a name="S0007"></a>SEND
610 MESSAGE update_userinfo</h4>
611 NUMERIC TYPE (hex): 0007<p>
612 <p>Update user info. Message structure is very similar
613 to <a href="#R0008">userinfo(0008)</a>.</p>
614 </p>
615 <table border="1" width="100%">
616 <tr>
617 <th width="10%">NAME</th>
618 <th width="10%">TYPE</th>
619 <th width="15%">DEFAULT</th>
620 <th>DESCRIPTION</th>
621 <th width="15%">DEC-GUARD</th>
622 </tr>
623 <tr>
624 <td>setpass</td>
625 <td>flag</td>
626 <td> </td>
627 <td>
628 Should the password be updated?
629
630  
631 </td>
632 <td>
633 <b></b>
634  
635 </td>
636 </tr>
637 <tr>
638 <td>password</td>
639 <td>password</td>
640 <td>0 </td>
641 <td>
642
643  
644 </td>
645 <td>
646 <b></b>
647  
648 </td>
649 </tr>
650 <tr>
651 <td>realname</td>
652 <td>realname</td>
653 <td> </td>
654 <td>
655
656  
657 </td>
658 <td>
659 <b></b>
660  
661 </td>
662 </tr>
663 <tr>
664 <td>email</td>
665 <td>email</td>
666 <td> </td>
667 <td>
668
669  
670 </td>
671 <td>
672 <b></b>
673  
674 </td>
675 </tr>
676 <tr>
677 <td>info</td>
678 <td>userinfo</td>
679 <td> </td>
680 <td>
681
682  
683 </td>
684 <td>
685 <b></b>
686  
687 </td>
688 </tr>
689 <tr>
690 <td>homepage</td>
691 <td>url</td>
692 <td> </td>
693 <td>
694
695  
696 </td>
697 <td>
698 <b></b>
699  
700 </td>
701 </tr>
702 <tr>
703 <td>_unused</td>
704 <td>U64</td>
705 <td>0 </td>
706 <td>
707
708  
709 </td>
710 <td>
711 <b></b>
712  
713 </td>
714 </tr>
715 <tr>
716 <td>_unused</td>
717 <td>U64</td>
718 <td>0 </td>
719 <td>
720
721  
722 </td>
723 <td>
724 <b></b>
725  
726 </td>
727 </tr>
728 </table>
729
730 <h4>
731 <a name="S0014"></a>SEND
732 MESSAGE req_stats</h4>
733 NUMERIC TYPE (hex): 0014<p>
734 <p>Request server statistics. Replied with <a href="#R0015">stats(0015)</a>
735 </p>
736 </p>
737 <table border="1" width="100%">
738 <tr>
739 <th width="10%">NAME</th>
740 <th width="10%">TYPE</th>
741 <th width="15%">DEFAULT</th>
742 <th>DESCRIPTION</th>
743 <th width="15%">DEC-GUARD</th>
744 </tr>
745 </table>
746
747 <h4>
748 <a name="S0016"></a>SEND
749 MESSAGE idle_reset</h4>
750 NUMERIC TYPE (hex): 0016<p>
751 <p>Send in response to <a href="#R0016">idle_warn(0016)</a> to keep the server from disconnecting.</p>
752 </p>
753 <table border="1" width="100%">
754 <tr>
755 <th width="10%">NAME</th>
756 <th width="10%">TYPE</th>
757 <th width="15%">DEFAULT</th>
758 <th>DESCRIPTION</th>
759 <th width="15%">DEC-GUARD</th>
760 </tr>
761 </table>
762
763 <h4>
764 <a name="S001d"></a>SEND
765 MESSAGE ping</h4>
766 NUMERIC TYPE (hex): 001d<p>
767 <p>Wild guess, I send it in <a href="#R0016">idle_warn(0016)</a>.</p>
768 </p>
769 <table border="1" width="100%">
770 <tr>
771 <th width="10%">NAME</th>
772 <th width="10%">TYPE</th>
773 <th width="15%">DEFAULT</th>
774 <th>DESCRIPTION</th>
775 <th width="15%">DEC-GUARD</th>
776 </tr>
777 </table>
778
779 <h4>
780 <a name="S001e"></a>SEND
781 MESSAGE req_usergraph</h4>
782 NUMERIC TYPE (hex): 001e<p>
783 <p>Request user graph data, replied with <a href="#R001e">usergraph(001e)</a>.</p>
784 </p>
785 <table border="1" width="100%">
786 <tr>
787 <th width="10%">NAME</th>
788 <th width="10%">TYPE</th>
789 <th width="15%">DEFAULT</th>
790 <th>DESCRIPTION</th>
791 <th width="15%">DEC-GUARD</th>
792 </tr>
793 <tr>
794 <td>name</td>
795 <td>username</td>
796 <td> </td>
797 <td>
798
799  
800 </td>
801 <td>
802 <b></b>
803  
804 </td>
805 </tr>
806 </table>
807
808 <h4>
809 <a name="S001f"></a>SEND
810 MESSAGE fetch_memos</h4>
811 NUMERIC TYPE (hex): 001f<p>
812 <p>Unclear. Fetch all outstanding memos? Replied with <a href="#R001f">memo(001f)</a>
813 </p>
814 </p>
815 <table border="1" width="100%">
816 <tr>
817 <th width="10%">NAME</th>
818 <th width="10%">TYPE</th>
819 <th width="15%">DEFAULT</th>
820 <th>DESCRIPTION</th>
821 <th width="15%">DEC-GUARD</th>
822 </tr>
823 </table>
824
825 <h4>
826 <a name="S0021"></a>SEND
827 MESSAGE req_pic</h4>
828 NUMERIC TYPE (hex): 0021<p>
829 <p>Request a user picture from the server. Results in a <a href="#R0021">userpic(0021)</a>
830 or a timeout.</p>
831 </p>
832 <table border="1" width="100%">
833 <tr>
834 <th width="10%">NAME</th>
835 <th width="10%">TYPE</th>
836 <th width="15%">DEFAULT</th>
837 <th>DESCRIPTION</th>
838 <th width="15%">DEC-GUARD</th>
839 </tr>
840 <tr>
841 <td>name</td>
842 <td>username</td>
843 <td> </td>
844 <td>
845
846  
847 </td>
848 <td>
849 <b></b>
850  
851 </td>
852 </tr>
853 </table>
854
855 <h4>
856 <a name="S0021"></a>SEND
857 MESSAGE upload_pic</h4>
858 NUMERIC TYPE (hex): 0021<p>
859 Same code as pic_req, but with an additional data section that
860 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
861 </p>
862 <table border="1" width="100%">
863 <tr>
864 <th width="10%">NAME</th>
865 <th width="10%">TYPE</th>
866 <th width="15%">DEFAULT</th>
867 <th>DESCRIPTION</th>
868 <th width="15%">DEC-GUARD</th>
869 </tr>
870 <tr>
871 <td>name</td>
872 <td>username</td>
873 <td> </td>
874 <td>
875
876  
877 </td>
878 <td>
879 <b></b>
880  
881 </td>
882 </tr>
883 <tr>
884 <td>data</td>
885 <td>DATA</td>
886 <td> </td>
887 <td>
888
889  
890 </td>
891 <td>
892 <b></b>
893  
894 </td>
895 </tr>
896 </table>
897
898 <h4>
899 <a name="S0023"></a>SEND
900 MESSAGE send_memo</h4>
901 NUMERIC TYPE (hex): 0023<p>
902 </p>
903 <table border="1" width="100%">
904 <tr>
905 <th width="10%">NAME</th>
906 <th width="10%">TYPE</th>
907 <th width="15%">DEFAULT</th>
908 <th>DESCRIPTION</th>
909 <th width="15%">DEC-GUARD</th>
910 </tr>
911 <tr>
912 <td>name</td>
913 <td>username</td>
914 <td> </td>
915 <td>
916
917  
918 </td>
919 <td>
920 <b></b>
921  
922 </td>
923 </tr>
924 <tr>
925 <td>msg</td>
926 <td>STRING</td>
927 <td> </td>
928 <td>
929
930  
931 </td>
932 <td>
933 <b></b>
934  
935 </td>
936 </tr>
937 </table>
938
939 <h4>
940 <a name="S0100"></a>SEND
941 MESSAGE gnotice</h4>
942 NUMERIC TYPE (hex): 0100<p>
943 <p>Send a global message. Maybe. Never tried, for obvious reasons :/. Results
944 in a <a href="#R0100">gnotice(0100)</a> sent to all users.</p>
945 </p>
946 <table border="1" width="100%">
947 <tr>
948 <th width="10%">NAME</th>
949 <th width="10%">TYPE</th>
950 <th width="15%">DEFAULT</th>
951 <th>DESCRIPTION</th>
952 <th width="15%">DEC-GUARD</th>
953 </tr>
954 <tr>
955 <td>notice</td>
956 <td>STRING</td>
957 <td> </td>
958 <td>
959
960  
961 </td>
962 <td>
963 <b></b>
964  
965 </td>
966 </tr>
967 </table>
968
969 <h4>
970 <a name="S0318"></a>SEND
971 MESSAGE list_rooms</h4>
972 NUMERIC TYPE (hex): 0318<p>
973 <p>List the rooms in a specific group/category. Results in a <a href="#R0318">upd_rooms(0318)</a> message.</p>
974 </p>
975 <table border="1" width="100%">
976 <tr>
977 <th width="10%">NAME</th>
978 <th width="10%">TYPE</th>
979 <th width="15%">DEFAULT</th>
980 <th>DESCRIPTION</th>
981 <th width="15%">DEC-GUARD</th>
982 </tr>
983 <tr>
984 <td>group</td>
985 <td>U8</td>
986 <td> </td>
987 <td>
988
989  
990 </td>
991 <td>
992 <b></b>
993  
994 </td>
995 </tr>
996 </table>
997
998 <h4>
999 <a name="S031a"></a>SEND
1000 MESSAGE new_room</h4>
1001 NUMERIC TYPE (hex): 031a<p>
1002 Create a new room. Not verified.
1003 </p>
1004 <table border="1" width="100%">
1005 <tr>
1006 <th width="10%">NAME</th>
1007 <th width="10%">TYPE</th>
1008 <th width="15%">DEFAULT</th>
1009 <th>DESCRIPTION</th>
1010 <th width="15%">DEC-GUARD</th>
1011 </tr>
1012 <tr>
1013 <td>name</td>
1014 <td>username</td>
1015 <td> </td>
1016 <td>
1017
1018  
1019 </td>
1020 <td>
1021 <b></b>
1022  
1023 </td>
1024 </tr>
1025 <tr>
1026 <td>i1</td>
1027 <td>U32</td>
1028 <td>0 </td>
1029 <td>
1030
1031  
1032 </td>
1033 <td>
1034 <b></b>
1035  
1036 </td>
1037 </tr>
1038 <tr>
1039 <td>b1</td>
1040 <td>U8</td>
1041 <td>0 </td>
1042 <td>
1043
1044  
1045 </td>
1046 <td>
1047 <b></b>
1048  
1049 </td>
1050 </tr>
1051 <tr>
1052 <td>b2</td>
1053 <td>U8</td>
1054 <td>255 </td>
1055 <td>
1056
1057  
1058 </td>
1059 <td>
1060 <b></b>
1061  
1062 </td>
1063 </tr>
1064 <tr>
1065 <td>b3</td>
1066 <td>U8</td>
1067 <td>255 </td>
1068 <td>
1069
1070  
1071 </td>
1072 <td>
1073 <b></b>
1074  
1075 </td>
1076 </tr>
1077 <tr>
1078 <td>group</td>
1079 <td>U8</td>
1080 <td>1 </td>
1081 <td>
1082
1083  
1084 </td>
1085 <td>
1086 <b></b>
1087  
1088 </td>
1089 </tr>
1090 <tr>
1091 <td>name</td>
1092 <td>STRING</td>
1093 <td> </td>
1094 <td>
1095
1096  
1097 </td>
1098 <td>
1099 <b></b>
1100  
1101 </td>
1102 </tr>
1103 <tr>
1104 <td>description</td>
1105 <td>STRING</td>
1106 <td> </td>
1107 <td>
1108
1109  
1110 </td>
1111 <td>
1112 <b></b>
1113  
1114 </td>
1115 </tr>
1116 <tr>
1117 <td>flags</td>
1118 <td>U8</td>
1119 <td> </td>
1120 <td>
1121 0x10 .. private room etc.. see code
1122
1123  
1124 </td>
1125 <td>
1126 <b></b>
1127  
1128 </td>
1129 </tr>
1130 </table>
1131
1132 <h4>
1133 <a name="S0413"></a>SEND
1134 MESSAGE req_game_record</h4>
1135 NUMERIC TYPE (hex): 0413<p>
1136 <p>Requests part of the users game record to be sent. Results in a <a href="#R0414">game_record(0414)</a> or maybe a timeout.</p>
1137 </p>
1138 <table border="1" width="100%">
1139 <tr>
1140 <th width="10%">NAME</th>
1141 <th width="10%">TYPE</th>
1142 <th width="15%">DEFAULT</th>
1143 <th>DESCRIPTION</th>
1144 <th width="15%">DEC-GUARD</th>
1145 </tr>
1146 <tr>
1147 <td>name</td>
1148 <td>username</td>
1149 <td> </td>
1150 <td>
1151
1152  
1153 </td>
1154 <td>
1155 <b></b>
1156  
1157 </td>
1158 </tr>
1159 <tr>
1160 <td>timestamp</td>
1161 <td>timestamp</td>
1162 <td> </td>
1163 <td>
1164 If zero, start at the newest games, else only send games
1165 before the given timestap.
1166
1167  
1168 </td>
1169 <td>
1170 <b></b>
1171  
1172 </td>
1173 </tr>
1174 </table>
1175
1176 <h4>
1177 <a name="S4300"></a>SEND
1178 MESSAGE join_room</h4>
1179 NUMERIC TYPE (hex): 4300<p>
1180 <p>Joins the given room. <a href="#R4300">join_room(4300)</a> messages for yourself
1181 and all users in that room, as well as the initial gamelist, are
1182 send if the room exists. If not, timeout...</p>
1183 </p>
1184 <table border="1" width="100%">
1185 <tr>
1186 <th width="10%">NAME</th>
1187 <th width="10%">TYPE</th>
1188 <th width="15%">DEFAULT</th>
1189 <th>DESCRIPTION</th>
1190 <th width="15%">DEC-GUARD</th>
1191 </tr>
1192 <tr>
1193 <td>channel</td>
1194 <td>U16</td>
1195 <td> </td>
1196 <td>
1197
1198  
1199 </td>
1200 <td>
1201 <b></b>
1202  
1203 </td>
1204 </tr>
1205 <tr>
1206 <td>user</td>
1207 <td>user</td>
1208 <td> </td>
1209 <td>
1210
1211  
1212 </td>
1213 <td>
1214 <b></b>
1215  
1216 </td>
1217 </tr>
1218 </table>
1219
1220 <h4>
1221 <a name="S4301"></a>SEND
1222 MESSAGE msg_room</h4>
1223 NUMERIC TYPE (hex): 4301<p>
1224 Send a message to the room.
1225 </p>
1226 <table border="1" width="100%">
1227 <tr>
1228 <th width="10%">NAME</th>
1229 <th width="10%">TYPE</th>
1230 <th width="15%">DEFAULT</th>
1231 <th>DESCRIPTION</th>
1232 <th width="15%">DEC-GUARD</th>
1233 </tr>
1234 <tr>
1235 <td>channel</td>
1236 <td>U16</td>
1237 <td> </td>
1238 <td>
1239
1240  
1241 </td>
1242 <td>
1243 <b></b>
1244  
1245 </td>
1246 </tr>
1247 <tr>
1248 <td>name</td>
1249 <td>username</td>
1250 <td> </td>
1251 <td>
1252 Must be the login-name of the user.
1253
1254  
1255 </td>
1256 <td>
1257 <b></b>
1258  
1259 </td>
1260 </tr>
1261 <tr>
1262 <td>message</td>
1263 <td>STRING</td>
1264 <td> </td>
1265 <td>
1266
1267  
1268 </td>
1269 <td>
1270 <b></b>
1271  
1272 </td>
1273 </tr>
1274 </table>
1275
1276 <h4>
1277 <a name="S4302"></a>SEND
1278 MESSAGE part_room</h4>
1279 NUMERIC TYPE (hex): 4302<p>
1280 Remove yourself (or maybe others as admin) from a room.
1281 </p>
1282 <table border="1" width="100%">
1283 <tr>
1284 <th width="10%">NAME</th>
1285 <th width="10%">TYPE</th>
1286 <th width="15%">DEFAULT</th>
1287 <th>DESCRIPTION</th>
1288 <th width="15%">DEC-GUARD</th>
1289 </tr>
1290 <tr>
1291 <td>channel</td>
1292 <td>U16</td>
1293 <td> </td>
1294 <td>
1295
1296  
1297 </td>
1298 <td>
1299 <b></b>
1300  
1301 </td>
1302 </tr>
1303 <tr>
1304 <td>name</td>
1305 <td>username</td>
1306 <td> </td>
1307 <td>
1308
1309  
1310 </td>
1311 <td>
1312 <b></b>
1313  
1314 </td>
1315 </tr>
1316 </table>
1317
1318 <h4>
1319 <a name="S4305"></a>SEND
1320 MESSAGE new_game</h4>
1321 NUMERIC TYPE (hex): 4305<p>
1322 Unclear. Start a new game.
1323 </p>
1324 <table border="1" width="100%">
1325 <tr>
1326 <th width="10%">NAME</th>
1327 <th width="10%">TYPE</th>
1328 <th width="15%">DEFAULT</th>
1329 <th>DESCRIPTION</th>
1330 <th width="15%">DEC-GUARD</th>
1331 </tr>
1332 <tr>
1333 <td>channel</td>
1334 <td>U16</td>
1335 <td> </td>
1336 <td>
1337
1338  
1339 </td>
1340 <td>
1341 <b></b>
1342  
1343 </td>
1344 </tr>
1345 <tr>
1346 <td>id</td>
1347 <td>U16</td>
1348 <td> </td>
1349 <td>
1350
1351  
1352 </td>
1353 <td>
1354 <b></b>
1355  
1356 </td>
1357 </tr>
1358 <tr>
1359 <td>gametype</td>
1360 <td>U32</td>
1361 <td> </td>
1362 <td>
1363
1364  
1365 </td>
1366 <td>
1367 <b></b>
1368  
1369 </td>
1370 </tr>
1371 <tr>
1372 <td>rules</td>
1373 <td>rules</td>
1374 <td> </td>
1375 <td>
1376
1377  
1378 </td>
1379 <td>
1380 <b></b>
1381  
1382 </td>
1383 </tr>
1384 <tr>
1385 <td>notes</td>
1386 <td>STRING</td>
1387 <td> </td>
1388 <td>
1389
1390  
1391 </td>
1392 <td>
1393 <b></b>
1394  
1395 </td>
1396 </tr>
1397 </table>
1398
1399 <h4>
1400 <a name="S430b"></a>SEND
1401 MESSAGE req_games</h4>
1402 NUMERIC TYPE (hex): 430b<p>
1403 Request to update room game list (send this once per minute to get
1404 updated). Results in upd_games messages.
1405 </p>
1406 <table border="1" width="100%">
1407 <tr>
1408 <th width="10%">NAME</th>
1409 <th width="10%">TYPE</th>
1410 <th width="15%">DEFAULT</th>
1411 <th>DESCRIPTION</th>
1412 <th width="15%">DEC-GUARD</th>
1413 </tr>
1414 <tr>
1415 <td>channel</td>
1416 <td>U16</td>
1417 <td> </td>
1418 <td>
1419
1420  
1421 </td>
1422 <td>
1423 <b></b>
1424  
1425 </td>
1426 </tr>
1427 </table>
1428
1429 <h4>
1430 <a name="S4319"></a>SEND
1431 MESSAGE req_desc</h4>
1432 NUMERIC TYPE (hex): 4319<p>
1433 Request room description.
1434 </p>
1435 <table border="1" width="100%">
1436 <tr>
1437 <th width="10%">NAME</th>
1438 <th width="10%">TYPE</th>
1439 <th width="15%">DEFAULT</th>
1440 <th>DESCRIPTION</th>
1441 <th width="15%">DEC-GUARD</th>
1442 </tr>
1443 <tr>
1444 <td>channel</td>
1445 <td>U16</td>
1446 <td> </td>
1447 <td>
1448
1449  
1450 </td>
1451 <td>
1452 <b></b>
1453  
1454 </td>
1455 </tr>
1456 </table>
1457
1458 <h4>
1459 <a name="S4400"></a>SEND
1460 MESSAGE send_challenge</h4>
1461 NUMERIC TYPE (hex): 4400<p>
1462 Unclear.
1463 </p>
1464 <table border="1" width="100%">
1465 <tr>
1466 <th width="10%">NAME</th>
1467 <th width="10%">TYPE</th>
1468 <th width="15%">DEFAULT</th>
1469 <th>DESCRIPTION</th>
1470 <th width="15%">DEC-GUARD</th>
1471 </tr>
1472 <tr>
1473 <td>channel</td>
1474 <td>U16</td>
1475 <td> </td>
1476 <td>
1477
1478  
1479 </td>
1480 <td>
1481 <b></b>
1482  
1483 </td>
1484 </tr>
1485 <tr>
1486 <td>black</td>
1487 <td>username</td>
1488 <td> </td>
1489 <td>
1490
1491  
1492 </td>
1493 <td>
1494 <b></b>
1495  
1496 </td>
1497 </tr>
1498 <tr>
1499 <td>white</td>
1500 <td>username</td>
1501 <td> </td>
1502 <td>
1503 More following... TREE or challenge.
1504
1505  
1506 </td>
1507 <td>
1508 <b></b>
1509  
1510 </td>
1511 </tr>
1512 </table>
1513
1514 <h4>
1515 <a name="S4403"></a>SEND
1516 MESSAGE join_game</h4>
1517 NUMERIC TYPE (hex): 4403<p>
1518 Join a game. See join_room.
1519 </p>
1520 <table border="1" width="100%">
1521 <tr>
1522 <th width="10%">NAME</th>
1523 <th width="10%">TYPE</th>
1524 <th width="15%">DEFAULT</th>
1525 <th>DESCRIPTION</th>
1526 <th width="15%">DEC-GUARD</th>
1527 </tr>
1528 <tr>
1529 <td>channel</td>
1530 <td>U16</td>
1531 <td> </td>
1532 <td>
1533
1534  
1535 </td>
1536 <td>
1537 <b></b>
1538  
1539 </td>
1540 </tr>
1541 <tr>
1542 <td>user</td>
1543 <td>user</td>
1544 <td> </td>
1545 <td>
1546
1547  
1548 </td>
1549 <td>
1550 <b></b>
1551  
1552 </td>
1553 </tr>
1554 </table>
1555
1556 <h4>
1557 <a name="S4404"></a>SEND
1558 MESSAGE part_game</h4>
1559 NUMERIC TYPE (hex): 4404<p>
1560 Leave (or kick as admin?) a certain user from a game.
1561 </p>
1562 <table border="1" width="100%">
1563 <tr>
1564 <th width="10%">NAME</th>
1565 <th width="10%">TYPE</th>
1566 <th width="15%">DEFAULT</th>
1567 <th>DESCRIPTION</th>
1568 <th width="15%">DEC-GUARD</th>
1569 </tr>
1570 <tr>
1571 <td>channel</td>
1572 <td>U16</td>
1573 <td> </td>
1574 <td>
1575
1576  
1577 </td>
1578 <td>
1579 <b></b>
1580  
1581 </td>
1582 </tr>
1583 <tr>
1584 <td>name</td>
1585 <td>username</td>
1586 <td> </td>
1587 <td>
1588
1589  
1590 </td>
1591 <td>
1592 <b></b>
1593  
1594 </td>
1595 </tr>
1596 </table>
1597
1598 <h4>
1599 <a name="S4406"></a>SEND
1600 MESSAGE upd_tree</h4>
1601 NUMERIC TYPE (hex): 4406<p>
1602 Upload a partial game tree to the server. This is used to send moves
1603 and even in-game comments to the server. For the comments, the
1604 server prepends the username and rank.
1605
1606 </p>
1607 <table border="1" width="100%">
1608 <tr>
1609 <th width="10%">NAME</th>
1610 <th width="10%">TYPE</th>
1611 <th width="15%">DEFAULT</th>
1612 <th>DESCRIPTION</th>
1613 <th width="15%">DEC-GUARD</th>
1614 </tr>
1615 <tr>
1616 <td>channel</td>
1617 <td>U16</td>
1618 <td> </td>
1619 <td>
1620
1621  
1622 </td>
1623 <td>
1624 <b></b>
1625  
1626 </td>
1627 </tr>
1628 <tr>
1629 <td>tree</td>
1630 <td>TREE</td>
1631 <td> </td>
1632 <td>
1633
1634  
1635 </td>
1636 <td>
1637 <b></b>
1638  
1639 </td>
1640 </tr>
1641 </table>
1642
1643 <h4>
1644 <a name="S4408"></a>SEND
1645 MESSAGE get_tree</h4>
1646 NUMERIC TYPE (hex): 4408<p>
1647 Request the game tree starting at a given node. This is used
1648 when the server only sends a partial tree (with end code "more").
1649 </p>
1650 <table border="1" width="100%">
1651 <tr>
1652 <th width="10%">NAME</th>
1653 <th width="10%">TYPE</th>
1654 <th width="15%">DEFAULT</th>
1655 <th>DESCRIPTION</th>
1656 <th width="15%">DEC-GUARD</th>
1657 </tr>
1658 <tr>
1659 <td>channel</td>
1660 <td>U16</td>
1661 <td> </td>
1662 <td>
1663
1664  
1665 </td>
1666 <td>
1667 <b></b>
1668  
1669 </td>
1670 </tr>
1671 <tr>
1672 <td>node</td>
1673 <td>U32</td>
1674 <td> </td>
1675 <td>
1676
1677  
1678 </td>
1679 <td>
1680 <b></b>
1681  
1682 </td>
1683 </tr>
1684 </table>
1685
1686 <h4>
1687 <a name="S440c"></a>SEND
1688 MESSAGE claim_win</h4>
1689 NUMERIC TYPE (hex): 440c<p>
1690 Unclear.
1691 </p>
1692 <table border="1" width="100%">
1693 <tr>
1694 <th width="10%">NAME</th>
1695 <th width="10%">TYPE</th>
1696 <th width="15%">DEFAULT</th>
1697 <th>DESCRIPTION</th>
1698 <th width="15%">DEC-GUARD</th>
1699 </tr>
1700 <tr>
1701 <td>channel</td>
1702 <td>U16</td>
1703 <td> </td>
1704 <td>
1705
1706  
1707 </td>
1708 <td>
1709 <b></b>
1710  
1711 </td>
1712 </tr>
1713 <tr>
1714 <td>_byte</td>
1715 <td>U8 </td>
1716 <td> </td>
1717 <td>
1718 Player colour maybe? Unclear.
1719
1720  
1721 </td>
1722 <td>
1723 <b></b>
1724  
1725 </td>
1726 </tr>
1727 </table>
1728
1729 <h4>
1730 <a name="S440d"></a>SEND
1731 MESSAGE add_time</h4>
1732 NUMERIC TYPE (hex): 440d<p>
1733 Not checked.
1734
1735 </p>
1736 <table border="1" width="100%">
1737 <tr>
1738 <th width="10%">NAME</th>
1739 <th width="10%">TYPE</th>
1740 <th width="15%">DEFAULT</th>
1741 <th>DESCRIPTION</th>
1742 <th width="15%">DEC-GUARD</th>
1743 </tr>
1744 <tr>
1745 <td>channel</td>
1746 <td>U16</td>
1747 <td> </td>
1748 <td>
1749
1750  
1751 </td>
1752 <td>
1753 <b></b>
1754  
1755 </td>
1756 </tr>
1757 <tr>
1758 <td>time</td>
1759 <td>U32</td>
1760 <td> </td>
1761 <td>
1762
1763  
1764 </td>
1765 <td>
1766 <b></b>
1767  
1768 </td>
1769 </tr>
1770 <tr>
1771 <td>player</td>
1772 <td>U8</td>
1773 <td> </td>
1774 <td>
1775
1776  
1777 </td>
1778 <td>
1779 <b></b>
1780  
1781 </td>
1782 </tr>
1783 </table>
1784
1785 <h4>
1786 <a name="S440f"></a>SEND
1787 MESSAGE grant_undo</h4>
1788 NUMERIC TYPE (hex): 440f<p>
1789 Can be send after a req_undo message was received to grant the undo.
1790 </p>
1791 <table border="1" width="100%">
1792 <tr>
1793 <th width="10%">NAME</th>
1794 <th width="10%">TYPE</th>
1795 <th width="15%">DEFAULT</th>
1796 <th>DESCRIPTION</th>
1797 <th width="15%">DEC-GUARD</th>
1798 </tr>
1799 <tr>
1800 <td>channel</td>
1801 <td>U16</td>
1802 <td> </td>
1803 <td>
1804
1805  
1806 </td>
1807 <td>
1808 <b></b>
1809  
1810 </td>
1811 </tr>
1812 </table>
1813
1814 <h4>
1815 <a name="S4410"></a>SEND
1816 MESSAGE resign_game</h4>
1817 NUMERIC TYPE (hex): 4410<p>
1818 Resign the game.
1819 </p>
1820 <table border="1" width="100%">
1821 <tr>
1822 <th width="10%">NAME</th>
1823 <th width="10%">TYPE</th>
1824 <th width="15%">DEFAULT</th>
1825 <th>DESCRIPTION</th>
1826 <th width="15%">DEC-GUARD</th>
1827 </tr>
1828 <tr>
1829 <td>channel</td>
1830 <td>U16</td>
1831 <td> </td>
1832 <td>
1833
1834  
1835 </td>
1836 <td>
1837 <b></b>
1838  
1839 </td>
1840 </tr>
1841 <tr>
1842 <td>player</td>
1843 <td>U8</td>
1844 <td> </td>
1845 <td>
1846
1847  
1848 </td>
1849 <td>
1850 <b></b>
1851  
1852 </td>
1853 </tr>
1854 </table>
1855
1856 <h4>
1857 <a name="S441a"></a>SEND
1858 MESSAGE set_teacher</h4>
1859 NUMERIC TYPE (hex): 441a<p>
1860 Change the teacher to somebody else (or possibly yourself == take it).
1861 </p>
1862 <table border="1" width="100%">
1863 <tr>
1864 <th width="10%">NAME</th>
1865 <th width="10%">TYPE</th>
1866 <th width="15%">DEFAULT</th>
1867 <th>DESCRIPTION</th>
1868 <th width="15%">DEC-GUARD</th>
1869 </tr>
1870 <tr>
1871 <td>channel</td>
1872 <td>U16</td>
1873 <td> </td>
1874 <td>
1875
1876  
1877 </td>
1878 <td>
1879 <b></b>
1880  
1881 </td>
1882 </tr>
1883 <tr>
1884 <td>name</td>
1885 <td>username</td>
1886 <td> </td>
1887 <td>
1888
1889  
1890 </td>
1891 <td>
1892 <b></b>
1893  
1894 </td>
1895 </tr>
1896 </table>
1897
1898 <h4>
1899 <a name="S4422"></a>SEND
1900 MESSAGE add_user</h4>
1901 NUMERIC TYPE (hex): 4422<p>
1902 Unclear. Maybe allow users to talk? No idea, really.
1903
1904 </p>
1905 <table border="1" width="100%">
1906 <tr>
1907 <th width="10%">NAME</th>
1908 <th width="10%">TYPE</th>
1909 <th width="15%">DEFAULT</th>
1910 <th>DESCRIPTION</th>
1911 <th width="15%">DEC-GUARD</th>
1912 </tr>
1913 <tr>
1914 <td>channel</td>
1915 <td>U16</td>
1916 <td> </td>
1917 <td>
1918
1919  
1920 </td>
1921 <td>
1922 <b></b>
1923  
1924 </td>
1925 </tr>
1926 <tr>
1927 <td>othername</td>
1928 <td>username</td>
1929 <td> </td>
1930 <td>
1931
1932  
1933 </td>
1934 <td>
1935 <b></b>
1936  
1937 </td>
1938 </tr>
1939 <tr>
1940 <td>name</td>
1941 <td>username</td>
1942 <td> </td>
1943 <td>; # gives user access to the game (to what? ;)
1944
1945  
1946 </td>
1947 <td>
1948 <b></b>
1949  
1950 </td>
1951 </tr>
1952 </table>
1953
1954 <h4>
1955 <a name="S4423"></a>SEND
1956 MESSAGE set_privacy</h4>
1957 NUMERIC TYPE (hex): 4423<p>
1958 Probably sets the "quiet" flag. Not checked.
1959 </p>
1960 <table border="1" width="100%">
1961 <tr>
1962 <th width="10%">NAME</th>
1963 <th width="10%">TYPE</th>
1964 <th width="15%">DEFAULT</th>
1965 <th>DESCRIPTION</th>
1966 <th width="15%">DEC-GUARD</th>
1967 </tr>
1968 <tr>
1969 <td>channel</td>
1970 <td>U16</td>
1971 <td> </td>
1972 <td>
1973
1974  
1975 </td>
1976 <td>
1977 <b></b>
1978  
1979 </td>
1980 </tr>
1981 <tr>
1982 <td>private</td>
1983 <td>U8</td>
1984 <td> </td>
1985 <td>
1986
1987  
1988 </td>
1989 <td>
1990 <b></b>
1991  
1992 </td>
1993 </tr>
1994 </table>
1995
1996 <h4>
1997 <a name="S4429"></a>SEND
1998 MESSAGE reject_challenge</h4>
1999 NUMERIC TYPE (hex): 4429<p>
2000 Reject a challenge from a given user. Not checked.
2001
2002 </p>
2003 <table border="1" width="100%">
2004 <tr>
2005 <th width="10%">NAME</th>
2006 <th width="10%">TYPE</th>
2007 <th width="15%">DEFAULT</th>
2008 <th>DESCRIPTION</th>
2009 <th width="15%">DEC-GUARD</th>
2010 </tr>
2011 <tr>
2012 <td>channel</td>
2013 <td>U16</td>
2014 <td> </td>
2015 <td>
2016
2017  
2018 </td>
2019 <td>
2020 <b></b>
2021  
2022 </td>
2023 </tr>
2024 <tr>
2025 <td>name</td>
2026 <td>username</td>
2027 <td> </td>
2028 <td>
2029
2030  
2031 </td>
2032 <td>
2033 <b></b>
2034  
2035 </td>
2036 </tr>
2037 </table>
2038
2039 <h4>
2040 <a name="S4433"></a>SEND
2041 MESSAGE req_result</h4>
2042 NUMERIC TYPE (hex): 4433<p>
2043 I forgot.
2044
2045 </p>
2046 <table border="1" width="100%">
2047 <tr>
2048 <th width="10%">NAME</th>
2049 <th width="10%">TYPE</th>
2050 <th width="15%">DEFAULT</th>
2051 <th>DESCRIPTION</th>
2052 <th width="15%">DEC-GUARD</th>
2053 </tr>
2054 <tr>
2055 <td>channel</td>
2056 <td>U16</td>
2057 <td> </td>
2058 <td>
2059
2060  
2061 </td>
2062 <td>
2063 <b></b>
2064  
2065 </td>
2066 </tr>
2067 </table>
2068
2069 <h2>Structs mainly used in receive messages</h2>
2070
2071 <h4>STRUCTURE challenge_defaults</h4>
2072 <p>
2073 Send soon after log-in to set the defaults for game challenges.
2074 </p>
2075 <table border="1" width="100%">
2076 <tr>
2077 <th width="10%">NAME</th>
2078 <th width="10%">TYPE</th>
2079 <th width="15%">DEFAULT</th>
2080 <th>DESCRIPTION</th>
2081 <th width="15%">DEC-GUARD</th>
2082 </tr>
2083 <tr>
2084 <td>gametype</td>
2085 <td>U32</td>
2086 <td> </td>
2087 <td>
2088
2089  
2090 </td>
2091 <td>
2092 <b></b>
2093  
2094 </td>
2095 </tr>
2096 <tr>
2097 <td>size</td>
2098 <td>U32</td>
2099 <td> </td>
2100 <td>
2101
2102  
2103 </td>
2104 <td>
2105 <b></b>
2106  
2107 </td>
2108 </tr>
2109 <tr>
2110 <td>timesys</td>
2111 <td>U32</td>
2112 <td> </td>
2113 <td>
2114
2115  
2116 </td>
2117 <td>
2118 <b></b>
2119  
2120 </td>
2121 </tr>
2122 <tr>
2123 <td>time</td>
2124 <td>U32</td>
2125 <td> </td>
2126 <td>
2127
2128  
2129 </td>
2130 <td>
2131 <b></b>
2132  
2133 </td>
2134 </tr>
2135 <tr>
2136 <td>byo_time</td>
2137 <td>U32</td>
2138 <td> </td>
2139 <td>
2140
2141  
2142 </td>
2143 <td>
2144 <b></b>
2145  
2146 </td>
2147 </tr>
2148 <tr>
2149 <td>byo_periods</td>
2150 <td>U32</td>
2151 <td> </td>
2152 <td>
2153
2154  
2155 </td>
2156 <td>
2157 <b></b>
2158  
2159 </td>
2160 </tr>
2161 <tr>
2162 <td>can_time</td>
2163 <td>U32</td>
2164 <td> </td>
2165 <td>
2166
2167  
2168 </td>
2169 <td>
2170 <b></b>
2171  
2172 </td>
2173 </tr>
2174 <tr>
2175 <td>can_stones</td>
2176 <td>U32</td>
2177 <td> </td>
2178 <td>
2179
2180  
2181 </td>
2182 <td>
2183 <b></b>
2184  
2185 </td>
2186 </tr>
2187 </table>
2188
2189 <h4>STRUCTURE challenge</h4>
2190 CLASS: KGS::Challenge<br />
2191 <p>
2192 A challenge.
2193
2194 </p>
2195 <table border="1" width="100%">
2196 <tr>
2197 <th width="10%">NAME</th>
2198 <th width="10%">TYPE</th>
2199 <th width="15%">DEFAULT</th>
2200 <th>DESCRIPTION</th>
2201 <th width="15%">DEC-GUARD</th>
2202 </tr>
2203 <tr>
2204 <td>user1</td>
2205 <td>user</td>
2206 <td> </td>
2207 <td>
2208
2209  
2210 </td>
2211 <td>
2212 <b></b>
2213  
2214 </td>
2215 </tr>
2216 <tr>
2217 <td>user2</td>
2218 <td>user</td>
2219 <td> </td>
2220 <td>
2221
2222  
2223 </td>
2224 <td>
2225 <b></b>
2226  
2227 </td>
2228 </tr>
2229 <tr>
2230 <td>gametype</td>
2231 <td>U32</td>
2232 <td> </td>
2233 <td>
2234
2235  
2236 </td>
2237 <td>
2238 <b></b>
2239  
2240 </td>
2241 </tr>
2242 <tr>
2243 <td>rules</td>
2244 <td>rules</td>
2245 <td> </td>
2246 <td>
2247 Maybe the rules" are in TREE format. I forgot.
2248
2249  
2250 </td>
2251 <td>
2252 <b></b>
2253  
2254 </td>
2255 </tr>
2256 </table>
2257
2258 <h4>STRUCTURE game</h4>
2259 CLASS: KGS::Game<br />
2260 <p>
2261 Basic information about a game. Used in rooms for the gamelist and
2262 in games to detect when a game is saved, changed type (e.g. R =&gt; D)
2263 etc.
2264
2265 </p>
2266 <table border="1" width="100%">
2267 <tr>
2268 <th width="10%">NAME</th>
2269 <th width="10%">TYPE</th>
2270 <th width="15%">DEFAULT</th>
2271 <th>DESCRIPTION</th>
2272 <th width="15%">DEC-GUARD</th>
2273 </tr>
2274 <tr>
2275 <td>channel</td>
2276 <td>U16</td>
2277 <td> </td>
2278 <td>
2279
2280  
2281 </td>
2282 <td>
2283 <b></b>
2284  
2285 </td>
2286 </tr>
2287 <tr>
2288 <td>type</td>
2289 <td>U8</td>
2290 <td> </td>
2291 <td>
2292
2293  
2294 </td>
2295 <td>
2296 <b></b>
2297  
2298 </td>
2299 </tr>
2300 <tr>
2301 <td>user1</td>
2302 <td>user</td>
2303 <td> </td>
2304 <td>
2305 White
2306
2307  
2308 </td>
2309 <td>
2310 <b></b>
2311  
2312 </td>
2313 </tr>
2314 <tr>
2315 <td>user2</td>
2316 <td>user</td>
2317 <td> </td>
2318 <td>
2319 Black
2320
2321  
2322 </td>
2323 <td>
2324 <b></b>
2325  
2326 </td>
2327 </tr>
2328 <tr>
2329 <td>user3</td>
2330 <td>user</td>
2331 <td> </td>
2332 <td>
2333 Owner
2334
2335  
2336 </td>
2337 <td>
2338 <b></b>
2339  
2340 </td>
2341 </tr>
2342 <tr>
2343 <td>size</td>
2344 <td>U8</td>
2345 <td> </td>
2346 <td>
2347
2348  
2349 </td>
2350 <td>
2351 <b></b>
2352  
2353 </td>
2354 </tr>
2355 <tr>
2356 <td>handicap</td>
2357 <td>I8</td>
2358 <td> </td>
2359 <td>
2360 &lt; 0 not fully setup
2361
2362  
2363 </td>
2364 <td>
2365 <b></b>
2366  
2367 </td>
2368 </tr>
2369 <tr>
2370 <td>komi</td>
2371 <td>komi16</td>
2372 <td> </td>
2373 <td>
2374
2375  
2376 </td>
2377 <td>
2378 <b></b>
2379  
2380 </td>
2381 </tr>
2382 <tr>
2383 <td>moves</td>
2384 <td>I16</td>
2385 <td> </td>
2386 <td>
2387 This field reflects either the movenum or the score, sorry, not even guards help, as
2388 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
2389 score (NOT score16!) (arg²).
2390
2391  
2392 </td>
2393 <td>
2394 <b></b>
2395  
2396 </td>
2397 </tr>
2398 <tr>
2399 <td>flags</td>
2400 <td>U16</td>
2401 <td> </td>
2402 <td>
2403
2404  
2405 </td>
2406 <td>
2407 <b></b>
2408  
2409 </td>
2410 </tr>
2411 <tr>
2412 <td>observers</td>
2413 <td>U32</td>
2414 <td> </td>
2415 <td>
2416
2417  
2418 </td>
2419 <td>
2420 <b></b>
2421  
2422 </td>
2423 </tr>
2424 <tr>
2425 <td>saved</td>
2426 <td>flag</td>
2427 <td> </td>
2428 <td>
2429
2430  
2431 </td>
2432 <td>
2433 <b></b>
2434  
2435 </td>
2436 </tr>
2437 <tr>
2438 <td>notes</td>
2439 <td>STRING</td>
2440 <td> </td>
2441 <td>
2442
2443  
2444 </td>
2445 <td>
2446 <b>handicap</b> &lt; 0
2447  
2448 </td>
2449 </tr>
2450 </table>
2451
2452 <h4>STRUCTURE room_obs</h4>
2453 <p>
2454 Obsolete.
2455
2456 </p>
2457 <table border="1" width="100%">
2458 <tr>
2459 <th width="10%">NAME</th>
2460 <th width="10%">TYPE</th>
2461 <th width="15%">DEFAULT</th>
2462 <th>DESCRIPTION</th>
2463 <th width="15%">DEC-GUARD</th>
2464 </tr>
2465 <tr>
2466 <td>name</td>
2467 <td>roomname</td>
2468 <td> </td>
2469 <td>
2470
2471  
2472 </td>
2473 <td>
2474 <b></b>
2475  
2476 </td>
2477 </tr>
2478 <tr>
2479 <td>channel</td>
2480 <td>U16</td>
2481 <td> </td>
2482 <td>
2483
2484  
2485 </td>
2486 <td>
2487 <b></b>
2488  
2489 </td>
2490 </tr>
2491 <tr>
2492 <td>flags</td>
2493 <td>U32</td>
2494 <td> </td>
2495 <td>
2496
2497  
2498 </td>
2499 <td>
2500 <b></b>
2501  
2502 </td>
2503 </tr>
2504 <tr>
2505 <td>users</td>
2506 <td>U32</td>
2507 <td> </td>
2508 <td>
2509
2510  
2511 </td>
2512 <td>
2513 <b></b>
2514  
2515 </td>
2516 </tr>
2517 </table>
2518
2519 <h4>STRUCTURE room</h4>
2520 CLASS: KGS::Room<br />
2521 <p>
2522 </p>
2523 <table border="1" width="100%">
2524 <tr>
2525 <th width="10%">NAME</th>
2526 <th width="10%">TYPE</th>
2527 <th width="15%">DEFAULT</th>
2528 <th>DESCRIPTION</th>
2529 <th width="15%">DEC-GUARD</th>
2530 </tr>
2531 <tr>
2532 <td>channel</td>
2533 <td>U16</td>
2534 <td> </td>
2535 <td>
2536
2537  
2538 </td>
2539 <td>
2540 <b></b>
2541  
2542 </td>
2543 </tr>
2544 <tr>
2545 <td>flags</td>
2546 <td>U8</td>
2547 <td> </td>
2548 <td>
2549
2550  
2551 </td>
2552 <td>
2553 <b></b>
2554  
2555 </td>
2556 </tr>
2557 <tr>
2558 <td>group</td>
2559 <td>U8</td>
2560 <td> </td>
2561 <td>
2562
2563  
2564 </td>
2565 <td>
2566 <b></b>
2567  
2568 </td>
2569 </tr>
2570 <tr>
2571 <td>users</td>
2572 <td>U16</td>
2573 <td> </td>
2574 <td>
2575
2576  
2577 </td>
2578 <td>
2579 <b></b>
2580  
2581 </td>
2582 </tr>
2583 <tr>
2584 <td>games</td>
2585 <td>U16</td>
2586 <td> </td>
2587 <td>
2588
2589  
2590 </td>
2591 <td>
2592 <b></b>
2593  
2594 </td>
2595 </tr>
2596 <tr>
2597 <td>name</td>
2598 <td>STRING</td>
2599 <td> </td>
2600 <td>
2601
2602  
2603 </td>
2604 <td>
2605 <b></b>
2606  
2607 </td>
2608 </tr>
2609 </table>
2610
2611 <h4>STRUCTURE scorevalues</h4>
2612 CLASS: KGS::Score<br />
2613 <p>
2614 </p>
2615 <table border="1" width="100%">
2616 <tr>
2617 <th width="10%">NAME</th>
2618 <th width="10%">TYPE</th>
2619 <th width="15%">DEFAULT</th>
2620 <th>DESCRIPTION</th>
2621 <th width="15%">DEC-GUARD</th>
2622 </tr>
2623 <tr>
2624 <td>score</td>
2625 <td>score32</td>
2626 <td> </td>
2627 <td>
2628
2629  
2630 </td>
2631 <td>
2632 <b></b>
2633  
2634 </td>
2635 </tr>
2636 <tr>
2637 <td>territory</td>
2638 <td>U32</td>
2639 <td> </td>
2640 <td>
2641
2642  
2643 </td>
2644 <td>
2645 <b></b>
2646  
2647 </td>
2648 </tr>
2649 <tr>
2650 <td>captures</td>
2651 <td>U32</td>
2652 <td> </td>
2653 <td>
2654
2655  
2656 </td>
2657 <td>
2658 <b></b>
2659  
2660 </td>
2661 </tr>
2662 <tr>
2663 <td>i3</td>
2664 <td>U32</td>
2665 <td> </td>
2666 <td>
2667
2668  
2669 </td>
2670 <td>
2671 <b></b>
2672  
2673 </td>
2674 </tr>
2675 <tr>
2676 <td>f2</td>
2677 <td>U32</td>
2678 <td> </td>
2679 <td>
2680
2681  
2682 </td>
2683 <td>
2684 <b></b>
2685  
2686 </td>
2687 </tr>
2688 <tr>
2689 <td>komi</td>
2690 <td>komi324</td>
2691 <td> </td>
2692 <td>
2693
2694  
2695 </td>
2696 <td>
2697 <b></b>
2698  
2699 </td>
2700 </tr>
2701 <tr>
2702 <td>i4</td>
2703 <td>U32</td>
2704 <td> </td>
2705 <td>
2706 Apparently the i3, f2, i4 are zero.
2707
2708  
2709 </td>
2710 <td>
2711 <b></b>
2712  
2713 </td>
2714 </tr>
2715 </table>
2716
2717 <h4>STRUCTURE game_record</h4>
2718 CLASS: KGS::GameRecord<br />
2719 <p>
2720 <p>A single game record entry, as seen in <a href="#R0008">userinfo(0008)</a>.</p>
2721 </p>
2722 <table border="1" width="100%">
2723 <tr>
2724 <th width="10%">NAME</th>
2725 <th width="10%">TYPE</th>
2726 <th width="15%">DEFAULT</th>
2727 <th>DESCRIPTION</th>
2728 <th width="15%">DEC-GUARD</th>
2729 </tr>
2730 <tr>
2731 <td>timestamp</td>
2732 <td>timestamp</td>
2733 <td> </td>
2734 <td>
2735 Time this game was played.
2736
2737  
2738 </td>
2739 <td>
2740 <b></b>
2741  
2742 </td>
2743 </tr>
2744 <tr>
2745 <td>flags</td>
2746 <td>U8</td>
2747 <td> </td>
2748 <td>
2749 High four bits are handicap, low four bits are gametype (encoded strangely? unclear).
2750
2751  
2752 </td>
2753 <td>
2754 <b></b>
2755  
2756 </td>
2757 </tr>
2758 <tr>
2759 <td>user1</td>
2760 <td>user</td>
2761 <td> </td>
2762 <td>
2763 White, flags contain low 8 bits of revision (bits 16-23).
2764
2765  
2766 </td>
2767 <td>
2768 <b></b>
2769  
2770 </td>
2771 </tr>
2772 <tr>
2773 <td>user2</td>
2774 <td>user</td>
2775 <td> </td>
2776 <td>
2777 Black, flags contain high 8 bits of revision (bits 16-23).
2778
2779  
2780 </td>
2781 <td>
2782 <b></b>
2783  
2784 </td>
2785 </tr>
2786 <tr>
2787 <td>user3</td>
2788 <td>user</td>
2789 <td> </td>
2790 <td>
2791 Owner (or empty)
2792
2793  
2794 </td>
2795 <td>
2796 <b></b>
2797  
2798 </td>
2799 </tr>
2800 <tr>
2801 <td>komi</td>
2802 <td>komi16</td>
2803 <td> </td>
2804 <td>
2805
2806  
2807 </td>
2808 <td>
2809 <b></b>
2810  
2811 </td>
2812 </tr>
2813 <tr>
2814 <td>score</td>
2815 <td>score16</td>
2816 <td> </td>
2817 <td>
2818
2819  
2820 </td>
2821 <td>
2822 <b></b>
2823  
2824 </td>
2825 </tr>
2826 <tr>
2827 <td>status</td>
2828 <td>U8</td>
2829 <td> </td>
2830 <td>
2831 0x80 inprogress
2832
2833  
2834 </td>
2835 <td>
2836 <b></b>
2837  
2838 </td>
2839 </tr>
2840 </table>
2841
2842 <h2>Receive messages</h2>
2843
2844 <h4>
2845 <a name="R0001"></a>RECV
2846 MESSAGE login</h4>
2847 NUMERIC TYPE (hex): 0001
2848 (possibly in response to
2849 <a href="#S0000">login(0000)</a>
2850 )
2851 <p>
2852 </p>
2853 <table border="1" width="100%">
2854 <tr>
2855 <th width="10%">NAME</th>
2856 <th width="10%">TYPE</th>
2857 <th width="15%">DEFAULT</th>
2858 <th>DESCRIPTION</th>
2859 <th width="15%">DEC-GUARD</th>
2860 </tr>
2861 <tr>
2862 <td>result</td>
2863 <td>CONSTANT</td>
2864 <td>"login ok" </td>
2865 <td>
2866
2867  
2868 </td>
2869 <td>
2870 <b></b>
2871  
2872 </td>
2873 </tr>
2874 <tr>
2875 <td>success</td>
2876 <td>CONSTANT</td>
2877 <td>1 </td>
2878 <td>
2879
2880  
2881 </td>
2882 <td>
2883 <b></b>
2884  
2885 </td>
2886 </tr>
2887 </table>
2888
2889 <h4>
2890 <a name="R0002"></a>RECV
2891 MESSAGE login</h4>
2892 NUMERIC TYPE (hex): 0002
2893 (possibly in response to
2894 <a href="#S0000">login(0000)</a>
2895 )
2896 <p>
2897 </p>
2898 <table border="1" width="100%">
2899 <tr>
2900 <th width="10%">NAME</th>
2901 <th width="10%">TYPE</th>
2902 <th width="15%">DEFAULT</th>
2903 <th>DESCRIPTION</th>
2904 <th width="15%">DEC-GUARD</th>
2905 </tr>
2906 <tr>
2907 <td>result</td>
2908 <td>CONSTANT</td>
2909 <td>"guest login ok" </td>
2910 <td>
2911
2912  
2913 </td>
2914 <td>
2915 <b></b>
2916  
2917 </td>
2918 </tr>
2919 <tr>
2920 <td>success</td>
2921 <td>CONSTANT</td>
2922 <td>1 </td>
2923 <td>
2924
2925  
2926 </td>
2927 <td>
2928 <b></b>
2929  
2930 </td>
2931 </tr>
2932 </table>
2933
2934 <h4>
2935 <a name="R0003"></a>RECV
2936 MESSAGE login</h4>
2937 NUMERIC TYPE (hex): 0003
2938 (possibly in response to
2939 <a href="#S0000">login(0000)</a>
2940 )
2941 <p>
2942 </p>
2943 <table border="1" width="100%">
2944 <tr>
2945 <th width="10%">NAME</th>
2946 <th width="10%">TYPE</th>
2947 <th width="15%">DEFAULT</th>
2948 <th>DESCRIPTION</th>
2949 <th width="15%">DEC-GUARD</th>
2950 </tr>
2951 <tr>
2952 <td>result</td>
2953 <td>CONSTANT</td>
2954 <td>"login error 3" </td>
2955 <td>
2956 ** maybe more following? **
2957
2958  
2959 </td>
2960 <td>
2961 <b></b>
2962  
2963 </td>
2964 </tr>
2965 </table>
2966
2967 <h4>
2968 <a name="R0004"></a>RECV
2969 MESSAGE login</h4>
2970 NUMERIC TYPE (hex): 0004
2971 (possibly in response to
2972 <a href="#S0000">login(0000)</a>
2973 )
2974 <p>
2975 </p>
2976 <table border="1" width="100%">
2977 <tr>
2978 <th width="10%">NAME</th>
2979 <th width="10%">TYPE</th>
2980 <th width="15%">DEFAULT</th>
2981 <th>DESCRIPTION</th>
2982 <th width="15%">DEC-GUARD</th>
2983 </tr>
2984 <tr>
2985 <td>result</td>
2986 <td>CONSTANT</td>
2987 <td>"wrong password" </td>
2988 <td>
2989 ** maybe more following? **
2990
2991  
2992 </td>
2993 <td>
2994 <b></b>
2995  
2996 </td>
2997 </tr>
2998 </table>
2999
3000 <h4>
3001 <a name="R0005"></a>RECV
3002 MESSAGE login</h4>
3003 NUMERIC TYPE (hex): 0005
3004 (possibly in response to
3005 <a href="#S0000">login(0000)</a>
3006 )
3007 <p>
3008 </p>
3009 <table border="1" width="100%">
3010 <tr>
3011 <th width="10%">NAME</th>
3012 <th width="10%">TYPE</th>
3013 <th width="15%">DEFAULT</th>
3014 <th>DESCRIPTION</th>
3015 <th width="15%">DEC-GUARD</th>
3016 </tr>
3017 <tr>
3018 <td>result</td>
3019 <td>CONSTANT</td>
3020 <td>"user unknown" </td>
3021 <td>
3022 ** maybe more following? **
3023
3024  
3025 </td>
3026 <td>
3027 <b></b>
3028  
3029 </td>
3030 </tr>
3031 </table>
3032
3033 <h4>
3034 <a name="R0006"></a>RECV
3035 MESSAGE login</h4>
3036 NUMERIC TYPE (hex): 0006
3037 (possibly in response to
3038 <a href="#S0000">login(0000)</a>
3039 )
3040 <p>
3041 </p>
3042 <table border="1" width="100%">
3043 <tr>
3044 <th width="10%">NAME</th>
3045 <th width="10%">TYPE</th>
3046 <th width="15%">DEFAULT</th>
3047 <th>DESCRIPTION</th>
3048 <th width="15%">DEC-GUARD</th>
3049 </tr>
3050 <tr>
3051 <td>result</td>
3052 <td>CONSTANT</td>
3053 <td>"user exists" </td>
3054 <td>
3055 ** maybe more following? **
3056
3057  
3058 </td>
3059 <td>
3060 <b></b>
3061  
3062 </td>
3063 </tr>
3064 </table>
3065
3066 <h4>
3067 <a name="R0008"></a>RECV
3068 MESSAGE userinfo</h4>
3069 NUMERIC TYPE (hex): 0008
3070 (possibly in response to
3071 <a href="#S0007">req_userinfo(0007)</a>
3072 )
3073 <p>
3074 User info.
3075 </p>
3076 <table border="1" width="100%">
3077 <tr>
3078 <th width="10%">NAME</th>
3079 <th width="10%">TYPE</th>
3080 <th width="15%">DEFAULT</th>
3081 <th>DESCRIPTION</th>
3082 <th width="15%">DEC-GUARD</th>
3083 </tr>
3084 <tr>
3085 <td>user</td>
3086 <td>user</td>
3087 <td> </td>
3088 <td>
3089
3090  
3091 </td>
3092 <td>
3093 <b></b>
3094  
3095 </td>
3096 </tr>
3097 <tr>
3098 <td>_unused</td>
3099 <td>U64</td>
3100 <td> </td>
3101 <td>
3102
3103  
3104 </td>
3105 <td>
3106 <b></b>
3107  
3108 </td>
3109 </tr>
3110 <tr>
3111 <td>realname</td>
3112 <td>realname</td>
3113 <td> </td>
3114 <td>
3115
3116  
3117 </td>
3118 <td>
3119 <b></b>
3120  
3121 </td>
3122 </tr>
3123 <tr>
3124 <td>email</td>
3125 <td>email</td>
3126 <td> </td>
3127 <td>
3128
3129  
3130 </td>
3131 <td>
3132 <b></b>
3133  
3134 </td>
3135 </tr>
3136 <tr>
3137 <td>info</td>
3138 <td>userinfo</td>
3139 <td> </td>
3140 <td>
3141
3142  
3143 </td>
3144 <td>
3145 <b></b>
3146  
3147 </td>
3148 </tr>
3149 <tr>
3150 <td>homepage</td>
3151 <td>url</td>
3152 <td> </td>
3153 <td>
3154
3155  
3156 </td>
3157 <td>
3158 <b></b>
3159  
3160 </td>
3161 </tr>
3162 <tr>
3163 <td>regdate</td>
3164 <td>timestamp</td>
3165 <td> </td>
3166 <td>
3167 When the user registered (0 == never registered).
3168
3169  
3170 </td>
3171 <td>
3172 <b></b>
3173  
3174 </td>
3175 </tr>
3176 <tr>
3177 <td>lastlogin</td>
3178 <td>timestamp</td>
3179 <td> </td>
3180 <td>
3181 When the user logged in for the last time.
3182
3183  
3184 </td>
3185 <td>
3186 <b></b>
3187  
3188 </td>
3189 </tr>
3190 </table>
3191
3192 <h4>
3193 <a name="R0018"></a>RECV
3194 MESSAGE login</h4>
3195 NUMERIC TYPE (hex): 0018
3196 (possibly in response to
3197 <a href="#S0000">login(0000)</a>
3198 )
3199 <p>
3200 </p>
3201 <table border="1" width="100%">
3202 <tr>
3203 <th width="10%">NAME</th>
3204 <th width="10%">TYPE</th>
3205 <th width="15%">DEFAULT</th>
3206 <th>DESCRIPTION</th>
3207 <th width="15%">DEC-GUARD</th>
3208 </tr>
3209 <tr>
3210 <td>result</td>
3211 <td>CONSTANT</td>
3212 <td>"login error 18" </td>
3213 <td>
3214 ** maybe more following? **
3215
3216  
3217 </td>
3218 <td>
3219 <b></b>
3220  
3221 </td>
3222 </tr>
3223 </table>
3224
3225 <h4>
3226 <a name="R0022"></a>RECV
3227 MESSAGE login</h4>
3228 NUMERIC TYPE (hex): 0022
3229 (possibly in response to
3230 <a href="#S0000">login(0000)</a>
3231 )
3232 <p>
3233 I was blocked sooo many times for developing this client that it was
3234 easy to figure out. The KGS admins sure need no extra nazi training
3235 :(
3236 </p>
3237 <table border="1" width="100%">
3238 <tr>
3239 <th width="10%">NAME</th>
3240 <th width="10%">TYPE</th>
3241 <th width="15%">DEFAULT</th>
3242 <th>DESCRIPTION</th>
3243 <th width="15%">DEC-GUARD</th>
3244 </tr>
3245 <tr>
3246 <td>reason</td>
3247 <td>STRING</td>
3248 <td> </td>
3249 <td>
3250
3251  
3252 </td>
3253 <td>
3254 <b></b>
3255  
3256 </td>
3257 </tr>
3258 <tr>
3259 <td>result</td>
3260 <td>CONSTANT</td>
3261 <td>"user or ip blocked" </td>
3262 <td>
3263
3264  
3265 </td>
3266 <td>
3267 <b></b>
3268  
3269 </td>
3270 </tr>
3271 </table>
3272
3273 <h4>
3274 <a name="R0013"></a>RECV
3275 MESSAGE msg_chat</h4>
3276 NUMERIC TYPE (hex): 0013<p>
3277 </p>
3278 <table border="1" width="100%">
3279 <tr>
3280 <th width="10%">NAME</th>
3281 <th width="10%">TYPE</th>
3282 <th width="15%">DEFAULT</th>
3283 <th>DESCRIPTION</th>
3284 <th width="15%">DEC-GUARD</th>
3285 </tr>
3286 <tr>
3287 <td>user1</td>
3288 <td>username</td>
3289 <td> </td>
3290 <td>
3291
3292  
3293 </td>
3294 <td>
3295 <b></b>
3296  
3297 </td>
3298 </tr>
3299 <tr>
3300 <td>user2</td>
3301 <td>username</td>
3302 <td> </td>
3303 <td>
3304
3305  
3306 </td>
3307 <td>
3308 <b></b>
3309  
3310 </td>
3311 </tr>
3312 <tr>
3313 <td>message</td>
3314 <td>STRING</td>
3315 <td> </td>
3316 <td>
3317
3318  
3319 </td>
3320 <td>
3321 <b></b>
3322  
3323 </td>
3324 </tr>
3325 </table>
3326
3327 <h4>
3328 <a name="R0015"></a>RECV
3329 MESSAGE stats</h4>
3330 NUMERIC TYPE (hex): 0015
3331 (possibly in response to
3332 <a href="#S0014">req_stats(0014)</a>
3333 )
3334 <p>
3335 </p>
3336 <table border="1" width="100%">
3337 <tr>
3338 <th width="10%">NAME</th>
3339 <th width="10%">TYPE</th>
3340 <th width="15%">DEFAULT</th>
3341 <th>DESCRIPTION</th>
3342 <th width="15%">DEC-GUARD</th>
3343 </tr>
3344 <tr>
3345 <td>ver_major</td>
3346 <td>U16</td>
3347 <td> </td>
3348 <td>
3349
3350  
3351 </td>
3352 <td>
3353 <b></b>
3354  
3355 </td>
3356 </tr>
3357 <tr>
3358 <td>ver_minor</td>
3359 <td>U16</td>
3360 <td> </td>
3361 <td>
3362
3363  
3364 </td>
3365 <td>
3366 <b></b>
3367  
3368 </td>
3369 </tr>
3370 <tr>
3371 <td>ver_micro</td>
3372 <td>U16</td>
3373 <td> </td>
3374 <td>
3375
3376  
3377 </td>
3378 <td>
3379 <b></b>
3380  
3381 </td>
3382 </tr>
3383 <tr>
3384 <td>boot_time</td>
3385 <td>timestamp</td>
3386 <td> </td>
3387 <td>
3388
3389  
3390 </td>
3391 <td>
3392 <b></b>
3393  
3394 </td>
3395 </tr>
3396 <tr>
3397 <td>users_cur</td>
3398 <td>U32</td>
3399 <td> </td>
3400 <td>
3401
3402  
3403 </td>
3404 <td>
3405 <b></b>
3406  
3407 </td>
3408 </tr>
3409 <tr>
3410 <td>users_max</td>
3411 <td>U32</td>
3412 <td> </td>
3413 <td>
3414
3415  
3416 </td>
3417 <td>
3418 <b></b>
3419  
3420 </td>
3421 </tr>
3422 <tr>
3423 <td>users_lim</td>
3424 <td>U32</td>
3425 <td> </td>
3426 <td>
3427
3428  
3429 </td>
3430 <td>
3431 <b></b>
3432  
3433 </td>
3434 </tr>
3435 <tr>
3436 <td>accts_cur</td>
3437 <td>U32</td>
3438 <td> </td>
3439 <td>
3440
3441  
3442 </td>
3443 <td>
3444 <b></b>
3445  
3446 </td>
3447 </tr>
3448 <tr>
3449 <td>accts_max</td>
3450 <td>U32</td>
3451 <td> </td>
3452 <td>
3453
3454  
3455 </td>
3456 <td>
3457 <b></b>
3458  
3459 </td>
3460 </tr>
3461 <tr>
3462 <td>unknown1</td>
3463 <td>U32</td>
3464 <td> </td>
3465 <td>
3466
3467  
3468 </td>
3469 <td>
3470 <b></b>
3471  
3472 </td>
3473 </tr>
3474 <tr>
3475 <td>work_max</td>
3476 <td>U32</td>
3477 <td> </td>
3478 <td>
3479
3480  
3481 </td>
3482 <td>
3483 <b></b>
3484  
3485 </td>
3486 </tr>
3487 <tr>
3488 <td>rooms_cur</td>
3489 <td>U32</td>
3490 <td> </td>
3491 <td>
3492
3493  
3494 </td>
3495 <td>
3496 <b></b>
3497  
3498 </td>
3499 </tr>
3500 <tr>
3501 <td>rooms_max</td>
3502 <td>U32</td>
3503 <td> </td>
3504 <td>
3505
3506  
3507 </td>
3508 <td>
3509 <b></b>
3510  
3511 </td>
3512 </tr>
3513 <tr>
3514 <td>rooms_lim</td>
3515 <td>U32</td>
3516 <td> </td>
3517 <td>
3518
3519  
3520 </td>
3521 <td>
3522 <b></b>
3523  
3524 </td>
3525 </tr>
3526 <tr>
3527 <td>games_cur</td>
3528 <td>U32</td>
3529 <td> </td>
3530 <td>
3531
3532  
3533 </td>
3534 <td>
3535 <b></b>
3536  
3537 </td>
3538 </tr>
3539 <tr>
3540 <td>games_max</td>
3541 <td>U32</td>
3542 <td> </td>
3543 <td>
3544
3545  
3546 </td>
3547 <td>
3548 <b></b>
3549  
3550 </td>
3551 </tr>
3552 <tr>
3553 <td>games_lim</td>
3554 <td>U32</td>
3555 <td> </td>
3556 <td>
3557
3558  
3559 </td>
3560 <td>
3561 <b></b>
3562  
3563 </td>
3564 </tr>
3565 <tr>
3566 <td>results_cur</td>
3567 <td>U32</td>
3568 <td> </td>
3569 <td>
3570
3571  
3572 </td>
3573 <td>
3574 <b></b>
3575  
3576 </td>
3577 </tr>
3578 <tr>
3579 <td>results_max</td>
3580 <td>U32</td>
3581 <td> </td>
3582 <td>
3583
3584  
3585 </td>
3586 <td>
3587 <b></b>
3588  
3589 </td>
3590 </tr>
3591 <tr>
3592 <td>unknown2</td>
3593 <td>U32</td>
3594 <td> </td>
3595 <td>
3596
3597  
3598 </td>
3599 <td>
3600 <b></b>
3601  
3602 </td>
3603 </tr>
3604 <tr>
3605 <td>params_cur</td>
3606 <td>U32</td>
3607 <td> </td>
3608 <td>
3609
3610  
3611 </td>
3612 <td>
3613 <b></b>
3614  
3615 </td>
3616 </tr>
3617 <tr>
3618 <td>params_max</td>
3619 <td>U32</td>
3620 <td> </td>
3621 <td>
3622
3623  
3624 </td>
3625 <td>
3626 <b></b>
3627  
3628 </td>
3629 </tr>
3630 <tr>
3631 <td>bytes_in</td>
3632 <td>U64</td>
3633 <td> </td>
3634 <td>
3635
3636  
3637 </td>
3638 <td>
3639 <b></b>
3640  
3641 </td>
3642 </tr>
3643 <tr>
3644 <td>packets_in</td>
3645 <td>U64</td>
3646 <td> </td>
3647 <td>
3648
3649  
3650 </td>
3651 <td>
3652 <b></b>
3653  
3654 </td>
3655 </tr>
3656 <tr>
3657 <td>bytes_out</td>
3658 <td>U64</td>
3659 <td> </td>
3660 <td>
3661
3662  
3663 </td>
3664 <td>
3665 <b></b>
3666  
3667 </td>
3668 </tr>
3669 <tr>
3670 <td>packets_out</td>
3671 <td>U64</td>
3672 <td> </td>
3673 <td>
3674
3675  
3676 </td>
3677 <td>
3678 <b></b>
3679  
3680 </td>
3681 </tr>
3682 </table>
3683
3684 <h4>
3685 <a name="R0016"></a>RECV
3686 MESSAGE idle_warn</h4>
3687 NUMERIC TYPE (hex): 0016
3688 (possibly in response to
3689 <a href="#S0016">idle_reset(0016)</a>
3690 )
3691 <p>
3692 idle warning, autologout soon (10 minutes...)
3693 </p>
3694 <table border="1" width="100%">
3695 <tr>
3696 <th width="10%">NAME</th>
3697 <th width="10%">TYPE</th>
3698 <th width="15%">DEFAULT</th>
3699 <th>DESCRIPTION</th>
3700 <th width="15%">DEC-GUARD</th>
3701 </tr>
3702 </table>
3703
3704 <h4>
3705 <a name="R001b"></a>RECV
3706 MESSAGE timewarning_default</h4>
3707 NUMERIC TYPE (hex): 001b
3708 (possibly in response to
3709 <a href="#S0000">login(0000)</a>
3710 )
3711 <p>
3712 WILD guess
3713 </p>
3714 <table border="1" width="100%">
3715 <tr>
3716 <th width="10%">NAME</th>
3717 <th width="10%">TYPE</th>
3718 <th width="15%">DEFAULT</th>
3719 <th>DESCRIPTION</th>
3720 <th width="15%">DEC-GUARD</th>
3721 </tr>
3722 <tr>
3723 <td>channel</td>
3724 <td>U16</td>
3725 <td> </td>
3726 <td>
3727
3728  
3729 </td>
3730 <td>
3731 <b></b>
3732  
3733 </td>
3734 </tr>
3735 <tr>
3736 <td>time</td>
3737 <td>U16</td>
3738 <td> </td>
3739 <td>
3740
3741  
3742 </td>
3743 <td>
3744 <b></b>
3745  
3746 </td>
3747 </tr>
3748 </table>
3749
3750 <h4>
3751 <a name="R001c"></a>RECV
3752 MESSAGE idle_err</h4>
3753 NUMERIC TYPE (hex): 001c<p>
3754 autologout
3755 </p>
3756 <table border="1" width="100%">
3757 <tr>
3758 <th width="10%">NAME</th>
3759 <th width="10%">TYPE</th>
3760 <th width="15%">DEFAULT</th>
3761 <th>DESCRIPTION</th>
3762 <th width="15%">DEC-GUARD</th>
3763 </tr>
3764 </table>
3765
3766 <h4>
3767 <a name="R001d"></a>RECV
3768 MESSAGE ping</h4>
3769 NUMERIC TYPE (hex): 001d<p>
3770 Sent by the server regularly, but not answering them
3771 isn't valid. Strange form of keepalive?
3772 </p>
3773 <table border="1" width="100%">
3774 <tr>
3775 <th width="10%">NAME</th>
3776 <th width="10%">TYPE</th>
3777 <th width="15%">DEFAULT</th>
3778 <th>DESCRIPTION</th>
3779 <th width="15%">DEC-GUARD</th>
3780 </tr>
3781 </table>
3782
3783 <h4>
3784 <a name="R001e"></a>RECV
3785 MESSAGE usergraph</h4>
3786 NUMERIC TYPE (hex): 001e
3787 (possibly in response to
3788 <a href="#S001e">req_usergraph(001e)</a>
3789 )
3790 <p>
3791 User graph data.
3792 </p>
3793 <table border="1" width="100%">
3794 <tr>
3795 <th width="10%">NAME</th>
3796 <th width="10%">TYPE</th>
3797 <th width="15%">DEFAULT</th>
3798 <th>DESCRIPTION</th>
3799 <th width="15%">DEC-GUARD</th>
3800 </tr>
3801 <tr>
3802 <td>data</td>
3803 <td>I16</td>
3804 <td> </td>
3805 <td>
3806 If empty, no graph is available. The unit seems to
3807 be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
3808 There is probably one entry per day, the newest one last.
3809
3810  
3811 </td>
3812 <td>
3813 <b></b>
3814  
3815 </td>
3816 </tr>
3817 </table>
3818
3819 <h4>
3820 <a name="R001f"></a>RECV
3821 MESSAGE memo</h4>
3822 NUMERIC TYPE (hex): 001f
3823 (possibly in response to
3824 <a href="#S001f">fetch_memos(001f)</a>
3825 )
3826 <p>
3827 Unclear. "Leave Message"?
3828 6 strings following.
3829 </p>
3830 <table border="1" width="100%">
3831 <tr>
3832 <th width="10%">NAME</th>
3833 <th width="10%">TYPE</th>
3834 <th width="15%">DEFAULT</th>
3835 <th>DESCRIPTION</th>
3836 <th width="15%">DEC-GUARD</th>
3837 </tr>
3838 <tr>
3839 <td>s1</td>
3840 <td>STRING</td>
3841 <td> </td>
3842 <td>
3843
3844  
3845 </td>
3846 <td>
3847 <b></b>
3848  
3849 </td>
3850 </tr>
3851 <tr>
3852 <td>s2</td>
3853 <td>STRING</td>
3854 <td> </td>
3855 <td>
3856
3857  
3858 </td>
3859 <td>
3860 <b></b>
3861  
3862 </td>
3863 </tr>
3864 <tr>
3865 <td>s3</td>
3866 <td>STRING</td>
3867 <td> </td>
3868 <td>
3869
3870  
3871 </td>
3872 <td>
3873 <b></b>
3874  
3875 </td>
3876 </tr>
3877 <tr>
3878 <td>s4</td>
3879 <td>STRING</td>
3880 <td> </td>
3881 <td>
3882
3883  
3884 </td>
3885 <td>
3886 <b></b>
3887  
3888 </td>
3889 </tr>
3890 <tr>
3891 <td>s5</td>
3892 <td>STRING</td>
3893 <td> </td>
3894 <td>
3895
3896  
3897 </td>
3898 <td>
3899 <b></b>
3900  
3901 </td>
3902 </tr>
3903 <tr>
3904 <td>s6</td>
3905 <td>STRING</td>
3906 <td> </td>
3907 <td>
3908
3909  
3910 </td>
3911 <td>
3912 <b></b>
3913  
3914 </td>
3915 </tr>
3916 </table>
3917
3918 <h4>
3919 <a name="R0021"></a>RECV
3920 MESSAGE userpic</h4>
3921 NUMERIC TYPE (hex): 0021
3922 (possibly in response to
3923 <a href="#S0021">req_pic(0021)</a>
3924 )
3925 <p>
3926 </p>
3927 <table border="1" width="100%">
3928 <tr>
3929 <th width="10%">NAME</th>
3930 <th width="10%">TYPE</th>
3931 <th width="15%">DEFAULT</th>
3932 <th>DESCRIPTION</th>
3933 <th width="15%">DEC-GUARD</th>
3934 </tr>
3935 <tr>
3936 <td>name</td>
3937 <td>username</td>
3938 <td> </td>
3939 <td>
3940 Reply to pic_req, contains an image in jpeg format.
3941
3942  
3943 </td>
3944 <td>
3945 <b></b>
3946  
3947 </td>
3948 </tr>
3949 <tr>
3950 <td>data</td>
3951 <td>DATA</td>
3952 <td> </td>
3953 <td>
3954
3955  
3956 </td>
3957 <td>
3958 <b></b>
3959  
3960 </td>
3961 </tr>
3962 </table>
3963
3964 <h4>
3965 <a name="R0100"></a>RECV
3966 MESSAGE gnotice</h4>
3967 NUMERIC TYPE (hex): 0100
3968 (possibly in response to
3969 <a href="#S0100">gnotice(0100)</a>
3970 )
3971 <p>
3972 global notice, sent to everybody
3973 </p>
3974 <table border="1" width="100%">
3975 <tr>
3976 <th width="10%">NAME</th>
3977 <th width="10%">TYPE</th>
3978 <th width="15%">DEFAULT</th>
3979 <th>DESCRIPTION</th>
3980 <th width="15%">DEC-GUARD</th>
3981 </tr>
3982 <tr>
3983 <td>notice</td>
3984 <td>STRING</td>
3985 <td> </td>
3986 <td>
3987
3988  
3989 </td>
3990 <td>
3991 <b></b>
3992  
3993 </td>
3994 </tr>
3995 </table>
3996
3997 <h4>
3998 <a name="R0202"></a>RECV
3999 MESSAGE upd_user</h4>
4000 NUMERIC TYPE (hex): 0202<p>
4001 # maybe soe notify? Totally unclear.
4002 # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
4003 </p>
4004 <table border="1" width="100%">
4005 <tr>
4006 <th width="10%">NAME</th>
4007 <th width="10%">TYPE</th>
4008 <th width="15%">DEFAULT</th>
4009 <th>DESCRIPTION</th>
4010 <th width="15%">DEC-GUARD</th>
4011 </tr>
4012 <tr>
4013 <td>location</td>
4014 <td>U32</td>
4015 <td> </td>
4016 <td>
4017
4018  
4019 </td>
4020 <td>
4021 <b></b>
4022  
4023 </td>
4024 </tr>
4025 <tr>
4026 <td>user</td>
4027 <td>user</td>
4028 <td> </td>
4029 <td>
4030
4031  
4032 </td>
4033 <td>
4034 <b></b>
4035  
4036 </td>
4037 </tr>
4038 <tr>
4039 <td>lotsofinfo</td>
4040 <td>DATA</td>
4041 <td> </td>
4042 <td>
4043
4044  
4045 </td>
4046 <td>
4047 <b>location</b> == 2
4048  
4049 </td>
4050 </tr>
4051 </table>
4052
4053 <h4>
4054 <a name="R0310"></a>RECV
4055 MESSAGE priv_room</h4>
4056 NUMERIC TYPE (hex): 0310<p>
4057 "permission denied" when joining a room
4058 </p>
4059 <table border="1" width="100%">
4060 <tr>
4061 <th width="10%">NAME</th>
4062 <th width="10%">TYPE</th>
4063 <th width="15%">DEFAULT</th>
4064 <th>DESCRIPTION</th>
4065 <th width="15%">DEC-GUARD</th>
4066 </tr>
4067 <tr>
4068 <td>name</td>
4069 <td>STRING</td>
4070 <td> </td>
4071 <td>
4072
4073  
4074 </td>
4075 <td>
4076 <b></b>
4077  
4078 </td>
4079 </tr>
4080 </table>
4081
4082 <h4>
4083 <a name="R0318"></a>RECV
4084 MESSAGE upd_rooms</h4>
4085 NUMERIC TYPE (hex): 0318
4086 (possibly in response to
4087 <a href="#S0318">list_rooms(0318)</a>
4088 )
4089 <p>
4090 </p>
4091 <table border="1" width="100%">
4092 <tr>
4093 <th width="10%">NAME</th>
4094 <th width="10%">TYPE</th>
4095 <th width="15%">DEFAULT</th>
4096 <th>DESCRIPTION</th>
4097 <th width="15%">DEC-GUARD</th>
4098 </tr>
4099 <tr>
4100 <td>rooms</td>
4101 <td>room</td>
4102 <td> </td>
4103 <td>
4104
4105  
4106 </td>
4107 <td>
4108 <b></b>
4109  
4110 </td>
4111 </tr>
4112 </table>
4113
4114 <h4>
4115 <a name="R0411"></a>RECV
4116 MESSAGE chal_defaults</h4>
4117 NUMERIC TYPE (hex): 0411
4118 (possibly in response to
4119 <a href="#S0000">login(0000)</a>
4120 )
4121 <p>
4122 </p>
4123 <table border="1" width="100%">
4124 <tr>
4125 <th width="10%">NAME</th>
4126 <th width="10%">TYPE</th>
4127 <th width="15%">DEFAULT</th>
4128 <th>DESCRIPTION</th>
4129 <th width="15%">DEC-GUARD</th>
4130 </tr>
4131 <tr>
4132 <td>channel</td>
4133 <td>U16</td>
4134 <td> </td>
4135 <td>
4136
4137  
4138 </td>
4139 <td>
4140 <b></b>
4141  
4142 </td>
4143 </tr>
4144 <tr>
4145 <td>defaults</td>
4146 <td>challenge_defaults</td>
4147 <td> </td>
4148 <td>
4149
4150  
4151 </td>
4152 <td>
4153 <b></b>
4154  
4155 </td>
4156 </tr>
4157 </table>
4158
4159 <h4>
4160 <a name="S0412"></a>SEND
4161 MESSAGE rej_game</h4>
4162 NUMERIC TYPE (hex): 0412<p>
4163 Unable to create challenge. The channel might be optional.
4164 </p>
4165 <table border="1" width="100%">
4166 <tr>
4167 <th width="10%">NAME</th>
4168 <th width="10%">TYPE</th>
4169 <th width="15%">DEFAULT</th>
4170 <th>DESCRIPTION</th>
4171 <th width="15%">DEC-GUARD</th>
4172 </tr>
4173 <tr>
4174 <td>channel</td>
4175 <td>U16</td>
4176 <td> </td>
4177 <td>
4178
4179  
4180 </td>
4181 <td>
4182 <b></b>
4183  
4184 </td>
4185 </tr>
4186 </table>
4187
4188 <h4>
4189 <a name="R0414"></a>RECV
4190 MESSAGE game_record</h4>
4191 NUMERIC TYPE (hex): 0414
4192 (possibly in response to
4193 <a href="#S0413">req_game_record(0413)</a>
4194 )
4195 <p>
4196 The users game record.
4197 </p>
4198 <table border="1" width="100%">
4199 <tr>
4200 <th width="10%">NAME</th>
4201 <th width="10%">TYPE</th>
4202 <th width="15%">DEFAULT</th>
4203 <th>DESCRIPTION</th>
4204 <th width="15%">DEC-GUARD</th>
4205 </tr>
4206 <tr>
4207 <td>name</td>
4208 <td>username</td>
4209 <td> </td>
4210 <td>
4211
4212  
4213 </td>
4214 <td>
4215 <b></b>
4216  
4217 </td>
4218 </tr>
4219 <tr>
4220 <td>more</td>
4221 <td>flag</td>
4222 <td> </td>
4223 <td>
4224 Wether more games are available (must be requested manually)
4225
4226  
4227 </td>
4228 <td>
4229 <b></b>
4230  
4231 </td>
4232 </tr>
4233 <tr>
4234 <td>games</td>
4235 <td>game_record</td>
4236 <td> </td>
4237 <td>
4238
4239  
4240 </td>
4241 <td>
4242 <b></b>
4243  
4244 </td>
4245 </tr>
4246 </table>
4247
4248 <h4>
4249 <a name="R041c"></a>RECV
4250 MESSAGE upd_game2</h4>
4251 NUMERIC TYPE (hex): 041c<p>
4252 Unclear.
4253 </p>
4254 <table border="1" width="100%">
4255 <tr>
4256 <th width="10%">NAME</th>
4257 <th width="10%">TYPE</th>
4258 <th width="15%">DEFAULT</th>
4259 <th>DESCRIPTION</th>
4260 <th width="15%">DEC-GUARD</th>
4261 </tr>
4262 <tr>
4263 <td>channel_junk</td>
4264 <td>U16</td>
4265 <td> </td>
4266 <td>
4267
4268  
4269 </td>
4270 <td>
4271 <b></b>
4272  
4273 </td>
4274 </tr>
4275 <tr>
4276 <td>game</td>
4277 <td>game</td>
4278 <td> </td>
4279 <td>
4280
4281  
4282 </td>
4283 <td>
4284 <b></b>
4285  
4286 </td>
4287 </tr>
4288 </table>
4289
4290 <h3>Room messages</h3>
4291
4292 <p>Not all room messages are for rooms only, and rooms need to parse
4293 not only these messages. Orthogonality, what for?</p>
4294
4295 <h4>
4296 <a name="R4300"></a>RECV
4297 MESSAGE join_room</h4>
4298 NUMERIC TYPE (hex): 4300
4299 (possibly in response to
4300 <a href="#S4300">join_room(4300)</a>
4301 )
4302 <p>
4303 </p>
4304 <table border="1" width="100%">
4305 <tr>
4306 <th width="10%">NAME</th>
4307 <th width="10%">TYPE</th>
4308 <th width="15%">DEFAULT</th>
4309 <th>DESCRIPTION</th>
4310 <th width="15%">DEC-GUARD</th>
4311 </tr>
4312 <tr>
4313 <td>channel</td>
4314 <td>U16</td>
4315 <td> </td>
4316 <td>
4317
4318  
4319 </td>
4320 <td>
4321 <b></b>
4322  
4323 </td>
4324 </tr>
4325 <tr>
4326 <td>users</td>
4327 <td>user</td>
4328 <td> </td>
4329 <td>
4330
4331  
4332 </td>
4333 <td>
4334 <b></b>
4335  
4336 </td>
4337 </tr>
4338 </table>
4339
4340 <h4>
4341 <a name="R4301"></a>RECV
4342 MESSAGE msg_room</h4>
4343 NUMERIC TYPE (hex): 4301<p>
4344 </p>
4345 <table border="1" width="100%">
4346 <tr>
4347 <th width="10%">NAME</th>
4348 <th width="10%">TYPE</th>
4349 <th width="15%">DEFAULT</th>
4350 <th>DESCRIPTION</th>
4351 <th width="15%">DEC-GUARD</th>
4352 </tr>
4353 <tr>
4354 <td>channel</td>
4355 <td>U16</td>
4356 <td> </td>
4357 <td>
4358
4359  
4360 </td>
4361 <td>
4362 <b></b>
4363  
4364 </td>
4365 </tr>
4366 <tr>
4367 <td>name</td>
4368 <td>username</td>
4369 <td> </td>
4370 <td>
4371
4372  
4373 </td>
4374 <td>
4375 <b></b>
4376  
4377 </td>
4378 </tr>
4379 <tr>
4380 <td>message</td>
4381 <td>STRING</td>
4382 <td> </td>
4383 <td>
4384
4385  
4386 </td>
4387 <td>
4388 <b></b>
4389  
4390 </td>
4391 </tr>
4392 </table>
4393
4394 <h4>
4395 <a name="R4302"></a>RECV
4396 MESSAGE part_room</h4>
4397 NUMERIC TYPE (hex): 4302<p>
4398 </p>
4399 <table border="1" width="100%">
4400 <tr>
4401 <th width="10%">NAME</th>
4402 <th width="10%">TYPE</th>
4403 <th width="15%">DEFAULT</th>
4404 <th>DESCRIPTION</th>
4405 <th width="15%">DEC-GUARD</th>
4406 </tr>
4407 <tr>
4408 <td>channel</td>
4409 <td>U16</td>
4410 <td> </td>
4411 <td>
4412
4413  
4414 </td>
4415 <td>
4416 <b></b>
4417  
4418 </td>
4419 </tr>
4420 <tr>
4421 <td>user</td>
4422 <td>user</td>
4423 <td> </td>
4424 <td>
4425
4426  
4427 </td>
4428 <td>
4429 <b></b>
4430  
4431 </td>
4432 </tr>
4433 </table>
4434
4435 <h4>
4436 <a name="R4303"></a>RECV
4437 MESSAGE del_room</h4>
4438 NUMERIC TYPE (hex): 4303<p>
4439 </p>
4440 <table border="1" width="100%">
4441 <tr>
4442 <th width="10%">NAME</th>
4443 <th width="10%">TYPE</th>
4444 <th width="15%">DEFAULT</th>
4445 <th>DESCRIPTION</th>
4446 <th width="15%">DEC-GUARD</th>
4447 </tr>
4448 <tr>
4449 <td>channel</td>
4450 <td>U16</td>
4451 <td> </td>
4452 <td>
4453
4454  
4455 </td>
4456 <td>
4457 <b></b>
4458  
4459 </td>
4460 </tr>
4461 </table>
4462
4463 <h4>
4464 <a name="R4304"></a>RECV
4465 MESSAGE upd_games</h4>
4466 NUMERIC TYPE (hex): 4304<p>
4467 </p>
4468 <table border="1" width="100%">
4469 <tr>
4470 <th width="10%">NAME</th>
4471 <th width="10%">TYPE</th>
4472 <th width="15%">DEFAULT</th>
4473 <th>DESCRIPTION</th>
4474 <th width="15%">DEC-GUARD</th>
4475 </tr>
4476 <tr>
4477 <td>channel</td>
4478 <td>U16</td>
4479 <td> </td>
4480 <td>
4481
4482  
4483 </td>
4484 <td>
4485 <b></b>
4486  
4487 </td>
4488 </tr>
4489 <tr>
4490 <td>games</td>
4491 <td>game</td>
4492 <td> </td>
4493 <td>
4494
4495  
4496 </td>
4497 <td>
4498 <b></b>
4499  
4500 </td>
4501 </tr>
4502 </table>
4503
4504 <h4>
4505 <a name="R4319"></a>RECV
4506 MESSAGE desc_room</h4>
4507 NUMERIC TYPE (hex): 4319<p>
4508 </p>
4509 <table border="1" width="100%">
4510 <tr>
4511 <th width="10%">NAME</th>
4512 <th width="10%">TYPE</th>
4513 <th width="15%">DEFAULT</th>
4514 <th>DESCRIPTION</th>
4515 <th width="15%">DEC-GUARD</th>
4516 </tr>
4517 <tr>
4518 <td>channel</td>
4519 <td>U16</td>
4520 <td> </td>
4521 <td>
4522
4523  
4524 </td>
4525 <td>
4526 <b></b>
4527  
4528 </td>
4529 </tr>
4530 <tr>
4531 <td>owner</td>
4532 <td>username</td>
4533 <td> </td>
4534 <td>
4535
4536  
4537 </td>
4538 <td>
4539 <b></b>
4540  
4541 </td>
4542 </tr>
4543 <tr>
4544 <td>description</td>
4545 <td>STRING</td>
4546 <td> </td>
4547 <td>
4548
4549  
4550 </td>
4551 <td>
4552 <b></b>
4553  
4554 </td>
4555 </tr>
4556 </table>
4557
4558 <h3>Game messages</h3>
4559
4560 <h4>
4561 <a name="R4400"></a>RECV
4562 MESSAGE upd_challenge</h4>
4563 NUMERIC TYPE (hex): 4400<p>
4564 Unclear.
4565 </p>
4566 <table border="1" width="100%">
4567 <tr>
4568 <th width="10%">NAME</th>
4569 <th width="10%">TYPE</th>
4570 <th width="15%">DEFAULT</th>
4571 <th>DESCRIPTION</th>
4572 <th width="15%">DEC-GUARD</th>
4573 </tr>
4574 <tr>
4575 <td>channel</td>
4576 <td>U16</td>
4577 <td> </td>
4578 <td>
4579
4580  
4581 </td>
4582 <td>
4583 <b></b>
4584  
4585 </td>
4586 </tr>
4587 <tr>
4588 <td>challenge</td>
4589 <td>challenge</td>
4590 <td> </td>
4591 <td>
4592
4593  
4594 </td>
4595 <td>
4596 <b></b>
4597  
4598 </td>
4599 </tr>
4600 </table>
4601
4602 <h4>
4603 <a name="R4401"></a>RECV
4604 MESSAGE upd_game</h4>
4605 NUMERIC TYPE (hex): 4401<p>
4606 </p>
4607 <table border="1" width="100%">
4608 <tr>
4609 <th width="10%">NAME</th>
4610 <th width="10%">TYPE</th>
4611 <th width="15%">DEFAULT</th>
4612 <th>DESCRIPTION</th>
4613 <th width="15%">DEC-GUARD</th>
4614 </tr>
4615 <tr>
4616 <td>channel</td>
4617 <td>U16</td>
4618 <td> </td>
4619 <td>
4620
4621  
4622 </td>
4623 <td>
4624 <b></b>
4625  
4626 </td>
4627 </tr>
4628 <tr>
4629 <td>game</td>
4630 <td>game</td>
4631 <td> </td>
4632 <td>
4633
4634  
4635 </td>
4636 <td>
4637 <b></b>
4638  
4639 </td>
4640 </tr>
4641 </table>
4642
4643 <h4>
4644 <a name="R4402"></a>RECV
4645 MESSAGE del_game</h4>
4646 NUMERIC TYPE (hex): 4402<p>
4647 </p>
4648 <table border="1" width="100%">
4649 <tr>
4650 <th width="10%">NAME</th>
4651 <th width="10%">TYPE</th>
4652 <th width="15%">DEFAULT</th>
4653 <th>DESCRIPTION</th>
4654 <th width="15%">DEC-GUARD</th>
4655 </tr>
4656 <tr>
4657 <td>channel</td>
4658 <td>U16</td>
4659 <td> </td>
4660 <td>
4661
4662  
4663 </td>
4664 <td>
4665 <b></b>
4666  
4667 </td>
4668 </tr>
4669 </table>
4670
4671 <h4>
4672 <a name="R4403"></a>RECV
4673 MESSAGE upd_observers</h4>
4674 NUMERIC TYPE (hex): 4403<p>
4675 </p>
4676 <table border="1" width="100%">
4677 <tr>
4678 <th width="10%">NAME</th>
4679 <th width="10%">TYPE</th>
4680 <th width="15%">DEFAULT</th>
4681 <th>DESCRIPTION</th>
4682 <th width="15%">DEC-GUARD</th>
4683 </tr>
4684 <tr>
4685 <td>channel</td>
4686 <td>U16</td>
4687 <td> </td>
4688 <td>
4689
4690  
4691 </td>
4692 <td>
4693 <b></b>
4694  
4695 </td>
4696 </tr>
4697 <tr>
4698 <td>users</td>
4699 <td>user</td>
4700 <td> </td>
4701 <td>
4702
4703  
4704 </td>
4705 <td>
4706 <b></b>
4707  
4708 </td>
4709 </tr>
4710 </table>
4711
4712 <h4>
4713 <a name="R4404"></a>RECV
4714 MESSAGE del_observer</h4>
4715 NUMERIC TYPE (hex): 4404<p>
4716 </p>
4717 <table border="1" width="100%">
4718 <tr>
4719 <th width="10%">NAME</th>
4720 <th width="10%">TYPE</th>
4721 <th width="15%">DEFAULT</th>
4722 <th>DESCRIPTION</th>
4723 <th width="15%">DEC-GUARD</th>
4724 </tr>
4725 <tr>
4726 <td>channel</td>
4727 <td>U16</td>
4728 <td> </td>
4729 <td>
4730
4731  
4732 </td>
4733 <td>
4734 <b></b>
4735  
4736 </td>
4737 </tr>
4738 <tr>
4739 <td>name</td>
4740 <td>username</td>
4741 <td> </td>
4742 <td>
4743
4744  
4745 </td>
4746 <td>
4747 <b></b>
4748  
4749 </td>
4750 </tr>
4751 </table>
4752
4753 <h4>
4754 <a name="R4405"></a>RECV
4755 MESSAGE set_tree</h4>
4756 NUMERIC TYPE (hex): 4405<p>
4757 </p>
4758 <table border="1" width="100%">
4759 <tr>
4760 <th width="10%">NAME</th>
4761 <th width="10%">TYPE</th>
4762 <th width="15%">DEFAULT</th>
4763 <th>DESCRIPTION</th>
4764 <th width="15%">DEC-GUARD</th>
4765 </tr>
4766 <tr>
4767 <td>channel</td>
4768 <td>U16</td>
4769 <td> </td>
4770 <td>
4771
4772  
4773 </td>
4774 <td>
4775 <b></b>
4776  
4777 </td>
4778 </tr>
4779 <tr>
4780 <td>tree</td>
4781 <td>TREE</td>
4782 <td> </td>
4783 <td>
4784
4785  
4786 </td>
4787 <td>
4788 <b></b>
4789  
4790 </td>
4791 </tr>
4792 </table>
4793
4794 <h4>
4795 <a name="R4406"></a>RECV
4796 MESSAGE upd_tree</h4>
4797 NUMERIC TYPE (hex): 4406<p>
4798 </p>
4799 <table border="1" width="100%">
4800 <tr>
4801 <th width="10%">NAME</th>
4802 <th width="10%">TYPE</th>
4803 <th width="15%">DEFAULT</th>
4804 <th>DESCRIPTION</th>
4805 <th width="15%">DEC-GUARD</th>
4806 </tr>
4807 <tr>
4808 <td>channel</td>
4809 <td>U16</td>
4810 <td> </td>
4811 <td>
4812
4813  
4814 </td>
4815 <td>
4816 <b></b>
4817  
4818 </td>
4819 </tr>
4820 <tr>
4821 <td>tree</td>
4822 <td>TREE</td>
4823 <td> </td>
4824 <td>
4825
4826  
4827 </td>
4828 <td>
4829 <b></b>
4830  
4831 </td>
4832 </tr>
4833 </table>
4834
4835 <h4>
4836 <a name="R4409"></a>RECV
4837 MESSAGE superko</h4>
4838 NUMERIC TYPE (hex): 4409<p>
4839 Superko-warning.
4840 </p>
4841 <table border="1" width="100%">
4842 <tr>
4843 <th width="10%">NAME</th>
4844 <th width="10%">TYPE</th>
4845 <th width="15%">DEFAULT</th>
4846 <th>DESCRIPTION</th>
4847 <th width="15%">DEC-GUARD</th>
4848 </tr>
4849 <tr>
4850 <td>channel</td>
4851 <td>U16</td>
4852 <td> </td>
4853 <td>
4854
4855  
4856 </td>
4857 <td>
4858 <b></b>
4859  
4860 </td>
4861 </tr>
4862 </table>
4863
4864 <h4>
4865 <a name="R440b"></a>RECV
4866 MESSAGE final_result</h4>
4867 NUMERIC TYPE (hex): 440b<p>
4868 </p>
4869 <table border="1" width="100%">
4870 <tr>
4871 <th width="10%">NAME</th>
4872 <th width="10%">TYPE</th>
4873 <th width="15%">DEFAULT</th>
4874 <th>DESCRIPTION</th>
4875 <th width="15%">DEC-GUARD</th>
4876 </tr>
4877 <tr>
4878 <td>channel</td>
4879 <td>U16</td>
4880 <td> </td>
4881 <td>
4882
4883  
4884 </td>
4885 <td>
4886 <b></b>
4887  
4888 </td>
4889 </tr>
4890 <tr>
4891 <td>blackscore</td>
4892 <td>scorevalues</td>
4893 <td> </td>
4894 <td>
4895
4896  
4897 </td>
4898 <td>
4899 <b></b>
4900  
4901 </td>
4902 </tr>
4903 <tr>
4904 <td>whitescore</td>
4905 <td>scorevalues</td>
4906 <td> </td>
4907 <td>
4908
4909  
4910 </td>
4911 <td>
4912 <b></b>
4913  
4914 </td>
4915 </tr>
4916 </table>
4917
4918 <h4>
4919 <a name="R440e"></a>RECV
4920 MESSAGE req_undo</h4>
4921 NUMERIC TYPE (hex): 440e<p>
4922 </p>
4923 <table border="1" width="100%">
4924 <tr>
4925 <th width="10%">NAME</th>
4926 <th width="10%">TYPE</th>
4927 <th width="15%">DEFAULT</th>
4928 <th>DESCRIPTION</th>
4929 <th width="15%">DEC-GUARD</th>
4930 </tr>
4931 <tr>
4932 <td>channel</td>
4933 <td>U16</td>
4934 <td> </td>
4935 <td>
4936
4937
4938  
4939 </td>
4940 <td>
4941 <b></b>
4942  
4943 </td>
4944 </tr>
4945 </table>
4946
4947 <h4>
4948 <a name="R4410"></a>RECV
4949 MESSAGE resign_game</h4>
4950 NUMERIC TYPE (hex): 4410<p>
4951 </p>
4952 <table border="1" width="100%">
4953 <tr>
4954 <th width="10%">NAME</th>
4955 <th width="10%">TYPE</th>
4956 <th width="15%">DEFAULT</th>
4957 <th>DESCRIPTION</th>
4958 <th width="15%">DEC-GUARD</th>
4959 </tr>
4960 <tr>
4961 <td>channel</td>
4962 <td>U16</td>
4963 <td> </td>
4964 <td>
4965
4966  
4967 </td>
4968 <td>
4969 <b></b>
4970  
4971 </td>
4972 </tr>
4973 <tr>
4974 <td>player</td>
4975 <td>U8</td>
4976 <td> </td>
4977 <td>
4978
4979  
4980 </td>
4981 <td>
4982 <b></b>
4983  
4984 </td>
4985 </tr>
4986 </table>
4987
4988 <h4>
4989 <a name="R441a"></a>RECV
4990 MESSAGE set_teacher</h4>
4991 NUMERIC TYPE (hex): 441a<p>
4992 </p>
4993 <table border="1" width="100%">
4994 <tr>
4995 <th width="10%">NAME</th>
4996 <th width="10%">TYPE</th>
4997 <th width="15%">DEFAULT</th>
4998 <th>DESCRIPTION</th>
4999 <th width="15%">DEC-GUARD</th>
5000 </tr>
5001 <tr>
5002 <td>channel</td>
5003 <td>U16</td>
5004 <td> </td>
5005 <td>
5006
5007  
5008 </td>
5009 <td>
5010 <b></b>
5011  
5012 </td>
5013 </tr>
5014 <tr>
5015 <td>name</td>
5016 <td>username</td>
5017 <td> </td>
5018 <td>
5019
5020  
5021 </td>
5022 <td>
5023 <b></b>
5024  
5025 </td>
5026 </tr>
5027 </table>
5028
5029 <h4>
5030 <a name="R441d"></a>RECV
5031 MESSAGE owner_left</h4>
5032 NUMERIC TYPE (hex): 441d<p>
5033 Unclear.
5034 </p>
5035 <table border="1" width="100%">
5036 <tr>
5037 <th width="10%">NAME</th>
5038 <th width="10%">TYPE</th>
5039 <th width="15%">DEFAULT</th>
5040 <th>DESCRIPTION</th>
5041 <th width="15%">DEC-GUARD</th>
5042 </tr>
5043 <tr>
5044 <td>channel</td>
5045 <td>U16</td>
5046 <td> </td>
5047 <td>
5048
5049  
5050 </td>
5051 <td>
5052 <b></b>
5053  
5054 </td>
5055 </tr>
5056 </table>
5057
5058 <h4>
5059 <a name="R441e"></a>RECV
5060 MESSAGE teacher_left</h4>
5061 NUMERIC TYPE (hex): 441e<p>
5062 Unclear.
5063 </p>
5064 <table border="1" width="100%">
5065 <tr>
5066 <th width="10%">NAME</th>
5067 <th width="10%">TYPE</th>
5068 <th width="15%">DEFAULT</th>
5069 <th>DESCRIPTION</th>
5070 <th width="15%">DEC-GUARD</th>
5071 </tr>
5072 <tr>
5073 <td>channel</td>
5074 <td>U16</td>
5075 <td> </td>
5076 <td>
5077
5078  
5079 </td>
5080 <td>
5081 <b></b>
5082  
5083 </td>
5084 </tr>
5085 </table>
5086
5087 <h4>
5088 <a name="R4422"></a>RECV
5089 MESSAGE unknown4422</h4>
5090 NUMERIC TYPE (hex): 4422<p>
5091 change teacher? something to do with editing?
5092 </p>
5093 <table border="1" width="100%">
5094 <tr>
5095 <th width="10%">NAME</th>
5096 <th width="10%">TYPE</th>
5097 <th width="15%">DEFAULT</th>
5098 <th>DESCRIPTION</th>
5099 <th width="15%">DEC-GUARD</th>
5100 </tr>
5101 <tr>
5102 <td>channel</td>
5103 <td>U16</td>
5104 <td> </td>
5105 <td>
5106
5107  
5108 </td>
5109 <td>
5110 <b></b>
5111  
5112 </td>
5113 </tr>
5114 <tr>
5115 <td>name1</td>
5116 <td>username</td>
5117 <td> </td>
5118 <td>
5119
5120  
5121 </td>
5122 <td>
5123 <b></b>
5124  
5125 </td>
5126 </tr>
5127 <tr>
5128 <td>name2</td>
5129 <td>username</td>
5130 <td> </td>
5131 <td>
5132
5133  
5134 </td>
5135 <td>
5136 <b></b>
5137  
5138 </td>
5139 </tr>
5140 </table>
5141
5142 <h4>
5143 <a name="R4428"></a>RECV
5144 MESSAGE add_tree</h4>
5145 NUMERIC TYPE (hex): 4428<p>
5146 <p>See <a href="#R4405">set_tree(4405)</a>. In addition, flags the tree as being
5147 uploaded completely.</p>
5148 </p>
5149 <table border="1" width="100%">
5150 <tr>
5151 <th width="10%">NAME</th>
5152 <th width="10%">TYPE</th>
5153 <th width="15%">DEFAULT</th>
5154 <th>DESCRIPTION</th>
5155 <th width="15%">DEC-GUARD</th>
5156 </tr>
5157 <tr>
5158 <td>channel</td>
5159 <td>U16</td>
5160 <td> </td>
5161 <td>
5162
5163  
5164 </td>
5165 <td>
5166 <b></b>
5167  
5168 </td>
5169 </tr>
5170 <tr>
5171 <td>tree</td>
5172 <td>TREE</td>
5173 <td> </td>
5174 <td>
5175
5176  
5177 </td>
5178 <td>
5179 <b></b>
5180  
5181 </td>
5182 </tr>
5183 </table>
5184
5185 <h4>
5186 <a name="R4433"></a>RECV
5187 MESSAGE req_result</h4>
5188 NUMERIC TYPE (hex): 4433<p>
5189 Unclear.
5190 </p>
5191 <table border="1" width="100%">
5192 <tr>
5193 <th width="10%">NAME</th>
5194 <th width="10%">TYPE</th>
5195 <th width="15%">DEFAULT</th>
5196 <th>DESCRIPTION</th>
5197 <th width="15%">DEC-GUARD</th>
5198 </tr>
5199 <tr>
5200 <td>channel</td>
5201 <td>U16</td>
5202 <td> </td>
5203 <td>
5204 # # recv_result(?)
5205
5206  
5207 </td>
5208 <td>
5209 <b></b>
5210  
5211 </td>
5212 </tr>
5213 </table>
5214
5215 <h4>
5216 <a name="R4434"></a>RECV
5217 MESSAGE unknown4434</h4>
5218 NUMERIC TYPE (hex): 4434<p>
5219 </p>
5220 <table border="1" width="100%">
5221 <tr>
5222 <th width="10%">NAME</th>
5223 <th width="10%">TYPE</th>
5224 <th width="15%">DEFAULT</th>
5225 <th>DESCRIPTION</th>
5226 <th width="15%">DEC-GUARD</th>
5227 </tr>
5228 <tr>
5229 <td>channel</td>
5230 <td>U16</td>
5231 <td> </td>
5232 <td>
5233
5234  
5235 </td>
5236 <td>
5237 <b></b>
5238  
5239 </td>
5240 </tr>
5241 <tr>
5242 <td>b1</td>
5243 <td>U8</td>
5244 <td> </td>
5245 <td>
5246 ?? !demonstration game??
5247
5248  
5249 </td>
5250 <td>
5251 <b></b>
5252  
5253 </td>
5254 </tr>
5255 </table>
5256
5257 </body>
5258 </html>