--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local redzlib = loadstring(game:HttpGet("https://[Log in to view URL]"))()

local Window = redzlib:MakeWindow({
  Title = "Scorpio Hub : Universal Chicago Streets",
  SubTitle = "by Scorpio",
  SaveFolder = "testando | redz lib v5.lua"
})
Window:AddMinimizeButton({
    Button = { 
        Image = "rbxassetid://81817688420352", 
        BackgroundTransparency = 0,
        Size = UDim2.new(0, 60, 0, 60)
    },
    Corner = { CornerRadius = UDim.new(1, 0) }
})

local Tab1 = Window:MakeTab({"Player", "user"})

Tab1:AddDiscordInvite({
    Name = "Scorpio Hub Chicago Streets",
    Description = "Join server",
    Logo = "rbxassetid://81817688420352",
    Invite = "https://[Log in to view URL]",
})

Window:SelectTab(Tab1)

local Section = Tab1:AddSection({"Section"})

local Paragraph = Tab1:AddParagraph({"Paragraph", "This is a Paragraph\nSecond Line"})

  local Dialog = Window:Dialog({
    Title = "Universal Chicago Streets",
    Text = "This is a Script",
    Options = {
      {"Chicago", function()
        
      end},
      {"Chicago", function()
        
      end},
      {"Cancel", function()
        
      end}
    }
  })
  
  Tab1:AddButton({"Print", function(Value)
print("Hello World!")
end})

Tab1:AddToggle({
    Name = "Instant Interact",
    Default = false,
    Callback = function(Value)
        local Workspace = game:GetService("Workspace")
        local function updateProximityPrompts()
            for i, v in ipairs(Workspace:GetDescendants()) do
                if v.ClassName == "ProximityPrompt" then
                    v.HoldDuration = Value and 0 or 1
                end
            end
        end
        updateProximityPrompts()
        Workspace.DescendantAdded:Connect(function(descendant)
            if descendant.ClassName == "ProximityPrompt" then
                descendant.HoldDuration = Value and 0 or 1
            end
        end)
    end,
})

local AntiCameraShakeEnabled = false
local AntiCameraShakeToggle = Tab1:AddToggle({
    Name = "No Camera Bobbing",
    CurrentValue = false,
    Callback = function(Value)
        AntiCameraShakeEnabled = Value
        if Value then
            task.spawn(function()
                while AntiCameraShakeEnabled do
                    task.wait(1)
                    local player = game.Players.LocalPlayer
                    if player and player.Character then
                        local cameraBobbing = player.Character:FindFirstChild("CameraBobbing")
                        if cameraBobbing then
                            cameraBobbing:Destroy()
                        end
                    end
                end
            end)
        end
    end
})

local bloodRemoved = false

local Toggle = Tab1:AddToggle({
	Name = "Disable Blood",
	CurrentValue = false,
	Flag = "RemoveBloodToggle",
	Callback = function(Value)
		bloodRemoved = Value
		local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")

		if bloodRemoved then
			local bloodGui = playerGui:FindFirstChild("BloodGui")
			if bloodGui then
				bloodGui.ResetOnSpawn = false
				bloodGui:Destroy()
			end
		else
			-- Optional: Add logic to re-enable the BloodGui if needed
			warn("Re-enabling blood is not supported in this toggle unless you add spawn logic.")
		end
	end,
})

local Toggle = Tab1:AddToggle({
	Name = "Instant Respawn",
	CurrentValue = false,
	Flag = "FasterRespawn",
	Callback = function(Value)
		_G.respawn = Value

		if Value then
			task.spawn(function()
				while _G.respawn and task.wait(1) do
					local player = game:GetService("Players").LocalPlayer
					local character = player.Character
					local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")

					if humanoid and humanoid.Health <= 0 then
						game:GetService("ReplicatedStorage"):WaitForChild("RespawnRE"):FireServer()
					end
				end
			end)
		end
	end,
})

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local lastPosition
local respawnConnection
local deathConnection

Tab1:AddToggle({
    Name = "Respawn Where You Died",
    CurrentValue = false,
    Flag = "RespawnWhereDied",
    Callback = function(state)
        if state then
            local function setup()
                local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
                local humanoid = character:WaitForChild("Humanoid")
                local root = character:WaitForChild("HumanoidRootPart")

                deathConnection = humanoid.Died:Connect(function()
                    if root then
                        lastPosition = root.CFrame
                    end
                end)

                respawnConnection = LocalPlayer.CharacterAdded:Connect(function(char)
                    local newRoot = char:WaitForChild("HumanoidRootPart")
                    if lastPosition then
                        newRoot.CFrame = lastPosition
                    end
                    setup()
                end)
            end

            setup()
        else
            if respawnConnection then
                respawnConnection:Disconnect()
                respawnConnection = nil
            end
            if deathConnection then
                deathConnection:Disconnect()
                deathConnection = nil
            end
        end
    end,
})

local g = getgenv()
g.cframespeed = false;
g.cfv = 5;

Tab1:AddToggle({
	Name = "CFrame Speed",
	Default = g.cframespeed,
	Callback = function(state)
		g.cframespeed = state;
		if state then
			cfspeed_thread = task.spawn(function()
				while g.cframespeed and task.wait() do
					local char = game.Players.LocalPlayer.Character;
					local humanoid = char and char:FindFirstChildOfClass("Humanoid")
					local hrp = char and char:FindFirstChild("HumanoidRootPart")
					if humanoid and hrp and humanoid.MoveDirection.Magnitude > 0 then
						local newPos = hrp.Position + (humanoid.MoveDirection * g.cfv * 0.1)
						hrp.CFrame = hrp.CFrame:Lerp(CFrame.new(newPos, newPos + humanoid.MoveDirection), 0.5)
					end
				end
			end)
		elseif cfspeed_thread then
			task.cancel(cfspeed_thread)
		end
	end
})

Tab1:AddSlider({
	Name = "Speed",
	Default = g.cfv,
	Min = 0.01,
	Max = 50,
	Rounding = 2,
	Callback = function(value)
		g.cfv = value
	end
})

local Tab2 = Window:MakeTab({"Modification", "user"}) -- you can change icon

Window:SelectTab(Tab1) -- keep Tab1 as default

local GunSection = Tab2:AddSection({"Gun Mods"})

Tab2:AddToggle({
    Name = "Infinite Ammo (Inf)",
    Callback = function()

        local player = game.Players.LocalPlayer

        local function ApplyAmmo(tool)

            if tool and tool:FindFirstChild("Setting") then
                pcall(function()

                    local settings = require(tool.Setting)

                    settings.LimitedAmmoEnabled = false
                    settings.MaxAmmo = 99999
                    settings.AmmoPerMag = 99999
                    settings.Ammo = 99999

                    print("99999 Ammo applied to:", tool.Name)

                end)
            end
        end

        -- Apply to current gun
        local char = player.Character or player.CharacterAdded:Wait()
        local tool = char:FindFirstChildOfClass("Tool")
        ApplyAmmo(tool)

        -- Apply when new gun equipped
        char.ChildAdded:Connect(function(child)
            if child:IsA("Tool") then
                task.wait(0.2)
                ApplyAmmo(child)
            end
        end)

    end
})

Tab2:AddToggle({
    Name = "No Recoil",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            require(tool.Setting).Recoil = 0
            print("No Recoil applied")
        end
    end
})

Tab2:AddToggle({
    Name = "Automatic Gun",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            require(tool.Setting).Auto = true
            print("Gun set to Automatic")
        end
    end
})

Tab2:AddToggle({
    Name = "No Fire Rate",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            require(tool.Setting).FireRate = 0
            print("No Fire Rate applied")
        end
    end
})

Tab2:AddToggle({
    Name = "Infinite Damage",
    Callback = function()
        local tool = game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool")
        if tool and tool:FindFirstChild("Setting") then
            require(tool.Setting).BaseDamage = 9e9
            print("Infinite Damage applied")
        end
    end
})

local GunSection = Tab2:AddSection({"Gun Chams"})

local GunChams = false
local RainbowChams = false
local ChamsColor = Color3.fromRGB(255, 0, 0)

local OriginalColors = {}

Tab2:AddToggle({
    Name = "Enable Gun Chams",
    Default = false,
    Callback = function(v)
        GunChams = v

        -- RESET WHEN TURNED OFF
        if not v then
            for part, color in pairs(OriginalColors) do
                if part and part.Parent then
                    part.Color = color
                    part.Material = Enum.Material.Plastic
                end
            end
            OriginalColors = {}
        end
    end
})

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

Tab2:AddToggle({
    Name = "Rainbow GunColor",
    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
})

local Tab3 = Window:MakeTab({"Teleport", "user"}) -- you can change icon

Window:SelectTab(Tab1) -- keep Tab1 as default

local GunSection = Tab3:AddSection({"Location"})

local Locations = {
    ["🔫 Gunshop"] = Vector3.new(-1223.49, 253.62, -810.05),
    ["🔫 Black Market"] = Vector3.new(-1149.00, 253.12, -1021.24),
    ["💼 Safe Items"] = Vector3.new(-410.76, 256.65, -985.65),
    ["🚧 Studios"] = Vector3.new(-987.05, 253.65, -1027.33),
    ["💳 Bank"] = Vector3.new(-905.67, 253.65, -1210.74),
    ["🔥 Drip Shop"] = Vector3.new(-713.02, 253.59, -597.14),
    ["🏠 Apartment"] = Vector3.new(-434.20, 256.65, -974.17),
    ["🚗 Car Dealer"] = Vector3.new(-484.60, 253.52, -1195.21),
    ["🏥 Lemonade"] = Vector3.new(-1364.31, 253.60, -1040.65),
}

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 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

Tab3:AddDropdown({
    Name = "Select Location",
    Options = TableKeys(Locations),
    Callback = function(option)
        SelectedLocation = Locations[option]
    end
})

Tab3:AddButton({
    Name = "Teleport",
    Callback = function()
        TeleportToLocation()
    end
})

local Tab4 = Window:MakeTab({"Buy Items", "user"}) -- you can change icon

Window:SelectTab(Tab1) -- keep Tab1 as default

local GunshopSection = Tab4:AddSection({"Get Items"})

Tab4:AddButton({
    Name = "Buy Shiesty",
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("Shiesty")
    end
})

Tab4:AddButton({
    Name = "Buy Water",
    Callback = function()
        game:GetService("ReplicatedStorage").ShopRemote:InvokeServer("Water")
    end
})

Tab4:AddButton({
    Name = "Buy Fake Card",
    Callback = function()
        game:GetService("ReplicatedStorage"):WaitForChild("ExoticShopRemote"):InvokeServer("FakeCard")
    end
})

local Tab5 = Window:MakeTab({"Infinite Money", "user"}) -- you can change icon

Window:SelectTab(Tab1) -- keep Tab1 as default

local MonySection = Tab5:AddSection({"Money Method"})

-- Teleport
function teleport(x, y, z)

    local seat
    local targetPosition = Vector3.new(-1157,58, 252,90, -543.62)

    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("SmallRice") ~= nil
end

-- Button Callback
Tab5:AddButton({
    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("SmallRice 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("SmallRice"))

        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)

        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 = {
        "RiceBag",
    }

    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

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

local Tab6 = Window:MakeTab({"Chicago Streets Scripts", "user"}) -- you can change icon

Window:SelectTab(Tab1) -- keep Tab1 as default

local MonySection = Tab6:AddSection({"Cs Free Scripts"})

Tab6:AddButton({
    Name = "Chicago Trecnhes Keyless",
    Callback = function()
        pcall(function()
            loadstring(game:HttpGet("https://[Log in to view URL]"))()
        end)
    end
})

Embed on website

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