local repo
if game:GetService("UserInputService").TouchEnabled or game:GetService("UserInputService").GamepadEnabled then
    repo = 'https://[Log in to view URL]'
    print("Mobile Loaded")
else
    repo = 'https://[Log in to view URL]'
    print("PC Loaded")
end

-- // UI Library
local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))()
local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))()
local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))()

-- // RED THEME + OUTLINES
Library.Theme = {
    Accent = Color3.fromRGB(255, 0, 0),
    Outline = Color3.fromRGB(255, 0, 0),
    Background = Color3.fromRGB(15, 15, 15),
    Text = Color3.fromRGB(255,0,0)
}

-- // Get Player Info
local LocalPlayer = game:GetService("Players").LocalPlayer
local Username = LocalPlayer.Name  

-- // Show Notification on Script Load
Library:Notify("TB3 SCORPIO HUB - " .. Username .. " Welcome", 5)
task.wait(1) 

-- // Create Main UI Window
local Window = Library:CreateWindow({
    Title = 'SCORPIO HUB' ,
    Center = true,
    AutoShow = true,
    TabPadding = 8,
    MenuFadeTime = 0.2
})

-- // Tabs
local Tabs = {
    Main = Window:AddTab('🏠SCORPIO Main🏠', 'star'),
    Player = Window:AddTab('😜Troll😤', 'user'),
    Vuln = Window:AddTab('💵SCORPIO AUTOFARM💲', 'circle-dollar-sign'),
    Combat = Window:AddTab('🔫AIMBOT/ESP👀', 'circle-plus'),
    Bypasses = Window:AddTab('🛍SCORPIO SHOP🛍', 'shield'),
    ['Settings'] = Window:AddTab('Settings', 'settings'),
}

-- // Create Groupboxes
local DupeBox = Tabs.Vuln:AddLeftGroupbox("Dupe & Money 💵")
local Tele = Tabs.Vuln:AddLeftGroupbox('Teleport ⏩')
local QuickShop = Tabs.Combat:AddLeftGroupbox('GunShop 🛒')
local QuickFits = Tabs.Bypasses:AddRightGroupbox('Try OutFits 👚')


local ATMBank = Tabs.Vuln:AddRightGroupbox('ATM / Bank 💳')
local Blrhhx = Tabs.Vuln:AddRightGroupbox('Money Drops 💵')
local World = Tabs.Combat:AddRightGroupbox("World Visuals")
local Misc = Tabs.Vuln:AddRightGroupbox('Misc 🪀')
local TargetBox = Tabs.Combat:AddLeftGroupbox("Target 🔫")
local Troll = Tabs.Player:AddLeftGroupbox("Troll 😂")
local Combat = Tabs.Combat:AddRightGroupbox("Fov Settings")
--local TeleportBox = Tabs.Combat:AddLeftGroupbox("Teleports")
local Movement = Tabs.Main:AddRightGroupbox("Movement 👥")
local ExtraBox = Tabs.Main:AddLeftGroupbox("Bypasses 🛡️")
local GunColor = Tabs.Combat:AddRightGroupbox("Gun Color 🔫")
-- local Autofarm = Tabs.Autofarm:AddLeftGroupbox("Autofarm")




local Extra = Tabs.Combat:AddLeftGroupbox("HitBox 🎯")
local FunHi = Tabs.Combat:AddLeftGroupbox("Fun Combat 🎯")
local Gun = Tabs.Combat:AddRightGroupbox("Gun Mods 🔫")
local Farm = Tabs.Vuln:AddRightGroupbox('Quick Farms 🧺')

local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

-- ADD NEW ESP GROUPBOX HERE
-- ADD NEW ESP GROUPBOX HERE
local ESPBox = Tabs.Combat:AddLeftGroupbox("ESP 🎯")

-- PROPERLY INTEGRATED ESP SYSTEM
-- This ESP system is directly connected to the ESPBox toggle
local ESP = {
    Enabled = false,
    Active = false,
    ScreenGui = nil,
    Connections = {},
    ESPObjects = {},
    
    -- Configuration
    TeamCheck = true,
    MaxDistance = 200,
    FontSize = 11,
    
    -- Create the ESP GUI
    Initialize = function(self)
        if self.ScreenGui and self.ScreenGui.Parent then
            self.ScreenGui:Destroy()
        end
        
        self.ScreenGui = Instance.new("ScreenGui")
        self.ScreenGui.Name = "ESPHolder"
        self.ScreenGui.ResetOnSpawn = false
        self.ScreenGui.Parent = game:GetService("CoreGui")
        
        return self.ScreenGui
    end,
    
    -- Create ESP for a player
    CreatePlayerESP = function(self, player)
        if self.ESPObjects[player] then return self.ESPObjects[player] end
        
        local elements = {}
      
        -- Name Tag
        elements.Name = Instance.new("TextLabel")
        elements.Name.Name = player.Name .. "_Name"
        elements.Name.Parent = self.ScreenGui
        elements.Name.BackgroundTransparency = 1
        elements.Name.TextColor3 = Color3.fromRGB(255, 255, 255)
        elements.Name.TextStrokeTransparency = 0
        elements.Name.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
        elements.Name.Font = Enum.Font.Code
        elements.Name.TextSize = self.FontSize
        elements.Name.RichText = true
        elements.Name.Visible = false
        
        -- Distance
        elements.Distance = Instance.new("TextLabel")
        elements.Distance.Name = player.Name .. "_Distance"
        elements.Distance.Parent = self.ScreenGui
        elements.Distance.BackgroundTransparency = 1
        elements.Distance.TextColor3 = Color3.fromRGB(255, 255, 255)
        elements.Distance.TextStrokeTransparency = 0
        elements.Distance.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
        elements.Distance.Font = Enum.Font.Code
        elements.Distance.TextSize = self.FontSize
        elements.Distance.RichText = true
        elements.Distance.Visible = false
        
        -- Box
        elements.Box = Instance.new("Frame")
        elements.Box.Name = player.Name .. "_Box"
        elements.Box.Parent = self.ScreenGui
        elements.Box.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
        elements.Box.BackgroundTransparency = 0.75
        elements.Box.BorderSizePixel = 0
        elements.Box.Visible = false
        
        -- Health Bar
        elements.HealthBar = Instance.new("Frame")
        elements.HealthBar.Name = player.Name .. "_HealthBar"
        elements.HealthBar.Parent = self.ScreenGui
        elements.HealthBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
        elements.HealthBar.BackgroundTransparency = 0
        elements.HealthBar.Visible = false
        
        -- Behind Health Bar
        elements.BehindHealthBar = Instance.new("Frame")
        elements.BehindHealthBar.Name = player.Name .. "_BehindHealthBar"
        elements.BehindHealthBar.Parent = self.ScreenGui
        elements.BehindHealthBar.ZIndex = -1
        elements.BehindHealthBar.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
        elements.BehindHealthBar.BackgroundTransparency = 0
        elements.BehindHealthBar.Visible = false
        
        -- Health Text
        elements.HealthText = Instance.new("TextLabel")
        elements.HealthText.Name = player.Name .. "_HealthText"
        elements.HealthText.Parent = self.ScreenGui
        elements.HealthText.BackgroundTransparency = 1
        elements.HealthText.TextColor3 = Color3.fromRGB(255, 255, 255)
        elements.HealthText.TextStrokeTransparency = 0
        elements.HealthText.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
        elements.HealthText.Font = Enum.Font.Code
        elements.HealthText.TextSize = self.FontSize
        elements.HealthText.Visible = false
        
        -- Chams
        elements.Chams = Instance.new("Highlight")
        elements.Chams.Name = player.Name .. "_Chams"
        elements.Chams.Parent = self.ScreenGui
        elements.Chams.FillTransparency = 1
        elements.Chams.OutlineTransparency = 0
        elements.Chams.OutlineColor = Color3.fromRGB(119, 120, 255)
        elements.Chams.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
        elements.Chams.Enabled = false
        
        self.ESPObjects[player] = elements
        return elements
    end,
    
    -- Remove ESP for a player
    RemovePlayerESP = function(self, player)
        if self.ESPObjects[player] then
            for _, element in pairs(self.ESPObjects[player]) do
                if element and element:IsA("Instance") then
                    element:Destroy()
                end
            end
            self.ESPObjects[player] = nil
        end
    end,
    
    -- Hide all ESP
    HideAllESP = function(self)
        for player, elements in pairs(self.ESPObjects) do
            if elements then
                elements.Name.Visible = false
                elements.Distance.Visible = false
                elements.Box.Visible = false
                elements.HealthBar.Visible = false
                elements.BehindHealthBar.Visible = false
                elements.HealthText.Visible = false
                elements.Chams.Enabled = false
            end
        end
    end,
    
    -- Update ESP for all players
    Update = function(self)
        if not self.Enabled or not self.Active then
            self:HideAllESP()
            return
        end
        
        local localPlayer = game:GetService("Players").LocalPlayer
        local camera = workspace.CurrentCamera
        
        for _, player in pairs(game:GetService("Players"):GetPlayers()) do
            if player ~= localPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
                local elements = self:CreatePlayerESP(player)
                local humanoidRootPart = player.Character.HumanoidRootPart
                local humanoid = player.Character:FindFirstChild("Humanoid")
                
                if not humanoid then
                    self:RemovePlayerESP(player)
                    continue
                end
                
                local position, onScreen = camera:WorldToScreenPoint(humanoidRootPart.Position)
                local distance = (camera.CFrame.Position - humanoidRootPart.Position).Magnitude / 3.5714285714
                
                if onScreen and distance <= self.MaxDistance then
                    -- Team check
                    local shouldShow = true
                    if self.TeamCheck then
                        shouldShow = (localPlayer.Team ~= player.Team and player.Team) or (not localPlayer.Team and not player.Team)
                    end
                    
                    if shouldShow then
                        local size = humanoidRootPart.Size.Y
                        local scaleFactor = (size * camera.ViewportSize.Y) / (position.Z * 2)
                        local width = 3 * scaleFactor
                        local height = 4.5 * scaleFactor
                        
                        -- Box
                        elements.Box.Position = UDim2.new(0, position.X - width / 2, 0, position.Y - height / 2)
                        elements.Box.Size = UDim2.new(0, width, 0, height)
                        elements.Box.Visible = true
                        
                        -- Name
                        elements.Name.Text = player.Name
                        elements.Name.Position = UDim2.new(0, position.X, 0, position.Y - height / 2 - 15)
                        elements.Name.Visible = true
                        
                        -- Distance
                        elements.Distance.Text = string.format("%d studs", math.floor(distance))
                        elements.Distance.Position = UDim2.new(0, position.X, 0, position.Y + height / 2 + 5)
                        elements.Distance.Visible = true
                        
                        -- Health Bar
                        local health = humanoid.Health / humanoid.MaxHealth
                        elements.HealthBar.Position = UDim2.new(0, position.X - width / 2 - 6, 0, position.Y - height / 2 + height * (1 - health))
                        elements.HealthBar.Size = UDim2.new(0, 3, 0, height * health)
                        elements.HealthBar.BackgroundColor3 = Color3.fromRGB(255 * (1 - health), 255 * health, 0)
                        elements.HealthBar.Visible = true
                        
                        elements.BehindHealthBar.Position = UDim2.new(0, position.X - width / 2 - 6, 0, position.Y - height / 2)
                        elements.BehindHealthBar.Size = UDim2.new(0, 3, 0, height)
                        elements.BehindHealthBar.Visible = true
                        
                        -- Health Text
                        local healthPercentage = math.floor(humanoid.Health / humanoid.MaxHealth * 100)
                        elements.HealthText.Text = tostring(healthPercentage) .. "%"
                        elements.HealthText.Position = UDim2.new(0, position.X - width / 2 - 10, 0, position.Y - height / 2 + height * (1 - healthPercentage / 100) - 10)
                        elements.HealthText.Visible = humanoid.Health < humanoid.MaxHealth
                        
                        -- Chams
                        elements.Chams.Adornee = player.Character
                        elements.Chams.Enabled = true
                        elements.Chams.FillColor = Color3.fromRGB(119, 120, 255)
                        elements.Chams.OutlineColor = Color3.fromRGB(119, 120, 255)
                    else
                        self:RemovePlayerESP(player)
                    end
                else
                    self:RemovePlayerESP(player)
                end
            else
                self:RemovePlayerESP(player)
            end
        end
    end,
    
    -- Start ESP
    Start = function(self)
        if self.Active then return end
        
        self.Active = true
        self.Enabled = true
        
        -- Initialize GUI
        self:Initialize()
        
        -- Create ESP for existing players
        for _, player in pairs(game:GetService("Players"):GetPlayers()) do
            if player ~= game:GetService("Players").LocalPlayer then
                self:CreatePlayerESP(player)
            end
        end
        
        -- Update connection
        self.Connections.Update = game:GetService("RunService").RenderStepped:Connect(function()
            self:Update()
        end)
        
        -- Player added connection
        self.Connections.PlayerAdded = game:GetService("Players").PlayerAdded:Connect(function(player)
            task.wait(1) -- Wait for character to load
            self:CreatePlayerESP(player)
        end)
        
        -- Player removing connection
        self.Connections.PlayerRemoving = game:GetService("Players").PlayerRemoving:Connect(function(player)
            self:RemovePlayerESP(player)
        end)
        
        Library:Notify("ESP Enabled", 3)
    end,
    
    -- Stop ESP
    Stop = function(self)
        if not self.Active then return end
        
        self.Active = false
        self.Enabled = false
        
        -- Disconnect connections
        for _, connection in pairs(self.Connections) do
            if connection then
                connection:Disconnect()
            end
        end
        self.Connections = {}
        
        -- Remove all ESP objects
        for player, _ in pairs(self.ESPObjects) do
            self:RemovePlayerESP(player)
        end
        self.ESPObjects = {}
        
        -- Remove GUI
        if self.ScreenGui then
            self.ScreenGui:Destroy()
            self.ScreenGui = nil
        end
        
        Library:Notify("ESP Disabled", 3)
    end,
    
    -- Toggle ESP
    Toggle = function(self)
        if self.Enabled then
            self:Stop()
        else
            self:Start()
        end
    end
}

-- Initialize ESP (disabled by default)
ESP.Enabled = false
ESP.Active = false

-- Now add the toggle to ESPBox
ESPBox:AddToggle('EnableESP', {
    Text = 'Enable ESP',
    Default = false,
    Callback = function(Value)
        if Value then
            ESP:Start()
        else
            ESP:Stop()
        end
    end
})

-- Add distance slider
ESPBox:AddSlider('ESPDistance', {
    Text = 'ESP Distance',
    Default = 200,
    Min = 50,
    Max = 1000,
    Rounding = 0,
    Callback = function(Value)
        ESP.MaxDistance = Value
    end
})

local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

local player = Players.LocalPlayer
local character
local humanoidRootPart
local humanoid

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

local player = Players.LocalPlayer
local character
local humanoidRootPart
local humanoid

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

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

updateCharacterReferences()
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")

local LocalPlayer = Players.LocalPlayer
local humanoidRootPart

-- ✅ Always get HumanoidRootPart, even after respawn
local function getHRP()
    local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    return char:WaitForChild("HumanoidRootPart")
end

humanoidRootPart = getHRP()
LocalPlayer.CharacterAdded:Connect(function(char)
    humanoidRootPart = char:WaitForChild("HumanoidRootPart")
end)

-- Movement variables
local speed = 16
local flightSpeed = 50
local boostMultiplier = 2
local acceleration = 3 -- higher = faster accel

local enhancedWalk = false
local flying = false
local bodyVelocity, bodyGyro
local targetVelocity = Vector3.zero
local currentVelocity = Vector3.zero

-- Helper
local function cleanupMovement()
    if bodyVelocity then bodyVelocity:Destroy() end
    if bodyGyro then bodyGyro:Destroy() end
    bodyVelocity, bodyGyro = nil, nil
end

local function smoothApproach(current, target, rate)
    return current + (target - current) * math.clamp(rate, 0, 1)
end

-- 🚶 Enhanced Walk
local function startEnhancedWalk()
    if enhancedWalk then return end
    enhancedWalk = true
    cleanupMovement()

    bodyGyro = Instance.new("BodyGyro")
    bodyGyro.MaxTorque = Vector3.new(0, math.huge, 0)
    bodyGyro.P = 2000
    bodyGyro.CFrame = humanoidRootPart.CFrame
    bodyGyro.Parent = humanoidRootPart

    RunService.RenderStepped:Connect(function(deltaTime)
        if not enhancedWalk or not humanoidRootPart then return end

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

        if UIS:IsKeyDown(Enum.KeyCode.W) then moveDir += Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) end
        if UIS:IsKeyDown(Enum.KeyCode.S) then moveDir -= Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) end
        if UIS:IsKeyDown(Enum.KeyCode.A) then moveDir -= camera.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.D) then moveDir += camera.CFrame.RightVector end

        local maxSpeed = speed
        if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then maxSpeed *= boostMultiplier end

        if moveDir.Magnitude > 0 then
            targetVelocity = moveDir.Unit * maxSpeed
        else
            targetVelocity = Vector3.zero
        end

        currentVelocity = smoothApproach(currentVelocity, targetVelocity, acceleration * deltaTime)
        humanoidRootPart.AssemblyLinearVelocity = Vector3.new(currentVelocity.X, humanoidRootPart.AssemblyLinearVelocity.Y, currentVelocity.Z)

        bodyGyro.CFrame = CFrame.new(humanoidRootPart.Position, humanoidRootPart.Position + Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z))
    end)
end

-- ✈️ Flying
local function startFlying()
    if flying then return end
    flying = true
    cleanupMovement()

    bodyVelocity = Instance.new("BodyVelocity")
    bodyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5)
    bodyVelocity.P = 5000
    bodyVelocity.Velocity = Vector3.zero
    bodyVelocity.Parent = humanoidRootPart

    bodyGyro = Instance.new("BodyGyro")
    bodyGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
    bodyGyro.P = 5000
    bodyGyro.CFrame = humanoidRootPart.CFrame
    bodyGyro.Parent = humanoidRootPart

    RunService.RenderStepped:Connect(function(deltaTime)
        if not flying or not humanoidRootPart then return end

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

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

        local maxSpeed = flightSpeed
        if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then maxSpeed *= boostMultiplier end

        if moveDir.Magnitude > 0 then
            targetVelocity = moveDir.Unit * maxSpeed
        else
            targetVelocity = Vector3.zero
        end

        currentVelocity = smoothApproach(currentVelocity, targetVelocity, acceleration * deltaTime)
        bodyVelocity.Velocity = currentVelocity
        bodyGyro.CFrame = camera.CFrame
    end)
end

-- ⏹ Stop functions
local function stopEnhancedWalk()
    enhancedWalk = false
    cleanupMovement()
    currentVelocity = Vector3.zero
end

local function stopFlying()
    flying = false
    cleanupMovement()
    currentVelocity = Vector3.zero
end





-- GUI Toggle for Enhanced Walking


-- Speed Slider for Walkspeed
Movement:AddSlider('WalkspeedSlider', {
    Text = 'Change Walkspeed',
    Default = 16,
    Min = 16,
    Max = 300,
    Rounding = 1,
    Callback = function(value)
        speed = value
    end
})


-- Speed Slider for Flight Speed
Movement:AddSlider('FlightSpeedSlider', {
    Text = 'Change Fly Speed',
    Default = 100,
    Min = 50,
    Max = 2000,
    Rounding = 0,
    Callback = function(value)
        flightSpeed = value
    end
})
-- Character Respawn Handling
player.CharacterAdded:Connect(function()
    updateCharacterReferences()
    cleanupMovement()
    if enhancedWalk then startEnhancedWalk() end
    if flying then stopFlying() end -- Ensure flight stops completely before restarting
end)






Troll:AddButton("Spam Call Police", function()
    for i = 1,getgenv().intsdp do
        task.wait(0.05)
        game:GetService("ReplicatedStorage").CallPolice:FireServer()
    end
end)


local localPlayer = game:GetService("Players").LocalPlayer
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local isMoving = {W = false, A = false, S = false, D = false} -- Table to track movement keys
local multiplier = 1  -- Default multiplier (adjustable by the slider)
local movementEnabled = false -- Movement starts disabled
local SwimMethodEnabled = false -- Freefall starts disabled
local currentWalkSpeed = 16  -- Default Walkspeed

-- Display a hint for 2 seconds
task.spawn(function()
    local hint = Instance.new("Hint", workspace)
    task.wait(2)
    hint:Destroy()
end)

-- Function to move the character based on key input
local function moveCharacter()
    if movementEnabled and localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") then
        local direction = Vector3.new(0, 0, 0)
        local camera = workspace.CurrentCamera

        -- Adjust the direction based on pressed keys
        if isMoving.W then
            direction = direction + Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) -- Forward
        end
        if isMoving.A then
            direction = direction - Vector3.new(camera.CFrame.RightVector.X, 0, camera.CFrame.RightVector.Z) -- Left
        end
        if isMoving.S then
            direction = direction - Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) -- Backward
        end
        if isMoving.D then
            direction = direction + Vector3.new(camera.CFrame.RightVector.X, 0, camera.CFrame.RightVector.Z) -- Right
        end

        -- Normalize direction and move the character
        if direction.Magnitude > 0 then
            direction = direction.Unit * multiplier
            localPlayer.Character.HumanoidRootPart.CFrame = localPlayer.Character.HumanoidRootPart.CFrame + direction
        end
    end
end

-- Key press detection for W, A, S, D
uis.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    
    if input.KeyCode == Enum.KeyCode.W then
        isMoving.W = true
    elseif input.KeyCode == Enum.KeyCode.A then
        isMoving.A = true
    elseif input.KeyCode == Enum.KeyCode.S then
        isMoving.S = true
    elseif input.KeyCode == Enum.KeyCode.D then
        isMoving.D = true
    end
end)

-- Stop moving when the key is released
uis.InputEnded:Connect(function(input, gameProcessed)
    if gameProcessed then return end

    if input.KeyCode == Enum.KeyCode.W then
        isMoving.W = false
    elseif input.KeyCode == Enum.KeyCode.A then
        isMoving.A = false
    elseif input.KeyCode == Enum.KeyCode.S then
        isMoving.S = false
    elseif input.KeyCode == Enum.KeyCode.D then
        isMoving.D = false
    end
end)

-- Update the character's position every frame based on key input
rs.RenderStepped:Connect(moveCharacter)



-- Freefall Method Logic
getgenv().SwimMethod = false

task.spawn(function()
    while task.wait() do
        if getgenv().SwimMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                local humanoid = player.Character.Humanoid
                humanoid:ChangeState(Enum.HumanoidStateType.FallingDown     )
            end
        end
    end
end)
print("bypassed lol")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")

local movementEnabled = false
local currentWalkSpeed = 16  -- Default speed

--- Movement:AddSlider('WalkspeedSlider', {
   ---  Text = 'Change Walkspeed',
  ---   Default = 16,
  ---   Min = 16,
  ---   Max = 300,
 ---    Rounding = 1,
  ---   Callback = function(value)
  ---       currentWalkSpeed = value  -- Save the new speed
  ---   end
--- })




Movement:AddSlider('JumpPowerSlider', {
    Text = 'Change Jump Height',
    Default = 1,  -- Default jump height
    Min = 1,  -- Minimum jump height
    Max = 20000,  -- Maximum jump height
    Rounding = 1,
    Callback = function(value)
        currentJumpPower = value  -- Save the new jump height
        local humanoid = game.Players.LocalPlayer.Character.Humanoid
        if jumpPowerEnabled then
            humanoid.JumpHeight = value  -- Change jump height in real-time
        else
            humanoid.JumpHeight = 9  -- Set jump height to 9 when disabled
        end
    end
})



Movement:AddToggle('EnableWalkspeed', {
    Text = 'Walkspeed',
    Default = false,  
    Callback = function(enabled)
        if enabled then
            startEnhancedWalk()
        else
            stopEnhancedWalk()
        end
    end
})

-- GUI Toggle for Flight
Movement:AddToggle('EnableFlight', {
    Text = 'Vehicle Fly',
    Default = false,  
    Callback = function(enabled)
        if enabled then
            startFlying()
        else
            stopFlying()
        end
    end
})


Movement:AddToggle('EnableJumpPower', {
    Text = 'Jump Power',
    Default = false,  -- Default to off
    Callback = function(Value)
        if Value then
            -- Enable Jump Power with the current jump power (don't reset to 50)
            game.Players.LocalPlayer.Character.Humanoid.JumpPower = currentJumpPower
            jumpPowerEnabled = true  -- Enable jump power when toggle is on
        else
            -- Disable Jump Power
            game.Players.LocalPlayer.Character.Humanoid.JumpPower = 0  -- Disable jump power if toggle is off
            jumpPowerEnabled = false  -- Disable jump power when toggle is off
        end
    end
})

local noclip = false

-- Function to toggle noclip
local function toggleNoclip()
    noclip = not noclip
    if noclip then
        for _, part in pairs(character:GetDescendants()) do
            if part:IsA("BasePart") and part.CanCollide then
                part.CanCollide = false
            end
        end
    else
        for _, part in pairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
    end
end
-- Create the toggle button for Infinite Jump
local infJump
local infJumpDebounce = false
local UserInputService = game:GetService("UserInputService")

Movement:AddToggle('InfiniteJumpToggle', {
    Text = 'Infinite Jump',
    Default = false,  -- Default to off
    Callback = function(Value)
        local humanoid = speaker.Character:FindFirstChildWhichIsA("Humanoid")
        
        -- If Infinite Jump is enabled
        if Value then
            -- Disconnect any previous infinite jump connections
            if infJump then
                infJump:Disconnect()
            end
            infJumpDebounce = false

            -- Set up the infinite jump logic
            infJump = UserInputService.JumpRequest:Connect(function()
                if not infJumpDebounce then
                    infJumpDebounce = true
                    -- Make the humanoid jump
                    if humanoid then
                        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
                        wait(0.1)  -- Ensure the jump state is set
                        humanoid:ChangeState(Enum.HumanoidStateType.Seated)  -- Optionally simulate landing
                    end
                    infJumpDebounce = false
                end
            end)

        else
            -- Disable infinite jump when toggle is off
            if infJump then
                infJump:Disconnect()
            end
            infJumpDebounce = false
        end
    end
})



-- Create the toggle button for noclip
Movement:AddToggle('NoclipToggle', {
    Text = 'Noclip',
    Default = false,  -- Default to off
    Callback = function(Value)
        toggleNoclip(Value)  -- Call the toggleNoclip function when the toggle state changes
    end
})

-- Infinite Jump Script with Toggle Control

-- Services
-- Use getgenv() to store the infinite jump state globally

-- // Infinite Stamina
local LocalPlayer = game:GetService("Players").LocalPlayer

-- Infinite Stamina Toggle
ExtraBox:AddToggle('InfiniteStamina', {
    Text = 'Infinite Stamina', 
    Default = false,
    Callback = function(Value)
        local StaminaBar = LocalPlayer.PlayerGui:FindFirstChild("Run") and 
                           LocalPlayer.PlayerGui.Run.Frame.Frame.Frame:FindFirstChild("StaminaBarScript")
        if StaminaBar then
            StaminaBar.Enabled = not Value
        end
    end
})

-- Infinite Hunger Toggle
ExtraBox:AddToggle('InfiniteHunger', {
    Text = 'Infinite Hunger',
    Default = false,
    Callback = function(Value)
        local playerGui = game:GetService("Players").LocalPlayer.PlayerGui
        local hungerBar = playerGui.Hunger.Frame.Frame.Frame:FindFirstChild("HungerBarScript")

        if hungerBar then
            hungerBar.Enabled = not Value
        end
    end
})

-- Infinite Sleep Toggle
ExtraBox:AddToggle('InfiniteSleep', {
    Text = 'Infinite Sleep',
    Default = false,
    Callback = function(Value)
        local sleepGui = game:GetService("Players").LocalPlayer.PlayerGui.SleepGui
        local sleepBar = sleepGui.Frame.sleep.SleepBar:FindFirstChild("sleepScript")

        if sleepBar then
            sleepBar.Enabled = not Value
        end
    end
})

-- No Rent Pay Toggle
ExtraBox:AddToggle('NoRentPay', {
    Text = 'No Rent Pay',
    Default = false,
    Callback = function(Value)
        local rentGui = game:GetService("StarterGui").RentGui
        local rentScript = rentGui:FindFirstChild("LocalScript")

        if rentScript then
            rentScript.Enabled = not Value
        end
    end
})

-- Instant Interaction Toggle
ExtraBox:AddToggle('InstantInteraction', {
    Text = 'Instant Prompt', 
    Default = false,
    Callback = function(Value)
        for _, v in pairs(game.Workspace:GetDescendants()) do
            if v:IsA("ProximityPrompt") then
                v.HoldDuration = Value and 0 or 1
                v.RequiresLineOfSight = not Value
            end
        end
    end
})

-- Remove Jump Cooldown Toggle
local JumpDebounceBackup

ExtraBox:AddToggle('RemoveJumpCooldown', {
    Text = 'Remove Jump Cooldown', 
    Default = false,
    Callback = function(Value)
        local JumpDebounce = LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce")
        if Value then
            if JumpDebounce then
                JumpDebounceBackup = JumpDebounce:Clone()
                JumpDebounce:Destroy()
            end
        else
            if not LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce") and JumpDebounceBackup then
                JumpDebounceBackup.Parent = LocalPlayer.PlayerGui
                JumpDebounceBackup = nil
            end
        end
    end
})

-- Anti Fall Damage Toggle
ExtraBox:AddToggle('AntiFallDamage', {
    Text = 'Anti Fall Damage', 
    Default = false,
    Callback = function(Value)
        local player = game.Players.LocalPlayer
        local character = player.Character or player.CharacterAdded:Wait()
        local humanoid = character:FindFirstChild("Humanoid")
        local fallDamage = character:FindFirstChild("FallDamageRagdoll")

        if humanoid and fallDamage then
            if Value then
                fallDamage:Destroy() 
            else
               
                print("Fall damage enabled.")  -- For example, you could re-enable fall damage here if needed
            end
        end
    end
})
ExtraBox:AddToggle('AntiJumpCooldown', {
    Text = 'Anti Jump Cooldown',
    Default = false,
    Callback = function(Value)
        local localPlayer = game:GetService("Players").LocalPlayer
        local jumpDebounce = localPlayer.PlayerGui:FindFirstChild("JumpDebounce")
        local localScript = jumpDebounce and jumpDebounce:FindFirstChild("LocalScript")

        if localScript then
            if Value then
                localScript.Enabled = false
            else
                localScript.Enabled = true
            end
        end
    end
})

--//

GunColor:AddLabel("Change Gun Color (CLIENT SIDE ONLY)")
GunColor:AddToggle('Gun changing', {Text = "Change CURRENT Item Color.", Default = false, Callback = function()
    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()

    -- Store original data so we can revert later
    local originalData = {}

    local function applyEffect(tool)
        if not tool then return end
        for _, part in ipairs(tool:GetDescendants()) do
            if part:IsA("BasePart") then
                -- Save original properties if not already saved
                if not originalData[part] then
                    originalData[part] = {
                        Color = part.Color,
                        Material = part.Material
                    }
                end

                -- Apply forcefield effect
                part.Color = Color3.fromRGB(0, 255, 255) -- your color
                part.Material = Enum.Material.ForceField
            end
        end
    end

    local function revertEffect()
        for part, data in pairs(originalData) do
            if part and part.Parent then
                part.Color = data.Color
                part.Material = data.Material
            end
        end
        originalData = {} -- clear stored data
    end

    if state then
        -- Apply to current tool
        local tool = character:FindFirstChildOfClass("Tool")
        if tool then
            applyEffect(tool)
        end

        -- Detect new tools
        character.ChildAdded:Connect(function(child)
            if child:IsA("Tool") then
                applyEffect(child)
            end
        end)
    else
        revertEffect()
    end
end})


--Main 

local lastDupeTime = 0
local cooldownTime = 1 

task.spawn(function()
    while task.wait() do
        if getgenv().SwimMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
            end
        end
    end
end)

DupeBox:AddButton('MARKET DUPE', function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local Players = game:GetService("Players")
    local Workspace = game:GetService("Workspace")

    local function GetCharacter()
        return Players.LocalPlayer and Players.LocalPlayer.Character
    end

local function BypassTp(targetCFrame)
    local character = GetCharacter()
    if character and character:FindFirstChild("HumanoidRootPart") then
        -- Teleport the character by directly setting their CFrame
        character.HumanoidRootPart.CFrame = targetCFrame + Vector3.new(2, 0, 0)
    end
end



DupeBox:AddButton('AUTO DUPE', function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
DupeBox:AddButton('Not Fixed', function()
    local currentTime = os.time()

    if currentTime - lastDupeTime < cooldownTime then
        return
    end

    lastDupeTime = currentTime
    getgenv().SwimMethod = true 

    task.wait(0.8)

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local Players = game:GetService("Players")
    local Workspace = game:GetService("Workspace")

    local function GetCharacter()
        return Players.LocalPlayer and Players.LocalPlayer.Character
    end

function BypassTp(targetCFrame)
    local character = Player.Character
    if not character or not character:FindFirstChild("HumanoidRootPart") then
        Library:Notify("Error: Character not ready for teleport", 3)
        return
    end

    local hrp = character.HumanoidRootPart

    -- Activate Freefall (SwimMethod)
    getgenv().SwimMethod = true

    -- Wait briefly before teleporting
    task.wait(0.1)

    -- Teleport the HumanoidRootPart slightly offset
    hrp.CFrame = targetCFrame + Vector3.new(2, 0, 0)

    -- Wait briefly after teleporting
    task.wait(0.1)

    -- Deactivate Freefall
    getgenv().SwimMethod = false

    Library:Notify("Bypass teleport executed", 3)
end




    local InventoryRemote = ReplicatedStorage:WaitForChild("Inventory")
    local BackpackRemote = ReplicatedStorage:WaitForChild("BackpackRemote")

    local character = GetCharacter()
    if character and character:FindFirstChildOfClass("Tool") then
        local gunTool = character:FindFirstChildOfClass("Tool")
        local gunName = gunTool.Name

        local humanoid = character:FindFirstChildOfClass("Humanoid")
        if humanoid then humanoid:UnequipTools() end

        local safe = workspace:FindFirstChild("1# Map") 
                 and workspace["1# Map"]:FindFirstChild("2 Crosswalks") 
                 and workspace["1# Map"]["2 Crosswalks"].Safes:GetChildren()[3]
        if not safe then 
            getgenv().SwimMethod = false 
            return 
        end

        local oldCFrame = character:FindFirstChild("HumanoidRootPart") and character.HumanoidRootPart.CFrame

        BypassTp(safe.Union.CFrame)
        task.wait(.26)

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

        task.spawn(function()
            InventoryRemote:FireServer("Change", gunName, "Backpack", safe)
        end)

        task.wait(2.5)

        if oldCFrame then
            BypassTp(oldCFrame)
        end

        task.wait(1.2)

        BackpackRemote:InvokeServer("Grab", gunName)

        task.wait(2.5)

        if oldCFrame then
            BypassTp(oldCFrame)
        end

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

DupeBox:AddDivider()

DupeBox:AddButton('Buy Supplies', function()
local player = game.Players.LocalPlayer
repeat task.wait() until player.Character and player.Character:FindFirstChild("HumanoidRootPart")
local character = player.Character
local hrp = character:FindFirstChild("HumanoidRootPart")

local CoreGui = game:GetService("CoreGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")

local ShopRemote = ReplicatedStorage:WaitForChild("ShopRemote")
local ExoticShopRemote = ReplicatedStorage:WaitForChild("ExoticShopRemote")

local Backpack = player:WaitForChild("Backpack")

--// Functions
function teleport(position)
    local character = player.Character
    if not character then
        Library:Notify("Error: Character not found", 3)
        return
    end

    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then
        Library:Notify("Error: HumanoidRootPart missing", 3)
        return
    end

    -- Activate Freefall (SwimMethod)
    getgenv().SwimMethod = true

    -- Wait a moment before teleporting
    task.wait(0.5)

    -- Teleport the HumanoidRootPart to the position
    hrp.CFrame = CFrame.new(position)

    -- Deactivate Freefall
    getgenv().SwimMethod = false

    Library:Notify("Teleported to position", 3)
end



local function BuyItem(itemName)
    ExoticShopRemote:InvokeServer(itemName)
end

local function nearprompt(filterText)
    local closestPrompt, minDistance = nil, math.huge
    for _, v in pairs(workspace:GetDescendants()) do
        if v:IsA("ProximityPrompt") and v.Enabled and v.Parent and (v.Parent:IsA("BasePart") or v.Parent:IsA("Attachment")) then
            if filterText and not v.ActionText:find(filterText) then continue end
            local part = v.Parent:IsA("Attachment") and v.Parent.Parent or v.Parent
            if part and part:IsA("BasePart") then
                local distance = (hrp.Position - part.Position).Magnitude
                if distance < minDistance then
                    closestPrompt, minDistance = v, distance
                end
            end
        end
    end
    return closestPrompt
end

local function fireprompt(prompt)
    if prompt then
        prompt.HoldDuration = 0
        fireproximityprompt(prompt)
    end
end

local function equipTool(name)
    local tool = Backpack:FindFirstChild(name) or character:FindFirstChild(name)
    if tool then
        character.Humanoid:EquipTool(tool)
        task.wait(0.2)
    end
end

local function useTool(name)
    equipTool(name)
    local prompt = nearprompt()
    if prompt then
        fireprompt(prompt)
    end
    task.wait(2)
end

--// GUI


--// MAIN

-- Create GUI first
-- Now teleport to shop
teleport(Vector3.new(-1608.934326171875, 253.8587188720703, -485.9544677734375))
task.wait(1)

-- Buy items
BuyItem("FreshWater")
task.wait(1)
BuyItem("FijiWater")
task.wait(1)
BuyItem("Ice-Fruit Bag")
task.wait(1)
BuyItem("Ice-Fruit Cupz")
task.wait(1)


task.wait(2)

useTool("FreshWater")
useTool("FreshWater")

useTool("FijiWater")

useTool("Ice-Fruit Bag")




while true do
    task.wait(0.5)
    local fillPrompt = nearprompt("Fill Pitcher Cup")
    if fillPrompt then
        equipTool("Ice-Fruit Cupz")
        fireprompt(fillPrompt)

        break
    end
end



task.wait(1)
cookingGui:Destroy()
end)

local Players = game:GetService("Players")
local TextService = game:GetService("TextService")

local v11 = {}
v11.Font = Enum.Font.SourceSans
v11.MainColor = Color3.fromRGB(40, 40, 40)
v11.OutlineColor = Color3.fromRGB(20, 20, 20)
v11.AccentColor = Color3.fromRGB(0, 150, 255)
v11.Registry = {}
v11.RegistryMap = {}
v11.HudRegistry = {}

local v12 = Instance.new("ScreenGui")
v12.IgnoreGuiInset = true
v12.ResetOnSpawn = false
v12.Name = "NotificationGui"
v12.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")

function v11:Create(class, props)
    local inst = Instance.new(class)
    for i, v in pairs(props) do
        inst[i] = v
    end
    return inst
end

v11.NotificationArea = v11:Create('Frame', {
    BackgroundTransparency = 1;
    Position = UDim2.new(0, 0, 0, 40);
    Size = UDim2.new(0, 300, 0, 200);
    ZIndex = 100;
    Parent = v12;
})

v11:Create('UIListLayout', {
    Padding = UDim.new(0, 4);
    FillDirection = Enum.FillDirection.Vertical;
    SortOrder = Enum.SortOrder.LayoutOrder;
    Parent = v11.NotificationArea;
})

function v11:GetTextBounds(Text, Font, Size, Resolution)
    local Bounds = TextService:GetTextSize(Text, Size, Font, Resolution or Vector2.new(1920, 1080))
    return Bounds.X, Bounds.Y
end

function v11:GetDarkerColor(Color)
    local H, S, V = Color3.toHSV(Color);
    return Color3.fromHSV(H, S, V / 1.5);
end

v11.AccentColorDark = v11:GetDarkerColor(v11.AccentColor)

function v11:AddToRegistry(Instance, Properties, IsHud)
    local Idx = #v11.Registry + 1;
    local Data = {
        Instance = Instance;
        Properties = Properties;
        Idx = Idx;
    };

    table.insert(v11.Registry, Data);
    v11.RegistryMap[Instance] = Data;

    if IsHud then
        table.insert(v11.HudRegistry, Data);
    end;
end

function v11:RemoveFromRegistry(Instance)
    local Data = v11.RegistryMap[Instance];

    if Data then
        for Idx = #v11.Registry, 1, -1 do
            if v11.Registry[Idx] == Data then
                table.remove(v11.Registry, Idx);
            end;
        end;

        for Idx = #v11.HudRegistry, 1, -1 do
            if v11.HudRegistry[Idx] == Data then
                table.remove(v11.HudRegistry, Idx);
            end;
        end;

        v11.RegistryMap[Instance] = nil;
    end;
end

function v11:CreateLabel(props)
    props.TextColor3 = Color3.new(1,1,1)
    props.BackgroundTransparency = 1
    props.Font = v11.Font
    return v11:Create('TextLabel', props)
end

function v11:Notify(Text, Time)
    local v13, v14 = v11:GetTextBounds(Text, v11.Font, 14);
    v14 = v14 + 7

    local v15 = v11:Create('Frame', {
        BorderColor3 = Color3.new(0, 0, 0);
        Position = UDim2.new(0, 100, 0, 2);
        Size = UDim2.new(0, 0, 0, v14);
        ClipsDescendants = true;
        ZIndex = 100;
        Parent = v11.NotificationArea;
    });

    local v16 = v11:Create('Frame', {
        BackgroundColor3 = v11.MainColor;
        BorderColor3 = v11.OutlineColor;
        BorderMode = Enum.BorderMode.Inset;
        Size = UDim2.new(1, 0, 1, 0);
        ZIndex = 101;
        Parent = v15;
    });

    v11:AddToRegistry(v16, {
        BackgroundColor3 = 'MainColor';
        BorderColor3 = 'OutlineColor';
    }, true);

    local v17 = v11:Create('Frame', {
        BackgroundColor3 = Color3.new(1, 1, 1);
        BorderSizePixel = 0;
        Position = UDim2.new(0, 1, 0, 1);
        Size = UDim2.new(1, -2, 1, -2);
        ZIndex = 102;
        Parent = v16;
    });

    local v18 = v11:Create('UIGradient', {
        Color = ColorSequence.new({
            ColorSequenceKeypoint.new(0, v11:GetDarkerColor(v11.MainColor)),
            ColorSequenceKeypoint.new(1, v11.MainColor),
        });
        Rotation = -90;
        Parent = v17;
    });

    v11:AddToRegistry(v18, {
        Color = function()
            return ColorSequence.new({
                ColorSequenceKeypoint.new(0, v11:GetDarkerColor(v11.MainColor)),
                ColorSequenceKeypoint.new(1, v11.MainColor),
            });
        end
    });

    local v19 = v11:CreateLabel({
        Position = UDim2.new(0, 4, 0, 0);
        Size = UDim2.new(1, -4, 1, 0);
        Text = Text;
        TextXAlignment = Enum.TextXAlignment.Left;
        TextSize = 14;
        ZIndex = 103;
        Parent = v17;
    });

    local v20 = v11:Create('Frame', {
        BackgroundColor3 = v11.AccentColor;
        BorderSizePixel = 0;
        Position = UDim2.new(0, -1, 0, -1);
        Size = UDim2.new(0, 3, 1, 2);
        ZIndex = 104;
        Parent = v15;
    });

    v11:AddToRegistry(v20, {
        BackgroundColor3 = 'AccentColor';
    }, true);

    v15:TweenSize(UDim2.new(0, v13 + 8 + 4, 0, v14), 'Out', 'Quad', 0.4, true)

    task.spawn(function()
        wait(Time or 5);
        v15:TweenSize(UDim2.new(0, 0, 0, v14), 'Out', 'Quad', 0.4, true);
        wait(0.4);
        v15:Destroy();
    end);
end


DupeBox:AddButton('Infinite Money', function()


-- (( End )) --

-- ;; Main Function ;; --

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local Camera = Workspace.CurrentCamera
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()

function TeleportViaSeat(position)
    local character = player.Character
    if not character then
        Library:Notify("Error: Character not found", 3)
        return
    end

    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then
        Library:Notify("Error: HumanoidRootPart missing", 3)
        return
    end

    -- Activate Freefall (SwimMethod)
    getgenv().SwimMethod = true

    -- Wait a moment before teleporting
    task.wait(1)

    -- Teleport the HumanoidRootPart to the position
    hrp.CFrame = CFrame.new(position)

    -- Deactivate Freefall
    getgenv().SwimMethod = false

    Library:Notify("Teleported to position", 3)
end







-- 



local TeleportPosition = Vector3.new(-(3630.7261 - 2703), 35.136799999999994 + 218, -(1575.3687 - 884))

local function SpamPrompt(Prompt)
	local Total = 974000
	local BatchSize = 500
	for i = 1, Total, BatchSize do
		for j = 1, BatchSize do
			local Stored = Player:FindFirstChild("stored")
			local FilthyStack = Stored and Stored:FindFirstChild("FilthyStack")

			if FilthyStack and FilthyStack:IsA("IntValue") and (FilthyStack.Value == 990000 or FilthyStack.Value == 1600000) then
				TeleportViaSeat(TeleportPosition)
				if v11 and v11.Notify then
					v11:Notify("Finished! Clean your money now!", 3)
				end
				return
			end

			pcall(function()
				Prompt.HoldDuration = 0
				Prompt:InputHoldBegin()
				Prompt:InputHoldEnd()
			end)
		end
		task.wait()
	end
end

local function GoToJuice()


    local HRP = Character:WaitForChild("HumanoidRootPart")
    local OriginalPosition = HRP.Position

    for _, Obj in ipairs(workspace:GetDescendants()) do
        if Obj:IsA("ProximityPrompt") and Obj.ObjectText == "Juice" then
            local Part = Obj.Parent
            if Part and Part:IsA("BasePart") then
                -- Teleport near the Juice using seat method
                local OffsetPos = Vector3.new(-50.18476104736328, 286.7206115722656, -338.2304382324219)
                TeleportViaSeat(OffsetPos)

                task.wait(0.6) -- Wait to fully settle before next seat teleport

                -- Teleport directly to the Juice part (3 studs above and 3 forward)
                local juiceTargetPos = Part.Position + Vector3.new(0, 3, 3)
                TeleportViaSeat(juiceTargetPos)

                task.wait(0.6)

                -- Interact with the prompt
                SpamPrompt(Obj)

                task.wait(0.6)

                -- Return to original position
                TeleportViaSeat(OriginalPosition)

                break
            end
        end
    end
end

GoToJuice()
end)
DupeBox:AddLabel("Click Buy Supplies")
DupeBox:AddLabel("It Should TP To Cook Them")
DupeBox:AddLabel("Wait Till Done And Click Infinite")
DupeBox:AddLabel("Money")

local Locations = {
    ["🔫 Gunshop 1"] = Vector3.new(92984, 122099, 17236),
    ["🔫 Gunshop 2"] = Vector3.new(66202, 123615.7109375, 5749.81591796875),
    ["🔫 Gunshop 3"] = Vector3.new(60819.78515625, 87609.140625, -347.30889892578),
    ["💼 Safe Items"] = Vector3.new(68514.8984375, 52941.5, -796.09197998047),
    ["🚧 Construction Site"] = Vector3.new(-1731.8306884766, 370.81228637695, -1176.8387451172),
    ["💎 Ice Box"] = Vector3.new(-211.92926, 284.031494, -1170.44751, -0.211394921, -4.74827537e-08, -0.97740072, 4.93989027e-08, 1, -5.92647709e-08, 0.97740072, -6.08107911e-08, -0.211394921),
    ["🧊 Frozen Shop"] = Vector3.new(-225.86630249023, 283.84869384766, -1169.9425048828),
    ["👚 Drip Store"] = Vector3.new(67462.6953125, 10489.032226563, 549.58947753906),
    ["💳 Bank"] = Vector3.new(-224.070892, 283.80954, -1200.51355, 0.898020029, -8.45030157e-10, -0.439954549, 1.71171859e-08, 1, 3.30182885e-08, 0.439954549, -3.718187e-08, 0.898020029),
    ["🔥 Pawn Shop"] = Vector3.new(-1049.6430664063, 253.53065490723, -814.26971435547),
    ["🏠 Penthouse"] = Vector3.new(-195.424164, 397.138306, -573.941162, 1, 1.33502738e-08, 1.90762137e-14, -1.33502738e-08, 1, 2.10393516e-08, -1.87953325e-14, -2.10393516e-08, 1),
    ["🍗 Chicken Wings"] = Vector3.new(-957.91418457031, 253.53065490723, -815.94421386719),
    ["🚚 Deli"] = Vector3.new(-927.72607421875, 253.73307800293, -691.36871337891),
    ["🚗 Car Dealer"] = Vector3.new(-410.52230834961, 253.25646972656, -1245.5539550781),
    ["💵 clean money💲"] = Vector3.new(-987.75, 253.91, -682.57),
    ["🩹 Margreens"] = Vector3.new(-384.37, 254.45, -373.76),
    ["🏥 Hospital"] = Vector3.new(-1590.33069, 254.272217, 19.9477577, -0.148689881, -1.89369107e-08, -0.988883853, -1.55521995e-08, 1, -1.68113328e-08, 0.988883853, 1.2879644e-08, -0.148689881),
    ["🏢 black market"] = Vector3.new(-405.766541, 334.314209, -559.063049, 0.990661561, -9.09075197e-08, 0.13634412, 1.00807341e-07, 1, -6.57046044e-08, -0.13634412, 7.88355123e-08, 0.990661561),
    ["🎒 BackPack"] = Vector3.new(-694.430725, 253.780914, -686.652466, 0.925544977, 6.42211546e-08, -0.378637671, -4.09280219e-08, 1, 6.95663118e-08, 0.378637671, -4.88898593e-08, 0.925544977),
    ["🏀 basketball 1"] = Vector3.new(-928.66687, 253.970642, -411.840332, 0.459722698, -4.89149912e-08, -0.888062537, 1.72902119e-08, 1, -4.61299585e-08, 0.888062537, 5.85219917e-09, 0.459722698),
    ["👑 Scorpio house"] = Vector3.new(-792.78064, 256.794495, 1414.72986, 1, 3.85794046e-08, 1.98475264e-12, -3.85794046e-08, 1, 1.80319546e-08, -1.98405702e-12, -1.80319546e-08, 1),
    ["🥤 fruit"] = Vector3.new(-70.5023575, 287.06366, -320.634094, 0.999999821, -4.35785275e-09, -0.000581864733, 4.40470993e-09, 1, 8.05283591e-08, 0.000581864733, -8.05309028e-08, 0.999999821),
    ["👮🏾‍♂️ police landout"] = Vector3.new(-1440.86902, 255.12619, -3141.50269, 1, 2.93179286e-10, -1.22108007e-14, -2.93179286e-10, 1, -5.42506351e-09, 1.220921e-14, 5.42506351e-09, 1),
    ["👮🏾‍♂️ police talking room"] = Vector3.new(-1369.65198, 257.850769, -3193.54297, 0.999995232, 3.48691671e-08, 0.00309534976, -3.50066287e-08, 1, 4.43553745e-08, -0.00309534976, -4.44635191e-08, 0.999995232),
    ["👮🏾‍♂️ police meeting"] = Vector3.new(-1366.70178, 256.821899, -3152.30518, 1, 5.55209141e-08, 1.72658505e-13, -5.55209141e-08, 1, 7.07464309e-08, -1.68730603e-13, -7.07464309e-08, 1),
    ["🚪 kicking doors"] = Vector3.new(-601.608765, 253.886765, -688.382935, 1, -1.82883273e-08, 5.49667056e-14, 1.82883273e-08, 1, -2.33028921e-08, -5.45405328e-14, 2.33028921e-08, 1),
    ["🏘 section 8 house"] = Vector3.new(-741.548218, 262.955658, -956.177856, -0.999924719, -3.33829719e-09, 0.0122713735, -3.3374834e-09, 1, 8.67962299e-11, -0.0122713735, 4.58341871e-11, -0.999924719),
    ["🔌 plug"] = Vector3.new(-1516.96851, 269.058624, -987.697815, -0.665192723, 7.84138976e-08, 0.746671736, 1.058187e-07, 1, -1.07464491e-08, -0.746671736, 7.18633757e-08, -0.665192723),
    ["🏡 trailer park "] = Vector3.new(-1521.95935, 253.342743, 2264.8584, 0.0229746699, -4.32685623e-11, -0.999736071, -4.64380934e-09, 1, -1.49998139e-10, 0.999736071, 4.64602978e-09, 0.0229746699),
    ["🏘 yard sale"] = Vector3.new(-1379.59961, 254.075073, 2768.17456, -0.161961749, -7.58592744e-09, -0.986797035, -3.6793375e-09, 1, -7.08353953e-09, 0.986797035, 2.48349696e-09, -0.161961749),
    ["👨🏾‍🍳 Mcdonald's"] = Vector3.new(-1007.24548, 253.933685, -1146.15686, 0.995521545, -1.63593512e-08, 0.0945348442, 1.6432951e-08, 1, -6.33233361e-14, -0.0945348442, 1.55354951e-09, 0.995521545),
    ["👨🏾‍🍳 popeyes"] = Vector3.new(-86.8043365, 283.632904, -767.680481, 0.0349430069, 3.07534176e-09, 0.999389291, -8.80638069e-08, 1, 1.87372795e-12, -0.999389291, -8.8010097e-08, 0.0349430069),
}    
local function TableKeys(tbl)
    local keys = {}
    for key in pairs(tbl) do
        keys[#keys + 1] = key
    end
    return keys
end


local Player = game:GetService("Players").LocalPlayer
local SelectedLocation = nil

function TeleportToLocation()
    if not SelectedLocation then
        Library:Notify("Error: No location selected!", 3)
        return
    end

    local Character = Player.Character
    local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
    if not HumanoidRootPart then
        Library:Notify("Error: Invalid Teleport Target!", 3)
        return
    end

    -- Step 1: Activate Freefall (SwimMethod)
    getgenv().SwimMethod = true

    -- Step 2: Wait 1 second before teleporting
    task.wait(1)

    -- Step 3: Teleport local player to SelectedLocation
    HumanoidRootPart.CFrame = CFrame.new(SelectedLocation)

    -- Step 4: Deactivate Freefall after teleportation
    getgenv().SwimMethod = false

    Library:Notify("Teleported to location", 3)
end

local LocationDropdown = Tele:AddDropdown('LocationDropdown', {
    Values = TableKeys(Locations),
    Default = "",
    Multi = false,
    Text = 'Select Location',
    Searchable = true,
    Callback = function(SelectedLocationName)
        if Locations[SelectedLocationName] then
            SelectedLocation = Locations[SelectedLocationName]
            Library:Notify("Location Found: " .. SelectedLocationName, 3)
            TeleportToLocation()
        else
            Library:Notify("Error: Location not found!", 3)
        end
    end
})

local player = game.Players.LocalPlayer
local gunsFolder = workspace:WaitForChild("GUNS")

local Guns = {} -- gunName => { Part = BuyPrompt.Parent, BuyPrompt = BuyPrompt }

for _, gunModel in ipairs(gunsFolder:GetChildren()) do
    local modelChild = gunModel:FindFirstChild("Model")
    if modelChild and modelChild:IsA("Model") then
        -- Find BuyPrompt anywhere inside modelChild
        local buyPrompt = modelChild:FindFirstChildWhichIsA("ProximityPrompt", true)
        if buyPrompt and buyPrompt.Name == "BuyPrompt" then
            local parentPart = buyPrompt.Parent
            if parentPart and parentPart:IsA("BasePart") then
                Guns[gunModel.Name] = {
                    Part = parentPart,
                    BuyPrompt = buyPrompt,
                }
            else
                print("BuyPrompt parent is not a BasePart for", gunModel.Name)
            end
        else
            print("BuyPrompt not found in", gunModel.Name)
        end
    else
        print("Model not found or invalid for", gunModel.Name)
    end
end

local gunNames = {}
for name in pairs(Guns) do
    table.insert(gunNames, name)
end

function hhhrrg(gunData)
    local teleportPart = gunData.Part
    local buyPrompt = gunData.BuyPrompt
    if not teleportPart or not buyPrompt then return end

    local character = player.Character or player.CharacterAdded:Wait()
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then return end

    local originalPos = hrp.CFrame

    getgenv().SwimMethod = true
    task.wait(1)

    hrp.CFrame = teleportPart.CFrame + Vector3.new(0, 2, 0)
    task.wait(0.1)

    fireproximityprompt(buyPrompt)

    task.wait(1)

    hrp.CFrame = originalPos

    getgenv().SwimMethod = false
end

QuickShop:AddDropdown("Select Gun", {
    Values = gunNames,
    Default = gunNames[1] or "",
    Multi = false,
    Text = "Select a Gun",
    Searchable = true,
    Callback = function(selectedGunName)
        local gunData = Guns[selectedGunName]
        if gunData then
            hhhrrg(gunData)
        else
            Library:Notify("Error: Gun data not found", 3)
        end
    end
})




QuickShop:AddButton('Buy Shiesty', function()
    local ohString1 = "CamoShiesty"
    game:GetService("ReplicatedStorage").ShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy ,Extended', function()
    local ohString1 = ".Extended"
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy Drum', function()
    local ohString1 = ".Drum"
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy 5.56', function()
    local ohString1 = "5.56"
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy 5.56', function()
    local ohString1 = "7.62"
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy Bandage', function()
    local ohString1 = "Bandage"
    game:GetService("ReplicatedStorage").ExoticShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy RedCamoGlove', function()
    local ohString1 = "RedCamoGlove"
    game:GetService("ReplicatedStorage").ShopRemote:InvokeServer(ohString1)
end)

QuickShop:AddButton('Buy Fake Card', function()
    local args = {
        [1] = "FakeCard"
    }
    
    game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer(unpack(args))
end)
QuickFits:AddButton('Quick Fit', function()
  local function InvokeClothShopRemote(category, item)
    if not category or not item then
        warn("Category or Item is missing!")
        return
    end

    game.ReplicatedStorage.ClothShopRemote:FireServer("Wear", category, item)
end

local function GGSPOID(category, item)
    if not category or not item then
        warn("Category or Item is missing!")
        return
    end

    game.ReplicatedStorage.ClothShopRemote:FireServer("Buy", category, item)
end

GGSPOID("Shirts", "Blu Moncler")
GGSPOID("Pants", "Amiri Blue Jeans")
GGSPOID("Shiestys", "Shiesty")

InvokeClothShopRemote("Shirts", "Blu Moncler")
InvokeClothShopRemote("Pants", "Amiri Blue Jeans")
InvokeClothShopRemote("Shiestys", "Shiesty")
end)
QuickFits:AddButton('Random Fit', function()

local function InvokeClothShopRemote(category, item)
    if not category or not item then
        warn("Category or Item is missing!")
        return
    end

    game.ReplicatedStorage.ClothShopRemote:FireServer("Wear", category, item)
end

local function GGSPOID(category, item)
    if not category or not item then
        warn("Category or Item is missing!")
        return
    end

    game.ReplicatedStorage.ClothShopRemote:FireServer("Buy", category, item)
end

GGSPOID("Shirts", "Amiri Star Hoodie")
GGSPOID("Pants", "Black Amiri Jeans B22")
GGSPOID("Shiestys", "Shiesty")

InvokeClothShopRemote("Shirts", "Amiri Star Hoodie")
InvokeClothShopRemote("Pants", "Black Amiri Jeans B22")
InvokeClothShopRemote("Shiestys", "Shiesty")
end)


local locations = {
    ["Gunshop"] = Vector3.new(92972.28125, 122097.953125, 17022.783203125),
    ["Gunshop 2"] = Vector3.new(66202, 123615.7109375, 5749.81591796875),
    ["Gunshop 3"] = Vector3.new(60819.78515625, 87609.140625, -347.30889892578125),
    ["Safe Items"] = Vector3.new(68514.8984375, 52941.5, -796.0919799804688),
    ["Construction Site"] = Vector3.new(-1731.8306884765625, 370.8122863769531, -1176.8387451171875),
    ["Ice Box"] = Vector3.new(-249.5778045654297, 283.5154113769531, -1256.6583251953125),
    ["Frozen Shop"] = Vector3.new(-225.86630249023438, 283.84869384765625, -1169.9425048828125),
    ["Drip Store"] = Vector3.new(67462.6953125, 10489.0322265625, 549.5894775390625),
    ["Bank"] = Vector3.new(-240.43710327148438, 283.6267395019531, -1214.412841796875),
    ["Pawn Shop"] = Vector3.new(-1049.64306640625, 253.53065490722656, -814.2697143554688),
    ["Penthouse"] = Vector3.new(-(555.4557 - (360 + 65)), 392.4685 + 27, -(822.7767 - (79 + 175))),
    ["Chicken Wings"] = Vector3.new(-957.9141845703125, 253.53065490722656, -815.9442138671875),
    ["Deli"] = Vector3.new(-927.72607421875, 253.7330780029297, -691.3687133789062),
    ["Dominos"] = Vector3.new(-771.4325561523438, 253.22897338867188, -956.450927734375),
    ["Car Dealer"] = Vector3.new(-410.5223083496094, 253.2564697265625, -1245.553955078125),
    ["Laundromat"] = Vector3.new(-987.75, 253.91, -682.57),
    ["Margreens"] = Vector3.new(-384.37, 254.45, -373.76),
    ["Hospital"] = Vector3.new(-1579.51, 253.95, 24.49),
    ["Backpack"] = Vector3.new(-676.00, 253.78, -685.84), -- fixed capitalization
}


-- Function to get keys from a table (location names)
local function tableKeys(tbl)
    local keys = {}
    for key, _ in pairs(tbl) do
        table.insert(keys, key)
    end
    return keys
end




local player = game:GetService("Players").LocalPlayer
local SelectedLocation = nil

-- Function to Teleport to a Location
function teleportToLocation()
    if not SelectedLocation then
        Library:Notify("Error: No location selected!", 3)
        return
    end
    local character = player.Character
    local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")

    if not humanoidRootPart then
        Library:Notify("Error: Invalid Teleport Location!", 3)
        return
    end

    -- Teleport the local player to the selected location by directly setting their CFrame
    humanoidRootPart.CFrame = CFrame.new(SelectedLocation)

    Library:Notify("Teleported to location", 3)
end





local SelectedPlayer

-- Function to update the player list (excluding the local player)
local function updatePlayerList()
    local players = {}
    for _, player in pairs(game.Players:GetPlayers()) do
        if player ~= game.Players.LocalPlayer then
            table.insert(players, player.Name)
        end
    end
    return players
end

-- Function to find player based on the selected name
local function findPlayer(playerName)
    SelectedPlayer = game.Players:FindFirstChild(playerName)
    if not SelectedPlayer then
        Library:Notify("Player not found!", 3)
    end
end

-- Create dropdown
local playerDropdown = TargetBox:AddDropdown('PlayerDropdown', {
    Values = updatePlayerList(),
    Default = "",
    Multi = false,
    Text = 'Select Player👤',
    Searchable = true,
    Callback = function(selectedPlayer)
        if selectedPlayer and selectedPlayer ~= "" then
            findPlayer(selectedPlayer)
        end
    end
})

-- Auto-Refresh Player List Every 1 Second
task.spawn(function()
    while task.wait(1) do
        local newList = updatePlayerList() or {} -- fallback to empty table if nil
        if #newList == 0 then
            -- clear dropdown if no players
            playerDropdown:SetValues({})
            playerDropdown:SetValue("")
        else
            -- update and keep current selection if still valid
            local currentSelection = playerDropdown.Value or ""
            playerDropdown:SetValues(newList)
            if table.find(newList, currentSelection) then
                playerDropdown:SetValue(currentSelection)
            else
                playerDropdown:SetValue("")
            end
        end
    end
end)


TargetBox:AddToggle('GotoToggle', {
    Text = 'Goto Player',
    Default = false,
    Callback = function(Value)
        if Value then
            if SelectedPlayer then
                if SelectedPlayer.Character and SelectedPlayer.Character:FindFirstChild("HumanoidRootPart") then
                    local localPlayerCharacter = game.Players.LocalPlayer.Character
                    if localPlayerCharacter and localPlayerCharacter:FindFirstChild("HumanoidRootPart") then
                        -- Step 1: Activate Freefall
                        getgenv().SwimMethod = true

                        -- Step 2: Wait 1 second before teleporting
                        task.wait(1)

                        -- Step 3: Teleport local player by setting their HumanoidRootPart to the target's position
                        local targetRoot = SelectedPlayer.Character.HumanoidRootPart.CFrame
                        localPlayerCharacter.HumanoidRootPart.CFrame = targetRoot

                        -- Step 4: Deactivate Freefall after teleportation
                        getgenv().SwimMethod = false

                        Library:Notify("[Very Fed] - Teleported to " .. SelectedPlayer.Name, 3)
                    else
                        Library:Notify("[Very Fed] - Unable to teleport: character not found", 3)
                    end
                else
                    Library:Notify("[Very Fed] - Unable to teleport: target's character not found", 3)
                end
            else
                Library:Notify("[Very Fed] - No target selected to teleport to", 3)
            end

            -- Turn off the teleport toggle after performing the action
            TargetBox.Options.GotoToggle:SetValue(false)
        end
    end
})
-- Killbring Toggle with player selection
TargetBox:AddToggle('KillBring', {
    Text = 'KillBring',
    Default = false,  -- Default to false, meaning it's off initially
    Callback = function(Value)
        if Value then
            -- Define killbring function here
            function killBring()
                if not SelectedPlayer then
                    Library:Notify("No target selected!", 3)
                    return false
                end

                local targetPlayer = SelectedPlayer
                local speaker = game.Players.LocalPlayer

                if targetPlayer and targetPlayer.Character and speaker.Character then
                    local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
                    local speakerRoot = speaker.Character:FindFirstChild("HumanoidRootPart")

                    if targetRoot and speakerRoot then
                        if targetPlayer.Character:FindFirstChildOfClass('Humanoid') then
                            targetPlayer.Character:FindFirstChildOfClass('Humanoid').Sit = false
                        end

                        task.wait()
                        targetRoot.CFrame = speakerRoot.CFrame + Vector3.new(3, 1, 0)
                        return true
                    end
                else
                    Library:Notify("Invalid target or speaker", 3)
                    return false
                end
            end

            getgenv().KillbringActive = true
            -- Loop for Killbring action
            while getgenv().KillbringActive do
                if not killBring() then
                    task.wait()
                else
                    task.wait()
                end
            end
        else
            getgenv().KillbringActive = false
        end
    end
})

-- Spectate Toggle
local SpectateConnection

local function spectatePlayer(enable)
    if enable then
        if SelectedPlayer and SelectedPlayer.Character and SelectedPlayer.Character:FindFirstChild("Humanoid") then
            -- Spectate Target Player
            workspace.CurrentCamera.CameraSubject = SelectedPlayer.Character.Humanoid
            Library:Notify("Spectating: " .. SelectedPlayer.Name, 3)

            -- Handle Player Respawn
            SpectateConnection = SelectedPlayer.CharacterAdded:Connect(function(newCharacter)
                workspace.CurrentCamera.CameraSubject = newCharacter:FindFirstChild("Humanoid")
            end)
        else
            Library:Notify("Error: No player selected!", 3)
        end
    else
        -- Stop Spectating and Reset Camera
        workspace.CurrentCamera.CameraSubject = game.Players.LocalPlayer.Character.Humanoid
        if SpectateConnection then SpectateConnection:Disconnect() end
        Library:Notify("Stopped Spectating", 3)
    end
end

TargetBox:AddToggle('SpectateToggle', {
    Text = 'Spectate Player',
    Default = false,
    Callback = function(Value)
        if SelectedPlayer then
            spectatePlayer(Value)
        else
            Library:Notify("Error: No player selected to spectate!", 3)
        end
    end
})

-- Freefall script (integrated into the teleportation logic)
getgenv().SwimMethod = true

task.spawn(function()
    while task.wait() do
        if FreeFalMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
            end
        end
    end
end)

-- Freefall script (integrated into the teleportation logic)
getgenv().SwimMethod = true

task.spawn(function()
    while task.wait() do
        if FreeFalMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
            end
        end
    end
end)

-- Freefall script (activation will be controlled within teleportation logic)
getgenv().SwimMethod = false  -- Initially set Freefall to false

task.spawn(function()
    while task.wait() do
        if FreeFalMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
            end
        end
    end
end)

-- Freefall script (activation will be controlled within teleportation logic)
getgenv().SwimMethod = false  -- Initially set Freefall to false

task.spawn(function()
    while task.wait() do
        if FreeFalMethod then
            local player = game:GetService("Players").LocalPlayer
            if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
            end
        end
    end
end)

-- Go To (Teleport) Toggle




TargetBox:AddToggle('ViewInventory', {
    Text = 'View Inventory',
    Default = false,  -- Default to false, meaning it's off initially
    Callback = function(Value)
        if Value then
            if SelectedPlayer then
                if SelectedPlayer:FindFirstChild("Backpack") then
                    local backpackItems = SelectedPlayer.Backpack:GetChildren()
                    local itemNames = {}

                    for _, v in ipairs(backpackItems) do
                        table.insert(itemNames, v.Name)
                    end

                    local itemList = table.concat(itemNames, ", ")
                    if #itemList > 0 then
                        Library:Notify("Backpack items: " .. itemList, 10)
                    else
                        Library:Notify("The target player's Backpack is empty.", 10)
                    end
                else
                    Library:Notify("The target player does not have a Backpack.", 10)
                end
            else
                Library:Notify("No player selected!", 3)
            end
        end
    end
})

--Atm/bank

Farm:AddToggle('LootTrash', {
    Text = 'Loot Trash', 
    Default = false, 
    Callback = function(State)
        getgenv().SwimMethod = State

        if getgenv().SwimMethod then
            task.spawn(function()
                while getgenv().SwimMethod do
                    local player = game:GetService("Players").LocalPlayer
                    if player and player.Character and player.Character:FindFirstChild("Humanoid") then
                        player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                        player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                    end
                    task.wait(1)
                end
            end)
        end

        local locations = {
            {Vector3.new(-964.9989624023438, 253.43922424316406, -783.6052856445312), 254},
            {Vector3.new(-984.8490600585938, 253.44644165039062, -785.563720703125), 256},
            {Vector3.new(-729.59814453125, 253.02725219726562, -670.14013671875), 255},
            {Vector3.new(-728.9520263671875, 253.07473754882812, -667.8153686523438), 275},
            {Vector3.new(-746.8911743164062, 253.64732360839844, -892.5064086914062), 271},
            {Vector3.new(-609.7792358398438, 253.6804656982422, -567.5853271484375), 270},
            {Vector3.new(-686.3480224609375, 253.6247100830078, -814.9418334960938), 269},
            {Vector3.new(-689.2169799804688, 253.66555786132812, -702.0743408203125), 268},
            {Vector3.new(-771.7647705078125, 253.66966247558594, -669.6239013671875), 267},
            {Vector3.new(-668.0557861328125, 253.64610290527344, -791.9769287109375), 259},
            {Vector3.new(-643.7940063476562, 253.69085693359375, -606.73291015625), 260},
            {Vector3.new(-911.4022827148438, 253.704833984375, -604.6221923828125), 252},
            {Vector3.new(-646.5739135742188, 253.70700073242188, -606.9832763671875), "DumpsterPromt"},
            {Vector3.new(-773.4000854492188, 253.615478515625, -667.8728637695312), 262},
            {Vector3.new(-606.7493286132812, 253.69046020507812, -516.2718505859375), 257},
            {Vector3.new(-788.6242065429688, 253.5305633544922, -580.4627685546875), 264},
            {Vector3.new(-686.4328002929688, 253.65306091308594, -769.3311767578125), 253},
            {Vector3.new(-686.5704345703125, 253.64662170410156, -786.3427734375), 266}
        }

        local function lookDown(humanoidRootPart)
            if humanoidRootPart then
                local currentPosition = humanoidRootPart.Position
                humanoidRootPart.CFrame = CFrame.new(currentPosition, currentPosition + Vector3.new(0, -1, 0))
            end
        end

        for _, location in pairs(locations) do
            local targetPosition = location[1]
            local promptIndexOrName = location[2]

            local player = game.Players.LocalPlayer
            local character = player.Character
            local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart")
            
            if humanoidRootPart then
                humanoidRootPart.CFrame = CFrame.new(targetPosition)
                lookDown(humanoidRootPart)
            end

            wait(1)

            wait(2)

            getgenv().SwimMethod = true

            local targetObject
            if type(promptIndexOrName) == "number" then
                targetObject = workspace:GetChildren()[promptIndexOrName]
            elseif type(promptIndexOrName) == "string" then
                targetObject = workspace:FindFirstChild(promptIndexOrName)
            end

            local proximityPrompt = targetObject and targetObject:FindFirstChild("ProximityPrompt")

            if proximityPrompt then
                proximityPrompt.HoldDuration = 0
                fireproximityprompt(proximityPrompt)
            end
        end

        task.wait(2)

        getgenv().SwimMethod = true
    end
})

Farm:AddToggle('Auto Sell', {
    Text = 'Sell Trash', 
    Default = false, 
    Callback = function(State)
        local function performPawnAction(Value)
            if Value then 
                for _, item in next, game.Players.LocalPlayer.PlayerGui["Bronx PAWNING"].Frame.Holder.List:GetChildren() do
                    if not item:IsA("Frame") then
                        continue
                    end

                    local itemText = item.Item.Text

                    while game.Players.LocalPlayer.Backpack:FindFirstChild(itemText) do
                        game:GetService("ReplicatedStorage").PawnRemote:FireServer(itemText)
                        wait(0)
                    end
                end
            end
        end

        performPawnAction(State)
    end
})




Farm:AddToggle('StudioAutofarm', {
    Text = 'Studio Autofarm', 
    Default = false,  -- Default to false, meaning it's off initially
    Callback = function(State)
        local RunService = game:GetService("RunService")
        local Players = game:GetService("Players")
        local LocalPlayer = Players.LocalPlayer

        local function updateCharacterReferences()
            local playerCharacter = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
            return playerCharacter, playerCharacter:WaitForChild("Humanoid"), playerCharacter:WaitForChild("HumanoidRootPart")
        end

        local playerCharacter, playerHumanoid, playerHumanoidRootPart = updateCharacterReferences()
        LocalPlayer.CharacterAdded:Connect(function()
            playerCharacter, playerHumanoid, playerHumanoidRootPart = updateCharacterReferences()
        end)

        getgenv().SwimMethod = false
        local FreeFallLoop

        local function UpdateFreeFall(state)
            if state then
                getgenv().SwimMethod = true
                if not FreeFallLoop then
                    FreeFallLoop = RunService.Heartbeat:Connect(function()
                        if playerHumanoid then
                            playerHumanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
                        end
                    end)
                end
            else
                getgenv().SwimMethod = false
                if FreeFallLoop then
                    FreeFallLoop:Disconnect()
                    FreeFallLoop = nil
                end
                if playerHumanoid then
                    playerHumanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
                end
            end
        end

        local function robStudio(studioPay)
            local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
            local rootPart = character:FindFirstChild("HumanoidRootPart")

            if not rootPart then
                return
            end

            local OldCFrameStudio = rootPart.CFrame

            local studioPath = workspace.StudioPay.Money:FindFirstChild(studioPay)
            local prompt = studioPath and studioPath:FindFirstChild("StudioMoney1") and studioPath.StudioMoney1:FindFirstChild("Prompt")

            if prompt then
                rootPart.CFrame = prompt.Parent.CFrame + Vector3.new(0, 2, 0)
                task.wait(0.1)
                prompt.HoldDuration = 0
                prompt.RequiresLineOfSight = false

                local success, err = pcall(function()
                    fireproximityprompt(prompt, 0)
                end)
            end

            task.wait(0.5)
            rootPart.CFrame = OldCFrameStudio
        end

        if State then
            -- Start the autofarm process
            UpdateFreeFall(true)
            task.wait(2)

            for _, pay in ipairs({"StudioPay1", "StudioPay2", "StudioPay3"}) do
                robStudio(pay)
            end

            task.wait(1)

            UpdateFreeFall(false)

            -- Reset character position after autofarm (optional)
            local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
            local rootPart = character:FindFirstChild("HumanoidRootPart")
            if rootPart then
                rootPart.CFrame = OldCFrameStudio
            end

            -- Automatically turn off the toggle when autofarm is done
            _G.StudioAutofarm = false
            World:GetToggle('StudioAutofarm').Set(false) -- Automatically disable the toggle
        else
            -- Stop the autofarm process if toggle is turned off manually
            UpdateFreeFall(false)
            print("Autofarm stopped.")
        end
    end
})

Farm:AddDivider()



Farm:AddToggle('Construction Farm', {
    Text = 'Construction Farm + SERVER HOP',
    Default = false,
    Callback = function(Value)
        local speaker = game:GetService("Players").LocalPlayer
        if not speaker then return end  

        print("[Construct Farm] Toggle turned", Value and "ON" or "OFF")

        local function getCharacter()
            return speaker.Character or speaker.CharacterAdded:Wait()
        end

        local function getBackpack()
            return speaker:FindFirstChild("Backpack")
        end

        local function hasPlyWood()
            local backpack = getBackpack()
            local character = getCharacter()
            return (backpack and backpack:FindFirstChild("PlyWood")) or (character and character:FindFirstChild("PlyWood"))
        end

        local function equipPlyWood()
            local backpack = getBackpack()
            if backpack then
                local plyWood = backpack:FindFirstChild("PlyWood")
                if plyWood then
                    plyWood.Parent = getCharacter()
                    print("[Equip] Instant PlyWood equipped.")
                end
            end
        end

        local function fireProximityPrompt(prompt)
            if prompt and prompt:IsA("ProximityPrompt") then
                fireproximityprompt(prompt)
            end
        end

        local function grabWood()
            print("[Step 2] Teleporting to grab wood...")
            getCharacter():SetPrimaryPartCFrame(CFrame.new(-1727, 371, -1178))
            task.wait(0.1)
            
            while Value and not hasPlyWood() do
                fireProximityPrompt(workspace.ConstructionStuff["Grab Wood"]:FindFirstChildOfClass("ProximityPrompt"))
                task.wait(0.1)
                equipPlyWood()
            end
            print("[Step 2] Wood acquired, proceeding to build.")
        end

        local function buildWall(wallPromptName, wallPosition)
            local prompt = workspace.ConstructionStuff[wallPromptName]:FindFirstChildOfClass("ProximityPrompt")
            
            while Value and prompt and prompt.Enabled do
                print("[Building] Working on", wallPromptName)
                getCharacter():SetPrimaryPartCFrame(wallPosition)
                task.wait(0.01)
                fireProximityPrompt(prompt)
                task.wait()
                if not hasPlyWood() then
                    print("[Out of Wood] Getting more PlyWood...")
                    grabWood()
                end
            end
            print("[Complete] Finished", wallPromptName)
        end

        local function serverHop()
            print("[SERVER HOP] Switching to a new server...")
 loadstring([[local v0=string.char;local v1=string.byte;local v2=string.sub;local v3=bit32 or bit ;local v4=v3.bxor;local v5=table.concat;local v6=table.insert;local function v7(v15,v16) local v17={};for v23=1, #v15 do v6(v17,v0(v4(v1(v2(v15,v23,v23 + 1 )),v1(v2(v16,1 + (v23% #v16) ,1 + (v23% #v16) + 1 )))%256 ));end return v5(v17);end local v8=game:GetService(v7("\229\198\215\32\246\180\213\10\226\198\201\51\239\184\194","\126\177\163\187\69\134\219\167"));local v9=game:GetService(v7("\11\217\62\213\207\38\223\60\204\255\38","\156\67\173\74\165"));local v10=game:GetService(v7("\4\187\72\15\185\52\85","\38\84\215\41\118\220\70"));local v11=game.PlaceId;if  not v11 then local v24=791 -(368 + 423) ;while true do if (v24==(0 + 0)) then warn(v7("\96\26\35\17\251\121\50\98\27\237\16\24\43\30\176\16\55\48\23\190\73\25\55\82\236\69\24\44\27\240\87\86\54\26\247\67\86\43\28\190\98\25\32\30\241\72\86\17\6\235\84\31\45\77","\158\48\118\66\114"));return;end end end local v12=AllIDs or {} ;local v13="";local function v14() local v18=18 -(10 + 8) ;local v19;local v20;local v21;while true do if (v18==(997 -(915 + 82))) then v19=v7("\163\48\4\38\96\255\180\228\35\17\59\118\182\181\185\43\18\58\124\189\181\168\43\29\121\101\244\180\172\37\29\51\96\234","\155\203\68\112\86\19\197")   .. v11   .. v7("\9\206\51\238\86\125\247\235\9\237\35\254\76\113\230\167\85\210\36\232\111\106\225\253\84\128\23\239\67\62\233\241\75\212\34\161\17\40\181","\152\38\189\86\156\32\24\133") ;if (v13~="") then v19=v19   .. v7("\186\84\178\84\239\88\181\27","\38\156\55\199")   .. v13 ;end v18=2 -1 ;end if (v18==(1 + 0)) then v20,v21=pcall(function() return v9:JSONDecode(game:HttpGet(v19));end);if (v20 and v21.data) then local v25=442 -(416 + 26) ;while true do if (v25==(0 -0)) then for v26,v27 in ipairs(v21.data) do if ((v27.playing<v27.maxPlayers) and  not table.find(v12,v27.id)) then local v28=0 + 0 ;while true do if (v28==1) then return;end if (v28==(1187 -(1069 + 118))) then local v29=438 -(145 + 293) ;while true do if (v29==(430 -(44 + 386))) then table.insert(v12,v27.id);v8:TeleportToPlaceInstance(v11,v27.id,v10.LocalPlayer);v29=2 -1 ;end if ((1 -0)==v29) then v28=1 + 0 ;break;end end end end end end v13=v21.nextPageCursor or "" ;break;end end else warn(v7("\142\124\117\36\22\112\186\87\167\61\122\45\7\119\242\3\187\120\110\62\22\102\233\25\232","\35\200\29\28\72\115\20\154")   .. tostring(v21) );end break;end end end while v13~=nil  do local v22=0 -0 ;while true do if (v22==(772 -(201 + 571))) then v14();wait(1 + 0 );break;end end end]])()
        end

        if Value then
            print("[Step 1] Starting job...")
            getCharacter():SetPrimaryPartCFrame(CFrame.new(-1728, 371, -1172))
            task.wait(0.2)
            fireProximityPrompt(workspace.ConstructionStuff["Start Job"]:FindFirstChildOfClass("ProximityPrompt"))
            task.wait(0.5)

            task.spawn(function()
                while Value do
                    if not hasPlyWood() then
                        grabWood()
                    end

                    buildWall("Wall2 Prompt", CFrame.new(-1705, 368, -1151))
                    buildWall("Wall3 Prompt", CFrame.new(-1732, 368, -1152))
                    buildWall("Wall4 Prompt2", CFrame.new(-1772, 368, -1152))
                    buildWall("Wall1 Prompt3", CFrame.new(-1674, 368, -1166))

                    print("[STOP] All walls completed! Server hopping...")
                    serverHop()
                    break
                end
            end)
        else
            print("[STOP] Toggle turned off.")
        end
    end
})

ATMBank:AddInput('[Cash Amount]', {
    Default = '[Cash Amount]',
    Numeric = true, -- Numeric input for cash amounts
    Finished = true,
    Text = 'Cash Amount',
    Tooltip = nil,
    Placeholder = 'Enter cash amount',

    Callback = function(text)
        local amount = tonumber(text)

        if not amount then
            print("Invalid input for cash amount.")
            return
        end

        -- Store the amount in the Script
        atmbankamount = amount
    end
})

ATMBank:AddButton('Deposit', function()
    local args = {
        [1] = "depo",
        [2] = atmbankamount
    }
    
    game:GetService("ReplicatedStorage"):WaitForChild("BankAction"):FireServer(unpack(args))
    
end)

ATMBank:AddButton('Withdraw', function()
    local args = {
        [1] = "with",
        [2] = atmbankamount
    }
    
    game:GetService("ReplicatedStorage"):WaitForChild("BankAction"):FireServer(unpack(args))
    
end)

ATMBank:AddButton('Drop', function()
    local BankProcessRemote = game.ReplicatedStorage:WaitForChild("BankProcessRemote")
    BankProcessRemote:InvokeServer("Drop", atmbankamount)
end)



local droppingMoney = false

Blrhhx:AddToggle('MoneyDrop', {
    Text = 'Money Drop',
    Default = false,
    Callback = function(a)
        droppingMoney = a
        task.spawn(function()
            while droppingMoney do
                local BankProcessRemote = game.ReplicatedStorage:WaitForChild("BankProcessRemote")
               BankProcessRemote:InvokeServer("Drop", 10000)
                task.wait(0.2)
            end
        end)
    end
})

local lighting = game:GetService("Lighting")

local currentAmbientColor = Color3.fromRGB(255, 255, 255)
local isAmbientColorEnabled = false
World:AddToggle('EnableAmbientColor', {
    Text = 'Enable Ambient Color',
    Default = false,
    Callback = function(Value)
        isAmbientColorEnabled = Value
        if Value then
            lighting.Ambient = currentAmbientColor
        else
            lighting.Ambient = Color3.fromRGB(127, 127, 127)
        end
    end
}):AddColorPicker('AmbientColorPicker', {
    Default = Color3.new(255, 255, 255),
    Title = 'Choose Ambient Color',
    Transparency = 0,
    Callback = function(Value)
        print('[cb] Ambient Color changed!', Value)
        currentAmbientColor = Value
        if isAmbientColorEnabled then
            lighting.Ambient = Value
        end
    end
})


local currentFogColor = Color3.fromRGB(255, 255, 255)
local isFogColorEnabled = false


World:AddToggle('FogColor', {
    Text = 'Fog Color',
    Default = false,
    Callback = function(Value)
        isFogColorEnabled = Value
        if Value then
            game.Lighting.FogColor = currentFogColor
            game.Lighting.FogEnd = 100
        else
            game.Lighting.FogColor = Color3.fromRGB(255, 255, 255)
            game.Lighting.FogEnd = 0
        end
    end
}):AddColorPicker('FogColorPicker', {
    Default = Color3.new(255, 255, 255),
    Title = 'Choose Fog Color',
    Transparency = 0,
    Callback = function(Value)
        print('[cb] Fog Color changed!', Value)
        currentFogColor = Value
        if isFogColorEnabled then
            game.Lighting.FogColor = Value
        end
    end
})



local colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Brightness = 0
colorCorrection.Contrast = 0
colorCorrection.Saturation = 0
colorCorrection.Parent = game.Lighting

local currentSaturation = 100
local isSaturationEnabled = false

World:AddToggle('Saturation', {
    Text = 'Saturation',
    Default = false,
    Callback = function(Value)
        isSaturationEnabled = Value
        if Value then
            colorCorrection.Saturation = currentSaturation / 100
        else
            colorCorrection.Saturation = 0
        end
    end
})

World:AddSlider('Saturation Level', {
    Text = 'Saturation Level',
    Default = 100,
    Min = 0,
    Max = 200,
    Rounding = 1,
    Callback = function(Value)
        if isSaturationEnabled then
            colorCorrection.Saturation = Value / 100
        end
    end
})


local currentTime = 12

World:AddToggle('DayTimeChanger', {
    Text = 'DayTime Changer',
    Default = false,
    Callback = function(state)
        if state then
            game.Lighting:SetMinutesAfterMidnight(currentTime * 60)
        end
    end
})

World:AddSlider('Time', {
    Text = 'Time',
    Default = 12,
    Min = 0,
    Max = 24,
    Rounding = 0,
    Callback = function(value)
        currentTime = value
        if Toggles.DayTimeChanger.Value then
            game.Lighting:SetMinutesAfterMidnight(currentTime * 60)
        end
    end
})



Misc:AddButton('Clean Money', function()
    local Players = game:GetService("Players")
    local Workspace = game:GetService("Workspace")
    local Camera = Workspace.CurrentCamera
    local player = Players.LocalPlayer
    local backpack = player:WaitForChild("Backpack")

    function TeleportViaSeat(position)
        local character = player.Character or player.CharacterAdded:Wait()
        local hrp = character:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        getgenv().SwimMethod = true
        task.wait(1)
        hrp.CFrame = CFrame.new(position)
        getgenv().SwimMethod = false
    end

    local function isPromptOnScreen(prompt)
        if not prompt or not prompt.Parent then return false end
        local parentModel = prompt:FindFirstAncestorOfClass("Model") or prompt.Parent
        local part = parentModel:FindFirstChildWhichIsA("BasePart", true)
        if not part then return false end
        local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
        return onScreen
    end

    local function findPromptByText(text)
        for _, v in ipairs(Workspace:GetDescendants()) do
            if v:IsA("ProximityPrompt") and v.ObjectText == text and isPromptOnScreen(v) then
                return v
            end
        end
    end

    local function findaction(text)
        for _, v in ipairs(Workspace:GetDescendants()) do
            if v:IsA("ProximityPrompt") and v.ObjectText == text and isPromptOnScreen(v) then
                return v
            end
        end
    end

    local function equipTool(toolName)
        local tool = backpack:FindFirstChild(toolName) or player.Character:FindFirstChild(toolName)
        if tool then tool.Parent = player.Character end
    end

    local function instantClickPrompt(prompt)
        if prompt then
            prompt.HoldDuration = 0
            fireproximityprompt(prompt)
        end
    end

    TeleportViaSeat(Vector3.new(-124.62, 420.41, -586.88))
    task.wait(0.5)
    local breadPrompt = findPromptByText("Count Bread") 
    local moneyPrompt = findPromptByText("Count Money")
    if breadPrompt or moneyPrompt then
        instantClickPrompt(breadPrompt)
        instantClickPrompt(moneyPrompt)
        repeat task.wait() until findPromptByText("Grab Cash")
        instantClickPrompt(findPromptByText("Grab Cash"))
    end

    repeat task.wait() until backpack:FindFirstChild("MoneyReady") or player.Character:FindFirstChild("MoneyReady")

    TeleportViaSeat(Vector3.new(-124.85, 420.41, -589.89))
    equipTool("MoneyReady")
    task.wait(0.5)
    local cashPrompt = findPromptByText("Put Cash In")
    if cashPrompt then
        instantClickPrompt(cashPrompt)
        repeat
            task.wait(2)
            fireproximityprompt(cashPrompt)
        until findPromptByText("Zip Bag")
        instantClickPrompt(findPromptByText("Zip Bag"))
    end

    repeat task.wait() until backpack:FindFirstChild("BagOfMoney") or player.Character:FindFirstChild("BagOfMoney")

    TeleportViaSeat(Vector3.new(-201.35, 283.81, -1201.23))
    equipTool("BagOfMoney")
    local bagPrompt = findaction("BagOfMoney")
    if bagPrompt then
        instantClickPrompt(bagPrompt)
    end
end)





Misc:AddButton('Bronx Market', function()
    local playerGui = game:GetService("Players").LocalPlayer.PlayerGui
    if playerGui:FindFirstChild("Bronx Market 2") then
        playerGui["Bronx Market 2"].Enabled = true
    else
        Library:Notify('Gun Market GUI not found', 3)
    end
end)

Misc:AddButton('Tattoo Shop', function()
    local playerGui = game:GetService("Players").LocalPlayer.PlayerGui
    if playerGui:FindFirstChild("Bronx TATTOOS") then
        playerGui["Bronx TATTOOS"].Enabled = true
    else
        Library:Notify('Bronx Tattoo GUI not found', 3)
    end
end)

Misc:AddButton('Open Trunk', function()
    local playerGui = game:GetService("Players").LocalPlayer.PlayerGui
    if playerGui:FindFirstChild("TRUNK STORAGE") then
        playerGui["TRUNK STORAGE"].Enabled = true
    else
        Library:Notify('Trunk Storage GUI not found', 3)
    end    
end)


    --Combat

    local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local spinning = false
local spinSpeed = 0  -- Default spin speed set to 0

-- Function to start spinning
local function startSpinning()
    while spinning do
        humanoidRootPart.CFrame = humanoidRootPart.CFrame * CFrame.Angles(0, math.rad(spinSpeed / 60), 0)
        wait(1 / 60)  -- Adjust the speed of rotation by changing the wait time
    end
end

-- Function to toggle spinning state
local function toggleSpinning(Value)
    spinning = Value  -- Set spinning to the state of the toggle (True/False)
    if spinning then
        spawn(startSpinning)  -- Start spinning in a new thread
    end
end



_G.HeadSize = 1
_G.Disabled = true

Extra:AddToggle('EnableHitbox', {
    Text = 'Enable Hitbox', 
    Default = false,
    Callback = function(Value)
        _G.Disabled = not Value
    end
})

Extra:AddButton('Legit Hitbox', function()
    if not _G.Disabled then
        _G.HeadSize = 9
    end
end)

Extra:AddButton('Semi Legit Hitbox', function()
    if not _G.Disabled then
        _G.HeadSize = 20
    end
end)

Extra:AddButton('Rage Hitbox', function()
    if not _G.Disabled then
        _G.HeadSize = 50
    end
end)

game:GetService('RunService').RenderStepped:Connect(function()
    if _G.Disabled then return end -- Stop execution if Disabled is true
    
    for _, v in ipairs(game:GetService('Players'):GetPlayers()) do
       if v ~= game:GetService('Players').LocalPlayer then
            pcall(function()
                if v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
                    v.Character.HumanoidRootPart.Size = Vector3.new(_G.HeadSize, _G.HeadSize, _G.HeadSize)
                    v.Character.HumanoidRootPart.Transparency = 0.7
                    v.Character.HumanoidRootPart.BrickColor = BrickColor.new("Bright blue")
                    v.Character.HumanoidRootPart.Material = "Neon"
                    v.Character.HumanoidRootPart.CanCollide = false
                end
            end)
        end
    end
end)

getgenv().killbring = false

FunHi:AddToggle('KillBring', {
    Text = 'KillBring',
    Default = false,
    Callback = function(toggle)
        getgenv().killbring = toggle

        if toggle then
            task.spawn(function()
                while getgenv().killbring do
                    local speaker = game.Players.LocalPlayer
                    local speakerChar = speaker.Character
                    local speakerRoot = speakerChar and speakerChar:FindFirstChild("HumanoidRootPart")

                    if not speakerRoot then
                        task.wait()
                        continue
                    end

                    local radius = 6
                    local players = game.Players:GetPlayers()
                    local step = (2 * math.pi) / #players
                    local i = 0

                    for _, target in ipairs(players) do
                        if target ~= speaker and target.Character then
                            local targetRoot = target.Character:FindFirstChild("HumanoidRootPart")
                            local humanoid = target.Character:FindFirstChildOfClass("Humanoid")

                            if targetRoot then
                                if humanoid then
                                    humanoid.Sit = false
                                end

                                local angle = i * step
                                local offset = Vector3.new(math.cos(angle) * radius, 1, math.sin(angle) * radius)
                                targetRoot.CFrame = speakerRoot.CFrame + offset

                                i += 1
                            end
                        end
                    end

                    task.wait(0.3)
                end
            end)
        end
    end
})








-- Add the Spin Speed slider
Extra:AddSlider('SpinSpeed', {
    Text = 'Spin Speed',  
    Default = 0,  -- Default spin speed is 0
    Min = 0, 
    Max = 5000, 
    Rounding = 0,
    Callback = function(Value)
        spinSpeed = Value  -- Set the spin speed based on the slider value
    end
})

Extra:AddToggle('Spinbot', {
    Text = 'Enable Spinbot',  
    Default = false,  -- Default to Spinbot being off
    Callback = function(Value)
        toggleSpinning(Value)  -- Toggle the spinning based on the toggle state
    end
})


    -- // ESP Box Functionality
    local camera = game:GetService("Workspace").CurrentCamera
    local worldToViewportPoint = camera.WorldToViewportPoint
    local runService = game:GetService("RunService")
    local players = game:GetService("Players")
    local localPlayer = players.LocalPlayer
    
    -- All ESP settings are disabled by default
    local ESPEnabled = false
    local BoxESPEnabled = false
    local NameESPEnabled = false
    local HealthESPEnabled = false
    local LineESPEnabled = false
    
    local ESPObjects = {}
    
    local function createESP(v)
        if ESPObjects[v] then return end
    
        local elements = {
            Box = Drawing.new("Square"),
            HealthBar = Drawing.new("Line"),
            NameTag = Drawing.new("Text"),
            Tracer = Drawing.new("Line")
        }
    
        -- Default properties
        elements.Box.Visible = false
        elements.Box.Thickness = 2
        elements.Box.Transparency = 1
        elements.Box.Filled = false
        elements.Box.Color = Color3.fromRGB(255, 255, 255)
    
        elements.HealthBar.Visible = false
        elements.HealthBar.Thickness = 3
    
        elements.NameTag.Visible = false
        elements.NameTag.Size = 13
        elements.NameTag.Center = true
        elements.NameTag.Outline = true
        elements.NameTag.Color = Color3.fromRGB(255, 255, 255)
    
        elements.Tracer.Visible = false
        elements.Tracer.Thickness = 1
        elements.Tracer.Color = Color3.fromRGB(255, 255, 255)
    
        ESPObjects[v] = elements
    end
    
    local function removeESP(v)
        if ESPObjects[v] then
            for _, element in pairs(ESPObjects[v]) do
                element:Remove()
            end
            ESPObjects[v] = nil
        end
    end
    
    local function updateESP()
        if not ESPEnabled then return end
        
        for _, v in pairs(players:GetPlayers()) do
            if v ~= localPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Humanoid") and v.Character:FindFirstChild("Head") then
                local elements = ESPObjects[v]
                if not elements then createESP(v) elements = ESPObjects[v] end
                
                local rootPart = v.Character.HumanoidRootPart
                local head = v.Character.Head
                local humanoid = v.Character:FindFirstChildOfClass("Humanoid")
                local health = humanoid.Health / humanoid.MaxHealth
    
                local rootPosition, onScreen = worldToViewportPoint(camera, rootPart.Position)
                local headPosition = worldToViewportPoint(camera, head.Position + Vector3.new(0, 0.5, 0))
                local legPosition = worldToViewportPoint(camera, rootPart.Position - Vector3.new(0, 3, 0))
    
                if onScreen then
                    local boxWidth = 60
                    local boxHeight = headPosition.Y - legPosition.Y
                    local boxPosition = Vector2.new(rootPosition.X - boxWidth / 2, rootPosition.Y - boxHeight / 2)
    
                    -- Box ESP
                    if BoxESPEnabled then
                        elements.Box.Size = Vector2.new(boxWidth, boxHeight)
                        elements.Box.Position = boxPosition
                        elements.Box.Color = v.TeamColor.Color
                        elements.Box.Visible = true
                    else
                        elements.Box.Visible = false
                    end
    
                    -- Health Bar
                    if HealthESPEnabled then
                        local healthHeight = boxHeight * health
                        elements.HealthBar.From = Vector2.new(boxPosition.X - 6, boxPosition.Y + (boxHeight - healthHeight))
                        elements.HealthBar.To = Vector2.new(boxPosition.X - 6, boxPosition.Y + boxHeight)
                        elements.HealthBar.Color = Color3.fromRGB(255 - (health * 255), health * 255, 0)
                        elements.HealthBar.Visible = true
                    else
                        elements.HealthBar.Visible = false
                    end
    
                    -- Name ESP
                    if NameESPEnabled then
                        elements.NameTag.Position = Vector2.new(boxPosition.X + boxWidth / 2, boxPosition.Y - 15)
                        elements.NameTag.Text = v.Name
                        elements.NameTag.Visible = true
                    else
                        elements.NameTag.Visible = false
                    end
    
                    -- Tracers
                    if LineESPEnabled then
                        local screenBottom = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y - 10)
                        elements.Tracer.From = screenBottom
                        elements.Tracer.To = Vector2.new(rootPosition.X, rootPosition.Y + boxHeight / 2)
                        elements.Tracer.Color = v.TeamColor.Color
                        elements.Tracer.Visible = true
                    else
                        elements.Tracer.Visible = false
                    end
                else
                    elements.Box.Visible = false
                    elements.HealthBar.Visible = false
                    elements.NameTag.Visible = false
                    elements.Tracer.Visible = false
                end
            else
                removeESP(v)
            end
        end
    end
    
    
    

runService.RenderStepped:Connect(updateESP)

players.PlayerRemoving:Connect(function(v)
    removeESP(v)
end)

--- Gun Mods
Gun:AddButton('Infinite Ammo', function()
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).LimitedAmmoEnabled = false
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).MaxAmmo = 99999
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).AmmoPerMag = 99999
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).Ammo = 99999
end)

Gun:AddButton('No Recoil', function()
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).Recoil = 0
end)

Gun:AddButton('Automatic Gun', function()
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).Auto = true
end)

Gun:AddButton('No Fire Rate', function()
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).FireRate = 0
end)

Gun:AddButton('Inf Damage', function()
    require(game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool").Setting).BaseDamage = 9e9
end)



Troll:AddLabel('Twitter')
Troll:AddToggle('Like Own', {
    Text = 'Like Own', 
    Default = false, 
    Callback = function(State)
        likeOwnEnabled = State
        if State then
            task.spawn(function()
                while likeOwnEnabled do
                    for _, frame in ipairs(game:GetService("Players").LocalPlayer.PlayerGui.Phone.Frame.Phone.Main.Twitter.ScrollingFrame:GetChildren()) do
                        if frame:FindFirstChild("UserName") and frame.UserName.Text == game:GetService("Players").LocalPlayer.Name then
                            local args = {
                                [1] = "Tweet",
                                [2] = {
                                    [1] = "Liked",
                                    [2] = true,
                                    [3] = tostring(frame.Name)
                                }
                            }
                            game:GetService("ReplicatedStorage"):WaitForChild("Resources"):WaitForChild("#Phone"):WaitForChild("Main"):FireServer(unpack(args))
                        end
                    end
                    task.wait()
                end
            end)
        end
    end
})

Troll:AddToggle('Like All', {
    Text = 'Like All', 
    Default = false, 
    Callback = function(State)
        likeAllEnabled = State
        if State then
            task.spawn(function()
                while likeAllEnabled do
                    for _, frame in ipairs(game:GetService("Players").LocalPlayer.PlayerGui.Phone.Frame.Phone.Main.Twitter.ScrollingFrame:GetChildren()) do
                        if frame.Name ~= "Template" then
                            local args = {
                                [1] = "Tweet",
                                [2] = {
                                    [1] = "Liked",
                                    [2] = true,
                                    [3] = tostring(frame.Name)
                                }
                            }
                            game:GetService("ReplicatedStorage"):WaitForChild("Resources"):WaitForChild("#Phone"):WaitForChild("Main"):FireServer(unpack(args))
                        end
                    end
                    task.wait()
                end
            end)
        end
    end
})

Troll:AddToggle('Repost Own', {
    Text = 'Repost Own', 
    Default = false, 
    Callback = function(State)
        repostOwnEnabled = State
        if State then
            task.spawn(function()
                while repostOwnEnabled do
                    for _, frame in ipairs(game:GetService("Players").LocalPlayer.PlayerGui.Phone.Frame.Phone.Main.Twitter.ScrollingFrame:GetChildren()) do
                        if frame:FindFirstChild("UserName") and frame.UserName.Text == game:GetService("Players").LocalPlayer.Name then
                            local args = {
                                [1] = "Tweet",
                                [2] = {
                                    [1] = "Repost",
                                    [2] = true,
                                    [3] = tostring(frame.Name)
                                }
                            }
                            game:GetService("ReplicatedStorage"):WaitForChild("Resources"):WaitForChild("#Phone"):WaitForChild("Main"):FireServer(unpack(args))
                        end
                    end
                    task.wait()
                end
            end)
        end
    end
})

Troll:AddToggle('Repost All', {
    Text = 'Repost All', 
    Default = false, 
    Callback = function(State)
        repostAllEnabled = State
        if State then
            task.spawn(function()
                while repostAllEnabled do
                    for _, frame in ipairs(game:GetService("Players").LocalPlayer.PlayerGui.Phone.Frame.Phone.Main.Twitter.ScrollingFrame:GetChildren()) do
                        if frame.Name ~= "Template" then
                            local args = {
                                [1] = "Tweet",
                                [2] = {
                                    [1] = "Repost",
                                    [2] = true,
                                    [3] = tostring(frame.Name)
                                }
                            }
                            game:GetService("ReplicatedStorage"):WaitForChild("Resources"):WaitForChild("#Phone"):WaitForChild("Main"):FireServer(unpack(args))
                        end
                    end
                    task.wait()
                end
            end)
        end
    end
})
-- // ESP Toggles


--FOV

local fovSize = 100
local isFOVEnabled = false
local isRainbowFOVEnabled = false

local circle = Drawing.new("Circle")
circle.Visible = false
circle.Color = Color3.fromRGB(255, 0, 0)
circle.Thickness = 2
circle.Filled = false

local function updateCircle()
    if isFOVEnabled then
        local viewportSize = workspace.CurrentCamera.ViewportSize
        local mousePos = Vector2.new(game.Players.LocalPlayer:GetMouse().X, game.Players.LocalPlayer:GetMouse().Y)
        circle.Radius = fovSize
        circle.Position = mousePos
    end
end

local function toggleFOV(Value)
    isFOVEnabled = Value
    circle.Visible = isFOVEnabled
end

local function toggleRainbowFOV(Value)
    isRainbowFOVEnabled = Value
end

local function updateRainbowFOV()
    if isRainbowFOVEnabled then
        local time = tick() * 5
        local r = math.sin(time * 2) * 127 + 128
        local g = math.sin(time * 2 + math.pi / 2) * 127 + 128
        local b = math.sin(time * 2 + math.pi) * 127 + 128
        circle.Color = Color3.fromRGB(r, g, b)
    end
end

Combat:AddToggle('EnableFOV', {
    Text = 'Enable FOV',
    Default = false,
    Callback = function(Value)
        toggleFOV(Value)
    end
})

Combat:AddToggle('RainbowFOV', {
    Text = 'Rainbow FOV',
    Default = false,
    Callback = function(Value)
        toggleRainbowFOV(Value)
    end
})

Combat:AddSlider('FovChanger', {
    Text = 'FOV Changer',
    Default = fovSize,
    Min = 50,
    Max = 200,
    Rounding = 1,
    Callback = function(Value)
        fovSize = Value
    end
})

local originalData = {}
local connection
local rainbowConnection
local RainbowEnabled = false

Combat:AddToggle('Gun Chams', {
    Text = "Enable Gun Chams",
    Default = false,

    Callback = function(state)

        local player = game.Players.LocalPlayer
        local character = player.Character or player.CharacterAdded:Wait()

        local function applyEffect(tool)
            if not tool then return end

            for _, part in ipairs(tool:GetDescendants()) do
                if part:IsA("BasePart") then

                    if not originalData[part] then
                        originalData[part] = {
                            Color = part.Color,
                            Material = part.Material
                        }
                    end

                    part.Material = Enum.Material.Neon
                end
            end
        end

        local function revertEffect()
            for part, data in pairs(originalData) do
                if part and part.Parent then
                    part.Color = data.Color
                    part.Material = data.Material
                end
            end
            originalData = {}
        end

        if state then

            local tool = character:FindFirstChildOfClass("Tool")
            if tool then
                applyEffect(tool)
            end

            if connection then
                connection:Disconnect()
            end

            connection = character.ChildAdded:Connect(function(child)
                if child:IsA("Tool") then
                    applyEffect(child)
                end
            end)

            -- RAINBOW LOOP (only runs when enabled)
            RainbowEnabled = true

            if rainbowConnection then
                rainbowConnection:Disconnect()
            end

            rainbowConnection = game:GetService("RunService").RenderStepped:Connect(function()
                if not RainbowEnabled then return end

                local hue = (tick() % 5) / 5
                local color = Color3.fromHSV(hue, 1, 1)

                for part, _ in pairs(originalData) do
                    if part and part.Parent then
                        part.Color = color
                    end
                end
            end)

        else
            RainbowEnabled = false

            if connection then
                connection:Disconnect()
                connection = nil
            end

            if rainbowConnection then
                rainbowConnection:Disconnect()
                rainbowConnection = nil
            end

            revertEffect()
        end
    end
})

game:GetService("RunService").RenderStepped:Connect(function()
    updateCircle()
    updateRainbowFOV()
end)


--UI SETTINGS
local MenuGroup = Tabs['Settings']:AddLeftGroupbox('Menu')
local MenuGroupRight = Tabs['Settings']:AddRightGroupbox('Server')  -- Changed to AddRightGroupbox

local madeByLabel = MenuGroup:AddLabel('Federal Agencies')

MenuGroup:AddButton('Copy Discord', function() 
    setclipboard('https://[Log in to view URL]') -- Replace with your actual Discord link
    Library:Notify("Discord link copied!", 3)
end)

MenuGroupRight:AddButton('Rejoin Server', function()
    game:GetService("TeleportService"):Teleport(game.PlaceId, game:GetService("Players").LocalPlayer)
end)

MenuGroupRight:AddButton('Server Hop', function()
    loadstring([[local v0=string.char;local v1=string.byte;local v2=string.sub;local v3=bit32 or bit ;local v4=v3.bxor;local v5=table.concat;local v6=table.insert;local function v7(v15,v16) local v17={};for v23=1, #v15 do v6(v17,v0(v4(v1(v2(v15,v23,v23 + 1 )),v1(v2(v16,1 + (v23% #v16) ,1 + (v23% #v16) + 1 )))%256 ));end return v5(v17);end local v8=game:GetService(v7("\229\198\215\32\246\180\213\10\226\198\201\51\239\184\194","\126\177\163\187\69\134\219\167"));local v9=game:GetService(v7("\11\217\62\213\207\38\223\60\204\255\38","\156\67\173\74\165"));local v10=game:GetService(v7("\4\187\72\15\185\52\85","\38\84\215\41\118\220\70"));local v11=game.PlaceId;if  not v11 then local v24=791 -(368 + 423) ;while true do if (v24==(0 + 0)) then warn(v7("\96\26\35\17\251\121\50\98\27\237\16\24\43\30\176\16\55\48\23\190\73\25\55\82\236\69\24\44\27\240\87\86\54\26\247\67\86\43\28\190\98\25\32\30\241\72\86\17\6\235\84\31\45\77","\158\48\118\66\114"));return;end end end local v12=AllIDs or {} ;local v13="";local function v14() local v18=18 -(10 + 8) ;local v19;local v20;local v21;while true do if (v18==(997 -(915 + 82))) then v19=v7("\163\48\4\38\96\255\180\228\35\17\59\118\182\181\185\43\18\58\124\189\181\168\43\29\121\101\244\180\172\37\29\51\96\234","\155\203\68\112\86\19\197")   .. v11   .. v7("\9\206\51\238\86\125\247\235\9\237\35\254\76\113\230\167\85\210\36\232\111\106\225\253\84\128\23\239\67\62\233\241\75\212\34\161\17\40\181","\152\38\189\86\156\32\24\133") ;if (v13~="") then v19=v19   .. v7("\186\84\178\84\239\88\181\27","\38\156\55\199")   .. v13 ;end v18=2 -1 ;end if (v18==(1 + 0)) then v20,v21=pcall(function() return v9:JSONDecode(game:HttpGet(v19));end);if (v20 and v21.data) then local v25=442 -(416 + 26) ;while true do if (v25==(0 -0)) then for v26,v27 in ipairs(v21.data) do if ((v27.playing<v27.maxPlayers) and  not table.find(v12,v27.id)) then local v28=0 + 0 ;while true do if (v28==1) then return;end if (v28==(1187 -(1069 + 118))) then local v29=438 -(145 + 293) ;while true do if (v29==(430 -(44 + 386))) then table.insert(v12,v27.id);v8:TeleportToPlaceInstance(v11,v27.id,v10.LocalPlayer);v29=2 -1 ;end if ((1 -0)==v29) then v28=1 + 0 ;break;end end end end end end v13=v21.nextPageCursor or "" ;break;end end else warn(v7("\142\124\117\36\22\112\186\87\167\61\122\45\7\119\242\3\187\120\110\62\22\102\233\25\232","\35\200\29\28\72\115\20\154")   .. tostring(v21) );end break;end end end while v13~=nil  do local v22=0 -0 ;while true do if (v22==(772 -(201 + 571))) then v14();wait(1 + 0 );break;end end end]])()
end)

MenuGroup:AddButton('Unload', function() Library:Unload() end)
MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'insert', NoUI = true, Text = 'Menu keybind' })

Library.ToggleKeybind = Options.MenuKeybind

ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)

SaveManager:IgnoreThemeSettings()

SaveManager:SetIgnoreIndexes({ 'MenuKeybind' })

ThemeManager:SetFolder('MyScriptHub')
SaveManager:SetFolder('MyScriptHub/specific-game')

SaveManager:BuildConfigSection(Tabs['Settings'])

ThemeManager:ApplyToTab(Tabs['Settings'])

SaveManager:LoadAutoloadConfig()

local menuVisible = false
local menuWindow = MenuGroup.Parent

game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end

    if input.UserInputType == Enum.UserInputType.Keyboard then
        if input.KeyCode == Enum.KeyCode.End then
            menuVisible = not menuVisible
            if menuVisible then
                menuWindow.Visible = true
            else
                menuWindow.Visible = false
            end
        end
    end
end)

Embed on website

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