Skip to main content
A minigame runs in the player’s browser, so whether they “won” is decided on their own machine (the client). If a reward is paid out by a server event the player’s game triggers, a cheater can skip the minigame and fire that event anyway. This lets your server double-check that the player actually passed. It’s optional - if you never call it, nothing changes.

Use it

Keep your client code as-is:
Then check on the server before paying out:
That’s it. ConsumeResult(src, gameId) returns true for a genuine, recent win and spends it, so the same win can’t be claimed twice.
Pass the gameId you gated on (here 'skillCheck') so a player can’t clear an easy game elsewhere and spend it here. For a Sequence, the id is 'sequence'.

Turn it off

config.lua
With enabled = false, ConsumeResult returns true for everyone - on purpose. You’ve turned verification off, so the check simply always passes rather than quietly rejecting honest players and breaking your payouts. The other settings (minDurationMs, resultTtlMs, sessionTtlMs) have sensible defaults; leave them alone unless you have a reason.

Honest limits

It stops the easy cheats - firing the event with no game behind it, replaying one win, or “winning” a 30-second game in 200ms (the duration is timed on the server). It cannot stop a modified client that plays a real session and lies about the result; no client-side minigame can. It raises the bar; it doesn’t close the door.
There are two more server exports if you need them: PeekResult(src, gameId) asks the same question without spending the win, and VerificationEnabled() tells you whether it’s switched on.