mirror of
https://github.com/NextendoNetwork/luigis-mansion-3.git
synced 2026-08-25 20:52:29 +02:00
Luigi's Mansion 3 NEX server on the NextendoNetwork core
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Rooms opened "for friends only" never showed up on the friends screen.
The encoding was not the problem — a whole step was missing.
A capture of Nintendo's own server gives the chain, and it holds 7 out
of 7 times in the capture:
1. a player publishes its state 0x79 method 13 (EMPTY response)
2. the server tells its friends notification type 128000,
source = the publisher's PID
3. the friend asks for details 0x79 method 15 on that PID
4. the server replays the state flags + room + nickname
Step 2 did not exist here. That step is what makes the rest work: the
client has no other source for its friends' PIDs, it learns them from
the "source" field of that notification. Without it the client never
calls method 15 at all, so the screen stays empty even when a friend
really has a room open.
The server now remembers what each player publishes and replays it
verbatim, instead of making up state flags and deriving the room from
its own matchmaking. Methods 13 and 14 follow the capture too: 13
answers empty, 14 returns the friends' records.
Worth noting for anyone chasing the same bug: MatchmakeExtension method
13 (types 101-104) has nothing to do with this menu. Nintendo answers
zero entries there, exactly like we did — it is a dead end.
Tests run against the captured bytes, both directions. Nicknames and
account ids in the fixtures were replaced with neutral values of the
same length so no third-party personal data is published; the layout,
state flags and room ids are untouched.
|
||
| .gitignore | ||
| dashboard.go | ||
| example.env | ||
| friends.go | ||
| friendstate.go | ||
| friendstate_test.go | ||
| gates.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE.md | ||
| main.go | ||
| README.md | ||
luigis-mansion-3
NEX game server for Luigi's Mansion 3, built on the NextendoNetwork nextendo-nex core. Source only — no binaries, no certs. Not affiliated with Nintendo.
Build
Clone this repo and nextendo-nex side by side (the go.mod replace directive points at ../nextendo-nex), then:
go build ./...
See example.env for configuration.
Credits
Luigi's Mansion 3 server implementation by @LITTLECHOPT8.
Hardened for production by the NextendoNetwork maintainers: signed-token identity gate (anti-impersonation), leaked-token denylist, fail-closed internal endpoints, and bounded NAT/presence state.