WARNING: This project is a Work In Progress and is NOT functional yet. Everything is experimental β expect broken builds, missing features, and incomplete systems. Contributions and feedback are welcome, but do not expect a playable experience at this stage.
A multiplayer mod for Hades (Supergiant Games) using DLL proxy injection to intercept Lua calls and bridge game state between players.
The mod uses proxy DLLs to intercept the game's Lua 5.2 runtime:
VERSION.dllβ Proxy for the system VERSION.dll. Redirects stdout/stderr so Luaprint()output can be captured.lua52.dllβ Proxy for the game's Lua runtime. Interceptsluaopen_debugto injectio,os, andpackagelibraries (normally stripped by the game).stdout_redirect.dllβ Alternative stdout redirect via AppInit_DLLs (Linux/Wine only).hadesmp_bridge.pyβ Python bridge server that connects two game instances.
- MinGW-w64 via MSYS2:
pacman -S mingw-w64-x86_64-gcc- Add
C:\msys64\mingw64\binto your PATH
- Add
- Or Visual Studio Build Tools with C++ workload (
cl.exe) - Python 3.8+ (for the bridge server)
mingw-w64cross-compiler:sudo pacman -S mingw-w64-gcc(Arch) orsudo apt install gcc-mingw-w64-x86-64(Debian/Ubuntu)- Wine/Proton (via Steam)
- Python 3.8+
build_dll.batchmod +x build_dll.sh
./build_dll.shBoth scripts auto-detect the Hades install path. Override with:
# Linux
HADES_ROOT=/path/to/Hades ./build_dll.sh
# Windows (cmd)
set HADES_ROOT=D:\Games\Hades
build_dll.bat- Delete
VERSION.dllandlua52.dllfrom the Hades game directory (x64/orx64Vk/) - Rename
lua52_original.dllback tolua52.dll