Skip to content
RoRoScripts
Simple Slop Script preview
Unknown

Simple Slop Script

Script
dogsJustAdude
Views
3.5K
Likes
2
Dislikes
1
Added
Script
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local CollectionService = game:GetService("CollectionService")
local Camera = workspace.CurrentCamera


local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()


local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
local isTouchDevice = UserInputService.TouchEnabled


-- Net
local NetModule = ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Net")
local Net = require(NetModule)
local SkillCheckRemote = Net:Event("SkillCheck")


-- FOV Module
local Fov = require(ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Fov"))


----------------------------------------------------
-- STATE
----------------------------------------------------
local InfiniteStaminaEnabled = false
local EspEnabled = false
local CameraEffectsEnabled = false
local NoSpreadEnabled = false
local AntiRagdollEnabled = false
local AutoSkillCheckEnabled = false
local AutoHopiumEnabled = false
local ChainFlingEnabled = false
local BonbonEspEnabled = false
local BigHitboxEnabled = false
local DogAimbotEnabled = false
local AimbotHolding = false
local RapidFireEnabled = false
local BonbonMagnetEnabled = false
local FullbrightEnabled = false
local NoFogEnabled = false
local NoShadowsEnabled = false


----------------------------------------------------
-- SETTINGS
----------------------------------------------------
local AimbotSettings = {
    Key = Enum.KeyCode.E,
    ToggleKey = Enum.KeyCode.LeftAlt,
    FOV = 160,
    Smoothness = 0.16,
    AimPart = "Torso",
    ShowFOV = true,
    FOVColor = Color3.fromRGB(255, 60, 60),
    MaxDistance = 220,
}


local HitboxSize = Vector3.new(14, 14, 14)
local MagnetRange = 150
local MagnetPower = 0.35


----------------------------------------------------
-- GUI
----------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "DogsMenu"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset = true


local successUI = pcall(function() ScreenGui.Parent = CoreGui end)
if not successUI then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end


local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 520, 0, 620)
MainFrame.Position = UDim2.new(0.5, -260, 0.5, -310)
MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = not isMobile
MainFrame.ClipsDescendants = true
MainFrame.Visible = not isMobile
MainFrame.Parent = ScreenGui


Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)
local MainStroke = Instance.new("UIStroke", MainFrame)
MainStroke.Color = Color3.fromRGB(40, 40, 48)
MainStroke.Thickness = 1


local UIScale = Instance.new("UIScale", MainFrame)


local function updateScale()
    local viewport = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize or Vector2.new(1920, 1080)
    local scale = 1
    if isTouchDevice then
        scale = math.clamp(math.min(viewport.X * 0.92, 520) / 520, 0.55, 0.95)
    end
    UIScale.Scale = scale
    local scaledW, scaledH = 520 * scale, 620 * scale
    MainFrame.Position = UDim2.new(0.5, -scaledW / 2, 0.5, -scaledH / 2)
end
updateScale()
workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(updateScale)


-- Mobile Open Button
local MobileOpenBtn = Instance.new("TextButton")
MobileOpenBtn.Name = "MobileOpen"
MobileOpenBtn.Size = UDim2.new(0, 52, 0, 52)
MobileOpenBtn.Position = UDim2.new(1, -70, 0.5, -26)
MobileOpenBtn.AnchorPoint = Vector2.new(0, 0.5)
MobileOpenBtn.BackgroundColor3 = Color3.fromRGB(22, 22, 28)
MobileOpenBtn.Text = "🐕"
MobileOpenBtn.TextSize = 26
MobileOpenBtn.Font = Enum.Font.GothamBold
MobileOpenBtn.TextColor3 = Color3.fromRGB(240, 240, 245)
MobileOpenBtn.AutoButtonColor = false
MobileOpenBtn.Visible = isTouchDevice
MobileOpenBtn.ZIndex = 50
MobileOpenBtn.Parent = ScreenGui
Instance.new("UICorner", MobileOpenBtn).CornerRadius = UDim.new(1, 0)
local MobileStroke = Instance.new("UIStroke", MobileOpenBtn)
MobileStroke.Color = Color3.fromRGB(40, 70, 140)
MobileStroke.Thickness = 2


do
    local dragging, dragStart, startPos
    MobileOpenBtn.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = MobileOpenBtn.Position
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement) then
            local delta = input.Position - dragStart
            MobileOpenBtn.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        end
    end)
    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
end


MobileOpenBtn.MouseButton1Click:Connect(function()
    MainFrame.Visible = not MainFrame.Visible
    if MainFrame.Visible then updateScale() end
end)


-- Snow
local SnowContainer = Instance.new("Frame")
SnowContainer.Name = "Snow"
SnowContainer.Size = UDim2.new(1, 0, 1, 0)
SnowContainer.BackgroundTransparency = 1
SnowContainer.ClipsDescendants = true
SnowContainer.ZIndex = 10
SnowContainer.Parent = MainFrame


local snowflakes = {}
local function createSnowflake()
    local size = math.random(3, 6)
    local flake = Instance.new("Frame")
    flake.Size = UDim2.new(0, size, 0, size)
    flake.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    flake.BackgroundTransparency = 0.4
    flake.BorderSizePixel = 0
    flake.ZIndex = 11
    flake.Parent = SnowContainer
    Instance.new("UICorner", flake).CornerRadius = UDim.new(1, 0)
    local startX, startY = math.random(), math.random() * -0.5
    flake.Position = UDim2.new(startX, 0, startY, 0)
    table.insert(snowflakes, {
        frame = flake, speed = math.random(20, 45) / 100,
        drift = (math.random() - 0.5) * 0.15, x = startX, y = startY,
        baseTransparency = math.random(30, 55) / 100
    })
end
for i = 1, 60 do createSnowflake() end


RunService.RenderStepped:Connect(function(dt)
    for _, flake in ipairs(snowflakes) do
        flake.y = flake.y + flake.speed * dt
        flake.x = flake.x + flake.drift * dt
        local fade = 1
        if flake.y < 0.1 then fade = flake.y / 0.1
        elseif flake.y > 0.9 then fade = (1.2 - flake.y) / 0.3 end
        fade = math.clamp(fade, 0, 1)
        flake.frame.BackgroundTransparency = flake.baseTransparency + (1 - fade) * 0.5
        if flake.y > 1.2 then
            flake.y = -0.15
            flake.x = math.random()
            flake.speed = math.random(20, 45) / 100
            flake.drift = (math.random() - 0.5) * 0.15
            flake.baseTransparency = math.random(30, 55) / 100
        end
        if flake.x < -0.1 then flake.x = 1.1 end
        if flake.x > 1.1 then flake.x = -0.1 end
        flake.frame.Position = UDim2.new(flake.x, 0, flake.y, 0)
    end
end)


-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 42)
TitleBar.BackgroundColor3 = Color3.fromRGB(22, 22, 28)
TitleBar.BorderSizePixel = 0
TitleBar.ZIndex = 2
TitleBar.Parent = MainFrame
Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 8)


local TitleFix = Instance.new("Frame")
TitleFix.Size = UDim2.new(1, 0, 0, 12)
TitleFix.Position = UDim2.new(0, 0, 1, -12)
TitleFix.BackgroundColor3 = Color3.fromRGB(22, 22, 28)
TitleFix.BorderSizePixel = 0
TitleFix.ZIndex = 2
TitleFix.Parent = TitleBar


local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -100, 1, 0)
TitleLabel.Position = UDim2.new(0, 16, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Dogs"
TitleLabel.TextColor3 = Color3.fromRGB(240, 240, 245)
TitleLabel.TextSize = 16
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.ZIndex = 3
TitleLabel.Parent = TitleBar


local VersionLabel = Instance.new("TextLabel")
VersionLabel.Size = UDim2.new(0, 50, 1, 0)
VersionLabel.Position = UDim2.new(1, -60, 0, 0)
VersionLabel.BackgroundTransparency = 1
VersionLabel.Text = "v2.6"
VersionLabel.TextColor3 = Color3.fromRGB(100, 100, 120)
VersionLabel.TextSize = 12
VersionLabel.Font = Enum.Font.Gotham
VersionLabel.ZIndex = 3
VersionLabel.Parent = TitleBar


local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 32, 0, 32)
CloseBtn.Position = UDim2.new(1, -40, 0.5, -16)
CloseBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
CloseBtn.Text = "×"
CloseBtn.TextSize = 22
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextColor3 = Color3.fromRGB(200, 200, 210)
CloseBtn.AutoButtonColor = false
CloseBtn.ZIndex = 4
CloseBtn.Parent = TitleBar
Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6)
CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false end)


-- Sidebar
local Sidebar = Instance.new("Frame")
Sidebar.Size = UDim2.new(0, 130, 1, -42)
Sidebar.Position = UDim2.new(0, 0, 0, 42)
Sidebar.BackgroundColor3 = Color3.fromRGB(16, 16, 20)
Sidebar.BorderSizePixel = 0
Sidebar.ZIndex = 2
Sidebar.Parent = MainFrame


local SidebarLayout = Instance.new("UIListLayout", Sidebar)
SidebarLayout.Padding = UDim.new(0, 4)
local SidebarPadding = Instance.new("UIPadding", Sidebar)
SidebarPadding.PaddingTop = UDim.new(0, 12)
SidebarPadding.PaddingLeft = UDim.new(0, 10)
SidebarPadding.PaddingRight = UDim.new(0, 10)


-- Content
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -130, 1, -42)
ContentFrame.Position = UDim2.new(0, 130, 0, 42)
ContentFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
ContentFrame.BorderSizePixel = 0
ContentFrame.ZIndex = 2
ContentFrame.Parent = MainFrame


local MainTab = Instance.new("ScrollingFrame")
MainTab.Size = UDim2.new(1, 0, 1, 0)
MainTab.BackgroundTransparency = 1
MainTab.BorderSizePixel = 0
MainTab.ScrollBarThickness = isTouchDevice and 6 or 3
MainTab.ScrollBarImageColor3 = Color3.fromRGB(50, 50, 60)
MainTab.CanvasSize = UDim2.new(0, 0, 0, 0)
MainTab.AutomaticCanvasSize = Enum.AutomaticSize.Y
MainTab.ZIndex = 3
MainTab.Parent = ContentFrame


local VisualsTab = Instance.new("ScrollingFrame")
VisualsTab.Size = UDim2.new(1, 0, 1, 0)
VisualsTab.BackgroundTransparency = 1
VisualsTab.BorderSizePixel = 0
VisualsTab.ScrollBarThickness = isTouchDevice and 6 or 3
VisualsTab.ScrollBarImageColor3 = Color3.fromRGB(50, 50, 60)
VisualsTab.CanvasSize = UDim2.new(0, 0, 0, 0)
VisualsTab.AutomaticCanvasSize = Enum.AutomaticSize.Y
VisualsTab.Visible = false
VisualsTab.ZIndex = 3
VisualsTab.Parent = ContentFrame


local function applyContentLayout(parent)
    local layout = Instance.new("UIListLayout", parent)
    layout.SortOrder = Enum.SortOrder.LayoutOrder
    layout.Padding = UDim.new(0, 6)
    local padding = Instance.new("UIPadding", parent)
    padding.PaddingTop = UDim.new(0, 14)
    padding.PaddingLeft = UDim.new(0, 16)
    padding.PaddingRight = UDim.new(0, 16)
    padding.PaddingBottom = UDim.new(0, 14)
end
applyContentLayout(MainTab)
applyContentLayout(VisualsTab)


-- Helpers
local function createSectionHeader(text, parent)
    local header = Instance.new("TextLabel")
    header.Size = UDim2.new(1, 0, 0, 22)
    header.BackgroundTransparency = 1
    header.Text = text
    header.TextColor3 = Color3.fromRGB(140, 140, 160)
    header.TextSize = 12
    header.Font = Enum.Font.GothamBold
    header.TextXAlignment = Enum.TextXAlignment.Left
    header.ZIndex = 4
    header.Parent = parent
    return header
end


local function createSidebarButton(text, parent)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, 0, 0, isTouchDevice and 40 or 32)
    btn.BackgroundColor3 = Color3.fromRGB(16, 16, 20)
    btn.TextColor3 = Color3.fromRGB(150, 150, 165)
    btn.Font = Enum.Font.GothamSemibold
    btn.TextSize = 13
    btn.Text = text
    btn.TextXAlignment = Enum.TextXAlignment.Left
    btn.AutoButtonColor = false
    btn.ZIndex = 3
    btn.Parent = parent
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
    local padding = Instance.new("UIPadding", btn)
    padding.PaddingLeft = UDim.new(0, 12)
    btn.MouseEnter:Connect(function()
        if btn.BackgroundColor3 ~= Color3.fromRGB(40, 70, 140) then
            TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(28, 28, 36)}):Play()
        end
    end)
    btn.MouseLeave:Connect(function()
        if btn.BackgroundColor3 ~= Color3.fromRGB(40, 70, 140) then
            TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(16, 16, 20)}):Play()
        end
    end)
    return btn
end


local function createToggle(text, parent, defaultState)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, 0, 0, isTouchDevice and 40 or 32)
    row.BackgroundTransparency = 1
    row.ZIndex = 4
    row.Parent = parent


    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, -55, 1, 0)
    label.BackgroundTransparency = 1
    label.Text = text
    label.TextColor3 = Color3.fromRGB(210, 210, 220)
    label.TextSize = isTouchDevice and 14 or 13
    label.Font = Enum.Font.Gotham
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.ZIndex = 5
    label.Parent = row


    local toggle = Instance.new("TextButton")
    toggle.Size = UDim2.new(0, isTouchDevice and 44 or 36, 0, isTouchDevice and 22 or 18)
    toggle.Position = UDim2.new(1, isTouchDevice and -44 or -36, 0.5, isTouchDevice and -11 or -9)
    toggle.BackgroundColor3 = defaultState and Color3.fromRGB(50, 120, 80) or Color3.fromRGB(45, 45, 55)
    toggle.Text = ""
    toggle.AutoButtonColor = false
    toggle.ZIndex = 5
    toggle.Parent = row
    Instance.new("UICorner", toggle).CornerRadius = UDim.new(1, 0)


    local knob = Instance.new("Frame")
    knob.Size = UDim2.new(0, isTouchDevice and 18 or 14, 0, isTouchDevice and 18 or 14)
    knob.Position = defaultState and UDim2.new(1, isTouchDevice and -20 or -16, 0.5, isTouchDevice and -9 or -7) or UDim2.new(0, 2, 0.5, isTouchDevice and -9 or -7)
    knob.BackgroundColor3 = Color3.fromRGB(240, 240, 245)
    knob.BorderSizePixel = 0
    knob.ZIndex = 6
    knob.Parent = toggle
    Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)


    return row, toggle, knob
end


local function setToggleVisual(toggle, knob, state)
    local onPos = isTouchDevice and UDim2.new(1, -20, 0.5, -9) or UDim2.new(1, -16, 0.5, -7)
    local offPos = isTouchDevice and UDim2.new(0, 2, 0.5, -9) or UDim2.new(0, 2, 0.5, -7)
    if state then
        TweenService:Create(toggle, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(50, 120, 80)}):Play()
        TweenService:Create(knob, TweenInfo.new(0.15), {Position = onPos}):Play()
    else
        TweenService:Create(toggle, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(45, 45, 55)}):Play()
        TweenService:Create(knob, TweenInfo.new(0.15), {Position = offPos}):Play()
    end
end


local function createSetting(text, parent, defaultValue, minVal, maxVal, step, onChange)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, 0, 0, 28)
    row.BackgroundTransparency = 1
    row.ZIndex = 4
    row.Parent = parent


    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(0.55, 0, 1, 0)
    label.BackgroundTransparency = 1
    label.Text = text
    label.TextColor3 = Color3.fromRGB(170, 170, 185)
    label.TextSize = 12
    label.Font = Enum.Font.Gotham
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.ZIndex = 5
    label.Parent = row


    local valueLabel = Instance.new("TextLabel")
    valueLabel.Size = UDim2.new(0, 50, 1, 0)
    valueLabel.Position = UDim2.new(0.55, 0, 0, 0)
    valueLabel.BackgroundTransparency = 1
    valueLabel.Text = tostring(defaultValue)
    valueLabel.TextColor3 = Color3.fromRGB(220, 220, 230)
    valueLabel.TextSize = 12
    valueLabel.Font = Enum.Font.GothamSemibold
    valueLabel.ZIndex = 5
    valueLabel.Parent = row


    local minusBtn = Instance.new("TextButton")
    minusBtn.Size = UDim2.new(0, 26, 0, 22)
    minusBtn.Position = UDim2.new(1, -60, 0.5, -11)
    minusBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
    minusBtn.Text = "-"
    minusBtn.TextColor3 = Color3.fromRGB(220, 220, 230)
    minusBtn.TextSize = 16
    minusBtn.Font = Enum.Font.GothamBold
    minusBtn.AutoButtonColor = false
    minusBtn.ZIndex = 5
    minusBtn.Parent = row
    Instance.new("UICorner", minusBtn).CornerRadius = UDim.new(0, 5)


    local plusBtn = Instance.new("TextButton")
    plusBtn.Size = UDim2.new(0, 26, 0, 22)
    plusBtn.Position = UDim2.new(1, -28, 0.5, -11)
    plusBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
    plusBtn.Text = "+"
    plusBtn.TextColor3 = Color3.fromRGB(220, 220, 230)
    plusBtn.TextSize = 16
    plusBtn.Font = Enum.Font.GothamBold
    plusBtn.AutoButtonColor = false
    plusBtn.ZIndex = 5
    plusBtn.Parent = row
    Instance.new("UICorner", plusBtn).CornerRadius = UDim.new(0, 5)


    local current = defaultValue
    local function update(val)
        current = math.clamp(val, minVal, maxVal)
        valueLabel.Text = current == math.floor(current) and tostring(current) or string.format("%.2f", current)
        if onChange then onChange(current) end
    end
    minusBtn.MouseButton1Click:Connect(function() update(current - step) end)
    plusBtn.MouseButton1Click:Connect(function() update(current + step) end)
    return row, update
end


-- Sidebar
local MainTabBtn = createSidebarButton("Main", Sidebar)
local VisualsTabBtn = createSidebarButton("Visuals", Sidebar)


local function setActiveTab(activeBtn, inactiveBtn, showMain)
    MainTab.Visible = showMain
    VisualsTab.Visible = not showMain
    activeBtn.BackgroundColor3 = Color3.fromRGB(40, 70, 140)
    activeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    inactiveBtn.BackgroundColor3 = Color3.fromRGB(16, 16, 20)
    inactiveBtn.TextColor3 = Color3.fromRGB(150, 150, 165)
end
setActiveTab(MainTabBtn, VisualsTabBtn, true)


MainTabBtn.MouseButton1Click:Connect(function() setActiveTab(MainTabBtn, VisualsTabBtn, true) end)
VisualsTabBtn.MouseButton1Click:Connect(function() setActiveTab(VisualsTabBtn, MainTabBtn, false) end)


-- ==================== MAIN TAB ====================
createSectionHeader("COMBAT", MainTab)


local NoSpreadRow, NoSpreadToggle, NoSpreadKnob = createToggle("No Spread", MainTab, false)
local RapidFireRow, RapidFireToggle, RapidFireKnob = createToggle("Rapid Fire", MainTab, false)
local ChainFlingRow, ChainFlingToggle, ChainFlingKnob = createToggle("Manipulator Fling  [E]", MainTab, false)
local DogAimbotRow, DogAimbotToggle, DogAimbotKnob = createToggle("Dog Aimbot  [Hold E]", MainTab, false)


createSetting("Aimbot FOV", MainTab, AimbotSettings.FOV, 40, 400, 10, function(v) AimbotSettings.FOV = v end)
createSetting("Smoothness", MainTab, AimbotSettings.Smoothness, 0.05, 0.5, 0.02, function(v) AimbotSettings.Smoothness = v end)
createSetting("Max Distance", MainTab, AimbotSettings.MaxDistance, 50, 500, 20, function(v) AimbotSettings.MaxDistance = v end)


local BigHitboxRow, BigHitboxToggle, BigHitboxKnob = createToggle("Bonbon Big Hitbox", MainTab, false)
createSetting("Hitbox Size", MainTab, 14, 4, 40, 2, function(v) HitboxSize = Vector3.new(v, v, v) end)


local MagnetRow, MagnetToggle, MagnetKnob = createToggle("Bonbon Magnet", MainTab, false)
createSetting("Magnet Range", MainTab, 150, 30, 300, 10, function(v) MagnetRange = v end)
createSetting("Magnet Power", MainTab, 0.35, 0.1, 0.8, 0.05, function(v) MagnetPower = v end)


createSectionHeader("PLAYER", MainTab)


local StaminaRow, StaminaToggle, StaminaKnob = createToggle("Infinite Stamina  [K]", MainTab, false)
local AntiRagdollRow, AntiRagdollToggle, AntiRagdollKnob = createToggle("Anti Ragdoll  [J]", MainTab, false)
local AutoSkillRow, AutoSkillToggle, AutoSkillKnob = createToggle("Auto Skill Check  [M]", MainTab, false)
local AutoHopiumRow, AutoHopiumToggle, AutoHopiumKnob = createToggle(isTouchDevice and "Auto Hopium (Hold)" or "Hold M3 Hopium  [N]", MainTab, false)


-- ==================== VISUALS TAB ====================
createSectionHeader("ESP", VisualsTab)
local EspRow, EspToggle, EspKnob = createToggle("Radar ESP  [H]", VisualsTab, false)
local BonbonEspRow, BonbonEspToggle, BonbonEspKnob = createToggle("Bonbon ESP", VisualsTab, false)


createSectionHeader("CAMERA", VisualsTab)
local CamRow, CamToggle, CamKnob = createToggle("Remove Camera Pop", VisualsTab, false)


createSectionHeader("FOV", VisualsTab)
createSetting("Camera FOV", VisualsTab, 70, 50, 120, 5, function(v)
    local without = Fov:Without("DogsMenu")
    Fov:Offset("DogsMenu", v - without)
end)


createSectionHeader("LIGHTING", VisualsTab)
local FullbrightRow, FullbrightToggle, FullbrightKnob = createToggle("Fullbright", VisualsTab, false)
local NoFogRow, NoFogToggle, NoFogKnob = createToggle("No Fog", VisualsTab, false)
local NoShadowsRow, NoShadowsToggle, NoShadowsKnob = createToggle("No Shadows", VisualsTab, false)


----------------------------------------------------
-- MOBILE ACTIONS
----------------------------------------------------
local MobileActions = Instance.new("Frame")
MobileActions.Size = UDim2.new(0, 130, 0, 160)
MobileActions.Position = UDim2.new(0, 16, 1, -180)
MobileActions.BackgroundTransparency = 1
MobileActions.Visible = isTouchDevice
MobileActions.ZIndex = 40
MobileActions.Parent = ScreenGui


local function createMobileAction(text, color, yOffset)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 110, 0, 44)
    btn.Position = UDim2.new(0, 0, 0, yOffset)
    btn.BackgroundColor3 = color
    btn.Text = text
    btn.TextSize = 14
    btn.Font = Enum.Font.GothamBold
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.AutoButtonColor = false
    btn.ZIndex = 41
    btn.Parent = MobileActions
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
    local stroke = Instance.new("UIStroke", btn)
    stroke.Color = Color3.fromRGB(255, 255, 255)
    stroke.Thickness = 1
    stroke.Transparency = 0.7
    return btn
end


local FlingBtn = createMobileAction("FLING (E)", Color3.fromRGB(50, 100, 180), 0)
local StopBtn = createMobileAction("STOP (Q)", Color3.fromRGB(160, 50, 50), 52)
local HopiumHoldBtn = createMobileAction("HOPIUM", Color3.fromRGB(80, 50, 140), 104)


local hopiumHolding = false
HopiumHoldBtn.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
        hopiumHolding = true
    end
end)
HopiumHoldBtn.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
        hopiumHolding = false
    end
end)


----------------------------------------------------
-- CHAIN FLING
----------------------------------------------------
local GrabRange, AimCone = 999, 999
local DogsFolderName = "NPCs"
local FlingDuration, FlingSpeed, AimRate = 2, 9999, 9999
local MaxChain, ChainDelay = 1, 0
local holding, flinging, chaining, stopChain = nil, false, false, false


local function getRay()
    local cam = workspace.CurrentCamera
    local char = LocalPlayer.Character
    local head = char and char:FindFirstChild("Head")
    local isFirstPerson = head and (cam.CFrame.Position - head.Position).Magnitude <= 1.5
    if isTouchDevice or isFirstPerson then
        return cam.CFrame.Position, cam.CFrame.LookVector
    end
    return Mouse.UnitRay.Origin, Mouse.UnitRay.Direction
end


local function pickDog(preferAim)
    local folder = Workspace:FindFirstChild(DogsFolderName)
    local char = LocalPlayer.Character
    local hrp = char and char:FindFirstChild("HumanoidRootPart")
    if not (folder and hrp) then return nil end
    local origin, direction = getRay()
    local bestDog, bestScore = nil, math.huge
    for _, dog in folder:GetChildren() do
        local humanoid = dog:FindFirstChildOfClass("Humanoid")
        local torso = dog:FindFirstChild("Torso")
        if humanoid and humanoid.Health > 0 and torso then
            local dist = (torso.Position - hrp.Position).Magnitude
            if dist <= GrabRange then
                local score = dist
                if preferAim then
                    local toDog = (torso.Position - origin).Unit
                    local angle = math.acos(math.clamp(direction:Dot(toDog), -1, 1))
                    if not isTouchDevice and Mouse.Target and Mouse.Target:IsDescendantOf(dog) then angle = -1 end
                    score = angle < math.rad(AimCone) and angle or dist + 100
                end
                if score < bestScore then bestDog, bestScore = dog, score end
            end
        end
    end
    if bestDog then return bestDog, (bestDog.Torso.Position - origin).Magnitude end
    return nil
end


local function getClosestOtherDog(exclude)
    local folder = Workspace:FindFirstChild(DogsFolderName)
    if not folder then return nil end
    local heldTorso = exclude and exclude:FindFirstChild("Torso")
    if not heldTorso then return nil end
    local closest, closestDist = nil, math.huge
    for _, dog in folder:GetChildren() do
        if dog ~= exclude then
            local humanoid = dog:FindFirstChildOfClass("Humanoid")
            local torso = dog:FindFirstChild("Torso")
            if humanoid and humanoid.Health > 0 and torso then
                local dist = (torso.Position - heldTorso.Position).Magnitude
                if dist < closestDist and dist < 130 then closest, closestDist = dog, dist end
            end
        end
    end
    return closest
end


local function release()
    if not holding then return end
    holding, flinging = nil, false
    pcall(function() Net:Fire("Manipulator", "Release") end)
end


local function startFling(dog)
    flinging = true
    local startTime = os.clock()
    while holding and flinging and not stopChain and os.clock() - startTime < FlingDuration do
        local target = getClosestOtherDog(dog)
        local heldTorso = dog:FindFirstChild("Torso")
        if heldTorso then
            if target and target:FindFirstChild("Torso") then
                local dir = (target.Torso.Position - heldTorso.Position)
                dir = dir.Magnitude > 0.1 and dir.Unit or Vector3.new(0, 1, 0)
                pcall(function() Net:Fire("Manipulator", "Aim", target.Torso.Position + dir * 20) end)
                pcall(function() heldTorso.AssemblyLinearVelocity = dir * FlingSpeed + Vector3.new(0, 55, 0) end)
            else
                pcall(function()
                    Net:Fire("Manipulator", "Aim", heldTorso.Position + Vector3.new(0, 90, 0))
                    heldTorso.AssemblyLinearVelocity = Vector3.new(0, 350, 0)
                end)
            end
        end
        task.wait(1 / AimRate)
    end
    release()
end


local function runChain()
    if chaining then return end
    chaining, stopChain = true, false
    for i = 1, MaxChain do
        if stopChain then break end
        local dog, distance = pickDog(i == 1)
        if not dog then break end
        holding = { dog = dog, distance = distance, sentAt = 0, grabbedAt = os.clock() }
        pcall(function() Net:Fire("Manipulator", "Grab", dog, distance) end)
        task.wait(0.06)
        if stopChain then release() break end
        startFling(dog)
        if stopChain then break end
        task.wait(ChainDelay)
    end
    chaining, stopChain = false, false
    release()
end


FlingBtn.MouseButton1Click:Connect(function()
    if ChainFlingEnabled and not chaining then task.spawn(runChain) end
end)
StopBtn.MouseButton1Click:Connect(function() stopChain = true release() end)


----------------------------------------------------
-- BONBON ESP + HITBOX + MAGNET
----------------------------------------------------
local BonbonTag = "Bonbon"
local PickedAttribute = "Collected"
local BonbonESPColor = Color3.fromRGB(176, 96, 255)


local function isCollected(part)
    return part:GetAttribute(PickedAttribute) == true
end


local function applyBonbonESP(part)
    if not BonbonEspEnabled or not part:IsA("BasePart") then return end
    if part:FindFirstChild("BonbonHighlight") then return end
    local hl = Instance.new("Highlight")
    hl.Name = "BonbonHighlight"
    hl.Adornee = part
    hl.FillColor = BonbonESPColor
    hl.OutlineColor = Color3.new(1, 1, 1)
    hl.FillTransparency = 0.5
    hl.OutlineTransparency = 0
    hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    hl.Parent = part
end


local function applyBigHitbox(part)
    if not BigHitboxEnabled or not part:IsA("BasePart") then return end
    if part:GetAttribute("HitboxApplied") then return end
    part:SetAttribute("HitboxApplied", true)
    pcall(function()
        part.Size = HitboxSize
        part.Transparency = 0.65
        part.CanCollide = false
    end)
end


local function clearBonbonVisuals(part)
    local hl = part:FindFirstChild("BonbonHighlight")
    if hl then hl:Destroy() end
end


local function updateBonbons()
    for _, part in ipairs(CollectionService:GetTagged(BonbonTag)) do
        if part:IsA("BasePart") and part.Parent then
            if isCollected(part) then
                clearBonbonVisuals(part)
            else
                if BonbonEspEnabled then applyBonbonESP(part) end
                if BigHitboxEnabled then applyBigHitbox(part) end
            end
        end
    end
end


CollectionService:GetInstanceAddedSignal(BonbonTag):Connect(function(part)
    task.wait(0.1)
    if part:IsA("BasePart") and not isCollected(part) then
        if BonbonEspEnabled then applyBonbonESP(part) end
        if BigHitboxEnabled then applyBigHitbox(part) end
    end
end)


task.spawn(function()
    while true do
        pcall(updateBonbons)
        task.wait(1.2)
    end
end)


-- MAGNET
RunService.Heartbeat:Connect(function(dt)
    if not BonbonMagnetEnabled then return end

    local char = LocalPlayer.Character
    local hrp = char and char:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local targetPos = hrp.Position + Vector3.new(0, 2.8, 0)

    for _, obj in ipairs(CollectionService:GetTagged(BonbonTag)) do
        -- Support both BasePart and Model
        local part = nil
        if obj:IsA("BasePart") then
            part = obj
        elseif obj:IsA("Model") then
            part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
        end

        if part and part.Parent and not isCollected(part) and not isCollected(obj) then
            local dist = (part.Position - hrp.Position).Magnitude

            if dist < MagnetRange and dist > 1.2 then
                -- Frame-rate independent lerp (stronger pull)
                local alpha = 1 - math.exp(-MagnetPower * 18 * dt)
                alpha = math.clamp(alpha, 0.08, 0.85)

                part.CFrame = part.CFrame:Lerp(CFrame.new(targetPos), alpha)

                -- Extra force if the part isn't anchored
                if not part.Anchored then
                    local dir = (targetPos - part.Position)
                    if dir.Magnitude > 0.1 then
                        part.AssemblyLinearVelocity = dir.Unit * (80 + MagnetPower * 120)
                    end
                end
            end
        end
    end
end)


----------------------------------------------------
-- DOG AIMBOT
----------------------------------------------------
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1
FOVCircle.NumSides = 64
FOVCircle.Radius = AimbotSettings.FOV
FOVCircle.Filled = false
FOVCircle.Color = AimbotSettings.FOVColor
FOVCircle.Visible = false


local function getClosestDogPart()
    local folder = Workspace:FindFirstChild(DogsFolderName)
    if not folder then return nil end
    local closest, shortest = nil, AimbotSettings.FOV
    local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
    for _, dog in ipairs(folder:GetChildren()) do
        local humanoid = dog:FindFirstChildOfClass("Humanoid")
        local part = dog:FindFirstChild(AimbotSettings.AimPart) or dog:FindFirstChild("Torso") or dog:FindFirstChild("HumanoidRootPart") or dog:FindFirstChild("Head")
        if humanoid and humanoid.Health > 0 and part then
            local dist3D = (part.Position - Camera.CFrame.Position).Magnitude
            if dist3D <= AimbotSettings.MaxDistance then
                local pos, onScreen = Camera:WorldToViewportPoint(part.Position)
                if onScreen then
                    local dist2D = (Vector2.new(pos.X, pos.Y) - center).Magnitude
                    if dist2D < shortest then shortest, closest = dist2D, part end
                end
            end
        end
    end
    return closest
end


RunService.RenderStepped:Connect(function()
    FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
    FOVCircle.Radius = AimbotSettings.FOV
    FOVCircle.Visible = DogAimbotEnabled and AimbotSettings.ShowFOV
    if not DogAimbotEnabled or not AimbotHolding then return end
    local target = getClosestDogPart()
    if target then
        local current = Camera.CFrame
        local goal = CFrame.new(Camera.CFrame.Position, target.Position)
        Camera.CFrame = current:Lerp(goal, AimbotSettings.Smoothness)
    end
end)


----------------------------------------------------
-- EXPLOIT LOOPS
----------------------------------------------------
task.spawn(function()
    while true do
        local character = LocalPlayer.Character
        if character then
            local tool = character:FindFirstChildOfClass("Tool")
            if tool then
                if NoSpreadEnabled then tool:SetAttribute("Spread", 0) end
                if RapidFireEnabled then tool:SetAttribute("FireCooldown", 0.01) end
            end
        end
        task.wait(0.05)
    end
end)


RunService.RenderStepped:Connect(function()
    if not AutoSkillCheckEnabled then return end
    local char = LocalPlayer.Character
    if not char or char:GetAttribute("Dragged") ~= true then return end
    local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
    if not playerGui then return end
    local skillGui = playerGui:FindFirstChild("SkillCheck")
    if skillGui and skillGui.Enabled then
        local track = skillGui:FindFirstChild("Track", true)
        local zone = track and track:FindFirstChild("Zone", true)
        local pointer = track and track:FindFirstChild("Pointer", true)
        if zone and pointer then
            local pX = pointer.Position.X.Scale
            local zX = zone.Position.X.Scale
            local zWidth = zone.Size.X.Scale
            if pX >= zX and pX <= (zX + zWidth) then
                SkillCheckRemote:FireServer()
                task.wait(0.2)
            end
        end
    end
end)


-- Hopium (M3)
task.spawn(function()
    while true do
        local shouldFire = AutoHopiumEnabled and (isTouchDevice and hopiumHolding or UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton3))
        if shouldFire then
            local char = LocalPlayer.Character
            local humanoid = char and char:FindFirstChildOfClass("Humanoid")
            if char and humanoid then
                local hopium = nil
                for _, child in ipairs(char:GetChildren()) do
                    if child:IsA("Tool") and child.Name:lower():gsub("%s+", "") == "hopium" then
                        hopium = child break
                    end
                end
                if not hopium then
                    local backpack = LocalPlayer:FindFirstChild("Backpack")
                    if backpack then
                        for _, child in ipairs(backpack:GetChildren()) do
                            if child:IsA("Tool") and child.Name:lower():gsub("%s+", "") == "hopium" then
                                hopium = child break
                            end
                        end
                    end
                end
                if hopium then
                    if hopium.Parent ~= char then
                        pcall(function() humanoid:EquipTool(hopium) end)
                        task.wait(0.05)
                    end
                    for _ = 1, 8 do pcall(function() hopium:Activate() end) end
                end
            end
            RunService.Heartbeat:Wait()
        else
            task.wait(0.05)
        end
    end
end)


-- Stamina + Lighting cleanup
task.spawn(function()
    while true do
        if InfiniteStaminaEnabled then
            local char = LocalPlayer.Character
            if char then char:SetAttribute("Epicsauce", Workspace:GetServerTimeNow() + 999999) end
        end
        for _, effect in ipairs(Lighting:GetChildren()) do
            if effect:IsA("ColorCorrectionEffect") or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") then
                effect.Enabled = false
            end
        end
        local heartbeatSound = game:GetService("SoundService"):FindFirstChild("Heartbeat")
        if heartbeatSound then heartbeatSound:Destroy() end
        task.wait(0.1)
    end
end)


-- Fullbright / No Fog / No Shadows
task.spawn(function()
    while true do
        if FullbrightEnabled then
            pcall(function()
                Lighting.Brightness = 2.5
                Lighting.Ambient = Color3.fromRGB(180, 180, 180)
                Lighting.OutdoorAmbient = Color3.fromRGB(180, 180, 180)
                Lighting.EnvironmentDiffuseScale = 1
                Lighting.EnvironmentSpecularScale = 1
                Lighting.ExposureCompensation = 0.4
            end)
        end
        if NoFogEnabled then
            pcall(function()
                Lighting.FogEnd = 100000
                Lighting.FogStart = 0
            end)
        end
        if NoShadowsEnabled then
            pcall(function() Lighting.GlobalShadows = false end)
        end
        task.wait(0.15)
    end
end)


----------------------------------------------------
-- ANTI RAGDOLL
----------------------------------------------------
local function fixJointsAndState(character)
    if not character then return end
    local humanoid = character:FindFirstChildOfClass("Humanoid")
    if not humanoid then return end
    humanoid.PlatformStand = false
    humanoid.AutoRotate = true
    humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
    humanoid:SetStateEnabled(Enum.HumanoidStateType.GettingUp, true)
    humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
    if humanoid.UseJumpPower then humanoid.JumpPower = 50 else humanoid.JumpHeight = 7.2 end
    for _, desc in ipairs(character:GetDescendants()) do
        if desc:IsA("BallSocketConstraint") or desc:IsA("HingeConstraint") or desc:IsA("RopeConstraint") or desc:IsA("NoCollisionConstraint") then
            desc:Destroy()
        elseif desc:IsA("Motor6D") then
            desc.Enabled = true
        end
    end
    local animateScript = character:FindFirstChild("Animate")
    if animateScript then
        if animateScript.Disabled then animateScript.Disabled = false
        else animateScript.Disabled = true task.wait() animateScript.Disabled = false end
    end
end


local function applyAntiRagdoll(character)
    if not character then return end
    character:SetAttribute("Ragdolled", false)
    character:SetAttribute("Shocked", nil)
    fixJointsAndState(character)
    character:GetAttributeChangedSignal("Ragdolled"):Connect(function()
        if AntiRagdollEnabled then
            task.wait()
            character:SetAttribute("Ragdolled", false)
            fixJointsAndState(character)
        end
    end)
    character:GetAttributeChangedSignal("Shocked"):Connect(function()
        if AntiRagdollEnabled then character:SetAttribute("Shocked", nil) end
    end)
end


----------------------------------------------------
-- TOGGLES
----------------------------------------------------
local function toggleNoSpread() NoSpreadEnabled = not NoSpreadEnabled setToggleVisual(NoSpreadToggle, NoSpreadKnob, NoSpreadEnabled) end
local function toggleRapidFire() RapidFireEnabled = not RapidFireEnabled setToggleVisual(RapidFireToggle, RapidFireKnob, RapidFireEnabled) end
local function toggleBonbonMagnet() BonbonMagnetEnabled = not BonbonMagnetEnabled setToggleVisual(MagnetToggle, MagnetKnob, BonbonMagnetEnabled) end
local function toggleFullbright() FullbrightEnabled = not FullbrightEnabled setToggleVisual(FullbrightToggle, FullbrightKnob, FullbrightEnabled) end
local function toggleNoFog() NoFogEnabled = not NoFogEnabled setToggleVisual(NoFogToggle, NoFogKnob, NoFogEnabled) end
local function toggleNoShadows() NoShadowsEnabled = not NoShadowsEnabled setToggleVisual(NoShadowsToggle, NoShadowsKnob, NoShadowsEnabled) end


local function applyStamina(character)
    if character and InfiniteStaminaEnabled then
        character:SetAttribute("Epicsauce", Workspace:GetServerTimeNow() + 999999)
    end
end


local function toggleStamina()
    InfiniteStaminaEnabled = not InfiniteStaminaEnabled
    if InfiniteStaminaEnabled then applyStamina(LocalPlayer.Character)
    elseif LocalPlayer.Character then LocalPlayer.Character:SetAttribute("Epicsauce", nil) end
    setToggleVisual(StaminaToggle, StaminaKnob, InfiniteStaminaEnabled)
end


local function toggleAntiRagdoll()
    AntiRagdollEnabled = not AntiRagdollEnabled
    if AntiRagdollEnabled then applyAntiRagdoll(LocalPlayer.Character) end
    setToggleVisual(AntiRagdollToggle, AntiRagdollKnob, AntiRagdollEnabled)
end


local function toggleAutoSkill() AutoSkillCheckEnabled = not AutoSkillCheckEnabled setToggleVisual(AutoSkillToggle, AutoSkillKnob, AutoSkillCheckEnabled) end
local function toggleAutoHopium() AutoHopiumEnabled = not AutoHopiumEnabled setToggleVisual(AutoHopiumToggle, AutoHopiumKnob, AutoHopiumEnabled) end


local function toggleChainFling()
    ChainFlingEnabled = not ChainFlingEnabled
    if not ChainFlingEnabled then stopChain = true release() end
    setToggleVisual(ChainFlingToggle, ChainFlingKnob, ChainFlingEnabled)
end


local function toggleDogAimbot() DogAimbotEnabled = not DogAimbotEnabled setToggleVisual(DogAimbotToggle, DogAimbotKnob, DogAimbotEnabled) end


local function toggleBonbonEsp()
    BonbonEspEnabled = not BonbonEspEnabled
    if not BonbonEspEnabled then
        for _, part in ipairs(CollectionService:GetTagged(BonbonTag)) do clearBonbonVisuals(part) end
    end
    setToggleVisual(BonbonEspToggle, BonbonEspKnob, BonbonEspEnabled)
end


local function toggleBigHitbox() BigHitboxEnabled = not BigHitboxEnabled setToggleVisual(BigHitboxToggle, BigHitboxKnob, BigHitboxEnabled) end


LocalPlayer.CharacterAdded:Connect(function(char)
    if InfiniteStaminaEnabled then task.wait(0.5) applyStamina(char) end
    if AntiRagdollEnabled then task.wait(0.5) applyAntiRagdoll(char) end
end)


----------------------------------------------------
-- RADAR ESP
----------------------------------------------------
local ActiveMarks = {}
local FoldersToScan = {
    { Name = "Characters", Color = Color3.fromRGB(70, 140, 255), PlayersOnly = true },
    { Name = "NPCs", Color = Color3.fromRGB(255, 55, 55), Named = { Cremator = Color3.fromRGB(0, 0, 0) } }
}


local function clearESP()
    for model, highlight in pairs(ActiveMarks) do
        if highlight and highlight.Parent then highlight:Destroy() end
    end
    table.clear(ActiveMarks)
end


local function updateESP()
    if not EspEnabled then return end
    local LocalChar = LocalPlayer.Character
    local CurrentTargets = {}
    for _, folderData in ipairs(FoldersToScan) do
        local folder = Workspace:FindFirstChild(folderData.Name)
        if folder then
            for _, model in ipairs(folder:GetChildren()) do
                local humanoid = model:IsA("Model") and model:FindFirstChildOfClass("Humanoid")
                if humanoid and humanoid.Health > 0 and model ~= LocalChar then
                    local isPlayer = Players:GetPlayerFromCharacter(model)
                    if not folderData.PlayersOnly or isPlayer then
                        CurrentTargets[model] = true
                        local highlight = ActiveMarks[model]
                        if not highlight or not highlight.Parent then
                            highlight = Instance.new("Highlight")
                            highlight.Name = "RadarMark"
                            highlight.FillTransparency = 0.5
                            highlight.OutlineTransparency = 1
                            highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
                            highlight.Adornee = model
                            highlight.Parent = model
                            ActiveMarks[model] = highlight
                        end
                        local customColor = folderData.Named and folderData.Named[model.Name]
                        highlight.FillColor = customColor or folderData.Color
                    end
                end
            end
        end
    end
    for model, highlight in pairs(ActiveMarks) do
        if not CurrentTargets[model] then
            if highlight then highlight:Destroy() end
            ActiveMarks[model] = nil
        end
    end
end


local function toggleEsp()
    EspEnabled = not EspEnabled
    if not EspEnabled then clearESP() end
    setToggleVisual(EspToggle, EspKnob, EspEnabled)
end


task.spawn(function()
    while true do
        if EspEnabled then pcall(updateESP) end
        task.wait(0.4)
    end
end)


local function toggleCameraEffects()
    CameraEffectsEnabled = not CameraEffectsEnabled
    if not CameraEffectsEnabled then
        RunService:UnbindFromRenderStep("StreetsCameraBob")
        local ScreenEffect = Lighting:FindFirstChild("ScreenEffectBrightness")
        if ScreenEffect then ScreenEffect.Brightness = 0 end
    end
    setToggleVisual(CamToggle, CamKnob, CameraEffectsEnabled)
end


----------------------------------------------------
-- CONNECTIONS
----------------------------------------------------
NoSpreadToggle.MouseButton1Click:Connect(toggleNoSpread)
RapidFireToggle.MouseButton1Click:Connect(toggleRapidFire)
MagnetToggle.MouseButton1Click:Connect(toggleBonbonMagnet)
FullbrightToggle.MouseButton1Click:Connect(toggleFullbright)
NoFogToggle.MouseButton1Click:Connect(toggleNoFog)
NoShadowsToggle.MouseButton1Click:Connect(toggleNoShadows)
StaminaToggle.MouseButton1Click:Connect(toggleStamina)
AntiRagdollToggle.MouseButton1Click:Connect(toggleAntiRagdoll)
AutoSkillToggle.MouseButton1Click:Connect(toggleAutoSkill)
AutoHopiumToggle.MouseButton1Click:Connect(toggleAutoHopium)
ChainFlingToggle.MouseButton1Click:Connect(toggleChainFling)
DogAimbotToggle.MouseButton1Click:Connect(toggleDogAimbot)
EspToggle.MouseButton1Click:Connect(toggleEsp)
BonbonEspToggle.MouseButton1Click:Connect(toggleBonbonEsp)
BigHitboxToggle.MouseButton1Click:Connect(toggleBigHitbox)
CamToggle.MouseButton1Click:Connect(toggleCameraEffects)


UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.KeyCode == Enum.KeyCode.K then toggleStamina() end
    if input.KeyCode == Enum.KeyCode.J then toggleAntiRagdoll() end
    if input.KeyCode == Enum.KeyCode.M then toggleAutoSkill() end
    if input.KeyCode == Enum.KeyCode.N then toggleAutoHopium() end
    if input.KeyCode == Enum.KeyCode.H then toggleEsp() end
    if input.KeyCode == Enum.KeyCode.RightControl then
        MainFrame.Visible = not MainFrame.Visible
        if MainFrame.Visible then updateScale() end
    end
    if input.KeyCode == AimbotSettings.Key then AimbotHolding = true end
    if input.KeyCode == AimbotSettings.ToggleKey then toggleDogAimbot() end
    if input.KeyCode == Enum.KeyCode.E and ChainFlingEnabled and not chaining then
        task.spawn(runChain)
    end
    if input.KeyCode == Enum.KeyCode.Q then stopChain = true release() end
end)


UserInputService.InputEnded:Connect(function(input)
    if input.KeyCode == AimbotSettings.Key then AimbotHolding = false end
end)


MainFrame:GetPropertyChangedSignal("Visible"):Connect(function()
    if isTouchDevice then MobileActions.Visible = not MainFrame.Visible end
end)

Features

  • PLS READ WHAT IS BELOW THIS
  • First It is Undetect BUT Still Use It On Your Alt Wih Vpn ON!!
  • To Avoide Getting banned
  • and dont use dex ur gonna get banned!
  • I Got banned on my main and it is sad but alr fuck it
  • Combat
  • No Spread For Guns 🔫
  • Player
  • Infinite Stamina [K] Best! 🏃‍♂️
  • Anti Ragdoll [J] kinda works)
  • Auto Skill Check [M] auto plays The Escape Mini game when Dragged auto
  • Hold RMB Hopium [N]: rapid-fire Hopium tool (Will be fixed soon!)
  • Visuals
  • Radar ESP [H]: players in blue, Dogs in red One Guy Black,
  • Remove Camera Pop