Cracked Bunny Aimlock Script
Key RequiredUniversal

Cracked Bunny Aimlock Script

Universal Scriptglyphajglyphaj 1.7K views 798 executesUpdated Feb 11, 2026
Unrated
00
Lua Script•973 lines (35921 chars)
-- [
-- bunny hook script source
-- ] 
-- game.Players.LocalPlayer.Character.Humanoid.Health = 0 -- dont uncomment me 

local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Stats = game:GetService("Stats")
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local Camera = Workspace.CurrentCamera

-- ==================== COLOR PALETTE (PINK PASTEL) ====================
local Colors = {
    Background = Color3.fromRGB(255, 250, 252), -- Soft pink white
    Primary = Color3.fromRGB(255, 182, 193), -- Light pink
    Secondary = Color3.fromRGB(255, 218, 224), -- Lighter pink
    Accent = Color3.fromRGB(255, 105, 180), -- Hot pink
    White = Color3.fromRGB(255, 255, 255),
    Text = Color3.fromRGB(80, 60, 70),
    TextLight = Color3.fromRGB(150, 120, 140),
    Border = Color3.fromRGB(255, 220, 230),
    Toggle_On = Color3.fromRGB(255, 182, 193),
    Toggle_Off = Color3.fromRGB(220, 200, 210)
}

-- ==================== CONFIG ====================
local Config = {
    Aimlock = {
        Enabled = false,
        Keybind = Enum.KeyCode.Q,
        Smooth = 1,
        FOV = 200,
        Prediction = 0
    },
    AutoShoot = false,
    SilentAim = {
        Enabled = false,
        Supported = true,
        Prediction = 0
    },
    AutoPrediction = false,
    Walkspeed = {
        Enabled = false,
        Speed = 50,
        Keybind = Enum.KeyCode.T
    },
    Noclip = {
        Enabled = false,
        Keybind = Enum.KeyCode.N
    },
    OutlineTarget = false
}

-- ==================== STATE ====================
local CurrentTarget = nil
local CurrentOutline = nil
local LastHealth = {}
local Connections = {}
local silentTarget = nil

-- ==================== UTILITY FUNCTIONS ====================
local function IsMobile()
    return UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
end

local function isAlive(plr)
    if not plr or not plr.Character then return false end
    local hum = plr.Character:FindFirstChildOfClass("Humanoid")
    if not hum or hum.Health <= 0 then return false end
    local be = plr.Character:FindFirstChild("BodyEffects")
    if be then
        local ko = be:FindFirstChild("K.O")
        local grabbed = be:FindFirstChild("GRABBING_CONSTRAINT")
        if (ko and ko.Value) or (grabbed and grabbed.Value) then
            return false
        end
    end
    return true
end

local function isVisible(pos, player)
    local params = RaycastParams.new()
    params.FilterDescendantsInstances = {LocalPlayer.Character, Camera}
    params.FilterType = Enum.RaycastFilterType.Exclude
    params.IgnoreWater = true
    local direction = pos - Camera.CFrame.Position
    local distance = direction.Magnitude
    local result = Workspace:Raycast(Camera.CFrame.Position, direction.Unit * distance, params)
    if not result or result.Instance:IsDescendantOf(player.Character) then
        return true
    end
    return false
end

local function GetClosestPlayerToCursor()
    local closestPlayer = nil
    local shortestDistance = Config.Aimlock.FOV
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and isAlive(player) and player.Character then
            local character = player.Character
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            if rootPart then
                local screenPos, onScreen = Camera:WorldToViewportPoint(rootPart.Position)
                if onScreen and isVisible(rootPart.Position, player) then
                    local mousePos = IsMobile() and Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) or Vector2.new(Mouse.X, Mouse.Y)
                    local distance = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
                    if distance < shortestDistance then
                        shortestDistance = distance
                        closestPlayer = player
                    end
                end
            end
        end
    end
    return closestPlayer
end

local function GetPartToAim(target)
    if not target or not target.Character then return nil end
    local character = target.Character
    return character:FindFirstChild("Head") or character:FindFirstChild("HumanoidRootPart")
end

-- ==================== NOTIFICATION SYSTEM ====================
local function Notify(message, duration, color)
    duration = duration or 3
    color = color or Colors.Primary
    local notifGui = Instance.new("ScreenGui")
    notifGui.Name = "bunnyNotif"
    notifGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    notifGui.Parent = game:GetService("CoreGui")
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(0, 320, 0, 70)
    frame.Position = UDim2.new(1, 10, 0.9, 0)
    frame.AnchorPoint = Vector2.new(0, 0.5)
    frame.BackgroundColor3 = Colors.White
    frame.BorderSizePixel = 0
    frame.Parent = notifGui
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 14)
    corner.Parent = frame
    local stroke = Instance.new("UIStroke")
    stroke.Color = color
    stroke.Thickness = 2.5
    stroke.Parent = frame
    local icon = Instance.new("TextLabel")
    icon.Size = UDim2.new(0, 50, 0, 50)
    icon.Position = UDim2.new(0, 10, 0.5, -25)
    icon.BackgroundTransparency = 1
    icon.Text = "🐰"
    icon.Font = Enum.Font.GothamBold
    icon.TextSize = 32
    icon.Parent = frame
    local text = Instance.new("TextLabel")
    text.Size = UDim2.new(1, -75, 1, 0)
    text.Position = UDim2.new(0, 65, 0, 0)
    text.BackgroundTransparency = 1
    text.Text = message
    text.Font = Enum.Font.GothamMedium
    text.TextSize = 14
    text.TextColor3 = Colors.Text
    text.TextXAlignment = Enum.TextXAlignment.Left
    text.TextWrapped = true
    text.Parent = frame
    TweenService:Create(frame, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        Position = UDim2.new(1, -330, 0.9, 0)
    }):Play()
    wait(duration)
    TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
        Position = UDim2.new(1, 10, 0.9, 0)
    }):Play()
    wait(0.3)
    notifGui:Destroy()
end

-- ==================== TARGET MESSAGES ====================
local TargetLeftMessages = {
    "🚪 Detected enemy rage quit!",
    "👋 Target said 'Alt+F4 time!'",
    "💨 Enemy vanished into thin air!",
    "🏃 Target escaped like a coward!",
    "😂 They couldn't handle the heat!",
    "🎪 Target left the circus!",
    "🌙 Enemy went to touch grass!",
    "⚡ Target teleported to another dimension!"
}

local TargetDiedMessages = {
    "💀 Target eliminated successfully!",
    "✨ Enemy sent to respawn!",
    "🎯 Perfect shot! Target down!",
    "👑 You're too good for them!",
    "🔥 Target got destroyed!",
    "⚰️ Another one bites the dust!",
    "🎊 Victory royale! Enemy eliminated!",
    "💫 Target couldn't compete!"
}

local function GetRandomMessage(messages)
    return messages[math.random(1, #messages)]
end

-- ==================== OUTLINE SYSTEM ====================
local function CreateOutline(character)
    if CurrentOutline then
        CurrentOutline:Destroy()
        CurrentOutline = nil
    end
    if not Config.OutlineTarget then return end
    local highlight = Instance.new("Highlight")
    highlight.Name = "bunnyOutline"
    highlight.Adornee = character
    highlight.FillColor = Colors.Accent
    highlight.FillTransparency = 1
    highlight.OutlineColor = Colors.Primary
    highlight.OutlineTransparency = 0
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Parent = character
    CurrentOutline = highlight
    return highlight
end

local function UpdateOutlineColor(color, duration)
    if CurrentOutline then
        TweenService:Create(CurrentOutline, TweenInfo.new(duration or 0.1), {
            OutlineColor = color
        }):Play()
    end
end

-- ==================== TARGET MANAGEMENT ====================
local function SetTarget(player)
    -- Clear old target
    if CurrentTarget then
        if CurrentOutline then
            CurrentOutline:Destroy()
            CurrentOutline = nil
        end
    end
    CurrentTarget = player
    if player and player.Character then
        CreateOutline(player.Character)
        Notify("Target locked: " .. player.DisplayName, 2, Colors.Primary)
        -- Track health changes
        local humanoid = player.Character:FindFirstChild("Humanoid")
        if humanoid then
            LastHealth[player] = humanoid.Health
            -- Monitor health
            table.insert(Connections, humanoid.HealthChanged:Connect(function(health)
                if LastHealth[player] and health < LastHealth[player] then
                    -- Target took damage
                    UpdateOutlineColor(Color3.fromRGB(255, 50, 50), 0.1)
                    wait(1)
                    if CurrentTarget == player then
                        UpdateOutlineColor(Colors.Primary, 0.5)
                    end
                end
                LastHealth[player] = health
            end))
            -- Monitor death
            table.insert(Connections, humanoid.Died:Connect(function()
                if CurrentTarget == player then
                    Notify(GetRandomMessage(TargetDiedMessages), 3, Color3.fromRGB(100, 255, 100))
                end
            end))
        end
        -- Monitor character removal (left/reset)
        table.insert(Connections, player.CharacterRemoving:Connect(function()
            if CurrentTarget == player then
                Notify(GetRandomMessage(TargetLeftMessages), 3, Color3.fromRGB(255, 200, 100))
                SetTarget(nil)
            end
        end))
    else
        Notify("🔓 Target unlocked", 1.5, Colors.TextLight)
    end
end

-- ==================== AIMLOCK ====================
local AimlockConnection = nil
local function StartAimlock()
    if AimlockConnection then AimlockConnection:Disconnect() end
    AimlockConnection = RunService.RenderStepped:Connect(function()
        if not Config.Aimlock.Enabled or not CurrentTarget then return end
        if not isAlive(CurrentTarget) then return end
        local targetPart = GetPartToAim(CurrentTarget)
        if not targetPart then return end
        local root = CurrentTarget.Character:FindFirstChild("HumanoidRootPart")
        if not root then return end
        local pred = Config.Aimlock.Prediction
        local targetPos = targetPart.Position + root.Velocity * pred
        if not isVisible(targetPos, CurrentTarget) then return end
        local currentCFrame = Camera.CFrame
        local targetCFrame = CFrame.new(Camera.CFrame.Position, targetPos)
        -- Smooth aimlock
        local smooth = Config.Aimlock.Smooth
        Camera.CFrame = currentCFrame:Lerp(targetCFrame, smooth)
    end)
end

-- ==================== AUTO SHOOT ====================
local function AutoShoot()
    local shootTarget = nil
    if Config.Aimlock.Enabled and CurrentTarget then
        shootTarget = CurrentTarget
    elseif Config.SilentAim.Enabled and silentTarget then
        shootTarget = silentTarget
    end
    if not Config.AutoShoot or not shootTarget then return end
    if not isAlive(shootTarget) then return end
    local targetPart = GetPartToAim(shootTarget)
    if not targetPart then return end
    local root = shootTarget.Character:FindFirstChild("HumanoidRootPart")
    if not root then return end
    local pred = Config.SilentAim.Prediction  -- Use silent pred for consistency
    local targetPos = targetPart.Position + root.Velocity * pred
    if not isVisible(targetPos, shootTarget) then return end
    local character = LocalPlayer.Character
    if not character then return end
    local tool = character:FindFirstChildOfClass("Tool")
    if not tool then return end
    -- Check if tool has Ammo
    local ammo = tool:FindFirstChild("Ammo")
    if ammo and ammo:IsA("IntValue") and ammo.Value > 0 then
        -- Activate tool
        tool:Activate()
    else
        -- Click mouse
        mouse1press()
        wait()
        mouse1release()
    end
end
table.insert(Connections, RunService.Heartbeat:Connect(AutoShoot))

-- ==================== SILENT AIM ====================
local SilentAimSupported = pcall(function()
    local mt = getrawmetatable(game)
    setreadonly(mt, false)
    local oldIndex = mt.__index
    mt.__index = newcclosure(function(self, idx)
        if Config.SilentAim.Enabled and self == Mouse and (idx == "Hit" or idx == "Target") then
            local target = silentTarget
            if not target or not target.Character then
                return oldIndex(self, idx)
            end
            local char = target.Character
            local root = char:FindFirstChild("HumanoidRootPart")
            local partName = "Head"
            local part = char:FindFirstChild(partName)
            if not root or not part or not isAlive(target) then
                return oldIndex(self, idx)
            end
            local pred = Config.SilentAim.Prediction
            local predicted = part.Position + root.Velocity * pred
            if not isVisible(predicted, target) then
                return oldIndex(self, idx)
            end
            if idx == "Hit" then
                return CFrame.new(predicted)
            elseif idx == "Target" then
                return part
            end
        end
        return oldIndex(self, idx)
    end)
    setreadonly(mt, true)
end)

if not SilentAimSupported then
    Config.SilentAim.Supported = false
end

table.insert(Connections, RunService.RenderStepped:Connect(function()
    if Config.SilentAim.Enabled then
        silentTarget = GetClosestPlayerToCursor()
        if Config.OutlineTarget and silentTarget and silentTarget.Character and not CurrentTarget then
            CreateOutline(silentTarget.Character)
        elseif not silentTarget and CurrentOutline then
            CurrentOutline:Destroy()
            CurrentOutline = nil
        end
    else
        silentTarget = nil
        if CurrentOutline and not CurrentTarget then
            CurrentOutline:Destroy()
            CurrentOutline = nil
        end
    end
end))

-- ==================== AUTO PREDICTION ====================
local function getAutoPred()
    local ping = Stats.Network.ServerStatsItem["Data Ping"]:GetValue()
    local pred
    if ping < 20 then pred = 0.13
    elseif ping < 30 then pred = 0.135
    elseif ping < 40 then pred = 0.14
    elseif ping < 50 then pred = 0.145
    elseif ping < 60 then pred = 0.15
    elseif ping < 70 then pred = 0.155
    elseif ping < 80 then pred = 0.157
    elseif ping < 90 then pred = 0.16
    elseif ping < 100 then pred = 0.165
    else pred = 0.17
    end
    return pred
end

table.insert(Connections, RunService.Heartbeat:Connect(function()
    if Config.AutoPrediction then
        local pred = getAutoPred()
        Config.Aimlock.Prediction = pred
        Config.SilentAim.Prediction = pred
        updateSliderVisual(aimPredSlider, pred)
        updateSliderVisual(silentPredSlider, pred)
    end
end))

-- ==================== WALKSPEED ====================
local function UpdateWalkspeed()
    local character = LocalPlayer.Character
    if character then
        local humanoid = character:FindFirstChild("Humanoid")
        if humanoid then
            if Config.Walkspeed.Enabled then
                humanoid.WalkSpeed = Config.Walkspeed.Speed
            else
                humanoid.WalkSpeed = 16
            end
        end
    end
end
table.insert(Connections, RunService.Heartbeat:Connect(UpdateWalkspeed))

-- ==================== NOCLIP ====================
local function UpdateNoclip()
    local character = LocalPlayer.Character
    if character and Config.Noclip.Enabled then
        for _, part in pairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = false
            end
        end
    end
end
table.insert(Connections, RunService.Stepped:Connect(UpdateNoclip))

-- ==================== CREATE GUI ====================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "bunnyAimlock"
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = game:GetService("CoreGui")

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 340, 0, 50)
MainFrame.Position = UDim2.new(0.5, -170, 0, 20)
MainFrame.BackgroundColor3 = Colors.Background
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 14)
MainCorner.Parent = MainFrame

local MainBorder = Instance.new("UIStroke")
MainBorder.Color = Colors.Border
MainBorder.Thickness = 2
MainBorder.Transparency = 0.3
MainBorder.Parent = MainFrame

-- Topbar
local Topbar = Instance.new("Frame")
Topbar.Name = "Topbar"
Topbar.Size = UDim2.new(1, 0, 0, 50)
Topbar.BackgroundColor3 = Colors.White
Topbar.BorderSizePixel = 0
Topbar.Parent = MainFrame

local TopbarCorner = Instance.new("UICorner")
TopbarCorner.CornerRadius = UDim.new(0, 14)
TopbarCorner.Parent = Topbar

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -90, 1, 0)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "🐰 bunny Aimlock"
Title.Font = Enum.Font.GothamBold
Title.TextSize = 17
Title.TextColor3 = Colors.Primary
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Topbar

local ArrowButton = Instance.new("TextButton")
ArrowButton.Size = UDim2.new(0, 40, 0, 40)
ArrowButton.Position = UDim2.new(1, -45, 0.5, -20)
ArrowButton.BackgroundColor3 = Colors.Primary
ArrowButton.BorderSizePixel = 0
ArrowButton.Text = "▼"
ArrowButton.Font = Enum.Font.GothamBold
ArrowButton.TextSize = 18
ArrowButton.TextColor3 = Colors.White
ArrowButton.AutoButtonColor = false
ArrowButton.Parent = Topbar

local ArrowCorner = Instance.new("UICorner")
ArrowCorner.CornerRadius = UDim.new(0, 10)
ArrowCorner.Parent = ArrowButton

-- Content
local Content = Instance.new("Frame")
Content.Name = "Content"
Content.Size = UDim2.new(1, -20, 0, 0)
Content.Position = UDim2.new(0, 10, 0, 60)
Content.BackgroundTransparency = 1
Content.Parent = MainFrame

local ContentLayout = Instance.new("UIListLayout")
ContentLayout.Padding = UDim.new(0, 10)
ContentLayout.SortOrder = Enum.SortOrder.LayoutOrder
ContentLayout.Parent = Content

-- ==================== UI CREATION FUNCTIONS ====================
local function CreateToggle(name, text, default, callback)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 0, 35)
    frame.BackgroundColor3 = Colors.White
    frame.BorderSizePixel = 0
    frame.Parent = Content
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 8)
    corner.Parent = frame
    local stroke = Instance.new("UIStroke")
    stroke.Color = Colors.Border
    stroke.Thickness = 1
    stroke.Transparency = 0.5
    stroke.Parent = frame
    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, -60, 1, 0)
    label.Position = UDim2.new(0, 10, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = text
    label.Font = Enum.Font.Gotham
    label.TextSize = 13
    label.TextColor3 = Colors.Text
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Parent = frame
    local button = Instance.new("TextButton")
    button.Size = UDim2.new(0, 45, 0, 22)
    button.Position = UDim2.new(1, -52, 0.5, -11)
    button.BackgroundColor3 = default and Colors.Toggle_On or Colors.Toggle_Off
    button.BorderSizePixel = 0
    button.Text = ""
    button.AutoButtonColor = false
    button.Parent = frame
    local buttonCorner = Instance.new("UICorner")
    buttonCorner.CornerRadius = UDim.new(1, 0)
    buttonCorner.Parent = button
    local knob = Instance.new("Frame")
    knob.Size = UDim2.new(0, 18, 0, 18)
    knob.Position = default and UDim2.new(1, -20, 0.5, -9) or UDim2.new(0, 2, 0.5, -9)
    knob.BackgroundColor3 = Colors.White
    knob.BorderSizePixel = 0
    knob.Parent = button
    local knobCorner = Instance.new("UICorner")
    knobCorner.CornerRadius = UDim.new(1, 0)
    knobCorner.Parent = knob
    local enabled = default
    button.MouseButton1Click:Connect(function()
        enabled = not enabled
        TweenService:Create(button, TweenInfo.new(0.2), {
            BackgroundColor3 = enabled and Colors.Toggle_On or Colors.Toggle_Off
        }):Play()
        TweenService:Create(knob, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Position = enabled and UDim2.new(1, -20, 0.5, -9) or UDim2.new(0, 2, 0.5, -9)
        }):Play()
        if callback then callback(enabled) end
    end)
    return {Frame = frame}
end

local function CreateSlider(text, min, max, default, rounding, callback)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 0, 45)
    frame.BackgroundColor3 = Colors.White
    frame.BorderSizePixel = 0
    frame.Parent = Content
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 8)
    corner.Parent = frame
    local stroke = Instance.new("UIStroke")
    stroke.Color = Colors.Border
    stroke.Thickness = 1
    stroke.Transparency = 0.5
    stroke.Parent = frame
    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, -60, 0, 20)
    label.Position = UDim2.new(0, 10, 0, 5)
    label.BackgroundTransparency = 1
    label.Text = text
    label.Font = Enum.Font.Gotham
    label.TextSize = 12
    label.TextColor3 = Colors.Text
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Parent = frame
    local valueLabel = Instance.new("TextLabel")
    valueLabel.Size = UDim2.new(0, 50, 0, 20)
    valueLabel.Position = UDim2.new(1, -55, 0, 5)
    valueLabel.BackgroundTransparency = 1
    valueLabel.Text = tostring(default)
    valueLabel.Font = Enum.Font.GothamBold
    valueLabel.TextSize = 12
    valueLabel.TextColor3 = Colors.Accent
    valueLabel.TextXAlignment = Enum.TextXAlignment.Right
    valueLabel.Parent = frame
    local track = Instance.new("Frame")
    track.Size = UDim2.new(1, -20, 0, 4)
    track.Position = UDim2.new(0, 10, 1, -12)
    track.BackgroundColor3 = Colors.Border
    track.BorderSizePixel = 0
    track.Parent = frame
    local trackCorner = Instance.new("UICorner")
    trackCorner.CornerRadius = UDim.new(1, 0)
    trackCorner.Parent = track
    local fill = Instance.new("Frame")
    fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
    fill.BackgroundColor3 = Colors.Primary
    fill.BorderSizePixel = 0
    fill.Parent = track
    local fillCorner = Instance.new("UICorner")
    fillCorner.CornerRadius = UDim.new(1, 0)
    fillCorner.Parent = fill
    local knob = Instance.new("Frame")
    knob.Size = UDim2.new(0, 14, 0, 14)
    knob.Position = UDim2.new((default - min) / (max - min), -7, 0.5, -7)
    knob.BackgroundColor3 = Colors.Accent
    knob.BorderSizePixel = 0
    knob.Parent = track
    local knobCorner = Instance.new("UICorner")
    knobCorner.CornerRadius = UDim.new(1, 0)
    knobCorner.Parent = knob
    local knobStroke = Instance.new("UIStroke")
    knobStroke.Color = Colors.White
    knobStroke.Thickness = 2
    knobStroke.Parent = knob
    local dragging = false
    local value = default
    local function updateSlider(input)
        local trackSize = track.AbsoluteSize.X
        local mousePos = input.Position.X - track.AbsolutePosition.X
        local percent = math.clamp(mousePos / trackSize, 0, 1)
        value = min + (max - min) * percent
        if rounding then
            value = math.floor(value / rounding + 0.5) * rounding
        end
        valueLabel.Text = tostring(value)
        TweenService:Create(fill, TweenInfo.new(0.1), {
            Size = UDim2.new(percent, 0, 1, 0)
        }):Play()
        TweenService:Create(knob, TweenInfo.new(0.1), {
            Position = UDim2.new(percent, -7, 0.5, -7)
        }):Play()
        if callback then callback(value) end
    end
    track.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            updateSlider(input)
        end
    end)
    track.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = false
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
            updateSlider(input)
        end
    end)
    return {Frame = frame, ValueLabel = valueLabel, Fill = fill, Knob = knob, Min = min, Max = max}
end

function updateSliderVisual(slider, val)
    val = math.clamp(val, slider.Min, slider.Max)
    local percent = (val - slider.Min) / (slider.Max - slider.Min)
    slider.ValueLabel.Text = string.format("%.3f", val)
    slider.Fill.Size = UDim2.new(percent, 0, 1, 0)
    slider.Knob.Position = UDim2.new(percent, -7, 0.5, -7)
end

-- ==================== CREATE CONTROLS ====================
CreateToggle("AimlockToggle", "Aimlock(Q)", false, function(val)
    Config.Aimlock.Enabled = val
    if val then
        StartAimlock()
    else
        if AimlockConnection then
            AimlockConnection:Disconnect()
        end
        SetTarget(nil)
    end
end)

local aimSmoothSlider = CreateSlider("Aimlock Smooth (0 = instant)", 0, 1, 1, 0.01, function(val)
    Config.Aimlock.Smooth = val == 0 and 0.01 or val
end)

local aimPredSlider = CreateSlider("Aimlock Prediction", 0, 1, 0, 0.001, function(val)
    Config.Aimlock.Prediction = val
end)

CreateToggle("AutoShootToggle", "Auto Shoot ", false, function(val)
    Config.AutoShoot = val
end)

if Config.SilentAim.Supported then
    CreateToggle("SilentAimToggle", "Silent Aim", false, function(val)
        Config.SilentAim.Enabled = val
    end)
else
    local silentFrame = Instance.new("Frame")
    silentFrame.Size = UDim2.new(1, 0, 0, 35)
    silentFrame.BackgroundColor3 = Color3.fromRGB(255, 200, 200)
    silentFrame.BorderSizePixel = 0
    silentFrame.Parent = Content
    local silentCorner = Instance.new("UICorner")
    silentCorner.CornerRadius = UDim.new(0, 8)
    silentCorner.Parent = silentFrame
    local silentLabel = Instance.new("TextLabel")
    silentLabel.Size = UDim2.new(1, -20, 1, 0)
    silentLabel.Position = UDim2.new(0, 10, 0, 0)
    silentLabel.BackgroundTransparency = 1
    silentLabel.Text = "⚠️ Your executor doesn't support Silent Aim"
    silentLabel.Font = Enum.Font.GothamMedium
    silentLabel.TextSize = 11
    silentLabel.TextColor3 = Color3.fromRGB(180, 50, 50)
    silentLabel.TextXAlignment = Enum.TextXAlignment.Left
    silentLabel.TextWrapped = true
    silentLabel.Parent = silentFrame
end

local silentPredSlider = CreateSlider("Silent Aim Prediction", 0, 1, 0, 0.001, function(val)
    Config.SilentAim.Prediction = val
end)

CreateToggle("AutoPredictionToggle", "Auto Prediction", false, function(val)
    Config.AutoPrediction = val
end)

CreateToggle("OutlineToggle", "Outline Target", false, function(val)
    Config.OutlineTarget = val
    if not val and CurrentOutline then
        CurrentOutline:Destroy()
        CurrentOutline = nil
    elseif val and CurrentTarget and CurrentTarget.Character then
        CreateOutline(CurrentTarget.Character)
    elseif val and silentTarget and silentTarget.Character and Config.SilentAim.Enabled then
        CreateOutline(silentTarget.Character)
    end
end)

CreateToggle("WalkspeedToggle", "Walkspeed(T)", false, function(val)
    Config.Walkspeed.Enabled = val
end)

CreateSlider("Walkspeed Value", 1, 300, 50, 1, function(val)
    Config.Walkspeed.Speed = val
end)

CreateToggle("NoclipToggle", "Noclip(N)", false, function(val)
    Config.Noclip.Enabled = val
end)

-- ==================== MOBILE BUTTONS ====================
if IsMobile() then
    -- Aimlock Mobile Button
    local AimlockMobileBtn = Instance.new("TextButton")
    AimlockMobileBtn.Name = "AimlockMobile"
    AimlockMobileBtn.Size = UDim2.new(0, 60, 0, 60)
    AimlockMobileBtn.Position = UDim2.new(0, 20, 0.5, -30)
    AimlockMobileBtn.BackgroundColor3 = Colors.Primary
    AimlockMobileBtn.BorderSizePixel = 0
    AimlockMobileBtn.Text = "🎯"
    AimlockMobileBtn.Font = Enum.Font.GothamBold
    AimlockMobileBtn.TextSize = 28
    AimlockMobileBtn.TextColor3 = Colors.White
    AimlockMobileBtn.AutoButtonColor = false
    AimlockMobileBtn.Parent = ScreenGui
    local aimlockCorner = Instance.new("UICorner")
    aimlockCorner.CornerRadius = UDim.new(1, 0)
    aimlockCorner.Parent = AimlockMobileBtn
    local aimlockStroke = Instance.new("UIStroke")
    aimlockStroke.Color = Colors.Accent
    aimlockStroke.Thickness = 3
    aimlockStroke.Parent = AimlockMobileBtn
    AimlockMobileBtn.MouseButton1Click:Connect(function()
        if CurrentTarget then
            SetTarget(nil)
            AimlockMobileBtn.Text = "🎯"
        else
            local target = GetClosestPlayerToCursor()
            SetTarget(target)
            AimlockMobileBtn.Text = "🔓"
        end
    end)
    -- Dragging for mobile button
    local dragging = false
    local dragInput, dragStart, startPos
    AimlockMobileBtn.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = AimlockMobileBtn.Position
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)
    AimlockMobileBtn.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch then
            dragInput = input
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging and input == dragInput and input.UserInputType == Enum.UserInputType.Touch then
            local delta = input.Position - dragStart
            TweenService:Create(AimlockMobileBtn, TweenInfo.new(0.1), {
                Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
            }):Play()
        end
    end)
    -- Walkspeed Mobile Button
    local WalkspeedMobileBtn = Instance.new("TextButton")
    WalkspeedMobileBtn.Name = "WalkspeedMobile"
    WalkspeedMobileBtn.Size = UDim2.new(0, 60, 0, 60)
    WalkspeedMobileBtn.Position = UDim2.new(0, 20, 0.5, 50)
    WalkspeedMobileBtn.BackgroundColor3 = Colors.Primary
    WalkspeedMobileBtn.BorderSizePixel = 0
    WalkspeedMobileBtn.Text = "⚡"
    WalkspeedMobileBtn.Font = Enum.Font.GothamBold
    WalkspeedMobileBtn.TextSize = 28
    WalkspeedMobileBtn.TextColor3 = Colors.White
    WalkspeedMobileBtn.AutoButtonColor = false
    WalkspeedMobileBtn.Parent = ScreenGui
    local walkCorner = Instance.new("UICorner")
    walkCorner.CornerRadius = UDim.new(1, 0)
    walkCorner.Parent = WalkspeedMobileBtn
    local walkStroke = Instance.new("UIStroke")
    walkStroke.Color = Colors.Accent
    walkStroke.Thickness = 3
    walkStroke.Parent = WalkspeedMobileBtn
    WalkspeedMobileBtn.MouseButton1Click:Connect(function()
        Config.Walkspeed.Enabled = not Config.Walkspeed.Enabled
        WalkspeedMobileBtn.BackgroundColor3 = Config.Walkspeed.Enabled and Colors.Accent or Colors.Primary
    end)
    -- Dragging for walkspeed button
    local dragging2 = false
    local dragInput2, dragStart2, startPos2
    WalkspeedMobileBtn.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch then
            dragging2 = true
            dragStart2 = input.Position
            startPos2 = WalkspeedMobileBtn.Position
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging2 = false
                end
            end)
        end
    end)
    WalkspeedMobileBtn.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch then
            dragInput2 = input
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging2 and input == dragInput2 and input.UserInputType == Enum.UserInputType.Touch then
            local delta = input.Position - dragStart2
            TweenService:Create(WalkspeedMobileBtn, TweenInfo.new(0.1), {
                Position = UDim2.new(startPos2.X.Scale, startPos2.X.Offset + delta.X, startPos2.Y.Scale, startPos2.Y.Offset + delta.Y)
            }):Play()
        end
    end)
end

-- ==================== KEYBINDS ====================
UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    -- Aimlock Keybind
    if input.KeyCode == Config.Aimlock.Keybind then
        if CurrentTarget then
            SetTarget(nil)
        else
            local target = GetClosestPlayerToCursor()
            SetTarget(target)
        end
    end
    -- Walkspeed Keybind
    if input.KeyCode == Config.Walkspeed.Keybind then
        Config.Walkspeed.Enabled = not Config.Walkspeed.Enabled
    end
    -- Noclip Keybind
    if input.KeyCode == Config.Noclip.Keybind then
        Config.Noclip.Enabled = not Config.Noclip.Enabled
        Notify(Config.Noclip.Enabled and "👻 Noclip Enabled" or "👻 Noclip Disabled", 1.5)
    end
end)

-- ==================== EXPAND/COLLAPSE ====================
local IsExpanded = false
local ContentHeight = 0
local function UpdateLayout()
    ContentHeight = ContentLayout.AbsoluteContentSize.Y
end
ContentLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(UpdateLayout)
UpdateLayout()

ArrowButton.MouseButton1Click:Connect(function()
    IsExpanded = not IsExpanded
    local targetHeight = IsExpanded and (60 + ContentHeight + 20) or 50
    TweenService:Create(MainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
        Size = UDim2.new(0, 340, 0, targetHeight)
    }):Play()
    TweenService:Create(ArrowButton, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        Rotation = IsExpanded and 180 or 0
    }):Play()
    ArrowButton.Text = IsExpanded and "▲" or "▼"
end)

-- ==================== DRAGGING ====================
local dragging = false
local dragInput, dragStart, startPos
Topbar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)
Topbar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if dragging and input == dragInput then
        local delta = input.Position - dragStart
        TweenService:Create(MainFrame, TweenInfo.new(0.1), {
            Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        }):Play()
    end
end)

-- ==================== WELCOME MESSAGES ====================
wait(1)
Notify("script for cute people:3", 3, Colors.Accent)
Notify("Welcome " .. LocalPlayer.DisplayName .. " 💖", 2.5, Colors.Primary)

Features & Information

[Cracked, Universal] Bunny Hook Aimlock Script
#free#aimbot#esp#silent#crack

Community Comments (2)

glyphajglyphajFeb 11, 2026

Like and comment

Replying to @glyphaj
gulubobgulubobFeb 12, 2026

nahh i aint liking

More Scripts for Universal Scripts