Skip to main content

Build order parser for StarCraft 2 replays

Project description

spawningtool

spawningtool is tools for analyzing StarCraft 2 Replays. It uses the data parsed by sc2reader to make data available in a more human-digestable format.

Currently, spawningtool offers a basic parser for extracting build orders from replays. Our goal is to incorporate more sophisticated techniques from Artificial Intelligence to understand and classify these build orders.

Installation

From PyPi (stable but often out of date for the latest patch)

pip install spawningtool

From GitHub (less stable but recommended)

pip install -e git+git://github.com/StoicLoofah/spawningtool.git#egg=spawningtool

Note that master usually requires sc2reader master, not the latest versioned release, so you will need to grab sc2reader from GitHub as well. Although it is less stable, it is recommended because the latest versions of both spawningtool and sc2reader are necessary to parse the most recent patches of StarCraft 2

Usage

To execute it directly from the command line

python -m spawningtool PATH/TO/REPLAY

To execute it from within python

import spawningtool.parser
spawningtool.parser.parse_replay('PATH/TO/REPLAY')

For more notes, see the GitHub wiki

Running Tests

Tests parse the replays in replays/ and compare the output against the expected results in tests/. To run them from the repository root:

python tests

The same suite runs automatically on every push and pull request via GitHub Actions.

To regenerate the expected results after an intentional change to the parser output:

python tests/update_expected_results.py REPLAY_NAME  # e.g. patch_400

Support

Please submit any issues you encounter to the GitHub project. You're also welcome to email Kevin directly at kevin@kevinleung.com.

Thanks To

  • @dsjoerg for many contributions to sc2reader and replay parsing as a whole through his work at ggtracker
  • @hahnicity for all of the code cleanup. Previously, spawningtool was just a script. Thanks to his help, the code is actually readable and packaged for others to use and improve
  • @GraylinKim for lots of support. Even before the project switched over to using sc2reader, he offered advice and tips on getting this project off the ground.

Changes

  • v2.12.0, June 24, 2026 -- adjust Gateway unit build times for Warpgate Research in patch 5.0.16
  • v2.11.0, April 29, 2024 -- update ladder data for balance patch 5.0.12 and 5.0.13
  • v2.10.0, February 13, 2023 -- update ladder data for balance patch 5.0.11
  • v2.9.0, August 17, 2021 -- Fix Liberator build time, add more display names
  • v2.8.0, October 28, 2020 -- add Mengsk
  • v2.7.0, January 18, 2020 -- update ladder data for balance patch 4.11.0
  • v2.6.1, October 14, 2019 -- bump sc2reader>=1.4.0, balance updates
  • v2.6.0, August 9, 2019 -- add Stetmann, mark additional worker types
  • v2.5.2, March 27, 2019 -- update Forge upgrade timing for March 25, 2019 balance update
  • v2.5.1, March 8, 2019 -- remove changelings of Marines with Combat Shield
  • v2.5.0, January 22, 2019 -- update ladder data for balance patch 4.8.2
  • v2.4.0, November 21, 2018 -- update ladder data for balance patch 4.7.1
  • v2.3.0, November 18, 2018 -- bump sc2reader==1.3.0 for StarCraft 4.7, add Zeratul
  • v2.2.2, October 28, 2018 -- fix various LotV data, added more display names
  • v2.2.1, October 24, 2018 -- fix pip packaging. Thanks Gusgus01
  • v2.2.0, October 7, 2018 -- bump sc2reader==1.2.0 for StarCraft 4.6, add Tychus
  • v2.1.0, June 13, 2018 -- fix Lair and Hive co-op build time, add Abathur building morph reduction, fix co-op generic build times, moved this file
  • v2.0.0, May 18, 2018 -- continuous integration, StarCraft 2 4.0 support (new unit types, chronoboost, etc.), Co-op support
  • v1.0.0, December 9, 2016 -- improved LotV chronoboost support, better unit type coverage, updated to LotV 3.8.0 data
  • v0.2.1, December 12, 2015 -- Legacy of the Void support, HotS chrono boost
  • v0.2.0, March 3, 2015 -- python3 support, analysis script examples, map details, caching
  • v0.1.3, August 12, 2013 -- bump to sc2reader 0.6.0, unit tests, add unit change events to build order, add units lost, add ability extraction
  • v0.1.2, June 15, 2013 -- Locking in sc2reader version, fix supply for it
  • v0.1.1, May 12, 2013 -- Updating main to be accessible via the package, adding more metadata
  • v0.1.0, May 12, 2013 -- Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spawningtool-2.12.0.tar.gz (131.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spawningtool-2.12.0-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file spawningtool-2.12.0.tar.gz.

File metadata

  • Download URL: spawningtool-2.12.0.tar.gz
  • Upload date:
  • Size: 131.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for spawningtool-2.12.0.tar.gz
Algorithm Hash digest
SHA256 5f0653c09125697d423b3e8a53f2357267bf18a5afd5f75076c7729f560c43e2
MD5 933e0f656bd7a1619b283bac3cd2ca1c
BLAKE2b-256 4aa842917fd52e09be2c0b628c6ce9c97eae27edfce1ca034e994ab84f166498

See more details on using hashes here.

File details

Details for the file spawningtool-2.12.0-py3-none-any.whl.

File metadata

  • Download URL: spawningtool-2.12.0-py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for spawningtool-2.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc6e79998c262b0aa1e6ef6f60ba06693d1f18123797da8501eef4f57fb615cb
MD5 08f56798ebcc0d306fa5fcadcada0ade
BLAKE2b-256 c6d12d81d3d55fab9b52342a2493a174b4fb3de0ade8f5623e5f6247343038c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page