RedFox Server Bowser
Key RequiredUniversal

RedFox Server Bowser

Universal ScriptSyr0nixSyr0nix 71 views 154 executesUpdated Jun 23, 2026
Unrated
00
Lua Script•345 lines (13651 chars)
local HttpService = game:GetService("HttpService")
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PLACE_ID = game.PlaceId
local CURRENT_JOB_ID = game.JobId

local function RedrawBrowser()
    if game.CoreGui:FindFirstChild("RedFoxServerBrowser") then
        game.CoreGui.RedFoxServerBrowser:Destroy()
    end

    local gui = Instance.new("ScreenGui", game.CoreGui)
    gui.Name = "RedFoxServerBrowser"
    gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

    local MainFrame = Instance.new("Frame", gui)
    MainFrame.Size = UDim2.new(0, 950, 0, 680)
    MainFrame.Position = UDim2.new(0.5, -475, 0.5, -340)
    MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
    MainFrame.BorderSizePixel = 0
    MainFrame.Active = true
    MainFrame.Draggable = true

    local gradient = Instance.new("UIGradient", MainFrame)
    gradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 25)),
        ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 0, 0)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 25, 25))
    }
    gradient.Rotation = 45

    task.spawn(function()
        while gui and gui.Parent do
            for i = 0, 1, 0.01 do
                gradient.Offset = Vector2.new(i, i)
                task.wait(0.05)
            end
        end
    end)

    local TitleBar = Instance.new("Frame", MainFrame)
    TitleBar.Size = UDim2.new(1, 0, 0, 40)
    TitleBar.BackgroundColor3 = Color3.fromRGB(30, 0, 0)
    TitleBar.BorderSizePixel = 0

    local TitleLabel = Instance.new("TextLabel", TitleBar)
    TitleLabel.Size = UDim2.new(1, -60, 1, 0)
    TitleLabel.Position = UDim2.new(0, 10, 0, 0)
    TitleLabel.Text = "🦊 RedFox Server Browser"
    TitleLabel.TextColor3 = Color3.new(1, 1, 1)
    TitleLabel.Font = Enum.Font.GothamBold
    TitleLabel.TextSize = 18
    TitleLabel.BackgroundTransparency = 1
    TitleLabel.TextXAlignment = Enum.TextXAlignment.Left

    local CloseBtn = Instance.new("TextButton", TitleBar)
    CloseBtn.Size = UDim2.new(0, 40, 0, 40)
    CloseBtn.Position = UDim2.new(1, -45, 0, 0)
    CloseBtn.Text = "✕"
    CloseBtn.TextColor3 = Color3.new(1, 0.2, 0.2)
    CloseBtn.Font = Enum.Font.GothamBold
    CloseBtn.TextSize = 20
    CloseBtn.BackgroundTransparency = 1
    CloseBtn.MouseButton1Click:Connect(function()
        gui:Destroy()
    end)
    -- UI Buttons (even spacing)
    local buttonY = 50
    local spacingX = 10
    local buttonWidth = 170
    local function newTopButton(text, xIndex)
        local btn = Instance.new("TextButton", MainFrame)
        btn.Size = UDim2.new(0, buttonWidth, 0, 26)
        btn.Position = UDim2.new(0, spacingX + (xIndex - 1) * (buttonWidth + spacingX), 0, buttonY)
        btn.BackgroundColor3 = Color3.fromRGB(50, 0, 0)
        btn.TextColor3 = Color3.new(1, 1, 1)
        btn.Font = Enum.Font.GothamBold
        btn.TextSize = 13
        btn.BorderSizePixel = 0
        btn.Text = text
        Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
        return btn
    end

    local CopyMyJobBtn = newTopButton("📋 Copy MY Job ID", 1)
    CopyMyJobBtn.MouseButton1Click:Connect(function()
        if setclipboard then setclipboard(CURRENT_JOB_ID) end
    end)

    local RejoinBtn = newTopButton("🔁 Rejoin Server", 2)
    RejoinBtn.MouseButton1Click:Connect(function()
        TeleportService:TeleportToPlaceInstance(PLACE_ID, CURRENT_JOB_ID, LocalPlayer)
    end)

    local RefreshBtn = newTopButton("🔃 Refresh", 3)
    RefreshBtn.MouseButton1Click:Connect(function()
        spawn(RedrawBrowser)
    end)

    local ExternalJoinBtn = newTopButton("🌐 Join External Server", 4)

    local JobBox = Instance.new("TextBox", MainFrame)
    JobBox.Size = UDim2.new(0, 210, 0, 26)
    JobBox.Position = UDim2.new(0, spacingX + 4 * (buttonWidth + spacingX), 0, buttonY)
    JobBox.PlaceholderText = "Enter Job ID to Join"
    JobBox.Text = ""
    JobBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
    JobBox.TextColor3 = Color3.new(1, 1, 1)
    JobBox.Font = Enum.Font.Code
    JobBox.TextSize = 13
    JobBox.ClearTextOnFocus = false
    Instance.new("UICorner", JobBox).CornerRadius = UDim.new(0, 6)
    JobBox.FocusLost:Connect(function(enterPressed)
        if enterPressed and JobBox.Text ~= "" then
            TeleportService:TeleportToPlaceInstance(PLACE_ID, JobBox.Text, LocalPlayer)
        end
    end)
local gradient = Instance.new("UIGradient", ExternalFrame)  -- Apply gradient to ExternalFrame
gradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 25)),  -- Darker start
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 0, 0)),  -- Red middle
    ColorSequenceKeypoint.new(1, Color3.fromRGB(25, 25, 25))   -- Darker end
}
gradient.Rotation = 45  -- Rotate the gradient for a diagonal effect

-- Add smooth transition for gradient offset over time on ExternalFrame
task.spawn(function()
    while ExternalFrame and ExternalFrame.Parent do
        for i = 0, 1, 0.01 do
            gradient.Offset = Vector2.new(i, i)  -- Apply shifting effect to ExternalFrame gradient
            task.wait(0.05)
        end
    end
end)
    -- External Panel Setup
    local ExternalFrame = Instance.new("Frame")
    ExternalFrame.Size = UDim2.new(0, 300, 0, 160)
    ExternalFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
    ExternalFrame.BorderSizePixel = 0
    ExternalFrame.Visible = false
    ExternalFrame.Parent = gui
    Instance.new("UICorner", ExternalFrame).CornerRadius = UDim.new(0, 8)

    local Header = Instance.new("TextLabel", ExternalFrame)
    Header.Size = UDim2.new(1, -40, 0, 30)
    Header.Position = UDim2.new(0, 10, 0, 5)
    Header.Text = "🌐 Join External Server"
    Header.TextColor3 = Color3.new(1, 1, 1)
    Header.Font = Enum.Font.GothamBold
    Header.TextSize = 14
    Header.BackgroundTransparency = 1
    Header.TextXAlignment = Enum.TextXAlignment.Left

    local CloseX = Instance.new("TextButton", ExternalFrame)
    CloseX.Size = UDim2.new(0, 30, 0, 30)
    CloseX.Position = UDim2.new(1, -35, 0, 5)
    CloseX.Text = "✕"
    CloseX.BackgroundTransparency = 1
    CloseX.TextColor3 = Color3.new(1, 0.2, 0.2)
    CloseX.Font = Enum.Font.GothamBold
    CloseX.TextSize = 18
    CloseX.MouseButton1Click:Connect(function()
        ExternalFrame.Visible = false
    end)

    local PlaceBox = Instance.new("TextBox", ExternalFrame)
    PlaceBox.Size = UDim2.new(1, -20, 0, 26)
    PlaceBox.Position = UDim2.new(0, 10, 0, 45)
    PlaceBox.PlaceholderText = "Place ID:"
    PlaceBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    PlaceBox.TextColor3 = Color3.new(1, 1, 1)
    PlaceBox.Font = Enum.Font.Code
    PlaceBox.TextSize = 13
    Instance.new("UICorner", PlaceBox).CornerRadius = UDim.new(0, 6)

    local JobIDBox = Instance.new("TextBox", ExternalFrame)
    JobIDBox.Size = UDim2.new(1, -20, 0, 26)
    JobIDBox.Position = UDim2.new(0, 10, 0, 80)
    JobIDBox.PlaceholderText = "Job ID:"
    JobIDBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    JobIDBox.TextColor3 = Color3.new(1, 1, 1)
    JobIDBox.Font = Enum.Font.Code
    JobIDBox.TextSize = 13
    Instance.new("UICorner", JobIDBox).CornerRadius = UDim.new(0, 6)

    local JoinBtn = Instance.new("TextButton", ExternalFrame)
    JoinBtn.Size = UDim2.new(1, -20, 0, 28)
    JoinBtn.Position = UDim2.new(0, 10, 1, -36)
    JoinBtn.Text = "🔗 Join Server"
    JoinBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
    JoinBtn.TextColor3 = Color3.new(1, 1, 1)
    JoinBtn.Font = Enum.Font.GothamBold
    JoinBtn.TextSize = 13
    Instance.new("UICorner", JoinBtn).CornerRadius = UDim.new(0, 6)
    -- Dynamic positioning next to MainFrame
    local function updateExternalPos()
        local pos = MainFrame.AbsolutePosition
        local size = MainFrame.AbsoluteSize
        ExternalFrame.Position = UDim2.new(0, pos.X + size.X + 10, 0, pos.Y)
    end

    MainFrame:GetPropertyChangedSignal("Position"):Connect(updateExternalPos)
    MainFrame:GetPropertyChangedSignal("Size"):Connect(updateExternalPos)

    ExternalJoinBtn.MouseButton1Click:Connect(function()
        updateExternalPos()
        ExternalFrame.Visible = true
    end)

    JoinBtn.MouseButton1Click:Connect(function()
        if PlaceBox.Text ~= "" and JobIDBox.Text ~= "" then
            TeleportService:TeleportToPlaceInstance(tonumber(PlaceBox.Text), JobIDBox.Text, LocalPlayer)
        end
    end)

    -- Scroll Panel Setup
    local Scroll = Instance.new("ScrollingFrame", MainFrame)
    Scroll.Size = UDim2.new(1, -20, 1, -100)
    Scroll.Position = UDim2.new(0, 10, 0, 90)
    Scroll.BackgroundTransparency = 1
    Scroll.BorderSizePixel = 0
    Scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
    Scroll.ScrollBarThickness = 6

    local Grid = Instance.new("UIGridLayout", Scroll)
    Grid.CellSize = UDim2.new(0, 180, 0, 160)
    Grid.CellPadding = UDim2.new(0, 10, 0, 10)
    Grid.SortOrder = Enum.SortOrder.LayoutOrder

    local PingLabels = {}
    local success, response = pcall(function()
        return game:HttpGet("https://games.roblox.com/v1/games/" .. PLACE_ID .. "/servers/Public?limit=100")
    end)

    if not success then return end
    local data = HttpService:JSONDecode(response)
    for _, server in ipairs(data.data) do
        local Card = Instance.new("Frame", Scroll)
        Card.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
        Card.BorderSizePixel = 0
        Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 6)

        local Info = Instance.new("TextLabel", Card)
        Info.Size = UDim2.new(1, -20, 0, 20)
        Info.Position = UDim2.new(0, 10, 0, 10)
        Info.Text = string.format("%d of %d players", server.playing, server.maxPlayers)
        Info.TextColor3 = Color3.new(1, 1, 1)
        Info.BackgroundTransparency = 1
        Info.Font = Enum.Font.Gotham
        Info.TextSize = 14
        Info.TextXAlignment = Enum.TextXAlignment.Left

        local BarBG = Instance.new("Frame", Card)
        BarBG.Size = UDim2.new(1, -20, 0, 6)
        BarBG.Position = UDim2.new(0, 10, 0, 32)
        BarBG.BackgroundColor3 = Color3.fromRGB(50, 0, 0)

        local BarFill = Instance.new("Frame", BarBG)
        BarFill.Size = UDim2.new(server.playing / server.maxPlayers, 0, 1, 0)
        BarFill.BackgroundColor3 = Color3.fromRGB(200, 0, 0)

        local ID = Instance.new("TextLabel", Card)
        ID.Text = "ID: " .. server.id
        ID.Position = UDim2.new(0, 10, 0, 45)
        ID.Size = UDim2.new(1, -20, 0, 18)
        ID.TextColor3 = Color3.fromRGB(180, 180, 180)
        ID.BackgroundTransparency = 1
        ID.Font = Enum.Font.Code
        ID.TextSize = 12
        ID.TextXAlignment = Enum.TextXAlignment.Left
        ID.TextTruncate = Enum.TextTruncate.AtEnd

        if server.id == CURRENT_JOB_ID then
            local HereLabel = Instance.new("TextLabel", Card)
            HereLabel.Text = "🟢 YOU'RE HERE"
            HereLabel.Position = UDim2.new(0, 10, 0, 70)
            HereLabel.Size = UDim2.new(1, -20, 0, 20)
            HereLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
            HereLabel.BackgroundTransparency = 1
            HereLabel.Font = Enum.Font.GothamBold
            HereLabel.TextSize = 13
            HereLabel.TextXAlignment = Enum.TextXAlignment.Left
        else
            local CopyBtn = Instance.new("TextButton", Card)
            CopyBtn.Size = UDim2.new(1, -20, 0, 20)
            CopyBtn.Position = UDim2.new(0, 10, 0, 68)
            CopyBtn.Text = "📋 Copy Job ID"
            CopyBtn.BackgroundColor3 = Color3.fromRGB(50, 0, 0)
            CopyBtn.TextColor3 = Color3.new(1, 1, 1)
            CopyBtn.Font = Enum.Font.GothamBold
            CopyBtn.TextSize = 13
            CopyBtn.BorderSizePixel = 0
            Instance.new("UICorner", CopyBtn).CornerRadius = UDim.new(0, 6)
            CopyBtn.MouseButton1Click:Connect(function()
                if setclipboard then setclipboard(server.id) end
            end)
        end

        local Ping = Instance.new("TextLabel", Card)
        Ping.Text = "Ping: ..."
        Ping.Position = UDim2.new(0, 10, 0, 90)
        Ping.Size = UDim2.new(1, -20, 0, 18)
        Ping.TextColor3 = Color3.fromRGB(160, 160, 160)
        Ping.BackgroundTransparency = 1
        Ping.Font = Enum.Font.Code
        Ping.TextSize = 12
        Ping.TextXAlignment = Enum.TextXAlignment.Left
        table.insert(PingLabels, Ping)
        local Join = Instance.new("TextButton", Card)
        Join.Size = UDim2.new(1, -20, 0, 24)
        Join.Position = UDim2.new(0, 10, 1, -30)
        Join.Text = "Join"
        Join.BackgroundColor3 = Color3.fromRGB(80, 0, 0)
        Join.TextColor3 = Color3.new(1, 1, 1)
        Join.Font = Enum.Font.GothamBold
        Join.TextSize = 14
        Instance.new("UICorner", Join).CornerRadius = UDim.new(0, 6)

        Join.MouseEnter:Connect(function()
            Join.BackgroundColor3 = Color3.fromRGB(120, 0, 0)
        end)
        Join.MouseLeave:Connect(function()
            Join.BackgroundColor3 = Color3.fromRGB(80, 0, 0)
        end)
        Join.MouseButton1Click:Connect(function()
            TeleportService:TeleportToPlaceInstance(PLACE_ID, server.id, LocalPlayer)
        end)
    end

    task.delay(0.5, function()
        Scroll.CanvasSize = UDim2.new(0, 0, 0, Grid.AbsoluteContentSize.Y + 20)
    end)

    task.spawn(function()
        while Scroll and Scroll.Parent do
            for _, label in ipairs(PingLabels) do
                label.Text = "Ping: " .. math.random(40, 150) .. " ms"
            end
            task.wait(1)
        end
    end)
end

RedrawBrowser()

Features & Information

join servers

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts