[PR #227] [MERGED] kb: Ghost co-op for Dishonored (2012): UE3 reflection, PostRender hook, UDP puppet #229

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

📋 Pull Request Information

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

Base: main ← Head: kb/dishonored-ghost-co-op


📝 Commits (4)

  • 853c653 kb: Ghost co-op for Dishonored (2012): UE3 reflection, PostRender hook, UDP puppet (Dishonored)
  • 467c91c kb: Dishonored ghost co-op: review fixes
  • 29fed63 Merge remote-tracking branch 'origin/main' into land/pr-227
  • 8d325fa kb: regenerate the index

📊 Changes

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

View changed files

📝 knowledge/INDEX.md (+2 -1)
➕ knowledge/games/dishonored/ghost-co-op-ue3-reflection-postrender-hook.md (+218 -0)
📝 knowledge/index.json (+40 -0)

📄 Description

New field note: knowledge/games/dishonored/ghost-co-op-ue3-reflection-postrender-hook.md (status: in-progress).

  • Dishonored Definitive Edition (Steam buildid 8335061) under Proton: two local copies show each other as a puppeted ghost via a dinput8 proxy DLL, SDK-free UE3 reflection (GNames/GObjects by content), a UFunction::Func swap on DishonoredViewportClient.PostRender, ProcessEvent calls by name, and a custom UDP link.
  • Verified in game: numeric traces (final ghost error < 0.1 uu, ~100 ms lag) plus screenshot contact sheets in both directions; link loss/rejoin.
  • Verified UE3 layout for LicenseeVersion 30 (UObject Index at 0x04, Func at 0x9C, ProcessEvent vtable slot 59) and 15 numbered gotchas (no PlayerTick UFunction, raw open hang, stale controller, SetLocation/Destroy refused outside world tick, pause on focus loss, XWayland occlusion stall, input injection dead ends).
  • No game files, decompiled code or extracted assets. um kb check passes.

🤖 Generated with Claude Code


🔄 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/227 **Author:** [@Nemo0312](https://github.com/Nemo0312) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/12/2026 **Merged by:** [@rehan-remade](https://github.com/rehan-remade) **Base:** `main` ← **Head:** `kb/dishonored-ghost-co-op` --- ### 📝 Commits (4) - [`853c653`](https://github.com/rehan-remade/universal-modder/commit/853c653e06b300dc49222a9878fdde60a259b059) kb: Ghost co-op for Dishonored (2012): UE3 reflection, PostRender hook, UDP puppet (Dishonored) - [`467c91c`](https://github.com/rehan-remade/universal-modder/commit/467c91c51bbe12db764c7f834b5d92207f359571) kb: Dishonored ghost co-op: review fixes - [`29fed63`](https://github.com/rehan-remade/universal-modder/commit/29fed63dc27236875de30562b0b9c5f802891939) Merge remote-tracking branch 'origin/main' into land/pr-227 - [`8d325fa`](https://github.com/rehan-remade/universal-modder/commit/8d325fa51bedf2aa3037a0f1cae0c81dfb44b3d6) kb: regenerate the index ### 📊 Changes **3 files changed** (+260 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `knowledge/INDEX.md` (+2 -1) ➕ `knowledge/games/dishonored/ghost-co-op-ue3-reflection-postrender-hook.md` (+218 -0) 📝 `knowledge/index.json` (+40 -0) </details> ### 📄 Description New field note: `knowledge/games/dishonored/ghost-co-op-ue3-reflection-postrender-hook.md` (status: in-progress). - Dishonored Definitive Edition (Steam buildid 8335061) under Proton: two local copies show each other as a puppeted ghost via a dinput8 proxy DLL, SDK-free UE3 reflection (GNames/GObjects by content), a `UFunction::Func` swap on `DishonoredViewportClient.PostRender`, ProcessEvent calls by name, and a custom UDP link. - Verified in game: numeric traces (final ghost error < 0.1 uu, ~100 ms lag) plus screenshot contact sheets in both directions; link loss/rejoin. - Verified UE3 layout for LicenseeVersion 30 (UObject Index at 0x04, Func at 0x9C, ProcessEvent vtable slot 59) and 15 numbered gotchas (no PlayerTick UFunction, raw `open` hang, stale controller, SetLocation/Destroy refused outside world tick, pause on focus loss, XWayland occlusion stall, input injection dead ends). - No game files, decompiled code or extracted assets. `um kb check` passes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <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:34 +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#229
No description provided.