User Tools

Site Tools


Manual Page of the discontinued X11 cfclient

Since version 1.50 the old GTK-1 and X11 clients had been removed from the source code repository.

This manual page had been converted to text by some [gnt]roff acrobatics and then by ps2ascii and needed some manually editing.
Version : 1.10.0 .

Manual Page


cfclient - X11 client program for crossfire servers.
gcfclient - gtk client program for crossfire servers.


client [-help] [-server server] [-port number]
[-display display] [-pix|-xpm|-png] [-sync]
[-cache|-nocache] [-showicon]
[-echo] [-scrollines number]


cfclient/gcfclient is an X11 program for connecting to crossfire servers. Crossfire is a multiplayer graphical adventure game that mixes aspects of Gauntlet (TM), nethack, moria, and Ultima (TM).

This man page describes options for the X11 client of crossfire (cfclient). Many of these options should also be valid for the gtk version (gcfclient). The configure/make process will build the gtk version if it finds the necessary libraries, otherwise it will build the X11 version.


-server <server> Sets the server to play on. If no option is given, it will default to localhost.

-port <number> The port number of the server to connect to. By default, it will use port 13327 (standard port). However, certain servers may use other ports.

-display <display> The display to open the windows on. If this option is not given, it will use the DISPLAY environmental variable to determine the display.

-split|-nosplit -split starts the windows up in split windows mode. In split windows mode, 6 seperate windows are created - these individual windows can then be moved around and resized as desired. -nosplitstarts the game up with a single window - this is the default. The option is useful if your saved defaults are set for -split (see Saved Defaults further down).

-font <name> Use the given font instead of the default 8×13. Only fixed width fonts will work properly.

-noautorepeat Disable autorepeat on directional keys. This may be useful when playing on a distant remote server. This flag may be toggled while playing with the 'autorepeat' command.

-echo Echo commands as they are entered. Normally, commands bound to keys are just sent to the server without any echoing on the client of what that command actually was. This option causes the commands to also be printed in the information window as they are sent to the server.

-mapsize XxY Sets the desired viewable map window. X and Y are number of tiles. Note that larger map sizes are likely to consume more bandwidth, cpu time, as well as just screen real estate. The maximum map size may vary server to server. The client will try to negotiate the largest viewable map in each dimension. Note that there is no requirement that the viewable map be square. Due to performance issues, it is strongly suggested that expirementation is done with this value to find a size that gets acceptable performance (simple test - go to the start town, run in some direction, stop running and see how long it takes before the client stops moving you).

-pix|-xpm|-png This determines the graphic image types to use.

-pix uses pixmap images - these are two color images with no masking (one image per space.).

-xpm uses XPM format images - these are multicolored images with masking, so multiple images per space can be displayed. XPM images require more local processing power (unless you are on a very old machine, this should not be an issue), the installation of the XPM library, and also require more bandwidth to download (however, see the -cache option further down.) Png have all the same features of XPM, but are slightly larger (32×32 instead of 24×24), appear better, and do the the efficiency of the png format, actually take less bandwidth to transmit than the xpm images. Using the png images require that the client has been compiled with png support.

-pngximage gcfclient only. This option is only meaningful if png graphics are being used. It uses a GdkRgb structure - this allows much better effects (especially darkness). Performance may be worse when using this option - this depends on many factors. Like the mapsize option above, it is suggested the experimentation is done to make performance is still acceptable. This option does not affect bandwidth - it only affects cpu performance.

-sdl gcfclient only. Will only be available if the SDL library was available when the client was com-piled. This is similar to -pngximage above - it still uses png images, but uses the SDL library to actually draw them to the screen. This is slightly faster than -pngximage - if you have SDL, you should use this instead of -pngximage.

-showicon This shows a little icon next to items in your inventory that contains a brief description of some of the item properties (magic, cursed, equipped, etc.) This can make spotting some items easier, but some players may not like the extra space these icons take up or the

-scollines <lines> This is the number of lines to use in the information window. By default, the size of the window is used (no scrollback ability). With this option, a scrollbar will be created and it is then possible to scroll back through old messages. It is strongly recommended you set this to some value, since some areas output more data than will fit in the output window at one time.

-sync Runs the server in synchronous display mode. This option tends only to be useful in debugging purposes - using this will slow down the display and not gain anything for the typical player.

-help Prints out a brief description of the options to standard output.

-cache|-nocache Determines if the client will cache images for future runs. With -nocache, when the server is about to reference an image that the client has yet to receive, it sends that image along to the client. These downloaded images are discarded once the client exists. With -cache, the server sends information about the image it is about to referance. The client can then check its local cache (stored in ~/.crossfire/images) - if it has the image, it creates it off the disk. If it does not have it, it requests it from the server and then stores it in its cache. In the brief time between the request of the image and it actually receives it, that image will be represented by a ? question mark in the map.

-cache option is strongly recommended anytime when your link to the server is slower than home directory access - this is likely to be the case except in case of NFS mounted home directories on the server on the local LAN .

-darkness|-nodarkness Controls whether the server sends darkness information to the client or not. Turning off darkness results in a savings off bandwidth for maps that use darkness code (currently, very few maps use darkness code). Turning off darkness may also be desirable as in some graphics mode the quality of darkness may not add much to the map.

-updatekeycodes The standard behaviour when a player uses the bind command to bind new actions is that the keycode is saved with that binding. Keycodes are specific to keyboards - a sun keyboard will generate a different keycode compared to a PC style keyboard. In most cases, it is not always desirable to have the keycodes get updated, as this may make some bindings unavailable. Using this option will force custom keybindings to get updated for the current keyboard when the client is run.


Once you have logged into the server, you can enter extended commands by typing ' (apostrophe) followed by the extended commands. One of these extended commands is savedefaults. This will save the server, port, image type, split windows mode, scrolllines, showicon, and cache options into ~/.crossfire/defaults.

If you are using split windows mode, you can enter savewinpos as an extended command. This will save the current window positions and sizes into ~/.crossfire/winpos. Next time you run the server client in split mode, it will load these values and resize and move the windows as specified.


This is by far a complete tutorial of gameplay. This section is to provide a basic introduction to logging in and doing a few very basic actions. The first thing that will happen after the client successfully connects to the server is you will be prompted for a name. There are some restrictions to the name you can choose, but alphanumeric characters are all safe. After entering the name, you will then be prompted for a password. When creating a new character, enter whatever you want your password to be. If you get a 'login incorrect' someone else already has that character name with a different password - try another name. If no one has used that name, you will be prompted for the password again to confirm it.

You now start the character creation process. It is beyond the scope of the document to fully describe the pros and cons of different stats and classes. The creation process has different options for swapping stats and choosing a class. Once you have chosen your class, you will be in the middle of a town. The arrow keys will move you in the various directions. There will be a red building almost directly above you - this is the inn where you save your character. There are some signs to your right. To read them, move on top of them and press the 'a' key. This applies the object below you - in the case of signs, it reads it. In the case of buildings, it will cause you to enter the building. To the left of the signs is a small building - this is the beginner dungeon. Enter it, and follow the directions on the signs. It provides a pretty good tutorial on some of the basic actions and features of the game.

To enter extended commands, type the ' (apostrophe) followed by the command. An example would be 'help (apostrophe followed by the help command). Enter command to execute the command.


savewinpos savedefaults These commands were described in the SAVED DEFAULTS options above.

bind unbind bind is used to add new keybindings. Do you want to be able to press one key to cast a fireball? This is what the bind command does. is bound, it is stored in ~/.crossfire/keys and will be used in future plays.

scroll This toggles whether or the information windows scrolls when it gets to the bottom of the window or wraps to the top. Wrapping is slightly less cpu intensive, but is generally harder to read.

scroll Cfclient only. Toggles between scroll and wrap mode. In wrap mode, when text gets to the bottom of the message window, it starts new messages at the top. Scroll is only really useful on very slow systems where the performance hit of scrolling the window is too costly.

magicmap Displays the data from the last time the magic mapping spell was cast. This information can be completely useless if you are now on another map.

cwindow <number> Specifies the number of unprocessed commands to the server. The server processes player commands as the character has actions to perform them - having this number too high can result in extended lengths of time that after you stop entering commands the character is still performing actions. Having this value too low on slow links can result in the character sitting idle even though they have an action comming to them.

autorepeat Toggle the autorepeat handling for directional keys. When disabled artificial keystrokes generated by the autorepeat of the X-server are not sent to the Crossfire server .


~/.crossfire This is a directory that is created that is used to store various files.

~/.crossfire/defaults This contains default settings. This file can in theory be edited by hand - just be careful to keep the same case and whitespace.

~/.crossfire/images This directory is used for the image cache if -cache is being used.

~/.crossfire/keys This contains keybindings you have edited. This file can also be theoretically edited - changing existing entries is much safer than trying to figure out the syntax for new entries.

~/.crossfire/winpos Window positions and sizes to use in split window mode. This file can also be edited by hand.

Please let me know about any bugs you find in the client.
AUTHOR Copyright (C) 1994,2000 Mark Wedel (
GTK port by David Sundqvist (
SDL support added by Scott MacFiggen (smurf@CSUA.Berkeley.EDU)
There are a great many other contributors to both the client
and server that are not mentioned here.

client/man6_cfclient_6_manualpage.txt · Last modified: 2018/03/11 06:34 by karl