local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local CoreGui = game:GetService("CoreGui") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local hrp = character:FindFirstChild("HumanoidRootPart") local screenGui = nil local abilityLabel = nil local catLogo = nil local allConnections = {} local walkSpeedState = 0 local isSuperVisionActive = false local superVisionEffect = nil local abilities = { {name = "VELOCIDAD GATUNA", key = "speed"}, {name = "SUPER VISTA GATUNA", key = "vision"} } local currentAbilityIndex = 1 local currentAbility = abilities[1] local clickTimer = nil local clickCount = 0 local DOUBLE_CLICK_TIME = 0.3 local ANIMATION_IDS = { Speed8 = 97847888500780, Speed16 = 106767496454996, Speed30 = 118320322718866, Speed48 = 82598234841035, Idle = 101845046666732, Jump = 10921242013, Fall = 10921241244, Climb = 10921241244, Swim = 119798419586960, SwimIdle = 119798419586960 } local function updateAnimateScript(animationId) local animate = character:FindFirstChild("Animate") if not animate then return end local idStr = "rbxassetid://" .. tostring(animationId) local runAnim = animate:FindFirstChild("run") if runAnim then local runTrack = runAnim:FindFirstChild("RunAnim") if runTrack then runTrack.AnimationId = idStr end end local walkAnim = animate:FindFirstChild("walk") if walkAnim then local walkTrack = walkAnim:FindFirstChild("WalkAnim") if walkTrack then walkTrack.AnimationId = idStr end end animate.Enabled = false task.wait(0.01) animate.Enabled = true for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do track:Stop(0) end end local function applySpeedState() local targetSpeed = 8 local targetAnim = ANIMATION_IDS.Speed8 if walkSpeedState == 0 then targetSpeed = 8 targetAnim = ANIMATION_IDS.Speed8 elseif walkSpeedState == 1 then targetSpeed = 16 targetAnim = ANIMATION_IDS.Speed16 elseif walkSpeedState == 2 then targetSpeed = 30 targetAnim = ANIMATION_IDS.Speed30 elseif walkSpeedState == 3 then targetSpeed = 48 targetAnim = ANIMATION_IDS.Speed48 end humanoid.WalkSpeed = targetSpeed updateAnimateScript(targetAnim) end local function createUI() if screenGui then screenGui:Destroy() end screenGui = Instance.new("ScreenGui") screenGui.Name = "CatAbilitiesUI" screenGui.ResetOnSpawn = false screenGui.Parent = CoreGui local container = Instance.new("Frame") container.Size = UDim2.new(0, 180, 0, 40) container.Position = UDim2.new(0, 5, 0, 5) container.BackgroundTransparency = 1 container.Parent = screenGui catLogo = Instance.new("ImageButton") catLogo.Image = "rbxassetid://8182010365" catLogo.Size = UDim2.new(0, 35, 0, 35) catLogo.BackgroundTransparency = 1 catLogo.Parent = container local textContainer = Instance.new("Frame") textContainer.Size = UDim2.new(0, 140, 0, 40) textContainer.Position = UDim2.new(0, 40, 0, 0) textContainer.BackgroundTransparency = 1 textContainer.Parent = container local titleLabel = Instance.new("TextLabel") titleLabel.Text = "FE MOD LULU" titleLabel.Size = UDim2.new(1, 0, 0, 18) titleLabel.BackgroundTransparency = 1 titleLabel.TextColor3 = Color3.fromRGB(255, 200, 0) titleLabel.TextSize = 12 titleLabel.Font = Enum.Font.GothamBold titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = textContainer abilityLabel = Instance.new("TextLabel") abilityLabel.Text = currentAbility.name abilityLabel.Size = UDim2.new(1, 0, 0, 18) abilityLabel.Position = UDim2.new(0, 0, 0, 20) abilityLabel.BackgroundTransparency = 1 abilityLabel.TextColor3 = Color3.fromRGB(255, 255, 255) abilityLabel.TextSize = 11 abilityLabel.Font = Enum.Font.Gotham abilityLabel.TextXAlignment = Enum.TextXAlignment.Left abilityLabel.Parent = textContainer catLogo.MouseButton1Down:Connect(function() clickCount = clickCount + 1 if clickCount == 1 then clickTimer = task.delay(DOUBLE_CLICK_TIME, function() if clickCount == 1 then if currentAbility.key == "speed" then walkSpeedState = walkSpeedState + 1 if walkSpeedState > 3 then walkSpeedState = 0 end applySpeedState() elseif currentAbility.key == "vision" then if isSuperVisionActive then if superVisionEffect then superVisionEffect:Destroy() end isSuperVisionActive = false else superVisionEffect = Instance.new("ColorCorrectionEffect") superVisionEffect.TintColor = Color3.fromRGB(0, 255, 0) superVisionEffect.Parent = Lighting isSuperVisionActive = true end end end clickCount = 0 end) elseif clickCount == 2 then if clickTimer then task.cancel(clickTimer) end currentAbilityIndex = currentAbilityIndex + 1 if currentAbilityIndex > #abilities then currentAbilityIndex = 1 end currentAbility = abilities[currentAbilityIndex] abilityLabel.Text = currentAbility.name clickCount = 0 end end) end local function setupAnimations() local animate = character:WaitForChild("Animate", 10) if not animate then return end local function set(folder, animName, id) local f = animate:FindFirstChild(folder) if f then local a = f:FindFirstChild(animName) if a then a.AnimationId = "rbxassetid://" .. tostring(id) end end end set("idle", "Animation1", ANIMATION_IDS.Idle) set("idle", "Animation2", ANIMATION_IDS.Idle) set("jump", "JumpAnim", ANIMATION_IDS.Jump) set("fall", "FallAnim", ANIMATION_IDS.Fall) set("climb", "ClimbAnim", ANIMATION_IDS.Climb) set("swim", "Swim", ANIMATION_IDS.Swim) set("swimidle", "SwimIdle", ANIMATION_IDS.SwimIdle) end local function cleanup() if screenGui then screenGui:Destroy() end if superVisionEffect then superVisionEffect:Destroy() end for _, conn in ipairs(allConnections) do if conn.Connected then conn:Disconnect() end end end player.CharacterAdded:Connect(function(newChar) cleanup() character = newChar humanoid = character:WaitForChild("Humanoid") createUI() setupAnimations() walkSpeedState = 0 applySpeedState() end) createUI() setupAnimations() walkSpeedState = 0 applySpeedState()