Run it
Copy the script and paste it into your executor.
Players = :()
ReplicatedStorage = :()
UserInputService = :()
player = Players.LocalPlayer
animIds = {
disappointed = ,
talking = ,
confused = ,
thinking = ,
confused2 = ,
pointing = ,
wave = ,
rareWave = ,
typingAnims = {
, , ,
, ,
}
}
activeTrack =
()
activeTrack activeTrack.IsPlaying
activeTrack:()
(char, animId, duration, looped)
()
humanoid = char:()
humanoid
animator = humanoid:() .()
animator.Parent = humanoid
animation = .()
animation.AnimationId = .. animId
track = animator:(animation)
track.Priority = .AnimationPriority.Action4
track.Looped = looped
track:()
looped
track:()
activeTrack = track
duration
.(duration, ()
track track.IsPlaying track:()
)
humanoid.Running:((speed)
speed > ()
)
UserInputService.TextBoxFocused:(()
player.Character
randomAnim = animIds.typingAnims[.(, #animIds.typingAnims)]
(player.Character, randomAnim, , )
)
UserInputService.TextBoxFocusReleased:(()
()
)
player.Chatted:((message)
player.Character
message:()
()
lower = message:()
(lower:() lower:() lower:()) (message:() message:())
(player.Character, animIds.rareWave, )
lower:()
(player.Character, animIds.disappointed, )
lower:() lower:()
(player.Character, animIds.confused2, )
lower:()
(player.Character, animIds.confused, )
lower:() lower:()
(player.Character, animIds.thinking, )
lower:() lower:() lower:() lower:()
(player.Character, animIds.pointing, )
lower:() lower:() lower:() lower:() lower:() lower:()
(player.Character, animIds.wave, )
#message >
(player.Character, animIds.talking, )
)This is specifically for R15, but you can change the animations onto the different emotes, as it is open source. Once you start typing, you'll play one of the 5 thinking animations as you type. Some specific words or message would trigger a special animations, like if you say Hi, You'll automatically play the wave animation, there's more of that for you to discover down this script.

Universal