-- Sploit HUB - Build a Boat for Treasure
-- A draggable GUI script for Roblox BBFT
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SploitHUB"
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false
-- ============================================================
-- TERMS OF SERVICE / AGREEMENT GUI
-- ============================================================
local termsFrame = Instance.new("Frame")
termsFrame.Name = "TermsFrame"
termsFrame.Size = UDim2.new(0, 500, 0, 400)
termsFrame.Position = UDim2.new(0.5, -250, 0.5, -200)
termsFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 20)
termsFrame.BackgroundTransparency = 0.05
termsFrame.BorderSizePixel = 3
termsFrame.BorderColor3 = Color3.fromRGB(255, 50, 50)
termsFrame.ClipsDescendants = true
termsFrame.Parent = screenGui
-- Glow effect (border glow)
local glowBorder = Instance.new("Frame")
glowBorder.Size = UDim2.new(1, 6, 1, 6)
glowBorder.Position = UDim2.new(0, -3, 0, -3)
glowBorder.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
glowBorder.BackgroundTransparency = 0.8
glowBorder.BorderSizePixel = 0
glowBorder.Parent = termsFrame
-- Title with scary effect
local termsTitle = Instance.new("TextLabel")
termsTitle.Size = UDim2.new(1, -40, 0, 60)
termsTitle.Position = UDim2.new(0, 20, 0, 20)
termsTitle.BackgroundTransparency = 1
termsTitle.Text = "⚠️ LEGAL NOTICE ⚠️"
termsTitle.TextColor3 = Color3.fromRGB(255, 50, 50)
termsTitle.TextSize = 28
termsTitle.TextScaled = true
termsTitle.Font = Enum.Font.GothamBold
termsTitle.Parent = termsFrame
-- Scrolling text frame
local termsScrollFrame = Instance.new("ScrollingFrame")
termsScrollFrame.Size = UDim2.new(1, -40, 0, 220)
termsScrollFrame.Position = UDim2.new(0, 20, 0, 90)
termsScrollFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 35)
termsScrollFrame.BackgroundTransparency = 0.3
termsScrollFrame.BorderSizePixel = 1
termsScrollFrame.BorderColor3 = Color3.fromRGB(255, 50, 50)
termsScrollFrame.ScrollBarThickness = 6
termsScrollFrame.ScrollBarImageColor3 = Color3.fromRGB(255, 50, 50)
termsScrollFrame.Parent = termsFrame
local termsText = Instance.new("TextLabel")
termsText.Size = UDim2.new(1, -20, 0, 350)
termsText.Position = UDim2.new(0, 10, 0, 5)
termsText.BackgroundTransparency = 1
termsText.Text = [[
🔴 COPYRIGHT INFRINGEMENT WARNING 🔴
This script is the exclusive property of TeamSploit2026.
By proceeding, you agree to the following terms:
1. This script is for personal use ONLY
2. Copying, redistributing, or claiming this script as your own is STRICTLY PROHIBITED
3. Any unauthorized use will be tracked and reported
4. Your Roblox User ID is being logged for security purposes
⚠️ VIOLATORS WILL BE:
- Banned from all TeamSploit2026 services
- Reported to Roblox administration
- Subject to legal action for copyright infringement
- Publicly exposed as script thieves
📡 Your activity is being monitored by our security systems
🔒 All actions are being recorded and time-stamped
BY CLICKING "I AGREE" YOU ACKNOWLEDGE THAT:
- You have read and understand these terms
- You accept full responsibility for your actions
- You consent to being tracked while using this script
- You understand that violations will result in consequences
This agreement is legally binding and enforceable under international copyright law.
© 2026 TeamSploit2026 - All Rights Reserved
]]
termsText.TextColor3 = Color3.fromRGB(200, 200, 255)
termsText.TextSize = 14
termsText.TextXAlignment = Enum.TextXAlignment.Left
termsText.TextYAlignment = Enum.TextYAlignment.Top
termsText.Font = Enum.Font.GothamSemibold
termsText.Parent = termsScrollFrame
termsScrollFrame.CanvasSize = UDim2.new(0, 0, 0, termsText.Size.Y.Offset + 10)
-- I Agree Button
local agreeButton = Instance.new("TextButton")
agreeButton.Size = UDim2.new(0, 200, 0, 50)
agreeButton.Position = UDim2.new(0.5, -100, 1, -70)
agreeButton.BackgroundColor3 = Color3.fromRGB(0, 200, 50)
agreeButton.BackgroundTransparency = 0.2
agreeButton.BorderSizePixel = 2
agreeButton.BorderColor3 = Color3.fromRGB(0, 255, 100)
agreeButton.Text = "✅ I AGREE"
agreeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
agreeButton.TextSize = 20
agreeButton.Font = Enum.Font.GothamBold
agreeButton.Parent = termsFrame
-- Hover effect for agree button
agreeButton.MouseEnter:Connect(function()
TweenService:Create(agreeButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.05}):Play()
end)
agreeButton.MouseLeave:Connect(function()
TweenService:Create(agreeButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.2}):Play()
end)
-- Fake Loading Bar (to scare them more)
local loadingBarBg = Instance.new("Frame")
loadingBarBg.Size = UDim2.new(0.8, 0, 0, 6)
loadingBarBg.Position = UDim2.new(0.1, 0, 1, -30)
loadingBarBg.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
loadingBarBg.BackgroundTransparency = 0.5
loadingBarBg.BorderSizePixel = 0
loadingBarBg.Parent = termsFrame
local loadingBar = Instance.new("Frame")
loadingBar.Size = UDim2.new(0, 0, 1, 0)
loadingBar.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
loadingBar.BorderSizePixel = 0
loadingBar.Parent = loadingBarBg
-- Animate loading bar
local function animateLoadingBar()
local progress = 0
while progress 0 then
callback(num)
else
textBox.Text = placeholder
end
end
end)
return textBox
end
-- Create Toggles
createSwitch("Toggle Simple Fly", false, function(state)
flyEnabled = state
if flyEnabled then
-- Simple Fly Script
local flying = false
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000)
local function startFly()
if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end
flying = true
bodyVelocity.Parent = player.Character.HumanoidRootPart
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
-- Movement detection
local connection
connection = game:GetService("RunService").Heartbeat:Connect(function()
if not flying or not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then
if connection then connection:Disconnect() end
return
end
local moveVector = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveVector = moveVector + Vector3.new(0, 0, -1) end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveVector = moveVector + Vector3.new(0, 0, 1) end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveVector = moveVector + Vector3.new(-1, 0, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveVector = moveVector + Vector3.new(1, 0, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveVector = moveVector + Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveVector = moveVector + Vector3.new(0, -1, 0) end
if moveVector.Magnitude > 0 then
moveVector = moveVector.Unit * 50
bodyVelocity.Velocity = moveVector
else
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
end
end)
end
local function stopFly()
flying = false
if bodyVelocity.Parent then
bodyVelocity.Parent = nil
end
end
flyConnection = game:GetService("RunService").Heartbeat:Connect(function()
if flyEnabled then
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
if not bodyVelocity.Parent then
startFly()
end
end
else
stopFly()
end
end)
else
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
-- Clean up bodyVelocity
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local bv = player.Character.HumanoidRootPart:FindFirstChild("BodyVelocity")
if bv then bv:Destroy() end
end
end
end)
createSwitch("Toggle Noclip", false, function(state)
noclipEnabled = state
if noclipEnabled then
noclipConnection = game:GetService("RunService").Stepped:Connect(function()
if noclipEnabled and player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
else
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
if player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end
end)
createSwitch("Toggle Inf Jump", false, function(state)
infJumpEnabled = state
if infJumpEnabled then
infJumpConnection = game:GetService("UserInputService").JumpRequest:Connect(function()
if infJumpEnabled and player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
else
if infJumpConnection then
infJumpConnection:Disconnect()
infJumpConnection = nil
end
end
end)
-- Premium Finish Toggle (RED)
createSwitch("🔴 Finish (Premium Only)", false, function(state)
finishEnabled = state
if finishEnabled then
-- This would be your finish script
print("FINISH ACTIVATED - Premium feature")
-- Add finish code here
else
print("FINISH DEACTIVATED")
end
end, true) -- true = red mode
-- Walk Speed Text Box
local walkSpeedBox = createTextBox("Walk Speed", "16", function(value)
if player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.WalkSpeed = value
end
end)
-- ============================================================
-- LOG OUT SECTION
-- ============================================================
local logoutSection = Instance.new("Frame")
logoutSection.Size = UDim2.new(1, 0, 0, 80)
logoutSection.BackgroundColor3 = Color3.fromRGB(30, 20, 40)
logoutSection.BackgroundTransparency = 0.2
logoutSection.BorderSizePixel = 1
logoutSection.BorderColor3 = Color3.fromRGB(255, 100, 100)
logoutSection.Parent = contentFrame
local logoutHeader = Instance.new("TextLabel")
logoutHeader.Size = UDim2.new(1, -20, 0, 20)
logoutHeader.Position = UDim2.new(0, 10, 0, 5)
logoutHeader.BackgroundTransparency = 1
logoutHeader.Text = "🚪 LOG OUT"
logoutHeader.TextColor3 = Color3.fromRGB(255, 100, 100)
logoutHeader.TextSize = 16
logoutHeader.TextXAlignment = Enum.TextXAlignment.Left
logoutHeader.Font = Enum.Font.GothamBold
logoutHeader.Parent = logoutSection
local logoutMessage = Instance.new("TextLabel")
logoutMessage.Size = UDim2.new(1, -20, 0, 35)
logoutMessage.Position = UDim2.new(0, 10, 0, 25)
logoutMessage.BackgroundTransparency = 1
logoutMessage.Text = "Thanks for using Sploit HUB! If you're a moderator, thanks for accepting the script. If you're a user, thanks for helping us grow our audience!"
logoutMessage.TextColor3 = Color3.fromRGB(180, 180, 220)
logoutMessage.TextSize = 11
logoutMessage.TextXAlignment = Enum.TextXAlignment.Left
logoutMessage.TextYAlignment = Enum.TextYAlignment.Top
logoutMessage.Font = Enum.Font.Gotham
logoutMessage.TextWrapped = true
logoutMessage.Parent = logoutSection
local logoutButton = Instance.new("TextButton")
logoutButton.Size = UDim2.new(0, 120, 0, 30)
logoutButton.Position = UDim2.new(1, -130, 0, 45)
logoutButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
logoutButton.BackgroundTransparency = 0.2
logoutButton.BorderSizePixel = 2
logoutButton.BorderColor3 = Color3.fromRGB(255, 50, 50)
logoutButton.Text = "🚪 LOG OUT"
logoutButton.TextColor3 = Color3.fromRGB(255, 255, 255)
logoutButton.TextSize = 14
logoutButton.Font = Enum.Font.GothamBold
logoutButton.Parent = logoutSection
-- Hover effect for logout button
logoutButton.MouseEnter:Connect(function()
TweenService:Create(logoutButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.05}):Play()
end)
logoutButton.MouseLeave:Connect(function()
TweenService:Create(logoutButton, TweenInfo.new(0.2), {BackgroundTransparency = 0.2}):Play()
end)
-- Logout functionality
logoutButton.MouseButton1Click:Connect(function()
-- Create fade effect
TweenService:Create(mainFrame, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
TweenService:Create(contentFrame, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
TweenService:Create(titleBar, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
task.wait(0.5)
screenGui:Destroy()
end)
-- Discord link label
local discordLabel = Instance.new("TextLabel")
discordLabel.Size = UDim2.new(1, -20, 0, 25)
discordLabel.BackgroundTransparency = 1
discordLabel.Text = "💬 Join Discord: discord.gg/teamsploit"
discordLabel.TextColor3 = Color3.fromRGB(100, 200, 255)
discordLabel.TextSize = 13
discordLabel.TextXAlignment = Enum.TextXAlignment.Center
discordLabel.Font = Enum.Font.GothamSemibold
discordLabel.Parent = contentFrame
-- Update canvas size
local function updateCanvasSize()
local totalHeight = 0
for _, child in pairs(contentFrame:GetChildren()) do
if child:IsA("Frame") or child:IsA("TextLabel") then
totalHeight = totalHeight + child.Size.Y.Offset + 10
end
end
-- Set frame height based on content
local newHeight = math.max(380, totalHeight + 60)
mainFrame.Size = UDim2.new(0, 350, 0, newHeight)
end
-- Wait for all elements to load
task.wait(0.1)
updateCanvasSize()
-- Dragging functionality for main frame
local dragging = false
local dragInput
local dragStart
local startPos
local function updatePosition(input)
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
titleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch 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)
titleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
updatePosition(input)
end
end)
-- Close button functionality
closeButton.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
-- Minimize button functionality
local minimized = false
local originalSize = mainFrame.Size
minimizeButton.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
mainFrame.Size = UDim2.new(0, 350, 0, 40)
contentFrame.Visible = false
minimizeButton.Text = "+"
else
mainFrame.Size = originalSize
contentFrame.Visible = true
minimizeButton.Text = "−"
end
end)
-- ============================================================
-- AGREEMENT BUTTON LOGIC
-- ============================================================
agreeButton.MouseButton1Click:Connect(function()
if not agreed then
agreed = true
-- Flash effect
TweenService:Create(termsFrame, TweenInfo.new(0.3), {BackgroundTransparency = 0.5}):Play()
task.wait(0.3)
-- Hide terms and show main GUI
termsFrame.Visible = false
mainFrame.Visible = true
-- Play a little animation for main frame
mainFrame.Position = UDim2.new(0.5, -175, 0.5, -150)
TweenService:Create(mainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Bounce), {Position = UDim2.new(0.5, -175, 0.5, -140)}):Play()
-- Log agreement (fake tracking)
print("User agreed to terms - UserID: " .. player.UserId)
print("Time: " .. os.date("%Y-%m-%d %H:%M:%S"))
print("⚠️ This session is being monitored ⚠️")
else
-- If they already agreed but somehow clicked again
termsFrame.Visible = false
mainFrame.Visible = true
end
end)
-- ============================================================
-- ANTI-AFK
-- ============================================================
local function antiAFK()
local vu = game:GetService("VirtualUser")
game:GetService("Players").LocalPlayer.Idled:Connect(function()
vu:Button2Down(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
task.wait(1)
vu:Button2Up(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
end)
end
antiAFK()
print("Sploit HUB loaded successfully!")
print("User: " .. player.Name .. " | UserID: " .. player.UserId)
print("⚠️ This script is property of TeamSploit2026 ⚠️")