local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local character, humanoid
local function setupCharacter(char)
character = char
humanoid = char:WaitForChild("Humanoid")
end
if player.Character then
setupCharacter(player.Character)
end
player.CharacterAdded:Connect(setupCharacter)
local gui = Instance.new("ScreenGui")
gui.Name = "Game_HUB"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0,220,0,300)
frame.Position = UDim2.new(0,20,0.3,0)
frame.BackgroundColor3 = Color3.fromRGB(20,20,20)
frame.BorderColor3 = Color3.fromRGB(255,255,255)
frame.Active = true
frame.Draggable = true
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.new(1,0,0,30)
title.BackgroundColor3 = Color3.fromRGB(0,0,0)
title.BorderSizePixel = 1
title.BorderColor3 = Color3.fromRGB(255,255,255)
title.Text = ""
title.Font = Enum.Font.ArialBold
title.TextSize = 18
local gradientText = Instance.new("TextLabel", title)
gradientText.Size = UDim2.new(1,0,1,0)
gradientText.BackgroundTransparency = 1
gradientText.Text = "Ink Game"
gradientText.TextColor3 = Color3.new(1,1,1)
gradientText.Font = Enum.Font.ArialBold
gradientText.TextSize = 18
local gradient = Instance.new("UIGradient", gradientText)
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255,255,255)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255,255,0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255,255,255))
}
task.spawn(function()
while true do
for i = -1, 1, 0.02 do
gradient.Offset = Vector2.new(i, 0)
task.wait(0.01)
end
end
end)
local minimizeBtn = Instance.new("TextButton", title)
minimizeBtn.Size = UDim2.new(0,25,1,0)
minimizeBtn.Position = UDim2.new(1,-50,0,0)
minimizeBtn.Text = "-"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40,40,40)
minimizeBtn.TextColor3 = Color3.fromRGB(255,255,255)
minimizeBtn.BorderSizePixel = 0
local minimized = false
minimizeBtn.MouseButton1Click:Connect(function()
minimized = not minimized
for _, obj in ipairs(frame:GetChildren()) do
if obj ~= title then
obj.Visible = not minimized
end
end
frame.Size = minimized and UDim2.new(0,220,0,30) or UDim2.new(0,220,0,300)
end)
local closeBtn = Instance.new("TextButton", title)
closeBtn.Size = UDim2.new(0,25,1,0)
closeBtn.Position = UDim2.new(1,-25,0,0)
closeBtn.Text = "X"
closeBtn.BackgroundColor3 = Color3.fromRGB(60,0,0)
closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
closeBtn.BorderSizePixel = 0
closeBtn.MouseButton1Click:Connect(function()
gui:Destroy()
end)
local function button(text,y)
local b = Instance.new("TextButton", frame)
b.Size = UDim2.new(1,-10,0,30)
b.Position = UDim2.new(0,5,0,y)
b.BackgroundColor3 = Color3.fromRGB(40,40,40)
b.BorderColor3 = Color3.fromRGB(200,200,200)
b.TextColor3 = Color3.fromRGB(255,255,255)
b.Font = Enum.Font.Arial
b.TextSize = 16
b.Text = text
return b
end
local speedBtn = button("Speed",40)
local jumpBtn = button("Inf Jump",75)
local deleteBtn = button("Click Delete",110)
local tpBtn = button("Click TP",145)
local espBtn = button("ESP",180)
local function setText(btn, base, state)
if state then
btn.Text = base .. " [ON]"
else
btn.Text = base .. " [OFF]"
end
end
setText(speedBtn,"Speed",false)
setText(jumpBtn,"Inf Jump",false)
setText(deleteBtn,"Click Delete",false)
setText(tpBtn,"Click TP",false)
setText(espBtn,"ESP",false)
local walkSpeed = 16
local infJump = false
local deleteMode = false
local clickTP = false
local espEnabled = false
local speedConnection
local speedEnabled = false
local function applySpeed()
if humanoid then
if speedEnabled then
humanoid.WalkSpeed = walkSpeed
else
humanoid.WalkSpeed = 16
end
end
end
player.CharacterAdded:Connect(function(char)
setupCharacter(char)
task.wait(1)
applySpeed()
end)
speedBtn.MouseButton1Click:Connect(function()
speedEnabled = not speedEnabled
applySpeed()
setText(speedBtn,"Speed", speedEnabled)
end)
task.spawn(function()
while true do
task.wait(0,1)
applySpeed()
end
end)
local function createSlider(min, max, default, posY)
local container = Instance.new("Frame", frame)
container.Size = UDim2.new(1,-10,0,60)
container.Position = UDim2.new(0,5,0,posY)
container.BackgroundColor3 = Color3.fromRGB(30,30,30)
local textLabel = Instance.new("TextLabel", container)
textLabel.Size = UDim2.new(0.5,0,0,20)
textLabel.Text = "Speed:"
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.new(1,1,1)
textLabel.Font = Enum.Font.ArialBold
textLabel.TextSize = 14
local input = Instance.new("TextBox", container)
input.Size = UDim2.new(0.5,-5,0,20)
input.Position = UDim2.new(0.5,5,0,0)
input.Text = tostring(default)
input.BackgroundColor3 = Color3.fromRGB(20,20,20)
input.TextColor3 = Color3.new(1,1,1)
local bar = Instance.new("Frame", container)
bar.Size = UDim2.new(1,-20,0,8)
bar.Position = UDim2.new(0,10,0,35)
bar.BackgroundColor3 = Color3.fromRGB(80,80,80)
local knob = Instance.new("Frame", bar)
knob.Size = UDim2.new(0,10,1,4)
knob.BackgroundColor3 = Color3.new(1,1,1)
local value = default
local dragging = false
local function setValue(val)
val = math.clamp(val, min, max)
value = val
walkSpeed = val
applySpeed()
input.Text = tostring(val)
local percent = (val-min)/(max-min)
knob.Position = UDim2.new(percent,-5,-0.2,0)
end
setValue(value)
input.FocusLost:Connect(function(enter)
if enter then
local num = tonumber(input.Text)
if num then
setValue(num)
else
input.Text = tostring(value)
end
end
end)
local function update(x)
local percent = math.clamp((x-bar.AbsolutePosition.X)/bar.AbsoluteSize.X,0,1)
local val = math.floor(min+(max-min)*percent)
setValue(val)
end
bar.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
frame.Draggable = false
update(i.Position.X)
end
end)
UIS.InputChanged:Connect(function(i)
if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then
update(i.Position.X)
end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
frame.Draggable = true
end
end)
end
createSlider(0,500,16,220)
UIS.JumpRequest:Connect(function()
if infJump and humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
jumpBtn.MouseButton1Click:Connect(function()
infJump = not infJump
setText(jumpBtn,"Inf Jump",infJump)
end)
deleteBtn.MouseButton1Click:Connect(function()
deleteMode = not deleteMode
setText(deleteBtn,"Click Delete",deleteMode)
end)
mouse.Button1Down:Connect(function()
if deleteMode then
local target = mouse.Target
if target and not target:IsDescendantOf(character) then
target:Destroy()
end
end
end)
tpBtn.MouseButton1Click:Connect(function()
clickTP = not clickTP
setText(tpBtn,"Click TP",clickTP)
end)
mouse.Button1Down:Connect(function()
if clickTP and character and character:FindFirstChild("HumanoidRootPart") then
character:MoveTo(mouse.Hit.Position + Vector3.new(0,3,0))
end
end)
local espFolder = Instance.new("Folder", gui)
local espTable = {}
local espConnections = {}
local function createESP(plr)
if plr == player then return end
if espTable[plr] then return end
local billboard = Instance.new("BillboardGui", espFolder)
billboard.Size = UDim2.new(0,100,0,40)
billboard.AlwaysOnTop = true
local label = Instance.new("TextLabel", billboard)
label.Size = UDim2.new(1,0,1,0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.new(1,1,1)
label.TextStrokeTransparency = 0
label.Text = plr.Name
label.TextScaled = true
local highlight = Instance.new("Highlight")
highlight.FillTransparency = 1
highlight.OutlineColor = Color3.new(1,1,1)
highlight.Parent = espFolder
local function attach()
if plr.Character then
if plr.Character:FindFirstChild("Head") then
billboard.Adornee = plr.Character.Head
end
highlight.Adornee = plr.Character
end
end
attach()
plr.CharacterAdded:Connect(function()
task.wait(1)
attach()
end)
espTable[plr] = {billboard = billboard, highlight = highlight}
end
local function removeESP(plr)
if espTable[plr] then
espTable[plr].billboard:Destroy()
espTable[plr].highlight:Destroy()
espTable[plr] = nil
end
end
espBtn.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
setText(espBtn,"ESP",espEnabled)
if espEnabled then
for _, plr in ipairs(Players:GetPlayers()) do
createESP(plr)
end
-- guardar conexiones
espConnections.added = Players.PlayerAdded:Connect(createESP)
espConnections.removing = Players.PlayerRemoving:Connect(removeESP)
else
-- limpiar ESP visual
espFolder:ClearAllChildren()
espTable = {}
-- desconectar eventos
for _, conn in pairs(espConnections) do
if conn then conn:Disconnect() end
end
espConnections = {}
end
end)