Mega Obby Fun script Cheat HUB (No Keys)
Mega Obby Fun Keyless
Mega Obby Fun script Cheat HUB (No Keys)
👤 alexriderr 👁 75 views ❤️ 0 likes ⏱ Aug 3, 2026
This script is developed by **Sploit Hub** for **Mega Obby Fun** and includes a collection of useful gameplay enhancement features to make completing stages much easier. It provides utilities such as **Anti Fall** along with several other helpful functions designed to improve your overall experience. **Features** * Anti Fall * Gameplay Utilities * Local Player Enhancements * Smooth Performance * Additional Cheat Features **Note:** The original author requested that a screenshot of the UI be used as the preview image.
✨ Features
Fly ESP Anti-Fall Noclip Walk Speed Changer
📋 Script Code
-- Sploit HUB - Mega Obby Fun
-- A draggable GUI for Roblox Mega Obby games

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

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local mouse = player:GetMouse()
local humanoid = character:WaitForChild("Humanoid")

-- Variables for features
local flyEnabled = false
local noclipEnabled = false
local infJumpEnabled = false
local antiFallEnabled = false
local espEnabled = false
local walkspeedValue = 16
local flySpeed = 50
local bodyVelocity = nil
local bodyGyro = nil
local noclipParts = {}

-- Anti-Fall variables
local lastValidPosition = nil
local lastValidCFrame = nil
local isFalling = false
local antiFallConnection = nil

-- ESP variables
local espHighlights = {}
local espConnection = nil

-- Main GUI variables
local mainGui = nil
local mainFrame = nil
local contentContainer = nil
local guiCreated = false

-- Create notification function
local function createNotification(text, duration)
    duration = duration or 3
    local notif = Instance.new("TextLabel")
    notif.Parent = player.PlayerGui
    notif.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
    notif.BackgroundTransparency = 0.2
    notif.BorderSizePixel = 0
    notif.Position = UDim2.new(0.5, -150, 0, 20)
    notif.Size = UDim2.new(0, 300, 0, 40)
    notif.Font = Enum.Font.GothamSemibold
    notif.Text = text
    notif.TextColor3 = Color3.fromRGB(255, 255, 255)
    notif.TextSize = 14
    notif.Visible = false
    notif.ZIndex = 999
    
    local notifCorner = Instance.new("UICorner")
    notifCorner.CornerRadius = UDim.new(0, 8)
    notifCorner.Parent = notif
    
    notif.Visible = true
    notif.Position = UDim2.new(0.5, -150, 0, -60)
    
    TweenService:Create(notif, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {Position = UDim2.new(0.5, -150, 0, 20)}):Play()
    
    task.wait(duration)
    TweenService:Create(notif, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {Position = UDim2.new(0.5, -150, 0, -60)}):Play()
    task.wait(0.5)
    notif:Destroy()
end

-- ESP FUNCTIONS
local function startESP()
    if espEnabled then return end
    
    espConnection = RunService.Heartbeat:Connect(function()
        for _, otherPlayer in pairs(Players:GetPlayers()) do
            if otherPlayer ~= player then
                local otherChar = otherPlayer.Character
                if otherChar and otherChar.PrimaryPart then
                    if not espHighlights[otherPlayer] then
                        local highlight = Instance.new("Highlight")
                        highlight.Parent = otherChar
                        highlight.FillColor = Color3.fromRGB(255, 0, 0)
                        highlight.FillTransparency = 0.4
                        highlight.OutlineColor = Color3.fromRGB(255, 50, 50)
                        highlight.OutlineTransparency = 0.1
                        highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
                        espHighlights[otherPlayer] = highlight
                    end
                else
                    if espHighlights[otherPlayer] then
                        espHighlights[otherPlayer]:Destroy()
                        espHighlights[otherPlayer] = nil
                    end
                end
            end
        end
        
        for otherPlayer, highlight in pairs(espHighlights) do
            if not otherPlayer.Parent then
                highlight:Destroy()
                espHighlights[otherPlayer] = nil
            end
        end
    end)
    
    espEnabled = true
end

local function stopESP()
    espEnabled = false
    if espConnection then
        espConnection:Disconnect()
        espConnection = nil
    end
    for _, highlight in pairs(espHighlights) do
        highlight:Destroy()
    end
    espHighlights = {}
end

-- ANTI-FALL FUNCTION
local function startAntiFall()
    if not character then return end
    
    lastValidPosition = nil
    lastValidCFrame = nil
    isFalling = false
    
    local function isOnValidSurface()
        if not character or not character.PrimaryPart then return false end
        
        local rootPart = character.PrimaryPart
        local rayOrigin = rootPart.Position + Vector3.new(0, -1, 0)
        local rayDirection = Vector3.new(0, -5, 0)
        
        local raycastParams = RaycastParams.new()
        raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
        raycastParams.FilterDescendantsInstances = {character}
        
        local rayResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
        
        return rayResult ~= nil
    end
    
    local function savePosition()
        if character and character.PrimaryPart then
            lastValidPosition = character.PrimaryPart.Position
            lastValidCFrame = character.PrimaryPart.CFrame
        end
    end
    
    local function teleportToLastPosition()
        if character and character.PrimaryPart and lastValidPosition then
            local rootPart = character.PrimaryPart
            rootPart.CFrame = lastValidCFrame or CFrame.new(lastValidPosition)
            rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
            rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
            createNotification("🛡️ Anti-Fall: Teleported to safety!", 1.5)
            isFalling = false
        end
    end
    
    if antiFallConnection then
        antiFallConnection:Disconnect()
    end
    
    antiFallConnection = RunService.Heartbeat:Connect(function()
        if not antiFallEnabled or not character or not character.PrimaryPart then
            return
        end
        
        local rootPart = character.PrimaryPart
        if not rootPart then return end
        
        local position = rootPart.Position
        
        if isOnValidSurface() then
            savePosition()
            isFalling = false
        else
            local velocity = rootPart.AssemblyLinearVelocity
            local isFallingDown = velocity.Y < -2
            
            if isFallingDown then
                isFalling = true
                if lastValidPosition and (position.Y < lastValidPosition.Y - 15) then
                    teleportToLastPosition()
                end
            end
        end
        
        if position.Y  0 then
            moveDirection = moveDirection.Unit * flySpeed
        end
        
        bodyVelocity.Velocity = moveDirection
        bodyGyro.CFrame = camera.CFrame
    end)
end

local function stopFly()
    flyEnabled = false
    if bodyVelocity then bodyVelocity:Destroy() end
    if bodyGyro then bodyGyro:Destroy() end
    bodyVelocity = nil
    bodyGyro = nil
end

-- NOCLIP FUNCTION
local function startNoclip()
    if not character then return end
    
    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanCollide = false
            table.insert(noclipParts, part)
        end
    end
    
    character.DescendantAdded:Connect(function(descendant)
        if noclipEnabled and descendant:IsA("BasePart") then
            descendant.CanCollide = false
            table.insert(noclipParts, descendant)
        end
    end)
end

local function stopNoclip()
    noclipEnabled = false
    for _, part in pairs(noclipParts) do
        if part and part.Parent then
            part.CanCollide = true
        end
    end
    noclipParts = {}
end

-- INFINITE JUMP FUNCTION
local infJumpConnection = nil

local function startInfJump()
    if infJumpConnection then
        infJumpConnection:Disconnect()
    end
    
    infJumpConnection = UserInputService.JumpRequest:Connect(function()
        if infJumpEnabled and humanoid then
            humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
        end
    end)
end

local function stopInfJump()
    infJumpEnabled = false
    if infJumpConnection then
        infJumpConnection:Disconnect()
        infJumpConnection = nil
    end
end

-- Function to create features content
local function createFeaturesContent(parent)
    local function createToggleSwitch(text, color, defaultState, callback)
        local frame = Instance.new("Frame")
        frame.Name = text:gsub(" ", "") .. "Toggle"
        frame.Parent = parent
        frame.BackgroundTransparency = 1
        frame.Size = UDim2.new(1, 0, 0, 50)
        
        local label = Instance.new("TextLabel")
        label.Parent = frame
        label.BackgroundTransparency = 1
        label.Position = UDim2.new(0, 0, 0, 0)
        label.Size = UDim2.new(0.7, 0, 1, 0)
        label.Font = Enum.Font.GothamSemibold
        label.Text = text
        label.TextColor3 = Color3.fromRGB(255, 255, 255)
        label.TextSize = 16
        label.TextXAlignment = Enum.TextXAlignment.Left
        label.TextYAlignment = Enum.TextYAlignment.Center
        
        local toggleContainer = Instance.new("Frame")
        toggleContainer.Parent = frame
        toggleContainer.BackgroundTransparency = 1
        toggleContainer.Position = UDim2.new(0.75, 0, 0.1, 0)
        toggleContainer.Size = UDim2.new(0, 60, 0, 35)
        
        local toggleBg = Instance.new("Frame")
        toggleBg.Name = "ToggleBg"
        toggleBg.Parent = toggleContainer
        toggleBg.BackgroundColor3 = defaultState and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(80, 80, 100)
        toggleBg.BackgroundTransparency = 0.3
        toggleBg.BorderSizePixel = 0
        toggleBg.Size = UDim2.new(1, 0, 1, 0)
        
        local toggleBgCorner = Instance.new("UICorner")
        toggleBgCorner.CornerRadius = UDim.new(1, 0)
        toggleBgCorner.Parent = toggleBg
        
        local toggleKnob = Instance.new("Frame")
        toggleKnob.Name = "ToggleKnob"
        toggleKnob.Parent = toggleContainer
        toggleKnob.BackgroundColor3 = defaultState and Color3.fromRGB(0, 255, 130) or Color3.fromRGB(200, 200, 200)
        toggleKnob.BackgroundTransparency = 0
        toggleKnob.BorderSizePixel = 0
        toggleKnob.Size = UDim2.new(0, 25, 0, 25)
        toggleKnob.Position = defaultState and UDim2.new(0.55, 0, 0.14, 0) or UDim2.new(0.08, 0, 0.14, 0)
        
        local toggleKnobCorner = Instance.new("UICorner")
        toggleKnobCorner.CornerRadius = UDim.new(1, 0)
        toggleKnobCorner.Parent = toggleKnob
        
        local toggleButton = Instance.new("ImageButton")
        toggleButton.Name = "ToggleButton"
        toggleButton.Parent = toggleContainer
        toggleButton.BackgroundTransparency = 1
        toggleButton.Size = UDim2.new(1, 0, 1, 0)
        toggleButton.Image = "rbxassetid://"
        
        local state = defaultState or false
        
        local function toggleSwitch()
            state = not state
            toggleBg.BackgroundColor3 = state and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(80, 80, 100)
            
            local targetPos = state and UDim2.new(0.55, 0, 0.14, 0) or UDim2.new(0.08, 0, 0.14, 0)
            TweenService:Create(toggleKnob, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {Position = targetPos}):Play()
            TweenService:Create(toggleBg, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {BackgroundTransparency = state and 0.3 or 0.3}):Play()
            
            callback(state)
        end
        
        toggleButton.MouseButton1Click:Connect(toggleSwitch)
        
        frame.InputBegan:Connect(function(input)
            if input.UserInputType == Enum.UserInputType.MouseButton1 then
                toggleSwitch()
            end
        end)
        
        return frame, toggleSwitch
    end

    local function createInputBox(text, placeholder, defaultValue, callback)
        local frame = Instance.new("Frame")
        frame.Name = text:gsub(" ", "") .. "Input"
        frame.Parent = parent
        frame.BackgroundTransparency = 1
        frame.Size = UDim2.new(1, 0, 0, 50)
        
        local label = Instance.new("TextLabel")
        label.Parent = frame
        label.BackgroundTransparency = 1
        label.Position = UDim2.new(0, 0, 0, 0)
        label.Size = UDim2.new(0.5, 0, 1, 0)
        label.Font = Enum.Font.GothamSemibold
        label.Text = text
        label.TextColor3 = Color3.fromRGB(255, 255, 255)
        label.TextSize = 16
        label.TextXAlignment = Enum.TextXAlignment.Left
        label.TextYAlignment = Enum.TextYAlignment.Center
        
        local inputBox = Instance.new("TextBox")
        inputBox.Name = "InputBox"
        inputBox.Parent = frame
        inputBox.BackgroundColor3 = Color3.fromRGB(40, 40, 55)
        inputBox.BackgroundTransparency = 0.3
        inputBox.BorderSizePixel = 0
        inputBox.Position = UDim2.new(0.6, 0, 0.1, 0)
        inputBox.Size = UDim2.new(0.35, 0, 0.8, 0)
        inputBox.Font = Enum.Font.GothamSemibold
        inputBox.PlaceholderText = placeholder
        inputBox.Text = tostring(defaultValue)
        inputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
        inputBox.TextSize = 16
        inputBox.ClearTextOnFocus = false
        
        local inputCorner = Instance.new("UICorner")
        inputCorner.CornerRadius = UDim.new(0, 8)
        inputCorner.Parent = inputBox
        
        local inputStroke = Instance.new("UIStroke")
        inputStroke.Color = Color3.fromRGB(60, 60, 80)
        inputStroke.Thickness = 1
        inputStroke.Parent = inputBox
        
        inputBox.Focused:Connect(function()
            TweenService:Create(inputBox, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(50, 50, 70)}):Play()
        end)
        
        inputBox.FocusLost:Connect(function(enterPressed)
            TweenService:Create(inputBox, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(40, 40, 55)}):Play()
            if enterPressed then
                local value = tonumber(inputBox.Text)
                if value then
                    callback(value)
                    createNotification("Set " .. text .. " to " .. value, 1.5)
                else
                    inputBox.Text = tostring(defaultValue)
                    createNotification("Invalid input! Using default value.", 2)
                end
            end
        end)
        
        return frame, inputBox
    end

    -- Fly Toggle
    createToggleSwitch("🕊️ Fly", Color3.fromRGB(80, 150, 200), false, function(state)
        flyEnabled = state
        if state then
            startFly()
            createNotification("Fly Enabled! (WASD to move, Space/Shift for vertical)", 3)
        else
            stopFly()
            createNotification("Fly Disabled!", 2)
        end
    end)
    
    -- Noclip Toggle
    createToggleSwitch("🔮 Noclip", Color3.fromRGB(150, 80, 200), false, function(state)
        noclipEnabled = state
        if state then
            startNoclip()
            createNotification("Noclip Enabled!", 2)
        else
            stopNoclip()
            createNotification("Noclip Disabled!", 2)
        end
    end)
    
    -- Infinite Jump Toggle
    createToggleSwitch("⬆️ Infinite Jump", Color3.fromRGB(200, 150, 80), false, function(state)
        infJumpEnabled = state
        if state then
            startInfJump()
            createNotification("Infinite Jump Enabled!", 2)
        else
            stopInfJump()
            createNotification("Infinite Jump Disabled!", 2)
        end
    end)
    
    -- Anti-Fall Toggle
    createToggleSwitch("🛡️ Anti-Fall", Color3.fromRGB(200, 80, 80), false, function(state)
        antiFallEnabled = state
        if state then
            startAntiFall()
            createNotification("🛡️ Anti-Fall Enabled! You will be teleported back if you fall.", 3)
        else
            stopAntiFall()
            createNotification("Anti-Fall Disabled!", 2)
        end
    end)
    
    -- ESP Toggle
    createToggleSwitch("👁️ ESP (Highlight Players)", Color3.fromRGB(255, 50, 50), false, function(state)
        if state then
            startESP()
            createNotification("👁️ ESP Enabled! All players highlighted in red!", 2.5)
        else
            stopESP()
            createNotification("ESP Disabled!", 2)
        end
    end)
    
    -- Walkspeed Input Box
    createInputBox("🏃 Walk Speed", "Enter speed...", 16, function(value)
        walkspeedValue = value
        if humanoid then
            humanoid.WalkSpeed = value
        end
        createNotification("Walk Speed set to " .. value, 1.5)
    end)
    
    -- Credits
    local creditsFrame = Instance.new("Frame")
    creditsFrame.Parent = parent
    creditsFrame.BackgroundTransparency = 1
    creditsFrame.Size = UDim2.new(1, 0, 0, 40)
    creditsFrame.LayoutOrder = 1000
    
    local creditsText = Instance.new("TextLabel")
    creditsText.Parent = creditsFrame
    creditsText.BackgroundTransparency = 1
    creditsText.Size = UDim2.new(1, 0, 1, 0)
    creditsText.Font = Enum.Font.Gotham
    creditsText.Text = "❤️ Sploit HUB - Made with love ❤️"
    creditsText.TextColor3 = Color3.fromRGB(150, 150, 170)
    creditsText.TextSize = 14
    creditsText.TextYAlignment = Enum.TextYAlignment.Center
end

-- CREATE BAN WARNING GUI
local function createBanWarning(callback)
    local warningGui = Instance.new("ScreenGui")
    warningGui.Name = "BanWarning"
    warningGui.Parent = player.PlayerGui
    warningGui.ResetOnSpawn = false
    warningGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    
    -- Background overlay
    local overlay = Instance.new("Frame")
    overlay.Name = "Overlay"
    overlay.Parent = warningGui
    overlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    overlay.BackgroundTransparency = 0.7
    overlay.Size = UDim2.new(1, 0, 1, 0)
    overlay.ZIndex = 1
    
    -- Main Warning Frame
    local warningFrame = Instance.new("Frame")
    warningFrame.Name = "WarningFrame"
    warningFrame.Parent = warningGui
    warningFrame.BackgroundColor3 = Color3.fromRGB(40, 20, 20)
    warningFrame.BackgroundTransparency = 0.1
    warningFrame.BorderColor3 = Color3.fromRGB(255, 0, 0)
    warningFrame.BorderSizePixel = 3
    warningFrame.Position = UDim2.new(0.5, -300, 0.5, -150)
    warningFrame.Size = UDim2.new(0, 600, 0, 320)
    warningFrame.ClipsDescendants = true
    warningFrame.ZIndex = 2
    
    -- Warning Frame Corner
    local warningCorner = Instance.new("UICorner")
    warningCorner.CornerRadius = UDim.new(0, 16)
    warningCorner.Parent = warningFrame
    
    -- Warning Frame Stroke
    local warningStroke = Instance.new("UIStroke")
    warningStroke.Color = Color3.fromRGB(255, 50, 50)
    warningStroke.Thickness = 2
    warningStroke.Parent = warningFrame
    
    -- Warning Icon
    local warningIcon = Instance.new("TextLabel")
    warningIcon.Parent = warningFrame
    warningIcon.BackgroundTransparency = 1
    warningIcon.Position = UDim2.new(0.5, -30, 0, 10)
    warningIcon.Size = UDim2.new(0, 60, 0, 60)
    warningIcon.Font = Enum.Font.GothamBold
    warningIcon.Text = "⚠️"
    warningIcon.TextColor3 = Color3.fromRGB(255, 200, 0)
    warningIcon.TextSize = 50
    warningIcon.TextScaled = true
    warningIcon.TextXAlignment = Enum.TextXAlignment.Center
    warningIcon.TextYAlignment = Enum.TextYAlignment.Center
    warningIcon.ZIndex = 3
    
    -- Header text
    local header = Instance.new("TextLabel")
    header.Parent = warningFrame
    header.BackgroundTransparency = 1
    header.Position = UDim2.new(0, 0, 0, 70)
    header.Size = UDim2.new(1, 0, 0, 40)
    header.Font = Enum.Font.GothamBold
    header.Text = "⚠️ BAN WARNING ⚠️"
    header.TextColor3 = Color3.fromRGB(255, 50, 50)
    header.TextSize = 28
    header.TextScaled = false
    header.TextXAlignment = Enum.TextXAlignment.Center
    header.TextYAlignment = Enum.TextYAlignment.Center
    header.ZIndex = 3
    
    -- Divider line
    local divider = Instance.new("Frame")
    divider.Parent = warningFrame
    divider.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
    divider.BackgroundTransparency = 0.3
    divider.Position = UDim2.new(0.1, 0, 0.35, 0)
    divider.Size = UDim2.new(0.8, 0, 0, 2)
    divider.ZIndex = 3
    
    -- Warning message
    local message = Instance.new("TextLabel")
    message.Parent = warningFrame
    message.BackgroundTransparency = 1
    message.Position = UDim2.new(0, 30, 0, 120)
    message.Size = UDim2.new(1, -60, 0, 100)
    message.Font = Enum.Font.GothamSemibold
    message.Text = "Using scripts and having an executor can result in a ban or termination.\n\nAlways use an alt account and use exploits for fun,\nnot to ruin experiences!"
    message.TextColor3 = Color3.fromRGB(255, 220, 220)
    message.TextSize = 18
    message.TextXAlignment = Enum.TextXAlignment.Center
    message.TextYAlignment = Enum.TextYAlignment.Center
    message.TextScaled = false
    message.LineHeight = 1.5
    message.ZIndex = 3
    
    -- I Understand Button
    local understandButton = Instance.new("TextButton")
    understandButton.Name = "UnderstandButton"
    understandButton.Parent = warningFrame
    understandButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
    understandButton.BackgroundTransparency = 0.2
    understandButton.BorderSizePixel = 2
    understandButton.BorderColor3 = Color3.fromRGB(255, 100, 100)
    understandButton.Position = UDim2.new(0.35, 0, 0.82, 0)
    understandButton.Size = UDim2.new(0.3, 0, 0, 45)
    understandButton.Font = Enum.Font.GothamBold
    understandButton.Text = "✓ I Understand"
    understandButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    understandButton.TextSize = 18
    understandButton.ZIndex = 3
    
    local understandCorner = Instance.new("UICorner")
    understandCorner.CornerRadius = UDim.new(0, 10)
    understandCorner.Parent = understandButton
    
    -- Hover effects
    understandButton.MouseEnter:Connect(function()
        TweenService:Create(understandButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.05}):Play()
        TweenService:Create(understandButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 80, 80)}):Play()
    end)
    
    understandButton.MouseLeave:Connect(function()
        TweenService:Create(understandButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.2}):Play()
        TweenService:Create(understandButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(200, 50, 50)}):Play()
    end)
    
    -- Animate warning frame entrance
    warningFrame.Position = UDim2.new(0.5, -300, 0.5, -200)
    warningFrame.BackgroundTransparency = 1
    warningFrame.BorderSizePixel = 0
    
    TweenService:Create(warningFrame, TweenInfo.new(0.6, Enum.EasingStyle.Quad), {
        Position = UDim2.new(0.5, -300, 0.5, -150),
        BackgroundTransparency = 0.1,
        BorderSizePixel = 3
    }):Play()
    
    -- Button functionality
    understandButton.MouseButton1Click:Connect(function()
        -- Animate out
        TweenService:Create(warningFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {
            Position = UDim2.new(0.5, -300, 0.5, 100),
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }):Play()
        
        TweenService:Create(overlay, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {
            BackgroundTransparency = 1
        }):Play()
        
        task.wait(0.5)
        warningGui:Destroy()
        
        -- Call the callback to create the main GUI
        if callback then
            callback()
        end
    end)
    
    return warningGui
end

-- CREATE MAIN GUI FUNCTION
local function createMainGUI()
    if guiCreated then return end
    guiCreated = true
    
    mainGui = Instance.new("ScreenGui")
    mainGui.Name = "SploitHUB"
    mainGui.Parent = player.PlayerGui
    mainGui.ResetOnSpawn = false

    mainFrame = Instance.new("Frame")
    mainFrame.Name = "MainFrame"
    mainFrame.Parent = mainGui
    mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
    mainFrame.BackgroundTransparency = 0.1
    mainFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
    mainFrame.BorderSizePixel = 0
    mainFrame.Position = UDim2.new(0.5, -225, 0.5, -280)
    mainFrame.Size = UDim2.new(0, 450, 0, 550)
    mainFrame.ClipsDescendants = true

    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 12)
    corner.Parent = mainFrame

    local stroke = Instance.new("UIStroke")
    stroke.Color = Color3.fromRGB(70, 70, 90)
    stroke.Thickness = 2
    stroke.Parent = mainFrame

    -- Title bar
    local titleBar = Instance.new("Frame")
    titleBar.Name = "TitleBar"
    titleBar.Parent = mainFrame
    titleBar.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
    titleBar.BackgroundTransparency = 0.2
    titleBar.BorderSizePixel = 0
    titleBar.Position = UDim2.new(0, 0, 0, 0)
    titleBar.Size = UDim2.new(1, 0, 0, 40)

    local titleCorner = Instance.new("UICorner")
    titleCorner.CornerRadius = UDim.new(0, 12)
    titleCorner.Parent = titleBar

    local titleText = Instance.new("TextLabel")
    titleText.Name = "TitleText"
    titleText.Parent = titleBar
    titleText.BackgroundTransparency = 1
    titleText.Position = UDim2.new(0, 15, 0, 0)
    titleText.Size = UDim2.new(1, -60, 1, 0)
    titleText.Font = Enum.Font.GothamBold
    titleText.Text = "Sploit HUB - Mega Obby Fun"
    titleText.TextColor3 = Color3.fromRGB(255, 255, 255)
    titleText.TextSize = 18
    titleText.TextXAlignment = Enum.TextXAlignment.Left
    titleText.TextYAlignment = Enum.TextYAlignment.Center

    -- Close button
    local closeButton = Instance.new("ImageButton")
    closeButton.Name = "CloseButton"
    closeButton.Parent = titleBar
    closeButton.BackgroundTransparency = 1
    closeButton.Position = UDim2.new(1, -40, 0, 5)
    closeButton.Size = UDim2.new(0, 30, 0, 30)
    closeButton.Image = "rbxassetid://10747381346"
    closeButton.ImageRectOffset = Vector2.new(0, 0)
    closeButton.ImageRectSize = Vector2.new(24, 24)

    local closeCorner = Instance.new("UICorner")
    closeCorner.CornerRadius = UDim.new(1, 0)
    closeCorner.Parent = closeButton

    -- Minimize button
    local minimizeButton = Instance.new("ImageButton")
    minimizeButton.Name = "MinimizeButton"
    minimizeButton.Parent = titleBar
    minimizeButton.BackgroundTransparency = 1
    minimizeButton.Position = UDim2.new(1, -80, 0, 5)
    minimizeButton.Size = UDim2.new(0, 30, 0, 30)
    minimizeButton.Image = "rbxassetid://10747381314"
    minimizeButton.ImageRectOffset = Vector2.new(0, 0)
    minimizeButton.ImageRectSize = Vector2.new(24, 24)

    -- Content container
    contentContainer = Instance.new("ScrollingFrame")
    contentContainer.Name = "ContentContainer"
    contentContainer.Parent = mainFrame
    contentContainer.BackgroundTransparency = 1
    contentContainer.Position = UDim2.new(0, 10, 0, 50)
    contentContainer.Size = UDim2.new(1, -20, 1, -60)
    contentContainer.ScrollBarThickness = 6
    contentContainer.ScrollBarImageColor3 = Color3.fromRGB(60, 60, 80)
    contentContainer.VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar

    -- Create UIListLayout
    local listLayout = Instance.new("UIListLayout")
    listLayout.Parent = contentContainer
    listLayout.SortOrder = Enum.SortOrder.LayoutOrder
    listLayout.Padding = UDim.new(0, 8)
    listLayout.VerticalAlignment = Enum.VerticalAlignment.Top
    listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center

    -- Create features content
    createFeaturesContent(contentContainer)

    -- Dragging functionality
    local dragging = false
    local dragStart
    local startPos

    titleBar.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = mainFrame.Position
            
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            local delta = input.Position - dragStart
            mainFrame.Position = UDim2.new(
                startPos.X.Scale,
                startPos.X.Offset + delta.X,
                startPos.Y.Scale,
                startPos.Y.Offset + delta.Y
            )
        end
    end)

    -- Close button
    closeButton.MouseButton1Click:Connect(function()
        stopFly()
        stopNoclip()
        stopInfJump()
        stopAntiFall()
        stopESP()
        
        TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad), 
            {BackgroundTransparency = 1, Size = UDim2.new(0, 0, 0, 0)}
        ):Play()
        task.wait(0.3)
        mainGui:Destroy()
        guiCreated = false
    end)

    -- Minimize button
    local minimized = false
    minimizeButton.MouseButton1Click:Connect(function()
        minimized = not minimized
        local targetSize = minimized and UDim2.new(0, 450, 0, 40) or UDim2.new(0, 450, 0, 550)
        TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {Size = targetSize}):Play()
    end)

    -- Character respawn
    player.CharacterAdded:Connect(function(newChar)
        character = newChar
        humanoid = character:WaitForChild("Humanoid")
        
        if flyEnabled then startFly() end
        if noclipEnabled then startNoclip() end
        if infJumpEnabled then startInfJump() end
        if antiFallEnabled then startAntiFall() end
        if humanoid then humanoid.WalkSpeed = walkspeedValue end
    end)

    mainFrame.BackgroundTransparency = 0.1
    mainFrame.Size = UDim2.new(0, 450, 0, 550)
    
    print("Main GUI created successfully!")
end

-- CREATE WELCOME SCREEN
local function createWelcomeScreen()
    local welcomeGui = Instance.new("ScreenGui")
    welcomeGui.Name = "WelcomeGui"
    welcomeGui.Parent = player.PlayerGui
    welcomeGui.ResetOnSpawn = false
    welcomeGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    
    local overlay = Instance.new("Frame")
    overlay.Name = "Overlay"
    overlay.Parent = welcomeGui
    overlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    overlay.BackgroundTransparency = 0.6
    overlay.Size = UDim2.new(1, 0, 1, 0)
    overlay.ZIndex = 1
    
    local welcomeFrame = Instance.new("Frame")
    welcomeFrame.Name = "WelcomeFrame"
    welcomeFrame.Parent = welcomeGui
    welcomeFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
    welcomeFrame.BackgroundTransparency = 0.1
    welcomeFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
    welcomeFrame.BorderSizePixel = 0
    welcomeFrame.Position = UDim2.new(0.5, -300, 0.5, -150)
    welcomeFrame.Size = UDim2.new(0, 600, 0, 300)
    welcomeFrame.ClipsDescendants = true
    welcomeFrame.ZIndex = 2
    
    local welcomeCorner = Instance.new("UICorner")
    welcomeCorner.CornerRadius = UDim.new(0, 16)
    welcomeCorner.Parent = welcomeFrame
    
    local welcomeStroke = Instance.new("UIStroke")
    welcomeStroke.Color = Color3.fromRGB(80, 80, 120)
    welcomeStroke.Thickness = 2
    welcomeStroke.Parent = welcomeFrame
    
    local header = Instance.new("TextLabel")
    header.Parent = welcomeFrame
    header.BackgroundTransparency = 1
    header.Position = UDim2.new(0, 0, 0, 20)
    header.Size = UDim2.new(1, 0, 0, 50)
    header.Font = Enum.Font.GothamBold
    header.Text = "🌟 Welcome to Sploit HUB! 🌟"
    header.TextColor3 = Color3.fromRGB(255, 215, 0)
    header.TextSize = 28
    header.TextScaled = false
    header.ZIndex = 3
    
    local divider = Instance.new("Frame")
    divider.Parent = welcomeFrame
    divider.BackgroundColor3 = Color3.fromRGB(80, 80, 120)
    divider.BackgroundTransparency = 0.3
    divider.Position = UDim2.new(0.1, 0, 0, 80)
    divider.Size = UDim2.new(0.8, 0, 0, 2)
    divider.ZIndex = 3
    
    local dividerCorner = Instance.new("UICorner")
    dividerCorner.CornerRadius = UDim.new(1, 0)
    dividerCorner.Parent = divider
    
    local message = Instance.new("TextLabel")
    message.Parent = welcomeFrame
    message.BackgroundTransparency = 1
    message.Position = UDim2.new(0, 30, 0, 100)
    message.Size = UDim2.new(1, -60, 0, 100)
    message.Font = Enum.Font.GothamSemibold
    message.Text = "This script was submitted to xenoscripts.com\n\nThanks moderator for trying it out and thanks to\nXeno users for using our script! ❤️"
    message.TextColor3 = Color3.fromRGB(220, 220, 255)
    message.TextSize = 18
    message.TextXAlignment = Enum.TextXAlignment.Center
    message.TextYAlignment = Enum.TextYAlignment.Center
    message.TextScaled = false
    message.LineHeight = 1.4
    message.ZIndex = 3
    
    local continueButton = Instance.new("TextButton")
    continueButton.Name = "ContinueButton"
    continueButton.Parent = welcomeFrame
    continueButton.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
    continueButton.BackgroundTransparency = 0.2
    continueButton.BorderSizePixel = 0
    continueButton.Position = UDim2.new(0.35, 0, 0.8, 0)
    continueButton.Size = UDim2.new(0.3, 0, 0, 45)
    continueButton.Font = Enum.Font.GothamBold
    continueButton.Text = "▶ Continue"
    continueButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    continueButton.TextSize = 20
    continueButton.ZIndex = 3
    
    local continueCorner = Instance.new("UICorner")
    continueCorner.CornerRadius = UDim.new(0, 10)
    continueCorner.Parent = continueButton
    
    local continueStroke = Instance.new("UIStroke")
    continueStroke.Color = Color3.fromRGB(100, 200, 255)
    continueStroke.Thickness = 1
    continueStroke.Parent = continueButton
    
    continueButton.MouseEnter:Connect(function()
        TweenService:Create(continueButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.05}):Play()
        TweenService:Create(continueButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(50, 180, 255)}):Play()
    end)
    
    continueButton.MouseLeave:Connect(function()
        TweenService:Create(continueButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.2}):Play()
        TweenService:Create(continueButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(0, 150, 255)}):Play()
    end)
    
    welcomeFrame.Position = UDim2.new(0.5, -300, 0.5, -200)
    welcomeFrame.BackgroundTransparency = 1
    
    TweenService:Create(welcomeFrame, TweenInfo.new(0.8, Enum.EasingStyle.Quad), {
        Position = UDim2.new(0.5, -300, 0.5, -150),
        BackgroundTransparency = 0.1
    }):Play()
    
    continueButton.MouseButton1Click:Connect(function()
        TweenService:Create(welcomeFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {
            Position = UDim2.new(0.5, -300, 0.5, 100),
            BackgroundTransparency = 1
        }):Play()
        
        TweenService:Create(overlay, TweenInfo.new(0.5, Enum.EasingStyle.Quad), {
            BackgroundTransparency = 1
        }):Play()
        
        task.wait(0.5)
        welcomeGui:Destroy()
        
        -- Show Ban Warning after welcome screen
        createBanWarning(function()
            -- After ban warning is dismissed, create main GUI
            createMainGUI()
        end)
    end)
    
    return welcomeGui
end

-- START THE SCRIPT
print("Sploit HUB - Mega Obby Fun loading...")
print("Showing welcome screen...")

local welcomeScreen = createWelcomeScreen()

print("Welcome screen displayed. Waiting for user to continue...")
print("Sploit HUB - Mega Obby Fun loaded successfully!")
🎮 Similar Scripts
💬 Comments (0)
Login to post a comment
No comments yet. Be the first!
Script Info
Game Mega Obby Fun
TypeKeyless
Authoralexriderr
Views75
Likes0
PublishedAug 3, 2026
🎮 Play Game on Roblox
🕐 Recent Scripts
Collect The Alphabet script keyless | Auto buy packs
Collect The Alphabet script keyless | Auto buy packs
Collect The Alphabet • 👁 9
Keyless
Hood Rivals script by Nick Hub | Hitbox Expander
Hood Rivals script by Nick Hub | Hitbox Expander
Hood Rivals • 👁 14
Keyless
PS99 auto lucky block – complete
PS99 auto lucky block – complete
Pet Simulator 99! • 👁 10
Keyless
Egg Toss script by Venera Hub | Auto toss and catch
Egg Toss script by Venera Hub | Auto toss and catch
Egg Toss • 👁 11
Keyless
One of Us script by Venera Hub | ESP Player
One of Us script by Venera Hub | ESP Player
One of Us • 👁 12
Keyless