User Manual

- The IGS client
- The game window
- The SGF editor
- Play with GnuGo
- Solving problems
- The RubyGo printing system
- Customizing RubyGo
- Changes from last version
- Troubles with Ruby
- Screen shots

# The IGS Client

## The Console

> This main window is the console, which is basically like a telnet session in an xterm window. You can type all the IGS commands here, including the 'help' command that you can also review the contents of in the 'Summary' file. The additional benefit of the RubyGo console to the IGS command interaction is the ability to make your own commands, much like scripts are run from an xterm window but driven by Ruby here. This is in a sense more powerful than adding many menus or buttons because by typing a few characters you can access whatever it is you would like to function. The scripts are stored in the file 'scripts.rb', which also includes definitions for the programs text colors which you can change to your desired preference. A short help is provided when you hit 'CTRL-h'. Some examples on how to add your own scripts are provided in the directory 'rubygo.sample'. You can, of course, send me requests by mail and I can add them to the FAQ and extend the base RubyGo distribution.
> The indicator on the upper left shows you if the client is receiving data from the server.
> - means that the client is receiving data from the socket.
> - means the client is free.

> Next there is two buttons:

> - Open the players list window.
> - Open the games list window

> Next there is a little message showing the date and time when you receive the last bytes from the server. If you are unsure about your connection, just have a look to it. If the clock is not updated, that probably means the connection is broken. The time is IGS local time. This can be useful for some events scheduled on igs, like pro games. There is a command history that you access with the 'up' and 'down' arrows. You can use the mouse to cut and paste text from the console (unix only).

> console predefined key bindings:

>     rubygo predefined key bindings:
>     Control-h : this help
>     Control-s : status of last player requesting a match
>     Control-r : results of that player
>     Control-m : send 'match' to that player
>     Control-d : decline match
>     Control-t : reply to the last player talking to you

>      rubygo predefined commands:
>       set_auto_reply <text>      : reply to a user when your are not there
>       cancel_auto_reply          : guess ?
>       chat  <player | channel>   : talk with a player/channel
>       match  <player>            : open match window
>       auto_load  <game>          : load/observe an adjourned game

> The auto_load command will be automatically set by RubyGo in two cases:
> - If you observe a game and it is adjourned. This way it will be automatically re-observed when it restarts.
> - If you play a game and it is adjourned. Most of the time this is because of a connection problem of your opponent. In this case the game will be reloaded as soon as your opponent is connected again.
> If you use auto_load at the console, <game> is in the form 'white-black'

> When the console is connected to the server, it send the 'stored' command to see if you have unfinished games stored on the server. Next, if one of your opponents connects you will be notified (a chat window is opened)

> Note that how to make your own commands is explained in Customizing RubyGo

## The Players list

> The players list is the result of the 'user' command at the console, showing almost all the players connected. Because it take some time to receive and sort the list, it is not updated automatically, but only when you needed by depressing the reload button. You can save time by invoking a specific query using the options of the 'user' command at the console, like 'user 3k-5k' or 'user fr'. You can use the entry in the players list to set parameters of the reload button so that clicking on it will conveniently load the specific user range or user country you prefer. When receiving the list, you can filter it to make only displayed some kind of players:

> - New : show players newly connected (only if 'quiet' option is off)
> - Closed : show players that are not accepting matches.
> - Playing : show players already playing
> Typically if these three options are off, you get a list of players that you can ask for a game.

> icons:

> - means the player is not accepting matches
> - means the player is looking for a match
> - unknown status

> menus:

> - (your user name)
>   - Open for match : set you accepting matches from other players (remove the )
>   - Looking for match : show you are looking for a match (set the )
>   - Receive shouts : When selecting this option you will receive general messages at the console.
>   - Quiet : You can stay informed when players connect and disconnect by de-selecting the 'quiet' option. When it is toggled to false new players are added at the end of the list. The 'quiet' and 'shout' options are stored in the server, so this settings will be restored when you connect. Please also see 'help toggle'. 'quiet' is used both for new players and new games, as described further in the games list below.
>   - Multile games : When you set this option, the server will allow you to play multiple games at a time. Have fun !
> - player infos
> - stats : open the stats window for your account (see below)
> - results : show your results on the console

> When using the right mouse button on the line of a player, you get a popup menu for that player.

> - stats of that player
> - results of that player
> - observe the game he is observing/playing
> - match : open the match window
> - automatch : open the automatch window
> By default, 'guest' users will not be shown (a filter is configurable, see Customizing RubyGo)

> Warning: Depending on the speed of your system the list can take some time to be updated and RubyGo will hang during this time. This is because Ruby is an interpreted language and there may be more than 1000 players connected at a time on IGS. Please see the 'who' command and 'help who' text to retrieve a shorter list at the console.

## The Games list

> This window shows the games actually played on IGS. Its identical to the result of the 'games' command at the console, and the window will automatically open if needed.
>   In case the window is already open, you have to use the 'reload' button to get an updated list from the server.

>   Symbols:

>   - : Free game ( not rated)
>   - : Tournament
>   - : Teaching game
>   A popup menu on the right mouse button allow you to observe that game.
>   - observe that game
>   - stats (white)
>   - stats (black)
>   - wallpaper (unix only)

>   wallpaper open a game to observe and put it on the background of the window. It is a window without decoration. When it is opened, all other windows are withdrawn from the screen. You get a popup menu when clicking on the goban with the right mouse button:

>   - show Show the others windows
>   - hide Hide the others windows (it's the same that in the main window's menu)
>   - cose Stop observing that game (open the others windows)
>   see also The game window

>   ## The Reviews list

>   > There is a new command on IGS, 'review', which allow players to review games with a more convenient interface. This command is not yet documented on IGS, so you can just observe such games, and send messages. Click on the reload button to get a list of reviews actually on IGS, and click with the left mouse button to observe this game. You open this list with the button of the console.

>   > Note RubyGo will remember if these windows were opened or not, and their position, the next time you will launch it. The windows will not open when receiving a listing from the server (when typing 'user' or 'games' at the console).

>   ## The Chat window

>   > If a user sends you a message (using the 'tell' command) the default behavior is for a chat window to automatically open allowing you to talk with the individual. It will not open if you use 'tell' directly at the console, but there is a builtin command 'chat <player>' that will bring it up. See the 'scripts.rb' file for other builtins. If you use a number instead of a name, you will talk into a channel. See 'help channels'. Only one channel is active at a time, so you will receive messages only in the last window you talked through. There is an entry in the players list menu for accessing chat as well.

>   ## The Match window

>   > When a player requests a game with you, this window will automatically open. You can accept the match or decline it, or you can modify some fields and send a return request. If you want to request a match, you can either use the popup menu of the Players list, or type 'match <player>' with no parameter at the console. You can have a pre-defined message to send to the player (using the 'tell' command) automatically when sending the match request, to be more 'user-friendly'. If you click on the name of the player, you get the 'stats' window for that player (see below).

>   > If a player use the 'automatch' command, (help automatch), you will get a window slightly different. In this case only the opponent can change the number of byo-yomi stones, and the color is automatically choosen by the server. You can accept as is with automatch, or modify the parameters and choose a color, in which case it will be changed to a normal 'match' command.

>   ## The Stats window

>   > The 'stats' command (see 'help stats') gives you informations about a player. You can open this window from the popup menus of the players and games lists too. In addition to the informations given by the server, this window allows you to give a 'head' (icon) to that player, and take notes about him.click on the button containing a question mark. This informations will be stored on your computer. click on the button displaying the head (or nothing) to change it. This head will appear into the list of players too in front of the name. You have two checkboxes :
>   > - Notify me when connected At the connection, RubyGo will look at the list of players connected to see if you have friends there. if the player is not already connected, and if the 'quiet' option is off, you will be notified when he connect during your session. In both cases a chat window will appear.
>   > - Decline match requests(automatically) Useful if you don't want to be annoyed by that player. Note that I give some nice heads for escapers :-)
>   > Feel free to send me other suggestions.

For further information, send me a mail