srctools
srctools copied to clipboard
Modules for working with Valve's Source Engine file formats.
srctools
Modules for working with Valve's Source Engine file formats, as well as a variety of tools using these.
Installation
Simply pip install srctools, you'll need Python 3.8+.
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 theloggingmodule allowingstr.formatinterpolation 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.
Tools:
game: Parsesgameinfo.txtfiles, and handles accessing the searchpaths.instancing: Implements logic for collapsingfunc_instanceinto 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.