Reference API Roblox

Engine API

Website

Related

Reference API Roblox

IntegrityService

A service that lets you decide how your experience responds to the device trust level of each player.

This class is not replicated. Its interface does not cross the network boundary.
This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service, NotReplicated]

Member index 1

HistoryMember
745EvaluatePlayerDeviceTrust(player: Player, measures: Dictionary): Variant
inherited from Instance
731Archivable: bool
731Capabilities: SecurityCapabilities
731IsInSandbox: bool
731Name: string
731Parent: Instance
731PredictionMode: PredictionMode
731Sandboxed: bool
731UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
731children(): Instances
731clone(): Instance
731destroy(): null
731findFirstChild(name: string, recursive: bool = false): Instance
731getChildren(): Instances
731isDescendantOf(ancestor: Instance): bool
731remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
731childAdded(child: Instance)
inherited from Object
731ClassName: string
731className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
731isA(className: string): bool
647Changed(property: string)

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)
playerPlayer
measuresDictionary
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 valid Action.
  • 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.

History 1

Settings