Quake 3 Arena Console Log Parser

What is it?
Quake 3 Arena Console Log Parser is a java application to read your qconsole.log files generated each time you play Quake 3 Arena (or any mod thereof, and have the correct logging variable set).

What does it do?
It tracks in an XML file the details of all your hits, frags and death accross all servers you play on. Provided you run the application each time you play.

What Mods does it support?
Currently, it only supports Urban Terror and doesn't even work with standard Quake 3 Arena logs. This is because I play Urban Terror, not Quake 3. The API is open and extensible, and any Java developer can grab the source code and extend it to work with another mod, or the core game.

Where can I download it?
Download the Binary version here. (Q3Astats-binary.zip)

What platform will it run on?
Any operating system that has a port of the Sun Java Runtime Environment 1.4 or greater. I.e. any version of Windows, MacOS, Linux, Solaris etc.

How do I run it?
You need to install the JRE (Java Runtime Environment) version 1.4 or greater from java.sun.com.

You need to enable console logging in Quake 3, either do +set logfile 3 on the commmand line to run quake or put "set logfile 3" in your autoexec.cfg file.

When you have finished gaming a qconsole.log file will be on your system. Either in the QuakeIII install folder, or if you play with a mod, within that mods folder. You need to run the program over that.

java -jar Q3Astats.jar <YourPlayerName> "c:\program files\quake III arena\q3ut2\qconsole.log"
Substituting the path to your qconsole.log file.

Urgh! All I get is some XML filth out the back!
Yes. I cache the information to XML, which you can then display any way you like. There are plenty of ways of doing this, you can probably even import it into MS Office and use Excel or something to do stuff to it. I wrote this a PHP page to display all your information nicely. You need web hosting with PHP to use it, but it's a start. Soon, I'll write a program that you can use to generate HTML from the stat XML on your own computer to look at. Hopefuly someone else will do it first. That's why my source code is out there. You can use the source of the parser to get a head start on a display program.

Who uses it?
Here are some people using the PHP renderer:

What other options are there?
You must supply the the last two arguments, in the correct order. PlayerName is what is displayed in the log file as your name. You can change what the app looks for as your in-game name with the -r option.

java -jar Q3Astats.jar <options> <PlayerName> <LogFile>

-o path\to\some.file.xml
-c path\to\some.file.xml
-r someregex
-g path\to\some.game.jar
-r someregex
A regular expression that defines what the name of your player was. If you play as THEMike and THEDyke for example, and want your logs to be parsed automaticaly every day at a set time with the same command line, you could specify -r "(THEMike)|(THEDyke)" and it would recognise THEMike AND THEDyke's kills as yours. Kind of handy for tracking a clan's frags I guess. For full details of the syntax of the regular expressions, See the API for Java Regular Expressions
-o path\to\some.file.xml
The application stores the results of the parse as XML, by default in a file called PlayerName.xml in the players sub folder. (where playername is your playername as specified). If you want to override this (weekly/daily results? Funny characters in your name?) You can specify the path to a file to use.
-c path\to\some.file.xml
The application reads in the results from previous parsing runs to a file, by default PlayerName.xml in the players sub folder. You can override this with the -c (cache) option.
-g path\to\some.game.jar
Assuming that someone implements a game definition for another mod than UrT and you want to parse against that, specify the Jar file to run with.

How can I help?

Want to work on Q3Astats the engine?
Download the source code either as a zip file from the above URL for the binary and code away, send me your changes I'll test and integrate. Or you can check out from the annon CVS see the project page on sourceforge.net for information.
Want to work on support for other mods?
Check out the source for UT2.jar and copy the style for another mod. Once you have a full kill/hit list, it should take only a few hours to build and test.
Want to work on Display code?
Please do! Write an app, and I'll add it as a package to the tree and grant you CVS control over it! Once I figure out how! heh.
Want to work on JUnit cases?
If you can/want to write JUnit test cases for my stuff, I'd love you forever!
Want to contribute in some other way?
Contact me and we'll sort it out
You may like to check out the Javadocs from the code.
Copyright © 2002 Michael Jervis

SourceForge.net Logo