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.