local p = game.Players.LocalPlayer local uis = game:GetService("UserInputService") local ids = { idle1 = "rbxassetid://15500461676", idle2 = "rbxassetid://15500462591", walk = "rbxassetid://15532927612", jump = "rbxassetid://125750702", fall = "rbxassetid://180436148", sit = "rbxassetid://178130996", talk = "rbxassetid://15515461377", spray = "rbxassetid://15500463617", flash = "rbxassetid://15515552528" } local function go(c) local h = c:WaitForChild("Humanoid") local a = c:FindFirstChild("Animate") if a then a:Destroy() end local an = h:FindFirstChildOfClass("Animator") if an then an:Destroy() end an = Instance.new("Animator", h) local function load(id) local a = Instance.new("Animation") a.AnimationId = id return an:LoadAnimation(a) end local idle1 = load(ids.idle1) local idle2 = load(ids.idle2) local walk = load(ids.walk) local jump = load(ids.jump) local fall = load(ids.fall) local sit = load(ids.sit) local talk = load(ids.talk) local spray = load(ids.spray) local flash = load(ids.flash) local cur local doingAction = false local idleFlip = false local snd = Instance.new("Sound") snd.SoundId = "rbxassetid://80416058717151" snd.Volume = 2 snd.Parent = c:WaitForChild("HumanoidRootPart") local function stopAll() if cur then cur:Stop() end snd:Stop() doingAction = false end local function play(track, looped) stopAll() cur = track cur.Looped = looped or false cur:Play() end local function playAction(track, withSound) stopAll() doingAction = true cur = track cur.Looped = false cur:Play() if withSound and cur == track then snd:Play() end cur.Stopped:Connect( function() if cur == track then doingAction = false end end ) end h.Running:Connect( function(speed) if doingAction and speed > 1 then stopAll() end if doingAction then return end if speed > 1 then play(walk, true) else idleFlip = not idleFlip play(idleFlip and idle1 or idle2, true) end end ) h.Jumping:Connect( function() if doingAction then stopAll() return end play(jump, false) end ) h.FreeFalling:Connect( function() if doingAction then return end play(fall, true) end ) h.Seated:Connect( function() if doingAction then return end play(sit, true) end ) local g = Instance.new("ScreenGui", p:WaitForChild("PlayerGui")) local function makeBtn(txt, x) local b = Instance.new("TextButton") b.Size = UDim2.new(0, 140, 0, 45) b.Position = UDim2.new(0, x, 0.75, 0) b.Text = txt b.BackgroundColor3 = Color3.fromRGB(40, 40, 40) b.TextColor3 = Color3.new(1, 1, 1) b.Parent = g local d = false local di local ds local sp b.InputBegan:Connect( function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then d = true ds = i.Position sp = b.Position i.Changed:Connect( function() if i.UserInputState == Enum.UserInputState.End then d = false end end ) end end ) b.InputChanged:Connect( function(i) if i.UserInputType == Enum.UserInputType.MouseMovement then di = i end end ) uis.InputChanged:Connect( function(i) if i == di and d then local delta = i.Position - ds b.Position = UDim2.new(sp.X.Scale, sp.X.Offset + delta.X, sp.Y.Scale, sp.Y.Offset + delta.Y) end end ) return b end local bTalk = makeBtn("Talk", 20) local bSpray = makeBtn("Spray", 180) local bFlash = makeBtn("Flash", 340) bTalk.MouseButton1Click:Connect( function() playAction(talk, true) end ) bSpray.MouseButton1Click:Connect( function() playAction(spray, false) end ) bFlash.MouseButton1Click:Connect( function() playAction(flash, false) end ) end if p.Character then go(p.Character) end p.CharacterAdded:Connect(go)