[PR #256] [MERGED] kb: Seamless co-op for TUNIC (BepInEx 6 IL2CPP, native hooks, autonomous 2-PC testing) #259

Closed
opened 2026-10-15 20:54:53 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rehan-remade/universal-modder/pull/256
Author: @AfroPK
Created: 10/12/2026
Status: ✅ Merged
Merged: 10/12/2026
Merged by: @rehan-remade

Base: main ← Head: kb/tunic-seamless-coop


📝 Commits (4)

  • 7bee4f3 kb: Seamless co-op for TUNIC (BepInEx 6 IL2CPP, native hooks, autonomous 2-PC testing)
  • e7e087c kb: TUNIC seamless co-op: review fixes
  • 2294ba3 Merge remote-tracking branch 'origin/main' into land/pr-256
  • 651d7f6 kb: regenerate the index

📊 Changes

3 files changed (+200 additions, -1 deletions)

View changed files

📝 knowledge/INDEX.md (+2 -1)
➕ knowledge/games/tunic/seamless-coop-bepinex6-native-hooks.md (+159 -0)
📝 knowledge/index.json (+39 -0)

📄 Description

Field note from building a 2-8 player co-op mod for TUNIC (Unity 2020.3 IL2CPP, BepInEx 6.0.0-pre.1).

Highlights for other agents:

  • Harmony patches install but never fire for game-internal calls in BepInEx 6 pre.1 IL2CPP; MonoMod NativeDetour on *(IntPtr*)NativeMethodInfoPtr_* works (calling convention notes incl. Win x64 Vector3 args/returns).
  • Fully autonomous 2-PC testing: an in-mod autopilot (virtual InControl gamepad, file-based commands, camera-RT screenshots), SSH-driven second PC, one-shot schtasks launch, self-restart with Doorstop env cleanup.
  • Netcode designs that held up under test: exactly-once coins via owner-arbitrated claims, per-monster ownership by proximity, IL2CPP gotchas (stripped APIs, ClassInjector crash, exclusive-fullscreen freeze).

14 numbered gotchas, exact versions, verification method and open questions inside. um kb check: PASS.

Written by Claude (Opus 5.5) with Freddy.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rehan-remade/universal-modder/pull/256 **Author:** [@AfroPK](https://github.com/AfroPK) **Created:** 10/12/2026 **Status:** ✅ Merged **Merged:** 10/12/2026 **Merged by:** [@rehan-remade](https://github.com/rehan-remade) **Base:** `main` ← **Head:** `kb/tunic-seamless-coop` --- ### 📝 Commits (4) - [`7bee4f3`](https://github.com/rehan-remade/universal-modder/commit/7bee4f30d1d56f016463a222f72f68f674307061) kb: Seamless co-op for TUNIC (BepInEx 6 IL2CPP, native hooks, autonomous 2-PC testing) - [`e7e087c`](https://github.com/rehan-remade/universal-modder/commit/e7e087c411b2a16da1c949d58e68e4c60b35c319) kb: TUNIC seamless co-op: review fixes - [`2294ba3`](https://github.com/rehan-remade/universal-modder/commit/2294ba3662d3129fd33231af58c033edbd9455c0) Merge remote-tracking branch 'origin/main' into land/pr-256 - [`651d7f6`](https://github.com/rehan-remade/universal-modder/commit/651d7f6c6bf2464d2751a7d915c6b5a6d06f522e) kb: regenerate the index ### 📊 Changes **3 files changed** (+200 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `knowledge/INDEX.md` (+2 -1) ➕ `knowledge/games/tunic/seamless-coop-bepinex6-native-hooks.md` (+159 -0) 📝 `knowledge/index.json` (+39 -0) </details> ### 📄 Description Field note from building a 2-8 player co-op mod for TUNIC (Unity 2020.3 IL2CPP, BepInEx 6.0.0-pre.1). Highlights for other agents: - **Harmony patches install but never fire for game-internal calls** in BepInEx 6 pre.1 IL2CPP; MonoMod `NativeDetour` on `*(IntPtr*)NativeMethodInfoPtr_*` works (calling convention notes incl. Win x64 Vector3 args/returns). - Fully autonomous 2-PC testing: an in-mod autopilot (virtual InControl gamepad, file-based commands, camera-RT screenshots), SSH-driven second PC, one-shot schtasks launch, self-restart with Doorstop env cleanup. - Netcode designs that held up under test: exactly-once coins via owner-arbitrated claims, per-monster ownership by proximity, IL2CPP gotchas (stripped APIs, ClassInjector crash, exclusive-fullscreen freeze). 14 numbered gotchas, exact versions, verification method and open questions inside. `um kb check`: PASS. Written by Claude (Opus 5.5) with Freddy. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 20:54:53 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#259
No description provided.