Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do you get the player from the character model?

Asked by
sydre2 25
5 years ago

If you have the character model of a player then what is the best way to get the player? I know that you can say:

game.Players:FindFirstChild(character_model.Name)

but is there another better way to do this in?

2 answers

Log in to vote
0
Answered by 5 years ago

There's an actual function for this, :GetPlayerFromCharacter(character). The parameter is the character instance you want to use to get to the character.

For example, a touched part:

local plrs = game.Players

script.Parent.Touched:Connect(function(hit)
    local plr = plrs:GetPlayerFromCharacter(hit.Parent)
    if plr then 
        print("Player"..plr.Name)
    elseif not plr then
        print("Player not found. Hit is something else.")
    end

end)
Ad
Log in to vote
0
Answered by 5 years ago
Edited 5 years ago

If it is a tool you can get the character like this:

tool = script.Parent -- if the script is inside the tool
local character = tool.Parent -- if the tool is equipped, it will be in the character

local player = game.Players:GetPlayerFromCharacter(character) -- A pre-build function made by Roblox to get the player from the character (local character).

If you want to get the player from a part:

local part = script.Parent --Script's parent is a part if the script is inside that part
local plr = game.Players -- Players service

part.Touched:Connect(function(touch) -- function to check is something touched the part
    local character = touch.Parent --The object that touched the part
    local player = plr:GetPlayerFromCharacter(character)
    --your code if you need it
end)

I hope that this answer has been useful and that i helped you solving your problem. For further informations, use this link:

Here

Answer this question