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.
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.
| 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/
├── 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.
| 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. |
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.
- Swiftly-Tracker/SteamDepotDownload — depot downloader
- Swiftly-Tracker/s2dumper — schema/entity dumper
- Swiftly-Tracker/strings — binary string extractor
- Swiftly-Tracker/ProtoDump — protobuf schema reconstructor