Chill guy animation beta
Key RequiredUniversal

Chill guy animation beta

Universal Scriptgeolev3geolev3 12.9K views 85 executesUpdated Mar 29, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•298 lines (9425 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local character = player.Character
if not character then
    character = player.CharacterAdded:Wait()
end
local humanoid = character:WaitForChild("Humanoid", 5)
if not humanoid then
    warn("Failed to find Humanoid in character")
    return
end

local Enabled = false
local Anims = {}
local Connections = {}
local Dancing = false
local Running = false

local gui = Instance.new("ScreenGui")
gui.Name = "AnimationMenu_" .. tostring(tick())
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 250, 0, 300)
frame.Position = UDim2.new(0.5, -125, 0.5, -150)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.BorderSizePixel = 0
frame.Visible = true
frame.Parent = gui

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Text = "Animation Menu"
title.Font = Enum.Font.SourceSansBold
title.TextSize = 18
title.Parent = frame

local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 200, 0, 40)
toggleButton.Position = UDim2.new(0.5, -100, 0, 40)
toggleButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Text = "Enable Animations"
toggleButton.Font = Enum.Font.SourceSans
toggleButton.TextSize = 16
toggleButton.Parent = frame

local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 20, 0, 20)
closeButton.Position = UDim2.new(1, -25, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.Text = "X"
closeButton.Font = Enum.Font.SourceSans
closeButton.TextSize = 14
closeButton.Parent = frame

local infoLabel = Instance.new("TextLabel")
infoLabel.Size = UDim2.new(0, 230, 0, 180)
infoLabel.Position = UDim2.new(0.5, -115, 0, 90)
infoLabel.BackgroundTransparency = 1
infoLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
infoLabel.Text = "Controls:\nShift - Run\nQ/Y/E/R/T/etc - Dances\n\nFeatures:\n- Custom animations\n- Movement states\n- Toggle on/off"
infoLabel.Font = Enum.Font.SourceSans
infoLabel.TextSize = 14
infoLabel.TextWrapped = true
infoLabel.Parent = frame

local dragging, dragInput, dragStart, startPos
frame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = frame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)
frame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        local delta = input.Position - dragStart
        frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

local function PreloadAnimation(assetId)
    local success, result = pcall(function()
        local animation = Instance.new("Animation")
        animation.AnimationId = "rbxassetid://"..assetId
        local track = humanoid:LoadAnimation(animation)
        return track
    end)
    
    if not success then
        warn("Failed to load animation " .. assetId .. ": " .. result)
        return nil
    end
    
    local class = {}
    class.Track = result
    class.Speed = 1
    class.Stopped = true
    
    class.Play = function()
        if not Enabled then return end
        if not class.Track then return end
        class.Stopped = false
        class.Track:Play()
        class.Track:AdjustSpeed(class.Speed)
    end
    
    class.Stop = function()
        if not class.Track then return end
        class.Stopped = true
        class.Track:Stop()
    end
    
    return class
end

local function SetupAnimations()
    local animationIds = {
        Idle = 4211217646,
        Walk = 913376220,
        Run = 913376220,
        Jump = 507765000,
        Fall = 507767968
    }

    for key, id in pairs(animationIds) do
        local anim = PreloadAnimation(id)
        if anim then
            Anims[key] = anim
        else
            warn("Failed to preload animation for " .. key)
        end
    end

    local StopAll = function()
        for _, v in pairs(Anims) do
            if v and not v.Stopped then
                v:Stop()
            end
        end
    end

    Connections.Run = humanoid.Running:Connect(function(speed)
        if not Enabled then return end
        if speed > 6 and not Dancing and Anims.Walk and Anims.Walk.Stopped and not Running then
            StopAll()
            Anims.Walk:Play()
        elseif speed < 5 and not Dancing and Anims.Walk and not Anims.Walk.Stopped and not Running then
            StopAll()
            if Anims.Idle then Anims.Idle:Play() end
        end
    end)

    Connections.Jumping = humanoid.Jumping:Connect(function(active)
        if not Enabled then return end
        if active and not Dancing and Anims.Jump and Anims.Jump.Stopped then
            StopAll()
            Anims.Jump:Play()
        end
    end)

    Connections.FreeFalling = humanoid.FreeFalling:Connect(function(active)
        if not Enabled then return end
        if active and not Dancing and Anims.Jump and Anims.Jump.Stopped then
            StopAll()
            if Anims.Fall then Anims.Fall:Play() end
        end
    end)

    local mouse = player:GetMouse()
    Connections.ShiftDown = mouse.KeyDown:Connect(function(key)
        if not Enabled then return end
        if key:lower() == string.char(48) and Anims.Walk and not Anims.Walk.Stopped then
            StopAll()
            if Anims.Run then Anims.Run:Play() end
            Running = true
            humanoid.WalkSpeed = 26
        end
    end)

    Connections.ShiftUp = mouse.KeyUp:Connect(function(key)
        if not Enabled then return end
        if key:lower() == string.char(48) then
            Running = false
            humanoid.WalkSpeed = 16
        end
    end)

    local function Bind(id, key, speed)
        speed = speed or 1
        local animation = PreloadAnimation(id)
        if not animation then return end
        Anims[key] = animation
        Connections[key] = UserInputService.InputBegan:Connect(function(input)
            if not Enabled then return end
            if input.KeyCode == Enum.KeyCode[key] then
                if not Dancing then
                    Dancing = true
                    StopAll()
                    wait(0.1)
                    animation:Play()
                    animation.Speed = speed
                else
                    Dancing = false
                    StopAll()
                    wait(0.1)
                    if Anims.Idle then Anims.Idle:Play() end
                end
            end
        end)
    end

    local danceMoves = {
        {10507080897, "Q", 1}, {10731649737, "Y", 1}, {10724052169, "E", 1},
        {10722615238, "R", 1}, {5971749922, "T", 1}, {5349599731, "U", 2},
        {5641878449, "F", 1}, {5943669474, "O", 1}, {6024896974, "G", 1},
        {10881761394, "H", 1}, {1574383214, "J", 1}, {10881753261, "K", 1},
        {5349600811, "L", 1}, {10881645631, "Z", 1}, {10881661040, "X", 1},
        {10881685708, "C", 1}, {5943658900, "V", 1}, {10881733560, "B", 1},
        {10881694331, "N", 1}, {5927871610, "M", 1}
    }

    for _, move in pairs(danceMoves) do
        Bind(move[1], move[2], move[3])
    end
end

toggleButton.MouseButton1Click:Connect(function()
    Enabled = not Enabled
    toggleButton.Text = Enabled and "Disable Animations" or "Enable Animations"
    toggleButton.BackgroundColor3 = Enabled and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(100, 100, 100)
    
    if Enabled then
        humanoid.WalkSpeed = 16
        if Anims.Idle then Anims.Idle:Play() end
    else
        humanoid.WalkSpeed = 16
        for _, v in pairs(Anims) do
            if v then v:Stop() end
        end
    end
end)

UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.Insert then
        frame.Visible = not frame.Visible
    end
end)

closeButton.MouseButton1Click:Connect(function()
    frame.Visible = false
end)

local success, err = pcall(SetupAnimations)
if not success then
    warn("Failed to setup animations: " .. err)
end

player.CharacterAdded:Connect(function(newChar)
    character = newChar
    humanoid = character:WaitForChild("Humanoid", 5)
    if not humanoid then
        warn("Failed to find Humanoid in new character")
        return
    end
    for _, conn in pairs(Connections) do
        conn:Disconnect()
    end
    Connections = {}
    Anims = {}
    local success, err = pcall(SetupAnimations)
    if not success then
        warn("Failed to setup animations on character respawn: " .. err)
    end
    if Enabled and Anims.Idle then
        Anims.Idle:Play()
    end
end)
-- GystyFr made this
print("Animation Script Loaded! Menu should be visible (Press Insert to toggle if not)")

Features & Information

Small difference but I like it :)))))3)3)3)3(2)3 Plus its fe I checked DW its the idle anim too.

Community Comments (4)

geolev3geolev3Mar 29, 2025

Bro comment 😭😭😭

geolev3geolev3Mar 29, 2025

Yooo

Sigma boy

geolev3geolev3May 1, 2025

Sorry Jacky, I got logged out of my acc. Yes, it's meant for r15

More Scripts for Universal Scripts