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
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
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>
- -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?
You may like to check out the Javadocs from the code.
- 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