Server-authoritative · virtual credits

Case Battle lobby

Your balance not signed in

Open a lobby

Your seed is sent to the server and mixed with every other seat's.

Open lobbies

Open a second browser tab to join as another player.

Who decides what

The server generates the seed, publishes only sha256(seed), resolves the whole battle at start, streams one round at a time, and reveals the seed at settlement. This page holds no seed and computes no outcome — the reels are playback.

Two commitments, not one

The seed hash proves the roll was not tampered with. The config hash proves the odds, rake and format were fixed before play — without it, a site can publish honest rolls against a weight table it quietly edited. Both are shown in the lobby before anyone pays.

Seat seeds

The client seed is sha256(lobbyId | seat0seed | seat1seed | …), so no single participant controls it. Bot seat seeds are sha256(serverSeed:bot:N) — derived from the seed the house already committed to, so the house cannot pick favourable bot seeds after the fact.

Bots and the house position

House bots pay entry from the house float, so a bot-filled lobby makes the house your counterparty rather than a neutral rake-taker. A winning bot seat's share returns to the float. The house's net on each battle is shown after settlement — it is frequently negative, and only the rake is positive in expectation.

Filling your own side with bots does not change your expected value: payout per winning seat is always the pot minus rake divided by the winning seats, which for symmetric formats is 1.9× your entry regardless of team size. It does change who your winnings are split with.

Still missing for anything real

In-memory state (restart wipes everything), no auth, no rate limiting, no persistence, no reconnect recovery, and no age or identity checks. Balances are made-up credits.