IntegrityService
A service that lets you decide how your experience responds to the device trust level of each player.
| Memory category | Instances |
|---|
Member index 1
Description
IntegrityService exposes the API to measure the
device trust level of every
player who joins your game. Roblox doesn't take any action based on the device
trust level; instead, you decide what it means for your experience, such as
rejecting players on untrusted devices, restricting sensitive features, or
sending players to a different place.
To accept or reject each player once their trust level is available, assign a function to EvaluatePlayerDeviceTrust. To read the trust level of a player at any time, use Player.DeviceTrustLevel.
The device trust level describes the player's device, not the player or their account. It doesn't tell you whether a player is cheating. For code samples and guidance on choosing a policy, see device trust.
History 2
Members 1
EvaluatePlayerDeviceTrust
| Parameters (2) | ||
|---|---|---|
| player | Player | |
| measures | Dictionary | |
| Returns (1) | ||
| Variant | ||
This callback is called once for each player, as soon as their device
trust level is available. Use it to decide whether the player can stay in
the server, based on Player.DeviceTrustLevel and the measures
table.
Keep the following in mind when you assign this callback:
- You can only assign it from a server-side Script. Assigning it from a client throws an error.
- Each place has one callback. If you assign it more than once, the last assignment replaces the earlier ones.
- It runs after Players.PlayerAdded fires, because checking the device takes time. When it runs, Player.DeviceTrustLevel is never Pending.
- It can yield. The player keeps playing while it runs, so a rejected player can be disconnected after they've started playing.
- If the player leaves, or your scripts remove them, before their trust level is available, it isn't called for that player.
- Roblox doesn't check devices in Studio, so it isn't called during playtests.
Roblox filters a custom Message and shortens messages that are too long.
If filtering would change the message, Roblox shows the default message
instead.
Roblox doesn't kick the player in each of the following cases:
- No script assigns the callback.
- The callback returns
nil, a value that isn't a table, or a table without a validAction. - The callback throws an error. Roblox reports the error like any other script error.
- The callback doesn't return in time.
For code samples, see device trust.
| Thread safety | Unsafe |
|---|