Page cover

🎰Ruglette (Russian Roulette)

Ruglette is a unique game mode inspired by Russian Roulette, but designed as the inverse of a traditional raffle. Instead of selecting a set number of winners, players choose how many losers will be in the game. The entry fees from the losing players are distributed among the winners, making Ruglette a low-risk, low-reward game mode.

How Ruglette Works

  1. Game Creation & Auto-Enrollment

    • When you create a Ruglette game, you are automatically entered as Player 1.

    • Unlike raffles, there is no revenue share for the game creator—all winnings go directly to the players.

  2. Winner & Loser Determination

    • Instead of selecting winners, the game randomly determines a set number of losers based on the parameters defined at creation.

    • The entry fees of the losing players are evenly distributed among the remaining winners.

  3. Handling Underfilled Games

    • If a game does not receive enough participants (e.g., a 10-loser game only has 9 total entries), the system will attempt to adjust the game dynamically to ensure it can proceed.

    • If the game cannot be fairly adjusted, all participants will be refunded automatically.

Why Play Ruglette?

  • A Unique, Reverse-Raffle Experience – Players take a different approach to risk, aiming to avoid elimination rather than winning directly.

  • Low-Risk, Low-Reward Gameplay – Unlike high-stakes raffles, Ruglette offers a more measured approach where losses and winnings are distributed among participants.

  • Decentralized & Fair Mechanics – The smart contract ensures that game adjustments, payouts, and refunds happen transparently and without manual intervention.

Ruglette provides a fun and strategic alternative to traditional raffle-based mechanics while maintaining fairness, automation, and accessibility for all players.

Small lobby adjustment calculation

If this returns `0`, then the game will automatically refund.

 function resolveDynamicaly(uint256 entries, uint256 losers, uint256 max) internal pure returns(uint256) {
    if(entries == 0 || losers == 0 || max == 0) { return 0; }
    return(entries * losers) / max;
 }  

Last updated