XQF 1.0.5

November 04, 2006
Documentatiom written by:
Alex Burger <alex_b@users.sourceforge.net>

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

Table of Contents

  1. Table of Contents
  2. Overview
  3. System Requirements
  4. Downloading
  5. Change Log 
  6. Installation / Compiling
    1. Loki-Setup installer
    2. RPM Binary package
    3. DEB Binary package
    4. TAR.GZ source code
    5. CVS source code
  7. Using XQF
    1. Launching XQF
    2. Configuring XQF
    3. Game Specific Information
      1. Quake3
      2. Soldier of Fortune (1.06)
      3. Soldier of Fortune 2
      4. Unreal Tournament (436) and Rune
      5. Half-Life
      6. Descent 3
      7. Serious Sam
      8. Medal of Honor
      9. Call of Duty
      10. Savage
      11. Jedi Knight: Jedi Academy
  8.  Troubleshooting / FAQ
    1. Q: Do you know of any good web sites with technical information on playing games on Linux?
    2. Q: When I refresh or update a list, all servers come back with a ping of 'n/a'
    3. Q: QStat is installed, but when I refresh or update a list, all servers come back with a ping of 'n/a'
    4. Q:  When I try to launch XQF, I get 'command not found'
    5. Q:  I have added master0.gamespy.com to XQF, but I can not retreive any servers from that master
    6. Q:  I deleted one of the default master servers.  How do I get it back?
    7. Q: Why do LAN searches not find any servers?
    8. Q: I am behind a firewall / proxy server and can not retrieve http master lists
    9. Q: My game is not launching properly.  What do I do?
    10. Q: XQF sounds are not playing when XMMS or another sound program is running.  What do I do?
    11. Q: When updating server lists for Quake3, Wolfenstein or Enemy Territory, XQF only shows servers for an old version or the demo. What's wrong?
    12. Q: Can XQF integrate with any chat programs such as IRC or ICQ?
    13. Q: Will XQF be availble for Windows?
  9. 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
Quake4
Return to Castle Wolfenstein
Enemy Territory
Doom3
Voyager Elite Force (wine)
Hexen2
HexenWorld
Sin
Half-Life (wine)
Half-Life 2 (wine)
Kingpin
Soldier of Fortune
Soldier of Fortune 2 (wine)
Tribes 2
Heretic 2
Unreal Tournament
Unreal Tournament 2003
Unreal Tournament 2004
Rune
Postal2
America's Army
Descent 3
Serious Sam: The First Encounter
Serious Sam: The Second Encounter
Tremulous
Medal of Honor: Allied Assault
Call of Duty (wine)
Savage
Battlefield 1942 (wine)
Jedi Knight: Jedi Academy (wine)
Netpanzer
Nexuiz
Warsow

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, Catalan, Danish and French.

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, Quake4, RTCW, Enemy Territory, Doom3, Half-Life, Sin, Kingpin, Heretic2 servers 
  - Busy server redial

 

System Requirements

The minimum system requirements are:

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/xqf for downloading instructions.

Change Log 

XQF 1.0.5 -- November 04, 2006
XQF 1.0.4 -- October 20, 2005
XQF 1.0.3 -- April 03, 2005
XQF 1.0.2 -- December 22, 2004
XQF 1.0 -- August 15, 2004
XQF 0.9.14 -- March 21, 2004
XQF 0.9.13 -- November 24, 2003
XQF 0.9.12 -- June 10, 2003
XQF 0.9.11 -- December 18, 2002 XQF 0.9.10 -- November 16, 2002 XQF 0.9.9 -- July 3, 2002 XQF 0.9.8 -- December 17, 2001 XQF 0.9.7 -- December 16, 2001
XQF 0.9.6g -- September 25, 2001
XQF 0.9.6f -- March 23, 2001

Installation / Compiling

Loki-Setup installer

Execute the commands (substitute xxx with the actual version number):

chmod 755 xqf-xxx.x86.run
./
xqf-xxx.x86.run

The installer alreay includes suitable versions of qstat and GeoIP. You still need to install the gdk-pixbuf package provided by your distribution. The installer itself additionally depends on libxml1 and libglade.

RPM Binary package

As root, execute the command (substitute xxx with the actual version number):

rpm -Uvh xqf.xxx.i586.rpm

The RPM package depends on qstat, GeoIP and gdk-pixbuf. The latter is usually provided by your distribution whereas qstat and GeoIP packages can be downloaded from the XQF home page.

DEB Binary package

As root, execute the command (substitute xxx with the actual version number):

dpkg -i xqf_xxx-v_arch.deb

TAR.GZ source code

Make sure you have the development packages of GTK, gdk-pixbuf, GLIB and X installed.

Extract the source code (substitute xxx with the actual version number):

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 may require root privileges):

make install

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

You can optionally compile XQF with support for GeoIP (http://www.maxmind.com/download/geoip/api/c/).

CVS source code

Compiling CVS snapshots requires that you have recent versions of automake (at least 1.6), autoconf, libtool and gettext installed. You also need to have both GTK1 and GTK2 development packages 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 is /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 most native games. Wine games need to be configured manually.

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 accepts several command line parameters:

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

/usr/local/bin/xqf

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 $HOME/.qf/gtkrc in addition to the built in defaults of GTK.
 

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
Window Panes:
 
Left pane:  Source
Top pane:  Server list
Middle bottom pane:  Player list
Bottom right pane:  Server info

While in the Server pane:

While in the Server, Player or Server info pane:
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 Default Masters:

Adds all the default masters that would normally appear when XQF is run for the very first time. Use this if new masters have been added to XQF, or you accidentally deleted a master.

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://

gslist://

This protocol type is used for querying the Gamespy master server using the 'gslist' program. You need to run gslist -u to fetch the list of supported games before you can actually use it. The URL accepts options separated by semicolon:
  • gsmtype: the gamespy name of the game to query. This parameter is mandatory. See ~/.gslist/gslist.cfg for a list of valid names.
  • portadjust (optional): integer value to add to the port number before adding the server to XQF. Useful if the native query protocol has a fixed port offset.

Example:

gslist://master.gamespy.com;portadjust=-1;gsmtype=rune

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:

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.  Note:  If more than 100 servers are to be updated, the screen is not immediately refreshed.  This helps eliminate long delays when a large number of serves is being updated / refreshed.
Refresh selected:
Refresh (ping) all servers for the currently selected / highlighted servers.  Note:  If more than 100 servers are to be updated, the screen is not immediately refreshed.  This helps eliminate long delays when a large number of serves is being updated / refreshed.
Update from Master:
Fetch the latest list of servers from the master server.  Note:  If more than 100 servers are to be updated, the screen is not immediately refreshed.  This helps eliminate long delays when a large number of serves is being updated / refreshed.
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 new Server:
Add a new server to the list.
Add to Favorites:
Add the currently selected server(s) to the Favorites list.
Remove from Favorites:
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

Show splash screen:

Show the splash screen if it exists when XQF starts.  File should be in $datadir/xqf/pixmaps/xqflogo.png (usually /usr/share/xqf/pixmaps).

Scan for Maps:

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

  • Quake
  • Quake World
  • Quake2
  • Quake3
  • Return to Castle Wolfenstein
  • Enemy Territory
  • Medal of Honor
  • Call of Duty
  • Jedi Knight: Jedi Academy
  • Half-Life
  • Unreal Tournament
  • Unreal Tournament 2003
  • Unreal Tournament 2004
  • Rune
The Game column will contain a red -- before the game name if you do not have the map installed on your computer. For some games a small preview window with a picture of the map is also shown when clicking the map column

Note:  This will increase the time it takes for XQF to launch and you will notice a lot of disk activity during startup.

To re-scan for maps, click the 'scan now' button.
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. Two arguments are passed, the qstat type name (e.g. Q3S) and the address of the server (e.g. 10.0.0.1:27960). Also Useful in combination with 'Create Launchinfo.txt'.

A sample PreLaunch script is included in the XQF source in the docs folder..

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: special options for those who know what they mean ;-)

                    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: special options for those who know what they mean ;-)

                    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.  Note: Rocket Arena 1.6 and higher does not require custom args.

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 60 (v1.4)

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.
Enemy Territory
Options:
Master server protocol version:
Passes the defined protocol version to QSTAT when finding servers.  Each patch for Enemy Territory usually changes this value.

This is passed to QSTAT as -q3m,## where ## is the protocol version.  Defaults to 82 (v2.55)

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

Do not count bots as players:
Prevents users with 0 ping as being reported as a player for the 'Players' column.  This will not be 100% accurate as users running non-dedicated servers normally have a 0 ping.
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, lower it if xqf reports bad ping times.
Number of retries
Number of times QSTAT should retry a server if it doesn't reply to status queries. 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 on a cheap sound card 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)

Server Filters:
Configure:
Server Filter:

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
The game contains the string:
Enter text that must be in the game name.  For example: 'arena'
The game type contains the string:
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
The map contains the string:

Enter text that must be in the map name.  For example: 'q3dm'
The server name contains the string:

Enter text that must be in the server name.  For example: 'Batcave'
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.

Note:  You can also add a player to the player filter by right-clicking the player name in the Players pane.

Quick Filter:

  Words typed here are searched in every server's name, hostname, map, game, gametype and rule value.

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 or /etc/qstat.cfg).  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) and Rune

The startup scripts of Unreal Tournament and Rune have a bug that prevents them from automatically connecting to servers when beeing started by xqf. Fortunately it's easy to fix (for Rune the startup script is called 'rune' instead of 'ut):

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)

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. XQF since version 0.9.12 installs a working one for you.

Note:  At the time of this release, there are no known public Serious Sam master servers that work with QStat / XQF.

Medal of Honor

For Medal of Honor to query properly, a QStat configuration file is required. XQF since version 0.9.13 installs a working one for you.

Call of Duty

There is currently no native client for Call of Duty, you need wine to run it. You can find an installer at http://liflg.org/?catid=7&gameid=1

Savage

The shell script shipped with Savage is broken. You need to adjust it to pass command line parameters to the game itself. Change the line that looks like
LD_LIBRARY_PATH=libs:$LD_LIBRARY_PATH ./savage.bin /usr/local/games/Savage_Demo
to
LD_LIBRARY_PATH=libs:$LD_LIBRARY_PATH ./silverback.bin "$@" /usr/local/games/Savage_Demo

Jedi Knight: Jedi Academy

There is currently no native client for Jedi Knight: Jedi Academy, you need wine to run it. You can find an installer at http://www.liflg.org/?catid=7&gameid=44

 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=http://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*.

Under KDE you may want to use arts and artsplay instead

Q: When updating server lists for Quake3, Wolfenstein or Enemy Territory, XQF only shows servers for an old version or the demo. What's wrong?

A: You need to choose a suitable Masterserver protcol version. If xqf doesn't know about the newest version yet, manually add a server running the new version and enter the value of the server rule "protocol"


Q: Can XQF integrate with any chat programs such as IRC or ICQ?

A: To integrate XQF with XChat or LICQ, use XQF -> XChat.  When you start a game with XQF, this script notifies other chat channel users that you are playing a game and (optionally) changes your nick to reflect your gaming status.  Also, your Licq status can be changed (n/a, occupied, etc) and the autoresponse message will be changed to the stats of the server you are using.


Q: Will XQF be availble for Windows?

A: We have no plans to port XQF to Windows, however there are many Windows game browser applications available.  You may try aGSM (alternative Game Server Monitor) which supports both LAN and Internet gaming for many popular online games and is freeware (but no free software unfortunately).

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.