Rotating Q logo by PulStar
Fragstats logo by PulStar
Rotating Q logo by PulStar

You are visitor number 

What's New?

What is Fragstats? Fragstats is a log parser that generates player statistics in HTML for QuakeWorld, Quake2 and Quake3 Arena. It can also generate stats for games such as TRIBES.
For a simple Perl utility that converts TRIBES logs into GS logs that Fragstats can parse, grab tribestats.pl.
For the latest version, click here. Thanks to [PRU]tubaguy for this.

Fragstats replaces the much missed scoring system from the original QuakeWorld 1.2x. The QuakeWorld team decided that centralised frag logging was just too much and instead implemented local server frag logging. Standard Quake2 Deathmatch doesn't include any native frag logging, but patches exist which enable this. Fragstats supports QuakeWorld, GS logmod and Quake 3 Arena style logs. See the Fragstats text description for details of patches you can get.

For safety, fragstats does not alter the frag logs in any way.

For a complete explanation of what Fragstats can and can't do, see the text description.

What does it achieve?

My design goals with fragstats were:

Yeah, but does it work?

Check out the scores page on NullNotZero's Quake2 server for proof.

Installation instructions are included as well as a sample scores page and config file. 

What's New?

  • Added integer expressions for improved HTML output.
  • Fixed blank player name handling in Q3A (included in 1.09c-p1).
  • Added map name aliasing so you can rename those unfriendly Q3A mapnames to something nicer - also gives you the ability to consolidate scores from several maps.
  • Map names are now sorted.
  • Fixed a bug which prevented loading of previously created databases.
  • Updated q3server.bat to use different ways of passing dates to Fragstats.
  • Added 'deleteplayer' option for removing unwanted player names from the database.
  • Fixed bug which caused some coloured player names to appear wrong.
  • Added another note on starting the Q3A server:

  • Make sure you set the following variable in your server config file:
    g_logsync 0
    This forces Q3A to write to the log file game by game rather than line by line.
  • Added note to 'templatedir' option saying it is not for Qplayer templates.
  • New q3server.bat file (simpler, using setenv and q3adate)
  • setenv.exe and q3adate.exe - tools for Win32 Q3A server startup
  • Updated Q3A.txt
  • Updated FAQ.txt.
  • Bug fixes.
  • Included a couple more Means of Destruction templates for Q3A.
  • Changed Q3A.txt so it now correctly shows the way to start a dedicated linux server with datestamp from:

  • q3ded +set dedicated 2 +sets gamestartup \"`date +"%m-%d-%y %T"`\" +exec server.cfg
    q3ded +set dedicated 2 +sets gamestartup \"`date +"%m-%d-%Y %T"`\" +exec server.cfg
  • Quake 3 Arena support
  • New config options 'parsewarn' and 'templatedir'.
  • Some new weapons templates for the Q3A weapons.
  • Better handling of log generating mods (such as Lithium 1.24) that generate garbage dates since January 1, 2000.
  • Bug fixes
  • Expression handling via User Defined Tags. You are now no longer forced to use just the stats that Fragstats provides. Full sorting support so you can produce HTML output sorted by your own stats. For more details see the template.txt file. 
  • Increased the maximum length of the dbcfg filename. 
  • Added support in Qplayer for CGIDIR environment variable to get around some web servers not setting the working directory properly. See FAQ.txt for details. 
  • Added to the FAQ: 

  •   - How to deal with undesirable player names. 
      - How to fix Qplayer working directory problems with IIS and Website. 
      - What to do to get TRIBES stats happening. 
  • Hopefully fixed the Linux date problem mentioned in the FAQ. 
  • Changed the wording of the licence. 
  • Other minor fixes. 
v1.07a Little fixes & additions. 
  • Added reverse sorting extension to the 'htmlout' command. Syntax is now: 
htmlout [<num|all] by [reverse] <sort using <template [output|append] <file
  • Added notes on making search by name work when dbcfg is specified. 
  • FAQ has some info on merging multiple QW servers. 
  • Added sort by Frags back into the sample fragstats.cfg file. 
  • Added new tag <!--dbcfg-- which outputs the dbcfg name. 
  • Added the ability to sort by Ping and Last Seen. 
eg. Show the 20 players with the lowest average ping: 
htmlout 20 by reverse ping using "c:\fragstats\top20temp.html" output ping-top20.html

eg. Show the 20 most recently connected players: 
htmlout 20 by "Last Seen" using "c:\fragstats\top20temp.html" output recent-top20.html

  • Added 'FPHthresh' option to provide fairer FPH sorting. 
  • Made 'ping' data more accurate. 
  • Made 'last seen' data more accurate. 
  • Fixed the dodgy case comparison when looking for a log file. 
  • Fixed meansod/gh.html template so it refers to <!--grappling_hook-- 
  • Added FPHthresh info to standard templates. 

  • Fixed weapon sorting so that an equal number of kills will force a comparison by deaths.
v1.07 A bunch of new features, including: 
  • Sorting by any score type now supported, eg. sort by "Flag Capture". 
  • New tags for time connected, maps completed, time last seen, frags per hour and ping. 
  • Support for display of stats for a given weapon via user defined tags. eg. When defined, <!-rocket_launcher-- will display the rocket launcher stats for a user. Any weapon can be displayed like this in the same manner as special scores. You can also sort by weapon. 
  • Players with zero scores are automatically deleted from the database. 
  • Added new 'dbcfg' option which is used to specify a special database config file. This lets you keep seperate the stats from multiple servers in the same CGI directory. 
  • Fixed Duel sorting bug that caused a div by zero crash occasionally. 
  • New "Means of Destruction" templates to display top scores by weapon. 
  • Updated the scores.html template to include the new "Means of Destruction" page. Added connect time & frags per hour to the default Top 20 template. 
  • Fixed cgitemp.html so standard DM template doesn't have CTF tags in it. 
As before, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
v1.06b Bug fix: 
  • Problem generating an URL from map names that contain non-ASCII characters now fixed. 
Work around: 
  • FAQ now contains info on how to get the date displaying correctly (for people having trouble with Red Hat Linux). 
As before, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
v1.06a Bug fixes: 
  • Problem parsing certain GS logs that resulted in a core dump. 
  • Player names made up only of spaces are discarded. 
  • Fixed internal templates. 
As before, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
v1.06 A large number of new features with 1.06, including: 
  • Enhanced GS log support, including Team Scores, Map Statistics and Weapon Statistics. 
  • Support for special scoring in mods such as CTF, Headhunters, etc. 
  • CGI error template support for Qplayer. 
  • New sample templates for error handling & CTF. 
  • Duel Threshhold option. 
  • User Defined Tags which allow you to include strings, special scores or even files anywhere you like in your HTML output. 
As before, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
  • GS log support. 
  • Bug fixes. 
  • Changed Deaths so it doesn't include Suicides. 
  • Alias option. This allows the admin to define aliases for players that have changed names, so their scores get combined into one. 
  • Duel statistic. 
  • Alternative Skill statistic as well as the original one. 
If you've already installed Fragstats, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
  • Fixed another bug 
  • Added support for extended chars in the raw output 
  • Added non-padded and padded tags for templates 
  • Added support for tags using <!--tag-- format as well as <?tag format. 
If you've already installed 1.04 or 1.04a, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database. Also, if you're using maintemp.html as a template, check the changes I've made to it to accommodate the new padded HTML template tags.
  • Maintenance release to fix a minor bug most people will never see. 
If you've already installed 1.04, just copy the new executables over the old ones and re-run Fragstats to reinitialise the database.
v1.04 Now we're cooking with gas! 
  • HTML template support! You now have complete control over the output produced by Fragstats and Qplayer (htmlout and cgitemplate commands). 
  • Raw output in CSV format (rawoutput command). 
  • Suicides & Total frags now recorded. 
  • Somewhat improved performance. 
  • Somewhat reduced memory requirements. 
  • Option to disable the CGI interface (disablecgi command). 
  • Option to disable smart name conversion (nameconvert command). 
  • More meaningful output (for admins), including a timer. 
  • Maintenance release to fix some bugs and improve performance. 
  • Fragstats can now reload a previously generated database rather than churning through all the logs every time. This reduces the processing time. 
  • Added background image option for nicer HTML output. 
  • Configurable extended characters now supported via mapchar command. Those funny names in Quake no longer look like line noise in your web browser! 
  • Added support for clan names in (), {}, < and -- as well as []. 
  • Configurable Efficiency threshold to prevent 1 frag/0 death wannabes from having 100% efficiency. 
  • Fragstats will now pick up all frag logs in the specified directory, even if some are missing. 
  • Some more code streamlining. 
  • Options can be defined via a config file as well as the command line. See fragstats.cfg for a sample config file. 
  • Significantly reduced the size of the victims database. 
  • The qplayer program will now accept input via an HTML GET or POST. I've updated scores.html to provide a sample 'Query by Name' feature. Name searches use the same rules as those used when process in the frag logs. 
  • Additional options to allow specifying of HTML colours and the name the qplayer program is invoked by. 
  • First public release. 

Brickbats and Bouquets

Any constructive feedback is appreciated. Send them to chriss@pcug.org.au.

Flames are automatically routed to /dev/null (UNIX) or billg@microsoft.com (NT, Win95). This software is "Freeware" which means that is offered at no cost.
No warranty of any kind is offered or given with this software. The software is provided on an "as is" basis. No liability is offered or accepted by the use or misuse of this software.

I think that about about covers it. Enjoy!

Fragstats Copyright Chris Scarvell 1999. All rights reserved.
Comments? Questions? Contact the Author

Back to home