
KeylessUniversal

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)")



Bro comment 😭😭😭
Yooo
Sigma boy
Sorry Jacky, I got logged out of my acc. Yes, it's meant for r15