Filter Documentation.
Updated: March 26, 2004 1:06PM


Revision history:
March 26, 2004 12:59PM - Added "BattlefieldVietnam", ,"CallofDuty", "ContractJack", "Daikatana", "EliteForce2", "Halo", "JediKnightJediAcademy", "MedalofHonorAlliedAssaultBreakthrough", "NoOneLivesForever2", "Tron20", "Unreal2XMP", "UnrealTournament2004", "Vietcong", and "WolfensteinEnemyTerritory" to game command.

Februrary 11, 2003 1:15PM - Added "GhostRecon", "IGI2CovertStrike", "JamesBondNightfire", and "MedalofHonorAlliedAssaultSpearhead" to game command.

September 14, 2002 11:40AM - Added "UnrealTournament2003" to game command.

August 19, 2002 10:59PM - Added "ArmyOperations", "Battlefield1942", "FreedomForce", "GlobalOperations", and "NeverwinterNights" to game command.

June 4, 2002 1:07AM - Added "CommandConquerRenegade" and "SumOfAllFears" to game command.

April 20, 2002 11:00PM - Added "SoldierOfFortune2" to game command.

April 4, 2002 10:33PM - Added "SeriousSam" to game command.

April 1, 2002 11:40PM - Added "JediKnight2", and "MOHAA" to game command.

March 20, 2002 12:48AM - Corrected "server_parameter" spelling in the if command.
Added "packetsreceived" server_parameter to if command.
Added "rule()" server_parameter function to if command.

March 20, 2002 12:37AM - Added "AliensversusPredator2", "ReturnToCastleWolfenstein" and "Tribes2" to game command.

 
Filters are used to uniquely identify servers based off many different criteria. Once a server has been identified by a filter, Qtracker users can easily show or hide servers based off their various filter selections. Filters also make it easy to download modifications.

This document assumes you have a knowledge of BASIC programming.

File Format
Filter files are nothing more than a text file which is a listing of commands organized as a series of lines. Lines are delimited by a CR-LF (carriage return 0x0D, line-feed 0x0A).

Each line is formatted as follows:

command arguments <"value">

The arguments required for a command varies. Value is optional dependant on the command. Arguments and values are delimited from the command and other arguments by a space (0x20). Values should always be enclosed in quotations.

File Extension
Filters must have an extension of ".qtf". An example of this is "SomeCoolMod.qtf". If named correctly, the icon of the file will appear as the Qtracker icon.

Installation
Filters are easy to install. The filter must be launched (opened, double-clicked, or whatever you'd like to call it) to start the Qtracker Auto-Installer, which will guide you through the installation process.


Sample Filter
description Team Arena
game quake3
active 0
homepage http://www.quake3world.com
if mod equals "baseq3"
and if protocol greaterthan "46"
and if g_gametype greaterthan "4"

Commands
active
commandline
comments
description*
directory
filename
game*
homepage
if
and if
or if

* Denotes a required command.

Command: active Arguments: 1 Variable: No
active 0

Specifies if this filter is active. An argument of 1 activates the filter, an argument of 0 de-activates the filter. When downloaded / installed, this argument should always be 0 .

Command: commandline Arguments: 0 Variable: Yes
commandline "-game cstrike -console"

Specifies additional command line arguments to append to the application command line when connecting to a server which matches this filter.

Command: comments Arguments: ? Variable: No
comments This is my cool filter.

Specifies comments to be displayed while installing the filter.

Command: description Required Arguments: ? Variable: No
description Team Arena

Specifies the title of your filter. This is what will be displayed in Qtrackers menus, and the heading upon installation.

Command: directory Arguments: ? Variable: No
directory Point Releases

Specifies the subdirectory to store this filter in when installing. This will allow you to logically organize your filters.

Example: if the game type was "quake3" and the directory was "Point Releases", then the filter would be installed into "<INSTALLDIR>\Filters\Quake III Arena\Point Releases". The filter would then be visible in a sub-menu of Quake III Arena called "Point Releases".

The directory is relative to the Qtracker installation directory, not that of the system.

Command: filename Arguments: ? Variable: No
filename Team Arena.qtf

Specifies the filename of your filter, to be enforced upon installation. If your filter is downloaded under an incorrect (or temporary) filename, the Qtracker Auto-Installer will rename your filter filename based off this command.

Command: game Required Arguments: 1 Variable: No
game quake3

Specifies the game this filter will focus on. all may be specified for filters that are not game specific (i.e. a ping filter). The following arguments are permitted:

All
AliensversusPredator
AliensversusPredator2
ArmyOperations
BaldursGate
Battlefield1942
BattlefieldVietnam
Blood2
CallofDuty
CommandConquerRenegade
ContractJack
Daikatana
DeltaForceLandWarrior
Descent3
Drakan
EliteForce
EliteForce2
ForceCommander
FreedomForce
GhostRecon
GlobalOperations
HalfLife
Halo
HeavyMetalFAKK2
Heretic2
Hexen2
HexenWorld
IGI2CovertStrike
JamesBondNightfire
JediKnight
JediKnight2
JediKnightJediAcademy
Kingpin
MedalofHonorAlliedAssault
MOHAA
MedalofHonorAlliedAssaultBreakthrough
MedalofHonorAlliedAssaultSpearhead
MOHAAS
MOTS
Music
NerfArenaBlast
NeverwinterNights
NoOneLivesForever
NoOneLivesForever2
Quake
Quake2
Quake3
QuakeWorld
RainbowSix
ReturnToCastleWolfenstein
ReVolt
RogueSpear
Rune
SeriousSam
Shogo
SIN
SoldierOfFortune
SoldierOfFortune2
SouthPark
SumOfAllFears
TheWheelOfTime
Tribes
Tribes2
Tron20
Turok2
Unreal
Unreal2XMP
UnrealTournament
UnrealTournament2003
UnrealTournament2004
Vietcong
WolfensteinEnemyTerritory
XVT
XWA

Command: homepage Arguments: 1 Variable: No
homepage http://www.qtracker.com

Specifies the URL where the modification this filter defines can be downloaded. This URL will be visible within Qtracker in the modification column, and can be clicked on to launch the URL.

Command: if Arguments: ? Variable: Yes
if mod equals "baseq3"

Specifies a programmatic conditional made up of several arguments and one variable. If the result of this conditional is TRUE, then the filter is considered to be a match for the server. However, additional conditionals may exist in the form of "and if" or "or if" commands which may effect the final conditional result.

Comparisons of string values are always case insensitive.

The exact format of the if command and its arguments and value is:

if server_parameter comparison "value"

server_parameter can be one of the following:

avgping
g_gametype
mod
packetsreceived
players
protocol
rule("name")
version
Average ping.
Q3A-specific parameter.
Running modification.
Number of packets received from server (0 indicates no response).
Count of active players.
Protocol version.
Function to return value of name.
Version of server or modification.

comparison can be one of the following:

contains
equals
greaterthan
lessthan
startswith
doesnotequal
value exists anywhere in.
value exactly matches.
value is greater than.
value is less than.
Starts with value .
Does not equal value .

Functions

rule("name") is used to return the value of any server variable, as specified by name. For example, if you wanted your filter to find lower-gravity servers, your if statement would be: if rule("sv_gravity") lessthan "800".

Command: and if Arguments: ? Variable: Yes
and if protocol greaterthan "46"

This command is used in conjuction with the if command, and is identical in its functionality and arguments.

Use of this command allows for multiple (up to 4) if commands to be evaluated before the final result is determined.

Command: or if Arguments: ? Variable: Yes
or if mod equals "arena"

This command is used in conjuction with the if command, and is identical in its functionality and arguments.

Use of this command allows for multiple (up to 4) if commands to be evaluated before the final result is determined.