OffsetFetcher reads CS2 process memory to extract pattern-scanned offsets, interface pointers, button states, and the Source2 schema graph. It exports JSON files locally without network calls or configuration.
Warning
Running memory readers in online matchmaking violates CS2 Terms of Service and triggers VAC bans. Test offline or on private servers.
Important
Antivirus software flags memory readers because process inspection mimics malware behavior. Review the source code and whitelist the executable.
git clone https://github.com/Jesewe/OffsetFetcher.git
cd OffsetFetcher
pip install -r requirements.txtStart CS2, then run as Administrator:
python main.py -vOutputs write to output/. Execution logs write to OffsetFetcher.log.
python main.py [-p PROCESS] [-o OUTPUT] [-w WORKERS] [-v|-vv]
-p, --process Game process name (default: cs2.exe)
-o, --output Output directory (default: output/)
-w, --workers Parallel workers (default: 4)
-v Info logging
-vv Debug logging
| File | Contents |
|---|---|
offsets.json |
Pattern-scanned RVAs grouped by module |
interfaces.json |
CreateInterface singletons per DLL |
buttons.json |
KeyButton state offsets from client.dll |
<scope>.json |
Schema scope definitions containing class fields, types, and enums |
All offsets represent RVAs (relative to module base address), matching the format from cs2-dumper.
OffsetFetcher/
main.py entry point, CLI, logging setup
src/
core/
constants.py Source2 memory layout constants
engine.py ThreadPoolExecutor parallel scanner
memory.py ProcessMemory with thread-safe module caching
scanner.py pelite-compatible pattern compiler and scanner
offsets.py pattern table and offset extraction
interfaces.py CreateInterface linked-list walker
buttons.py KeyButton linked-list walker
schemas.py UtlTsHash traversal, class and enum readers
models/
models.py dataclasses for all result types
serializers/
serializer.py formatted JSON writer
utils/
console.py Rich CLI visual layout, tables, and panels
logger.py Rich-integrated logging handler
| Module | Offsets |
|---|---|
client.dll |
dwCSGOInput, dwEntityList, dwGameEntitySystem, dwGameRules, dwGlobalVars, dwGlowManager, dwLocalPlayerController, dwLocalPlayerPawn, dwPlantedC4, dwPrediction, dwSensitivity, dwViewAngles, dwViewMatrix, dwViewRender, dwWeaponC4 |
engine2.dll |
dwBuildNumber, dwNetworkGameClient + 7 sub-offsets, dwWindowHeight, dwWindowWidth |
inputsystem.dll |
dwInputSystem |
matchmaking.dll |
dwGameTypes |
soundsystem.dll |
dwSoundSystem, dwSoundSystem_engineViewData |
| Issue | Fix |
|---|---|
could not open process |
Run terminal as Administrator |
outdated pattern in logs |
Update the pattern definition in src/core/offsets.py |
SchemaSystem pattern outdated |
Update the scan pattern in src/core/schemas.py |
| Missing module in output | Start a match to load the required DLL before running |
- a2x for cs2-dumper, the original Rust dumper implementation.
GPLv3. See LICENSE.