--[[ WARNING: Use at your own risk ]]-- local PRIVATE_MODEL_ID = 114114602780711 -- SERVICES local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") -- PLAYER local Player = Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local Humanoid = Character:WaitForChild("Humanoid") -- SPEED local WALK_SPEED = 12 local RUN_SPEED = 26 -- SMOOTH local SPEED_TRANSITION_TIME = 0.25 local MOVE_CONFIRM_DELAY = 0.12 local ANIM_COOLDOWN = 0.1 -- STATE local RunMode = false local UsingAbility = false local currentAnim local lastAnimTime = 0 local movingSince = 0 local speedTween -- LOAD Animator6D 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 -- LOAD MODEL local model = game:GetObjects("rbxassetid://" .. PRIVATE_MODEL_ID)[1] assert(model, "Falha ao carregar modelo") -- SCAN ANIMATIONS local Animations = {} local function scan(o) if o:IsA("KeyframeSequence") then table.insert(Animations, o) end for _, c in ipairs(o:GetChildren()) do scan(c) end end scan(model) -- ASSIGN ANIMATIONS BY EXACT NAME (case insensitive) local IdleKF, WalkKF, RunKF, JumpKF, SitKF IdleKF = Animations[1] WalkKF = Animations[1] RunKF = Animations[1] for _, a in ipairs(Animations) do local n = a.Name:lower() if n == "idle" then IdleKF = a elseif n == "walk" then WalkKF = a elseif n == "run" then RunKF = a elseif n:find("jump") then JumpKF = a elseif n:find("sit") then SitKF = a end end -- SPEED SMOOTH local function SmoothSpeed(target) if speedTween then speedTween:Cancel() end speedTween = TweenService:Create( Humanoid, TweenInfo.new(SPEED_TRANSITION_TIME, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {WalkSpeed = target} ) speedTween:Play() end local function ApplySpeed() SmoothSpeed(RunMode and RUN_SPEED or WALK_SPEED) end -- PLAY local function Play(kf, looped) if currentAnim == kf then return end if tick() - lastAnimTime < ANIM_COOLDOWN then return end lastAnimTime = tick() getgenv().Animator6DStop() task.wait(0.03) getgenv().Animator6D(kf, 1, looped ~= false) currentAnim = kf end -- RUN MODE local function SetRunMode(v) RunMode = v ApplySpeed() end -- SHIFT TOGGLE UserInputService.InputBegan:Connect(function(i, gp) if gp then return end if i.KeyCode == Enum.KeyCode.LeftShift or i.KeyCode == Enum.KeyCode.RightShift then SetRunMode(not RunMode) end end) -- INITIAL SPEED Humanoid.WalkSpeed = WALK_SPEED ------------------------------------------------ -- MOVEMENT SYSTEM ------------------------------------------------ RunService.RenderStepped:Connect(function() if UsingAbility then if Humanoid.MoveDirection.Magnitude > 0 then UsingAbility = false else return end end local moving = Humanoid.MoveDirection.Magnitude > 0 if Humanoid.Sit and SitKF then Play(SitKF, true) return end if Humanoid.FloorMaterial == Enum.Material.Air and JumpKF then Play(JumpKF, false) return end if moving then if movingSince == 0 then movingSince = tick() end if tick() - movingSince >= MOVE_CONFIRM_DELAY then if RunMode and RunKF then Play(RunKF, true) else Play(WalkKF, true) end end else movingSince = 0 Play(IdleKF, true) end end) -- RESPAWN Player.CharacterAdded:Connect(function(c) Character = c Humanoid = c:WaitForChild("Humanoid") Humanoid.WalkSpeed = WALK_SPEED end)