ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.24
Committed: Sat Jul 19 01:08:42 2003 UTC (20 years, 10 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.23: +12 -15 lines
Log Message:
*** empty log message ***

File Contents

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