SSMPEnemySync
SSMP addon that shares enemies between both players. One enemy, one pool of health, either player can kill it. Bosses included.
模組介紹 作者原文
SSMPEnemySync
An addon for SSMP (Hollow Knight: Silksong multiplayer) that
makes enemies shared between both players.
One enemy. One pool of health. Either player can hit it, both hits come off the same health bar,
and it dies once for both of you. Bosses included.
Without this, each player fights their own private copy of every enemy, and only one of you can
actually kill anything.
Requirements
- BepInEx for Silksong
- SSMP 0.3.1.0
Both players need this addon, at the same version. SSMP pairs networked addons by name and
version, so a mismatched pair will not connect at all.
Install
Install BepInEx and SSMP first, and confirm multiplayer works on its own.
Then drop SSMPEnemySync.dll into the folder that already contains SSMP.dll:
Hollow Knight Silksong/
└── BepInEx/plugins/
└── SSMP/ ← whatever folder your SSMP.dll lives in
├── SSMP.dll
└── SSMPEnemySync.dll ← here
That exact folder matters. SSMP's addon loader only scans the directory its own assembly sits
in. Anywhere else and the addon is silently never loaded — no error, it simply does nothing.
If you install through a mod manager, check afterwards that the DLL ended up beside SSMP.dll
rather than in its own folder.
Start the game. The BepInEx log should show [EnemySync] Initialised.
What it actually does
SSMP already ships a complete host/client entity system that replicates enemy position, animation,
FSM state and death. Three things stop it working in Silksong, and this addon supplies all three
from outside:
- It is switched off. The calls that start the entity manager are commented out in
ClientManager.
- Full synchronisation is off by default, and it gates every entity packet handler on both
ends. The menu toggle that used to set it is commented out too.
- The entity registry is Hollow Knight 1's, so none of Silksong's enemies qualify as entities.
On top of that it adds health synchronisation, which the entity system never had.
How health stays honest
The scene host is authoritative. Clients detect hits they landed, report them, and undo them
locally so nothing is counted twice; the host applies the damage and broadcasts the result.
Death is routed through the game's own death path rather than by zeroing health, so the correct
effects play, the fight's scripting is respected, and SSMP's own death replication sees it.
Health is re-broadcast periodically as well as on change, so a dropped update heals itself rather
than leaving one player looking at a stale bar.
Uninstalling
Delete SSMPEnemySync.dll. SSMP returns to exactly its previous behaviour — this addon modifies
none of its files.
Limitations
- Tied to SSMP 0.3.1.0. It reaches SSMP's internals by reflection, because its entity system is
entirely internal and the addon API deliberately exposes nothing about entities. On a different
SSMP build it disables itself at startup and logs the reason instead of misbehaving.
- The enemy registry covers early-game enemies. Enemies it does not recognise are not treated as
entities at all, so they stay unsynced.
Source and issues:
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。