GNARONE GAME MATH

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.

Engines

STEPPER

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 reveals
SINGLE SHOT

A 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 bands
TOP 3

Elo 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, recycled
TOP 1

The 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, recycled
RIP & RUMBLE

Card 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 packs
GAME OF THREE

GO3 / 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 zones
PICK ONE

An 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 options
STORAGE AUCTION

The 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 stepper
LIVE FIGHT

Two 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 grid
FIGHT CUTSCENE

One 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 RTP
DISTRIBUTIONS

A 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 each

Sample games

One 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.

STEPPER

built on stepper/api/rgs.js

play full screen ↗
SINGLE SHOT

built on single-shot/api/rgs.js

play full screen ↗
TOP 3

built on top-3/api/rgs.js

play full screen ↗
TOP 1

built on top-1/api/rgs.js

play full screen ↗
RIP & RUMBLE

built on rip-rumble/api/rgs.js

play full screen ↗
GAME OF THREE

built on game-of-three/api/rgs.js

play full screen ↗
PICK ONE

built on pick-one/api/rgs.js

play full screen ↗
STORAGE AUCTION

built on auction/api/rgs.js

play full screen ↗
LIVE FIGHT

built on fight/api/rgs.js

play full screen ↗
CUTSCENE FIGHT

built on cutscene/api/rgs.js

play full screen ↗
DISTRIBUTIONS

built on distributions/api/rgs.js

play full screen ↗

For integrators

Source