aGSM: free online multiplayer games servers browser for Quake, CS, and 45 games  

  ...world's multiplayer game servers at your fingertips

multiplayer game servers on your desktop - freeware aGSM!   Hosted by ServInt - by far the best U.S. hosting company

aGSM
About
News
Download
Screenshots
Games
FAQ

Users
SLForums
Statistics
MailBag
Projects

Developers
» TechBits
ToDo
BugList
Authors
Credits

Legal/Work
License
Advertising
Engine/Work

Game Sites

IronRocket Game Servers for rent
aGSM.Net

alternative Game Server Monitor techbits

Information on advanced aGSM topics & bits of code from the program would be posted on this page; it would be continually updated and intended for use by programmers and advanced users.

aGSM Command Line Options

Are there any? You bet. We hide all options which we don't answer questions about in the form of command-line switches. How to set them? Use shortcut properties. Few of the options are (and notice that some are not available in the earlier versions):

/nogui Start aGSM in console mode - you don't need this unless you do :) Only those who run aGSM purely for generating HTML statistics should use this option, since you won't be able to see any server stats, change any options, or join any running servers. Purpose: free up resources usually taken by GUI, and get rid of gui-related bugs (if there are any :) ). Best if used with the next option.

/snapshot Quit aGSM as soon as the Internet/LAN refreshes complete and HTML stats are generated. Again, only useful for generating stats, since you won't be able to see the results of the refresh unless you are super-quick :)

/configure Automatically open Configuration dialog on startup; does not make sense with /nogui, used on first installation but you also can use it if Configuration is what you do mostly :)

-animation One of the most useful options, changes the direction in which aGSM icon rotates if you have animation enabled in options. Ok, maybe not the most useful, but it's in aGSM since the very first versions with rotating icon ;)

-showinfo Show a dialog with some information about aGSM executable - compilation time, compilers used, etc. For the curious types :)

-threads:NN Where NN is a number from 1 to 64, default 16. Sets the number of threads which aGSM uses for all refreshes. Overrides all other settings for number of threads. Why not always use the maximum? Since more threads -> more load on your system and, most importantly, on your connection, so the results on a modem would be most innaccurate with 64 threads querying servers at once. We recommend ~1 thread for each Kbit/sec of your bandwidth.

-socks_addr:XXX -socks_port:XXX -socks_user:XXX -socks_pass:XXX You can set one or more (as needed) of this options to have aGSM query go through the socks proxy you specify with socks_addr, on a port socks_port, using user name socks_user, with a password socks_pass, duh. Some games (Q3, for example) allow you to play through certain proxies, so aGSM had to support it, too. Why we hide this option? Again, to avoid much questions on "why my proxy does not work with that" and "how do I play through a proxy". Consider it an unsupported feature. Btw, it works, so the problem is in your proxy :)

And finally, an example command-line used by a LAN party admin for generating HTML/Internet stats using a SOCKS5 proxy for some Internet queries:

aGSM.exe /nogui /snapshot -socks_addr:10.0.0.1 -socks_port:80

aGSM Templates

aGSM provides an easy way for you to automagically create serverlists in real time. All you need to do is unzip default templates from the aGSM directory (templt.zip), including two bat files which automate generated statistics archivation (necessary if you are going to use the default templates). That's it, set HTML generation options in the general configuration dialog of aGSM and run a refresh.

What is more interesting however, is how to create your own templates. For this, please see templt.txt in aGSM directory, it explains all the details to get you started. When you create something interesting and nice looking, make sure you send the templates with the bat files, if any, our way, and we'll post them here. Best template would be included in the official distribution. Good luck!

Game Server Querying

So, you'd like to know how aGSM collects information about game servers? Well, it actually is pretty simple. You send out a broadcast and all servers on your LAN respond with some info. The only thing is to interpret the returned packet and do some other stuff based on the provided information. Sometimes you'd have to query the server again for additional info.
Here is the table of broadcasts for some of the games supported by aGSM:

GameBroadcastPort
 Age of Empiresdownload47624
 Age of Kingsdownload47624
 BroodWardownload6111
 DeltaForce 1&2download47624
 Diablodownload6111
 Disciplesdownload47624
 Dune2000download47624
 FreeSpace2download7808
 HellFiredownload6111
 Hexen2download26900
 HoMM3download47624
 KKND2download47624
 Quakedownload26000
 Quake2download27910
 Railroad Tycoondownload47624
 Shogodownload47624
 StarCraftdownload6111
 Total Annihilationdownload47624
 Age of Wondersdownload47624

You might have noticed repeating port 47624 - thats MS DirectPlay, which is common for strategy games nowadays... Too bad the standard does not give us many info about the server, just the very basics :( We wish game developers would move their lazy asses and make a network connectivity standard a little smarter than Direct Play; but it seems that only a few companies bother doing networking right (hail id Software!), most others stick to the crappy MS DirectPlay.
Simple test - if you have Heroes of Might & Magic: Armageddon's Blade and Age of Wonders (both Direct Play), try this - start a Heroes server and do a server search from within AoW - what you will see is... right, your Heroes server. "Why?!?" - because both games respond to the very same broadcast with almost identical info. Or, on the same note, Delta Force 1 sees and tries to connect to Delta Force 2 servers and vice versa. This is all very lame, in our opinion.

Anyway, enough bitchin', what about the Internet games where you can't send a broadcast? Here, you must individually query each server with some query string to the port that it is listening on, and it returns the status packet. Voila, here's the table of query strings for some of the games. We also would start adding responses (decoded) for some games, so check back to get updates. Notice that for some games you can broadcast this query string on the LAN and get the same answer as if you were querying an Internet server:

GameQueryResponsePort
 HalfLife / TFCquery 27015
 Heretic2query 26900
 Hexen2query 26900
 KingPinquery 31510
 Quakequeryresponse26000
 Quake2query 27910
 Quake3: Arenaquery 27960
 QuakeWorldquery 27500
 SiNquery 22450
 Starsiegequery 7941
 Tribesquery 28001
 Unreal / UTquery 7778

So that was the basics to get you started; fun begins when you start decoding the packets returned by server and coding it all into your program :) Many of the newer games have the returned status info already decoded, in a clean ASCII which you can read, so decoding part is gone:) If you are interested in a Perl way of coding simplest game query tool, please refer to this fine step-by-step article by an author of TalitaSpy (long-abandoned Quake2 server browser). Some more queries and decoded packets could be found on the tech page of Kris, author of an excellent KQuery tool.

ask questionIf you have any other technical questions regarding aGSM, please contact our support. Note that we would not explain you how to decode packets and things like that; but if you give an interesting question we would post an answer here.

to top of this page

2888957 visits since
November 29, 1998
AboutNewsDownloadScreenshotsForumsFAQ
 

 This page was last modified on September 09, 2003 (18:36:55)
 This site is best viewed in 256+ colors using any modern browser with Trebuchet font
 All texts, grafics, and other material on aGSM.Net are intellectual property of altSoft
 With any questions or suggestions regarding aGSM.Net web site feel free to contact webmaster

Site and database hosted by ServInt