package npm
npm i @rbxts/players-tracker
Tracker of player's character.
Handle getting humanoid / root_part / character / animator from one place
const player_tracker: PlayerTracker | undefined = PlayersTracker.GetTracker(player);
const player_tracker: Promise<PlayerTracker> = PlayersTracker.AwaitTracker(player);
/**@client*/
const local_player_tracker: PlayerTracker = PlayersTracker.GetLocalTracker()
/**
* if can_be_dead is false and the character is dead, will await respawn and will return the new Humanoid
* defaults to true
*
* [if the character is dead his parts still exist for some time til the character removal]
*/
const can_be_dead: boolean = true
const humanoid: Humanoid | undefined = player_tracker.GetHumanoid()
const humanoid: Promise<Humanoid> = player_tracker.AwaitHumanoid(can_be_dead)
const root_part: BasePart | undefined = player_tracker.GetRootPart()
const root_part: Promise<BasePart> = player_tracker.AwaitRootPart(can_be_dead)
const animator: Animator | undefined = player_tracker.GetAnimator()
const animator: Promise<Animator> = player_tracker.AwaitAnimator(can_be_dead)
const character: Model | undefined = player_tracker.GetCharacter()
const character: Promise<Model> = player_tracker.AwaitCharacter(can_be_dead)
const animation_track: AnimationTrack | undefined = player_tracker.TryLoadAnimation(animation, {
Priority: Enum.AnimationPriority.Action,
Looped: true
})
const animation_track: Promise<AnimationTrack> = player_tracker.AwaitAndLoadAnimation(animation, {
Looped: true
})
player_tracker.on_died.Connect(() => {})
player_tracker.on_spawned.Connect(() => {})
const is_dead = player_tracker.IsDead()