Skip to content
CheckMyPull

Verify your Ripster.gg roll

Verified: reproduces real results

Ripster.gg returns a roll from 0 to 100, not a ticket number. Its own verifier and ours both give 52.5587 at nonce 7, re-checked 20 September 2026.

Live verifier
0 network requests

Step 1Where did you play?

Using Ripster box / upgrade: HMAC-SHA256 over clientSeed:noncedetails

HMAC-SHA256 keyed with the server seed over clientSeed:nonce. The first 8 hex characters become a 32-bit integer, divided by 2^32 and multiplied by 100 for a roll in [0, 100). Items are sorted by item ID and selected by cumulative probability: the first item whose cumulative probability is at least the roll wins.

Where to find your numbers on Ripster.gg:

  1. Before rolling, copy the Server Seed Hash from the Provably Fair modal (also recorded per roll in Account History).
  2. After the roll, open the Provably Fair modal to copy the Server Seed, Client Seed and Nonce.
  3. Change your Client Seed anytime in Account Settings; doing so reveals the current Server Seed so all past rolls become verifiable.

Source: Ripster.gg's own fairness page

Step 2Paste your numbers

Runs entirely on your device via your browser's built-in cryptography. Don't take our word for it: open DevTools → Network, click the button, and watch: zero requests.

Where to find your seeds on Ripster.gg

  1. 1

    Before rolling, copy the Server Seed Hash from the Provably Fair modal (also recorded per roll in Account History).

  2. 2

    After the roll, open the Provably Fair modal to copy the Server Seed, Client Seed and Nonce.

  3. 3

    Change your Client Seed anytime in Account Settings; doing so reveals the current Server Seed so all past rolls become verifiable.

Does Ripster.gg use ticket numbers?

No. Ripster.gg's engine returns a percentage, a float from 0 up to but never reaching 100, shown above to four decimal places. Pin that down first: a reader arriving from PackDraw or Clash.gg expects a whole number in the hundreds of thousands and reads a decimal as a fault.

Both designs do the same job, one cutting the range into a fixed block per item and the other into a percentage band. The difference is presentational until you check a result, at which point it decides what a correct answer looks like.

PlatformWhat the engine returnsHow the item is chosen
Ripster.ggRoll 0 to 100, four decimalsItems sorted by item ID, cumulative probability walked
PackDrawTicket 1 to 1,000,000Each item holds a fixed block of tickets
Clash.gg and RustClashTicket 0 to 99,999A contiguous block sized to the stated chance
Skin.clubRoll 1 to 100,000A published range per item
JemLitRoll 0 to 100, four decimalsEach item publishes a win range
HypeDrop and CSGORollRoll from the first 13 hex charactersOutcome count set per game

JemLit lands on the same 0 to 100 scale by a different route, converting its entire 64-character digest rather than a short slice, so a matching scale does not mean a matching formula.

How does the box formula work?

One line of arithmetic decides the roll. Ripster keys an HMAC-SHA256 with the secret server seed and passes your client seed and nonce as the message, joined by a colon. It then reads the first 8 hex characters, which is 32 bits, and scales them onto the percentage range.

message = clientSeed + ":" + nonce
hmacHex = HMAC_SHA256(key = serverSeed, message)
subHash = first 8 hex characters of hmacHex
roll    = (parseInt(subHash, 16) / 4294967296) * 100

Three values carry that all the way through. Server seed testserverseed123, client seed testclientseed456 and nonce 7 build the message testclientseed456:7, which hashes to 868cded7466e671542c8486e57576efb78eea7f4514558b35d1466fa4d61ca91. The first 8 characters, 868cded7, are 2,257,379,031 in decimal, and dividing by 2^32 then multiplying by 100 gives 52.5587.

Those were the seeds Ripster's fairness page used as its own worked example when this page was first written in July 2026. The page has since been rebuilt and no longer prints a worked example; its code samples ship placeholder values instead. The number survived the redesign: entering those three values into Ripster's own Box / Upgrade Verifier on 20 September 2026 returns 52.5587, with the same digest and the same intermediate decimal, and so does the verifier above.

Run them in both before you check a result you care about. Two tools agreeing on a known answer is a cheaper test of the tools than a result you cannot independently check.

The commitment is separate and simpler: the hash shown before you play is a plain SHA-256 of the server seed. No salt, no keying, none of the constructions that trip people up elsewhere.

Why does the roll not name your item?

Because a roll of 52.5587 is half the calculation. Ripster builds the mapping at open time from the box's own item list rather than publishing a fixed ticket block per item the way PackDraw does, and the order of that list changes the answer.

Items are sorted by ID, not by rarity or price

The published rule sorts a box's items by item ID, alphabetically ascending, before anything else happens. Sorting instead by price, by listed chance, or by the order shown on the box page gives a different sequence and a different item for the same roll.

The walk stops at the first item that covers the roll

The probabilities are then normalised to sum to exactly 100 and accumulated, and the first item whose running total reaches or passes the roll is the result.

So reproducing the number is one step and reproducing the item is a second one. Ripster closes the second step further than most platforms here manage: it states that every item in a box carries a percentage range, and that your roll landing inside a range is what wins you that item. A range is a reader-facing fact, where the sort-and-walk rule is a reconstruction. Both are published, which is unusual.

The roll is what the verifier above settles. Comparing it against the range shown on the item is what finishes the check.

Where your seeds live

Four values, and they sit in three different places.

The server seed hash is in the Provably Fair modal before you roll. If you did not save it, Ripster states that Account History records the commitment hash against every past roll, so it is recoverable rather than lost.

Your client seed is changeable from Account Settings, and changing it does more than change the seed. Ripster states that editing your client seed reveals the current server seed and generates a new one, which makes the rotation the reveal. The nonce is shown in the modal alongside the roll.

Battles put their values somewhere else again, in a Fairness Modal opened from the shield icon, with a CHECK button on each round that verifies it in the browser. Three timings there are worth holding onto, because they are what makes a battle result trustworthy rather than merely reproducible: the public seed commitment is visible from the moment the battle is created, each player's client seed is locked when they join rather than when the battle starts, and the server seed is revealed only after the battle finishes.

How are upgrades checked?

Upgrades run the same roll through the same formula, then compare it against a threshold rather than an item table. The published rule is:

successChance = (inputValue / targetPrice) * 100 * 0.90
success       = roll <= successChance

The 0.90 is part of the published formula rather than a rounding artifact, and an upgrade will not reproduce without it. Everything before the comparison is identical to a box open.

Why do battles need different inputs?

Because a battle round is not keyed on your play count. Several players open in the same round, so the per-player nonce has to come from somewhere other than a personal counter. Ripster derives it from the seating.

Box open and upgradeBattle round
MessageclientSeed:noncebattle:v2|battleId|roundIndex|seatIndex|nonce|clientSeed
NonceYour play count, up one per openDerived: roundIndex × maxPlayers + seatIndex
Counting fromThe modal's nonceRound and seat are both 0-based
HashHMAC-SHA256 keyed with the server seedHMAC-SHA256 keyed with the server seed
Status hereConfirmed at roll 52.5587Implemented, not yet confirmed

The jackpot is different again: a plain SHA-256 rather than an HMAC, over the server seed joined to jackpot:winner|, the battle ID, and every player's client seed joined with colons, players sorted by seat and then by user ID. The first 8 hex characters scale onto 0 to 100 as usual, and the winner holds the range covering the result, with ranges sized to each player's total prize value.

The version number in that message is a gap

Look at the first field again: battle:v2. Ripster labels its battle algorithm RNG v2 and describes the message as versioned, which means there was a v1.

No v1 specification is published. No date, round ID or battle ID marks where one stopped and the other started. A battle played before the change therefore cannot be checked against anything, because the only algorithm anyone can obtain is the one that may not have applied to it.

This site holds Ripster to the standard it applies elsewhere, and that standard is not met here. Clash.gg and RustClash have the same gap and this site says so on both of their pages. CSGORoll publishes dated cutoffs down to the play ID for nearly every mode, which is the version of this that works. Ripster's fairness page is otherwise among the most complete in the registry, which is what makes one missing line conspicuous rather than trivial: everything else a reader needs is already there.

What is actually confirmed?

The box and upgrade engine, cross-checked against Ripster's own in-browser verifier at roll 52.5587 on 8 July 2026 and again on 20 September 2026, with an independent implementation of the published algorithm producing the same value. That is a cross-check against the operator's live tool rather than a captured real roll, so the outstanding item is a genuine unboxing with its seeds and the item received, which would close the mapping end to end.

One nonce detail stays open. Ripster shows the nonce in its provably fair modal and it increments every roll, but whether the counter starts at 0 or at 1 is not stated on the fairness page, and we have not confirmed it. Use the nonce the modal shows you rather than counting your own opens. Battle rounds and seats are a separate matter and are documented: both count from 0.

Ripster's fairness page publishes the full scheme with runnable Node.js and Python code, three in-browser verifiers, and a statement that those verifiers run entirely in the browser with nothing sent to its servers. It is also not indexed by search engines, which is why no third-party write-up of this algorithm exists and why everything here comes from the page itself rather than anyone's summary of it. The page was rebuilt between the July capture and the September re-check, which is how the worked example came to disappear.

The bottom line

Everything needed to check a box open is public: the hash function, the exact message string with its colon separator, the slice length, the conversion, and the item-selection rule. Most platforms stop short of the last one. The example above reproduces exactly on both tools, so the formula on the fairness page is the formula the site runs.

Three limits stand. Battle rounds are implemented but unconfirmed, the box nonce start value is not published, and the battle algorithm carries a version number whose predecessor is not published at all. None of the three affects a standard box open, which is what the verifier above is set to by default.

A fairness check also stays a fairness check here. It settles whether your roll came from the values shown and nothing about shipping, support or the business, which is a separate question with separate evidence at is Ripster.gg legit. Recompute your roll, compare it against the range on the item you received and the hash you saved before playing, and hold the result to what it actually covers, which is set out in what provably fair does not prove.

What we can check on Ripster.gg

Per-game status. "Verified" means our implementation reproduced a real, documented result for that game. We never list a game on trust.

GameAlgorithmStatus
Box open / upgradeHMAC-SHA256Verified

Cross-checked against Ripster's own in-browser verifier, 2026-07-08 and re-run 2026-09-20 (roll 52.5587, same digest and intermediate decimal). The fairness page was rebuilt between those dates and no longer prints a worked example, so this is a live-tool cross-check rather than a published vector.

Battle round (RNG v2)HMAC-SHA256Awaiting confirmation

Published formula implemented; no real battle vector yet. Round and seat are both 0-based. The message is labelled v2 and no v1 is published, with no date or ID marking the boundary, so pre-v2 battles are not verifiable from operator material.

Common questions

Is Ripster.gg provably fair?

Yes for box opens and upgrades, which run HMAC-SHA256 keyed with the server seed and reproduce Ripster's own in-browser verifier at roll 52.5587, re-checked 20 September 2026. Battle rounds are built from the published formula but no real battle result has been reproduced against them yet.

How do I verify a Ripster.gg box opening?

Take the revealed server seed, your client seed and the nonce from the provably fair modal, then paste all three into the verifier above. It rebuilds the message as clientSeed:nonce, runs the HMAC on your own device, and returns your roll to four decimal places.

Why is my Ripster.gg roll a decimal instead of a ticket number?

Because Ripster scales its outcome onto a percentage rather than a ticket space. The first 8 hex characters of the digest become a 32-bit integer, which is divided by 2^32 and multiplied by 100, giving a roll from 0 up to but never reaching 100.

Why does my Ripster.gg roll not match the item I received?

The roll alone does not name the item. Ripster sorts that box's items by item ID, normalises their probabilities to sum to 100, then walks the running total and awards the first item that reaches your roll. Sorting by price or rarity instead gives the wrong item.

How are Ripster.gg battles different from box opens?

The message changes completely. A battle round hashes six pipe-separated fields including the battle ID, round and seat, both counting from 0, and derives the nonce as roundIndex times maxPlayers plus seatIndex rather than taking it from your play count. That message is labelled v2, and no v1 or cutoff is published, so an older battle cannot be checked.

Does the Ripster.gg nonce start at 0 or 1?

That is not stated on Ripster's fairness page and it is not confirmed here. The modal shows the nonce that a given roll used, so read it from there rather than counting your own opens. Using the wrong starting value produces a valid-looking roll that is simply the wrong one.

Sources

Algorithm details on this page are checked against Ripster.gg's own published material before publication, and our implementation is confirmed against a real result before a game is marked verified.

Asking a different question?

This page is for checking a result you already have. If what you actually want to know is whether Ripster.gg is worth using at all, who runs it and what players report about getting paid, that is a separate piece: is Ripster.gg legit?

The honest fine print

A passing check proves a specific outcome came from numbers fixed before you played. It does not prove Ripster.gg will honour a withdrawal, or say anything about the site beyond this one result. Fair math and a trustworthy business are different things: how we verify and what it means.

More tools: compare every platform's algorithm · batch-verify a nonce range · check your luck vs the odds · all platforms

The verifier never sends your data anywhere. Analytics cookies are separate and let us see aggregate traffic. Nothing loads unless you allow it. See our Privacy Policy.