-- 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!")