QStat 2.5b
Download

Release Notes
2.5b
Documentation
2.5b


Mailing Lists
Information
Server Pages
CGI Scripts
Derived Works
Network Protocol


The Author
Contact Steve



Send Steve a nice thank you for all his work. Donations will be used to pay web hosting fees.

QStat - Real-time Game Server Status


QStat is a command-line program that gathers real-time statistics from Internet game servers. Most supported games are of the first person shooter variety (Quake, Half-Life, etc)
The current version is 2.5b, released August 8, 2002.

Feature Summary

  • Supports Windows 95, NT, Linux, and most Unixes
  • Comes with C source code and a binary for Windows
  • Supports old Quake (NetQuake), QuakeWorld, Hexen II, HexenWorld, Quake II, Unreal/UT, Turok2, Sin, Half-Life, Shogo, Tribes, Tribes 2, Quake III, BFRIS, Kingpin, Heretic II servers, Soldier of Fortune, and lots more
  • Can display all available statistics, including player info and server rules
  • Output templates for automatic HTML generation
  • Raw display mode for integration with custom server browsers
  • Built-in host name cache
  • Sort by ping time, game, or both
  • More options than you can wiggle a mouse at

News

August 8, 2002 - 1:46 pm
QStat 2.5b - NEW RELEASE!
Sorry! I broke XQF with an innocent little addition to the -raw output format. This release reverts the changes to raw output, but adds an option to enable the new extra information. You can download and read about it as usual.



August 6, 2002 - 5:46 pm
QStat 2.5a - NEW RELEASE!
All my babbling in the July 15 update has paid off. The new release is available for download. The level of internal beta testing was pretty good, so I decided to skip a public beta test.

Tons of good features in this release. Check out the release notes for a high density summary. Here's the highlights:

  • Config file support - Add a new game type to QStat without re-compiling!
  • SOF2 support for servers and masters (all versions)
  • Server rule template with rule value equality tests
  • Improved Half-Life status info
  • Lots of bug fixes
  • Artistic License - This version of QStat is released under the Artistic License. See LICENSE.txt in the QStat package for the license terms.



  • July 15, 2002 - 8:12 pm
    I've been getting email recently wondering if QStat has been abandoned. Don't worry, I haven't been totally idle. I did some work on QStat back in March, but discovered that QStat users had created a compatibility problem for me. Some have extended the QStat game types into their own system. That's fine, but the systems used different type strings for the same game type. For example, XQF used one string for Star Trek: Elite Force, but Server Query uses a different string. If I add support for ST:EF, which type string do I use?

    I thought about this problem and I thought about the future of QStat and realized there was a bigger problem to solve. Game types need to be customizable and user defined. Users should be able to configure the game types including type string, game name, default port, and maybe even request packets.

    The next version of QStat, in beta test now, will support a QStat configuration file. This is a simple text file that QStat reads at start up. In it you can define your own game types as extensions of an existing game type (usually Q3S or GPS). You can even set the request packet so you can query games that require non-standard requests. QStat must still know how to interpret the response packet, but most games use similar packet formats.

    The config file turned out to be very flexible and should prove useful for other purposes. QStat will ship with a default config file that includes support for Soldier of Fortune 2 1.0 and 1.01, Medal of Honor:AA (both gamespy and Q3 style protocols) and Command&Conquer: Renegade. I'll add others if more examples are needed, but I expect y'all will make your own config files and go your own way.

    Thanks for waiting. Hopefully you won't need to wait for me so much in the future. I hope to have a public beta available in a couple weeks.
    -- Steve




    December 16, 2001 - 1:15 pm
    QStat works with Return to Castle Wolfenstein. Treat it like a Quake 3 server:
  • Query a server: qstat -q3s 1.2.3.4:27960
  • Query the test1 master: qstat -q3m,55 wolfmaster.idsoftware.com:27950
  • Query the test2 master: qstat -q3m,56 wolfmaster.idsoftware.com:27950
  • Query the retail master: qstat -q3m,57 wolfmaster.idsoftware.com:27950



  • October 1, 2001 - 7:15 pm
    QStat 2.4e - NEW RELEASE!
    duh, i be programmer, i write duh code... duh
    I had a bug in the handling of Tribes 2 packets that cropped up with the latest Tribes 2 patch. This release fixes the bug (thanks for the raft of email). As penance for my sins, I've added support for Descent 3. But don't think me too pious, Matthew Mueller figured it all out and sent me the code. Anyway, download at the usual location.



    August 8, 2001 - 3:00 pm
    QStat 2.4d - NEW RELEASE!
    All this and the kitchen sink! Piles of features and fixes in this most excellent packaging of carefully manicured bits. Check out the release notes to see if your hearts desire has been answered. Better yet, ignore my babbling and just download it.

    Let's have a three BFG salute for the QStat users that contributed the features, fixes, and bug reports that make up 90% of this release.




    April 20, 2001 - 4:00 pm
    QStat 2.4c - NEW RELEASE!
    Having trouble using QStat with Tribes 2? Does the qstat.exe from 2.4b output garbage characters? This is the release for you. All the bugs are fixed, every last one. Go get it.

    Having made such a ridiculous claim, it's time to leave the country. I'll be around this weekend, but will otherwise be gone until May 14. In the mean time, you can try the qstat-users mailing list if you are having trouble.
    Au revoir!




    April 16, 2001 - 4:41 pm
    Tip of The Day - To get a Quake 3 server list for the latest version of Quake 3 (1.27g), use the following:
        qstat -q3m,48 master3.idsoftware.com
    
    The key is to add the ",48" after the type option. This is the protocol version that corresponds to latest version of Quake 3. The next version of QStat will use "48" as the default.



    April 13, 2001 - 4:41 pm

    QStat 2.4b - NEW RELEASE!
    Shake a leg and download QStat before Jason chain whips you! Full support for Tribes 2, Quake 3 colorized player names, $ISMASTER, the excitement goes on and on.

    Also check out the new mailing lists for QStat. Be the first to know about a new QStat release, or chat with fellow QStat users.



    April 11, 2001 - 4:41 pm

    After five years and 30 versions, QStat gets its own domain! I'm so excited. I think I'll celebrate by releasing a new version. Soon. I promise.

    Historical Facts of Great Accuracy

  • QStat 1.0 was released on Sunday, March 31 1996. I think it only supported qtest, but it's hard to tell. The docs don't say because there was only one multi-player Internet shooter in existence at the time. It was Quake or nothing. I didn't realize the five year anniversary of QStat had come and gone. The traditional gift for a fifth anniversary is wood. Given all the furniture I've been buying lately, I'd appreciate gift certificates from Crate and Barrel or Restoration Hardware. :-)
  • The first release of QStat was just 301 lines of code. The latest version crests 7500 lines.
  • QStat has been downloaded alot. Sadly, I don't have good web stats for the qstat site. A couple years ago, QStat was getting 1000+ downloads a month. Given the arcane nature of QStat, I think most people say "Huh?" after unzipping it, and drag it to the trash. But, based on the amount of email I get from around world, there's plenty of successful QStat users.
  • I'm most proud of how The Champions League for Quake has used QStat. They track player and server statistics for 350,000 servers and over 13 million players. All the raw data for their system comes from QStat.
  • Infrequently Asked Questions about the new QStat domain
    Q - Dude, this is same lame site as before.
    A - Right.
    Q - What's up with that?
    A - Don't you have a clan match starting now?
    Q - You're avoiding the question.
    A - Hey, they just released a Tribes 2 patch that gets 100 fps!
    Q - k001! brb
    A - Right.



    April 4, 2001 - 6:17 pm
    Yes, I am working on Tribes 2 support for QStat. It's basically working already, so I hope to have a beta release out before the weekend. The programmers at Dynamix have been very helpful. Them's good people.


    October 5, 2000 - 9:00 pm
    Wow, that was fast. Gamespy master authentication was reenabled. QStat can no longer retrieve server lists from Gamespy masters. Oh well, I expected as much. Queries against "gamespy protocol" servers (-gps) will still work. But you'll have to go else where for your server lists. Here's the email I received from Gamespy:
    As you appear to have noticed, we turned off validation on our master server a few months ago after a release of GameSpy that had a bug in its authentication code (we didn't want to deny those users access).

    This authentication has now been turned back on, and thus the version of QStat you released will no longer be able to retrieve lists of servers from our master.

    I'm sorry we had to do this - it's certainly nothing against qstat - it's just that our master server is a major investment in time and money (if you saw our bandwidth bills you'd understand) and as such we reserve it for the use of GameSpy clients and other companies that pay reasonable licensing fees.

    Thanks - and if you have any question about GameSpy games in the future please let me know.

    -David Wright
    wrightd@gamespy.com



    October 5, 2000 - 3:00 pm
    QStat 2.4a - NEW RELEASE!
    Bug fixes, performance, Gamespy master support, whizzy new features, and lots more games. Groove on the release notes for the skinny on this phat release. Then get down and load up.


    September 27, 2000 - 11:44am
    Wow, it's been a lonnng time since the last release. For awhile I feared I would never have time to make another release. But fate dealt me some new cards and extra free time. The next release (2.4a) is done and testing is underway. Many fixes, improvements, and many new games supported. I hope to do the general release next week, around Oct 3-4.



    February 18, 2000 - 11:33am
    QStat 2.3g - NEW RELEASE!
    Support for Soldier of Fortune, bug fixes, and no more beta! Please try to contain your excitement and don't break the mouse. Meditate on the release notes to calm yourself before starting the download.
    Update - Andreas Banze corrected my babelfished German in the release notes. What I meant to say was, "Trinke und sei fröhlich." ... Sláinte!


    January 11, 2000 - 3:12pm
    QStat 2.3f BETA - NEW RELEASE!
    Fixes Unreal version 405 server queries. Adds ping and face to Unreal -raw output. Read all about it and more in the release notes, and then download.


    January 7, 2000 - 2:40pm
    QStat 2.3e BETA - NEW RELEASE!
    Fixes Q3A and Half-Life master server queries. Fixes some bugs with Unreal support. Adds options for Heretic II and Kingpin. Read all about it and more in the release notes, and then download.



    December 30, 1999 - 2:20pm
    The next release of QStat is ready to go, but I don't have access to an NT box on which to build the win32 binary. So the release will have to wait until I return to work on Jan 4th. The release is mostly bug fixes. Of primary interest is that the Q3A master server queries will be fixed. I'm also working on fixing the Half-Life master queries, but the masters aren't cooperating. I'm waiting on help from a server-browser author on that front. Also, query flags have been added for Kingpin and Heretic II. (they were previously supported via -q2s). QStat already supports Unreal Tournament via -uns. I don't plan any special support for UT.

    The most requested new game support is Descent III. If anyone has information or leads on the query protocol for this game, please send email.

    See you after the end of the world!



    December 3, 1999 - 10:12am
    FedEx dropped off my tin box Quake III Arena this morning. It's installing as a write this. Watch for a QStat release in the next week or two. I'll be adding support for Q3A and Unreal Tournament.



    August 13, 1999 - 9:30am
    If you've sent me email about QStat you're probably wondering why you never got a response. You might be one of the lucky few that got "I'm real busy." Now you can see the financial result of all my busy work; check out the IPO of Active Software (ticker ASWX). Of course, this does nothing to help QStat and the dozen features and new games it should support.

    IPO Gift - Since the market is being so generous, I'll give a little in return. QStat already supports Kingpin servers using the -q2s flag. For example:

    qstat -q2s 216.140.170.50:31510
    The default port for Kingpin is 31510. I did say it was only a little in return.



    May 13, 1999 - 1:00pm
    Check out the email I've sent to id about problems with the Q3 master server. id may yet improve the master. But the id Q2 master was never fixed, so I'm trying to increase the visibility of the problem before it's too late.



    May 12, 1999 - 5:35pm
    QStat 2.3d BETA - NEW RELEASE!
    Major fixes for Tribes players and Quake 3 master server. Read all about it and more in the release notes, and then download.



    May 3, 1999 - 7:00pm
    QStat 2.3c BETA - NEW RELEASE!
    Lots of bug fixes. Q3 master is working again. See the release notes for a list of all the fixes and then download.



    May 3, 1999 - 1:10am
    Thanks to the several people who wrote in to tell me that the Q3 master support is busted. Well, it worked when I released it! But id changed the master server protocol shortly there after. Never fear, a couple QStat regulars and some new blood figured it out and sent patches.

    I'm also aware of the portability problems introduced by snprintf(). This was added by the BFRIS code and was actually new to me. Rather than delay the release of Q3 support, I got it compiling on NT, Solaris, and Linux. But, my Solaris box is 2.6. On 2.5/2.5.1, snprintf() doesn't exist. But, as Dark Grue points out, it does exist as __snprintf().

    But you don't care about all that... 2.3c BETA will be released shortly to address these problems (and some others).




    April 30, 1999 - 9:32pm
    QStat 2.3b BETA - NEW RELEASE!
    Need QStatage for Quake III (Q3Test) or BFRIS? This is the release for you! Download now before my web server gets swamped with requests. (ha!)



    April 26, 1999 - 9:32pm
    Good News - The next release of QStat will include support for BFRIS (a Linux game) and Q3Test. Support for both are thanks to source diffs provided by Pete Ratzlaff of Harvard and Dave "Zoid" Kirsch of id Software. That's right folks, QStat spans the globe from the ivory towers of intelligentsia to the blessed font of 3D shooters.

    So, when's the next release? Don't ask. I just need the time to merge the diffs, but I've got work dead-lines, and I'm moving this weekend. It'll be done when it's done.




    April 26, 1999
    Q3A is out and I haven't got a Mac for testing. If you have some info on the server and master query protocols, please drop me a line. Thanks.



    April 20, 1999
    QStat 2.3a BETA - NEW RELEASE!
    Lots of new games supported: complete Half-Life, Half-Life master, Tribes servers and master, and Shogo. Various bells and whistles too. Browse the release notes and then download this masterpiece!

    Please let me know if you have any trouble with this release. I'll do another release once the bug reports trickle down.




    March 14, 1999
    The next version of QStat will be available in April and will feature support for Turok2, Tribes, and Shogo (and possibly more). I'm doing a partial re-write of QStat to make it easier to add new games. Currently, I have to modify code in a dozen places in two files to support a new game. The new code will be largely table based, so I just have to add a table entry for the new game and maybe extra code for special cases. Duh, this is how it should have been done, but I never foresaw QStat supporting 10+ game types.



    February 18, 1999
    Turok2 -- NI.Stincey of DNA Games wrote to inform us that QStat already supports Turok2. The recommended command line is:
    qstat -R -P -unr 194.46.8.18:12880
    He notes that the port number used for Turok2 server queries is the same as the game port (unlike Unreal which uses game_port+1).

    I've received many requests for complete Half-Life support. I hope to have that done in April when my current work project is done.

    January 15, 1999
    QStat 2.2b - NEW RELEASE!
    D'oh! Half-Life support was Half-Baked; it did not work at all with the -raw mode. Fixed now in 2.2b. Humble apologies, etc.
    January 14, 1999
    QStat 2.2a - NEW RELEASE!
    Now with Half-Life support and easier Sin support. Links for notes, docs, and download in the bar on the left. Minors welcome.
    October 6, 1998
    To demonstrate the wonder that is QStat 2.1a, I've put up the (first?) Unreal server status page. I'm working from a server list I culled from snooping GameSpy Lite, so don't expect automatic server addition until a working public master is available.
    October 4, 1998
    QStat 2.1a - NEW RELEASE!
    Please, contain yourself. A trio of nifty new features in this release:
    • Unreal 2.15+ support
    • Broadcast queries
    • Save lists from master servers
    Don't wait an instant longer! Download this release now! My bits want to be free and only you can save them. If that's too much presure for you, then check out the 2.1a release notes or documention before you download.
    September 11, 1998
    The Champions League for Quake is an Internet-wide player ranking system for death match. The methodology looks excellent and the technology is even better (they're using QStat :-)). Sadly, "Steve[QStat]" does not appear in the rankings because I'm a CTF addict.
    But, my broccoli Rocket Arena II server was 8th in their list of popular RA servers.
    September 3, 1998
    I wasn't paying attention, but there's been a shake down among the Internet Quake server lists.
    Stomped                         Gone.
    QuestGate                       Gone.
    Pipo                            Gone.
    META Server list                Gone.
    Definitive Quake Server List    Down For Repairs.
    QuakeWatch                      Empty.
    
    The PlanetQuake list seems to be up, but my browser doesn't display anything after downloading a 400k list. On the bright side, I received note from quake.org.pl editor Tryllu that the Polish server list is up and tracking Kielbasa fraggers.

    Cue insightful analysis. The use of master servers and GameSpy have made web server lists largely obsolete. What the community needs now is global statistics gathering. There are an inordinate number of servers and players on the Internet, but no one's tracking usage. At the moment (6:30 pm, PDT), there are 3837 players on 1656 running servers. And that's just Quake II, there's also 1781 players on 870 QuakeWorld servers. 5500 twitching fingers is pretty good, perhaps enough to attract more attention to on-line gaming, and hence bring in more players.

    Anyone working on global usage stats for Quake and other shooters? I'd do the work myself, but my company keeps me way too busy. One technical impediment is the lack of a good graphing utility suitable for automated scripting. Excel makes great graphs, but it's costly and automation via VBScript or some such monstrosity is not my idea of a good time. If you have ideas, please send them to me. I'll aggregate and post. - Steve

    August 22, 1998
    QStat 2.1y BETA - Finally released the lastest QStat code for another beta. Major enhancements include:
    • HexenWorld support
    • Support for id's Quake II master
    Also fixed several annoying bugs. Sorry no Unreal support until Unreal is fixed for Internet play. Download this release for instant satisfaction, or check out the 2.1y release notes or documention before you dive in.
      July 27, 1998
      SiN! QStat already has support for the SiN demo. Just pretend it's a Quake II server:
      qstat -q2s 198.68.244.162:22450
      The guys at PQ already figured this out and have a SiN server list.
      July 27, 1998
      The next release is coming together, I'm waiting for the new Unreal server status support to be complete. In addition to the usual bugfixes, this release will support: HexenWorld, Unreal, and the finally fixed Quake II id master server.
      May 17, 1998
      I started running Quake 2 servers last month and decided it was time to use my own product. The broccoli Quake 2 server list is updated every two minutes. I'm generating HTML directly with QStat 2.1z BETA. I can provide the template files to anyone interested.
      April 17, 1998
      HexenWorld support will be included in the next beta of QStat 2.1. Thanks to IceBreak at Telefragged for the necessary code snipets. HW uses a Huffman encoding on the status data to reduce packet size.
      Speaking of Telefragged, their Q2 master server now supports the Q2 master protocol:
      qstat -q2m www.telefragged.com
      No predictions on the 2.1 release date, I haven't had a spare day in four weeks (though April 26th looks open).
      March 20, 1998
      Here's a patch for QStat 2.1z that fixes the bug preventing output templates from working on Win95/NT. See the March 4th news item for details on the bug. The patch includes a new executable for Windows built with a tempory fix. A better fix will be included in the next 2.1 BETA release.
      March 9, 1998
      TeleFragged has joined PlanetQuake in running their own Quake II master server:
          qstat -qw www.telefragged.com:27900
      This page provides instructions for configuring your server to talk to the TeleFragged master.
      March 5, 1998
      12:27pm - The PQ Q2 master has a neat feature:
          qstat -qws 204.182.161.27:27999 -R
      Returns a bunch of status information about the master itself.

      11:47am - Planetquake has a Quake II master running at 204.182.161.27:27900, but QStat could not elicit a response from the server. Then I realized it is using the QuakeWorld master protocol for queries. Sigh ... This is handy for existing server browsers, but is confusing to those who have to parse this protocol proliferation ...

      id software Q2 master (2.1z only):

      qstat -q2m satan.idsoftware.com
      Plantquake Q2 master (2.0b and 2.1z):
      qstat -qw 204.182.161.27:27900
      The host name for the Planetquake Q2 master is q2master.planetquake.com, but the IP address was recently changed and the old value may still be in your cache.

      In other news, I've fixed a bug that causes 2.1z to occasionally hang forever.

      March 4, 1998
      ARG! The output template stuff in 2.1z doesn't quite work on Windows. The bug is caused by an idiosynchrasy in the Windows handling of <cr><lf> during file reads. I'll have a fix in a day or two, but in the mean time there is a work-around.
         Remove the carriage returns from the template files.  You'll
         need to remove all <cr> characters, but leave the <lf> chars.
         <cr> is hex D or control-M.  <lf> is hex A or control-J.
         The template files in the qstat tar file do not have <cr> chars.
      
      Version 6.2 of WinZip will extract .tar.gz files, so download qstat21z.tar.gz and extract the template files with WinZip.

      This bug got through because I only tested with Unix-based template files. Sorry for the inconvenience.

      March 1, 1998
      QStat 2.1z BETA is available on the download page. The documentation and release notes are available in the side-bar (the same text is in the release). There is one entry in the Starter Host Cache page, but more will be added soon. If you don't know what a host cache is, check the QStat 2.1 documentation. Enjoy!
      February 24, 1998
      Status Update - The beta of QStat 2.1 is nearly complete. Major coding and docs are done, needs clean up and a bit of testing before release. In addition to the features mentioned on Jan 31, the beta will include support for the Quake II master server.
      February 6, 1998
      <drum-roll> Announcing QStat for OpenVMS! The silence is deafening, but John Ross Hunt has filled the void with a patch and instructions for running QStat on VMS:
      Steve, here is a small patch to make qstat 2.0b work on OpenVMS Alpha systems. Do what you want with it. Incorporate it in your next release, or if you find it offensive, fling it toward the bit bucket in disgust. :) I was bored and didn't feel like working today so I hacked this together. Cheers!

      John sent along the patch for OpenVMS and instructions for compiling and running QStat on VMS. Please direct your questions and praise to John, I know nothing of VMS. The patch will be added to future QStat releases.
      January 31, 1998
      The Derived Works page has been updated a few times, most recently for GStat by Aaron Levinson. The GStat page claims:
      GStat is a work based upon QStat ... In addition, it is faster than QStat for certain aspects of querying servers, has more options (all of them useful, naturally) and is much less bug-prone.

      I think the glove has been thrown down :) "bug-prone"? Ok, QStat 1.6 was buggy for a real long time, but I have only one outstanding bug in QStat 2.0 and it's actually a Solaris bug. Please tell me if you know of others. I'm not going in the same direction with QStat as Aaron, and only wish the best for a fellow programmer.

      Here is what I'm working on for QStat 2.1:
      • Host name/IP address cache (faster lookups and -H processing)
      • Output templates. Create a template web page and QStat will fill in the server information where you want it. Doesn't have to be a web page, but that's the most likely usage.
      • Server and player sorting. Handy for web pages.
      • Some performance improvements (though nothing dramatic).
      December 29, 1997
      QStat 2.0b is available. Quake II 3.07 had a minor protocol change ("map" changed to "mapname") that caused problems for people running QStat without -raw. I presume web page maintainers fixed their own scripts. Other minor additions were made, see the release notes.
      December 19, 1997
      Thanks to Shaun Morgan, I have an updated list of Quake II servers.
      Tis better to give ...
      To date there have been 1,022 downloads of QStat 2.0a (3:1 in favor of the zip file). Happy Holidays!
      December 9, 1997
      QStat 2.0a released with Quake II support. To get everyone jump started, I've culled a list of Quake II servers from various web sites. Save to a file and feed to qstat with -f.
      November 30, 1997
      QStat 1.6 finally leaves beta for final release. See the Release Notes for changes since beta5.

    steve@qstat.org