-- tall guy screptttt
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local function toggleDefaultAnimate(enabled)
local animate = character:FindFirstChild("Animate")
if animate then
animate.Disabled = not enabled
end
if not enabled then
for _, track in pairs(animator:GetPlayingAnimationTracks()) do
track:Stop(0.2)
end
end
end
local function ensureAnimationId(id)
local strId = tostring(id)
if #strId >= 15 then return "rbxassetid://" .. strId end
local success, assets = pcall(game.GetObjects, game, "rbxassetid://" .. strId)
if success then
for _, a in ipairs(assets) do
if a:IsA("Animation") then return a.AnimationId
elseif a:FindFirstChildWhichIsA("Animation", true) then
return a:FindFirstChildWhichIsA("Animation", true).AnimationId
end
end
end
return "rbxassetid://" .. strId
end
local animations = {
idle = 76622684003043,
walk = 71303649590318,
headless = 76746775961797,
lookAround = 79216795769647,
chilling = 98248319097752,
transform = 93875137466223
}
local keybinds = {
Headless = "q",
LookAround = "e",
ReEnableDefault = "r",
MonsterMode = "f"
}
local tracks = {}
for name, id in pairs(animations) do
local animId = ensureAnimationId(id)
if animId then
local a = Instance.new("Animation")
a.AnimationId = animId
tracks[name] = animator:LoadAnimation(a)
if name == "idle" or name == "walk" then
tracks[name].Priority = Enum.AnimationPriority.Movement
elseif name == "transform" then
tracks[name].Priority = Enum.AnimationPriority.Action
else
tracks[name].Priority = Enum.AnimationPriority.Action
end
end
end
local isMonster = false
local isEmoting = false
local currentActive = nil
local idleTime = 0
local defaultWalkSpeed = 16
RunService.RenderStepped:Connect(function(dt)
if not isMonster or isEmoting then
idleTime = 0
humanoid.WalkSpeed = defaultWalkSpeed
return
end
local speed = humanoid.MoveDirection.Magnitude
local target = "idle"
local isRunning = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift)
if speed > 0.1 then
target = "walk"
idleTime = 0
else
idleTime = idleTime + dt
if idleTime >= 5 then
target = "chilling"
else
target = "idle"
end
end
if currentActive ~= target then
if currentActive and tracks[currentActive] then tracks[currentActive]:Stop(0.5) end
if tracks[target] then
tracks[target].Looped = true
tracks[target]:Play(0.5)
currentActive = target
end
end
if currentActive == "walk" then
if isRunning then
tracks["walk"]:AdjustSpeed(1.5)
humanoid.WalkSpeed = defaultWalkSpeed * 1.5
else
tracks["walk"]:AdjustSpeed(1)
humanoid.WalkSpeed = defaultWalkSpeed
end
else
humanoid.WalkSpeed = defaultWalkSpeed
end
end)
local function playOneShot(name)
if not tracks[name] or isEmoting or not isMonster then return end
isEmoting = true
idleTime = 0
if currentActive and tracks[currentActive] then tracks[currentActive]:Stop(0.2) end
local t = tracks[name]
t.Looped = false
t:Play(0.2)
t.Stopped:Wait()
isEmoting = false
currentActive = nil
end
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
local k = input.KeyCode.Name:lower()
if k == keybinds.MonsterMode then
if not isMonster then
isEmoting = true
toggleDefaultAnimate(false)
local t = tracks["transform"]
if t then
t.Looped = false
t:Play(0.2)
local length = t.Length
if length == 0 then task.wait() length = t.Length end
task.wait(length / 2)
isMonster = true
isEmoting = false
t:Stop(0.5)
else
isMonster = true
isEmoting = false
end
currentActive = nil
else
isEmoting = true
if currentActive and tracks[currentActive] then tracks[currentActive]:Stop(0.3) end
local t = tracks["transform"]
if t then
t.Looped = false
t:Play(0.1)
local length = t.Length
if length == 0 then task.wait() length = t.Length end
t.TimePosition = length / 2
task.wait(length / 2)
t:Stop(0.5)
end
isMonster = false
isEmoting = false
currentActive = nil
toggleDefaultAnimate(true)
end
elseif k == keybinds.ReEnableDefault then
isMonster = false
idleTime = 0
if currentActive and tracks[currentActive] then tracks[currentActive]:Stop(0.3) end
currentActive = nil
toggleDefaultAnimate(true)
elseif k == keybinds.Headless and isMonster then
playOneShot("headless")
elseif k == keybinds.LookAround and isMonster then
playOneShot("lookAround")
end
end)
Comments
if u stand still for 5 seconds u start chilling btw