I need to know how to get who the player is (like the one in Players) from the character model in Workspace and vice versa. Is there a way to do this via script?
How to get Player from Character:
player = game.Players:GetPlayerFromCharacter(game.Workspace.hawkspeed)
How to get Character from Player
character = game.Players.hawkspeed.Character --Character is a child of Player
There are some good ways to do this.
Let's start with getting the Character from the Player.
Player.Character
That was easy! There's a property of the Player
object called "Character
". This property is, you guessed it, the player's current Character. This will be nil if at that moment the player doesn't have a character (they haven't yet spawned/loaded the game.
Getting the player from the character is ever-so-slightly more challenging, but still possible.
How I normally do it is I search through all of the players in the Players service until one of their Character
properties matches the character I'm looking for.
function FindPlayerFromCharacter(Character) for i,v in pairs(game.Players:GetPlayers()) do -- For every player do... if v.Character == Character then -- If their character is the provided character then.. return v -- Return that player end end return nil -- No player found with that character, return "nothing" end
Edit: I totally forgot about the GetPlayerFromCharacter method of the Players service! I'd suggest using that over the function provided above.
game.Players:getPlayerFromCharacter(character) game.Players["PLAYERNAME"].Character