Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Source 2 - Dump Tracking

Reusable workflow for automated dumps of any Source 2 game's depot content, binary strings, reconstructed protobuf schemas, Steam manifests and the S2Dumper schema output.

Tracking things, so you don't have to.

How it works

The Dumping Game workflow downloads the tracked depot files for a given Steam app via SteamDepotDownload, then runs s2dumper, strings and ProtoDump against the downloaded binaries. Results are committed straight back to the calling repo.

It can run manually (workflow_dispatch) or be called from another repo (workflow_call) with these inputs, one per Source 2 game being tracked:

Input Required Default Description
app_id yes 730 Steam app ID to download/dump (e.g. 730 - CS2, 570 - Dota 2).
branch no public Steam depot branch.
branch_password no (empty) Password for the branch above, if private.
game_folder yes csgo Game folder name under install/game (e.g. csgo, dota).
tracked_files yes tracked_files.json Path to the tracked-files manifest json.

Requires STEAM_USERNAME and STEAM_PASSWORD secrets.

Repository layout

Path Contents
install/ Extracted game files pulled from the tracked Steam depots (scripts, configs, VPK archives selected by tracked_files.json, etc).
manifests/ One file per build, named manifest_<patchversion>_<buildid>_<sourcerevision>.txt.
strings/ Output of strings run against every .exe, .dll and .so under install/. Split into win64/ and linuxsteamrt64/.
protobufs/ .proto schemas reconstructed from every .dll under install/ via ProtoDump.
dump/ Output of s2dumper.

protobufs/ layout

protobufs/
├── all/                # every discovered proto, deduplicated across all binaries
│   ├── netmessages.proto
│   └── ...
├── client/             # protos first found in client.dll
│   ├── usercmd.proto
│   └── ...
└── engine2/
    └── ...

One subfolder per source .dll (schemas first discovered there), plus all/ with everything deduplicated.

dump/ files

File Contents
commands.json JSON file describing each command's name, registration module, flags, description and attributes.
convars.json JSON file describing each convar's name, registration module, flags, description, default value and attributes.
datamaps.json JSON file describing each schema class's data members, input (with type) and output functions, but also think functions.
entities.json JSON file describing a list of entity classes registered in the game, showing their Schema name, Designer name and also entity flags.
interfaces.txt A list of interfaces queried by all modules while the dumper was running.
sdk.json JSON file describing the schema description of all classes and enums registered.
think_functions.txt A list of all of the think functions that were registered.

Manifest format

Each manifests/manifest_*.txt file starts with the build's app ID, branch, versions and build time, followed by the raw depot manifests for that build.

Links

About

Shared tools for dumping S2 games

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors