local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = [Link]
local character = [Link] or [Link]:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
local savedPosition = nil
local stealing = false
local speedBoosted = false
local savePositionActive = false
-- Helper function to create UI elements
local function create(className, props)
local obj = [Link](className)
for k,v in pairs(props) do
if k == "Parent" then
[Link] = v
elseif k == "Children" then
for _, childProps in ipairs(v) do
create([Link], childProps)
end
else
obj[k] = v
end
end
return obj
end
-- Create ScreenGui
local screenGui = create("ScreenGui", {
Parent = player:WaitForChild("PlayerGui"),
Name = "GGHubStealMode",
ResetOnSpawn = false,
})
-- Main Frame
local frame = create("Frame", {
Parent = screenGui,
Size = [Link](0, 220, 0, 160),
Position = [Link](0.5, -110, 0.5, -80),
BackgroundColor3 = [Link](30, 30, 30),
BorderSizePixel = 0,
ClipsDescendants = true,
})
-- Rounded corners for frame
local frameUICorner = create("UICorner", {
Parent = frame,
CornerRadius = [Link](0, 12),
})
-- Draggable functionality
local dragging = false
local dragInput, dragStart, startPos
local function update(input)
local delta = [Link] - dragStart
[Link] = [Link]([Link], [Link] + delta.X,
[Link], [Link] + delta.Y)
end
[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
dragging = true
dragStart = [Link]
startPos = [Link]
[Link]:Connect(function()
if [Link] == [Link] then
dragging = false
end
end)
end
end)
[Link]:Connect(function(input)
if [Link] == [Link] then
dragInput = input
end
end)
[Link]:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
-- Title Label
local titleLabel = create("TextLabel", {
Parent = frame,
Size = [Link](1, 0, 0, 30),
BackgroundTransparency = 1,
Text = "🧠 GG HUB - Steal Mode",
TextColor3 = [Link](1,1,1),
Font = [Link],
TextSize = 18,
TextXAlignment = [Link],
Padding = [Link](0, 10),
})
-- Container for toggles
local toggles = {}
local function createToggle(name, positionY, callback)
local container = create("Frame", {
Parent = frame,
Size = [Link](1, -20, 0, 40),
Position = [Link](0, 10, 0, positionY),
BackgroundTransparency = 1,
})
local label = create("TextLabel", {
Parent = container,
Size = [Link](0.7, 0, 1, 0),
BackgroundTransparency = 1,
Text = name,
TextColor3 = [Link](1,1,1),
Font = [Link],
TextSize = 16,
TextXAlignment = [Link],
})
local toggleFrame = create("Frame", {
Parent = container,
Size = [Link](0, 50, 0, 24),
Position = [Link](1, -50, 0.5, -12),
BackgroundColor3 = [Link](70, 70, 70),
BorderSizePixel = 0,
})
local toggleUICorner = create("UICorner", {
Parent = toggleFrame,
CornerRadius = [Link](0, 12),
})
local knob = create("Frame", {
Parent = toggleFrame,
Size = [Link](0, 20, 0, 20),
Position = [Link](0, 2, 0, 2),
BackgroundColor3 = [Link](1,1,1),
BorderSizePixel = 0,
})
local knobUICorner = create("UICorner", {
Parent = knob,
CornerRadius = [Link](0, 10),
})
local toggled = false
local function setToggle(state)
toggled = state
if toggled then
knob:TweenPosition([Link](1, -22, 0, 2),
[Link], [Link], 0.2, true)
else
knob:TweenPosition([Link](0, 2, 0, 2),
[Link], [Link], 0.2, true)
end
callback(toggled)
end
[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
setToggle(not toggled)
end
end)
return setToggle
end
-- Speed Boost toggle callback
local function onSpeedBoostToggle(state)
speedBoosted = state
if speedBoosted then
[Link] = 38
else
[Link] = 18
end
end
-- Save Position toggle callback
local function onSavePositionToggle(state)
savePositionActive = state
if savePositionActive then
if rootPart then
savedPosition = [Link]
end
else
savedPosition = nil
end
end
-- Steal toggle callback
local function onStealToggle(state)
if state then
if not savedPosition then
-- No saved position, disable toggle immediately
stealToggle(false)
return
end
if stealing then return end
stealing = true
-- Disable collisions for all character parts
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
[Link] = false
end
end
-- Anchor root part and float 15 studs up
[Link] = true
local targetPos = savedPosition + [Link](0, 15, 0)
local reached = false
local connection
connection = [Link]:Connect(function()
if not stealing then
connection:Disconnect()
return
end
local currentPos = [Link]
local newPos = currentPos:Lerp(targetPos, 0.02)
[Link] = [Link](newPos, newPos +
[Link])
if (newPos - targetPos).Magnitude < 0.5 then
reached = true
connection:Disconnect()
-- Unanchor and restore collisions
[Link] = false
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
[Link] = true
end
end
stealing = false
stealToggle(false)
end
end)
else
if stealing then
stealing = false
[Link] = false
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
[Link] = true
end
end
end
end
end
local speedToggle = createToggle("Speed Boost", 40, onSpeedBoostToggle)
local saveToggle = createToggle("Save Position", 80, onSavePositionToggle)
local stealToggle = createToggle("Steal", 120, onStealToggle)