local Version = "1.6.63"
local WindUI = loadstring(game:HttpGet("https://[Log in to view URL]" .. Version .. "/main.lua"))()

-- Initialize safeguard variables
getgenv().ManualConstructionToggle = true
getgenv().ConstructionManuallyActivated = false

--=================================================
-- MINIMAL LOGO POPUP (Already dark — kept as-is)
--=================================================
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PlayerGui = player:WaitForChild("PlayerGui")

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "BRONX.CCLogoPopup"
screenGui.ResetOnSpawn = false
screenGui.Parent = PlayerGui

local bg = Instance.new("Frame")
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
bg.BackgroundTransparency = 1
bg.Parent = screenGui

local popup = Instance.new("Frame")
popup.Size = UDim2.fromOffset(380, 380)
popup.Position = UDim2.new(0.5, 0, 0.5, 0)
popup.AnchorPoint = Vector2.new(0.5, 0.5)
popup.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
popup.BackgroundTransparency = 1
popup.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 16)
corner.Parent = popup

local logo = Instance.new("ImageLabel")
logo.Size = UDim2.new(1, -40, 1, -40)
logo.Position = UDim2.new(0.5, 0, 0.5, 0)
logo.AnchorPoint = Vector2.new(0.5, 0.5)
logo.BackgroundTransparency = 1
logo.Image = "rbxassetid://90176824669806"
logo.ImageTransparency = 1
logo.Parent = popup

-- Fade in
task.spawn(function()
    for i = 1, 12 do
        bg.BackgroundTransparency -= 0.08
        popup.BackgroundTransparency -= 0.08
        logo.ImageTransparency -= 0.08
        task.wait(0.025)
    end
end)

-- Auto close
task.delay(3.5, function()
    for i = 1, 12 do
        bg.BackgroundTransparency += 0.08
        popup.BackgroundTransparency += 0.08
        logo.ImageTransparency += 0.08
        task.wait(0.025)
    end
    screenGui:Destroy()
end)

--=================================================
-- BLACK & WHITE WINDUI WINDOW
--=================================================
task.wait(0.8)

local Window = WindUI:CreateWindow({
    Title = "BRONX.CC",
    Icon = "rbxassetid://90176824669806",
    IconSize = 42,
    Author = "THA BRONX 3",
    Folder = "MySuperHub",
    Size = UDim2.fromOffset(760, 480),
    Theme = "Dark",           -- Base dark theme
    Transparent = true,
    Resizable = true,
    SideBarWidth = 260,
    HideSearchBar = false,
    ScrollBarEnabled = true,

    -- Background (black & white friendly)
    Background = "rbxassetid://90176824669806",
    BackgroundImageTransparency = 0.95,   -- Very faint to keep it subtle
})

-- ==================== BLACK & WHITE OPEN BUTTON ====================
Window:EditOpenButton({
    Title = "BRONX.CC",
    Icon = "rbxassetid://90176824669806",
    CornerRadius = UDim.new(0, 16),
    StrokeThickness = 2,
    Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 30)),   -- Dark gray
        ColorSequenceKeypoint.new(1, Color3.fromRGB(80, 80, 80))    -- Light gray
    },
    OnlyMobile = false,
    Enabled = true,
    Draggable = true,
    Position = UDim2.new(0.5, -80, 0, 20),
    Size = UDim2.new(0, 160, 0, 50),
})

-- ==================== KEYBIND ====================
local UserInputService = game:GetService("UserInputService")

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.KeyCode == Enum.KeyCode.RightShift then
        Window:Toggle()
    end
end)

print("✅ BRONX.CC loaded in Black & White mode")



local MainTab = Window:Tab({ 
    Title = "Main",
    Icon = "percent", 
    Locked = false,
})

player.CharacterAdded:Connect(addTag)







local PlayerTab = Window:Tab({
    Title = "Player",
    Icon = "users",
    Locked = false,
})

-- Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera

-- Variables
local selectedPlayer = nil
local spectating = false
local bringingPlayer = false

-- === PLAYER LIST FUNCTIONS ===
local function getPlayerList()
    local playerNames = {}
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            table.insert(playerNames, plr.Name)
        end
    end
    return playerNames
end

-- Dropdown (Shared for multiple features)
local SpectateDropdown = PlayerTab:Dropdown({
    Title = "Select Player",
    Desc = "Choose a player for Spectate / TP2 / Bring",
    Values = getPlayerList(),
    Callback = function(option)
        selectedPlayer = option
    end
})

-- Refresh dropdown
Players.PlayerAdded:Connect(function()
    task.wait(1)
    SpectateDropdown:Refresh(getPlayerList())
end)
Players.PlayerRemoving:Connect(function()
    task.wait(1)
    SpectateDropdown:Refresh(getPlayerList())
end)

-- ==================== SPECTATE PLAYER TOGGLE ====================
PlayerTab:Toggle({
    Title = "Spectate Player",
    Desc = "Toggle spectating the selected player",
    Default = false,
    Callback = function(state)
        if state then
            if not selectedPlayer then
                WindUI:Notify({Title = "Error", Content = "No player selected!", Duration = 3, Icon = "x"})
                return
            end
            local target = Players:FindFirstChild(selectedPlayer)
            if target and target.Character and target.Character:FindFirstChild("Humanoid") then
                Camera.CameraSubject = target.Character.Humanoid
                spectating = true
                WindUI:Notify({Title = "Spectating", Content = "Now spectating " .. target.Name, Duration = 3, Icon = "eye"})
            else
                WindUI:Notify({Title = "Error", Content = "Player not found or no character", Duration = 3, Icon = "x"})
            end
        else
            if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                Camera.CameraSubject = LocalPlayer.Character.Humanoid
            end
            spectating = false
            WindUI:Notify({Title = "Spectate", Content = "Stopped spectating", Duration = 3, Icon = "eye-off"})
        end
    end
})

-- ==================== TP2 PLAYER FUNCTION ====================
local function TP2Player(targetName)
    if not targetName or targetName == "" then
        WindUI:Notify({
            Title = "TP2 Player",
            Content = "❌ No player selected!",
            Duration = 3,
            Icon = "x"
        })
        return
    end

    local target = Players:FindFirstChild(targetName)
    if not target or not target.Character or not target.Character:FindFirstChild("HumanoidRootPart") then
        WindUI:Notify({
            Title = "TP2 Player",
            Content = "❌ Player not found or no character!",
            Duration = 3,
            Icon = "x"
        })
        return
    end

    local localChar = LocalPlayer.Character
    if not localChar or not localChar:FindFirstChild("HumanoidRootPart") then 
        WindUI:Notify({Title = "TP2 Player", Content = "❌ Your character not loaded!", Duration = 3, Icon = "x"})
        return 
    end

    -- Anti-cheat bypass
    localChar.Humanoid:ChangeState(0)
    repeat task.wait(0.0001) until not LocalPlayer:GetAttribute("LastACPos")

    -- Teleport to player (slightly offset)
    localChar.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(3, 0, 0)

    task.wait()
    localChar.Humanoid:ChangeState(2)

    WindUI:Notify({
        Title = "TP2 Player",
        Content = "✅ Teleported to " .. target.Name,
        Duration = 2,
        Icon = "user"
    })
end

-- ==================== TP2 PLAYER BUTTON ====================
PlayerTab:Button({
    Title = "TP2 Player",
    Desc = "Teleport to the selected player",
    Callback = function()
        TP2Player(selectedPlayer)
    end
})

PlayerTab:Button({
    Title = "Drop Item",
    Desc = "Drops the tool you are currently holding",
    Callback = function()
        local tool = LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool then
            ReplicatedStorage.DropItemRemote:FireServer(tool)
            WindUI:Notify({Title = "Drop Item", Content = "Dropped " .. tool.Name, Duration = 2})
        else
            WindUI:Notify({Title = "Drop Item", Content = "No tool equipped!", Duration = 2, Icon = "x"})
        end
    end
})

PlayerTab:Button({
    Title = "Pass to Nearest Player",
    Desc = "Drops item for the closest player to pick up",
    Callback = function()
        ReplicatedStorage.DropRemote:FireServer("Drop")
        WindUI:Notify({Title = "Pass Item", Content = "Item passed to nearest player", Duration = 2})
    end
})

-- ==================== VIEW INVENTORY (Added at the bottom) ====================
local viewInventory
viewInventory = PlayerTab:Toggle({
    Title = "View Inventory",
    Desc = "View the selected player's backpack items",
    Icon = "circle-plus",
    Type = "Toggle",
    Default = false,
    Callback = function(Value)
        if Value then
            if selectedPlayer then
                local target = Players:FindFirstChild(selectedPlayer)
                if target and target:FindFirstChild("Backpack") then
                    local items = {}
                    for _, item in ipairs(target.Backpack:GetChildren()) do
                        if item:IsA("Tool") then
                            table.insert(items, item.Name)
                        end
                    end
                    
                    local itemList = #items > 0 and table.concat(items, ", ") or "Empty"
                    
                    WindUI:Notify({
                        Title = target.Name .. "'s Inventory",
                        Content = itemList,
                        Duration = 6,
                        Icon = "package"
                    })
                else
                    WindUI:Notify({
                        Title = "View Inventory",
                        Content = "Player not found or no backpack",
                        Duration = 3,
                        Icon = "alert"
                    })
                end
            else
                WindUI:Notify({
                    Title = "View Inventory",
                    Content = "No player selected!",
                    Duration = 3,
                    Icon = "alert"
                })
            end

            -- Auto disable after showing
            if viewInventory then
                viewInventory:Set(false)
            end
        end
    end,
})





local trollingSection = PlayerTab:Section({
    Title = "trolling",
    TextXAlignment = "Left",
    TextSize = 17,
})

-- Variables
local autoRagdollEnabled = false
local bringingPlayer = false
local carBugEnabled = false
local carBugTarget = nil

-- ==================== BRING PLAYER ====================
local function startBringPlayer()
    task.spawn(function()
        while bringingPlayer do
            task.wait(0)
            if not selectedPlayer or selectedPlayer == LocalPlayer.Name then continue end
            local target = Players:FindFirstChild(selectedPlayer)
            if not target or not target.Character or not target.Character:FindFirstChild("HumanoidRootPart") then continue end
            if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
            target.Character.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(2, 0, 0)
        end
    end)
end

trollingSection:Toggle({
    Title = "Bring Player",
    Desc = "Bring selected player to you",
    Default = false,
    Callback = function(state)
        bringingPlayer = state
        if state then
            startBringPlayer()
            WindUI:Notify({Title = "Bring Player", Content = "Enabled on " .. (selectedPlayer or "player"), Duration = 3})
        else
            WindUI:Notify({Title = "Bring Player", Content = "Stopped", Duration = 2})
        end
    end
})

-- ==================== CAR BUG ====================
local function updateCarBugPlayers()
    local list = {}
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            table.insert(list, plr.Name)
        end
    end
    -- Assuming your dropdown has a way to update values, e.g. Options.CarBugDropdown:SetValues(list)
    -- Replace the line below with your actual dropdown update method if different
end

trollingSection:Dropdown({
    Title = "Car Bug Target",
    Desc = "Select player for car bug",
    Values = (function()
        local t = {}
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr ~= LocalPlayer then table.insert(t, plr.Name) end
        end
        return t
    end)(),
    Default = "",
    Callback = function(value)
        carBugTarget = value
        if value and value ~= "" then
            WindUI:Notify({Title = "Car Bug", Content = "Target set to: " .. value, Duration = 3})
        end
    end
})

trollingSection:Toggle({
    Title = "Enable Car Bug",
    Desc = "Uses civilian car to bug/kill the selected player",
    Default = false,
    Callback = function(state)
        carBugEnabled = state
        
        if state then
            if not carBugTarget or carBugTarget == "" then
                WindUI:Notify({Title = "Car Bug", Content = "Please select a target first!", Duration = 3})
                carBugEnabled = false
                return
            end
            
            task.spawn(function()
                while carBugEnabled do
                    task.wait()
                    
                    local lpChar = LocalPlayer.Character
                    if not lpChar or not lpChar:FindFirstChild("HumanoidRootPart") then continue end
                    
                    local target = Players:FindFirstChild(carBugTarget)
                    if not target or not target.Character or not target.Character:FindFirstChild("HumanoidRootPart") then continue end
                    
                    -- Find empty car
                    local car = nil
                    for _, v in ipairs(workspace.CivCars:GetChildren()) do
                        local seat = v:FindFirstChild("DriveSeat")
                        if seat and not seat.Occupant then
                            car = v
                            break
                        end
                    end
                    
                    if not car then continue end
                    
                    local seat = car:FindFirstChild("DriveSeat")
                    if not seat or seat.Occupant then continue end
                    
                    -- Make car usable
                    if not car:GetAttribute("Usable") then
                        seat:Sit(lpChar.Humanoid)
                        car:SetAttribute("Usable", true)
                        task.wait(0.8)
                        lpChar.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
                        task.wait(0.3)
                    end
                    
                    if not car.PrimaryPart then
                        car.PrimaryPart = car:FindFirstChild("Body") and car.Body:FindFirstChild("#Weight")
                    end
                    
                    if car.PrimaryPart then
                        car:SetPrimaryPartCFrame(target.Character.HumanoidRootPart.CFrame)
                    end
                end
            end)
            
            WindUI:Notify({Title = "Car Bug", Content = "Activated on " .. carBugTarget, Duration = 3})
        else
            WindUI:Notify({Title = "Car Bug", Content = "Disabled", Duration = 3})
        end
    end
})

-- ==================== AUTO RAGDOLL ====================
local function checkGun()
    local current = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
    if current and current:FindFirstChild("GunScript_Local") then return current end
  
    for _, v in pairs(LocalPlayer.Backpack:GetDescendants()) do
        if v:IsA("LocalScript") and v.Name == "GunScript_Local" then
            local tool = v.Parent
            if tool and LocalPlayer.Character then
                LocalPlayer.Character:WaitForChild("Humanoid"):EquipTool(tool)
                task.wait(0.4)
            end
            return tool
        end
    end
    return nil
end

local function dmg(target, hitpart, damage)
    if not target or not target.Character or not target.Character:FindFirstChild(hitpart) then return end
    local tool = LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
    if not tool then return end
    pcall(function()
        ReplicatedStorage.InflictTarget:FireServer(
            tool, LocalPlayer, target.Character.Humanoid,
            target.Character[hitpart], damage,
            {0, 0, false, false, tool.GunScript_Server.IgniteScript, tool.GunScript_Server.IcifyScript, 100, 100},
            {false, 5, 3}, target.Character[hitpart],
            {false, {1930359546}, 1, 1.5, 1}, nil, nil, true
        )
    end)
end

trollingSection:Toggle({
    Title = "Auto Ragdoll Player",
    Desc = "Continuously ragdoll selected player",
    Default = false,
    Callback = function(state)
        autoRagdollEnabled = state
        if state then
            if not selectedPlayer then
                autoRagdollEnabled = false
                WindUI:Notify({Title = "Error", Content = "No player selected!", Duration = 3})
                return
            end
           
            task.spawn(function()
                while autoRagdollEnabled do
                    local target = Players:FindFirstChild(selectedPlayer)
                    if target and target.Character then
                        dmg(target, "HumanoidRootPart", 0.1)
                    end
                    task.wait(0.2)
                end
            end)
            WindUI:Notify({Title = "Auto Ragdoll", Content = "Activated on " .. selectedPlayer, Duration = 3})
        else
            WindUI:Notify({Title = "Auto Ragdoll", Content = "Disabled", Duration = 3})
        end
    end
})

-- ==================== RUIN PLAYER MOVEMENT ====================
trollingSection:Button({
    Title = "Ruin Player Movement",
    Desc = "Need Gun - Slows down / ruins target movement",
    Callback = function()
        if not selectedPlayer then
            WindUI:Notify({Title = "Error", Content = "No player selected", Duration = 3, Icon = "x"})
            return
        end
        local target = Players:FindFirstChild(selectedPlayer)
        if not target or not target.Character or not target.Character:FindFirstChild("HumanoidRootPart") then
            WindUI:Notify({Title = "Ruin Player Movement", Content = "Invalid target", Duration = 3, Icon = "x"})
            return
        end
        local gun = checkGun()
        if not gun then
            WindUI:Notify({Title = "Ruin Player Movement", Content = "No gun found!", Duration = 3, Icon = "x"})
            return
        end
        task.spawn(function()
            local startTime = os.clock()
            WindUI:Notify({Title = "Ruin Player Movement", Content = "Ruining " .. target.Name .. " for 5 seconds...", Duration = 4})
            while os.clock() - startTime < 5 do
                if not target or not target.Character or not target.Character:FindFirstChild("Humanoid") or target.Character.Humanoid.Health <= 0 then
                    break
                end
                local part = target.Character:FindFirstChild("LeftLowerLeg") or target.Character:FindFirstChild("HumanoidRootPart")
                if part then
                    dmg(target, part.Name, 0.5)
                end
                task.wait(0.3)
            end
        end)
       
        WindUI:Notify({Title = "Ruin Player Movement", Content = "Ruining " .. target.Name, Duration = 3})
    end
})

-- ==================== KILL & GOD BUTTONS ====================
trollingSection:Button({
    Title = "Kill Selected Player",
    Desc = "One time kill on selected player",
    Callback = function()
        if not selectedPlayer then
            WindUI:Notify({Title = "Error", Content = "No player selected", Duration = 3})
            return
        end
        local target = Players:FindFirstChild(selectedPlayer)
        if target then
            local gun = checkGun()
            if gun then
                dmg(target, "Head", 1000)
                WindUI:Notify({Title = "Kill", Content = "Killing " .. target.Name, Duration = 3})
            else
                WindUI:Notify({Title = "Error", Content = "No gun found!", Duration = 3})
            end
        end
    end
})

-- ==================== KILLING ALL ====================
trollingSection:Button({
    Title = "Killing All",
    Desc = "Hold Out Gun - Start Killing All (5 seconds)",
    Color = Color3.new(148, 0, 211),
    Locked = false,
    Callback = function()
        local gun = checkGun()
        if not gun then
            WindUI:Notify({
                Title = "Killing All",
                Content = "Gun not found. Equip a gun first.",
                Duration = 3,
                Icon = "x",
            })
            return
        end

        local duration = 5
        local startTime = tick()

        WindUI:Notify({
            Title = "Killing All",
            Content = "Mass killing activated for 5 seconds...",
            Duration = 3,
            Icon = "alert",
        })

        while tick() - startTime < duration do
            local fireRemote = gun:FindFirstChild("Fire") or gun:FindFirstChild("Shoot") or gun:FindFirstChild("Remote")
            if fireRemote and fireRemote:IsA("RemoteEvent") then
                fireRemote:FireServer()
            elseif fireRemote and fireRemote:IsA("RemoteFunction") then
                fireRemote:InvokeServer()
            elseif gun.Activate then
                gun:Activate()
            end

            local handle = gun:FindFirstChild("Handle")
            local muzzleEffect = gun:FindFirstChild("GunScript_Local") and gun.GunScript_Local:FindFirstChild("MuzzleEffect")
            if handle and muzzleEffect and game.ReplicatedStorage:FindFirstChild("VisualizeMuzzle") then
                game.ReplicatedStorage.VisualizeMuzzle:FireServer(
                    handle,
                    true,
                    {false, 7, Color3.new(1, 1.1098, 0), 15, true, 0.02},
                    muzzleEffect
                )
            end

            for _, v in pairs(game.Players:GetPlayers()) do
                if v ~= LocalPlayer then
                    local char = v.Character
                    if char and char:FindFirstChild("Head") and char:FindFirstChild("Humanoid") then
                        dmg(v, "Head", 1000)
                    end
                end
            end

            task.wait(0.1)
        end

        WindUI:Notify({
            Title = "Killing All",
            Content = "Kill command finished (5 seconds)",
            Duration = 3,
            Icon = "check",
        })
    end
})

trollingSection:Button({
    Title = "God All Players",
    Desc = "Make everyone invincible",
    Callback = function()
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("Humanoid") then
                plr.Character.Humanoid.Health = 0/0
            end
        end
        WindUI:Notify({Title = "God All", Content = "Applied to all players", Duration = 3})
    end
})

local BulletModeTab = Window:Tab({
    Title = "Bullet Mode",
    Icon = "shield-ban", 
    Locked = false,
})

-- ==================== BULLET TRACERS (Same as your original) ====================
local BulletTracersConnection = nil
getgenv().BulletColor = Color3.fromRGB(0, 255, 255)   -- Default Cyan

BulletModeTab:Section({
    Title = "Bullet Tracers",
    TextXAlignment = "Left",
    TextSize = 17,
})

BulletModeTab:Toggle({
    Title = "Enable Bullet Tracers",
    Desc = "Shows visible colored bullet trails",
    Default = false,
    Callback = function(state)
        if state then
            if BulletTracersConnection then BulletTracersConnection:Disconnect() end
            
            BulletTracersConnection = workspace.Camera.ChildAdded:Connect(function()
                task.defer(function()
                    for _, v in pairs(workspace.Camera:GetDescendants()) do
                        if v.Name == "Bullet" or v.Name:find("Bullet") then
                            v.Transparency = 0
                            v.Color = getgenv().BulletColor
                            v.Size = Vector3.new(0.4, 0.4, 0.4)
                            v.Material = Enum.Material.Neon
                        end
                    end
                end)
            end)
            
            WindUI:Notify({Title = "Bullet Tracers", Content = "✅ Enabled", Duration = 3})
        else
            if BulletTracersConnection then
                BulletTracersConnection:Disconnect()
                BulletTracersConnection = nil
            end
            WindUI:Notify({Title = "Bullet Tracers", Content = "❌ Disabled", Duration = 3})
        end
    end
})

BulletModeTab:Colorpicker({
    Title = "Tracer Color",
    Desc = "Change bullet tracer color",
    Color = Color3.fromRGB(0, 255, 255),
    Callback = function(color)
        getgenv().BulletColor = color
    end
})

print("✅ Bullet Mode Tab with Tracers Loaded")

local TweetTab = Window:Tab({
    Title = "Tweet",
    Icon = "sun",
    Side = "Left"
})

local tweetSpamming = false

TweetTab:Toggle({
    Title = "Spam Tweet 'J5'",
    Default = false,
    Callback = function(State)
        tweetSpamming = State
        if State then
            task.spawn(function()
                while tweetSpamming do
                    game:GetService("ReplicatedStorage").Resources["#Phone"].Main:FireServer("Tweet", {"CreateTweet", "J5"})
                    task.wait(0.8) -- Faster spam
                end
            end)
        end
    end
})


local CombatTab = Window:Tab({
    Title = "Combat",
    Icon = "sun",
    Side = "Left"
})
-- ==================== POLICE MEGAPHONE SOUNDS ====================
CombatTab:Section({
    Title = "Police Sounds",
    Side = 1
})

CombatTab:Button({
    Title = "🚨 PULL OVER NOW!",
    Callback = function()
        game:GetService("ReplicatedStorage").MegaphoneRemote:FireServer("PULL OVER NOW!")
    end
})

CombatTab:Button({
    Title = "🚨 Move it FOLKS!",
    Callback = function()
        game:GetService("ReplicatedStorage").MegaphoneRemote:FireServer("Move it FOLKS!")
    end
})

CombatTab:Button({
    Title = "🚨 Driver Pull Over!",
    Callback = function()
        game:GetService("ReplicatedStorage").MegaphoneRemote:FireServer("Driver Pull Over!")
    end
})

CombatTab:Button({
    Title = "🚨 Hands UP!",
    Callback = function()
        game:GetService("ReplicatedStorage").MegaphoneRemote:FireServer("Hands UP!")
    end
})


-- ==================== ANIMATIONS / EMOTES TAB ====================
local AnimationsTab = Window:Tab({
    Title = "Animations",
    Icon = "clapperboard",
    Locked = false,
})

local EmotesSection = AnimationsTab:Section({
    Title = "Emotes",
    TextXAlignment = "Left",
    TextSize = 17,
})

local currentTrack = nil

local function PlayEmote(animId, name)
    local character = player.Character
    if not character then 
        WindUI:Notify({Title = "Error", Content = "Character not loaded!", Duration = 2}) 
        return 
    end

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if not humanoid then return end

    -- Stop previous animation
    if currentTrack then 
        pcall(function() currentTrack:Stop() end) 
    end

    local Animation = Instance.new("Animation")
    Animation.AnimationId = "rbxassetid://" .. tostring(animId)

    local success, track = pcall(function()
        return humanoid:LoadAnimation(Animation)
    end)

    if success and track then
        currentTrack = track
        track:Play()
        WindUI:Notify({
            Title = "Emote",
            Content = name .. " is now playing",
            Duration = 2.5,
            Icon = "play"
        })
    else
        WindUI:Notify({
            Title = "Emote Failed",
            Content = "Could not load " .. name,
            Duration = 3,
            Icon = "x"
        })
    end
end

local function StopEmote()
    if currentTrack then
        pcall(function() currentTrack:Stop() end)
        currentTrack = nil
        WindUI:Notify({
            Title = "Emote",
            Content = "Stopped",
            Duration = 2,
            Icon = "stop-circle"
        })
    end
end

-- Main Emotes
EmotesSection:Toggle({ Title = "Twerk", Default = false, Callback = function(s) if s then PlayEmote("15693621070", "Twerk") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Helicopter", Default = false, Callback = function(s) if s then PlayEmote("95301257497525", "Helicopter") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Fight", Default = false, Callback = function(s) if s then PlayEmote("116763940575803", "Fight") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Basketball Headspin", Default = false, Callback = function(s) if s then PlayEmote("92854797386719", "Basketball Headspin") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Assumptions", Default = false, Callback = function(s) if s then PlayEmote("91294374426630", "Assumptions") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Tapout", Default = false, Callback = function(s) if s then PlayEmote("94324173536622", "Tapout") else StopEmote() end end })
EmotesSection:Toggle({ Title = "Push Up", Default = false, Callback = function(s) if s then PlayEmote("115703320436202", "Push Up") else StopEmote() end end })

EmotesSection:Button({
    Title = "Stop Current Emote",
    Color = Color3.new(1, 0, 0),
    Callback = StopEmote
})






local AimBotTab = Window:Tab({
    Title = "AimBot",
    Icon = "crosshair",
    Locked = false,
})

-- Services
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

-- Aimlock Variables
local AimlockEnabled = false
local AimlockKey = Enum.KeyCode.LeftAlt   -- ← Change this key here
local TargetPart = "Head"                 -- Head, HumanoidRootPart, UpperTorso, etc.
local Smoothness = 0.25                   -- Lower = Smoother (0.1 - 0.5 recommended)

local function getClosestPlayer()
    local closest = nil
    local shortestDistance = math.huge
    local mousePos = UserInputService:GetMouseLocation()

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid") and player.Character.Humanoid.Health > 0 then
            local part = player.Character:FindFirstChild(TargetPart) or player.Character:FindFirstChild("HumanoidRootPart")
            if part then
                local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
                if onScreen then
                    local distance = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
                    if distance < shortestDistance then
                        shortestDistance = distance
                        closest = player
                    end
                end
            end
        end
    end
    return closest
end

-- ==================== AIMLOCK SETTINGS ====================

local SettingsSection = AimBotTab:Section({
    Title = "Aimlock Settings",
    TextXAlignment = "Left",
})

SettingsSection:Toggle({
    Title = "Enable Aimlock",
    Desc = "Master toggle for aimlock",
    Default = false,
    Callback = function(state)
        AimlockEnabled = state
        WindUI:Notify({Title = "Aimlock", Content = state and "Enabled" or "Disabled", Duration = 2})
    end
})

SettingsSection:Keybind({
    Title = "Aimlock Key",
    Desc = "Hold this key to activate aimlock",
    Default = AimlockKey,
    Callback = function(key)
        AimlockKey = key
    end
})

SettingsSection:Dropdown({
    Title = "Target Part",
    Desc = "Which body part to aim at",
    Values = {"Head", "UpperTorso", "HumanoidRootPart"},
    Default = "Head",
    Callback = function(value)
        TargetPart = value
    end
})

SettingsSection:Slider({
    Title = "Smoothness",
    Desc = "Lower = Smoother aim",
    Min = 0.1,
    Max = 0.8,
    Default = 0.25,
    Callback = function(value)
        Smoothness = value
    end
})

-- ==================== AIMLOCK MAIN LOOP ====================
RunService.RenderStepped:Connect(function()
    if not AimlockEnabled then return end
    if not UserInputService:IsKeyDown(AimlockKey) then return end

    local targetPlayer = getClosestPlayer()
    
    if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild(TargetPart) then
        local targetPos = targetPlayer.Character[TargetPart].Position
        
        Camera.CFrame = Camera.CFrame:Lerp(
            CFrame.lookAt(Camera.CFrame.Position, targetPos),
            Smoothness
        )
    end
end)

WindUI:Notify({Title = "AimBot Tab", Content = "Aimlock loaded successfully", Duration = 3})







local ExploitsTab = Window:Tab({
    Title = "Exploits",
    Icon = "shield-ban", 
    Locked = false,
})

local SKYBOXTab = Window:Tab({
    Title = "SKYBOX",
    Icon = "eye",
    Locked = false,
})

-- ==================== SKYBOX SYSTEM ====================
local lightingService = game:GetService("Lighting")
local currentSkybox = nil
local selectedSkyboxName = nil 

local function applySkybox(skyboxId, skyboxName)
    -- Remove existing sky
    for _, v in pairs(lightingService:GetChildren()) do
        if v:IsA("Sky") then
            v:Destroy()
        end
    end

    if not skyboxId or skyboxId == "Undo Skybox" then
        local defaultSkyId = "rbxassetid://91458024"
        local sky = Instance.new("Sky")
        sky.SkyboxBk = defaultSkyId
        sky.SkyboxDn = defaultSkyId
        sky.SkyboxFt = defaultSkyId
        sky.SkyboxLf = defaultSkyId
        sky.SkyboxRt = defaultSkyId
        sky.SkyboxUp = defaultSkyId
        sky.Parent = lightingService

        WindUI:Notify({
            Title = "Skybox",
            Content = "Reset to default Roblox sky.",
            Duration = 5
        })
        return
    end

    local sky = Instance.new("Sky")
    sky.SkyboxBk = skyboxId
    sky.SkyboxDn = skyboxId
    sky.SkyboxFt = skyboxId
    sky.SkyboxLf = skyboxId
    sky.SkyboxRt = skyboxId
    sky.SkyboxUp = skyboxId
    sky.Parent = lightingService

    WindUI:Notify({
        Title = "Skybox Enabled",
        Content = (skyboxName or "Custom") .. " skybox activated.",
        Duration = 5
    })
end

local skyboxes = {
    ["Orange Nebula"] = "rbxassetid://10735998943",
    ["Purple Space"] = "rbxassetid://8139676647",
    ["Apocalypse Red"] = "rbxassetid://401664839",
    ["Sunset Sky"] = "rbxassetid://271042516",
    ["Pink Sunset"] = "rbxassetid://600830446",
    ["Looney Tunes Sky"] = "rbxassetid://86274903738973",
    ["Spongebob"] = "rbxassetid://133395736254761",
    ["Simpsons Sky"] = "rbxassetid://131336818699662",
}

local skyboxNames = {}
for name, _ in pairs(skyboxes) do
    table.insert(skyboxNames, name)
end

-- Dropdown
SKYBOXTab:Dropdown({
    Title = "Select Skybox",
    Values = skyboxNames,
    Callback = function(selected)
        selectedSkyboxName = selected
    end
})

-- Toggle Button
SKYBOXTab:Button({
    Title = "Enable / Disable Skybox",
    Callback = function()
        if not selectedSkyboxName or selectedSkyboxName == "" then
            WindUI:Notify({
                Title = "Skybox",
                Content = "Please select a skybox first!",
                Duration = 4
            })
            return
        end

        local assetId = skyboxes[selectedSkyboxName]

        if currentSkybox == assetId then
            -- Disable
            applySkybox("Undo Skybox")
            currentSkybox = nil
        else
            -- Enable
            applySkybox(assetId, selectedSkyboxName)
            currentSkybox = assetId
        end
    end
})

-- Extra Button: Reset Skybox
SKYBOXTab:Button({
    Title = "Reset to Default Sky",
    Callback = function()
        applySkybox("Undo Skybox")
        currentSkybox = nil
        selectedSkyboxName = nil
    end
})

------------------------------------------------
-- CUSTOM SKY (Original Toggle from your script)
------------------------------------------------
local CustomSky = nil

local function enableCustomSky()
    -- Remove any existing sky
    for _, v in pairs(lightingService:GetChildren()) do
        if v:IsA("Sky") then v:Destroy() end
    end

    CustomSky = Instance.new("Sky")
    CustomSky.Name = "ScorpioSky"

    local SkyID = "rbxassetid://81048518056519"   -- Original ID from your script

    CustomSky.SkyboxBk = SkyID
    CustomSky.SkyboxDn = SkyID
    CustomSky.SkyboxFt = SkyID
    CustomSky.SkyboxLf = SkyID
    CustomSky.SkyboxRt = SkyID
    CustomSky.SkyboxUp = SkyID

    CustomSky.Parent = lightingService

    WindUI:Notify({
        Title = "Custom Sky",
        Content = "Purple Scorpio Sky Activated",
        Duration = 4,
        Icon = "sun"
    })
end

local function disableCustomSky()
    if CustomSky then
        CustomSky:Destroy()
        CustomSky = nil
    end
    WindUI:Notify({
        Title = "Custom Sky",
        Content = "Custom Sky Disabled",
        Duration = 3,
        Icon = "sun"
    })
end

SKYBOXTab:Toggle({
    Title = "Custom Sky (BRONX.CC)",
    Desc = "Original purple sky from BRONX.CC Tools",
    Default = false,
    Callback = function(state)
        if state then
            enableCustomSky()
        else
            disableCustomSky()
        end
    end
})

print("✅ Skybox Tab Loaded Successfully!")



local BuyItemsTab = Window:Tab({
    Title = "Buy Items Shop",
    Icon = "shopping-bag",
    Locked = false,
})

-- ==================== BUY ITEMS SECTION ====================

BuyItemsTab:Button({
    Title = "Buy Red Camo Gloves",
    Desc = "Purchase Red Camo Gloves",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("RedCamoGloves")
        WindUI:Notify({Title = "✅ Bought", Content = "Red Camo Gloves", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Yellow Camo Gloves",
    Desc = "Purchase Yellow Camo Gloves",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("YelloCamoGloves")
        WindUI:Notify({Title = "✅ Bought", Content = "Yellow Camo Gloves", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Purple Camo Gloves",
    Desc = "Purchase Purple Camo Gloves",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("PurpleCamoGloves")
        WindUI:Notify({Title = "✅ Bought", Content = "Purple Camo Gloves", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Water",
    Desc = "Purchase Water",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("Water")
        WindUI:Notify({Title = "✅ Bought", Content = "Water", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Fake Card",
    Desc = "Purchase Fake Card",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer("FakeCard")
        WindUI:Notify({Title = "✅ Bought", Content = "Fake Card", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Camo Shiesty",
    Desc = "Purchase Camo Shiesty",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("CamoShiesty")
        WindUI:Notify({Title = "✅ Bought", Content = "Camo Shiesty", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Extended",
    Desc = "Purchase Extended Magazine",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer(".Extended")
        WindUI:Notify({Title = "✅ Bought", Content = "Extended Mag", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Drum",
    Desc = "Purchase Drum Magazine",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer(".Drum")
        WindUI:Notify({Title = "✅ Bought", Content = "Drum Mag", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy 5.56",
    Desc = "Purchase 5.56 Ammo",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer("5.56")
        WindUI:Notify({Title = "✅ Bought", Content = "5.56 Ammo", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy 7.62",
    Desc = "Purchase 7.62 Ammo",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer("7.62")
        WindUI:Notify({Title = "✅ Bought", Content = "7.62 Ammo", Duration = 2})
    end
})

BuyItemsTab:Button({
    Title = "Buy Bandage",
    Desc = "Purchase Bandage",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer("Bandage")
        WindUI:Notify({Title = "✅ Bought", Content = "Bandage", Duration = 2})
    end
})

-- ==================== QUICK BUY ====================

BuyItemsTab:Section({
    Title = "Quick Buy",
    TextXAlignment = "Left",
    TextSize = 17,
})

-- Guns & Ammo
BuyItemsTab:Dropdown({
    Title = "🔫 Guns & Ammo",
    Values = {"Draco + 7.62", "AR Pistol + 5.56", "Glock 17 + Ext", "Glock 22 + Ext", "Extended Mag", "Drum Mag", "7.62 Ammo", "5.56 Ammo"},
    Callback = function(item)
        local RS = game:GetService("ReplicatedStorage")
        if string.find(item, "Draco") then
            RS.ShopRemote5:InvokeServer("Draco")
            task.wait(0.2)
            RS.ExoticShopRemote:InvokeServer("7.62")
        elseif string.find(item, "AR Pistol") then
            RS.ShopRemote5:InvokeServer("ARPistol")
            task.wait(0.2)
            RS.ExoticShopRemote:InvokeServer("5.56")
        elseif string.find(item, "Glock") then
            RS.ShopRemote5:InvokeServer(item:match("Glock %d+"))
            task.wait(0.2)
            RS.ExoticShopRemote:InvokeServer(".Extended")
        elseif string.find(item, "Mag") then
            RS.ExoticShopRemote:InvokeServer(string.find(item, "Drum") and ".Drum" or ".Extended")
        else
            RS.ExoticShopRemote:InvokeServer(item)
        end
        WindUI:Notify({Title = "✅ Bought", Content = item, Duration = 2})
    end
})

-- Exotic Items
BuyItemsTab:Dropdown({
    Title = "🌿 Exotic Items",
    Values = {"FijiWater", "FreshWater", "Ice-Fruit Bag", "Ice-Fruit Cupz", "FakeCard", "Lemonade", "Bandage"},
    Callback = function(item)
        game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(item)
        WindUI:Notify({Title = "✅ Bought", Content = item, Duration = 2})
    end
})

-- Bags
BuyItemsTab:Dropdown({
    Title = "🎒 Bags",
    Values = {"SmallBag", "MediumBag", "LargeBag"},
    Callback = function(bag)
        local player = game.Players.LocalPlayer
        local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        
        local item = workspace:FindFirstChild(bag, true) or workspace.GUNS:FindFirstChild(bag, true)
        if item then
            local prompt = item:FindFirstChildWhichIsA("ProximityPrompt")
            if prompt then
                getgenv().SwimMethod = true
                hrp.CFrame = prompt.Parent.CFrame + Vector3.new(0, 3, 0)
                task.wait(0.4)
                prompt.HoldDuration = 0
                fireproximityprompt(prompt)
                task.wait(0.5)
                getgenv().SwimMethod = false
                WindUI:Notify({Title = "✅ Grabbed", Content = bag, Duration = 2})
            end
        else
            WindUI:Notify({Title = "Error", Content = bag .. " not found", Duration = 3})
        end
    end
})










local VisualsTab = Window:Tab({
    Title = "Visuals",
    Icon = "eye",
    Locked = false,
})

-- ==================== ESP SYSTEM ====================
local CS_ESP_Settings = {
    Enabled = false,
    CornerBoxes = false,
    Chams = false,
    Distance = false,
    Weapons = false,
    HealthBars = false,
    Names = false,
    MaxDistance = 500,
    Accent = Color3.fromRGB(148, 0, 211),   -- Purple
    ChamFill = Color3.fromRGB(35, 35, 35),
}

local CS_ESP_Players = game:GetService("Players")
local CS_ESP_RunService = game:GetService("RunService")
local CS_ESP_CoreGui = game:GetService("CoreGui")
local CS_ESP_Camera = workspace.CurrentCamera
local CS_ESP_LocalPlayer = CS_ESP_Players.LocalPlayer

local CS_ESP_Gui = Instance.new("ScreenGui")
CS_ESP_Gui.Name = "BRONX.CC_VisualsESP"
CS_ESP_Gui.IgnoreGuiInset = true
CS_ESP_Gui.ResetOnSpawn = false
CS_ESP_Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
CS_ESP_Gui.Parent = CS_ESP_CoreGui

local CS_ESP_Objects = {}

local function CS_ESP_NewLine(parent)
    local f = Instance.new("Frame")
    f.BackgroundColor3 = CS_ESP_Settings.Accent
    f.BorderSizePixel = 0
    f.Visible = false
    f.Parent = parent
    return f
end

local function CS_ESP_NewText(parent)
    local t = Instance.new("TextLabel")
    t.BackgroundTransparency = 1
    t.TextColor3 = Color3.fromRGB(230, 230, 230)
    t.TextStrokeTransparency = 0.35
    t.Font = Enum.Font.GothamMedium
    t.TextSize = 12
    t.Visible = false
    t.Parent = parent
    return t
end

local function CS_ESP_Create(plr)
    if plr == CS_ESP_LocalPlayer or CS_ESP_Objects[plr] then return end

    local holder = Instance.new("Folder")
    holder.Name = "ESP_" .. plr.Name
    holder.Parent = CS_ESP_Gui

    local box = {}
    for i = 1, 8 do
        box[i] = CS_ESP_NewLine(holder)
    end

    local distance = CS_ESP_NewText(holder)
    local weapon = CS_ESP_NewText(holder)
    local name = CS_ESP_NewText(holder)
    local healthBack = Instance.new("Frame")
    healthBack.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
    healthBack.BorderSizePixel = 0
    healthBack.Visible = false
    healthBack.Parent = holder

    local healthFill = Instance.new("Frame")
    healthFill.BackgroundColor3 = Color3.fromRGB(148, 0, 211)
    healthFill.BorderSizePixel = 0
    healthFill.Parent = healthBack

    local highlight = Instance.new("Highlight")
    highlight.Name = "BRONX.CC_Chams"
    highlight.FillColor = CS_ESP_Settings.ChamFill
    highlight.OutlineColor = CS_ESP_Settings.Accent
    highlight.FillTransparency = 0.55
    highlight.OutlineTransparency = 0
    highlight.Enabled = false
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Parent = CS_ESP_CoreGui

    CS_ESP_Objects[plr] = {
        Holder = holder,
        Box = box,
        Distance = distance,
        Weapon = weapon,
        Name = name,
        HealthBack = healthBack,
        HealthFill = healthFill,
        Highlight = highlight,
    }
end

local function CS_ESP_Remove(plr)
    local obj = CS_ESP_Objects[plr]
    if not obj then return end
    pcall(function() obj.Holder:Destroy() end)
    pcall(function() obj.Highlight:Destroy() end)
    CS_ESP_Objects[plr] = nil
end

local function CS_ESP_SetBox(box, x, y, w, h)
    local thick = 2
    local len = math.clamp(math.floor(w * 0.25), 8, 28)

    box[1].Position = UDim2.fromOffset(x, y)
    box[1].Size = UDim2.fromOffset(len, thick)
    box[2].Position = UDim2.fromOffset(x, y)
    box[2].Size = UDim2.fromOffset(thick, len)

    box[3].Position = UDim2.fromOffset(x + w - len, y)
    box[3].Size = UDim2.fromOffset(len, thick)
    box[4].Position = UDim2.fromOffset(x + w - thick, y)
    box[4].Size = UDim2.fromOffset(thick, len)

    box[5].Position = UDim2.fromOffset(x, y + h - thick)
    box[5].Size = UDim2.fromOffset(len, thick)
    box[6].Position = UDim2.fromOffset(x, y + h - len)
    box[6].Size = UDim2.fromOffset(thick, len)

    box[7].Position = UDim2.fromOffset(x + w - len, y + h - thick)
    box[7].Size = UDim2.fromOffset(len, thick)
    box[8].Position = UDim2.fromOffset(x + w - thick, y + h - len)
    box[8].Size = UDim2.fromOffset(thick, len)
end

local function CS_ESP_GetWeapon(char, plr)
    local tool = char and char:FindFirstChildOfClass("Tool")
    if tool then return tool.Name end
    local bp = plr:FindFirstChildOfClass("Backpack")
    if bp then
        local backpackTool = bp:FindFirstChildOfClass("Tool")
        if backpackTool then return backpackTool.Name end
    end
    return "None"
end

local function CS_ESP_Hide(obj)
    if not obj then return end
    for _, v in ipairs(obj.Box) do v.Visible = false end
    obj.Distance.Visible = false
    obj.Weapon.Visible = false
    obj.Name.Visible = false 
    obj.HealthBack.Visible = false
    obj.Highlight.Enabled = false
end

for _, plr in ipairs(CS_ESP_Players:GetPlayers()) do
    CS_ESP_Create(plr)
end

CS_ESP_Players.PlayerAdded:Connect(CS_ESP_Create)
CS_ESP_Players.PlayerRemoving:Connect(CS_ESP_Remove)

CS_ESP_RunService.RenderStepped:Connect(function()
    CS_ESP_Camera = workspace.CurrentCamera

    for _, plr in ipairs(CS_ESP_Players:GetPlayers()) do
        if plr ~= CS_ESP_LocalPlayer then
            CS_ESP_Create(plr)
            local obj = CS_ESP_Objects[plr]
            local char = plr.Character
            local root = char and char:FindFirstChild("HumanoidRootPart")
            local hum = char and char:FindFirstChildOfClass("Humanoid")

            if not CS_ESP_Settings.Enabled or not char or not root or not hum or hum.Health <= 0 then
                CS_ESP_Hide(obj)
                continue
            end

            local dist = (CS_ESP_Camera.CFrame.Position - root.Position).Magnitude
            if dist > CS_ESP_Settings.MaxDistance then
                CS_ESP_Hide(obj)
                continue
            end

            local rootPos, onScreen = CS_ESP_Camera:WorldToViewportPoint(root.Position)
            if not onScreen then
                CS_ESP_Hide(obj)
                continue
            end

            local scale = math.clamp(1 / (rootPos.Z * math.tan(math.rad(CS_ESP_Camera.FieldOfView / 2)) * 2) * 1000, 0, 1000)
            local width = math.floor(4 * scale)
            local height = math.floor(6 * scale)
            local x = math.floor(rootPos.X - width / 2)
            local y = math.floor(rootPos.Y - height / 2)

            for _, line in ipairs(obj.Box) do
                line.BackgroundColor3 = CS_ESP_Settings.Accent
                line.Visible = CS_ESP_Settings.CornerBoxes
            end
            if CS_ESP_Settings.CornerBoxes then
                CS_ESP_SetBox(obj.Box, x, y, width, height)
            end

            obj.Highlight.Adornee = char
            obj.Highlight.FillColor = CS_ESP_Settings.ChamFill
            obj.Highlight.OutlineColor = CS_ESP_Settings.Accent
            obj.Highlight.Enabled = CS_ESP_Settings.Chams

            obj.Distance.Text = tostring(math.floor(dist)) .. " studs"
            obj.Distance.Position = UDim2.fromOffset(x + width / 2 - 55, y + height + 2)
            obj.Distance.Visible = CS_ESP_Settings.Distance

            obj.Weapon.Text = CS_ESP_GetWeapon(char, plr)
            obj.Weapon.Position = UDim2.fromOffset(x + width / 2 - 75, y - 18)
            obj.Weapon.Visible = CS_ESP_Settings.Weapons

            obj.Name.Text = plr.Name
            obj.Name.Position = UDim2.fromOffset(x + width / 2 - 75, y - 32)
            obj.Name.Visible = CS_ESP_Settings.Names  

            obj.HealthBack.Position = UDim2.fromOffset(x - 7, y)
            obj.HealthBack.Size = UDim2.fromOffset(4, height)
            obj.HealthBack.Visible = CS_ESP_Settings.HealthBars

            local hpPercent = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
            obj.HealthFill.Position = UDim2.fromScale(0, 1 - hpPercent)
            obj.HealthFill.Size = UDim2.fromScale(1, hpPercent)
        end
    end
end)

-- ==================== ESP UI CONTROLS ====================
local ESPSection = VisualsTab:Section({
    Title = "ESP",
    TextXAlignment = "Left",
    TextSize = 17,
})

VisualsTab:Toggle({
    Title = "Enable ESP",
    Desc = "Master toggle for all visuals",
    Icon = "eye",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.Enabled = v
    end
})

VisualsTab:Toggle({
    Title = "Corner Boxes",
    Desc = "Draw corner boxes on players",
    Icon = "square",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.CornerBoxes = v
    end
})

VisualsTab:Toggle({
    Title = "Chams",
    Desc = "Highlight players through walls",
    Icon = "sparkles",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.Chams = v
    end
})

VisualsTab:Toggle({
    Title = "Distance",
    Desc = "Show player distance",
    Icon = "ruler",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.Distance = v
    end
})

VisualsTab:Toggle({
    Title = "Weapon Holdings",
    Desc = "Show equipped tool / weapon",
    Icon = "crosshair",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.Weapons = v
    end
})

VisualsTab:Toggle({
    Title = "Health Bars",
    Desc = "Show player health bars",
    Icon = "heart",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.HealthBars = v
    end
})

VisualsTab:Toggle({
    Title = "Name ESP",
    Desc = "Show player names",
    Icon = "user",
    Type = "Checkbox",
    Default = false,
    Callback = function(v)
        CS_ESP_Settings.Names = v
    end
})

VisualsTab:Slider({
    Title = "ESP Max Distance",
    Desc = "How far ESP renders",
    Step = 10,
    Value = {
        Min = 50,
        Max = 3000,
        Default = 500,
    },
    Callback = function(v)
        CS_ESP_Settings.MaxDistance = v
    end
})

-- ==================== TIME OF DAY ====================
VisualsTab:Section({
    Title = "World",
    TextXAlignment = "Left",
    TextSize = 17,
})

VisualsTab:Slider({
    Title = "Time of Day",
    Desc = "0 = Midnight → 12 = Noon → 24 = Midnight",
    Step = 0.1,
    Value = {
        Min = 0,
        Max = 24,
        Default = 12,
    },
    Callback = function(value)
        local hour = math.floor(value)
        local minutes = math.floor((value - hour) * 60)
        local timeString = string.format("%02d:%02d:00", hour, minutes)
        
        game.Lighting.TimeOfDay = timeString
    end
})

-- ==================== GRAPHICS ====================
VisualsTab:Section({
    Title = "Graphics",
    TextXAlignment = "Left",
    TextSize = 17,
})

VisualsTab:Toggle({
    Title = "Fullbright",
    Desc = "Bright everywhere",
    Callback = function(state)
        game.Lighting.Brightness = state and 3 or 1
        game.Lighting.ClockTime = state and 12 or 14
        game.Lighting.FogEnd = state and 100000 or 1000
        game.Lighting.GlobalShadows = not state
    end
})

VisualsTab:Toggle({
    Title = "No Fog",
    Callback = function(state)
        game.Lighting.FogEnd = state and 100000 or 1000
    end
})

VisualsTab:Slider({
    Title = "Brightness",
    Value = {Min = 0.5, Max = 3, Default = 1},
    Callback = function(v) game.Lighting.Brightness = v end
})

VisualsTab:Slider({
    Title = "Time of Day",
    Value = {Min = 0, Max = 24, Default = 12},
    Callback = function(v) game.Lighting.TimeOfDay = v .. ":00:00" end
})

VisualsTab:Button({
    Title = "Reset Graphics",
    Color = Color3.new(1,0,0),
    Callback = function()
        game.Lighting.Brightness = 1
        game.Lighting.ClockTime = 14
        game.Lighting.FogEnd = 1000
        game.Lighting.GlobalShadows = true
        WindUI:Notify({Title = "Graphics", Content = "Reset done", Duration = 3})
    end
})












local FunTab = Window:Tab({
    Title = "Fun",
    Icon = "smile",
    Locked = false,
})

local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer

-- ==================== PLAYER FLY (Head-Anchored Swim Method) ====================
local flyEnabled = false
local flySpeed = 5
local CFloop = nil

FunTab:Toggle({
    Title = "Player Fly",
    Default = false,
    Callback = function(state)
        flyEnabled = state
        local camera = workspace.CurrentCamera

        if state then
            getgenv().SwimMethod = true
            task.wait(0.3)

            local character = player.Character or player.CharacterAdded:Wait()
            local humanoid = character:FindFirstChildOfClass("Humanoid")
            local head = character:FindFirstChild("Head")

            if not humanoid or not head then return end

            humanoid.PlatformStand = true
            head.Anchored = true

            if CFloop then CFloop:Disconnect() end

            CFloop = RunService.Heartbeat:Connect(function(deltaTime)
                if not flyEnabled or not character.Parent then
                    if CFloop then CFloop:Disconnect() end
                    return
                end

                local moveDir = humanoid.MoveDirection * (flySpeed * deltaTime * 100)
                local headCFrame = head.CFrame
                local camCFrame = camera.CFrame

                local offset = headCFrame:ToObjectSpace(camCFrame).Position
                local adjustedCam = camCFrame * CFrame.new(-offset.X, -offset.Y, -offset.Z + 1)

                local objectVel = CFrame.new(adjustedCam.Position, Vector3.new(headCFrame.X, adjustedCam.Y, headCFrame.Z))
                    :VectorToObjectSpace(moveDir)

                head.CFrame = CFrame.new(head.Position) * (adjustedCam - adjustedCam.Position) * CFrame.new(objectVel)
            end)

        else
            if CFloop then
                CFloop:Disconnect()
                CFloop = nil
            end

            local character = player.Character
            if character then
                local humanoid = character:FindFirstChildOfClass("Humanoid")
                local head = character:FindFirstChild("Head")

                if humanoid then
                    humanoid.PlatformStand = false
                    humanoid:ChangeState(Enum.HumanoidStateType.Running)
                end
                if head then
                    head.Anchored = false
                end
            end
            getgenv().SwimMethod = false
        end
    end
})

FunTab:Slider({
    Title = "Fly Speed",
    Value = { Min = 1, Max = 20, Default = 5 },
    Callback = function(value)
        flySpeed = value
    end
})

-- ==================== CAR FLY (Mobile D-Pad Support) ====================
local CarFly = { Enabled = false, Speed = 150 }
local flyConnection = nil

local function StopCarFly()
    CarFly.Enabled = false
    if flyConnection then
        flyConnection:Disconnect()
        flyConnection = nil
    end
    for _, v in pairs(workspace:GetDescendants()) do
        if v.Name == "BRONX.CCCarVelocity" or v.Name == "BRONX.CCCarGyro" then
            v:Destroy()
        end
    end
end

local function StartCarFly()
    local char = player.Character
    if not char then return end
    local humanoid = char:FindFirstChildWhichIsA("Humanoid")
    if not humanoid then return end

    local seat = humanoid.SeatPart
    if not seat or not seat:IsA("VehicleSeat") then
        WindUI:Notify({ Title = "Car Fly", Content = "Sit in a car first!", Duration = 3 })
        return
    end

    local root = seat.Parent.PrimaryPart or seat
    StopCarFly()

    CarFly.Enabled = true

    -- BodyVelocity + BodyGyro
    local bv = Instance.new("BodyVelocity")
    bv.Name = "BRONX.CCCarVelocity"
    bv.MaxForce = Vector3.new(1e9, 1e9, 1e9)
    bv.Parent = root

    local bg = Instance.new("BodyGyro")
    bg.Name = "BRONX.CCCarGyro"
    bg.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
    bg.P = 50000
    bg.D = 1000
    bg.CFrame = root.CFrame
    bg.Parent = root

    flyConnection = RunService.RenderStepped:Connect(function()
        if not CarFly.Enabled or not seat.Parent then 
            StopCarFly() 
            return 
        end

        local moveDir = Vector3.zero
        local cam = workspace.CurrentCamera

        -- Desktop Controls
        if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir += cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir -= cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir -= cam.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir += cam.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0,1,0) end
        if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir -= Vector3.new(0,1,0) end

        if moveDir.Magnitude > 0 then
            bv.Velocity = moveDir.Unit * CarFly.Speed
            bg.CFrame = CFrame.new(root.Position, root.Position + moveDir)
        else
            bv.Velocity = Vector3.zero
        end
    end)
end

-- Toggle
FunTab:Toggle({
    Title = "Car Fly",
    Default = false,
    Callback = function(state)
        if state then
            StartCarFly()
        else
            StopCarFly()
        end
    end
})

FunTab:Slider({
    Title = "Car Fly Speed",
    Value = { Min = 50, Max = 400, Default = 150 },
    Callback = function(v)
        CarFly.Speed = v
    end
})

-- ==================== SPIN FEATURE ====================
local spinEnabled = false
local spinSpeed = 10
local spinConnection

local function StartSpin()
    if spinConnection then spinConnection:Disconnect() end
    spinConnection = RunService.RenderStepped:Connect(function(dt)
        if not spinEnabled then return end
        local char = player.Character
        if not char then return end
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(spinSpeed) * dt * 60, 0)
    end)
end

FunTab:Toggle({
    Title = "Spin",
    Default = false,
    Callback = function(state)
        spinEnabled = state
        if state then
            StartSpin()
        else
            if spinConnection then spinConnection:Disconnect() end
        end
    end
})

FunTab:Slider({
    Title = "Spin Speed",
    Value = { Min = 1, Max = 100, Default = 10 },
    Callback = function(v)
        spinSpeed = v
    end
})

-- ==================== REQUESTED FEATURES ====================
ReplicatedStorage = game:GetService("ReplicatedStorage")

-- 🥛 Break All Glass (Loop)
FunTab:Toggle({
    Title = "🥛 Break All Glass (Loop)",
    Default = false,
    Callback = function(state)
        if state then
            getgenv()._breakGlassLoop = true
            task.spawn(function()
                while getgenv()._breakGlassLoop do
                    for _, v in ipairs(workspace:GetDescendants()) do
                        if (v:IsA("BasePart") or v:IsA("MeshPart")) and v.Name == "Glass" then
                            ReplicatedStorage.BreakGlass:InvokeServer(v)
                        end
                    end
                    task.wait(0.01)
                end
            end)
        else
            getgenv()._breakGlassLoop = false
        end
    end
})
local UtilitiesTab = Window:Tab({
    Title = "Utilities",
    Icon = "circle-ellipsis", 
    Locked = false,
})

local AutoFarmTab = Window:Tab({
    Title = "Auto Farm",
    Icon = "circle-dollar-sign",
    Locked = false,
})

-- ==================== GRAB LOOT BAGS ====================
local collecting = false
local farmingCoroutine = nil

AutoFarmTab:Toggle({
    Title = "Grab Loot Bags",
    Desc = "Automatically grab loot bags using SwimMethod teleport.",
    Icon = "bird",
    Type = "Checkbox",
    Default = false,
    Callback = function(Value)
        getgenv().TeleportSettings = { Speed = 0.10 }
        getgenv().SwimMethod = false

        local function enableSwimMethod()
            getgenv().SwimMethod = true
            task.wait(1)
        end

        local function disableSwimMethod()
            getgenv().SwimMethod = false
        end

        local function SwimTeleport(destinationCFrame)
            local player = game.Players.LocalPlayer
            local character = player.Character
            if not character or not character:FindFirstChild("HumanoidRootPart") then return end

            local HRP = character.HumanoidRootPart
            enableSwimMethod()
            task.wait(getgenv().TeleportSettings.Speed)

            HRP.CFrame = destinationCFrame + Vector3.new(0, 3, 0)

            task.delay(1, function()
                disableSwimMethod()
            end)
        end

        local function grabProximityPrompt(prompt)
            if prompt and prompt:IsA("ProximityPrompt") then
                prompt.HoldDuration = 0
                prompt.RequiresLineOfSight = false
                fireproximityprompt(prompt)
            end
        end

        local function startCollecting()
            local player = game.Players.LocalPlayer
            local character, humanoidRootPart

            local function setupCharacter()
                character = player.Character or player.CharacterAdded:Wait()
                humanoidRootPart = character:WaitForChild("HumanoidRootPart")
            end

            setupCharacter()
            player.CharacterAdded:Connect(setupCharacter)

            while collecting do
                local lootBagObject = workspace.Storage:FindFirstChild("Baggy")

                if lootBagObject and lootBagObject:FindFirstChild("stealprompt") then
                    local prompt = lootBagObject:FindFirstChild("stealprompt")
                    local originalPosition = humanoidRootPart.CFrame

                    SwimTeleport(lootBagObject.CFrame)
                    task.wait(0.1)

                    if (humanoidRootPart.Position - lootBagObject.Position).Magnitude < 5 then
                        grabProximityPrompt(prompt)
                    else
                        SwimTeleport(originalPosition)
                    end

                    task.wait(0.2)
                    SwimTeleport(originalPosition)
                end

                task.wait(1)
            end
        end

        collecting = Value

        if collecting then
            if not farmingCoroutine then
                farmingCoroutine = coroutine.create(startCollecting)
                coroutine.resume(farmingCoroutine)
            end
        else
            collecting = false
            if farmingCoroutine then
                farmingCoroutine = nil
            end
        end
    end
})

-- ==================== SEARCH TRASHBAGS ====================
local originalPosition = nil
local player = game.Players.LocalPlayer

local function teleport(x, y, z)
    local char = player.Character or player.CharacterAdded:Wait()
    local humanoid = char:WaitForChild("Humanoid")
    local root = char:WaitForChild("HumanoidRootPart")

    humanoid:ChangeState(0)
    repeat task.wait() until not player:GetAttribute("LastACPos")
    root.CFrame = CFrame.new(x, y, z)
end

AutoFarmTab:Toggle({
    Title = "Search Trashbags",
    Desc = "Automatically loot trashbags and sell items",
    Icon = "trash-2",
    Type = "Checkbox",
    Default = false,
    Callback = function(Value)
        getgenv().loottrash = Value
        getgenv().SwimMethod = Value 

        if Value then
            local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                originalPosition = hrp.Position
            end

            -- Auto Sell Loop
            task.spawn(function()
                while getgenv().loottrash do
                    pcall(function()
                        local gui = player:WaitForChild("PlayerGui")
                        local pawnGui = gui:FindFirstChild("Bronx PAWNING")
                        if pawnGui then
                            local list = pawnGui.Frame:FindFirstChild("Holder") and pawnGui.Frame.Holder:FindFirstChild("List")
                            if list then
                                for _, frame in ipairs(list:GetChildren()) do
                                    if frame:IsA("Frame") and frame:FindFirstChild("Item") then
                                        local itemName = frame.Item.Text
                                        while player.Backpack:FindFirstChild(itemName) do
                                            game.ReplicatedStorage.PawnRemote:FireServer(itemName)
                                            task.wait(0.05)
                                        end
                                    end
                                end
                            end
                        end
                    end)
                    task.wait(1)
                end
            end)

            -- Auto Loot Trashbags
            task.spawn(function()
                while getgenv().loottrash do
                    task.wait()
                    for _, v in pairs(workspace:GetDescendants()) do
                        if not getgenv().loottrash then break end
                        if v:IsA("ProximityPrompt") and v.Name == "ProximityPrompt" and v.Parent.Name == "DumpsterPromt" then
                            local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
                            if hrp then
                                teleport(v.Parent.Position.X, v.Parent.Position.Y, v.Parent.Position.Z + 3)
                            end
                            workspace.CurrentCamera.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.Position, v.Parent.Position)
                            task.wait(0.3)
                            for _ = 1, 10 do 
                                fireproximityprompt(v) 
                            end
                            task.wait(0.1)
                        end
                    end
                end

                if originalPosition then
                    teleport(originalPosition.X, originalPosition.Y, originalPosition.Z)
                    originalPosition = nil
                end
            end)

        else
            getgenv().loottrash = false
            getgenv().SwimMethod = false
        end
    end
})

-- ==================== STUDIO ROB ====================
local function RobStudioAuto()
    local camera = workspace.CurrentCamera
    local RunService = game:GetService("RunService")
    local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
    if not root then return end

    -- Enable instant prompts
    for _, v in pairs(workspace.StudioPay.Money:GetDescendants()) do
        if v:IsA("ProximityPrompt") and v.Name == "Prompt" then
            v.HoldDuration = 0
            v.RequiresLineOfSight = false
        end
    end

    local prompts = {}
    for _, v in pairs(workspace.StudioPay.Money:GetDescendants()) do
        if v:IsA("ProximityPrompt") and v.Name == "Prompt" and v.Enabled then
            table.insert(prompts, v)
        end
    end

    if #prompts == 0 then
        WindUI:Notify({
            Title = "Studio Robbery",
            Content = "Studio already robbed!",
            Duration = 6.5,
            Icon = "bird", 
        })
        return
    end

    local oldCFrame = root.CFrame

    for _, v in ipairs(prompts) do
        getgenv().SwimMethod = true
        root.CFrame = CFrame.new(v.Parent.Position + Vector3.new(0, 3, 0))

        local oldCameraType = camera.CameraType
        camera.CameraType = Enum.CameraType.Scriptable

        local conn = RunService.RenderStepped:Connect(function()
            camera.CFrame = CFrame.lookAt(camera.CFrame.Position, v.Parent.Position)
        end)

        task.wait(0.3)

        repeat
            fireproximityprompt(v)
            task.wait(0.1)
        until not v.Enabled

        conn:Disconnect()
        camera.CameraType = oldCameraType
        getgenv().SwimMethod = false
    end

    root.CFrame = oldCFrame

    WindUI:Notify({
        Title = "Studio Robbery",
        Content = "Studio robbery completed!",
        Duration = 6.5,
        Icon = "bird",
    })
end

AutoFarmTab:Button({
    Title = "Studio Rob",
    Desc = "Automatically rob the entire studio",
    Color = Color3.new(148, 0, 211),
    Callback = function()
        RobStudioAuto()
    end
})


local ShopTab = Window:Tab({
    Title = "Shop",
    Icon = "shopping-cart",
    Locked = false,
})

-- ==================== SHOP GUI SECTION ====================
local toggledGUIs = {}

local shopGUIs = {
    ["Bronx Market"] = "Bronx Market 2",
    ["Tattoo Shop"] = "Bronx TATTOOS",
    ["Open Trunk"] = "TRUNK STORAGE",
    ["BRONX PAWNING"] = "Bronx PAWNING",
    ["BRONX CLOTHING"] = "Bronx CLOTHING",
    ["Gas Station"] = "ShopGUI",
    ["EXOTIC DEALER"] = "ThaShop"
}

local function getKeys(tbl)
    local keys = {}
    for k, _ in pairs(tbl) do
        table.insert(keys, k)
    end
    return keys
end

local shopList = getKeys(shopGUIs)
local currentSelection = nil 

ShopTab:Dropdown({
    Title = "Select Shop",
    Values = shopList,
    Callback = function(option)
        currentSelection = option
    end
})

ShopTab:Button({
    Title = "Open/Close Selected Shop",
    Callback = function()
        if not currentSelection then
            WindUI:Notify({
                Title = "Shop",
                Content = "Please select a shop first!",
                Duration = 3
            })
            return
        end

        local guiName = shopGUIs[currentSelection]
        if not guiName then return end

        local gui = game.Players.LocalPlayer.PlayerGui:FindFirstChild(guiName)
        if gui then
            gui.Enabled = not gui.Enabled
            WindUI:Notify({
                Title = "Shop",
                Content = gui.Enabled and "✅ Opened " .. currentSelection or "❌ Closed " .. currentSelection,
                Duration = 3
            })
        else
            WindUI:Notify({
                Title = "Shop",
                Content = "GUI not found: " .. guiName,
                Duration = 3
            })
        end
    end
})

-- Extra: Quick Open All Shops Button (Optional)
ShopTab:Button({
    Title = "Open All Shops",
    Callback = function()
        for _, guiName in pairs(shopGUIs) do
            local gui = game.Players.LocalPlayer.PlayerGui:FindFirstChild(guiName)
            if gui then
                gui.Enabled = true
            end
        end
        WindUI:Notify({Title = "Shop", Content = "All shops opened!", Duration = 3})
    end
})



local MarketDupeTab = Window:Tab({
    Title = "Market Dupe",
    Icon = "copy",
    Locked = false,
})

local Paragraph = MarketDupeTab:Paragraph({
    Title = [[
1. "Equip whatever tool or item you want to duplicate into your hands"
2. "Press "Market Dupe"
3. "If it doesn't duplicate, run it again"
]],
    Desc = "",
    Color = Color3.fromRGB(13, 105, 172),
    Image = "",
    ImageSize = 1,
    Thumbnail = "",
    ThumbnailSize = 1,
    Locked = false,
    Buttons = {} 
})

local Button = MarketDupeTab:Button({
    Title = "Market Dupe",
    Desc = "Duplicate your market item",
    Color = Color3.fromRGB(13, 105, 172),
    Justify = "Center",
    IconAlign = "Left",
    Icon = "book-copy",
    Locked = false,
    Callback = function()
        local Players = cloneref(game:GetService("Players"))
        local ReplicatedStorage = cloneref(game:GetService("ReplicatedStorage"))
        local Player = Players.LocalPlayer
        local Character = Player.Character or Player.CharacterAdded:Wait()

        local Tool = Character:FindFirstChildOfClass("Tool")
        if not Tool then
            WindUI:Notify({
                Title = "Market Dupe",
                Content = "You need to equip a tool or item first!",
                Duration = 3,
                Icon = "book-copy",
            })
            return
        end

        WindUI:Notify({
            Title = "Market Dupe",
            Content = "Attempting to dupe your item...",
            Duration = 3,
            Icon = "check",
        })

        local ToolName = Tool.Name
        local ToolId = nil

        local function getPing()
            if typeof(Player.GetNetworkPing) == "function" then
                local success, result = pcall(function()
                    return tonumber(string.match(Player:GetNetworkPing(), "%d+"))
                end)
                if success and result then
                    return result
                end
            end

            local t0 = tick()
            local temp = Instance.new("BoolValue", ReplicatedStorage)
            temp.Name = "PingTest_" .. tostring(math.random(10000,99999))
            task.wait(0.1)
            local t1 = tick()
            temp:Destroy()

            return math.clamp((t1 - t0) * 1000, 50, 300)
        end

        local ping = getPing()
        local delay = 0.25 + ((math.clamp(ping, 0, 300) / 300) * 0.03)

        local marketconnection = ReplicatedStorage.MarketItems.ChildAdded:Connect(function(item)
            if item.Name == ToolName then
                local owner = item:WaitForChild("owner", 2)
                if owner and owner.Value == Player.Name then
                    ToolId = item:GetAttribute("SpecialId")
                end
            end
        end)

        task.spawn(function()
            ReplicatedStorage.ListWeaponRemote:FireServer(ToolName, 99999)
        end)

        task.wait(delay)

        task.spawn(function()
            ReplicatedStorage.BackpackRemote:InvokeServer("Store", ToolName)
        end)

        task.wait(3)

        if ToolId then
            task.spawn(function()
                ReplicatedStorage.BuyItemRemote:FireServer(ToolName, "Remove", ToolId)
            end)
        end

        task.spawn(function()
            ReplicatedStorage.BackpackRemote:InvokeServer("Grab", ToolName)
        end)

        marketconnection:Disconnect()
        task.wait(1)

        WindUI:Notify({
            Title = "Market Dupe",
            Content = "✅ Dupe attempt finished! Check your backpack.",
            Duration = 4,
            Icon = "check",
        })
    end
})

-- ==================== AUTO DUPE (LOOP) ====================
local AutoDupeRunning = false
local dupeTask = nil

local function StartAutoDupe()
    if dupeTask then return end

    AutoDupeRunning = true

    dupeTask = task.spawn(function()
        while AutoDupeRunning do
            local Character = game.Players.LocalPlayer.Character
            local Tool = Character and Character:FindFirstChildOfClass("Tool")
            
            if not Tool then
                task.wait(1)
                continue
            end

            local ToolName = Tool.Name
            local ToolId = nil

            local marketconnection = game:GetService("ReplicatedStorage").MarketItems.ChildAdded:Connect(function(item)
                if item.Name == ToolName then
                    local owner = item:WaitForChild("owner", 2)
                    if owner and owner.Value == game.Players.LocalPlayer.Name then
                        ToolId = item:GetAttribute("SpecialId")
                    end
                end
            end)

            pcall(function()
                game:GetService("ReplicatedStorage").ListWeaponRemote:FireServer(ToolName, 999999)
            end)

            task.wait(0.23)

            pcall(function()
                game:GetService("ReplicatedStorage").BackpackRemote:InvokeServer("Store", ToolName)
            end)

            task.wait(2.3)

            pcall(function()
                if ToolId then
                    game:GetService("ReplicatedStorage").BuyItemRemote:FireServer(ToolName, "Remove", ToolId)
                end
            end)

            pcall(function()
                game:GetService("ReplicatedStorage").BackpackRemote:InvokeServer("Grab", ToolName)
            end)

            if marketconnection then
                marketconnection:Disconnect()
            end

            task.wait(3) -- Main loop delay (adjust if needed)
        end
    end)
end

local function StopAutoDupe()
    AutoDupeRunning = false
    if dupeTask then
        task.cancel(dupeTask)
        dupeTask = nil
    end
end

local Toggle = MarketDupeTab:Toggle({
    Title = "Auto Dupe (Loop)",
    Desc = "Automatically dupes equipped tool (loop)",
    Color = Color3.fromRGB(13, 105, 172),
    Justify = "Center",
    IconAlign = "Left",
    Icon = "book-copy",
    Locked = false,
    Callback = function(Value)
        if Value then
            StartAutoDupe()
            WindUI:Notify({
                Title = "Auto Dupe",
                Content = "✅ Auto Dupe Loop Started",
                Duration = 4,
                Icon = "check",
            })
        else
            StopAutoDupe()
            WindUI:Notify({
                Title = "Auto Dupe",
                Content = "⛔ Auto Dupe Loop Stopped",
                Duration = 4,
                Icon = "x",
            })
        end
    end
})

local Lighting = game:GetService("Lighting")

local WorldVisualsTab = Window:Tab({
    Title = "World Visuals",
    Icon = "circle-dollar-sign",
    Locked = false,
})

local WorldSection = WorldVisualsTab:Section({
    Title = "Graphics Enhancements",
    Opened = true,
})

local Lighting = game:GetService("Lighting")

-- STORE ORIGINAL SETTINGS
local oldLighting = {
    Brightness = Lighting.Brightness,
    ClockTime = Lighting.ClockTime,
    FogEnd = Lighting.FogEnd,
    FogStart = Lighting.FogStart,
    Ambient = Lighting.Ambient,
    OutdoorAmbient = Lighting.OutdoorAmbient,
}

local effects = {}

-- =========================
-- COLOR CORRECTION
-- =========================
WorldSection:Toggle({
    Title = "Color Correction",
    Desc = "Improves overall game colors",
    Callback = function(state)
        if state then
            effects.Color = Instance.new("ColorCorrectionEffect")
            effects.Color.Contrast = 0.2
            effects.Color.Saturation = 0.3
            effects.Color.Brightness = 0.05
            effects.Color.Parent = Lighting
        else
            if effects.Color then
                effects.Color:Destroy()
                effects.Color = nil
            end
        end
    end
})

-- =========================
-- BLOOM
-- =========================
WorldSection:Toggle({
    Title = "Bloom",
    Desc = "Adds glow to bright objects",
    Callback = function(state)
        if state then
            effects.Bloom = Instance.new("BloomEffect")
            effects.Bloom.Intensity = 1
            effects.Bloom.Size = 24
            effects.Bloom.Threshold = 0.8
            effects.Bloom.Parent = Lighting
        else
            if effects.Bloom then
                effects.Bloom:Destroy()
                effects.Bloom = nil
            end
        end
    end
})

-- =========================
-- SUN RAYS
-- =========================
WorldSection:Toggle({
    Title = "Sun Rays",
    Desc = "Adds realistic light rays",
    Callback = function(state)
        if state then
            effects.Sun = Instance.new("SunRaysEffect")
            effects.Sun.Intensity = 0.15
            effects.Sun.Spread = 1
            effects.Sun.Parent = Lighting
        else
            if effects.Sun then
                effects.Sun:Destroy()
                effects.Sun = nil
            end
        end
    end
})

-- =========================
-- ATMOSPHERE
-- =========================
WorldSection:Toggle({
    Title = "Atmosphere",
    Desc = "Adds fog + depth realism",
    Callback = function(state)
        if state then
            effects.Atmosphere = Instance.new("Atmosphere")
            effects.Atmosphere.Density = 0.35
            effects.Atmosphere.Offset = 0.1
            effects.Atmosphere.Color = Color3.fromRGB(199, 199, 255)
            effects.Atmosphere.Decay = Color3.fromRGB(90, 90, 120)
            effects.Atmosphere.Parent = Lighting
        else
            if effects.Atmosphere then
                effects.Atmosphere:Destroy()
                effects.Atmosphere = nil
            end
        end
    end
})

-- =========================
-- FULL BRIGHT
-- =========================
WorldSection:Toggle({
    Title = "Full Bright",
    Desc = "Removes darkness completely",
    Callback = function(state)
        if state then
            Lighting.Brightness = 3
            Lighting.FogEnd = 100000
            Lighting.ClockTime = 14
            Lighting.Ambient = Color3.new(1,1,1)
            Lighting.OutdoorAmbient = Color3.new(1,1,1)
        else
            Lighting.Brightness = oldLighting.Brightness
            Lighting.FogEnd = oldLighting.FogEnd
            Lighting.ClockTime = oldLighting.ClockTime
            Lighting.Ambient = oldLighting.Ambient
            Lighting.OutdoorAmbient = oldLighting.OutdoorAmbient
        end
    end
})

-- ==================== ADDED GRAPHICS ====================

-- FPS Booster
WorldSection:Toggle({
    Title = "FPS Booster",
    Desc = "Lowers graphics for better performance",
    Callback = function(state)
        if state then
            settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
            for _, v in pairs(game:GetDescendants()) do
                if v:IsA("BasePart") then
                    v.Material = Enum.Material.Plastic
                    v.Reflectance = 0
                elseif v:IsA("Decal") or v:IsA("Texture") then
                    v.Transparency = 0.5
                elseif v:IsA("ParticleEmitter") or v:IsA("Trail") then
                    v.Enabled = false
                end
            end
            WindUI:Notify({Title = "FPS Booster", Content = "Enabled", Duration = 3})
        else
            settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic
            WindUI:Notify({Title = "FPS Booster", Content = "Disabled", Duration = 3})
        end
    end
})

-- Bright Mode
WorldSection:Toggle({
    Title = "Bright Mode",
    Desc = "Makes the game brighter",
    Callback = function(state)
        if state then
            Lighting.Ambient = Color3.fromRGB(255,255,255)
            Lighting.OutdoorAmbient = Color3.fromRGB(255,255,255)
            Lighting.Brightness = 4
            Lighting.ClockTime = 14
            WindUI:Notify({Title = "Bright Mode", Content = "Enabled", Duration = 3})
        else
            Lighting.Ambient = Color3.fromRGB(128,128,128)
            Lighting.OutdoorAmbient = Color3.fromRGB(128,128,128)
            Lighting.Brightness = 2
            WindUI:Notify({Title = "Bright Mode", Content = "Disabled", Duration = 3})
        end
    end
})

-- Glossy Effect
WorldSection:Toggle({
    Title = "Glossy Effect",
    Desc = "Shiny / Reflective surfaces",
    Callback = function(state)
        for _, v in pairs(game:GetDescendants()) do
            if v:IsA("BasePart") then
                v.Reflectance = state and 0.25 or 0
                if state then
                    v.Material = Enum.Material.SmoothPlastic
                end
            end
        end
        WindUI:Notify({Title = "Glossy Effect", Content = state and "Enabled" or "Disabled", Duration = 3})
    end
})

local UserTab = Window:Tab({
    Title = "User",
    Icon = "user",
    Locked = false,
})
Window:SelectTab(1)

local player = game.Players.LocalPlayer
local humanoidRootPart

player.CharacterAdded:Connect(function(char)
    humanoidRootPart = char:WaitForChild("HumanoidRootPart", 10)
end)

if player.Character then
    humanoidRootPart = player.Character:FindFirstChild("HumanoidRootPart")
end

local function updateCharacterReferences()
    local character = player.Character or player.CharacterAdded:Wait()
    humanoidRootPart = character:WaitForChild("HumanoidRootPart", 5)
end
updateCharacterReferences()

-- ==================== LOCATIONS ====================
local locations = {
    ["🏦Bank"] = Vector3.new(-226.22584533691406, 283.8095703125, -1217.7509765625),
    ["💸Money Wash"] = Vector3.new(-376.1771 - 601, 197.6838 + 56, -1975.5855 + 1035 + 248),
    ["🔒Safe Items"] = Vector3.new(-190, 295, -1010),
    ["🛍️Pawn Shop"] = Vector3.new(-23.6431 - 1026, 391.5367 - 138, -1118.2697 + 300 + 4),
    ["🏦Bank Vault"] = Vector3.new(-217.568359375, 373.7984924316406, -1216.20947265625),
    ["🤑Mr Money Man"] = Vector3.new(-1008.6871337890625, 262.3301086425781, 54.565277099609375),
    ["🔫GunShop 1"] = Vector3.new(92959.8671875, 122098.5, 17244.462890625),
    ["🔫GunShop 1 Lobby"] = Vector3.new(-1002.4224, 563.6382 - 310, -1685.9125 + 244 + 638),
    ["🔫GunShop 2"] = Vector3.new(66195.4453125, 123615.7109375, 5750.28271484375),
    ["🔫GunShop 2 Lobby"] = Vector3.new(-224.3818359375, 283.8034362792969, -794.7174072265625),
    ["🔫GunShop 3"] = Vector3.new(61041.3086 - 55 - 166, 16979.1484 + 70630, -36.4746 - 315),
    ["🔫GunShop 4"] = Vector3.new(72421.9140625, 128855.8203125, -1080.611083984375),
    ["🏢Pent House"] = Vector3.new(-178.27471923828125, 397.1383056640625, -573.0322265625),
    ["📱T Mobile"] = Vector3.new(-660.389954,253.668274,-700.198608),
    ["🕍Mini Mansion"] = Vector3.new(-791.5180053710938, 256.7944641113281, 1414.4248046875),
    ["🎒Backpack Shop"] = Vector3.new(-692.4142456054688, 253.78091430664062, -681.0672607421875),
    ["💎Ice Box"] = Vector3.new(-216.31436157226562, 284.031494140625, -1169.032470703125),
    ["👓Drip Shop"] = Vector3.new(7378.6953 + 60084, 18630.0352 - 8141, 205.5895 + 344),
    ["🍗Chicken Wings"] = Vector3.new(-1559.9142 + 512 + 90, 253.5367, -815.9442),
    ["🥪Deli Market"] = Vector3.new(-755.8114013671875, 254.6927490234375, -687.1181640625),
    ["🚗Car Dealer"] = Vector3.new(-401.99371337890625, 253.4141082763672, -1248.8380126953125),
    ["🍕Pizza"] = Vector3.new(-605.474426,254.256805,-802.171753),
    ["🏭Soda Warehouse"] = Vector3.new(-187.85504150390625, 284.6252136230469, -291.3419189453125),
    ["🏭Soda Supplies"] = Vector3.new(51372.82421875, 21680.416015625, 5840.85546875),
    ["💲Soda Seller"] = Vector3.new(-1292.2200927734375, 253.30044555664062, -3003.04833984375),
    ["🍃Exotic Dealer"] = Vector3.new(-1523.5654296875, 273.9729919433594, -990.6575317382812),
    ["🔫Switch Seller"] = Vector3.new(-1446.2166748046875, 256.059814453125, 2189.876220703125),
    ["💲Bronx Market"] = Vector3.new(-397.4308776855469, 334.3142395019531, -555.7023315429688),
    ["🔨Construction Site"] = Vector3.new(-1729, 371, -1171),
    ["⛓️Prison"] = Vector3.new(-1120.29, 254.90, -3364.86),
    ["🍔McDonalds"] = Vector3.new(-1011.34, 253.93, -1147.76),
    ["💎Rob Ice Box"] = Vector3.new(-209.68360900878906, 283.4959411621094, -1265.5286865234375),
    ["🏢Hospital"] = Vector3.new(-1579.79, 253.95, 27.17),
    ["💊MarGreens"] = Vector3.new(-345.25, 254.45, -392.41),
    ["🥂Night Club"] = Vector3.new(-90.03, 283.75, -728.01),
    ["🎙Studio"] = Vector3.new(93408.453125, 14484.7158203125, 570.139404296875),
    ["🔫Studio Guns"] = Vector3.new(72421.93, 128855.83, -1082.59),
    ["ATM 3"] = Vector3.new(-96.72356414794922, 283.6329345703125, -766.3309326171875),
    ["👮NYPD Roof"] = Vector3.new(-1389.98, 279.44, -3141.37),
    ["🚙Striker Man"] = Vector3.new(-1424.99, 254.22, 2786.90),
    ["⚰️Bury Money"] = Vector3.new(-198.53, 239.51, 1266.04),
    ["🔨SledgeHammer Job"] = Vector3.new(-1007.64, 262.26, 56.05),
    ["🍗Popeyes"] = Vector3.new(-78.04, 283.63, -768.11),
}

local function teleportToLocation(locVec, locName)
    humanoidRootPart.Parent:FindFirstChild("Humanoid"):ChangeState(0)
    repeat task.wait(0.0001) until not player:GetAttribute("LastACPos")
    humanoidRootPart.CFrame = CFrame.new(locVec)
    task.wait()
    humanoidRootPart.Parent:FindFirstChild("Humanoid"):ChangeState(2)
    
    WindUI:Notify({
        Title = "Teleported",
        Content = "Teleported to " .. tostring(locName),
        Duration = 2,
        Icon = "bird",
    })
end

local hasPickedLocation = false
local Dropdown = MainTab:Dropdown({
    Title = "Teleport to Location",
    Desc = "Select a location to teleport to",
    Values = (function()
        local vals = {}
        for _, key in ipairs({
            "🏦Bank", "💸Money Wash", "🔒Safe Items", "🛍️Pawn Shop", "🏦Bank Vault", "🤑Mr Money Man",
            "🔫GunShop 1", "🔫GunShop 1 Lobby", "🔫GunShop 2", "🔫GunShop 2 Lobby", "🔫GunShop 3", "🔫GunShop 4",
            "🏢Pent House", "📱T Mobile", "🕍Mini Mansion", "🎒Backpack Shop", "💎Rob Ice Box", "👓Drip Shop",
            "🍗Chicken Wings", "🥪Deli Market", "🚗Car Dealer", "🍕Pizza", "🏭Soda Warehouse", "🏭Soda Supplies",
            "💲Soda Seller", "🍃Exotic Dealer", "🔫Switch Seller", "💲Bronx Market", "🔨Construction Site",
            "⛓️Prison", "🍔McDonalds", "💎Ice Box", "🏢Hospital", "💊MarGreens", "🥂Night Club",
            "🎙Studio", "🔫Studio Guns", "ATM 3", "👮NYPD Roof", "🚙Striker Man", "⚰️Bury Money",
            "🔨SledgeHammer Job", "🍗Popeyes",
        }) do
            table.insert(vals, key)
        end
        return vals
    end)(),
    Callback = function(option)
        if not hasPickedLocation then hasPickedLocation = true end
        if option and locations[option] then
            teleportToLocation(locations[option], option)
        end
    end,
})

-- ==================== OUTFITS ====================
local LocalPlayer = cloneref(game:GetService("Players").LocalPlayer)

local outfits = {
    ["Blue Spider"] = {
        Hats = {"MRHoodieBRR"},
        Shirts = {"Blue Sp5der Hoodie"},
        Pants = {"Blue Sp5der Sweats"},
        Shiestys = {"Shiesty"}
    },
    ["Spider Man"] = {
        Hats = nil,
        Shirts = {"Spiderman"},
        Pants = {"Spiderman"},
        Shiestys = {"RedShiesty"}
    },
    ["Red Spider"] = {
        Hats = {"MRHoodieBRR"},
        Shirts = {"Red Sp5der Sweats"},
        Pants = {"Red Sp5der Sweats"},
        Shiestys = {"Shiesty"}
    }
}

local function equipOutfitItem(category, itemName)
    if not LocalPlayer[category]:FindFirstChild(itemName) then
        game.ReplicatedStorage.ClothShopRemote:FireServer("Buy", category, itemName)
        task.wait(0.1)
    end
    game.ReplicatedStorage.ClothShopRemote:FireServer("Wear", category, itemName)
end

local function equipOutfit(outfitName)
    local outfit = outfits[outfitName]
    if not outfit then
        WindUI:Notify({ Title = "Outfit Error", Content = "Outfit '" .. outfitName .. "' not found!", Duration = 3, Icon = "x" })
        return
    end

    game.ReplicatedStorage.ClothShopRemote:FireServer("Reset Data")
    task.wait(0.2)

    WindUI:Notify({ Title = "Equipping Outfit", Content = "Changing to " .. outfitName .. " outfit...", Duration = 2, Icon = "user" })

    for category, items in pairs(outfit) do
        if items then
            for _, item in ipairs(items) do
                pcall(function()
                    equipOutfitItem(category, item)
                    task.wait(0.2)
                end)
            end
        end
    end

    WindUI:Notify({ Title = "Outfit Changed", Content = "Successfully equipped " .. outfitName .. " outfit!", Duration = 3, Icon = "check" })
end

local outfitNames = {}
for name, _ in pairs(outfits) do
    table.insert(outfitNames, name)
end

local OutfitSection = UserTab:Section({
    Title = "Quick Outfit Change",
    TextXAlignment = "Left",
    TextSize = 17,
})

local selectedOutfit = "Default"

UserTab:Dropdown({
    Title = "Select Outfit",
    Desc = "Choose an outfit to wear",
    Values = outfitNames,
    Callback = function(option)
        selectedOutfit = option
    end
})

UserTab:Button({
    Title = "Equip Selected Outfit",
    Desc = "Wear the selected outfit",
    Color = Color3.new(0, 0, 255),
    Callback = function()
        equipOutfit(selectedOutfit)
    end
})

UserTab:Button({
    Title = "Clear Worn Clothes",
    Desc = "Removes all currently worn clothes",
    Color = Color3.new(0, 0, 255),
    Callback = function()
        game.ReplicatedStorage.ClothShopRemote:FireServer("Reset Data")
    end
})

-- ==================== OUTFIT LOOP (SLOWER) ====================
local isLoopingOutfits = false
local loopConnection = nil

local function startOutfitLoop()
    if loopConnection then return end
    
    local index = 1
    loopConnection = game:GetService("RunService").Heartbeat:Connect(function()
        if not isLoopingOutfits then
            if loopConnection then loopConnection:Disconnect() end
            loopConnection = nil
            return
        end

        local outfitName = outfitNames[index]
        if outfitName then
            equipOutfit(outfitName)
        end

        index = index + 1
        if index > #outfitNames then
            index = 1
        end

        task.wait(2.5) -- Slower: 2.5 seconds per outfit
    end)
end

local function stopOutfitLoop()
    isLoopingOutfits = false
    if loopConnection then
        loopConnection:Disconnect()
        loopConnection = nil
    end
end

UserTab:Toggle({
    Title = "Loop All Outfits",
    Desc = "Cycles through all outfits every 2.5 seconds",
    Default = false,
    Callback = function(state)
        isLoopingOutfits = state
        if state then
            startOutfitLoop()
            WindUI:Notify({ Title = "Outfit Loop", Content = "Started slow looping all outfits...", Duration = 3, Icon = "refresh-cw" })
        else
            stopOutfitLoop()
            WindUI:Notify({ Title = "Outfit Loop", Content = "Stopped outfit loop.", Duration = 2, Icon = "x" })
        end
    end
})

UserTab:Button({
    Title = "Loop Once (All Outfits)",
    Desc = "Equips every outfit one time (slower)",
    Color = Color3.new(0, 0.7, 1),
    Callback = function()
        task.spawn(function()
            for _, outfitName in ipairs(outfitNames) do
                equipOutfit(outfitName)
                task.wait(1.8) -- Slower single pass
            end
            WindUI:Notify({ Title = "Loop Complete", Content = "Finished cycling through all outfits.", Duration = 2 })
        end)
    end
})

Window:SelectTab(1)

-- ==================== DISCORD TAB ====================
local DiscordTab = Window:Tab({
    Title = "Discord Tab",
    Icon = "message-circle",
    Side = "Left"
})

local DiscordSection = DiscordTab:Section({
    Title = "Discord & Socials",
    TextXAlignment = "Left",
    TextSize = 17,
})

-- ==================== DISCORD TAG FUNCTIONS ====================
local tagConnection = nil

local function addTag(character)
    if not character then return end
    local head = character:FindFirstChild("Head")
    if not head then return end

    -- Remove existing tag
    if head:FindFirstChild("DiscordTag") then
        head.DiscordTag:Destroy()
    end

    local billboard = Instance.new("BillboardGui")
    billboard.Name = "DiscordTag"
    billboard.Adornee = head
    billboard.Size = UDim2.new(0, 200, 0, 50)
    billboard.StudsOffset = Vector3.new(0, 3, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = head

    local text = Instance.new("TextLabel")
    text.Size = UDim2.new(1, 0, 1, 0)
    text.BackgroundTransparency = 1
    text.Text = "BRONX.CC On Top"
    text.TextColor3 = Color3.fromRGB(255, 0, 0)
    text.TextStrokeTransparency = 0
    text.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    text.TextScaled = true
    text.Font = Enum.Font.GothamBold
    text.Parent = billboard
end

local function removeTag()
    local character = player.Character
    if character and character:FindFirstChild("Head") then
        local head = character.Head
        if head:FindFirstChild("DiscordTag") then
            head.DiscordTag:Destroy()
        end
    end
end

-- ==================== DISCORD TAG TOGGLE ====================
DiscordTab:Toggle({
    Title = "Discord Tag Above Head",
    Desc = "Shows 'BRONX.CC//Discord.gg' above your character only",
    Icon = "tag",
    Type = "Checkbox",
    Default = false,
    Callback = function(state)
        if state then
            -- Add to current character
            if player.Character then
                addTag(player.Character)
            end
            -- Add to future characters
            if tagConnection then
                tagConnection:Disconnect()
            end
            tagConnection = player.CharacterAdded:Connect(addTag)
            
            WindUI:Notify({
                Title = "Discord Tag",
                Content = "✅ Tag enabled above your head",
                Duration = 3,
                Icon = "tag"
            })
        else
            removeTag()
            if tagConnection then
                tagConnection:Disconnect()
                tagConnection = nil
            end
            WindUI:Notify({
                Title = "Discord Tag",
                Content = "Tag disabled",
                Duration = 3,
                Icon = "tag"
            })
        end
    end
})

DiscordTab:Button({
    Title = "Copy Discord Invite",
    Desc = "Copy discord.gg link to clipboard",
    Color = Color3.new(148,0,211),
    Icon = "copy",
    Callback = function()
        setclipboard("https://[Log in to view URL]") -- Replace with your actual invite
        WindUI:Notify({
            Title = "Discord",
            Content = "Invite link copied to clipboard!",
            Duration = 3,
            Icon = "check",
        })
    end
})

DiscordTab:Button({
    Title = "Copy Server Name",
    Desc = "Copy 'BRONX.CC' to clipboard",
    Color = Color3.new(148,0,211),
    Callback = function()
        setclipboard("BRONX.CC")
        WindUI:Notify({
            Title = "Copied",
            Content = "Server name copied!",
            Duration = 2,
        })
    end
})

DiscordTab:Paragraph({
    Title = "Join Our Discord",
    Desc = "Get updates, support, and new scripts",
    Color = Color3.fromRGB(148, 0, 211),
})

DiscordTab:Divider()

DiscordTab:Paragraph({
    Title = "Made with ❤️ by Tha Bronx 3",
    Desc = "Thank you for using BRONX.CC!",
})


local SettingsTab = Window:Tab({
    Title = "Settings",
    Icon = "message-circle",
    Side = "Left"
})

-- ==================== SETTINGS ====================

SettingsTab:Button({
    Title = "Rejoin Server",
    Desc = "Rejoins the current server",
    Color = Color3.new(148,0,211),
    Callback = function()
        game:GetService("TeleportService"):Teleport(game.PlaceId, game.Players.LocalPlayer)
        WindUI:Notify({
            Title = "Rejoin Server",
            Content = "Teleporting back to the server...",
            Duration = 3,
        })
    end
})

SettingsTab:Button({
    Title = "Server Hop",
    Desc = "Joins a different server",
    Color = Color3.new(148,0,211),
    Callback = function()
        local TeleportService = game:GetService("TeleportService")
        local PlaceId = game.PlaceId
        local Player = game.Players.LocalPlayer
        
        WindUI:Notify({
            Title = "Server Hop",
            Content = "Finding a new server...",
            Duration = 3,
        })
        
        TeleportService:Teleport(PlaceId, Player)
    end
})

SettingsTab:Paragraph({
    Title = "Credits",
    Desc = "Made By BRONX.CC\nThank you for using BRONX.CC !",
    Color = Color3.fromRGB(148, 0, 211),
})



-- ==================== BRING NEAREST CAR ====================
local function GetNearestCar(hrp)
    local CivCars = workspace:FindFirstChild("CivCars")
    if not CivCars then return nil end

    local nearestCar = nil
    local nearestDist = math.huge

    for _, car in ipairs(CivCars:GetChildren()) do
        if not car:IsA("Model") then continue end

        local seat = car:FindFirstChild("DriveSeat")
        if not seat then continue end

        if seat.Occupant then continue end

        if not car.PrimaryPart then
            local body = car:FindFirstChild("Body")
            if body and body:FindFirstChild("#Weight") then
                car.PrimaryPart = body["#Weight"]
            else
                car.PrimaryPart = seat
            end
        end

        if not car.PrimaryPart then continue end

        local dist = (car.PrimaryPart.Position - hrp.Position).Magnitude
        if dist < nearestDist then
            nearestDist = dist
            nearestCar = car
        end
    end

    return nearestCar
end

MainTab:Button({
    Title = "Bring Nearest Car",
    Desc = "Brings the closest empty car to you",
    Color = Color3.new(148,0,211),
    Callback = function()
        local char = game.Players.LocalPlayer.Character
        if not char then return end

        local hrp = char:FindFirstChild("HumanoidRootPart")
        local hum = char:FindFirstChildOfClass("Humanoid")
        if not hrp or not hum then return end

        local car = GetNearestCar(hrp)
        if not car then
            WindUI:Notify({
                Title = "Bring Car",
                Content = "No nearby empty car found",
                Duration = 3
            })
            return
        end

        local seat = car:FindFirstChild("DriveSeat") or car:FindFirstChildWhichIsA("VehicleSeat")
        if not seat then return end

        if not car.PrimaryPart then
            car.PrimaryPart = car:FindFirstChildWhichIsA("BasePart")
        end

        car:SetPrimaryPartCFrame(
            hrp.CFrame * CFrame.new(0, 0, -6) * CFrame.Angles(0, math.rad(180), 0)
        )

        seat:Sit(hum)

        WindUI:Notify({
            Title = "Bring Car",
            Content = "Nearest car brought to you!",
            Duration = 3
        })
    end
})


SettingsTab:Divider()

SettingsTab:Paragraph({
    Title = "BRONX.CC Hub",
    Desc = "Version 1.6.63",
})


local BypassSection = UtilitiesTab:Section({
    Title = "Bypasses",
    TextXAlignment = "Left",
    TextSize = 17,
})

-- ========================================
-- VROY FAMILY - UTILITIES + KEEP ITEMS ON DEATH
-- ========================================
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

local lastDeathPosition = nil
local _G = _G or {}

-- Defaults
_G.fastRespawn = false
_G.respawnWhereDied = false
_G.noRagdoll = false
_G.noclip = false
_G.keepItemsOnDeath = false
_G.instantPrompts = false
_G.antiKnockback = false
_G.antiCameraShake = false

-- ==================== ANTI CAMERA SHAKE ====================
local cameraShakeConnection = nil

local function EnableAntiCameraShake()
    if cameraShakeConnection then return end
    
    local function RemoveCameraShake(character)
        if not character then return end
        local camBobbing = character:FindFirstChild("CameraBobbing")
        if camBobbing then 
            camBobbing:Destroy() 
        end
    end

    if player.Character then
        RemoveCameraShake(player.Character)
    end

    cameraShakeConnection = RunService.Heartbeat:Connect(function()
        if not _G.antiCameraShake then return end
        local character = player.Character
        if character then
            RemoveCameraShake(character)
        end
    end)

    player.CharacterAdded:Connect(function(char)
        if _G.antiCameraShake then
            task.wait(0.3)
            RemoveCameraShake(char)
        end
    end)
end

local function DisableAntiCameraShake()
    if cameraShakeConnection then
        cameraShakeConnection:Disconnect()
        cameraShakeConnection = nil
    end
end

-- ==================== ANTI KNOCKBACK ====================
local antiKnockbackConnection = nil
local function EnableAntiKnockback()
    if antiKnockbackConnection then return end
   
    local character = player.Character
    if character then
        for _, v in ipairs(character:GetDescendants()) do
            if v:IsA("BodyVelocity") or v:IsA("LinearVelocity") or v:IsA("VectorForce") then
                v:Destroy()
            end
        end
    end
   
    local ae = ReplicatedStorage:FindFirstChild("AE")
    if ae then ae:Destroy() end

    antiKnockbackConnection = RunService.Heartbeat:Connect(function()
        if not _G.antiKnockback then return end
        local char = player.Character
        if not char then return end
       
        for _, v in ipairs(char:GetDescendants()) do
            if v:IsA("BodyVelocity") or v:IsA("LinearVelocity") or v:IsA("VectorForce") then
                v:Destroy()
            end
        end
    end)
end

local function DisableAntiKnockback()
    if antiKnockbackConnection then
        antiKnockbackConnection:Disconnect()
        antiKnockbackConnection = nil
    end
end

-- ==================== KEEP ITEMS ON DEATH ====================
local ExemptItems = {"Phone", "Fist", "Shiesty", "Bandage", "Lemonade", "Car keys", "Cuban", "GunPermit"}

local function MarketHasItem(toolName)
    local market = ReplicatedStorage:FindFirstChild("MarketItems")
    if not market then return false end
    for _, item in ipairs(market:GetChildren()) do
        if item.Name == toolName and item:FindFirstChild("owner") and item.owner.Value == player.Name then
            return true
        end
    end
    return false
end

local function ForcePutToMarket(toolName)
    local endTime = os.clock() + 12 
    while os.clock() < endTime do
        if MarketHasItem(toolName) then return true end
        pcall(function()
            ReplicatedStorage.ListWeaponRemote:FireServer(toolName, 999999)
        end)
        task.wait(0.15)
    end
    return false
end

local function ForceRetrieveFromMarket(toolName)
    local market = ReplicatedStorage:WaitForChild("MarketItems", 10)
    if not market then return false end
    local endTime = os.clock() + 12
    while os.clock() < endTime do
        for _, item in ipairs(market:GetChildren()) do
            if item.Name == toolName and item:FindFirstChild("owner")
               and item.owner.Value == player.Name and item:GetAttribute("SpecialId") then
                local special = item:GetAttribute("SpecialId")
                pcall(function()
                    ReplicatedStorage.BuyItemRemote:FireServer(toolName, "Remove", special)
                end)
                task.wait(0.2)
                pcall(function()
                    ReplicatedStorage.BackpackRemote:InvokeServer("Grab", toolName)
                end)
                task.wait(0.2)
                return true
            end
        end
        task.wait(0.2)
    end
    return false
end

local function SaveOnDeath(char)
    local hum = char:WaitForChild("Humanoid")
    hum.Died:Connect(function()
        if not _G.keepItemsOnDeath then return end
        task.wait(0.25)
        for _, tool in ipairs(player.Backpack:GetChildren()) do
            if tool:IsA("Tool") and not table.find(ExemptItems, tool.Name) then
                ForcePutToMarket(tool.Name)
            end
        end
    end)
end

local function RetrieveAfterSpawn()
    task.delay(2.2, function()
        if not _G.keepItemsOnDeath then return end
        local market = ReplicatedStorage:FindFirstChild("MarketItems")
        if not market then return end
        for _, item in ipairs(market:GetChildren()) do
            if item:FindFirstChild("owner") and item.owner.Value == player.Name then
                ForceRetrieveFromMarket(item.Name)
            end
        end
    end)
end

local function SetupKeepItems(char)
    SaveOnDeath(char)
    RetrieveAfterSpawn()
end

player.CharacterAdded:Connect(SetupKeepItems)
if player.Character then
    SetupKeepItems(player.Character)
end

-- ==================== OPTIMIZED INSTANT PROMPTS ====================
local InstantPromptsConnection = nil
local PromptCache = {}

local function EnableInstantPrompts()
    if InstantPromptsConnection then return end
    for _, obj in ipairs(workspace:GetDescendants()) do
        if obj:IsA("ProximityPrompt") and not PromptCache[obj] then
            PromptCache[obj] = {HoldDuration = obj.HoldDuration, MaxActivationDistance = obj.MaxActivationDistance}
            obj.HoldDuration = 0
            obj.MaxActivationDistance = 12
        end
    end
    InstantPromptsConnection = workspace.DescendantAdded:Connect(function(obj)
        if obj:IsA("ProximityPrompt") and not PromptCache[obj] then
            PromptCache[obj] = {HoldDuration = obj.HoldDuration, MaxActivationDistance = obj.MaxActivationDistance}
            obj.HoldDuration = 0
            obj.MaxActivationDistance = 12
        end
    end)
end

local function DisableInstantPrompts()
    if InstantPromptsConnection then
        InstantPromptsConnection:Disconnect()
        InstantPromptsConnection = nil
    end
    for prompt, data in pairs(PromptCache) do
        if prompt and prompt.Parent then
            prompt.HoldDuration = data.HoldDuration
            prompt.MaxActivationDistance = data.MaxActivationDistance
        end
    end
    table.clear(PromptCache)
end

-- ==================== FIXED NOCLIP ====================
local noclipConnection = nil
local function setCollide(state)
    local char = player.Character
    if not char then return end
    for _, v in ipairs(char:GetDescendants()) do
        if v:IsA("BasePart") then
            v.CanCollide = state
        end
    end
end

local function EnableNoclip()
    if noclipConnection then return end
    noclipConnection = RunService.Stepped:Connect(function()
        if _G.noclip then
            setCollide(false)
        end
    end)
end

local function DisableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
        noclipConnection = nil
    end
    setCollide(true)
end

-- ==================== NO RAGDOLL ====================
local noRagdollConnection
local function startNoRagdoll()
    if noRagdollConnection then noRagdollConnection:Disconnect() end
    noRagdollConnection = RunService.Heartbeat:Connect(function()
        if not _G.noRagdoll then return end
        local character = player.Character
        if character then
            local ragdoll = character:FindFirstChild("FallDamageRagdoll", true)
            if ragdoll then ragdoll:Destroy() end
        end
    end)
end

-- ==================== FASTER RESPAWN ====================
task.spawn(function()
    while true do
        task.wait(0.1)
        if _G.fastRespawn then
            local character = player.Character
            if character and character:FindFirstChild("Humanoid") and character.Humanoid.Health <= 0 then
                ReplicatedStorage.RespawnRE:FireServer()
                task.wait(0.1)
            end
        end
    end
end)

-- ==================== RESPAWN WHERE DIED ====================
local function setupRespawnWhereDied()
    local function onCharacterAdded(character)
        local humanoid = character:WaitForChild("Humanoid")
        local root = character:WaitForChild("HumanoidRootPart")
        if lastDeathPosition and _G.respawnWhereDied then
            root.CFrame = CFrame.new(lastDeathPosition + Vector3.new(0, 3, 0))
        end
        humanoid.Died:Connect(function()
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            if rootPart then
                lastDeathPosition = rootPart.Position
            end
        end)
    end
    if player.Character then onCharacterAdded(player.Character) end
    player.CharacterAdded:Connect(onCharacterAdded)
end
setupRespawnWhereDied()

-- ==================== TOGGLES ====================

UtilitiesTab:Toggle({
    Title = "No Close GunShop",
    Desc = "Force gun shop open",
    Default = false,
    Callback = function(Value)
        if Value then
            local gunShopClosed = workspace:FindFirstChild("GunShopClosed")
            if gunShopClosed then gunShopClosed:Destroy() end

            local secondGun = workspace:FindFirstChild("SecondGun4886")
            if secondGun and secondGun:FindFirstChild("ProximityPrompt") then
                secondGun.ProximityPrompt.Enabled = true
            end

            WindUI:Notify({
                Title = "",
                Content = "GunShop Is Now Open!",
                Duration = 3,
                Icon = "user"
            })
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Anti Camera Shake",
    Default = false,
    Callback = function(Value)
        _G.antiCameraShake = Value
        if Value then
            EnableAntiCameraShake()
            WindUI:Notify({Title = "Anti Camera Shake", Content = "✅ Enabled", Duration = 3})
        else
            DisableAntiCameraShake()
            WindUI:Notify({Title = "Anti Camera Shake", Content = "Disabled", Duration = 3})
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Instant Prompts",
    Default = false,
    Callback = function(Value)
        _G.instantPrompts = Value
        if Value then
            EnableInstantPrompts()
            WindUI:Notify({Title = "Instant Prompts", Content = "✅ Enabled (Fast)", Duration = 3})
        else
            DisableInstantPrompts()
            WindUI:Notify({Title = "Instant Prompts", Content = "Disabled", Duration = 3})
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Noclip",
    Default = false,
    Callback = function(Value)
        _G.noclip = Value
        if Value then
            EnableNoclip()
            WindUI:Notify({Title = "Noclip", Content = "Enabled", Duration = 3})
        else
            DisableNoclip()
            WindUI:Notify({Title = "Noclip", Content = "Disabled", Duration = 3})
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Anti Knockback",
    Default = false,
    Callback = function(Value)
        _G.antiKnockback = Value
        if Value then
            EnableAntiKnockback()
            WindUI:Notify({Title = "Anti Knockback", Content = "✅ Enabled", Duration = 3})
        else
            DisableAntiKnockback()
            WindUI:Notify({Title = "Anti Knockback", Content = "Disabled", Duration = 3})
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Fast Respawn",
    Default = false,
    Callback = function(Value)
        _G.fastRespawn = Value
        WindUI:Notify({Title="Fast Respawn", Content=Value and "Enabled" or "Disabled", Duration=5})
    end
})

UtilitiesTab:Toggle({
    Title = "Respawn Where Died",
    Default = false,
    Callback = function(Value)
        _G.respawnWhereDied = Value
        WindUI:Notify({Title="Respawn Where Died", Content=Value and "Enabled" or "Disabled", Duration=5})
    end
})

UtilitiesTab:Toggle({
    Title = "Keep Items On Death",
    Default = false,
    Callback = function(Value)
        _G.keepItemsOnDeath = Value
        WindUI:Notify({Title="Keep Items On Death", Content=Value and "Enabled ✅" or "Disabled ❌", Duration=5})
    end
})

UtilitiesTab:Toggle({
    Title = "Anti-AFK",
    Default = false,
    Callback = function(Value)
        if Value then
            getgenv().AntiAFKConnection = player.Idled:Connect(function()
                local VirtualUser = game:GetService("VirtualUser")
                VirtualUser:Button2Down(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
                task.wait(0.1)
                VirtualUser:Button2Up(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
            end)
        else
            if getgenv().AntiAFKConnection then
                getgenv().AntiAFKConnection:Disconnect()
                getgenv().AntiAFKConnection = nil
            end
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Anti Fall Damage",
    Default = false,
    Callback = function(Value)
        local character = player.Character or player.CharacterAdded:Wait()
        local fallDamage = character:FindFirstChild("FallDamageRagdoll")
        if fallDamage and Value then
            fallDamage:Destroy()
        end
    end
})

UtilitiesTab:Toggle({
    Title = "No Ragdoll",
    Default = false,
    Callback = function(Value)
        _G.noRagdoll = Value
        if Value then
            startNoRagdoll()
        else
            if noRagdollConnection then
                noRagdollConnection:Disconnect()
                noRagdollConnection = nil
            end
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Anti-Fling",
    Default = false,
    Callback = function(Value)
        if Value then
            EnableAntiFling()
            WindUI:Notify({Title = "Anti-Fling", Content = "✅ Enabled", Duration = 3})
        else
            DisableAntiFling()
            WindUI:Notify({Title = "Anti-Fling", Content = "Disabled", Duration = 3})
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Admin Detection + Auto Leave",
    Default = false,
    Callback = function(Value)
        if Value then
            EnableAdminDetection()
            WindUI:Notify({Title = "Admin Detection", Content = "✅ Enabled (Auto Leave on Admin Join)", Duration = 4})
        else
            DisableAdminDetection()
            WindUI:Notify({Title = "Admin Detection", Content = "Disabled", Duration = 3})
        end
    end
})



UtilitiesTab:Toggle({
    Title = "Infinite Stamina",
    Default = false,
    Callback = function(Value)
        local staminaScript = player.PlayerGui:FindFirstChild("Run", true)
        if staminaScript then
            local scriptObj = staminaScript:FindFirstChild("StaminaBarScript", true)
            if scriptObj then scriptObj:Destroy() end
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Infinite Hunger",
    Default = false,
    Callback = function(Value)
        local hungerScript = player.PlayerGui:FindFirstChild("Hunger", true)
        if hungerScript then
            local scriptObj = hungerScript:FindFirstChild("HungerBarScript", true)
            if scriptObj then scriptObj:Destroy() end
        end
    end
})

UtilitiesTab:Toggle({
    Title = "Infinite Sleep",
    Default = false,
    Callback = function(Value)
        local success, s = pcall(function()
            return player.PlayerGui.SleepGui.Frame.sleep.SleepBar.sleepScript
        end)
        if success and s then
            s.Disabled = true
            s.Disabled = false
            s.Disabled = true
        end
    end
})

UtilitiesTab:Toggle({
    Title = "No Rent Pay",
    Default = false,
    Callback = function(Value)
        local rentGui = player.PlayerGui:FindFirstChild("RentGui")
        if rentGui then
            local rentScript = rentGui:FindFirstChild("LocalScript")
            if rentScript then
                rentScript.Disabled = true
                rentScript:Destroy()
            end
        end
    end
})

print("✅ Utilities Tab Loaded with Anti-CameraShake & No Close GunShop!")








local GunSection = MainTab:Section({ 
    Title = "Gun Modifications 🔫",
    TextXAlignment = "Left",
    TextSize = 17, 
})

------------------------------------------------
-- RAINBOW GUN (VISUAL ONLY ADD-ON)
------------------------------------------------
local RunService = game:GetService("RunService")
local rainbowEnabled = false
local hue = 0

local function applyRainbow(tool)
	for _, obj in ipairs(tool:GetDescendants()) do
		if obj:IsA("BasePart") then
			obj.Color = Color3.fromHSV(hue, 1, 1)
		end
	end
end

RunService.RenderStepped:Connect(function()
	if not rainbowEnabled then return end

	local char = game.Players.LocalPlayer.Character
	if not char then return end

	local tool = char:FindFirstChildOfClass("Tool")
	if not tool then return end

	hue = (hue + 0.01) % 1
	applyRainbow(tool)
end)

MainTab:Button({
    Title = "Rainbow Gun",
    Desc = "Toggle rainbow weapon colors",
    Callback = function()
        rainbowEnabled = not rainbowEnabled
    end,
})
------------------------------------------------
-- YOUR ORIGINAL BUTTONS (UNCHANGED)
------------------------------------------------

-- Infinite Ammo
MainTab:Button({
    Title = "Infinite Ammo",
    Desc = "YOU NEED ONE MAG FOR INF AMMO",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local settings = require(tool.Setting)
            settings.LimitedAmmoEnabled = false
            settings.MaxAmmo = 10000
            settings.AmmoPerMag = 10000
            settings.Ammo = 10000
        end
    end
})

-- Infinite Damage
MainTab:Button({
    Title = "Infinite Damage",
    Desc = "Max damage weapon",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            require(tool.Setting).BaseDamage = 9e9
        end
    end
})

-- Fire Rate / Auto Settings
local MIN_FIRE_RATE = 0.07 
local autoEnabled = false
local noRateEnabled = false

local function applyGunSettings()
    local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
    if not tool or not tool:FindFirstChild("Setting") then return end

    local settings = require(tool.Setting)

    if autoEnabled and noRateEnabled then
        settings.Auto = true
        settings.FireRate = MIN_FIRE_RATE
    elseif autoEnabled then
        settings.Auto = true
    elseif noRateEnabled then
        settings.FireRate = MIN_FIRE_RATE
    else
        settings.Auto = false
        settings.FireRate = settings.DefaultFireRate or 0.3 
    end
end

MainTab:Button({
    Title = "Automatic Gun",
    Desc = "Toggle automatic fire",
    Callback = function()
        autoEnabled = not autoEnabled
        applyGunSettings()
    end,
})

MainTab:Button({
    Title = "No Fire Rate Limit",
    Desc = "Set fire rate to minimum",
    Callback = function()
        noRateEnabled = not noRateEnabled
        applyGunSettings()
    end,
})

-- No Recoil Toggle
local noRecoilEnabled = false
MainTab:Button({
    Title = "No Recoil",
    Desc = "Toggle no recoil for your gun",
    Callback = function()
        noRecoilEnabled = not noRecoilEnabled
        
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if not tool then return end

        local settingsModule = tool:FindFirstChild("Setting")
        if not settingsModule then return end

        local settings = require(settingsModule)

        if noRecoilEnabled then
            if settings.ApplyRecoil then settings.ApplyRecoil = function() end end
            if settings.Recoil then settings.Recoil = 0 end
            if settings.RecoilUp then settings.RecoilUp = 0 end
            if settings.RecoilSide then settings.RecoilSide = 0 end
        end
    end
})

-- Variables
getgenv().auraenabled = false
getgenv().killaurahigh = false
getgenv().rainbowbeam = false
getgenv().beamcolor = Color3.fromRGB(255, 0, 0)
getgenv().cooldown = 0.1
getgenv().damage = 100
getgenv().hitpart = "Head"

-- Helper Functions
local function getClosestPlayer()
    local mouse = game.Players.LocalPlayer:GetMouse()
    local hit = mouse.Hit.Position
    local maxdis = math.huge
    local target = nil

    for _, v in ipairs(game.Players:GetPlayers()) do
        if v ~= game.Players.LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
            local mag = (hit - v.Character.HumanoidRootPart.Position).Magnitude
            if mag < maxdis then
                maxdis = mag
                target = v
            end
        end
    end
    return target
end

local function dmg(target, hpart, damage)
    if not target or not target.Character then return end
    local tool = game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
    if not tool then return end

    game:GetService("ReplicatedStorage").InflictTarget:FireServer(
        tool,
        game.Players.LocalPlayer,
        target.Character.Humanoid,
        target.Character[hpart],
        damage,
        {0, 0, false, false,
            tool:FindFirstChild("GunScript_Server") and tool.GunScript_Server.IgniteScript,
            tool:FindFirstChild("GunScript_Server") and tool.GunScript_Server.IcifyScript,
            100, 100},
        {false, 5, 3},
        target.Character[hpart],
        {false, {1930359546}, 1, 1.5, 1},
        nil, nil, true
    )
end

local function visualizeMuzzle()
    local plr = game.Players.LocalPlayer
    local tool = plr.Character and plr.Character:FindFirstChildWhichIsA("Tool")
    if not tool then return end

    local handle = tool:FindFirstChild("Handle")
    local muzzleEffect = tool:FindFirstChild("GunScript_Local") and tool.GunScript_Local:FindFirstChild("MuzzleEffect")

    if handle and muzzleEffect and game.ReplicatedStorage:FindFirstChild("VisualizeMuzzle") then
        local color = getgenv().rainbowbeam and Color3.fromHSV(tick() % 5 / 5, 1, 1) or getgenv().beamcolor
        game.ReplicatedStorage.VisualizeMuzzle:FireServer(
            handle, true, {false, 7, color, 15, true, 0.02}, muzzleEffect
        )
    end
end

-- SuperMan Killaura UI
MainTab:Section({
    Title = "SuperMan Killaura",
    TextXAlignment = "Left",
    TextSize = 17,
})

MainTab:Toggle({
    Title = "Enable SuperMan",
    Desc = "Beam killaura on closest player",
    Icon = "rocket",
    Type = "Checkbox",
    Default = false,
    Callback = function(state)
        getgenv().auraenabled = state
        if state then
            task.spawn(function()
                while getgenv().auraenabled do
                    local target = getClosestPlayer()
                    if target and target.Character and target.Character:FindFirstChild("Head") then
                        -- Beam Effect
                        local toolHandle = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
                        if toolHandle and toolHandle:FindFirstChild("Handle") then
                            toolHandle = toolHandle.Handle
                            local part = Instance.new("Part")
                            part.Size = Vector3.new(0.2, 0.2, (toolHandle.Position - target.Character.Head.Position).Magnitude)
                            part.Anchored = true
                            part.CanCollide = false
                            part.Material = Enum.Material.Neon
                            part.Color = getgenv().rainbowbeam and Color3.fromHSV(tick() % 5 / 5, 1, 1) or getgenv().beamcolor
                            part.Parent = workspace

                            local midpoint = (toolHandle.Position + target.Character[getgenv().hitpart].Position) / 2
                            part.Position = midpoint
                            part.CFrame = CFrame.new(midpoint, target.Character[getgenv().hitpart].Position)

                            task.delay(0.08, function() part:Destroy() end)
                        end

                        visualizeMuzzle()
                        dmg(target, getgenv().hitpart, getgenv().damage)
                    end
                    task.wait(getgenv().cooldown)
                end
            end)
        end
    end
})

MainTab:Colorpicker({
    Title = "Beam Color",
    Desc = "Killaura beam color",
    Color = Color3.fromRGB(255, 0, 0),
    Callback = function(color)
        getgenv().beamcolor = color
    end
})

MainTab:Toggle({
    Title = "Rainbow Beam",
    Desc = "Rainbow beam effect",
    Type = "Checkbox",
    Default = false,
    Callback = function(state)
        getgenv().rainbowbeam = state
    end
})

MainTab:Toggle({
    Title = "Highlight Target",
    Desc = "Highlight closest player",
    Type = "Checkbox",
    Default = false,
    Callback = function(state)
        getgenv().killaurahigh = state
    end
})

MainTab:Slider({
    Title = "Attack Speed",
    Desc = "Lower = faster attacks",
    Step = 0.01,
    Value = { Min = 0.05, Max = 1, Default = 0.1 },
    Callback = function(v)
        getgenv().cooldown = v
    end
})

MainTab:Slider({
    Title = "Damage",
    Desc = "Damage per hit",
    Step = 10,
    Value = { Min = 50, Max = 1000, Default = 100 },
    Callback = function(v)
        getgenv().damage = v
    end
})





-- ==================== MONEY SECTION ====================
local MoneySection = ExploitsTab:Section({
    Title = "Infinite Money 💸",
    TextXAlignment = "Left",
    TextSize = 17,
})

-- Buy Items
ExploitsTab:Button({ Title = "Buy Fiji Water", Callback = function()
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer("FijiWater")
end})

ExploitsTab:Button({ Title = "Buy Fresh Water", Callback = function()
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer("FreshWater")
end})

ExploitsTab:Button({ Title = "Buy IceFruit Cup", Callback = function()
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer("Ice-Fruit Cupz")
end})

ExploitsTab:Button({ Title = "Buy IceFruit Bag", Callback = function()
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer("Ice-Fruit Bag")
end})

-- Cookin Spot
ExploitsTab:Button({
    Title = "Cookin Spot",
    Desc = "Teleports to cooking location",
    Callback = function()
        local cookingPos = Vector3.new(-1605.9183349609375, 254.04150390625, -488.43804931640625)
        local char = player.Character
        if not char then return end
        local hrp = char:FindFirstChild("HumanoidRootPart")
        local hum = char:FindFirstChild("Humanoid")
        if not hrp or not hum then return end

        getgenv().SwimMethod = true
        hum:ChangeState(0)
        repeat task.wait(0.0001) until not player:GetAttribute("LastACPos")
        hrp.CFrame = CFrame.new(cookingPos)
        task.wait()
        hum:ChangeState(2)
        getgenv().SwimMethod = false

        WindUI:Notify({Title = "Teleported", Content = "Teleported to Cookin Spot", Duration = 2})
    end
})

-- Count Dirty Money & Turn In
ExploitsTab:Button({
    Title = "Count Dirty Money & Turn In",
    Desc = "Auto counts money bags and turns them in",
    Callback = function()
        local function notify(title, desc)
            WindUI:Notify({Title = title or "Money", Content = desc, Duration = 4})
        end

        local counters = workspace:FindFirstChild("CounterBag")
        if not counters then
            notify("Error", "CounterBag not found")
            return
        end

        local validCounter = nil
        for _, model in ipairs(counters:GetChildren()) do
            local prompt = model:FindFirstChild("CashPrompt", true)
            if prompt then
                validCounter = prompt
                break
            end
        end

        if not validCounter then
            notify("Error", "No valid counter found")
            return
        end

        notify("Starting", "Counting dirty money...")

        local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
        if hrp then
            getgenv().SwimMethod = true
            hrp.CFrame = validCounter.Parent.CFrame + Vector3.new(0, 4, 0)
            task.wait(0.6)
            fireproximityprompt(validCounter)
            getgenv().SwimMethod = false
        end

        notify("Success", "Dirty money counting started. Turn-in loop active.")
    end
})

-- ==================== FIXED MONEY DUPE ====================
ExploitsTab:Button({
    Title = "💸 MONEY DUPE",
    Desc = "Auto Ice Fruit Sell Glitch",
    Callback = function()
        local plr = player
        local cam = Workspace.CurrentCamera
        local char = plr.Character
        if not char then 
            WindUI:Notify({Title = "Error", Content = "Character not loaded", Duration = 3})
            return 
        end

        local hrp = char:FindFirstChild("HumanoidRootPart")
        local hum = char:FindFirstChild("Humanoid")
        if not hrp or not hum then return end

        local originalCFrame = hrp.CFrame
        local originalCamType = cam.CameraType
        local originalFOV = cam.FieldOfView

        -- Black Screen
        local blackGui = Instance.new("ScreenGui", game.CoreGui)
        local frame = Instance.new("Frame", blackGui)
        frame.Size = UDim2.new(1,0,1,0)
        frame.BackgroundColor3 = Color3.new(0,0,0)

        local label = Instance.new("TextLabel", frame)
        label.Size = UDim2.new(1,0,1,0)
        label.BackgroundTransparency = 1
        label.Text = "9BLOCK INF MONEY"
        label.TextColor3 = Color3.fromRGB(180, 0, 180)
        label.TextScaled = true
        label.Font = Enum.Font.GothamBold

        -- Equip Tool
        local tool = plr.Backpack:FindFirstChild("Ice-Fruit Cupz")
        if tool then hum:EquipTool(tool) end

        -- Teleport + Sell
        hum:ChangeState(0)
        repeat task.wait(0.0001) until not plr:GetAttribute("LastACPos")
        hrp.CFrame = CFrame.new(-68.65, 287.06, -320.62)
        task.wait(0.7)

        local sellPrompt = Workspace:FindFirstChild("IceFruit Sell") and Workspace["IceFruit Sell"]:FindFirstChildOfClass("ProximityPrompt")
        if sellPrompt then
            sellPrompt.HoldDuration = 0
            sellPrompt.MaxActivationDistance = 12

            local sellConn = RunService.Heartbeat:Connect(function()
                if sellPrompt.Enabled then fireproximityprompt(sellPrompt) end
            end)

            task.wait(1.5)
            sellConn:Disconnect()
        end

        -- Return
        hum:ChangeState(0)
        repeat task.wait(0.0001) until not plr:GetAttribute("LastACPos")
        hrp.CFrame = originalCFrame
        task.wait(0.3)
        hum:ChangeState(2)

        -- Cleanup
        cam.CameraType = originalCamType
        cam.FieldOfView = originalFOV
        blackGui:Destroy()

        WindUI:Notify({Title = "Money Dupe", Content = "💸 Finished successfully!", Duration = 4})
    end
})

game.StarterGui:SetCore("SendNotification", {
Title = "WELCOME TO THA BRONX.CC",
Text = "join my discord https://[Log in to view URL]",
Duration = 5,
})

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: