Skip to content

feat(party): direct LAN / P2P party mode with peer skin synchronization - #249

Open
Spok0jny wants to merge 3 commits into
Alban1911:mainfrom
Spok0jny:feat/party-mode
Open

feat(party): direct LAN / P2P party mode with peer skin synchronization#249
Spok0jny wants to merge 3 commits into
Alban1911:mainfrom
Spok0jny:feat/party-mode

Conversation

@Spok0jny

@Spok0jny Spok0jny commented Sep 9, 2026

Copy link
Copy Markdown

This PR transitions Party Mode to a direct peer-to-peer / LAN architecture (Host / Join via local WebSocket server), removing the dependency on external cloud relay infrastructure. Lobby members can connect directly over local network or virtual LAN (e.g. Radmin VPN) to synchronize and display each other's skins and chromas in-game.

Key Changes

  • Local WebSocket Server (PartyLANServer): Host spins up a lightweight async WebSocket server with automatic fallback port detection.
  • Redesigned Party UI: Added dedicated Host Party (network adapter detection, custom port, room token) and Join Party (paste token & instant connect) tabs in the League client social bar.
  • Real-Time Sync: Skin selections, chromas, and champion locks in Champion Select broadcast immediately to all room members.
  • Simultaneous Overlay Injection: Resolves and bundles both local and peer skin/chroma .fantome archives into a single mkoverlay pass during game loading.
  • Windows UTF-8 Hardening: Enforces UTF-8 encoding with error replacement across subprocesses to prevent cp1250/Unicode errors.

Testing & Verification

  • Tested in live 5v5 matches with one player across both roles:
    • Host server creation & guest join handshake.
    • Live skin and chroma switching in Champ Select (tested with base skins, chromas, and special forms).
    • Multi-skin injection verified in-game over 35+ minute matches with continuous keepalive (PING/PONG) and clean overlay teardown on match end.

…ation

- Replace cloud relay dependency with direct peer-to-peer WebSocket server over LAN/VPN
- Add Host vs Join UX separation in Pengu Loader settings
- Add automatic port collision detection and fallback mechanism
- Add peer skin and chroma extraction and overlay injection hooks
- Include party modules and packaging rules in Rose.spec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant