KayceePvP
BETA: online 2-player PvP for Kaycee's Mod - shared prep maps, room invites, best-of-three duels. Looking for card/sigil bugs - see README.Changelog
0.1.0
- Initial Thunderstore packaging candidate.
- LAN lobby and synchronized PvP duel flow, plus an online room/relay client and server staging implementation (TLS, one-shot invites, lifecycle deadlines and abuse limits).
- Strict message type/role/sequence validation and bounded network queues.
- Two-candle life system and best-of-three match orchestration, with rematch support and a final result screen.
- Six selectable preparation maps (COM BATALHAS, SEM BATALHAS, FORJA SIMÉTRICA, DRAFT DE PELES, TRIBE FIGHT, CAMINHO BALANCEADO), plus a seventh (DRAFT ABERTO) present in the build but hidden pending a finished selection screen.
- Global preparation-combat rule applied across every map: at most one shared test battle, and no mandatory boss fight - boss-style encounters grant a direct rare-card reward instead. Death Card creation only happens on the two maps that end in a boss-style flow (COM BATALHAS, FORJA SIMÉTRICA); every other map hands off straight to the duel.
- Central forbidden-card filter (Great Kraken and its tentacle transformations, Frozen Opossum, Hrokkall) enforced across every card pool, Trader/pelt offer, and starter deck path, mod-wide.
- Custom map-node icons for battle, campfire, rare reward, Death Card and PvP-exit nodes.
- Several cross-process ownership/sync fixes: Totem effects apply only to their real owner's cards; QuadrupleBones, Tutor, DrawCreatedCard-family abilities and Morsel no longer double-apply or crash when replaying the opponent's mirrored actions.
- Release-hardening pass: a malformed or unrecognized card name arriving over the network is now rejected explicitly (whole deck refused with a clear protocol error, or the duel ends via the same fail-closed screen used for other protocol violations) instead of crashing or silently substituting blank data. A dropped connection mid-duel now fails closed with a recoverable "connection lost" screen instead of one side silently continuing alone. The ready/countdown wait before a duel now has the same disconnect/timeout handling as the deck-exchange wait next to it. Activated abilities (manually-triggered card effects) are blocked during the duel - not yet synced over the network - as a release-scope limitation.
- Fixed: the online relay connection could be silently dropped ("Connection reset by peer") after a long idle stretch (confirmed in a real session, ~27 minutes of both players independently walking their maps) - the relay client now sends a small periodic keep-alive frame while connected, invisible to gameplay, to prevent idle-connection timeouts from network infrastructure between the two players.
- Full English/Brazilian Portuguese localization: the lobby, every preparation map/mode name, dialogue overrides, the duel HUD, the waiting/ready/final/rematch screens, and every card this mod renames now follow whichever language Inscryption itself is set to, with English as the fallback for any other language and immediate text updates on a language switch (no restart needed). A mandatory notice next to the online room controls explains, in the active language, that a room's invite code must be sent directly to the other player.
- In-game feedback: pressing a configurable key (default F10) opens the issue tracker in the browser so players can report a bug or suggestion directly; it only opens a page and never collects, attaches, or sends any data automatically. The same link is documented as a fallback in the Thunderstore README.
- Card sync stability: Ijiraq is removed from every pool (its Shapeshifter disguise never had a network-sync path). Amorphous-style random-ability rolls are replaced with deterministic, PvP-safe abilities on the card templates that support it; the remaining cards that still roll a real RandomAbility (e.g. PackRat's kit) now only roll it once, on its true owner's client - a remote-mirrored replay of the same card no longer rolls its own, independent result.
- Fixed: TurnEnd's trigger now dispatches correctly after a SetupPhase-mirrored combat resolution, and a couple of stale combat-resolution gates plus a leftover release-only debug dialogue are cleaned up.
Online mode remains pre-release until the production relay and two-network runtime validation are complete.
