local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local executor = identifyexecutor and identifyexecutor() or "Unknown Executor"

local customTheme = {
   TextColor = Color3.fromRGB(0, 0, 0), -- Letras negras, muy legibles
   Background = Color3.fromRGB(0, 200, 220), -- Cian más suave
   Topbar = Color3.fromRGB(0, 200, 220),
   Shadow = Color3.fromRGB(0, 0, 0),
   NotificationBackground = Color3.fromRGB(0, 200, 220),
   NotificationActionsBackground = Color3.fromRGB(0, 200, 220),
   TabBackground = Color3.fromRGB(0, 200, 220),
   TabStroke = Color3.fromRGB(0, 0, 0),
   TabBackgroundSelected = Color3.fromRGB(0, 180, 200),
   TabTextColor = Color3.fromRGB(0, 0, 0),
   SelectedTabTextColor = Color3.fromRGB(0, 0, 0),
   ElementBackground = Color3.fromRGB(0, 200, 220),
   ElementBackgroundHover = Color3.fromRGB(100, 220, 230),
   SecondaryElementBackground = Color3.fromRGB(0, 200, 220),
   ElementStroke = Color3.fromRGB(0, 0, 0),
   SecondaryElementStroke = Color3.fromRGB(0, 0, 0),
   SliderBackground = Color3.fromRGB(0, 200, 220),
   SliderProgress = Color3.fromRGB(0, 0, 0),
   SliderStroke = Color3.fromRGB(0, 0, 0),
   ToggleBackground = Color3.fromRGB(0, 200, 220),
   ToggleEnabled = Color3.fromRGB(0, 0, 0),
   ToggleDisabled = Color3.fromRGB(80, 80, 80),
   ToggleEnabledStroke = Color3.fromRGB(0, 0, 0),
   ToggleDisabledStroke = Color3.fromRGB(0, 0, 0),
   ToggleEnabledOuterStroke = Color3.fromRGB(0, 0, 0),
   ToggleDisabledOuterStroke = Color3.fromRGB(0, 0, 0),
   DropdownSelected = Color3.fromRGB(0, 200, 220),
   DropdownUnselected = Color3.fromRGB(0, 200, 220),
   InputBackground = Color3.fromRGB(0, 200, 220),
   InputStroke = Color3.fromRGB(0, 0, 0),
   PlaceholderColor = Color3.fromRGB(50, 50, 50),
   KeyInputBackground = Color3.fromRGB(0, 200, 220),
   KeyInputTextColor = Color3.fromRGB(0, 0, 0)
}



local Window = Rayfield:CreateWindow({
   Name = "SCORPIO HUB | Tha Bronx | " .. executor,
   Icon = nil,
   LoadingTitle = "LOADING...",
   LoadingSubtitle = "By Swissem",
   Theme = customTheme,
   DisableRayfieldPrompts = false,
   DisableBuildWarnings = false,
   ConfigurationSaving = {
      Enabled = false,
      FolderName = "GreenBlackThemeHub",
      FileName = "BigHub"
   },
   Discord = {
      Enabled = false,
      Invite = "https://[Log in to view URL]",
      RememberJoins = true
   },
   KeySystem = false,
   KeySettings = {
      Title = "",
      Subtitle = "Authentication Required",
      Note = "Get your key at: https://[Log in to view URL]",
      FileName = "SH_hub_key",
      SaveKey = true,
      GrabKeyFromSite = false,
      Key = {""},
      Theme = customTheme
   }
})

local HomeTab = Window:CreateTab("Home", "scan-face")
local HomeSection = HomeTab:CreateSection("Welcome!")


HomeTab:CreateParagraph({Title = "Welcome!", Content = "Thank you for using JC HUB."})

HomeTab:CreateSection("User Information")

local player = game.Players.LocalPlayer
local username = player.Name
HomeTab:CreateLabel("Player: " .. username)

local userId = player.UserId
HomeTab:CreateLabel("User Id: " .. userId)

HomeTab:CreateSection("Game and Executor")

local gameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name
HomeTab:CreateLabel("Game: " .. gameName)

local executor = identifyexecutor and identifyexecutor() or "Unknown Executor"
HomeTab:CreateLabel("Executor: " .. executor)

HomeTab:CreateSection("Hardware")

local function getHWID()
    if syn and syn.request then
        return syn.crypt and syn.crypt.hash or "Synapse HWID Unavailable"
    elseif identifyexecutor and identifyexecutor():lower():find("scriptware") then
        return "ScriptWare HWID is not publicly accessible"
    elseif gethwid then
        return gethwid()
    elseif fluxus and fluxus.gethwid then
        return fluxus.gethwid()
    elseif isexecutorenv and isexecutorenv() then
        return getgenv().KRNL_ID or "KRNL HWID Unavailable"
    end
    return "Not Supported"
end

local hwid = getHWID()
HomeTab:CreateLabel("HWID: " .. hwid)

HomeTab:CreateSection("Date + Time")

local currentDate = os.date("%Y-%m-%d")
HomeTab:CreateLabel("Date: " .. currentDate)

local currentTime = os.date("%H:%M:%S")
HomeTab:CreateLabel("Time: " .. currentTime)

HomeTab:CreateSection("Credits")

HomeTab:CreateButton({
    Name = "Join Discord!", 
    Callback = function()
        if setclipboard then
            setclipboard("https://[Log in to view URL]")
            print("Copied to clipboard!")
        else
            print("Your executor does not support setclipboard.")
        end

        Rayfield:Notify({
            Title = "Link Copied!",
            Content = "The Discord link has been copied to your clipboard.",
            Duration = 8.5
        })
    end,
})

HomeTab:CreateLabel("Credits: josecarlos_gonzz")

local MainTab = Window:CreateTab("Main", "box")
local MainSection1 = MainTab:CreateSection("Dupe V2")

v12 = 0
v13 = 35

function createScreenGui()
    local player = game.Players.LocalPlayer
    if not player then return end

    local playerGui = player:WaitForChild("PlayerGui")
    if playerGui:FindFirstChild("BlackoutGui") then return end

    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.ResetOnSpawn = false
    screenGui.IgnoreGuiInset = true
    screenGui.DisplayOrder = 9999
    screenGui.Parent = playerGui

    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, 0, 1, 0)
    frame.Position = UDim2.new(0, 0, 0, 0)
    frame.BackgroundColor3 = Color3.new(0, 0, 0)  -- full black
    frame.BackgroundTransparency = 0               -- fully opaque
    frame.BorderSizePixel = 0
    frame.ZIndex = 1
    frame.Parent = screenGui

    local textLabel = Instance.new("TextLabel")
    textLabel.Size = UDim2.new(1, 0, 0.1, 0)       -- 10% height
    textLabel.Position = UDim2.new(0, 0, 0.45, 0)  -- vertical center approx
    textLabel.BackgroundTransparency = 1
    textLabel.Text = "#1 Undetected JCHUB"
    textLabel.TextColor3 = Color3.new(1, 0, 0)      -- red text
    textLabel.Font = Enum.Font.GothamBold
    textLabel.TextScaled = true
    textLabel.TextStrokeTransparency = 0
    textLabel.TextStrokeColor3 = Color3.new(0, 0, 0)
    textLabel.ZIndex = 2
    textLabel.Parent = frame
end

function destroyScreenGui()
    local player = game.Players.LocalPlayer
    if not player then return end

    local playerGui = player:FindFirstChild("PlayerGui")
    if playerGui then
        local blackoutGui = playerGui:FindFirstChild("BlackoutGui")
        if blackoutGui then
            blackoutGui:Destroy()
        end
    end
end

function teleport(x, y, z)
    createScreenGui()

    local seat
    local targetPosition = Vector3.new(-1487.578369140625, 251.75901794433594, -408.8100891113281)
    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end
    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    if seat and game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and game.Players.LocalPlayer.Character:FindFirstChild("Humanoid") then
        local rootPart = game.Players.LocalPlayer.Character.HumanoidRootPart
        local humanoid = game.Players.LocalPlayer.Character.Humanoid
        local originalPosition = seat.CFrame

        seat.CFrame = rootPart.CFrame
        task.wait(2.6)
        seat:Sit(humanoid)
        task.wait(2.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(0.000000000000000000000000001)
        seat.CFrame = CFrame.new(originalPosition.X, originalPosition.Y - 100, originalPosition.Z)
    end

    wait(0.5)
    destroyScreenGui()
end

MainTab:CreateButton({
    Name = "Gun Dupe (Safe Method) ",
    Callback = function()
        local currentTime = os.time()
        if ((currentTime - v12) < v13) then
            local timeLeft = math.ceil(v13 - (currentTime - v12))
            Rayfield:Notify({
                Title = "Dupe Gun",
                Content = "Please wait " .. timeLeft .. " seconds!",
                Duration = 3,
                Image = 4483345998,
            })
            return
        end

        v12 = currentTime
        Rayfield:Notify({
            Title = "Dupe Gun",
            Content = "Duping...",
            Duration = 5,
            Image = 4483345998,
        })

        local replicatedStorage = game:GetService("ReplicatedStorage")
        local players = game:GetService("Players")
        local workspace = game:GetService("Workspace")
        local inventory = replicatedStorage:WaitForChild("Inventory")
        local backpackRemote = replicatedStorage:WaitForChild("BackpackRemote")

        local function getCharacter()
            return players.LocalPlayer.Character
        end

        local function teleportTo(position)
            teleport(position.X, position.Y, position.Z)
        end

        if getCharacter() and getCharacter():FindFirstChildOfClass("Tool") then
            local step = 0
            local toolName
            local safe
            local originalCFrame

            while true do
                if step == 4 then
                    task.wait(0.5)
                    teleportTo(originalCFrame.Position)
                    Rayfield:Notify({
                        Title = "Dupe Gun",
                        Content = "Gun Duped",
                        Duration = 5,
                        Image = 4483345998,
                    })
                    break
                end
                if step == 2 then
                    task.spawn(function()
                        backpackRemote:InvokeServer("Store", toolName)
                    end)
                    task.spawn(function()
                        inventory:FireServer("Change", toolName, "Backpack", safe)
                    end)
                    task.wait(1.5)
                    step = 3
                end
                if step == 3 then
                    teleportTo(originalCFrame.Position)
                    task.wait(1)
                    backpackRemote:InvokeServer("Grab", toolName)
                    step = 4
                end
                if step == 0 then
                    toolName = getCharacter():FindFirstChildOfClass("Tool").Name
                    getCharacter():FindFirstChildOfClass("Humanoid"):UnequipTools()
                    safe = workspace["1# Map"]["2 Crosswalks"].Safes:FindFirstChild("Safe")
                    step = 1
                end
                if step == 1 then
                    originalCFrame = getCharacter():FindFirstChild("HumanoidRootPart").CFrame
                    teleportTo(safe:FindFirstChildWhichIsA("BasePart").Position)
                    task.wait(0.5)
                    step = 2
                end
            end
        else
            Rayfield:Notify({
                Title = "Dupe Gun",
                Content = "No Tool Found!",
                Duration = 5,
                Image = 4483345998,
            })
        end
    end
})

function getcar()
    local plrname = game.Players.LocalPlayer.Name
    for i, v in pairs(workspace.CivCars:GetDescendants()) do
        if v:IsA("Model") and v:FindFirstChild("Owner") then
            if v.Owner.Value == plrname then
                return v
            end
        end
    end
end

local lastDupeTime = 0

MainTab:CreateButton({
    Name = "Gun Dupe (Trunk Method) ",
    Callback = function()
        Rayfield:Notify({
            Title = "Trunk Dupe",
            Content = "Duping...",
            Duration = 3
        })

        local currentTime = tick()
        if currentTime - lastDupeTime < 30 then
            Rayfield:Notify({
                Title = "Cooldownn.",
                Content = "35 Seconds Left",
                Duration = 3
            })
            return
        end
        lastDupeTime = currentTime

        game:GetService("RunService").RenderStepped:Connect(function()
            for _, gui in pairs(game.Players.LocalPlayer.PlayerGui:GetChildren()) do
                if gui:IsA("ScreenGui") then
                    for _, obj in pairs(gui:GetDescendants()) do
                        if obj:IsA("TextLabel") or obj:IsA("TextButton") then
                            local text = obj.Text:gsub("%s+", " "):lower()
                            if text:match("can't access safe!") then
                                obj:Destroy()
                            end
                        end
                    end
                end
            end
        end)

        local ReplicatedStorage = cloneref(game:GetService("ReplicatedStorage"))
        local Players = cloneref(game:GetService("Players"))
        local InventoryRemote = ReplicatedStorage:WaitForChild("Inventory")
        local BackpackRemote = ReplicatedStorage:WaitForChild("BackpackRemote")
        local TrunkStorage = ReplicatedStorage:WaitForChild("TrunkStorage")

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

        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 car = getcar()
            if not car or not car:FindFirstChild("Body") or not car.Body:FindFirstChild("TrunckStorage") then
                return Rayfield:Notify({
                    Title = "Error",
                    Content = "No Car found",
                    Duration = 5
                })
            end

            local hrp = character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.CFrame = car.Body.TrunckStorage.CFrame + Vector3.new(2, 0, 0)
            end

            task.wait(0.5)

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

            task.spawn(function()
                TrunkStorage:FireServer("Store", gunName)
            end)

            task.wait(0.5)

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

            task.wait(1.5)
            BackpackRemote:InvokeServer("Grab", gunName)

            task.wait(0.5)
        else
            Rayfield:Notify({
                Title = "Tool Not Found",
                Content = "You must equip a Tool before duping",
                Duration = 5
            })
        end
    end
})

local MainSection1 = MainTab:CreateSection("Money Vulnerability")

MainTab:CreateParagraph({
    Title = "Infinite Money Guide",
    Content = "Buy Ice Fruitz Button below Ingredients then cook in a pot then wait for them to be done then fill pitchers cup then fill. DONT HOLD OUT CUP just press Money Vulnerability then boom you have 990k dirty money. Enjoy!"
})

local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui

-- Create Blackout GUI (full screen)
function createBlackout()
    if screenGui then return end

    screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.IgnoreGuiInset = true
    screenGui.ResetOnSpawn = false
    screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    screenGui.Parent = playerGui

    local blackFrame = Instance.new("Frame")
    blackFrame.Name = "BlackFrame"
    blackFrame.Size = UDim2.new(1, 0, 1, 0)
    blackFrame.Position = UDim2.new(0, 0, 0, 0)
    blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    blackFrame.BackgroundTransparency = 0
    blackFrame.BorderSizePixel = 0
    blackFrame.ZIndex = 1
    blackFrame.Parent = screenGui

    local label = Instance.new("TextLabel")
    label.Name = "BlackoutLabel"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.Position = UDim2.new(0, 0, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = "#1 Undetected JCHUB"
    label.TextColor3 = Color3.new(1, 0, 0)
    label.TextStrokeTransparency = 0
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.ZIndex = 2
    label.Parent = blackFrame
end

-- Destroy Blackout GUI
function destroyBlackout()
    if screenGui then
        screenGui:Destroy()
        screenGui = nil
    end
end

-- Teleport with optional blackout (only created, not destroyed here)
function teleport(x, y, z)
    createBlackout()

    local seat
    local targetPosition = Vector3.new(-1487.578369140625, 251.75901794433594, -408.8100891113281)

    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end

    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    local character = player.Character
    local rootPart = character and character:FindFirstChild("HumanoidRootPart")
    local humanoid = character and character:FindFirstChild("Humanoid")

    if seat and rootPart and humanoid then
        local originalPosition = seat.CFrame

        seat.CFrame = rootPart.CFrame
        task.wait(0.6)
        seat:Sit(humanoid)
        task.wait(0.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(1e-27)
        seat.CFrame = CFrame.new(originalPosition.X, originalPosition.Y - 100, originalPosition.Z)
    end

    task.wait(0.5)
end

-- Check if player has Ice-Fruit Cupz
function checkSell()
    local backpack = player:WaitForChild("Backpack")
    return backpack:FindFirstChild("Ice-Fruit Cupz") ~= nil
end

-- Button Callback
MainTab:CreateButton({
    Name = "Infinite Money",
    Callback = function()
        local character = player.Character or player.CharacterAdded:Wait()
        local hrp = character:FindFirstChild("HumanoidRootPart")

        if not (character and hrp) then return end

        if not checkSell() then
            Rayfield:Notify({
                Title = "Error",
                Content = "You do not have an Ice-Fruit Cupz!",
                Duration = 5,
                Image = 4483345998,
            })
            return
        end

        -- Save original position
        local originalCFrame = hrp.CFrame

        -- Find sell prompt
        local sellPart = workspace:FindFirstChild("IceFruit Sell")
        local sellPrompt = sellPart and sellPart:FindFirstChild("ProximityPrompt")
        if not (sellPart and sellPrompt) then return end

        -- Equip item
        player.Character.Humanoid:EquipTool(player.Backpack:FindFirstChild("Ice-Fruit Cupz"))

        -- Teleport to sell part (blackout stays active)
        teleport(sellPart.Position.X, sellPart.Position.Y, sellPart.Position.Z)

        task.wait(0.2)

        -- Spam sell prompt
        for _ = 1, 2000 do
            pcall(function()
                fireproximityprompt(sellPrompt, 0)
            end)
        end

        task.wait(1)

        -- Teleport back and remove blackout
        teleport(originalCFrame.Position.X, originalCFrame.Position.Y, originalCFrame.Position.Z)
        destroyBlackout()

        Rayfield:Notify({
            Title = "Success!",
            Content = "You have won the maximum money!",
            Duration = 5,
            Image = 4483345998,
        })
    end
})



local SharedStorage = game.ReplicatedStorage

local function InvokeServer(Remote, ...)
    return Remote:InvokeServer(...)
end

local function FindItem(Item)
    return game.Players.LocalPlayer.Backpack:FindFirstChild(Item) or game.Players.LocalPlayer.Character:FindFirstChild(Item)
end

local function AutoBuySupplies()
    local Items = {
        "Ice-Fruit Bag",
        "Ice-Fruit Cupz",
        "FijiWater",
        "FreshWater",
    }

    for _, item in ipairs(Items) do
        local ItemStock = SharedStorage.ExoticStock:FindFirstChild(item)
        if not ItemStock or ItemStock.Value == 0 then
            warn("Item out of stock:", item)
            return false
        end
    end

    for _, item in ipairs(Items) do
        InvokeServer(SharedStorage.ExoticShopRemote, item)
        task.wait(1.25)
    end

    for _, item in ipairs(Items) do
        if not FindItem(item) then
            warn("Failed to acquire:", item)
            return false
        end
    end

    return true
end

MainTab:CreateButton({
    Name = "Buy Ice Fruitz Items",
    Callback = function()
        local success = AutoBuySupplies()
        if success then
            Rayfield:Notify({
                Title = "AutoBuy",
                Content = "Items purchased successfully!",
                Duration = 5,
                Image = 4483362458,
            })
        else
            Rayfield:Notify({
                Title = "AutoBuy",
                Content = "Failed to purchase items!",
                Duration = 5,
                Image = 4483362458,
            })
        end
    end,
})

local MainSection1 = MainTab:CreateSection("QuickShop")

MainTab:CreateButton({
    Name = "Purchase Water ($10)",
    Callback = function()
        local ohString1 = "Water"
    game:GetService("ReplicatedStorage").ShopRemote:InvokeServer(ohString1)
        end
    })

MainTab:CreateButton({
    Name = "Purchase Shiesty ($25)",
    Callback = function()
        local ohString1 = "Shiesty"
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer(ohString1)
    end,
})

MainTab:CreateButton({
    Name = "Purchase Gloves ($10)",
    Callback = function()
        local ohString1 = "BlackGloves"
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer(ohString1)
    end,
})

MainTab:CreateButton({
    Name = "Purchase FakeCard ($700)",
    Callback = function()
            local args = {
        [1] = "FakeCard"
    }
    
    game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer(unpack(args))
        end
    })


MainTab:CreateSection("Teleports")

local teleportLocations = {
    {Name = "Dripstore👕", Position = Vector3.new(67459, 10489, 551)},
    {Name = "Bank🏦", Position = Vector3.new(-204, 284, -1223)},
    {Name = "Ice Box💎", Position = Vector3.new(-193, 284, -1169)},
    {Name = "Bank tools / Roof💰", Position = Vector3.new(-384, 340, -557)},
    {Name = "Jamaican Food🍟", Position = Vector3.new(-670, 254, -810)},
    {Name = "Deli and Grill🍗", Position = Vector3.new(-746, 254, -906)},
    {Name = "Chicken and Wings🐓", Position = Vector3.new(964, 254, -813)},
    {Name = "Gunstore 1🔫", Position = Vector3.new(-1003, 254, -817)},
    {Name = "Gunstore 2🔫", Position = Vector3.new(-202, 284, -798)},
    {Name = "Gunstore 3🔫", Position = Vector3.new(72425, 128856, -1082)},
    {Name = "Gunstore 4🔫", Position = Vector3.new(60822, 87609, -352)},
    {Name = "Pawnshop💈", Position = Vector3.new(-1051, 254, -815)},
    {Name = "Laundermat🧺", Position = Vector3.new(-990, 254, -686)},
    {Name = "Backpack🎒", Position = Vector3.new(-670, 254, -681)},
    {Name = "Tatoo✒️", Position = Vector3.new(-637, 254, -591)},
    {Name = "Penthouse Cook Pot🏠", Position = Vector3.new(-614, 356, -683)},
    {Name = "New Penthouse🏚️", Position = Vector3.new(-597, 356, -714)},
    {Name = "Old Penthouse🏡", Position = Vector3.new(-124, 417, -575)},
    {Name = "Dollar Central💸", Position = Vector3.new(-389, 254, -1082)},
    {Name = "Dealership🚗", Position = Vector3.new(-389, 253, -1232)},
    {Name = "mcdonalds🍟", Position = Vector3.new(-999, 254, -1134)},
}

-- Blackout GUI
function createScreenGui()
   screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.IgnoreGuiInset = true
    screenGui.ResetOnSpawn = false
    screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    screenGui.Parent = playerGui

    local blackFrame = Instance.new("Frame")
    blackFrame.Size = UDim2.new(1, 0, 1, 0)
    blackFrame.Position = UDim2.new(0, 0, 0, 0)
    blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    blackFrame.BackgroundTransparency = 0
    blackFrame.BorderSizePixel = 0
    blackFrame.ZIndex = 1
    blackFrame.Parent = screenGui

    local label = Instance.new("TextLabel")
    label.Name = "BlackoutLabel"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.Position = UDim2.new(0, 0, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = "#1 Undetected JCHUB"
    label.TextColor3 = Color3.new(1, 0, 0)
    label.TextStrokeTransparency = 0
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.ZIndex = 2
    label.Parent = blackFrame
end

function destroyScreenGui()
    local gui = game.Players.LocalPlayer:FindFirstChild("PlayerGui"):FindFirstChild("Blackout")
    if gui then gui:Destroy() end
end

-- Teleport function with seat bypass
function teleport(x, y, z)
    createScreenGui()
    local seat
    local targetPosition = Vector3.new(-1487.578369140625, 251.75901794433594, -408.8100891113281)

    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end

    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    local player = game.Players.LocalPlayer
    if seat and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChild("Humanoid") then
        local rootPart = player.Character.HumanoidRootPart
        local humanoid = player.Character.Humanoid
        local originalPosition = seat.CFrame

        seat.CFrame = rootPart.CFrame
        task.wait(0.6)
        seat:Sit(humanoid)
        task.wait(0.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(0.000000000000000000000000001)
        seat.CFrame = CFrame.new(originalPosition.X, originalPosition.Y - 100, originalPosition.Z)
    end

    wait(0.5)
    destroyScreenGui()
end


local selectedTeleport = teleportLocations[1]

local locationNames = {}
for _, location in ipairs(teleportLocations) do
    table.insert(locationNames, location.Name)
end

MainTab:CreateDropdown({
    Name = "Teleports",
    Options = locationNames,
    CurrentOption = {locationNames[1]},
    MultipleOptions = false,
    Flag = "TeleportDropdown",
    Callback = function(Options)
        for _, location in ipairs(teleportLocations) do
            if location.Name == Options[1] then
                selectedTeleport = location
                break
            end
        end
    end
})

MainTab:CreateButton({
    Name = "Teleport To Location",
    Callback = function()
        if selectedTeleport then
            teleport(selectedTeleport.Position.X, selectedTeleport.Position.Y, selectedTeleport.Position.Z)
        end
    end
})

local MainSection = MainTab:CreateSection("miscellaneous")

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

local function createBlackout()
    if screenGui then return end

    screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.IgnoreGuiInset = true
    screenGui.ResetOnSpawn = false
    screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    screenGui.Parent = player:WaitForChild("PlayerGui")

    local blackFrame = Instance.new("Frame")
    blackFrame.Size = UDim2.new(1, 0, 1, 0)
    blackFrame.Position = UDim2.new(0, 0, 0, 0)
    blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    blackFrame.BackgroundTransparency = 0
    blackFrame.BorderSizePixel = 0
    blackFrame.ZIndex = 1
    blackFrame.Parent = screenGui

    local label = Instance.new("TextLabel")
    label.Name = "BlackoutLabel"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.Position = UDim2.new(0, 0, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = "#1 Undetected DKHUB"
    label.TextColor3 = Color3.new(1, 0, 0)
    label.TextStrokeTransparency = 0
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.ZIndex = 2
    label.Parent = blackFrame
end

local function destroyScreenGui()
    local gui = player:FindFirstChild("PlayerGui"):FindFirstChild("BlackoutGui")
    if gui then
        gui:Destroy()
        screenGui = nil
    end
end

local function teleport(x, y, z)
    createBlackout()

    local seat
    local targetPosition = Vector3.new(-1487.578, 251.759, -408.810)

    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end

    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    local character = player.Character
    local rootPart = character and character:FindFirstChild("HumanoidRootPart")
    local humanoid = character and character:FindFirstChild("Humanoid")

    if seat and rootPart and humanoid then
        local originalPosition = seat.CFrame

        seat.CFrame = rootPart.CFrame
        task.wait(0.6)
        seat:Sit(humanoid)
        task.wait(0.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(0.01)
        seat.CFrame = CFrame.new(originalPosition.X, originalPosition.Y - 100, originalPosition.Z)
    end

    task.wait(0.5)
    destroyScreenGui()
end

MainTab:CreateButton({
    Name = "Clean Money",
    Callback = function()
        teleport(-990, 254, -686)
    end,
})


function createScreenGui()
    -- Prevent duplicates
    if game.CoreGui:FindFirstChild("BlackoutGui") then return end

    screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.IgnoreGuiInset = true
    screenGui.ResetOnSpawn = false
    screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    screenGui.Parent = player:WaitForChild("PlayerGui")

    local blackFrame = Instance.new("Frame")
    blackFrame.Size = UDim2.new(1, 0, 1, 0)
    blackFrame.Position = UDim2.new(0, 0, 0, 0)
    blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    blackFrame.BackgroundTransparency = 0
    blackFrame.BorderSizePixel = 0
    blackFrame.ZIndex = 1
    blackFrame.Parent = screenGui

    local label = Instance.new("TextLabel")
    label.Name = "BlackoutLabel"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.Position = UDim2.new(0, 0, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = "#1 Undetected JCHUB"
    label.TextColor3 = Color3.new(1, 0, 0)
    label.TextStrokeTransparency = 0
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.ZIndex = 2
    label.Parent = blackFrame
end

function destroyScreenGui()
    local gui = game.CoreGui:FindFirstChild("BlackoutGui")
    if gui then
        gui:Destroy()
    end
end

function teleport(x, y, z)
    createScreenGui()

    local seat
    local targetPosition = Vector3.new(-1487.578369140625, 251.75901794433594, -408.8100891113281)

    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end

    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    local player = game.Players.LocalPlayer
    local character = player.Character
    local rootPart = character and character:FindFirstChild("HumanoidRootPart")
    local humanoid = character and character:FindFirstChild("Humanoid")

    if seat and rootPart and humanoid then
        local originalPosition = seat.CFrame

        seat.CFrame = rootPart.CFrame
        task.wait(0.6)
        seat:Sit(humanoid)
        task.wait(0.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(1e-27)
        seat.CFrame = CFrame.new(originalPosition.X, originalPosition.Y - 100, originalPosition.Z)
    end

    task.wait(0.5)
    destroyScreenGui()
end

MainTab:CreateButton({
    Name = "Teleport to Closest Safe",
    Callback = function()
        teleport(-159, 295, -1010)
    end,
})

function createBlackout()
    local player = game.Players.LocalPlayer
    if not player then return end

    screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BlackoutGui"
    screenGui.IgnoreGuiInset = true
    screenGui.ResetOnSpawn = false
    screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    screenGui.Parent = player:WaitForChild("PlayerGui")

    local blackFrame = Instance.new("Frame")
    blackFrame.Size = UDim2.new(1, 0, 1, 0)
    blackFrame.Position = UDim2.new(0, 0, 0, 0)
    blackFrame.BackgroundColor3 = Color3.new(0, 0, 0)
    blackFrame.BackgroundTransparency = 0
    blackFrame.BorderSizePixel = 0
    blackFrame.ZIndex = 1
    blackFrame.Parent = screenGui

    local label = Instance.new("TextLabel")
    label.Name = "BlackoutLabel"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.Position = UDim2.new(0, 0, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = "#1 Undetected JCHUB"
    label.TextColor3 = Color3.new(1, 0, 0)
    label.TextStrokeTransparency = 0
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.ZIndex = 2
    label.Parent = blackFrame
end

function destroyBlackout()
    local gui = game.Players.LocalPlayer:FindFirstChild("PlayerGui")
    if gui and gui:FindFirstChild("BlackoutGui") then
        gui.BlackoutGui:Destroy()
    end
end

function teleportBypass(x, y, z)
    createBlackout()
    local player = game.Players.LocalPlayer
    local char = player.Character or player.CharacterAdded:Wait()
    local root = char:FindFirstChild("HumanoidRootPart")
    local humanoid = char:FindFirstChild("Humanoid")
    if not root or not humanoid then return end

    local seat
    local targetPosition = Vector3.new(-1487.578369140625, 251.75901794433594, -408.8100891113281)

    for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
        if obj:IsA("Seat") and (obj.Position - targetPosition).Magnitude < 1 then
            seat = obj
            break
        end
    end
    if not seat then
        for _, obj in pairs(workspace["1# Map"].RandomStuff:GetDescendants()) do
            if obj:IsA("Seat") then
                seat = obj
                break
            end
        end
    end

    if seat then
        local originalCFrame = seat.CFrame
        seat.CFrame = root.CFrame
        task.wait(0.6)
        seat:Sit(humanoid)
        task.wait(0.6)
        seat.CFrame = CFrame.new(x, y - 1, z)
        task.wait(0.6)
        humanoid.Sit = false
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        task.wait(1e-27)
        seat.CFrame = CFrame.new(originalCFrame.X, originalCFrame.Y - 100, originalCFrame.Z)
    end
    wait(0.5)
    destroyBlackout()
end

function placeToolInSafe()
    local player = game.Players.LocalPlayer
    local tool = player.Character and player.Character:FindFirstChildOfClass("Tool")
    if not tool then
        Rayfield:Notify({
            Title = "Error",
            Content = "No tool equipped!",
            Duration = 5,
            Image = 4483345998,
        })
        return
    end

    local backpackRemote = game.ReplicatedStorage:FindFirstChild("BackpackRemote")
    local inventory = game.ReplicatedStorage:FindFirstChild("Inventory")
    local safe = workspace["1# Map"]["2 Crosswalks"].Safes:FindFirstChild("Safe")
    if not backpackRemote or not inventory or not safe then return end

    local originalCFrame = player.Character:FindFirstChild("HumanoidRootPart").CFrame
    local safePart = safe:FindFirstChildWhichIsA("BasePart")
    if not safePart then return end

    player.Character:FindFirstChildOfClass("Humanoid"):UnequipTools()

    teleportBypass(safePart.Position.X, safePart.Position.Y, safePart.Position.Z)
    task.wait(1)

    task.spawn(function()
        backpackRemote:InvokeServer("Store", tool.Name)
    end)
    task.spawn(function()
        inventory:FireServer("Change", tool.Name, "Backpack", safe)
    end)

    wait(2)

    teleportBypass(originalCFrame.X, originalCFrame.Y, originalCFrame.Z)

    Rayfield:Notify({
        Title = "Success",
        Content = "Tool successfully stored in safe!",
        Duration = 5,
        Image = 4483345998,
    })
end

MainTab:CreateButton({
    Name = "Store Item in Safe",
    Callback = function()
        placeToolInSafe()
    end,
})

MainTab:CreateButton({
    Name = "Open / Close Market",
    Callback = function()
        local player = game:GetService("Players").LocalPlayer
        local playerGui = player:WaitForChild("PlayerGui")

        local marketGui = playerGui:FindFirstChild("Bronx Market 2")
        if marketGui then
            if marketGui:IsA("ScreenGui") then
                marketGui.Enabled = true
            elseif marketGui:IsA("GuiObject") then
                marketGui.Visible = true
            end
        else
            Rayfield:Notify({
                Title = "Error",
                Content = "'Bronx Market 2' GUI not found!",
                Duration = 4,
                Image = 4483345998,
            })
        end
    end,
})

local CombatTab = Window:CreateTab("Combat", "swords")
CombatTab:CreateSection("Weapon Modifications")

CombatTab:CreateToggle({
    Name = "Thick Bullet",
    CurrentValue = false,
    Callback = function(Value)
    end
})

CombatTab:CreateToggle({
    Name = "Instant Equip",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            if Value then
                setting.EquipTime = 0
            else
                setting.EquipTime = 0
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "Instant Reload",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)

            if Value then
                setting.ReloadTime = 0
            else
                setting.ReloadTime = 1.5 
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "No Jam",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            if Value then
                setting.JamChance = 0
            else
                setting.JamChance = 0.1
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "No Recoil",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Settings") then
            local settings = require(tool.Settings)
            settings.Recoil = Value and 0 or 1
        end
    end
})

CombatTab:CreateToggle({
    Name = "No Spread",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            if Value then
                setting.Spread = 0
            else
                setting.Spread = 1
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "Full Auto",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            setting.Auto = Value
        end
    end
})

CombatTab:CreateToggle({
    Name = "Infinite Ammo",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            setting.LimitedAmmoEnabled = not Value
            if Value then
                setting.MaxAmmo = 100000
                setting.AmmoPerMag = 100000
                setting.Ammo = 100000
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "LifeSteal",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            if Value then
                setting.LifeSteal = true
            else
                setting.LifeSteal = false
            end
        end
    end
})

CombatTab:CreateToggle({
    Name = "1 Tap",
    CurrentValue = false,
    Callback = function(Value)
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            local setting = require(tool.Setting)
            setting.BaseDamage = Value and 9e9 or 25
        end
    end
})

local AimbotTab = Window:CreateTab("Aimbot", "skull") 

local AimbotSection1 = AimbotTab:CreateSection("Aim-Lock")

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

local camera = workspace.CurrentCamera
local localPlayer = Players.LocalPlayer

local MAX_DISTANCE = 100
local MAX_ANGLE = 45
local aimLockEnabled = false
local lockPartName = "Head"


AimbotTab:CreateToggle({
    Name = "Enable Aimbot",
    CurrentValue = false,
    Callback = function(value)
        aimLockEnabled = value
    end,
})


AimbotTab:CreateSlider({
    Name = "Aimbot Distance",
    Range = {10, 500},
    Increment = 5,
    Suffix = " studs",
    CurrentValue = MAX_DISTANCE,
    Callback = function(value)
        MAX_DISTANCE = value
    end,
})


local function getNearestTarget()
    local nearest = nil
    local shortestDistance = MAX_DISTANCE

    for _, player in pairs(Players:GetPlayers()) do
        if player ~= localPlayer and player.Character then
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            if humanoid and humanoid.Health > 0 then
                local targetPart = player.Character:FindFirstChild(lockPartName)
                if targetPart then
                    local direction = (targetPart.Position - camera.CFrame.Position).Unit
                    local angle = math.deg(math.acos(camera.CFrame.LookVector:Dot(direction)))
                    local distance = (targetPart.Position - camera.CFrame.Position).Magnitude

                    if angle <= MAX_ANGLE and distance < shortestDistance then
                        shortestDistance = distance
                        nearest = targetPart
                    end
                end
            end
        end
    end

    return nearest
end

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

    local target = getNearestTarget()
    if target then
        local newCFrame = CFrame.new(camera.CFrame.Position, target.Position)
        camera.CFrame = newCFrame
    end
end)

AimbotTab:CreateSection("Hitbox")

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

local toggleEnabled = false
local selectedShape = Enum.PartType.Block
local selectedMaterial = Enum.Material.Neon
local hitboxSize = 25

local function ApplyEffect()
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            if humanoid and humanoid.Health > 0 then
                local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
                if rootPart and rootPart:IsA("Part") then
                    rootPart.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize)
                    rootPart.Transparency = 0.5
                    rootPart.Color = Color3.fromRGB(100, 100, 255)
                    rootPart.CanCollide = false
                    rootPart.Shape = selectedShape
                    rootPart.Material = selectedMaterial
                end
            end
        end
    end
end

local function ResetEffect()
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
            if rootPart and rootPart:IsA("Part") then
                rootPart.Size = Vector3.new(2, 2, 1)
                rootPart.Transparency = 0
                rootPart.Color = Color3.new(1, 1, 1)
                rootPart.CanCollide = true
                rootPart.Shape = Enum.PartType.Block
                rootPart.Material = Enum.Material.Plastic
            end
        end
    end
end

AimbotTab:CreateToggle({
    Name = "Hitbox Expander",
    CurrentValue = false,
    Flag = "ToggleGiant",
    Callback = function(Value)
        toggleEnabled = Value
        if Value then
            ApplyEffect()
        else
            ResetEffect()
        end
    end,
})

AimbotTab:CreateDropdown({
    Name = "Hitbox Type",
    Options = { "Block", "Ball", "Cylinder" },
    CurrentOption = "Block",
    Flag = "HitboxShape",
    Callback = function(Option)
        if Option == "Block" then
            selectedShape = Enum.PartType.Block
        elseif Option == "Ball" then
            selectedShape = Enum.PartType.Ball
        elseif Option == "Cylinder" then
            selectedShape = Enum.PartType.Cylinder
        end
        if toggleEnabled then ApplyEffect() end
    end,
})

AimbotTab:CreateDropdown({
    Name = "Hitbox Material",
    Options = { "Neon", "ForceField", "Plastic", "SmoothPlastic", "Wood", "Glass", "Granite" },
    CurrentOption = "Neon",
    Flag = "HitboxMaterial",
    Callback = function(Option)
        local success, material = pcall(function()
            return Enum.Material[Option]
        end)

        if success and material then
            selectedMaterial = material
            if toggleEnabled then
                ApplyEffect()
            end
        else
            warn("Invalid material selected: " .. tostring(Option))
        end
    end,
})


AimbotTab:CreateSlider({
    Name = "Hitbox Multiplier",
    Range = {5, 100},
    Increment = 1,
    Suffix = "Size",
    CurrentValue = 25,
    Flag = "HitboxSize",
    Callback = function(Value)
        hitboxSize = Value
        if toggleEnabled then ApplyEffect() end
    end,
})


AimbotTab:CreateSection("Feild of view")

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

local localPlayer = Players.LocalPlayer
local mouse = localPlayer:GetMouse()

local aimCircleRadius = 100
local aimCircleThickness = 2
local circleColor = Color3.fromRGB(128, 0, 128)

local aimCircle = nil
local rainbowCircle = nil
local fovEnabled = false
local rainbowEnabled = false

local function createAimCircle()
    if not aimCircle then
        aimCircle = Drawing.new("Circle")
        aimCircle.Visible = true
        aimCircle.Filled = false
        aimCircle.Color = circleColor
        aimCircle.Thickness = aimCircleThickness
    end
    aimCircle.Radius = aimCircleRadius
end

local function createRainbowCircle()
    if not rainbowCircle then
        rainbowCircle = Drawing.new("Circle")
        rainbowCircle.Visible = true
        rainbowCircle.Filled = false
        rainbowCircle.Thickness = aimCircleThickness
    end
    rainbowCircle.Radius = aimCircleRadius
end

RunService.RenderStepped:Connect(function()
    if fovEnabled then
        if not aimCircle then
            createAimCircle()
        end
        aimCircle.Position = Vector2.new(mouse.X, mouse.Y + 40)
        aimCircle.Visible = true
        aimCircle.Radius = aimCircleRadius
        aimCircle.Thickness = aimCircleThickness
        aimCircle.Color = circleColor
    else
        if aimCircle then
            aimCircle.Visible = false
        end
    end

    if fovEnabled and rainbowEnabled then
        if not rainbowCircle then
            createRainbowCircle()
        end
        rainbowCircle.Position = Vector2.new(mouse.X, mouse.Y + 40)
    ... (56 KB left)

Embed on website

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