XQF Documentation

XQF 0.9.11

December 17th, 2002
Written by: Alex Burger <alex_b@users.sourceforge.net>

Documentation contributors:
Jordi Mallach <jordi@debian.org>

Table of Contents

> Overview

> System Requirements

> Downloading

> Change Log

> Installation / Compiling

> > RPM Binary package
> > DEB Binary package
> > TAR.GZ source code
> > CVS source code

> Using XQF

> > Launching XQF
> > Configuring XQF
> > Toolbar
> > Window Panes
> > Bottom Status bar
> > Menu bar

> > > File
> > > Edit
> > > View
> > > Server
> > > Preferences

> > Filters

> Game Specific Information

> > Quake 3
> > Soldier of Fortune
> > Soldier of Fortune 2
> > Unreal Tournament
> > Half Life
> > Descent 3
> > Serious Sam

> Troubleshooting / FAQ

> XQF-RCon

Overview

XQF is a 3D action game (such as Quake, sequels and derivatives) server browser. It uses X and is written using the GIMP Tool Kit.

XQF is a front-end to QStat, a program by Steve Jankowsk which is used to retrieve server info.

With XQF you can search for the following games:

> Quake
> Quake World
> Quake2
> Quake3
> Return to Castle Wolfenstein
> Hexen22
> HexenWorld
> Sin
> Half-Life
> Kingpin
> Soldier of Fortune
> Soldier of Fortune 2
> Tribes 2
> Heretic 2
> Unreal Tournament
> Unreal Tournament 2003
> Rune
> Descent 3
> Serious Sam

> Other games that use the 'Gamespy' type master protocol such as
> No one Lives Forever
> Rally Masters
> Turok 2
> Shogo

Searching for games involves communicating with 'master servers' on the Internet which game servers advertise to on the Internet. XQF can spawn your client into a selected server with customized options. You can also apply filters while searching for servers, trimming full or empty servers, for example.

The program has been translated to the following languages: English, Spanish, German and Catalan.

Highlight of features:
- Supports (unauthenticated) Gamespy style master servers using QStat 2.4a
- Displays server rules and player info
- Players and servers sorting
- Favorite servers list
- Simple filtering for servers
- Player Filter (Buddy Lists)
- Player name, color, skin and model selection
- QuakeWorld skin visualization with coloring
- Custom configs
- Decodes and displays extended bit-field server flags (dmfalgs,
teamplay, etc...)
- Remote server administration tool (rcon) for QuakeWorld, HexenWorld,
Quake2, Quake3: Arena, Half-Life, Sin, Kingpin, Heretic2 servers
- Busy server redial

System Requirements

The minimum system requirements are:

A UNIX computer and C compiler (gcc)
QSTAT 2.5c (latest version recommended to ensure full functionality)
glibc 2.1+
Xfree86 3.3.3+
GTK+ 1.2.5+
gettext 0.10.36+ (ONLY required when building directly from CVS)
wget to retrieve html server listings from the Web

XQF has been tested as is known to run on Intel / AMD and PowerPC platforms.

Downloading

XQF can be downloaded as a pre-compiled binary for some distributions, or as source code. The source code can be downloaded as either a .tar.gz file, or via CVS. See the file section of http://www.linuxgames.com/xqffor downloading instructions.

Change Log

> XQF 0.9.11 -- December 18, 2002
> - Serious Sam support (requires SMS gametype via ~/.qstatrc). Does not currently support any masters.
> - Fixed -game parameter for Half-Life
> - RTCW voteflags decoded in properties pane
> - Visual marker in Map column to show if you have the listed map installed on your comptuer. (Q3, RTCW, UT, Rune, UT2)
> XQF 0.9.10 -- November 16, 2002
> - File dialog boxes for adding game command line and directory
> - Greatly speed up the startup of XQF when loading large lists
> - Greatly speed up response time when applying filters to large lists
> - Ability to automatically set cl_punkbuster when connecting to a server in Q3A
> - Added Punkbuster icon to Priv column
> - Ability to define custom command-line arguments for a game based on the 'game type
> - Q3A now searches for a matching mod directory. Should correctly launch even if mod directory is incorrect by case
> - Added sound disable support for Unreal based games
> - Can now hide games that are not configured
> - Changed default Quake3 protocol to 68
> - Sound support for XQF events using external sound player
> - Busy server redial with reserved slots support
> - Soldier of Fortune 2 support (requires qstat sof2s gametype via ~/.qstatrc or qstat >2.5b)
> - Use correct parameters (-game,+connect,+password) when launching Half-Life
> - New master type of "file" to read IP addresses from a file
> - Unreal Tournament 2003 support
> - Fixed Half-Life rcon support
> - Player search visible improvements
> - Fixed Tribes2 master support and added additional masters
> - Updated QuakeWorld master list
> - Unlimited number of server filters instead of ten
> - Changed default Wolf protocol to 60
> - Standalone rcon program that doesn't need X (xqf-rcon)
> - Quake3 launching now uses 'game' instead of 'gamename' to help prevent launch problems due to case
> - Various segfault fixes
> - XQF now requires qstat 2.5c
> XQF 0.9.9 -- July 3, 2002
> - Added Voyager Elite Force support
> - Changed default Quake3 protocol to 67
> - You can now select Quake3 and Wolfenstein's protocol
> - Added 20sec timeout for wget (nice if Gameaholic is down)
> - Added Tribes2 server statistics
> - Fixed Tribes2 and Quake3 masters
> - Added support for LAN broadcast queries
> - Improved master support handling
> - Added preferences tab for Quake3 memory settings
> - New Catalan translation
> XQF 0.9.8 -- December 17, 2001
> - Repackaged with libtool 1.4, so it builds on all Linux architectures
> - Fixed trasparency of Gamespy's pixmap
> - Don't distribute debian stuff
> XQF 0.9.7 -- December 16, 2001
> - Support for games using the GameSpy protocol
> - Support for Descent3 with qstat 2.4e (please note Descent can't be launched from within XQF at the moment)
> - Support for Rune
> - Reorganization of settings dialogs
> - New gametypes for Quake3 mods Threewave and TribalCTF
> - Support for Wolfenstein retail (protocol 57)
> - Server statistics for Wolfenstein, Kingpin and Half-Life
> - Works on PowerPC again
> XQF 0.9.6g -- September 25, 2001
> - Internationalization (gettext) support, Spanish and German translations
> - Initial Return to Castle Wolfenstein support
> - Tribes2 support
> - Support for Q3A protocol v66
> - Added "Quake3" preferences page which allows the protocol version and other options to be changed
> - Added "General" preferences page, which hosts many of the options which were in "Appearance" previously
> - Added "game type" filter
> - New man page
> - New documentation in html format (docs/xqfdocs.html)
> - XQF now requires qstat 2.4c
> XQF 0.9.6f -- March 23, 2001
> - Multiple server filters; Filter name configurable and appears in the status bar
> - Lock Icon to show if server is private or not; icon next to number of players turns yellow if all of the public client spaces are full
> - Pressing "Insert" brings up the add server dialog; pressing SHIFT+Insert adds the currently selected server to ones favorites
> - Added support for new Team Arena Game types
> - Protocol 48 (1.27) Q3A servers get queried with protocol 48 in qstat
> - Execute "PreLaunch" script when launching game (for use with ICQ scripts, etc.)
> - Improved support for Half-Life servers
> - Improved support for Unreal Tournament
> - Improved support for Quake2
> - Hack for supporting multiple Q3A protocols i.e. xqf can run different Q3A's depending on if it is a 1.17 or 1.27 server: see the README file
> - Q3A hack for connecting to arena servers so that all of the vm_* settings are correct on the command line
> - Resolved one major source of core dumps. It should be much more stable now

Installation / Compiling

> RPM Binary package:

> > Make sure QSTAT 2.5c or higher is already installed

> > As root, execute the command:

> > rpm -Uvh xqf-xxx-i386.rpm

> DEB Binary package:

> > Make sure QSTAT 2.5c or higher is already installed

> > As root, execute the command:

> > dpkg -i xqf_xxx-v_arch.deb

> TAR.GZ source code

> > Make sure QSTAT 2.5c or higher is already installed

> > Extract the source code:

> > tar xvfz xqf-xxx.tar.gz

> > cd into the directory:

> > cd xqf-*

> > Run configure script:

> > ./configure

> > Compile source code:

> > make

> > Install compiled binary and man page (this step must be done as root):

> > make install

> CVS source code

> > Make sure QSTAT 2.5c or higher is already installed

> > Create the 'configure' script:

> > ./autogen.sh

> > Run configure script:

> > ./configure

> > Compile source code:

> > make

> > Install compiled binary and man page (this step must be done as root):

> > make install

> > The default location for XQF /usr/local/bin.

Using XQF

Launching XQF:

> The first time you launch XQF, it will attempt to search for games in your path. If any are found, it will automatically configure the command line for the game and attempt to configure the game directory based on the command line found. This should work with Quake1, QuakeWorld, Quake2, Quake3, Return to Castle Wolfenstein, Soldier of Fortune, Descent3, Tribes 2, Unreal Tournament 1 / 2003 and Rune.
> If no games are found, the Source list will show ALL supported games. If XQF finds one or more supported games, it will only show CONFIGURED games in the Source column. See the Preferences / Appearance menu documentation for more information.
> XQF doesn't accept any command line options at the moment, except for a debug setting.

> xqf -d N

> Sets debug level to `N', where N is greater than 0. If N is greater than 5, XQF will output a lot of debug information.

> XQF is normally installed into /usr/local/bin. If /usr/local/bin is not in your path, launch xqf with:

> /usr/local/bin/xqf -d N

> You can also add the directory to your path, or simply make a symbolic link in /usr/bin. For example, as root:

> ln -s /usr/local/bin/xqf /usr/bin/xqf

> XQF can be customized via GTK's rc files. XQF parses files /etc/gtkrc, $HOME/.gtkrc and $HOME/.qf/gtkrc.

Configuring XQF:

> Please see the Menu Bar / Preferences section for a description of the Preferences menu items.

Toolbar:

> Update, Refresh, Refresh Selected, Stop, Connect, Observe, Record S Filter, P Filter, SF Cfg, PF Cfg

> Update:

> > See 'View - Update from Master'

> Refresh:

> > See 'View - Refresh'

> Refresh Selected:

> > See 'View - Refresh Selected'

> Stop:

> > Abort the current task

> Connect:

> > See 'Server - Connect'

> Observe:

> > See 'Server - Observer'

> Record:

> > See 'Server - Record Demo'

> S Filter:

> > Enable the currently selected Server filter

> P Filter:

> > Enable the currently selected Player filter

> SF Cfg:

> > See 'Preferences - Server Filter'

> PF Cfg:

> > See 'Preferences - Player Filter'

Window Panes:

> Left pane: Source
> Top pane: Server list
> Middle bottom pane: Player list
> Bottom right pane: Server info

> While in the Server pane:

> - Left double-click launches game on selected server.
> - Right click pops up server option menu.
> - Middle click selects one server and refreshes its information.

Bottom status bar:

> Left bar: Current XQF activity
> Middle bar: Filter information
> Right bar: Moving activity bar

Menu bar:

File, Edit, View, Server, Preferences

File:

> Statistics:

> > Servers tab:

> > Display server statistics for all games such as number of servers, # up, times on, # down, # info not available, # of players

> > O/S tab:

> > Quake2, Quake3, WolfenStein, Kingpin and Half-Life server statistics based on CPU/architecture and operating system

> Exit:

> > Exit / quit XQF

Edit:

> Add new Server:

> > Add a new server to the Favorites list

> Add to Favorites:

> > Add the currently selected server(s) to the Favorites list

> Remove from Favorites:

> > Delete server entry from Favorites list. This is only available when viewing the Favorites list.

> Copy:

> > Copy basic server information to clip board:

> > ip:port

> > Example:

> > 24.101.93.126:27912

> Copy+:

> > Copy more detailed server information to clip board:

> > ping ip:port name map curplayers maxplayers

> > Example:

> > 0 24.101.93.126:27912 Toronto_NH_BatCave q2dm2 0 of 5

> Add Master:

> > Add a master server to the 'Source' pane.

> > Enter the name of the master server, the type of game, and the master server address. XQF supports the following types of master servers in the address field:

> > master://

> > > Considered a standard master server. When XQF calls QSTAT, it will use use QSTAT's standard master support. For example, Quake2 would use the qstat option '-q2m'

> > > Example:

> > > master://q2master.planetquake.com

> > gmaster://

> > > When XQF calls QSTAT, it will use the '-gps' option to query 'Gamespy' style master servers. This will not allow you to query master servers at gamespy.com, as they use an key to only allow Gamespy users to use their master servers.

> > > Unreal Tournament uses this type of master server protocol, but does not require the key.

> > > Example:

> > > gmaster://unreal.epicgames.com

> > http://

> > > Parses html pages for server listings. Common in Quake1, Quake2, Kingpin and Heretic II.

> > > Example:

> > > http://www.gameaholic.com/servers/qspy-heretic2

> > lan://

> > > Issues a broadcast search for servers in your LAN. This does not work with all games. UT and Rune use the Gamespy protocol for LAN queries and will therefore be listed under "Generic Gamespy".

> > > Example:

> > > lan://255.255.255.255

> > file://

> > > Parses a list of servers from a local text file that is in the html master format.

> > > Example:

> > > file://~/quake3-servers
> > > file:///home/alex/quake3-servers
> > > Sample text file:
> > > 61.139.69.204:27960
> > > 68.41.236.152:27960
> > > 213.40.130.42:27961

> > Note: Not specifying a prefix will default to master://

> Rename Master:

> > Allow you to change the name of the master. You can not modify the address or game type.

> Delete Master:

> > Removes a master from the Source list

> Find Player:

> > Search for a player by name using an exact match string, sub string or regular expression.

> Find Again:

> > Find the next player that matches the previously defined search string.

> Properties:

> > Displays the following server properties:
> > - IP address
> > - game port
> > - host name (if available)
> > - date and time of last refresh
> > - number of reserved slots (see below)
> > - sources - what master(s) the server is listed in
> > - custom cfg (see below)
> > - server password (if supported for this game)
> > - spectator password (if supported for this game)
> > - RCon password (if supported for this game)
> > Number of reserved slots is used by the redial feature to determine how many free slots must be free on a server before it attempts to connect. For example, if the reserved slots are set to 2 and there are a max of 8 players in the game, there must be 3 free slots avabilabe (5/8 players in the game) for it to launch the game.
> > Server, spectator and RCon password allow you to set the password for that particular server so you will not be prompted when connecting. The password is stored in the configuration file (~/.qf/config). The selected game determines which of these options are available.
> > For custom cfg, enter a custom configuration file to be executed when the game starts. For example: custom2.cfg. If you have specified a custom configuration file for the game in Preferences / Games, they will both be executed.

View:

> Refresh:

> > Refresh (ping) all servers for the current game / source

> Refresh selected:

> > Refresh (ping) all servers for the currently selected / highlighted servers

> Update from Master:

> > Fetch the latest list of servers from the master server.

> Show host names:

> > Configure XQF to attempt to convert IP addresses to host names. Also available in Preferences menu.

> Show default port:

> > Configure XQF to display the port next to the IP address if it is considered the default port for the game. Also available in the Preferences menu.

> > For example:

> > When on, a Quake2 server on port 27910 would be displayed as:

> > quake2.somedomain.com:27910

> > When off, a Quake2 server on port 27910 would be displayed as:

> > quake2.somedomain.com

Server:

> Server Filters:

> > Select a custom filter. The bottom status bar will update showing your selection. The filter is not activated until you click the 'S Filter' button on the tool bar.

> Connect:

> > Connect to selected server.

> > The server is 'pinged / refreshed' before the connection is attempted. If the server is found to be down, you will be warned before the game is launched.
> > If the game is busy (no free player slots) you can choose to Launch anyways, Cancel or Redial. When redialing, XQF will refresh the server every 5 seconds until a free slot is available. For servers that reserve slots for administrators, you can define the number of free slots by right clicking on the server and entering the number of reserved slots.

> > If the server has a password set, a password prompt will appear.

> Observe:

> > Launches the game in observer / spectator mode. Only effective for some games.

> Record Demo:

> > Launches game with +record option. Only works in Quake1, Quake2 and Quake3.

> Add to Favorites:

> > Add the currently selected server(s) to the Favorites list.

> Delete:

> > Delete server entry from Favorites list.

> DNS Lookup:

> > Attempt to convert IP addresses to host names of the selected servers.

> RCON:

> > Remote Console to Quake2 servers. Will be prompted for rcon password.

> Properties:

> > See Edit / Properties

Preferences:

> General:

> > On Startup

> > > Refresh Favorites:

> > > Refresh / ping servers in Favorites when XQF starts

> > > Scan for Maps:

> > > Scans your game directories for maps you have installed for the following games:

> > > - Quake3
> > > - Return to Castle Wolfenstein
> > > - Unreal Tournament
> > > - Unreal Tournament 2003
> > > - Rune
> > > The Game column will contain a red -- before the game name if you do not have the map installed on your computer.
> > > Note: This will increase the time it takes for XQF to launch and you will notice a lot of disk activity during startup.

> > On Exit

> > > Save Server lists:

> > > Save list of servers when you quit XQF. Recommended if you have a slow connection

> > > Save server information:

> > > Save server information such as map name, game type, flags etc when you quit XQF. Recommended if you have a slow connection

> > > Save player information:

> > > Save list of players and scores when you quit XQF.

> > When Launching a Game

> > > Terminate XQF:

> > > Quit XQF when you launch a game. Not normally necessary unless you areextremely low on RAM

> > > Create Launchinfo.txt:

> > > A Launchinfo.txt file will be created in the (home directory)/.qf directory. This can be used by external programs such as IRC scripts that notify other people in IRC that you are playing a game. Usually used in combination with 'Execute prelaunch'. Saves the same information as Copy+ does:

> > > ping ip:port name map curplayers maxplayers

> > > Iconify XQF window:

> > > Iconify / minimize the XQF window when you launch a game.

> > > Execute prelaunch:

> > > A file (if exists) PreLaunch will be launched / executed from the (home directory)/.qf directory before launching the game. This can be used by external programs such as IRC scripts that notify other people in IRC that you are playing a game. Usually used in combination with 'Create Launchinfo.txt'.

> Games

> > For each game supported by XQF there are one or more configuration tabs.
> > Following are the common options for all games.

> > Invoking:

> > > Command Line:

> > > > Command to execute the game

> > > > Example with game in your path: quake2

> > > > Example with game not in your path: /usr/bin/quake2

> > > > Note: If the command you enter is in your path, it will be expanded to the full path when you click OK, if you press &ltenter> inside the text box, or you click on the Guess button.

> > > > The Suggest button will search for the game in the search path and if found, will populate the command line. This should work with Quake1, QuakeWorld, Quake2, Quake3, Return to Castle Wolfenstein, Soldier of Fortune, Descent3, Tribes 2, Unreal Tournament 1 / 2003 and Rune.

> > > Working directory:

> > > > Directory to run the game from

> > > > Example: /games/quake2

> > > > The Guess button will try to determine the correct directory for the game. This is done by using the following rules:

> > > > > - If Command Line is a symbolic link, use path of the directory of the file it is linked to
> > > > > - If Command Line is NOT a symbolic link, use path of the defined Command Line

> > > > For example:

> > > > > - quake2 is in your path and is a sym link to /games/quake2/quake2 would result in /games/quake2/
> > > > > - /usr/bin/quake2 sym linked to /games/quake2/quake2 would result in /games/quake2/
> > > > > - /games/quake2/quake2 (not a sym link) would result in /games/quake2/

> > > > Note: If the Command Line does not contain a path and is not in your search path, or a symbolic link contains any '..'s (such as ../../games/quake2) then nothing is returned.

> > > Disable sound:

> > > > Disable sound if the game supports the option on the command line. For example, Quake2 would be called with the
> > > > +nosound switch

> > > Disable CD audio:

> > > > Disable cd audio if the game supports the option on the command line. For example, Quake2 would be called with the
> > > > +nocd switch

> > Following are the game specific options:

> > Quake

> > > Invoking:

> > > > Custom CFG:

> > > > > Enter a custom configuration file to be executed when the game starts. For example: custom.cfg

> > > Player Profile

> > > > Enter your player name. Can also define your player's colour, skin or model

> > QuakeWorld

> > > Weapons

> > > > The highest weapon that Quake should switch to

> > > > > upon a weapon pickup:

> > > > > > Choose the highest weapon that Quake should switch to when you pick up a new weapon. Passed to Quakeworld as the 'setinfo w_switch x' switch

> > > > > upon a backpack pickup:

> > > > > > Choose the highest weapon that Quake should switch to when you pick up a backpack. Passed to Quakeworld as the 'setinfo b_switch x' switch

> > > > > Disable auto-aiming:

> > > > > > Disable automatic aiming

> > > > > > This is passed to Quakeworld as the 'noaim' switch.

> > > Options:

> > > > Skins:

> > > > > Use skins:

> > > > > Allow skins to be used during the game.

> > > > > Don't use skins:

> > > > > Disable skins. This is passed to Quakeworld as the 'noskins' switch.

> > > > > Don't download new skins:

> > > > > QuakeWorld and Quake2 can automatically download skins from servers you play on if you donot already have the skins on your computer. This options disables the downloading of skins.

> > > > Rate:

> > > > > This controls network packets so that your connection bandwidth does not get saturated. Lowering the number reduces the number of packets sent / received. Slower connections should use a lower rate setting.

> > > > > Default is 2500.

> > > > > This is passed to Quakeworld/Quake2 as the 'noaim' switch.

> > > > Pushlatency:

> > > > > Do not set (use game default)

> > > > > > Use whatever the Quakeworld default is

> > > > > Automatically calculate from server ping time

> > > > > > Use the following formula to determine pushlatency setting.

> > > > > > If ping is <= 0, set to 10 (minimum)

> > > > > > If ping is >= 2000, set to 1000 (maximum)

> > > > > > Otherwise, set to (((ping / 2) +9 ) / 10 ) * 10

> > > > > > This is passed to Quakeworld as the 'pushlatency' switch.

> > > > > Fixed value

> > > > > > Enter a value to be passed to Quakeworld

> > > > Troubleshooting:

> > > > Disable delta-compression (cl_nodelta)

> > > > ??

> > > > Disable player/entity prediction (cl_predict_players)

> > > > ??

> > > Player Profile:

> > > > Name

> > > > > Enter your player name. Can also define your player's team, skin and colors. Uses pictures from your Quake directory.

> > Quake2

> > > Invoking:

> > > > Custom CFG:

> > > > > Enter a custom configuration file to be executed when the game starts. For example: custom.cfg

> > > Options:

> > > > Skins:

> > > > > Use skins:

> > > > > Allow skins to be used during the game.

> > > > > Don't use skins:

> > > > > Disable skins. This is passed to Quakeworld as the 'noskins' switch.

> > > > > Don't download new skins:

> > > > > QuakeWorld and Quake2 can automatically download skins from servers you play on if you donot already have the skins on your computer. This options disables the downloading of skins.

> > > > > > Rate:

> > > > > This controls network packets so that your connection bandwidth does not get saturated. Lowering the number reduces the number of packets sent / received. Slower connections should use a lower rate setting.

> > > > > Default is 2500.

> > > > > This is passed to Quakeworld/Quake2 as the 'noaim' switch.

> > > > Troubleshooting:

> > > > Disable delta-compression (cl_nodelta)

> > > > ??

> > > > Disable player/entity prediction (cl_predict_players)

> > > > ??

> > > Player Profile:

> > > > Name

> > > > > Enter your player name

> > > > Model / Skin

> > > > > Define your player's model and skin. Uses pictures from your Quake2 directory.

> > Quake3: Arena

> > > Invoking:

> > > > Custom CFG:

> > > > > Enter a custom configuration file to be executed when the game starts. For example: custom.cfg

> > > Custom Args:

> > > > Custom command line arguments can be defined for any game type based on the Game column.
> > > > Some game modifications (mods) require special command line options for the game to start correctly. An example is Rocket Arena. For Rocket Arena to launch correctly, the vm_game, vm_cgame and vm_ui variables must be set to 0.
> > > > To create a new argument, click New and enter the name of the game that appears in the game column (example: arena), and in the second box enter the arguments separated by spaces (example: +set vm_game 0 +set vm_cgame 0 +set vm_ui 0). Click Add / Update to insert into the list.
> > > > There can only be one definition for each unique game at one. Case is ignored for the game name.
> > > > Clicking 'Add Defaults' will add any default arguments that are included with XQF.

> > > Options:

> > > > Master server protocol version:

> > > > > Passes the defined protocol version to QSTAT when finding servers. Each patch for Quake3 usually changes this value.

> > > > > This is passed to QSTAT as -q3m,## where ## is the protocol version. Defaults to 68 (v1.32).

> > > > vm_cgame_fix:

> > > > > Sets command line options to make Quake3 prefer QVM to shared objects (.so). This should only be required if there are .so files from an older release floating around in baseq3.

> > > > Rocketarena fix:

> > > > > Sets command line options to make Quake3 prefer shared objects (.so) to QVM. Rocket Arena uses shared objects. Only affects Rocket Arena (game type of arena).

> > > > set fs_game on connect:

> > > > > XQF will pass the game directory the server is using on the command line to ensure the game launches and connects properly.

> > > > set cl_punkbuster on connect:

> > > > > Sets command line options to ensure cl_punkbuster is set to 1 if the server has it enabled (server punkbuster variable)

> > > Memory

> > > > Pass memory settings on command line:

> > > > > Enable or disable the passing of the memory options specified below

> > > > com_hunkmegs, com_zonemegs, com_soundmegs, cg_precacheddmodels:

> > > > > Allow you to set the values passed for each of the above variables.

> > > > Preset values:

> > > > > Click a button to set the memory options based on the amount of memory you have, or the defaults.

> > Wolfenstein

> > > Options:

> > > > Master server protocol version:

> > > > > Passes the defined protocol version to QSTAT when finding servers. Each patch for Wolfenstein usually changes this value.

> > > > > This is passed to QSTAT as -q3m,## where ## is the protocol version. Defaults to 59 (v1.32)

> > > > set fs_game on connect:

> > > > > XQF will pass the game directory the server is using on the command line to ensure the game launches and connects properly.

> > Voyager Elite Force

> > > Options:

> > > > Master server protocol version:

> > > > > Passes the defined protocol version to QSTAT when finding servers. Each patch for Voyager Elite Force usually changes this value.

> > > > > This is passed to QSTAT as -q3m,## where ## is the protocol version. Defaults to 24.

> > > > set fs_game on connect:

> > > > > XQF will pass the game directory the server is using on the command line to ensure the game launches and connects properly

> > Tribes 2 - Player Profile:

> > > Login Name:

> > > > Login name to use to log into Tribes 2. If present, it will be passed on the command line. To prevent a password prompt, you must save your password inside of Tribes 2.

> > Unreal / UT / UT 2003

> > > Custom Args:
> > > Custom command line arguments can be defined for any game type based on the Game column.
> > > Some game modifications (mods) require special command line options for the game to start correctly.
> > > To create a new argument, click New and enter the name of the game that appears in the game column, and in the second box enter the arguments separated by spaces. Click Add / Update to insert into the list.
> > > There can only be one definition for each unique game at one. Case is ignored for the game name.
> > > Clicking 'Add Defaults' will add any default arguments that are included with XQF.
> > > See the Quake3 section above for an example.

> Appearance

> > Server List:

> > > Show host names:

> > > > Attempt to convert IP addresses to host names.

> > > Show default port:

> > > > Configure XQF to display the port next to the IP address if it is considered the default port for the game. Also available in the Preferences menu.

> > > > For example

> > > > When on, a Quake2 server on port 27910 would be displayed as:

> > > > quake2.somedomain.com:27910

> > > > When off, a Quake2 server on port 27910 would be displayed as:

> > > > quake2.somedomain.com

> > > Sort servers real-time during refresh:

> > > > Sort servers names while refreshing the list.

> > > Refresh on Update:

> > > > Automatically refresh server list after updating list of servers.

> > > Show only configured games:

> > > > If enabled, will only show games in the Source column that have a command line configured.

> > Toolbar:

> > > Icons / Text / Both

> > > > Show top toolbar as icons, text or icons/text

> > > Tooltips:

> > > > Enable or disable tooltips. Gives a description of a button when you hold the mouse pointer over it for a couple seconds

> Qstat:

> > Qstat Options:

> > > Number of simultaneous servers to query

> > > > How many servers QSTAT should query at once. This number is passed to QSTAT as the -maxsim switch. Defaults to 20. Increase if you have a high speed connection.

> > > Number of retries

> > > > Number of times QSTAT should retry a server. This number is passed to QSTAT as the -retry switch. Defaults to 3

> Sounds:

> > Sound Enable / Disable

> > > Enable Sound

> > > > Enable or disable the playing of sounds in XQF when an event occurs.

> > > Player Program

> > > > The program used to play sounds. For example:

> > > > > esdplay
> > > > > play

> > > > If the program is not in your path, you must specify the entire path. For example:

> > > > > /myfolder/bin/theplayer

> > > > Note: You may experience sound blocking problems depending on the programs you are running. For example, while playing a song with XMMS configured for OSS output, play (sox) waits until XMMS is finished before playing the sound. Results may vary depending on your system.

> > Sounds

> > > Enter the sound file to play for each event. If the entry does not start with a /, the user's ~/.qf/ directory is assumed. For example:
> > > /home/alex/sounds/stop.wav (absolute path)
> > > sounds/stop.wav (same as ~/.qf/sounds/stop.wav)

Filters:

> Server:

> > Server filters can be used to reduce and or fine tune the servers listed. An unlimited number of custom filters can be defined.
> > To create a new filter, click New. To select an existing filter to edit, click the top left menu selector and select the filter.
> > The current filter can be renamed or deleted by clicking the Rename or Delete buttons.
> > The following options can be defined for each filter:

> > Server would pass filter if:

> > > ping is less than:

> > > > The server's ping must be less than this number to be displayed

> > > The number of retries is fewer than:

> > > > If XQF must retry more than this number to contact a server, remove it from the list

> > > It is not full:

> > > > The server has room for another player

> > > Is not empty:

> > > > Has someone playing on it. BOTS on the server are considered as players

> > > Cheats are not allowed:

> > > > Cheats is not enabled on the server

> > > No password required:

> > > > Server is a public access server

> > > Filter Name (For Menu):

> > > > Name of filter as listed in the Server - Server Filters menu

> > > The game contains the string:

> > > > Enter text that must be in the game name. For example: 'arena'

> > > The Game Type contains:

> > > > Enter text that must be in the game name. For example: 'ctf'

> > > The version contains the string:

> > > > Only servers that have the text in the 'version' variable

> Player:

> > Player filters can be used to help you find your friends on servers. Each player defined has a colour assigned to it - red, green or blue. The server list will display the coloured dot next to the server name if the player is found on that server.

> > Click 'New' and enter a player name using an exact match (string), a partial match (substing) or by using a regular expression.

Game Specific Information

> Following are notes on using specific games with XQF. Most games should work with basic setup in XQF, but some may require special configuration.

> Quake3:

> > Under Preferences - Games, enter the 'command line' and 'working directory'. Nothing special is normally needed.

> > XQF uses the 'game' server variable to determine how to launch Quake3. For example, if the server reports a game of q3ut2, Quake3 will be launched with +set fs_game q3ut2. In some cases, a server may report the incorrect case such as Q3UT2. This would cause XQF to launch Quake3 using+set fs_game Q3UT2 which would result in a new directory being created in your Quake3 directory, and none of the mods files being found.

> > In XQF 0.9.10 and newer, if an exact match is not found in the Quake3 / ~/.q3a directory, a search will be performed to find a matching directory regardless of case. In the above example, Quake3 would be launched with +set fs_game q3ut2even if the server reported Q3UT2 and you had the mod installed as q3ut2.

> > QUAKE 3 ARENA SPECIAL INSTRUCTIONS (AKA HACK) for v1.17 and 1.27

> > This may also apply to newer versions of Quake3 as they are released.

> > In Q3A, clients and servers can only talk with each other if they are using the same protocol. The protocol in Q3A is defined by a number. So, for instance, Q3A 1.17 uses protocol 45 wile 1.27 uses protocol 48. During the switch-over time after ID releases a new point release, it can be frustrating to not be able to connect to any server one wants. However, if you have lots of disk space, it is possible to get around this problem.

> > I (Bill 'EvilBill' Adams) will outline what I did to get it so I can play both 1.17 and 1.27 Q3A games without much fuss.
> > For reference, my Q3A is installed under /usr/local/games/... and I have a symlink from /usr/local/bin/quake3 to ../games/quake3/quake3.

> > (1) Rename /usr/local/games/quake3 (as I used to have it) to /usr/local/games/quake3-1.17.

> > (2) mkdir /usr/local/games/quake3; cd /usr/local/games/quake3

> > (3) cp -Rav ../quake3-1.17 .

> > (4) Install the point release, copy all of the TA pk3 files into baseq3. Remove any old mods from 1.17.

> > (5) cd..; mv quake3 quake3-1.27

> > (6) Edit both of the quake3 scripts so the directories all match, here is the script I use for 1.17: (/usr/local/games/quake3-1.17/quake3)

> > ==begin==
> > #!/bin/sh
> > # Needed to make symlinks/shortcuts work.
> > # Run Quake III with some default arguments

> > LD_LIBRARY_PATH="/usr/local/games/quake3-1.17"
> > export LD_LIBRARY_PATH

> > cd "/usr/local/games/quake3-1.17"
> > quake="./quake3.x86"
> > "$quake" +set in_dgamouse 1 $*
> > exit $?
> > ==cut==

> > (7) [as root], cd into /usr/local/bin. Make symlinks for each of the Q3A directories that correspond to the protocol each uses. So:

> > ln -s ../games/quake3-1.17 quake3proto45
> > ln -s ../games/quake3-1.27 quake3proto48
> > ln -s ../games/quake3-1.27 quake3

> > Note the last one is there as the default.

> > (8) Get a very (CVS) recent version of xqf. You will need >=0.9.6e-beta. Set up the executable for quake3 such that it is the FULL path to quake3, in my case I entered /usr/local/bin/quake3. This is VERY important because of the hack I used where I put 'protoNN' on the end of whatever you entered for the program and see if xqf can fopen it. Without the full path, chances are that xqf will not find it.

> > If you have problems, run xqf with "-d 5" on the command line. This will give you some hints as to that which it is looking.

> Soldier of Fortune (1.06):

> > Create a script in your sof directory called 'startsof-xqf' that contains: ./sof +set console 1 +won_login username password $*

> > Replace username and password with your WoN username and password

> > Make the script executable with: chmod +x startsof-xqf

> > Under Preferences - Games, enter startsof-xqf for 'command line' and enter the directory sof is installed in for 'working directory'.

> > When you connect to a server, SoF will authenticate to WoN and you will have to click 'OK' to the hopefully successful login screen. You should then be connected to the selected server

> Soldier of Fortune 2:

> > Qstat 2.5c supports Soldier of Fortune 2 by using a ,qstatrc configuration file (normally stored in your home directory). You must properly install qstat with the qstatrc configuration file for XQF to work with this game. See the qstat documentation for more information.

> Unreal Tournament (436):

> > Inside of the directory where Unreal Tournament is installed, backup your ut file: cp ut ut.org (ut is a script that finds and launches ut-bin)

> > Edit the ut file and change the line near the bottom from exec "./ut-bin" -log $* to exec "./ut-bin" $* -log

> > (-log and $* need to be swapped)

> > Make sure you are using XQF 0.9.5a-beta or later

> > Under Preferences - Games, enter ut for 'command line' and enter the directory UnrealTournament is installed in for 'working directory'.

> Half-Life:

> > Nothing special required anymore, just enter a command that launches a normal Half-Life such as:

> > > wine hl.exe -- hl.exe -console

> > You should no longer need to specify a special script to launch Half-Life.
> > To play Half-Life under Linux, see the following sites:
> > Linux Half-Life
> > TransGaming

> Descent 3:

> > Descent 3 does not currently launch from XQF. This appears to be a problem with the Descent3 program, and not XQF. Descent3 for Linux does not accept connections to servers from the command line.

> Serious Sam:

> > For Serious Sam to query properly, a QStat configuration file is required.
> > Add the following to the bottom of your ~/.qstatrc file:

> > > # Config for Serious Sam SMS
> > > gametype SMS new extend GPS
> > > name = Serious Sam
> > > default port = 25600
> > > status port offset = 1
> > > template var = SERIOUSSAM
> > > game rule = gametype
> > > end

> > The above configuration was created using the 'QSTAT Config Maker' located at qstat.uglypunk.com.
> > Note: At the time of this release, there are no known Serious Sam master servers that work with QStat / XQF.

Troubleshooting / FAQ

> Please report problems to the XQF home page Forum at http://www.linuxgames.com/xqfor the user mail list at http://sourceforge.net/projects/xqf.

> Most problems can be solved by deleting the '.qf' directory in your home directory. This directory contains the configuration of XQF including game preferences, server lists, player lists etc.

> Q: Do you know of any good web sites with technical information on playing games on Linux?

> A: http://www.icculus.org/lgfaq/

> Q: When I refresh or update a list, all servers come back with a ping of 'n/a'

> A: Make sure qstat is in your path. Go to a shell and type qstat. If a screen full of qstat command options does not appear, qstat is not installed, or it is not in your path. After compiling QStat, copy qstat to the /usr/bin directory. See the QStat home page for installation instructions.

> Q: QStat is installed, but when I refresh or update a list, all servers come back with a ping of 'n/a'

> A: If you are behind a firewall such as a LinkSys or Dlink router, or are using filtering on your machine (iptables or ipchains) you are probably blocking the game's traffic from entering your computer. Games generally use UDP, not TCP. Because of this, your firewall needs special configuration. Search the internet for 'gamename firewall port' and you should find something helpful.

> Q: When I try to launch XQF, I get 'command not found'

> A: XQF is not in your path. See the Launching XQF section

> Q: I have added master0.gamespy.com to XQF, but I can not retreive any servers from that master

> A: Gamespy's master servers use an authentication sequence that is not supported by QStat. This means that you can not query a Gamespy master using QStat and XQF. Other games such as Unreal Tournament use the Gamespy style master server but do not require authentication which is why they work.

> Q: I deleted one of the default master servers. How do I get it back?

> A: Edit - Add Default Masters to add ALL the default master servers back into the list. If you know the address, you can add a single master with Edit - Add Master.

> Q: Why do LAN searches not find any servers?

> A: You either need a default route to your ethernet device or a host route for the broadcast address (try e.g. route add -host 255.255.255.255 eth0).

> Q: I am behind a firewall / proxy server and can not retrieve http master lists

> A: XQF uses wget to retreive http master lists. To configure wget to use a proxy server, set the environment variable 'http_proxy' before launching XQF. For example:

> > export http_proxy=address-of-proxy-server:port

> Q: My game is not launching properly. What do I do?

> A: The command line arguments passed by XQF may not be correct due to a configuration problem or maybe a bug. Launch XQF from a command prompt using:

> xqf -d 1

> and 'Connect' to the server. The command line used by XQF to launch the game will be displayed in the console. Use that to figure out what is wrong. If you can determine it is a but, please fill out a bug report at http://sourceforge.net/projects/xqf.

> Q: XQF sounds are not playing when XMMS or another sound program is running. What do I do?

> A: The Enlightened Sound Daemon (ESD or ESounD) allows multiple programs to play sounds at the same time. The software you are running may or may not be using ESD to play sounds.
> To have XQF use ESD, configure the sound player to be /usr/bin/esdplay instead of play or sox.
> Configure your other applications to use ESD. For example, to configure XMMS to use ESD, press Control P inside of XMMS and on the Audio I/O Plugins page select 'eSound Output Plugin' for the Output Plugin.
> On an RPM based system, use 'rpm -q esound' to see if it ESD is installed.
> For more information on ESD, see /usr/share/doc/esound*.
> XQF-Rcon
> Included in the XQF source is a program called XQF-Rcon. XQF-Rcon is a text mode (does NOT require X) remote console program for Quake2 and other games. The program is completely independant of XQF, but uses some XQF source files to compile. It does NOT replace or alter the existing RCON support inside of XQF.
> To use xqf-rcon, type:

> > xqf-rcon ip port

> You will be prompted for the rcon password and then it behaves like a normal shell.
> It will always waits for an answer after sending a line. It will time out and return to the prompt if no answer is received within five seconds.
> To compile xqf-rcon, make sure you have readline and ncurses development packages. For example, readline-devel and ncurses5-devel (depends on distribution).

> To compile xqf-rcon, the steps are the same as compiling XQF except for the ./configure line. See below:

> > Extract the source code:

> > tar xvfz xqf-xxx.tar.gz

> > cd into the directory:

> > cd xqf-*

> > Run configure script:

> > ./configure --enable-externalrcon

> > Compile source code:

> > make

> After compiling, you should have the program 'xqf-rcon' in src/, along with xqf.

> Note: To compile from CVS, make sure you are running automake 1.6 or newer.