Player
Player : Instance
Overview
The Player object represents each user connected to the server
When a new user connects, they are registered as a Player object in the Players service and automatically removed from the list when disconnected.
Although the Name property of this object displays the user's nickname, it is safer to use UserId instead of the nickname for data storage because nicknames can be changed while UserId remains fixed.
To detect users connecting to the server, use the Players.PlayerAdded event. To detect disconnections, use the Players.PlayerRemoving event. This allows you to safely perform data saving or cleanup before a player leaves.
The list of all currently connected users can be retrieved using the Players:GetPlayers() method.
Properties
CameraMaxZoomDistance
number
This property defines the maximum zoom-out distance of the camera. Increasing this value allows the camera to zoom out farther, while decreasing it limits the maximum zoom-out range. If the current camera zoom distance exceeds the updated CameraMaxZoomDistance, the camera’s zoom distance will be automatically clamped to the specified maximum value.
Code Samples
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50 CameraMinZoomDistance
number
This property defines the minimum zoom-in distance of the camera. Decreasing this value allows the camera to move closer to the character, while increasing it prevents the camera from zooming in beyond a certain point. If the current camera zoom distance is smaller than the updated CameraMinZoomDistance, the camera’s zoom distance will be automatically clamped to the specified minimum value.
Code Samples
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
player.CameraMaxZoomDistance = 10 Character
Model
Returns the model object that constitutes the player's avatar, including the humanoid, body parts, scripts, and various elements needed for avatar movement.
The Character is automatically created if Players.CharacterAutoLoads is true, but if false, it must be manually created by calling LoadCharacter().
The initial value of this property is nil, and when the player's character is created, the model is assigned to this property.
It is recommended to use the CharacterAdded event for detecting the creation of a character and use the CharacterRemoving event for detecting just before a character removal.
Code Samples
local Players = game:GetService("Players")
local function OnAddPlayer(player)
repeat wait(0.1) until player.Character
local character = player.Character
end
Players.PlayerAdded:Connect(OnAddPlayer)RespawnLocation
SpawnLocation
Sets the SpawnLocation object where the player's character will respawn.
The specified object must belong to the Workspace.
Code Samples
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local Part = script.Parent
local Checkpoint = Workspace:WaitForChild("Checkpoint")
local function SetCheckpoint(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
player.RespawnLocation = Checkpoint
end
end
Part.Touched:Connect(SetCheckpoint)Team
Team
Currently not supported.
Code Samples
TeamColor
BrickColor
Currently not supported.
Code Samples
UserId
string
Returns a read-only unique ID that identifies the user's account.
Unlike the nickname, UserId never changes, so it is used for identifying accounts when storing or retrieving player data via DataStore.
Code Samples
local Players = game:GetService("Players")
local function OnAddPlayer(player)
print(player.UserId)
end
Players.PlayerAdded:Connect(OnAddPlayer)Methods
GetMouse
Returns the client's Mouse object.
The returned object can be used to detect and process mouse inputs such as left or right clicks.
However, in mobile environments, it is generally recommended to use UserInputService.
Parameters
Return
Mouse
The mouse object.
Code Samples
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()
local function OnButton1Down()
print("Button1Down", Mouse.Target)
if Mouse.Target.Name == "SpawnLocation" then
print("Hit SpawnLocation!")
end
end
Mouse.Button1Down:Connect(OnButton1Down)GetNetworkPing
This method returns the player’s current network ping (latency) in seconds. The ping value represents the communication delay between the client and the server — a lower value indicates a faster and more stable connection.
Parameters
Return
number
The player's current network ping (in seconds).
Code Samples
local Players = game.Players
Players.PlayerAdded:Connect(function(player)
print(player.Name.." : "..player:GetNetworkPing())
end)LoadCharacter
Removes the player's current character and creates a new one.
This is mainly used when the character needs to be recreated without killing the player.
Parameters
Return
void
Code Samples
player:LoadCharacter()RemoveCharacter
Removes the player's current character.
When the character is removed with RemoveCharacter(), the Character property is set to nil, and it can only be recreated by calling the LoadCharacter() method.
Parameters
Return
void
Code Samples
player:RemoveCharacter()Events
CharacterAdded
This event is executed when the player's character is created or recreated.
At this point, the character's humanoid and basic body parts (head, torso, limbs) already exist, but clothing and accessories (hats, shirts, pants, etc.) can be added a few seconds later.
To track a player's connection or disconnection, the Players.PlayerAdded and Players.PlayerRemoving events need to be used.
Parameters
Model Character
The created character.
Code Samples
local Players = game:GetService("Players")
local function OnEnterPlayer(player)
local function OnCharacterAdded(character)
print("[OnAddCharacter]", character)
end
player.CharacterAdded:Connect(OnCharacterAdded)
end
Players.PlayerAdded:Connect(OnEnterPlayer)CharacterRemoving
This event is executed just before the player's character is deleted.
This is mainly used to perform necessary actions before the character object is removed.
To track a player's connection or disconnection, the Players.PlayerAdded and Players.PlayerRemoving events need to be used.
Parameters
Model Character
The removed character.
Code Samples
local Players = game:GetService("Players")
local function OnEnterPlayer(player)
local function OnCharacterRemoving(character)
print("[OnCharacterRemoving]", character)
end
player.CharacterRemoving:Connect(OnCharacterRemoving)
end
Players.PlayerAdded:Connect(OnEnterPlayer)Last updated