HLFind 1.0.29. 17-Apr-2003 by Rene 'SDI' Smit
A utility to help find players on all the Half-Life servers.
Copyright (c) 2000-2003 Rene Smit
You may not redistribute HLFind via any media or for any purpose without the
express permission of the author.
DISCLAIMER
==========
This software is provided as is without warranty of any kind, either expressed
or implied. The authors will not be held responsible for any losses incurred,
either directly or indirectly, by the use of this program.
This is not a Valve product.
Introduction
============
HLFind consists of three panes. On the left there's a tree that lists servers
and search queries. On the right there are two panes that contain either
servers, query results, players, or server rules. There's also an information
bar at the top of the window.
Server nodes
------------
The first node in the tree (named "Servers") consists of five sub nodes. These
server nodes are named WON, Manual, Filtered, Found and Favourites.
The WON node contains all the servers that are downloaded from the WON master
server (using the "Update Server List" command).
The Manual node contains all servers that are added manually (using the
"Add Server" command).
The Filtered node contains all servers that are filtered out using the
"Filter Server List" command.
The Found node contains all servers that are found using the server search
query invoked by the "Find Servers" command.
The Favourites node contains all servers that are made favourite with the
"Add to favourites" command (right click on server to get a menu with this
command).
Selecting a server will show all players on it in the top right pane, and all
server rules in the bottom right pane. The dialog bar under the menu and
toolbar will show the server info. This syntax is:
"ip:port mode->map [time played/total time] (flags)
number of players/reserved slots/max. number of players
name (sv_contact) annotation"
The sv_contact rule displayed here can be used by servers to specify any string
they want. Not many servers use this yet.
The reserved slots is only displayed when the server uses the Admin mod. It
represents the server rule name "reserve_slots".
Selecting the properties of a server with the "Properties" command, will show
up a dialog in which you can add an annotation and a password. In the
annotation field you can specify anything. The password is used when joining
the server. Optionally, you can resolve the ip address to a host name. After
that, it's possible choose to connect to the server using its hostname. You
can use it if the ip address of the server is dynamic.
Queries
-------
The second node in the tree (name "Queries") contains any number of query sub
nodes, added with the "Add Query" command.
A query is a search definition, consisting of a search expression (a normal
search string or a regular expression) and an optional name. You'll usually
fill in the name if the expression is complex and hard to read.
Each query node lists the number of players found and the number of distinct
servers they are on. For example, "Player (24/29)" means that 29 players on 24
different servers met the search condition named "Player".
Selecting the query node will show all those players in the top right pane, and
expanding the query node will show all of those servers as its children.
Clicking on one of those servers will show all players on that server as
usual.
Using HLFind for the first time
===============================
Here are the steps to quickly start using HLFind for the first time:
1. Downloading server list
--------------------------
If you're only interested in a certain mod, you can only download servers
running that mod by first selecting Edit -> Filter Server List (Ctrl+L),
selecting "Game", and behind it entering the name of the mod.
Select "Update server list" and wait until the list of servers has been
downloaded. Then select the "Servers" node in the tree and select "Refresh"
(F5). This will query all servers for their details and players. It will take
a while, but after that you'll have all the information you need to start
adding servers to your favourites.
2. Adding to favourites
-----------------------
Just scroll around the list (right pane) and press the headers to change the
sorting (e.g. on ping), so you know which ones to add to the favourites. This
is done by selecting the server(s) in the list and then do "Add to favourites"
from the context menu (or press Insert key). Their icons should then turn to
yellow, indicating their new state. At this point it's wise to save your data
and then create a shortcut to quickly start HLFind with the saved file next
time. From now on you can just select the "Favourites" node in the tree and
hitting F5 to refresh only those servers. Servers with green icons are
responding, and with red icons are not.
3. Adding search queries
------------------------
Next step is to add queries with the "Add Query" command. In the query dialog,
fill in a search string, e.g. "Player". Leave the name empty for now. Uncheck
the "Regular Expression" checkbox to make it a simple search. Press OK and
notice the new node under the "Queries" node (expand it if it's still closed).
Expand the query node named "Player" and notice all the servers where people
named Player are playing.
The queries you've entered will be saved with the file too. Whenever you
refresh multiple servers the queries are all updated. Note that only players
in memory are searched for. Unlike GameSpy, it won't automatically download
player lists from all servers when starting a search. You'll have to refresh
any servers where you want to look for players manually in advance (usually
all favourites).
4. Joining a server
-------------------
To join a server, select it in either pane and then invoke the "Join Server"
menu command. It will ask a password if needed. If it's full you will be given
the option to wait for a free spot (reserved slots are taken into account).
It will then periodically check if a player leaves the server. If it will
actually join is dependent on if someone joins while HLFind starts the game.
Advanced Usage
==============
Filtering
---------
Invoke the "Filter Server List" command to popup a dialog with filter settings.
Select the checkbox before each item that you want to filter on. All servers
meeting the filter conditions will show up in the "Filtered" server node.
Note that the filter on the "game" (mod) will also affect the Update Server
List command, which will then only download servers running that mod.
Searching for a server
----------------------
Invoke the "Find Server" command to popup the query dialog in which you can
specify a search query for a server name. All found servers are listed in the
"Found" server node.
Updating the WON server list
----------------------------
Invoke the "Update Server List" command again to add any new servers to the WON
server node. The list will always grow because the existing servers in the list
are not removed. To get the currently active servers only, first invoke the
"Clear Server List" command before updating the list. This won't remove any
favourite or manually added servers though. You can remove them manually from
the tree if you want, by selecting them one by one and using the Delete key.
For favourites, this will only make them not favourite.
In the options dialog a different master server can be selected (try this if
the current one seems slow), and a time-out and retry count can be specified to
tweak the server list download.
The WON server can be instructed to only return servers that are running a
specific mod. This can greatly reduce the amount returned servers. For this to
work, simply enable a "game" filter on the required mod (see "Filtering).
Automatic refresh
-----------------
With the "Auto Refresh" option in the Edit menu you can toggle automatic
refreshing on and off. This is most handy when selecting a server player list
and watch the frag difference column at each refresh to see who scored or
capped. Or to monitor a full server waiting for a player to leave so you can
join. The interval between the refreshes can be specified in the
options -> "Auto refresh interval".
Regular expressions
-------------------
Using regular expressions (RE) you can make advanced queries. When typing
characters in a RE you have to escape these special characters (precede with
'\'): [ ] ( ) { } * + . ? ^ $ .
A [] is a set, which means it matches any character that's in there. You can
also specify a range like in [0-9]. The () is there mainly to use with the |,
which means 'or'. E.g. "(Player|Freshmeat)" matches both Player and Freshmeat.
The * repeats the character that's before it zero or more times. Same with +,
but it means one or more times. And ? means zero or one time.
The . means any character, so e.g. .* means any character zero or more times.
You can use it to fill gaps like in "\[CLAN\].*TPF", matches all CLAN members
that have the TPF tag at the end. Note that the *, + and ? must always be
preceded with a character that it operates upon (or something between
parentheses), unlike the * and ? in a shell (dos box).
The ^ means "following must be at beginning of line" and $ means "preceding
must be at end of line". So e.g. the player name "PlayerKiller" will be matched
by "Killer$" but not by "^Killer".
Options
-------
Invoke the options dialog with the "Options" command (in the View menu).
Basic options include the location of the Half-Life executable, and the
command line parameters to invoke it with when joining a server from within
HLFind.
"Load last used document" will reload the last used .hlf file on startup.
"Update all queries while refreshing servers" specifies that all queries
are updates during a server refresh in which the Progress dialog shows up.
This is handy if you're looking for someone in thousands of servers, and
want to cancel the refresh once you see that the player is found, but it can
cause a slow down on slower computers.
"Auto refresh interval" specifies the number of seconds between each refresh
when auto refresh is active.
"WON ..." options let you configure the WON master server.
"Show dialog before server list update" shows an option dialog before
updating the server list. It contains filter options for game (mod) and
map, so you can retrieve servers that run a specific mod and/or map. It is
recommended to use it because it will greatly reduce the time it takes to
update the server list.
"Clear server list before update" will automatically invoke the "Clear
server list" menu command before updating the server list (it will delete
all servers except favourites and manually added servers).
"Refresh new servers after update" will automatically refresh the newly added
servers after updating the server list.
There are some advanced options to tweak the network behavior of HLFind:
The "Maximum number of open sockets" should be as high as possible without
getting network errors. The maximum number of sockets under Windows is about
100, so it's wise to keep it at 80, depending on how many other network
programs you're using.
The "Socket time-out option" is the number of milliseconds before requesting
server info like players and rules times out. Making this lower will make
feedback quicker.
The option "Server refresh send packet interval" specifies the time between
two different server refreshes (when refreshing multiple servers). Making this
lower will make the refreshing quicker, but has a bad influence on their ping
status. Make this one as low as possible without getting too high ping values
from the servers.
The last option is the "Socket cache cleaning interval". HLFind checks for
timed out servers during this cache cleaning. If the number of active sockets
often reaches its maximum (check the status bar), then making this interval
shorter will improve network performance.
Known problems
==============
HLFind might crash while refreshing servers. I haven't found out yet what
causes this.
Contacting me
=============
All bug reports, complaints and suggestions can be sent to:
hlfind@xs4all.nl
My home page is located at:
http://www.xs4all.nl/~rsdi/
The latest version can always be obtained from there.