Skip to content

RedFantom/gsf-parser

Repository files navigation

GSF Parser

Github All Releases Wiki Build Status

Deprecation Notice

- Deprecation Notice
@@ Unfortunately, since SWTOR Game Update 7.0, this parser no longer works properly. @@

SWTOR Game Update 7.0 was released in February of 2022. Since then the CombatLogs that SWTOR creates are of a slightly different format. Updating the GSF Parser to support this format would take more time and effort than I can spend on it.

Not only do the new CombatLogs provide more information (location information, specifically), they also break the capability of the GSF Parser to easily determine who the player is in the CombatLogs (by ID number). This has substantial implications for the parser, as it was never built with the idea of not having this information being a possibility. While updating to support the new format is possible, without a substantial rewrite of the core parsing code and adjustment of the UI to match, a lot less useful information would be displayed.

This repository remains available in case anyone finds it interesting. The build calculator, while a little buggy, is unaffected by this change. This parser also provides an example of the possibilities of using information other than text to infer game information. Unfortunately, it does not serve any other purposes at this time.

Features

  • CombatLog parsing with various statistics
  • Real-time CombatLog parsing with overlays
  • Screen parsing, both real-time and while file parsing, to provide more information
  • An event-by-event overview of whole spawns
  • An integrated Strategy Manager with collaborative editing features
  • Graphs that show performance over time
  • A set of tools to improve your GSF and GSF Parser experience
  • Lots of settings to make the GSF Parser do what you want it to

Issues and requests

If you would like to see a specific feature in the GSF Parser, or you have found a bug, feel free to create an issue in the GitHub issue tracker of this repository. Of course you could also fork the project and write the code yourself, but it is preferred that if you do want to write code, you add it here after being granted write access to the repository.

Building a release

If you would like to build a release of the GSF Parser yourself, all you need is a Python installation with the proper requirements installed, and additionally PyInstaller to build the executable, all on a Windows platform. If you also want to create a setup file, you'll need Inno Setup to build the setup script. You can find an interactive script in /release, it will do everything automatically when you run it.

Copyright and License

Built by RedFantom with contributions of Daethyra (Naiii) and Sprigellania (Zarainia). Source is available on the GitHub repo.

The creators of this software do not own Star Wars or any related trademarks. All trademarks are property of their respective owners.

GNU GPLv3

GSF Parser: A parser for SWTOR:GSF
Copyright (C) 2016-2018 RedFantom

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Project dependencies

This project uses multiple dependencies, all of which are needed to run the GSF Parser correctly correctly from Source Code.

  • matplotlib, pip install matplotlib
  • mock, pip install mock
  • pillow, pip install pillow
  • numpy, pip install numpy
  • OpenCV-Python (version 3 or greater), pip install opencv-python on Windows and sudo apt-get install python-opencv on Debian based-systems
  • Python-MSS, pip install mss

Technical information

File parsing

The GSF Parser can read the text files generated by Star Wars - The Old Republic to gather useful data about GSF matches. Under the hood, this happens by going over the files line by line. Due to limitations of the data stored in CombatLogs, not all data that can be found in in-game scoreboards can be reconstructed by the GSF Parser.

Real-time parsing

By parsing the CombatLogs as they are created, the GSF Parser can gather data while you're in a GSF match. Not all of this information is useful to everyone. Usually, the data in this section is only informative, not useful. Of course, this changes when large sets of CombatLogs can be compared, such as in File Parsing.

Screen parsing

To work around the limitations of CombatLogs, screen parsing was implemented. By taking screenshots on a short timer and analyzing them, it is possible to extract much more data. The screenshots only exist in memory and are discarded when a new one is taken, and when the GSF Parser is stopped the last one is destroyed as well. The GSF Parser does not interact with the game executable in any way. The game must be in Fullscreen (Windowed) mode for this to be effective, and the correct GUI profile must be selected.

Overlays

Some of the data gathered while real-time parsing can be shown in an overlay. These overlays are actually windows, not like a program like FRAPS (FRAPS injects its code into the DirectX9 EndScene call on a device, very difficult if not impossible to do from a Python program, even with C++ code). That means that there are some limitations. The first one is that due to the kernel, on Windows 7 players may experience frame-drops because of this, on Windows 8 and 10 this is not the case. The second one is that the game must be in Fullscreen (Windowed) graphics mode.