Skip to content

Ranked deck pool: curate to a fixed allowlist (fixes cross-install fairness bug) #491

Description

@ChronoFinale

Status: root cause confirmed (correctness bug) + design

Summary

The ranked draft builds its pool from G.P_CENTER_POOLS.Back on the host (pvp_api/actions.lua:91, and api/ban_pick.lua:527 in BalatroMultiplayerAPI) — every deck back the host's installed mods registered. The pool is broadcast to the guest, who may not have those decks; an unresolvable deck key is a broken match, not a balance issue. Correctness bug, latent or live depending on whether ranked players can load arbitrary deck mods.

Proposal

Ranked draws from an explicit curated allowlist in the mod, not the install-global pool:

  • Included: all vanilla decks + Violet + Orange + Cocktail.
  • Explicitly excluded (exist but are not ranked-legal): Echo, Heisenberg.
  • Every included deck ships with vanilla or the PvP mod itself, so both clients are guaranteed to have them — this fixes the fairness bug by construction, no server authority required.
  • Draft mechanic unchanged: sample 9 (deck + random stake) combos from the allowlist, ban combos, pick one.

Open questions

  • Server authority — whether to move the ranked list server-side later (live meta changes / instant deck bans without a client patch). Not needed for the fairness fix; open for the future.
  • Cocktail in the pool is gated on the weekly-cocktail API (Weekly Cocktail: server-provided combo + show its 3 component decks #492) — ship ranked with vanilla + Violet + Orange first, add Cocktail when that lands.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions