Please upgrade your browser for the best possible experience.

Chrome Firefox Internet Explorer

GSF Parser written in Python

Kraagien's Avatar

09.01.2016 , 12:34 PM | #1
Good day to all space-faring folk!

You may have already read something about it on these forums, or on the Showing Rookies the Ropes website: I have started working on a GSF CombatLog parser. CombatLogs, which the game automatically records in your Documents contain valueable information about what happens in a match, and you could improve your piloting skills by using this information correctly. However, the CombatLogs are a mess, and really hard to get useful information out of when just viewing them in a text editor:
[20:18:27.587] [12012000058033] [12012000061176] [Ion Railgun {3301786173571072}] [ApplyEffect {836045448945477}: Damage {836045448945501}] (420 kinetic {836045448940873})
What is a parser?
That's where a parser comes in. A parser can analyze data in general and get useful information out of this data. It basically throws away all of the stuff that you can't use, though a good parser will never modify the original file. In the case of CombatLogs, a parser could calculate statistics like damage dealt and taken, DPS and healing received. CombatLogs do not contain all information you'd may like though, because they for example do not name your enemies, your ships or your respawns.

Current features
At the moment, it doesn't do all that much. It reads in a CombatLog, splits it up into matches (up to twenty matches are supported in one CombatLog) and displays the damage dealt, damage taken, healing received and abilities used for that match. The abilities are still displayed in a Python dictionary (a programming-thing), and the numbers behind each ability is the amount of times it occurs in the CombatLog being used by the player.

Possible future features
Even with the little data a CombatLog actually holds, a lot is possible:
- Because every time you spawn your unique ID number changes, this could be recorded.
- Because the abilities you use limit you to one or a few possible ships, a ship identifying feature would be possible.
- Because ID numbers are (as far as I know) unique for matches, a database of match-results could be collected, and by matching the time of the match and the ID numbers, it would also be possible to identify enemies (as long as they use the parser for that match).
- An action-by-action view of a match could allow you to see why you died, and improve on that.
- A ship-and-build recognizing system could actually give advice based on the combined knowledge of the whole GSF community.
- Real-time parsing by automatic most-recent-CombatLog detection (no in-game overlay, this is not possible with Python)

Next steps
Currently, I am the only one working on it with Daethyra helping me out with bugs, mistakes and coding-style . However, Pyril is planning to come along for the ride too. We want to add a feature to upload the results of a certain match to a server, which, after validations, can administer it to a database. This database could contain not only statistics, but using this database it would also be possible to objectively calculate which builds on which ships are most effective. Some of the features listed above would fit in with that nicely: users could comment on certain builds, giving the advice feature and ID numbers could also be stored in this database, though I myself am concerned about privacy there.

What should you expect? Well, the time I have is limited, and so is the time Daethyra and Pyril have. That might mean that this project might strand somewhere. I don't think all features listed above will be added, because it would be very time-consuming. Finding the time will be harder than finding the motivation to work on it.
I would very much like it if you offer your opinion on whether you think this is actually a good idea, whether you're planning to use it when it's available in a user-friendly format and what features you would like to see first if you do.

If you want to take a look at the current version (1.1.2), you can go over to the GitHub repository.

TL;DR: I've started a parser written in Python that can get useful information out of a SWTOR CombatLog. Now I'd like to know whether you're planning to use it, and what features you'd like to see most

/sidenote: I have only 21 days left of posting on this forum
RedFantom - Developer of the GSF Parser

WingCommander and Recruitment Officer of Thranta Squadron

FlavivsAetivs's Avatar

09.01.2016 , 03:43 PM | #2
Awesome work!

~ Eudoxia
A.K.A. Magister Militum Flavius Aetius
Eudoxia | Constantia Eudoxya | Euander
GSF School
Jedi Covenant

Wildtee's Avatar

09.01.2016 , 07:09 PM | #3
*bows to Red's nerdiness and dedication* o7

Kraagien's Avatar

09.03.2016 , 04:21 AM | #4
Quote: Originally Posted by Wildtee View Post
*bows to Red's nerdiness and dedication* o7
Thank you, though it's not just my nerdiness anymore . Daethyra is helping me out too!

Edit: For those of you not familiar with Python, I have released version 1.2.2 as both a ZIP-file with an executable and a Setup-installer. You can find the release on the releases page of the repository.
RedFantom - Developer of the GSF Parser

WingCommander and Recruitment Officer of Thranta Squadron

Fifty-Two's Avatar

12.11.2016 , 11:43 AM | #5
This message was originally written by RedFantom.

While this topic may have led you to believe that the development of the parser had been stopped, the very opposite is true. Daethyra and I have been working hard on a new version of the parser, and I am glad to announce that version 2.0.0_alpha is now available on the GitHub page. This version includes some features we hope will interest you, including:
- A fully redesigned user interface with a new layout
- Real-time parsing with overlay (please note that having the game in Fullscreen (windowed) is required)
- Per spawn parsing
- Ship recognition
There are also quite some things that aren't working yet, but this alpha version still seems like a much better version than the old 1.4.0 to me. I hope you enjoy using it!

<Thranta Squadron>
Uniting TRE's Imperial pilots
Pyril - Guild Master of Thranta Squadron

Zennan's Avatar

12.11.2016 , 11:16 PM | #6
tkMessageBox.showinfo("WHAT?!", "DID GSF GET AN UPDATE?!")
Can't wait for when this line of code needs to get updated...

Fifty-Two's Avatar

01.02.2017 , 10:33 AM | #7
This message was originally written by RedFantom

Version 2.0.0 (stable)
Hereby I would like to officially announce the stable version 2.0.0 of the GSF Parser. This version contains various bugfixes, improvements, more settings and general improvements, including fixes for two critical errors when running a different operating system than Windows 7. This version is the first version that I actually like using myself, and I hope you all do too! A big thanks to Daethyra for helping me again. This forum doesn't allow images, so two links to the screenshots will have to do, after all: what you see is what you get.
I have also set up a website on, and while it's not fully up-to-date for v2.0.0, you can still take a look there. If you want to download the parser, you can find an installer here, and a ZIP-file here. If you have any feedback or ideas, you can of course post in this topic, but your are also welcome to send feedback through the feedback form on the website, if you can't post here.

Quote: Originally Posted by Zennan View Post
Can't wait for when this line of code needs to get updated...
Don't we all . Glad to see you actually took the time to read some of my code!

Edit: One more note: the installer of the GSF Parser is known to give off a security warning of Windows itself, not your anti-virus, because the installer is not signed with a certificate. As these cost about 180 a year, I find myself unable to prevent that.
<Thranta Squadron>
Uniting TRE's Imperial pilots
Pyril - Guild Master of Thranta Squadron