RISC World

Net Chess

The HTML manual for NetChess



NetChess is an Internet chess client suitable for use with Internet chess servers such as FICS. It allows you to play chess and chess variants such as crazyhouse, suicide and bughouse against other people connected to the server. You can also chat, observe games and watch chess lectures.

A tour of the program

To familiarize yourself with the program whilst off-line, click menu on the iconbar icon and select freechess on the servers menu. It won't connect but it will show the main chess window as shown below.

Closing the window or quiting the program closes the connection but if you are playing a game you should finish the game properly (see Ending a game) as a courtesy to your opponent.

Clicking on words in the scrolling text areas has the following effect:

  • Clicking on a URL like will launch it.
  • Clicking on words in inverted commas will send the text between the inverted commas to the server as if you had typed them into the input line - there are many instances where you are told how to reply in inverted commas and this allows you to just click on the words on the screen instead of typing them in.
  • A click on a word puts it in the input line.

Main menu

  • Board - board options
  • Learn input (^L) - Makes the current text in the input line appear every time you press return.
    eg. if you are talking to your opponent while playing a game you need to type 'say ' at the beginning of each line you type. With learn input you can type 'say ' then ^L then what you want to say and when you press return the 'say ' will still be there ready for the next time you have something to say. You can stop the learnt input appearing hen return is pressed by clearing the input line and pressing ^L.
  • Edit Macros... - Lets you add or edit text macros. The macros appear on the main menu below this entry and allow you to use the menu to enter a command instead of typing it in.

Board menu

  • Show (^S) - Toggles between showing the board and showing the seek area.
  • Rows and Columns(^R) - Switches rows numbers and columns letters on and off.
  • Turn(^T) - Turns the board around in 90 degree steps.
  • 3d (F3) - Change to 3d board.
  • 2d (F2) - Change to 2d board.
  • 2d small (F1) - Change to small 2d board.

Iconbar menu

  • Info - Program information.
  • Choices... - Opens the choices dialogue box which lets you customise NetChess.
  • Edit macros... - Lets you edit the macros whilst not connected.
  • Servers - Leads you to a menu of Chess servers you can connect to.
  • Quit - Quits the program.


Hopefully this tutorial should be enough to get you started with NetChess, however, it won't teach you how to play chess.

You perform actions and chat to other people by sending commands which you enter in the input line. You can even enter moves at the keyboard if you want. Replies to commands and messages to you appear in the Output area.

Chess servers all have comprehensive help files which explain the commands they understand in detail. Different servers may have slightly different commands or features. This tutorial does not cover all the features of the server nor does it describe each command it uses fully, if you want more details please use the server's help files.

You can connect to Chess servers as a guest but it is better if you register. If you don't register you can't do things like: play rated games; enter a tournament; have the server remember your customised settings. It is definitely worth registering - it's free to register on a free server.

[Note. When you enter a command you should press return to send it to the server.]

First steps

There are several chess servers on the internet some are free and some are not. The ones that charge usually allow you to try them out for a few days as a guest.

I am going to explain a typical session as a guest to Freechess is a good server it gets lots of visitors of varying ability and is free to register - see their web site

Click on the iconbar icon and enter:

Port: 5000

and select Connect. The main window will appear (it may take 30 seconds or so to connect). When connected the intro screen from the server will tell you what to do next.

Type g as you are a guest.

To access the server help type help. the Output area will now show the servers reply to the help command. Commands and names may be shortened so instead of observe you could type o. I will use the full names in this tutorial.


There are many commands for talking I'll just introduce the basic ones - type help intro_talk for more information.

  • tell name. You can talk to anyone on the server, on a one to one basis, by typing tell nickname hi - where hi can be replaced with any text you want. You can see who is on the server by typing who. So if you see me (semicolon) you can talk to me with tell semicolon fancy a game?
  • say. To talk to your opponent just type say hello how are you doing? or whatever you want to say - only your opponent will hear. You can also use say to talk to your opponent after the game is over.
  • kibitz. If you are observing or playing a game typing kibitz hi everyone will send the message to everyone observing or playing the game.
  • tell channel_number. The server has a number of forums (channels) where people can talk. You can see a list of these channels by typing channel_list. You can talk on any of these channels by typing tell channel_number what you want to say. For example tell 1 how do I abort a game? asks a question on the help channel. However, you won't see a reply unless you are listening to the help channel. To find out what channels you are listening to type =channel. To add channel 1 to the list type +channel 1. You will now receive chat from channel 1. To stop receiving chat from channel 1 type -channel 1.

Anything said to you directly or via a channel in your channel list will appear in the Output area.

Observing a game

We'll start by observing the lecture. Freechess runs chess lectures continuously with 5 minute intervals and to watch the current lecture type observe lecture. The board should appear and you should see pieces move on the board and the lecture text appear in the Output area as the lecture progresses. The window's title bar will tell you the game being discussed and that you are observing. Clicking on the move number button (top left) should show you the last move made.

To stop observing the lecture type unobserve.

You can observe any game, whether being played or examined. Typing games will show list of all games currently being played. Each game has a game number and to watch it type observe number. To stop observing type unobserve.

Examining a game

You can examine any game stored on the server and step backward and forward through the moves and try out different ones. You can also move for both sides. We will use the examine mode here to try out moving pieces. Type examine - you should get a new board.

To make the move e2e4 you can either type e2e4 or click on the e2 square to highlight it, then click on the e4 square and the move will be made. Note the highlight over the clocks which changes after a move to show whose turn it is. You then move for black eg. click on b8 then on c6 to move the knight to c6 and so on. To castle you can either type o-o or o-o-o or click on the king's square and then the king's destination square.

Note on some of the game variations where the king starts on a different square than normal you need to use the keyboard to castle.

To stop examining type unexamine.

Ending a game

A game ends in a number of ways:

  • Checkmate, Stalemate, insufficient mating material.
  • Flag - type flag. This claims the game when your opponent is out of time. You can make this happen automatically when your opponents time is up by typing set autoflag 1.
  • Resign - type resign. Forfeit the game.
  • Draw - type draw to can ask your opponent for a draw
  • Adjourn - type adjourn to ask your opponent to adjourn the game. If he agrees the game is stored on the server so that you can complete the game next time you meet your opponent on the server. To restart the game when type match opponents_name. Quiting during a rated game will adjourn the game but you shouldn't do this unless the server doesn't seem to be responding to your commands.
  • Abort - type abort. You can abort any game where you haven't moved otherwise your opponent needs to agree to the abort - the game will not be stored so you can't restart it.

If whilst playing a game and you want to quit you should conclude the game with one of these commands before closing the connection.

Playing a game

Every game you play has time controls. A game's time controls take the form of 2 numbers so in a 2 12 game each player has 2 minutes plus 12 seconds per move to make all their moves.

Once you have a game it is just a matter of making your moves by clicking on the square of the piece you want to move and then clicking the square you want to move it to or typing the moves in on the keyboard. If the move is invalid the piece will be put back and it's still your move.

There are 4 ways to get a game:

  • Reply to a seek advert
  • Post a seek advert (help seek)
  • Challenge someone directly (help match)
  • Reply do a direct challenge

Replying to a seek advert

If you look at the Seek window (press ^S if the board is showing) you should see a list of seek adverts - the list is being added to all the time. These are requests for games and they look something like

filesp (1500) seeking 5 3 rated blitz ("play 44" to respond)

Where: filesp is the person's nickname - a (C) after the name means it's a computer; 1500 is the players rating; 5 3 means filesp wants to play a game where you play all moves in 5 minutes plus 3 seconds per move; blitz is the type of chess game and is a normal game with a short time duration. Members have different ratings for standard, blitz and lightning chess - the difference between these game types being the game's time duration.

If you want to play the game just type play 44 or click on "play 44" with the mouse. The board will appear with your colour at the bottom ready to play.

Post a seek advert

Type seek and other players on the server will see a seek ad from you for a game with time controls set to 2 12 (the default). If someone responds to the advert the board will appear, if it isn't showing already, reset ready to play.

Challenging someone directly

If you know the name of someone on the server you can challenge them to a game by typing match semicolon or whatever the nickname is. If they accept the board will appear, if it isn't showing already, reset ready to play.

Accepting a challenge

If someone challenges you to a game you will be told about it in the Output area and you will be asked to type in accept or decline alternatively you can click on "accept" or "decline" with the mouse. If you accept the board will appear as before.

Customising the server

There are many default settings that the server has that you can change. They are all changed using the set command. To see them type variables (read help variables for more info). You should now see a list of variables that you can change. If you are a member any changes made will be remembered next time you log on. To get help on these variables type help v_variable - where variable is the variable name eg. help v_autoflag.

Here are some useful variable settings:

  • set autoflag 1. When set to 1 when your opponent is out of time you will automatically win the game. I think most people have this set, especially for rated games. to switch of autoflagging type set autoflag 0
  • set highlight 3. Highlights certain aspects of the servers output like the name of someone telling you something.
  • set bell 1. Switch on the beep. You will hear a beep at certain times like when a move is made.
  • set silence 1. Stops all messages except from your opponent and personal tells appearing on the output area whilst playing. This reduces the distractions.
  • set open 0. Stops people challenging you to a match. set open 1 reverses this.

Known problems

  • Occasionally it will be your turn but you can't move and the faded clock is counting down. If this happens type refresh and the problem will clear.
  • There may be a delay between you playing and the server receiving your command or move (if you have the beep on you will notice a time lag between moving and getting a beep) this is known as server lag or just lag. Unfortunately this time comes off your playing time. If the lag gets really bad reconnecting usually helps - a rated game can be restarted where you left off, if you must disconnect.
    Other computers can use timeseal which means that if your opponents use it they don't lose the lag time when they move. The consequence of this is that you are at a great time disadvantage when playing very short games like lighning chess. It is better to play games with some increment per move in the time controls, something like 2 6, then the effects of lag become less significant.
    You can test your lag by typing ping your_name. (you can also test if your opponent is lagged with ping opponent_name)

Customising Netchess

If you define NetChess$Choices to point to a directory Netchess will save its options there otherwise NetChess saves its options in the <Choices$Write>.NetChess directory. If Choices$Write is not defined the options will be put in the !NetChess.choices directory.


To do things when connected to the server you have to type in commands. Macros are a way of saving on typing by having commands available on the main menu. To edit the menu click on Edit macros... and a file will pop up in a text editor. A typical macro menufile is shown below

Netchess macro menu
# if a line contains line="on" the entry will
# have a line after it.
name="Accept" value="accept" line="on"
name="Match kriten" value="Match kriten 10 10 "

This will put 2 entries on the main menu Accept and Match kriten. Clicking on Accept will send accept to the server as if you had typed it into the input line and pressed return. The second entry Match kriten will put match kriten 10 10 in the input line. It puts it in the input line and doesn't send it direct to the server because there is a space at the end of the value.

The first line of the file must be

Netchess macro menu

Any blank lines or lines starting with # are ignored. To add a new entry simply add a line of the form:

name="name on the menu" value="command text" line="on"

  • name is the text that will appear on the menu.
  • value is the text that will either be sent to the server if there is no space at the end otherwise it is put in the input line.
  • line="on" adds a line after the entry on the menu and is optional.

When you are happy with the changes just save the file (with the same filename).

Server menu

You can modify the server menu (off the iconbar icon menu) by selecting Edit... on that menu. A server menu file will appear in a text editor. The format of the server menu file is similar to the macro menu. A typical menu is shown below.

NetChess server menu
# putting default="true" on a line makes adjust
# on the iconbar icon do that entry
name="me freechess" value="" default="true" line="on"
name="freechess" value=""
name="icon" value=""

The first line of the file must be

Netchess server menu

Any blank lines or lines starting with # are ignored. To add a new entry simply add a line of the form:

name="menu text" value="nickname:password@server:port" line="on" default="true"

(all on one line)

  • name is the text that appears on the server menu.
  • value is the server connection details of the form nickname:password@server:port. If you have not registered as a member you will not have a nickname and password so the value would be server:port and you will be asked to login as a guest when you select the entry.
  • line="on" adds a line after the entry on the menu and is optional.
  • default="true" makes adjust click on the iconbar icon select that entry and is optional. It should only appear on one entry in the file. If there are more lines with default="true" on the last one is used.

When you are happy with the changes just save the file (with the same filename).


The choices dialogue box (on the iconbar menu) allows you to customise various display settings.

Save directory

If you set NetChess$Choices to a directory before NetChess is run, NetChess will save it's files to that directory. If NetChess$Choices is not set the files are saved to <Choices$Write>.NetChess and if Choices$Write is not defined they are saved to !Netchess.setup.

!NetChess Copyright Statement and Disclaimer

NetChess is Copyright (c) 2001 Colin Granville. All rights reserved.

Redistribution and use of this Demonstration program is permitted provided that the following conditions are met:

1. Redistributions of this must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

3. You may only use this demonstration version for 30 days.


Colin Granville