MetaHook is a launcher for GoldSrc engine games for client-side modding, letting users write their own plugins.
- Starts the engine (
hw.dllorsw.dll) and drives its run loop. - Loads plugins and manages their lifecycle.
- Provides plugins with modding APIs: engine symbol resolution, hooking (inline, VFT, IAT and inline-patch), memory and disassembly access, and more.
- Loads engine symbol data from gamedata. The gamedata is provided by the upstream GoldSrc_VibeSignatures project.
- System: Windows x86. (Linux may be supported in the future.)
- Engine: GoldSrc, GoldSrc Blob, GoldSrc HL25, SvEngine and CoF.
- Plugin: plugin interfaces are negotiated from V4 down to V1; the current public API version is 115.
At runtime MetaHook needs a 32-bit Windows system and a supported GoldSrc game installation.
- Build or obtain the launcher (see Build instruction).
- Put
MetaHook.exein the game's root directory, where the original game executable lives. - Copy
svencoop/metahook/gamedatafrom the install tree to<game>/<mod>/metahook/gamedata. - The SDL runtime package (
SDL2.dll,SDL3.dll) is built and installed alongside the launcher.
Launching:
- Launch with
MetaHook.exe -game <mod>on the command line; or simply renameMetaHook.exeto<mod>.exe, for example:MetaHook.exe->svencoop.exe. - Plugins are loaded from
<mod>/metahook/configs/plugins.lst. - Plugins are not part of this repository. Install them and their shared
dependencies under
<mod>/metahook/separately. - Add
-redirect_fatalerror_to_logto suppress fatal error dialogs and append their title and message tofatalerror-<datetime>-<pid>.logbeside the launcher. Engine Win32/SDL2 error dialogs are redirected; warnings and confirmation dialogs retain their normal behavior. If the log cannot be written, the error remains silent. The engine's normal fatal-error exit still runs.
Chinese translations live under docs/zh-CN/.
MetaHook is available under the MIT License; see LICENSE. Bundled third-party
sources keep their own license files.