Skip to main content

Modules for working with Valve's Source Engine file formats.

Project description


Documentation Status

Modules for working with Valve's Source Engine file formats, as well as a variety of tools using these.


Simply pip install srctools, you'll need Python 3.7+.

Core Modules:

  • math: Core vector, angles and matrix classes, with Cython accelerated versions.
  • cmdseq: Reads and writes Hammer's expert compile command list format.
  • filesys: Allows accessing VPKs, zips, folders etc using a unified interface, as well as a prioritised chain like the engine's game folder system.
  • logger: Wrappers around the logging module allowing str.format interpolation support, among others.
  • const: Various shared constants and enums.
  • tokenizer: Cython-accelerated tokenizer for parsing the various text files.
  • binformat: Some tools for handling binary file formats.

File formats:

  • keyvalues: Reads and writes KeyValues1 property trees.
  • dmx: Reads and writes DMX / KeyValues2 format files.
  • vmf: Reads and writes VMF map files.
  • bsp: Reads and writes compiled BSP maps files.
  • fgd: Reads and writes FGD entity definitions. A compressed database of definitions from most games is also included, from HammerAddons. Note that this parses a superset of the FGD format, including "tags" to allow specifying which entities and keyvalues are supported for different engine branches.
  • mdl: Reads some parts of compiled MDL/VTX/VVD/PHY models.
  • smd: Reads and writes SMD geometry data.
  • sndscript: Reads and writes soundscripts.
  • vmt: Reads and writes VMT material files.
  • vpk: Reads and writes VPK packages.
  • vtf: Reads and writes VTF images, including DXT compression.
  • particles: Reads and writes PCF particle systems.


  • game: Parses gameinfo.txt files, and handles accessing the searchpaths.
  • instancing: Implements logic for collapsing func_instance into maps.
  • packlist: Stores a list of files of various types, then computes dependencies recursively. This also includes a database of resources required by game code for different entity classes.
  • run: Code to run a compiler, logging the output as it executes while still storing it.

Download files

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

Source Distribution

srctools-2.3.9.tar.gz (850.3 kB view hashes)

Uploaded source

Built Distributions

srctools-2.3.9-cp311-cp311-win_amd64.whl (1.1 MB view hashes)

Uploaded cp311

srctools-2.3.9-cp311-cp311-win32.whl (1.1 MB view hashes)

Uploaded cp311

srctools-2.3.9-cp310-cp310-win_amd64.whl (1.1 MB view hashes)

Uploaded cp310

srctools-2.3.9-cp310-cp310-win32.whl (1.1 MB view hashes)

Uploaded cp310

srctools-2.3.9-cp39-cp39-win_amd64.whl (1.1 MB view hashes)

Uploaded cp39

srctools-2.3.9-cp39-cp39-win32.whl (1.1 MB view hashes)

Uploaded cp39

srctools-2.3.9-cp38-cp38-win_amd64.whl (1.1 MB view hashes)

Uploaded cp38

srctools-2.3.9-cp38-cp38-win32.whl (1.1 MB view hashes)

Uploaded cp38

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page