Reference API Roblox

Engine API

Website

Related

Reference API Roblox

Player

An object that represents a presently connected client to the game.

Member index 138

HistoryMember
554AccountAge: int
554AutoJumpEnabled: bool
554CameraMaxZoomDistance: float
554CameraMinZoomDistance: float
554CameraMode: CameraMode
554CanLoadCharacterAppearance: bool
554Character: Model
554CharacterAppearance: string
554CharacterAppearanceId: int64
554DevCameraOcclusionMode: DevCameraOcclusionMode
554DevComputerCameraMode: DevComputerCameraMovementMode
554DevComputerMovementMode: DevComputerMovementMode
578DevEnableMouseLock: bool
554DevTouchCameraMode: DevTouchCameraMovementMode
554DevTouchMovementMode: DevTouchMovementMode
554DisplayName: string
554FollowUserId: int64
554GameplayPaused: bool
554HasVerifiedBadge: bool
554HealthDisplayDistance: float
554MembershipType: MembershipType
554NameDisplayDistance: float
554Neutral: bool
554ReplicationFocus: Instance
554RespawnLocation: SpawnLocation
554Team: Team
554TeamColor: BrickColor
554UserId: int64
554userId: int64
573AddToBlockList(userIds: Array): null
573ClearCharacterAppearance(): null
462DistanceFromCharacter(point: Vector3): float
483GetFriendStatus(player: Player): FriendStatus
462GetFriendsOnline(maxFriends: int = 200): Array
462GetGameSessionID(): string
624GetJoinData(): Dictionary
483GetMouse(): Mouse
562GetNetworkPing(): float
462GetRankInGroup(groupId: int64): int
462GetRoleInGroup(groupId: int64): string
462GetUnder13(): bool
462HasAppearanceLoaded(): bool
462IsBestFriendsWith(userId: int64): bool
462IsFriendsWith(userId: int64): bool
462IsInGroup(groupId: int64): bool
573IsVerified(): bool
573Kick(message: string = ): null
462LoadBoolean(key: string): bool
573LoadCharacter(): null
573LoadCharacterAppearance(assetInstance: Instance): null
573LoadCharacterBlocking(): null
573LoadCharacterWithHumanoidDescription(humanoidDescription: HumanoidDescription): null
573LoadData(): null
462LoadInstance(key: string): Instance
462LoadNumber(key: string): double
462LoadString(key: string): string
573Move(walkDirection: Vector3, relativeToCamera: bool = false): null
573RemoveCharacter(): null
573RequestFriendship(player: Player): null
573RequestStreamAroundAsync(position: Vector3, timeOut: double = 0): null
573RevokeFriendship(player: Player): null
573SaveBoolean(key: string, value: bool): null
573SaveData(): null
573SaveInstance(key: string, value: Instance): null
573SaveNumber(key: string, value: double): null
573SaveString(key: string, value: string): null
573SetAccountAge(accountAge: int): null
593SetBlockListInitialized(): null
573SetCharacterAppearanceJson(jsonBlob: string): null
611SetChatTranslationSettingsLocaleId(locale: string): null
573SetExperienceSettingsLocaleId(locale: string): null
573SetMembershipType(membershipType: MembershipType): null
573SetModerationAccessKey(moderationAccessKey: string): null
573SetSuperSafeChat(value: bool): null
573SetUnder13(value: bool): null
573UpdatePlayerBlocked(userId: int64, blocked: bool): null
462WaitForDataReady(): bool
553isFriendsWith(userId: int64): bool
553loadBoolean(key: string): bool
553loadInstance(key: string): Instance
553loadNumber(key: string): double
553loadString(key: string): string
573saveBoolean(key: string, value: bool): null
573saveInstance(key: string, value: Instance): null
573saveNumber(key: string, value: double): null
573saveString(key: string, value: string): null
553waitForDataReady(): bool
483CharacterAdded(character: Model)
483CharacterAppearanceLoaded(character: Model)
483CharacterRemoving(character: Model)
483Chatted(message: string, recipient: Player)
483FriendStatusChanged(player: Player, friendStatus: FriendStatus)
462Idled(time: double)
462OnTeleport(teleportState: TeleportState, placeId: int64, spawnName: string)
462SimulationRadiusChanged(radius: float)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553ClassName: string
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
553className: string
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
486GetChildren(): Objects
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
462GetPropertyChangedSignal(property: string): RBXScriptSignal
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsA(className: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
553children(): Objects
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
553getChildren(): Objects
462isA(className: string): bool
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462Changed(property: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)

Removed member index 19

HistoryMember
180ClanTag: string
273HasBuildTools: bool
273PersonalServerRank: int
335PlayerJoinData: PlayerJoinData
310BlockUser(player: Instance): string
273GetWebPersonalServerRank(): string
52HasBuildPermission(role: BuildPermission): bool
535IsUserAvailableForExperiment(): bool
338JumpCharacter(): void
338MoveCharacter(walkDirection: Vector2, maxWalkDelta: float): void
258SaveLeaderboardData(): void
180SetClanTag(newClanTag: string): void
273SetWebPersonalServerRank(rank: int): bool
310UnblockUser(player: Instance): string
90HoverOnPlayerChanged(playerHoveredOn: Instance)
90MouseDownOnPlayer(playerMouseDownOn: Instance)

Description

A Player object is a client that is currently connected. These objects are added to the Players service when a new player connects, then removed when they eventually disconnect from the server.

The Instance.Name property reflects the player's username. When saving information about a player, you should use their Player.UserId since it is possible that a player can change their username.

There are several similar methods in the Players service for working with Player objects. Use these over their respective Instance methods:

History 574

Members 138

AccountAge

TypeDefault
int

The AccountAge is a Player property that describes how long ago a player's account was registered in days. It is set using the Player:SetAccountAge() function, which cannot be accessed by scripts.

This property is useful for conditionally showing new Roblox players content such as tutorials.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 5

Tags: [ReadOnly, NotReplicated]

AddToBlockList

Parameters (1)
userIdsArray
Returns (1)
null

History 3

AutoJumpEnabled

TypeDefault
bool

The AutoJumpEnabled property determines whether the Player.Character of a Player using a mobile device will automatically jump when they hit an obstacle. This can make levels more navigable while on a mobile device.

When the player joins the game, the StarterPlayer.AutoJumpEnabled value determines the initial state of this property. Then, this property determines the value of the Humanoid.AutoJumpEnabled property of the Player.Character on spawn. In other words, it is possible to set the auto-jump behavior on a per-character, per-player and per-game basis using these three properties.

History 5

CameraMaxZoomDistance

TypeDefault
float

The CameraMaxZoomDistance Player property sets the maximum distance in studs the camera can be from the character with the default cameras.

In other words, it controls the maximum distance the player's camera is allowed to zoom out.

The default value of this property is set by StarterPlayer.CameraMaxZoomDistance. If this value is set to a lower value than Player.CameraMinZoomDistance, it will be increased to CameraMinZoomDistance.

History 5

CameraMinZoomDistance

TypeDefault
float

The CameraMinZoonDistance Player property sets the minimum distance in studs the camera can be from the character with the default cameras.

In other words, it controls the minimum distance the player's camera is allowed to zoom in.

The default value of this property is set by StarterPlayer.CameraMinZoomDistance. If this value is set to a higher value than Player.CameraMaxZoomDistance it will be decreased to CameraMaxZoomDistance.

History 5

CameraMode

TypeDefault
CameraMode

The CameraMode property sets the player's camera mode, defaulting to third person.

Third Person

In the default third person mode (CameraMode.Classic), the character can be seen in the camera. While in this mode, the default behavior is:

  • Players can right-click and drag (mouse), tap and drag (mobile), use the secondary thumbstick (gamepad), or press the left/right arrows (keyboard) to rotate the camera around their character.
  • When a player moves their character, it faces in the corresponding movement direction.
  • Players can zoom in and out freely, even to first person on full zoom in.

First Person

In first person mode (CameraMode.LockFirstPerson), the player's camera is zoomed all the way in. Unless there is a visible GUI present with the GuiButton.Modal property set to true, moving the mouse, tap-dragging on mobile, or using the secondary thumbstick on a gamepad will rotate the camera around the character.

History 5

CanLoadCharacterAppearance

TypeDefault
bool

The CanLoadCharacterAppearance Player property determines whether the character's appearance will be loaded when the player spawns. The default value of this property is set by StarterPlayer.LoadPlayerAppearance.

If true, the character will load the appearance of the player corresponding to the player's Player.CharacterAppearanceId.

If false, the player will spawn with a default appearance - a grey character model without any hats, shirts, pants, etc.

Attempting to set the property after the character has spawned will not change the character, you must call Player:LoadCharacter() to load the new appearance.

History 5

Character

TypeDefault
Model

The Character property contains a reference to a Model containing a Humanoid, body parts, scripts, and other objects required for simulating the player's avatar in-experience. The model is parented to the Workspace but it may be moved. It is automatically loaded when Players.CharacterAutoLoads is true and it can be manually loaded otherwise using Player:LoadCharacter().

Initially this property is nil and it is set when the player's character first spawns. Use the Player.CharacterAdded event to detect when a player's character properly loads, and the Player.CharacterRemoving event to detect when the character is about to despawn. Avoid using Instance:GetPropertyChangedSignal() on this property.

Note that LocalScripts that are cloned from StarterGui or StarterPack into a player's PlayerGui or Backpack respectively are often run before the old character model is replaced, so Player.Character may refer to the old model whose Parent property is nil. Therefore, in a LocalScript under StarterGui or StarterPack, it is advisable to make sure the parent of Character is not nil before using it, for example:

1
2
3
4
5
6
7
local Players = game:GetService("Players")
local player = Players.LocalPlayer

local character = player.Character
if not character or character.Parent == nil then
	character = player.CharacterAdded:Wait()
end

History 6

CharacterAdded

Parameters (1)
characterModel

The CharacterAdded event fires when a player's character spawns (or respawns). This event fires soon after setting Player.Character to a non-nil value or calling Player:LoadCharacter(), which is before the character is parented to the Workspace.

This can be used alongside the Player.CharacterRemoving event, which fires right before a player's character is about to be removed, typically after death. As such, both of these events can potentially fire many times as players die then respawn in a place. If you want to detect when a player joins or leaves the game, use the Players.PlayerAdded and Players.PlayerRemoving events instead.

Note that the Humanoid and its default body parts (head, torso, and limbs) will exist when this event fires, but clothing items like Hats, Shirts, and Pants may take a few seconds to be added to the character. Connect Instance.ChildAdded on the added character to detect these, or wait for the Player.CharacterAppearanceLoaded event to be sure the character has everything equipped.

History 3

CharacterAppearance

TypeDefault
string

The CharacterAppearance property indicates the URL of the asset containing the character's appearance, clothing, and gear.

It is automatically set by Roblox to load your avatar's appearance when you join a game.

Attempting to set the property after the character has spawned will not change the character, you must call Player:LoadCharacter() to load the new appearance.

This property is deprecated. It exists only for backward compatibility, and should not be used for new work. CharacterAppearanceId should be used instead.
This property is not browsable. It is not visible in Studio's object browser.

History 6

Tags: [NotBrowsable, Deprecated]

CharacterAppearanceId

TypeDefault
int64

This property determines the user ID of the account whose character appearance is used for a player's Player.Character. By default, this property is the Player.UserId, which uses the player's avatar as they have created it on the Roblox website.

Changing this property to the user ID of another account will cause the player to spawn with that account's appearance (hats, shirt, pants, etc).

Games can also toggle whether or not a player's character appearance is loaded in game by changing the StarterPlayer.LoadCharacterAppearance property.

History 6

CharacterAppearanceLoaded

Parameters (1)
characterModel

This event fires when the full appearance of a Player.Character has been inserted.

A Player.Character generally has a range of objects modifying its appearance, including Accoutrements, Shirts, Pants and CharacterMeshes. This event will fire when all such objects have been inserted into the Player.Character.

One use for this event is to ensure all accessories have loaded before destroying them. See below for an example of this.

History 3

CharacterRemoving

Parameters (1)
characterModel

The CharacterRemoving event fires right before a player's character is removed, such as when the player is respawning.

This event can be used alongside the Player.CharacterAdded event, which fires when a player's character spawns or respawns. For instance, if you would like to print a message every time a player spawns and dies:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
local Players = game:GetService("Players")

local function onCharacterSpawned(player)
	print(player.Name .. " is spawning")
end

local function onCharacterDespawned(player)
	print(player.Name .. " is despawning")
end

local function onPlayerAdded(player)
	player.CharacterAdded:Connect(function()
		onCharacterSpawned(player)
	end)
	player.CharacterRemoving:Connect(function()
		onCharacterDespawned(player)
	end)
end

Players.PlayerAdded:Connect(onPlayerAdded)

This event is only concerned with the Character of a Player. If you instead need to track when a player joins/leaves the game, use the events Players.PlayerAdded and Players.PlayerRemoving.

History 3

Chatted

Parameters (2)
messagestring
recipientPlayer

The Chatted event fires when a Player types a message and presses enter in Roblox's provided chat bar. This is done using some Lua bindings by the default chat script. You can prevent players from chatting by using StarterGui:SetCoreGuiEnabled() and disabling the Chat CoreGuiType.

Chat Commands

Using this event and some string manipulation functions like string.sub() and string.lower(), it is possible to create chat commands, even with arguments like player names. Usually, commands are prefixed such as heal PlayerName. To check for a prefix in a string, use string.sub() on the message to check a substring of the message: string.sub(message, 1, 6) == "/heal " (note the inclusion of the space). Then, extract the rest of the command using string.sub() again: string.sub(message, 7) will be equal to the player name. Check if that player exists, and if so, perform the command's action (in this example, healing them). Check the code samples for examples of chat commands.

Filtering

The message text fired with this event is unfiltered. If you are displaying player input like chat to other players in any form, it must be filtered using Chat:FilterStringAsync(). Keep this in mind when creating your own chat systems; if your game does not properly filter chat it may have moderation action taken against it.

History 3

ClearCharacterAppearance

Parameters (0)
No parameters.
Returns (1)
null

The ClearCharacterAppearance function removes all Accessory, Shirt, Pants, CharacterMesh, and BodyColors from the given player's Player.Character. In addition, it also removes the T-Shirt Decal on the player's torso. The character's body part colors and face will remain unchanged. This method does nothing if the player does not have a Character.

It does not remove t-shirts, head meshes, or faces.

History 3

DevCameraOcclusionMode

TypeDefault
DevCameraOcclusionMode

Defines how the default camera scripts handle objects between the camera and the camera subject. Set by StarterPlayer.DevCameraOcclusionMode and can't be changed for individual players.

The default value is Zoom (0). See DevCameraOcclusionMode for a list of available modes.

History 7

DevComputerCameraMode

TypeDefault
DevComputerCameraMovementMode

The DevComputerCameraMode property determines the manner in which a player moves their camera when using a device with a mouse and keyboard. See DevComputerCameraMovementMode for a description of each camera control mode available. This property cannot be set using a LocalScript (it must be set on the server using a Script).

The default value of this property is determined by StarterPlayer.DevComputerCameraMovementMode.

The word "Computer" in this property name refers to non-TouchEnabled, non-GamepadEnabled devices.

When set to UserChoice, a player can choose between any control mode (except Scriptable) in the Roblox game settings. In general, it's a good idea to allow players to choose their control mode to maximize accessibility.

It's possible to create a custom control scheme by setting this property to Scriptable.

This property doesn't affect players using a touch enabled device. See Player.DevTouchCameraMode instead.

History 7

DevComputerMovementMode

TypeDefault
DevComputerMovementMode

The DevComputerMovementMode property determines the manner in which a player moves their character when using a device with a mouse and keyboard. See DevComputerMovementMode for a description of each movement control mode available. This property cannot be set using a LocalScript (it must be set on the server using a Script).

The default value of this property is determined by StarterPlayer.DevComputerMovementMode.

The word "Computer" in this property name refers to non-TouchEnabled devices.

When set to UserChoice, a player can choose between any control mode (except Scriptable) in the Roblox game settings. In general, it is a good idea to allow players to choose their control mode to maximize accessibility.

It's possible to create a custom control scheme by setting this property to Scriptable.

This property doesn't affect players using a touch-enabled device. See Player.DevTouchMovementMode instead.

History 7

DevEnableMouseLock

TypeDefault
bool

This property determines if a player is able to toggle Mouse lock by pressing Shift. A player can disable the mouse lock switch in Roblox's game settings. By default, this property is set to the value of StarterPlayer.EnableMouseLockOption. This can be set server-side during run-time by using a Script. It can not be set client-side.

When mouse lock is enabled, the player's cursor is locked to the center of the screen. Moving the mouse will orbit the camera around the player's character, and the character will face the same direction as the camera. It also offsets the camera view just over the right shoulder of the player's character.

Note that shift-lock related APIs are in the process of being deprecated, so it's recommended to use UserInputService.MouseBehavior instead to lock the mouse.

History 9

DevTouchCameraMode

TypeDefault
DevTouchCameraMovementMode

The DevTouchCameraMode property determines the manner in which a player moves their camera when using a TouchEnabled device. See DevTouchCameraMovementMode for a description of each camera control mode available. This property cannot be set using a LocalScript (it must be set on the server using a Script).

The default value of this property is determined by StarterPlayer.DevTouchCameraMovementMode.

When set to UserChoice, a player can choose between any control mode (except Scriptable) in the Roblox game settings. In general, it is a good idea to allow players to choose their control mode to maximize accessibility.

It's possible to create a custom control scheme by setting this property to Scriptable.

This property doesn't affect players who aren't using a touch-enabled device. See Player.DevComputerCameraMovementMode instead.

History 7

DevTouchMovementMode

TypeDefault
DevTouchMovementMode

The DevTouchMovementMode property determines the manner in which a player moves their character when using a TouchEnabled device. See DevTouchMovementMode for a description of each movement control mode available. This property cannot be set using a LocalScript (it must be set on the server using a Script).

The default value of this property is determined by StarterPlayer.DevTouchMovementMode.

When set to UserChoice, a player can choose between any control mode (except Scriptable) in the Roblox game settings. In general, it's a good idea to allow players to choose their control mode to maximize accessibility.

It's possible to create a custom control scheme by setting this property to Scriptable.

This property doesn't affect players who aren't using a touch-enabled device. See Player.DevComputerMovementMode instead.

History 7

DisplayName

TypeDefault
string

The DisplayName is a Player property that contains the display name of the authenticated user associated with the Player object. Unlike usernames, display names are non-unique names a player displays to others. If the Roblox user has not chosen one, the property will read the same as the Name property.

Note:

  • Since display names are non-unique, it's possible for two players in a single instance to have identical names. If you need a globally unique identifier for a player, use Player.UserId (which is static) or Player.Name (which is the current Username) instead.
  • Characters generated with Player.LoadCharacter or by the Roblox engine will have their Humanoid.DisplayName property assigned to the Player.DisplayName property.
  • Display names may have unicode characters in the string. See UTF-8 for more information on how to work with strings with unicode characters.

History 6

DistanceFromCharacter

Parameters (1)
pointVector3
Returns (1)
float

The DistanceFromCharacter Player function returns the distance between the character's head and the given Vector3 point. It returns 0 if the player has no Player.Character.

This is useful when determining the distance between a player and another object or location in game.

If you would like to determine the distance between two non-player instances or positions, you can use the following:

1
local distance = (position1 - position2).magnitude

History 2

FollowUserId

TypeDefault
int64

The FollowUserId is a Player property that contains the Player.UserId of the user that a player followed into the game. If the player did not follow anyone into the game, this property will be 0. This property is useful for alerting players who have been followed by another player into the game.

You can get the name of the player followed using this user ID and the Players:GetNameFromUserIdAsync() function.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 6

Tags: [ReadOnly, NotReplicated]

FriendStatusChanged

Parameters (2)
playerPlayer
friendStatusFriendStatus

History 3

GameplayPaused

TypeDefault
bool

The GameplayPaused property indicates if the player is currently in a pause state in a place with StreamingEnabled activated. It is set on the client but replicated to the server. To determine the pause status, you can utilize this property.

See also:

History 8

GetFriendStatus

Parameters (1)
playerPlayer
Returns (1)
FriendStatus

History 3

GetFriendsOnline

Parameters (1)Default
maxFriendsint200
Returns (1)
Array

This function returns a dictionary array of online friends, limited by the maxFriends value. The function uses a 30 second cache.

In the returned array, some fields are only present for certain location types. For example, PlaceId won't be present when LocationType is 0 (Mobile Website).

NameTypeDescription
VisitorIdnumberThe Player.UserId of the friend.
UserNamestringThe username of the friend.
DisplayNamestringThe Player.DisplayName of the friend.
LastOnlinestringWhen the friend was last online.
IsOnlinebooleanIf the friend is currently online.
LastLocationstringThe name of the friend's current location.
PlaceIdnumberThe place ID of the friend's last location.
GameIdstringThe DataModel/JobId of the friend's last location.
LocationTypenumberThe location type of the friend's last location:
0Mobile Website
1Mobile InGame
2Webpage
3Studio
4InGame
5Xbox
6Team Create
This function yields. It will block the calling thread until completion.

History 4

Tags: [Yields]

GetGameSessionID

Parameters (0)
No parameters.
Returns (1)
string

History 2

GetJoinData

Parameters (0)
No parameters.
Returns (1)
Dictionary

Returns a dictionary containing information describing how the Player joins the experience. The dictionary contains any of the following fields:

KeyValue TypeDescription
SourceGameIdnumberThe DataModel.GameId of the experience the Player teleported from. Only present if the player teleports to the current experience and if a server calls the teleport function.
SourcePlaceIdnumberThe DataModel.PlaceId of the place the Player teleported from. Only present if the player teleports to the current place and a server calls the teleport function.
MembersarrayAn array containing the Player.UserId numbers of the users teleported alongside the Player. Only present if the player teleported as part of a group.
TeleportDatavariantReflects the teleportData specified in the original teleport. Useful for sharing information between servers the player teleports to. Only present if teleportData was specified and a server calls the teleport function.
LaunchDatastringA string containing launch data specified in the URL the player clicks to join the experience. Only present if the URL contains launch data.

GetJoinData and TeleportData

If a server initiates the Player's teleport, the dictionary that this method returns includes the player's teleport data. The Player:GetJoinData() method can only be used to fetch teleport data on the server. To fetch the data on the client, use TeleportService:GetLocalPlayerTeleportData().

Unlike TeleportService:GetLocalPlayerTeleportData(), Player:GetJoinData() only provides teleport data that meets the following security criteria:

  • It's guaranteed to have been sent by a Roblox server in the past 48 hours.
  • It's guaranteed to have been sent with this Player.
  • The SourcePlaceId and SourceGameId are guaranteed to be the place and universe the data was sent from. This means you can verify the teleport data came from an approved place.

As this data is transmitted by the client, it can still potentially be abused by an exploiter. Sensitive data such as player currency should be transmitted via a secure solution like Memory Stores.

LaunchData

Contains the string embedded in the launchData URL parameter that the user clicked to join the experience. Only available on the first join. If the user teleports to another server, the data isn't included. If you need the data after a teleport, forward it manually as teleport data. You can only include LaunchData in direct join URLs, not URLs to the experience's page.

LaunchData is a URL parameter that you can create by adding &launchData=abcd to a URL, where abcd is the data. Special characters such as spaces must be URL encoded using HttpService:UrlEncode() and are automatically decoded when the user joins the game. The decoded launch data can't exceed 200 bytes. You can store more complex data as a JSON string and decode it with HttpService:JSONDecode() on the server.

This link joins the LaunchData sample place and starts the user in room 2: https://www.roblox.com/games/start?placeId=6900305353&launchData=%7B%22roomId%22%3A%202%7D

You can also make sure that this link works for users without Roblox downloaded on their mobile devices by using the AppsFlyer version of the link. The above link would look like:

ro.blox.com/Ebh5?af_dp=https%3A%2F%2Fwww.roblox.com%2Fgames%2Fstart%3FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fgames%2Fstart%3FplaceId%3D6900305353%26launchData%3D%257B%2522roomId%2522%253A%25202%257D

To build the AppsFlyer version of the link, you need to start the URL with ro.blox.com/Ebh5? and append the af_dp and af_web_dp parameters with the URL encoded version of Link 1.

Don't store confidential information in the LaunchData because it's fully visible in the URL. Furthermore, the data might not be authentic because a user can modify the URL.

This function has a custom internal state. It may behave in a non-standard way.

History 3

Tags: [CustomLuaState]

GetMouse

Parameters (0)
No parameters.
Returns (1)
Mouse

The GetMouse Player function returns the Mouse being used by the client. The player's mouse instance can be used to track user mouse input including left and right mouse button clicks and movement and location.

The UserInputService service provides additional functions and events to track user input - especially for devices that do not use a mouse.

Note:

  • This item must be used in a LocalScript to work as expected online.
  • Following an update in July 2014, the mouse's icon can now be set with this method.

History 3

GetNetworkPing

Parameters (0)
No parameters.
Returns (1)
float

GetNetworkPing returns the isolated network latency of the Player in seconds. "Ping" is a measurement of the time taken for data to be sent from the client to the server, then back again. It doesn't involve data deserialization or processing.

For client-side LocalScripts, this function can only be called on the Players.LocalPlayer. This function is useful in identifying and debugging issues that occur in high network latency scenarios. It's also useful for masking latency, such as adjusting the speed of throwing animations for projectiles.

History 3

GetRankInGroup

Parameters (1)
groupIdint64
Returns (1)
int

The GetRankInGroup Player function returns the player's rank in the group as an integer between 0 and 255, where 0 is a non-member and 255 is the group's owner.

Using this in a Script, as opposed to a LocalScript, will not get you the most up-to-date information. If a player leaves a group while they are in the game, GetRankInGroup will still think they're in that group until they leave. However, this does not happen when used with a LocalScript.

This is because the method caches results, so multiple calls of GetRankInGroup on the same player with the same group ID will yield the same result as when the method was first called with the given group ID. The caching behavior is on a per-peer basis: a server does not share the same cache as a client.

This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

GetRoleInGroup

Parameters (1)
groupIdint64
Returns (1)
string

The GetRoleInGroup Player function returns the player's role in the group as a string, or Guest if the player isn't part of the group.

Using this in a Script, as opposed to a LocalScript, will not get you the most up-to-date information. If a player leaves a group while they are in the game, GetRoleInGroup will still think they're in that group until they leave. However, this does not happen when used with a LocalScript.

This is because the method caches results, so multiple calls of GetRoleInGroup on the same player with the same group ID will yield the same result as when the method was first called with the given group ID. The caching behavior is on a per-peer basis: a server does not share the same cache as a client.

This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

GetUnder13

Parameters (0)
No parameters.
Returns (1)
bool

History 2

HasAppearanceLoaded

Parameters (0)
No parameters.
Returns (1)
bool

The HasAppearanceLoaded Player function returns whether or not the appearance of the player's Player.Character has loaded.

A player's appearance includes items such as the player's Shirt, Pants, and Accessories.

This is useful when determining whether a player's appearance has loaded after they first join the game, which can be tracked using the Players.PlayerAdded event.

History 2

HasVerifiedBadge

TypeDefault
bool

The HasVerifiedBadge Player property indicates if the player has a Verified Badge.

History 1

HealthDisplayDistance

TypeDefault
float

The HealthDisplayDistance Player property sets the distance in studs at which this player will see other Humanoid health bars. If set to 0, the health bars will not be displayed. This property is set to StarterPlayer.HealthDisplayDistance by default.

If a Humanoid's health bar is visible, you can set the display type using Humanoid.DisplayDistanceType.

History 5

Idled

Parameters (1)
timedouble

This event fires approximately two minutes after the game engine classifies the player as idle. Time is the number of seconds that have elapsed since that point. The event continues to fire every 30 seconds for as long as the player remains idle.

This event only fires in client scripts, not server scripts; use a RemoteEvent to notify the server of idle players.

Roblox automatically disconnects players that have been idle for at least 20 minutes, so this event is useful for warning players that they will be disconnected soon, disconnecting players prior to those 20 minutes, or other away from keyboard (AFK) features.

To track how often automatic disconnects occur, try correlating this event with occurrences of Players.PlayerRemoving.

History 2

IsBestFriendsWith

Parameters (1)
userIdint64
Returns (1)
bool

This function was once used to return whether a player is best friends with the specified user, but the best friend feature has since been removed.

This function is deprecated. It exists only for backward compatibility, and should not be used for new work.
This function yields. It will block the calling thread until completion.

History 4