GameDataTracker — an IDA Pro plugin for tracking game functions across binary updates. Update all your gamedata dependencies in minutes, not hours.
Built for Source Engine community plugin and mod development. Crawl functions to collect anchors (signatures, strings, vtables, convars, etc.), serialize them, then use the pathfinder to relocate those same functions in updated binaries. Supports mid-function signature matching — not just function prologues, but specific lines deep inside a function body can be tracked and relocated across updates. Also tracks vtable offsets: if the function name contains the vtable class name before the last _ (e.g. CBaseEntity_Teleport), the plugin automatically detects and updates the vtable offset across binary versions. Export directly to CounterStrikeSharp and SwiftlyS2 gamedata formats.
I create free, open-source projects for the community. If you'd like to support my work, consider becoming a sponsor!
Support this project through GitHub Sponsors with flexible options:
- One-time or monthly contributions
- Custom amount - choose what works for you
- Multiple tiers available - from basic benefits to priority support or private project access
Every contribution helps me dedicate more time to development, support, and creating new features. Thank you! 🙏
⭐ Or support me for free by starring this repository!
- Modular crawler with 10 independent anchor modules
- Multi-pass parallel pathfinder with identity gate and reinforcement scoring
- Gamedata export for CounterStrikeSharp and SwiftlyS2
- Auto-save/load of tracking data between sessions
- Mid-function signature support for more resilient matching
- VTable offset tracking across updates
- Tree-style logging for readable output
- Cross-platform builds (Linux, macOS, Windows)
| Platform | Architecture | Status |
|---|---|---|
| IDA Pro 9.x | Required | Base requirement |
| Linux | x64, ARM64 | Native build |
| macOS | Intel, Apple Silicon | Native build |
| Windows | x64 | Cross-compile |
Copy the built plugin to your IDA plugins directory:
| Platform | Path |
|---|---|
| Linux | ~/.idapro/plugins/gdt64.so |
| macOS | ~/.idapro/plugins/gdt64.dylib |
| Windows | %APPDATA%\Hex-Rays\IDA Pro\plugins\gdt64.dll |
Once installed, actions are available under Edit > GameDataTracker.
Typical workflow:
- You have an existing gamedata JSON with known-good offsets/signatures
- Open the last known good binary in IDA (the version your gamedata was built for)
- Import the gamedata — the plugin imports and renames all functions automatically
- The crawler runs on every imported function and generates a clue file next to the binary
- Open the new binary version in IDA
- Run Backtrack and browse to the clue file from the old binary's folder
- The pathfinder relocates all tracked functions in the new binary
- View results in the tracked functions list and export fresh gamedata — done
You can also track functions manually without importing.
The plugin operates in two phases:
Crawling — For each tracked function, the crawler runs its modules to collect anchors: signatures, strings, convar references, vtable entries, library metadata, relational info, and more. This data is serialized to JSON.
Pathfinding — When loaded against a new binary, the pathfinder uses collected anchors to relocate functions. It runs multiple passes with parallel matching, applies an identity gate to filter false positives, and uses reinforcement scoring to rank candidates.
| Module | What it collects |
|---|---|
| Signature | Byte patterns (including mid-function) |
| String | Referenced string literals |
| ConVar | Console variable references |
| VTable | Virtual table offsets and entries |
| Library | Library/segment metadata |
| Relational | Cross-references between tracked functions |
| DataPtr | Data pointer references |
| Proximity | Spatial relationships to known anchors |
| CallChain | Function call sequences |
| Xref | Cross-reference patterns |
Requires the IDA SDK (9.x) placed in sdk/ at the project root.
# Build for current platform
make build
# Build and install to local IDA plugins dir
make local
# Cross-compile for Windows
make build-windowsSee the Makefile and docker/ directory for build details and Docker-based builds.
- K4ryuu — Author and maintainer
This project is licensed under the MIT License. See LICENSE for details.