
KeylessUniversal

local PRIVATE_MODEL_ID = 74987847468722 -- CHANGE THIS TO YOUR PRIVATE/Public MODEL ID
game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Eunoia is here to help ur day",
Text = "It detects if the model has a run/walk/idle/jump/crouch/slide anim",
Duration = 10
})
-- Load Animator6D Pro
if not getgenv().Animator6DLoadedPro then
loadstring(game:HttpGet("https://raw.githubusercontent.com/gObl00x/Stuff/refs/heads/main/Animator6D.lua"))()
repeat task.wait() until getgenv().Animator6DLoadedPro
end
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local RunService = game:GetService("RunService")
-- Load private model
local success, model = pcall(function()
return game:GetObjects("rbxassetid://" .. PRIVATE_MODEL_ID)[1]
end)
if not success or not model then error("Failed to load private model: "..PRIVATE_MODEL_ID) end
-- Scan all KeyframeSequences
local AllKFSeq = {}
local function scan(obj, path)
if obj:IsA("KeyframeSequence") then
table.insert(AllKFSeq, {Name = obj.Name, KFSeq = obj})
print("Found:", obj.Name)
end
for _, child in pairs(obj:GetChildren()) do
scan(child, path .. child.Name .. ".")
end
end
scan(model, "")
if #AllKFSeq == 0 then error("No animations!") end
-- Auto assign
local IdleKF = AllKFSeq[1].KFSeq
local WalkKF = AllKFSeq[1].KFSeq
local JumpKF = AllKFSeq[1].KFSeq
local SitKF = AllKFSeq[1].KFSeq
local RunKF = nil
local CrouchKF = nil
for _, anim in ipairs(AllKFSeq) do
local n = anim.Name:lower()
if n:find("run") or n:find("sprint") then RunKF = anim.KFSeq
elseif n:find("crouch") or n:find("slide") then CrouchKF = anim.KFSeq
elseif n:find("walk") and WalkKF == AllKFSeq[1].KFSeq then WalkKF = anim.KFSeq
elseif n:find("jump") then JumpKF = anim.KFSeq
elseif n:find("idle") then IdleKF = anim.KFSeq
elseif n:find("sit") then SitKF = anim.KFSeq
end
end
-- States
local RunMode = false
local CrouchMode = false
local currentAnim = nil
-- Play function (with forced stop + instant switch)
local function Play(kfseq, looped)
if currentAnim == kfseq then return end
getgenv().Animator6DStop()
task.wait(0.03) -- tiny delay to prevent overlap
getgenv().Animator6D(kfseq, 1, looped ~= false)
currentAnim = kfseq
end
-- GUI Frame (draggable)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = Player:WaitForChild("PlayerGui")
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 180, 0, 190)
Frame.Position = UDim2.new(0, 20, 0.5, -95)
Frame.BackgroundTransparency = 0.3
Frame.BackgroundColor3 = Color3.fromRGB(20,20,20)
Frame.Parent = ScreenGui
-- Draggable
local dragging
Frame.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true; i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then dragging = false end end) end end)
RunService.RenderStepped:Connect(function()
if dragging and UserInputService:GetMouseLocation() then
local delta = UserInputService:GetMouseLocation() - Frame.AbsolutePosition
Frame.Position = UDim2.new(0, Frame.Position.X.Offset + delta.X, 0, Frame.Position.Y.Offset + delta.Y)
end
end)
-- Crouch/Slide Button (Top)
local CrouchButton = nil
if CrouchKF then
CrouchButton = Instance.new("TextButton")
CrouchButton.Size = UDim2.new(1,0,0,50)
CrouchButton.Position = UDim2.new(0,0,0,0)
CrouchButton.BackgroundColor3 = Color3.fromRGB(255,100,100)
CrouchButton.TextColor3 = Color3.new(1,1,1)
CrouchButton.Font = Enum.Font.GothamBold
CrouchButton.TextSize = 18
CrouchButton.Text = "SLIDE/CROUCH: OFF"
CrouchButton.Parent = Frame
CrouchButton.MouseButton1Click:Connect(function()
CrouchMode = not CrouchMode
CrouchButton.Text = "SLIDE/CROUCH: " .. (CrouchMode and "ON" or "OFF")
CrouchButton.BackgroundColor3 = CrouchMode and Color3.fromRGB(0,255,0) or Color3.fromRGB(255,100,100)
end)
end
-- Run Button (Middle)
local RunButton = Instance.new("TextButton")
RunButton.Size = UDim2.new(1,0,0,60)
RunButton.Position = CrouchKF and UDim2.new(0,0,0,60) or UDim2.new(0,0,0,0)
RunButton.BackgroundColor3 = Color3.fromRGB(0,170,255)
RunButton.TextColor3 = Color3.new(1,1,1)
RunButton.Font = Enum.Font.GothamBold
RunButton.TextSize = 22
RunButton.Text = "RUN MODE: OFF"
RunButton.Parent = Frame
RunButton.MouseButton1Click:Connect(function()
RunMode = not RunMode
RunButton.Text = "RUN MODE: " .. (RunMode and "ON" or "OFF")
RunButton.BackgroundColor3 = RunMode and Color3.fromRGB(0,255,0) or Color3.fromRGB(0,170,255)
end)
-- PERFECT IDLE FIX: Animation logic
RunService.RenderStepped:Connect(function()
if not Character or not Character:FindFirstChild("Humanoid") then return end
local hum = Humanoid
local moving = hum.MoveDirection.Magnitude > 0
local inAir = hum.FloorMaterial == Enum.Material.Air
local sitting = hum.Sit
-- Priority order (highest first)
if sitting then
Play(SitKF, true)
elseif inAir then
Play(JumpKF, false)
elseif CrouchMode and CrouchKF then
Play(CrouchKF, true)
elseif RunMode and RunKF then
Play(RunKF, true)
elseif moving then
Play(WalkKF, true)
else
-- YOU ARE STANDING STILL → FORCE IDLE (FIXED!)
Play(IdleKF, true)
end
end)
-- Respawn
Player.CharacterAdded:Connect(function(char)
Character = char
Humanoid = char:WaitForChild("Humanoid")
end)
game:GetService("StarterGui"):SetCore("SendNotification",{
Title = "Anim Player by CrypticCoderX",
Text = "This script detects If the model has a run or crouch or slide/walk/idle/jump anim",
Duration = 12
})
print("IMAO")



So yeah it's just like g0bloox anim loader that loads anim but different scripts R6/R15 client sided Yes I know I love client sided scripts
I already have the model I'd placed so u will get evade animations or u can put ur public/other people animation model id