Schema system
Entities, offsets and fields resolved through the schema the game itself ships — not through headers that rot on the next update.
Source 2 · C++ · Server side
A plugin framework for Counter-Strike 2 that keeps you at engine level. Schema-based entities, game hooks, KHook detours and native events — in C++, with nothing between your code and the game.
01 — Capabilities
Every subsystem is a thin, deliberate layer over the engine, and all of them ship in the box. Use the high-level API where it saves you time, and drop straight to memory where it does not.
Entities, offsets and fields resolved through the schema the game itself ships — not through headers that rot on the next update.
TakeDamage, CanAcquire, PostThink, movement, jumps — about 35 game functions the core hooks from its own gamedata. A handler and a context, no signature of your own, and a plugin that survives an engine update with a core update.
Virtual, vtable and function detours on the one KHook engine Metamod runs, so the core, every plugin and Metamod itself compose correctly — for everything the game hooks do not cover.
Console and chat commands, listeners on commands the game already owns, typed ConVar refs with replication.
A fully typed game event system on top of engine-level events, hooked pre or post with the usual KHook::Action vocabulary.
Raw pointers, module handles, GameConfig signatures and resolved engine functions like spawn, set model and take damage.
Timers, next-frame execution, and ray and collision trace utilities shipped with the toolkit.
Chat menus with options, titles and per-player state, plus click callbacks on custom HUD layout entities.
Allocate, send and hook Source 2 net messages by numeric ID or by partial name — protobuf included.
Sound events sent to exactly the players you pick, stopped or re-parametrised by guid, per-player volume channels, and a hook on every sound the game sends.
Per-viewer entity visibility: hide players and entities from some clients and not others, owner-following, and a CheckTransmit hook for the rest.
Async requests through Steam, a JSON value API and typed MySQL result sets, so you do not vendor three libraries first.
02 — Documentation
Guides for every subsystem, a reference generated from the SDK headers, and the full schema of the game — each with a sidebar of its own.
03 — In practice
Controllers, pawns and schema fields are generated from the game itself. Read and write them exactly like native code — with or without automatic SetStateChanged.
04 — Quickstart
Source2Toolkit loads through MetaMod. Drop it into /game/csgo/ and register it in gameinfo.gi.
Game csgo/addons/metamodExtract the release and copy the /addons directory into your server /game/csgo/ folder.
/game/csgo/addons/source2toolkitRestart the server, confirm the plugin is loaded, then start writing against the API.
meta listOpen source, actively developed, and built by people running real servers.