Payout engines for the Rollerz RGS. Each one has a page with its playable demo, the algorithm typeset from its ALGORITHM.md, figures, and the source. Every round is one uniform draw, fixed at bet time and shown after the round ends. RTP is exact by summation; simulation only checks the code.
A fair crash ladder. Ten rungs, cash out any time. Survival to rung k is RTP ÷ payoutₖ, so every stopping rule returns the same 97%: the player chooses variance, never expectation.
one draw, ten revealsA single-shot payout function. The field is the 0–10000 draw; zone widths are the probabilities; inside a zone the payout ramps from a − r to a + r. Payouts and RTP in, a monotone payout(u) out, exact by summation.
sloped bandsElo array + one uniform → fair Plackett–Luce ranking → top-3 payout. Strength is 10^(Elo/400); one draw picks the winner and its leftover is recycled to pick second, third and the rest. Win/place/show probabilities are closed-form, and every podium finish returns stake plus profit: second pays a quarter and third a fifth of the win profit, which is solved per racer so every racer returns exactly the RTP.
one uniform, recycledThe same Elo race, one uniform recycled into the full ranking, with only the winner paid. Odds are RTP ÷ P(win) = RTP·W / wᵢ, so a 400-Elo gap is a 10:1 odds ratio and every racer returns exactly the RTP with no feasibility condition.
one uniform, recycledCard packs from two decks. A pack is 5 cards without replacement; per rarity it pays count × value × multiplier(count), an exact hypergeometric sum. Each bet type draws the low deck with the one probability that makes E[win] ÷ cost equal the RTP. Reproduces Math-rippin-rumble-ver4.xlsx.
hypergeometric packsGO3 / Rock n Smash. Three rocks; a fixed table says how many break (0–3) and pays 5 / 1 / 0.5 / 0; on 2 or 3 a gem fires with a fixed chance and multiplies by 2–10× from a weighted table. RTP is the exact sum over 16 outcomes: 97.07% base, 97.15% boosted. Reproduces Rock n Smash.xlsx.
one draw, 16 zonesAn n-way bet with exact RTP. Options own zones of width pᵢ on the draw; backing option j pays RTP ÷ pⱼ on a hit, so every option returns exactly the RTP. Two equal options pay 1.9× at RTP 0.95; three pay 2.85×; five pay 4.75×. Weighted options work the same way.
2 / 3 / 5 / n optionsThe stepper with a locker on top. Bid against rivals; every won bid raises what the locker is worth (c_k = round(M^(k/10), 2)), survival is RTP ÷ c_k so the first bid carries the whole edge and every later bid is fair. Take the locker at any rung and open it: the contents are a Single Shot draw with mean exactly 1 around that value, drawn from the recycled residual of the same uniform. Every take rule returns exactly the RTP.
same math as the stepperTwo fighters, a biased damage walk, a health bar each. Each tick one of them lands a hit (probability from the power gap) for a continuous amount of damage; first to zero loses, and if both stand at the bell a biased coin decides on the health share. The win probability at every state is exact by backward induction on the health grid, so the opening bet is priced at RTP ÷ P and every live bet during the fight is a fair bet at 1 ÷ P.
exact win-probability gridOne bet on the winner, decided by a single biased coin whose probability is the Live Fight rating of the pairing (power and HP in one number), then a predetermined cutscene that plays it out. During the cutscene the developer can call any number of side bets from a library: biased coins, n-way picks at RTP ÷ p, Single Shot tables. Each side bet is its own independent draw at its own RTP.
one coin, exact RTPA library of twenty-one named distributions behind one uniform: every sample is the inverse CDF of a seeded draw, so it is reproducible and auditable. Two uses: free sealed draws for anything a game needs random (bot speeds, timings, Ragency targets), and a money mode where the stake pays a multiple sampled from a chosen distribution, clamped and scaled so its mean is exactly the RTP.
21 distributions, one uniform eachOne playable demo per engine. Each page imports its engine's published module and only ever calls open → bet → next-action → collect; no math in the page. The SDK-based versions of these games (written against the Rollerz SDK, with a ?sdk=live switch) live in the engine-playground repo.
built on stepper/api/rgs.js
built on single-shot/api/rgs.js
built on top-3/api/rgs.js
built on top-1/api/rgs.js
built on rip-rumble/api/rgs.js
built on game-of-three/api/rgs.js
built on pick-one/api/rgs.js
built on auction/api/rgs.js
built on fight/api/rgs.js
built on cutscene/api/rgs.js
built on distributions/api/rgs.js
<game>/api/rgs.js, createGame({ preset }), then open → bet → next-action → collect. Fixtures per preset under <game>/api/<preset>/.rgs-math/, and this site's generator in site/.