
Key Required
Pr-historia melhor script
Lua Script•1376 lines (61468 chars)
-- =========================================================
-- 🎃 T88 HUB v84.1 - HALLOWEEN EDITION (SEM KEY) 🎃
-- Auto Cristal + Abóbora + Beber + Comer + ESP + Attack
-- =========================================================
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local VirtualUser = game:GetService("VirtualUser")
local LP = Players.LocalPlayer
local LINK_DO_DISCORD = "https://discord.gg/9xAJDuR8z"
task.spawn(function()
while task.wait(300) do
pcall(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end)
end
end)
LP.Idled:Connect(function()
pcall(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end)
end)
local function iniciarHub()
local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
local Config = {
espPlayer = false, espVida = true, espDistancia = false, raioEsp = 300,
autoAttack = false, raioAttack = 10,
intervaloAtaque = 1.0,
anguloLimite = 60,
autoCristal = false, autoAbobora = false, autoBeber = false, autoComer = false,
qualidadeMinima = 0.7,
priorizarHotsprings = true,
metaComer = 0.7,
metaBeber = 0.95,
velocidadeVoo = 200, raioRegiao = 900, tempoMaxRegiao = 12,
prioridadeComerBeber = 0.6,
}
local totalAbobora = 0
local totalColetado = 0
local totalBebeu = 0
local totalComeu = 0
local indiceRegiaoAbobora = 1
local indiceRegiaoAtual = 1
local ultimaVarredura = 0
local ocupado = false
local quemTaOcupado = nil
local tempoLock = 0
local lockToken = 0
local function pegarLock(quem)
if ocupado then
if tick() - tempoLock > 25 then
ocupado = false; quemTaOcupado = nil; lockToken = lockToken + 1
else return false end
end
ocupado = true; quemTaOcupado = quem; tempoLock = tick(); lockToken = lockToken + 1
print("[T88] 🔒 " .. quem)
return lockToken
end
local function liberarLock(token)
if token and token ~= lockToken then return end
if quemTaOcupado then print("[T88] 🔓 " .. quemTaOcupado) end
ocupado = false; quemTaOcupado = nil; tempoLock = 0
end
local function tenhoLock(token) return ocupado and token == lockToken end
local function forcarLiberacao() ocupado = false; quemTaOcupado = nil; lockToken = lockToken + 1 end
local function getHRP()
local char = LP.Character
return char and char:FindFirstChild("HumanoidRootPart")
end
local attackRemote = nil
task.spawn(function()
local remotes = ReplicatedStorage:WaitForChild("Remotes", 10)
if remotes then
local combat = remotes:WaitForChild("Combat", 10)
if combat then attackRemote = combat:WaitForChild("Attack", 10) end
end
end)
local TryConsume = nil
task.spawn(function()
pcall(function()
local remotes = ReplicatedStorage:WaitForChild("Remotes", 10)
if remotes then
local controls = remotes:WaitForChild("Controls", 10)
if controls then TryConsume = controls:WaitForChild("TryConsume", 10) end
end
end)
end)
local function acharBotaoAtaque()
for _, g in ipairs({LP.PlayerGui.TouchGui, LP.PlayerGui.Touchscreen}) do
if g then
for _, obj in ipairs(g:GetDescendants()) do
if obj:IsA("ImageButton") then
local nome = string.lower(obj.Name)
if string.find(nome, "attack") or string.find(nome, "punch")
or string.find(nome, "claw") or string.find(nome, "bite")
or string.find(nome, "strike") then return obj end
end
end
end
end
return nil
end
local botaoAtaque = acharBotaoAtaque()
local function acharBarra(nome)
local hud = LP.PlayerGui:FindFirstChild("Hud")
if not hud then return nil end
local bottom = hud:FindFirstChild("BottomContainer")
local statsF = bottom and bottom:FindFirstChild("Stats")
local content = statsF and statsF:FindFirstChild("StatsContent")
local botBox = content and content:FindFirstChild("BotBox")
if not botBox then return nil end
return botBox:FindFirstChild(nome)
end
local function lerPorcentagem(barra)
if not barra then return nil end
local bar = barra:FindFirstChild("Bar")
if bar and bar:IsA("Frame") then return bar.Size.X.Scale end
for _, filho in ipairs(barra:GetChildren()) do
if filho:IsA("Frame") then return filho.Size.X.Scale end
end
return nil
end
local function urgenciaComerBeber()
if Config.autoBeber then
local sede = lerPorcentagem(acharBarra("Water"))
if sede and sede < Config.prioridadeComerBeber then return "sede" end
end
if Config.autoComer then
local fome = lerPorcentagem(acharBarra("Food"))
if fome and fome < Config.prioridadeComerBeber then return "fome" end
end
return nil
end
local function getPos(obj)
if obj:IsA("BasePart") then return obj.Position end
if obj:IsA("Model") then
local ok, p = pcall(function() return obj:GetPivot().Position end)
if ok then return p end
end
local p = obj:FindFirstChildWhichIsA("BasePart", true)
if p then return p.Position end
return nil
end
-- 🛠️ Desencalha o dino (SÓ IMPULSO FÍSICO, zero teleporte)
local function desencalhar(posAlvo, bv)
local h = getHRP()
if not h then return end
if bv then
bv.Velocity = Vector3.new(0, 500, 0)
task.wait(0.6)
end
local h2 = getHRP()
if h2 and h2.Position.Y < posAlvo.Y - 5 then
if bv then
local dirXZ = Vector3.new(
posAlvo.X - h2.Position.X, 0,
posAlvo.Z - h2.Position.Z
)
if dirXZ.Magnitude > 0.1 then
dirXZ = dirXZ.Unit
bv.Velocity = dirXZ * 50 + Vector3.new(0, 600, 0)
else
bv.Velocity = Vector3.new(0, 600, 0)
end
task.wait(0.5)
end
end
end
local function voarAtePerto(posAlvo, token)
local DISTANCIA = 3
local MAX_TENTATIVAS = 5
local TEMPO_POR_TENTATIVA = 15
for tentativa = 1, MAX_TENTATIVAS do
if token and not tenhoLock(token) then return false end
local hrp = getHRP()
if not hrp then return false end
if (hrp.Position - posAlvo).Magnitude <= DISTANCIA then return true end
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Parent = hrp
local inicio = tick()
local ultimaPos = hrp.Position
local tempoParado = 0
while tick() - inicio < TEMPO_POR_TENTATIVA do
local h = getHRP()
if not h then break end
if token and not tenhoLock(token) then bv:Destroy(); return false end
local dist = (h.Position - posAlvo).Magnitude
if dist <= DISTANCIA then
bv:Destroy()
pcall(function()
h.AssemblyLinearVelocity = Vector3.zero
h.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.3)
return true
end
local moveu = (h.Position - ultimaPos).Magnitude
if moveu < 0.5 then tempoParado = tempoParado + 0.03 else tempoParado = 0 end
ultimaPos = h.Position
if tempoParado > 2 then
tempoParado = 0
desencalhar(posAlvo, bv)
task.wait(0.5)
end
local dir = (posAlvo - h.Position).Unit
if dist < 50 then bv.Velocity = dir * 15
else bv.Velocity = dir * Config.velocidadeVoo end
task.wait(0.03)
end
bv:Destroy()
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.5)
end
return false
end
local function voarSemLock(posAlvo)
local hrp = getHRP()
if not hrp then return end
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Parent = hrp
local inicio = tick()
local ultimaPos = hrp.Position
local tempoParado = 0
while tick() - inicio < 15 do
local h = getHRP()
if not h then break end
local dist = (h.Position - posAlvo).Magnitude
if dist <= 10 then break end
local moveu = (h.Position - ultimaPos).Magnitude
if moveu < 0.5 then tempoParado = tempoParado + 0.03 else tempoParado = 0 end
ultimaPos = h.Position
if tempoParado > 2 then
tempoParado = 0
desencalhar(posAlvo, bv)
task.wait(0.5)
end
local dir = (posAlvo - h.Position).Unit
if dist < 50 then bv.Velocity = dir * 20
else bv.Velocity = dir * Config.velocidadeVoo end
task.wait(0.03)
end
bv:Destroy()
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
end
local function voarAteComida(posComida, token)
local OFFSET_Y = 6
local RAIO_ACEITO = 6
for tentativa = 1, 5 do
if token and not tenhoLock(token) then return false end
local hrp = getHRP()
if not hrp then return false end
if (hrp.Position - posComida).Magnitude <= RAIO_ACEITO then return true end
local alvoVoo = posComida + Vector3.new(0, OFFSET_Y, 0)
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bv.Parent = hrp
local inicio = tick()
local ultimaPos = hrp.Position
local tempoParado = 0
while tick() - inicio < 10 do
local h = getHRP()
if not h then break end
if token and not tenhoLock(token) then bv:Destroy(); return false end
local distAtual = (h.Position - posComida).Magnitude
if distAtual <= RAIO_ACEITO then
bv:Destroy()
pcall(function()
h.AssemblyLinearVelocity = Vector3.zero
h.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.3)
return true
end
local moveu = (h.Position - ultimaPos).Magnitude
if moveu < 0.5 then tempoParado = tempoParado + 0.03 else tempoParado = 0 end
ultimaPos = h.Position
if tempoParado > 2 then
tempoParado = 0
desencalhar(posComida, bv)
task.wait(0.4)
end
if h.Position.Y < posComida.Y - 2 then
local dirXZ = Vector3.new(posComida.X - h.Position.X, 0, posComida.Z - h.Position.Z)
if dirXZ.Magnitude > 0.1 then
dirXZ = dirXZ.Unit
bv.Velocity = dirXZ * 40 + Vector3.new(0, 80, 0)
else
bv.Velocity = Vector3.new(0, 80, 0)
end
else
local dir = (alvoVoo - h.Position).Unit
if distAtual < 15 then bv.Velocity = dir * 12
else bv.Velocity = dir * Config.velocidadeVoo end
end
task.wait(0.03)
end
bv:Destroy()
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.3)
end
return false
end
-- AUTO ATTACK
local ultimaMordida = 0
local alvoAtual = nil
local function acharAlvo()
local hrp = getHRP()
if not hrp then return nil end
local melhorAlvo, menorDist = nil, Config.raioAttack
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LP and plr.Character then
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
local aHrp = plr.Character:FindFirstChild("HumanoidRootPart")
if hum and hum.Health > 0 and aHrp then
local d = (aHrp.Position - hrp.Position).Magnitude
if d < menorDist then menorDist = d; melhorAlvo = plr end
end
end
end
return melhorAlvo
end
local function calcularAngulo(posAlvo)
local hrp = getHRP()
if not hrp then return 180 end
local direcaoAtual = hrp.CFrame.LookVector
local direcaoAlvo = (posAlvo - hrp.Position)
if direcaoAlvo.Magnitude < 0.1 then return 0 end
direcaoAlvo = direcaoAlvo.Unit
local dot = direcaoAtual:Dot(direcaoAlvo)
dot = math.clamp(dot, -1, 1)
return math.deg(math.acos(dot))
end
local virando = false
local function virarRapido(posAlvo)
if virando then return end
virando = true
task.spawn(function()
local char = LP.Character
if not char then virando = false; return end
local hrp = char:FindFirstChild("HumanoidRootPart")
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not hrp or not humanoid then virando = false; return end
pcall(function() humanoid.AutoRotate = false end)
local alvoVec = Vector3.new(posAlvo.X, hrp.Position.Y, posAlvo.Z)
if (alvoVec - hrp.Position).Magnitude < 0.5 then
pcall(function() humanoid.AutoRotate = true end)
virando = false
return
end
local cframeAlvo = CFrame.new(hrp.Position, alvoVec)
local cframeOriginal = hrp.CFrame
for i = 1, 4 do
pcall(function()
hrp.CFrame = cframeOriginal:Lerp(cframeAlvo, i / 4)
end)
task.wait(0.02)
end
pcall(function() humanoid.AutoRotate = true end)
virando = false
end)
end
local function morder()
if attackRemote then
pcall(function() attackRemote:FireServer() end)
pcall(function() attackRemote:FireServer() end)
end
if botaoAtaque then
pcall(function()
local pos = botaoAtaque.AbsolutePosition + botaoAtaque.AbsoluteSize / 2
VirtualInputManager:SendMouseButtonEvent(pos.X, pos.Y, 0, true, game, 0)
task.wait(0.03)
VirtualInputManager:SendMouseButtonEvent(pos.X, pos.Y, 0, false, game, 0)
end)
end
pcall(function()
local char = LP.Character
if char then
local tool = char:FindFirstChildOfClass("Tool")
if tool then tool:Activate() end
end
end)
end
-- BOTÃO FLUTUANTE 🎃
local gui = Instance.new("ScreenGui")
gui.Name = "T88StrikeBtn"
gui.ResetOnSpawn = false; gui.IgnoreGuiInset = true
gui.DisplayOrder = 100; gui.Parent = LP:WaitForChild("PlayerGui")
local btnStrike = Instance.new("TextButton")
btnStrike.Name = "BtnStrike"
btnStrike.Size = UDim2.new(0, 65, 0, 65)
btnStrike.Position = UDim2.new(1, -85, 0, 300)
btnStrike.BackgroundColor3 = Color3.fromRGB(30, 15, 40)
btnStrike.Text = "🎃"
btnStrike.TextColor3 = Color3.fromRGB(255, 140, 0)
btnStrike.Font = Enum.Font.GothamBold
btnStrike.TextSize = 25
btnStrike.BorderSizePixel = 0
btnStrike.AutoButtonColor = false
btnStrike.Active = true
btnStrike.ZIndex = 10
btnStrike.Parent = gui
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(1, 0); btnCorner.Parent = btnStrike
local btnStroke = Instance.new("UIStroke")
btnStroke.Color = Color3.fromRGB(255, 140, 0)
btnStroke.Thickness = 2; btnStroke.Parent = btnStrike
local arrastando, inicio, posInicial, moveu = false, Vector2.new(), UDim2.new(), false
btnStrike.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
arrastando = true; moveu = false
inicio = Vector2.new(input.Position.X, input.Position.Y)
posInicial = btnStrike.Position
end
end)
btnStrike.InputChanged:Connect(function(input)
if not arrastando then return end
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
local dx = input.Position.X - inicio.X
local dy = input.Position.Y - inicio.Y
if math.abs(dx) > 3 or math.abs(dy) > 3 then moveu = true end
btnStrike.Position = UDim2.new(posInicial.X.Scale, posInicial.X.Offset + dx, posInicial.Y.Scale, posInicial.Y.Offset + dy)
end
end)
btnStrike.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
arrastando = false
btnStrike:SetAttribute("UltimoCliqueFoiArrasto", moveu)
end
end)
btnStrike.MouseButton1Click:Connect(function()
if btnStrike:GetAttribute("UltimoCliqueFoiArrasto") then
btnStrike:SetAttribute("UltimoCliqueFoiArrasto", false); return
end
Config.autoAttack = not Config.autoAttack
if Config.autoAttack then
btnStrike.TextColor3 = Color3.fromRGB(255, 255, 0)
btnStroke.Color = Color3.fromRGB(255, 255, 0)
btnStrike.Text = "✅"
else
btnStrike.TextColor3 = Color3.fromRGB(255, 140, 0)
btnStroke.Color = Color3.fromRGB(255, 140, 0)
btnStrike.Text = "🎃"
end
end)
task.spawn(function()
while task.wait(0.1) do
if Config.autoAttack then
local alvo = acharAlvo()
if alvo and alvo.Character then
local aHrp = alvo.Character:FindFirstChild("HumanoidRootPart")
if aHrp then
local angulo = calcularAngulo(aHrp.Position)
if angulo > Config.anguloLimite then
virarRapido(aHrp.Position)
end
local agora = tick()
if agora - ultimaMordida >= Config.intervaloAtaque then
ultimaMordida = agora
morder()
end
end
end
end
end
end)
-- ESP
local espObjects = {}
local function atualizarVida(dados, hum)
if not dados.vidaFill or not hum then return end
local hpPct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
dados.vidaFill.Size = UDim2.new(hpPct, 0, 1, 0)
if hpPct > 0.6 then dados.vidaFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
elseif hpPct > 0.3 then dados.vidaFill.BackgroundColor3 = Color3.fromRGB(255, 200, 0)
else dados.vidaFill.BackgroundColor3 = Color3.fromRGB(255, 0, 0) end
if dados.nomeLabel then dados.nomeLabel.Text = hum.Parent.Name .. " [" .. math.floor(hum.Health) .. "/" .. math.floor(hum.MaxHealth) .. "]" end
end
local function criarESP(plr)
if plr == LP or not plr.Character then return end
local hrp = plr.Character:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if espObjects[plr] and espObjects[plr].box and espObjects[plr].box.Parent == hrp then return end
if espObjects[plr] then
if espObjects[plr].box then pcall(function() espObjects[plr].box:Destroy() end) end
if espObjects[plr].billboard then pcall(function() espObjects[plr].billboard:Destroy() end) end
end
local box = Instance.new("BoxHandleAdornment")
box.Name = "T88_ESP_Box"; box.Size = Vector3.new(4, 6, 4)
box.AlwaysOnTop = true; box.ZIndex = 5; box.Transparency = 0.4
box.Color3 = Color3.fromRGB(255, 80, 0); box.Adornee = hrp; box.Parent = hrp; box.Visible = false
local billboard = Instance.new("BillboardGui")
billboard.Name = "T88_ESP_Billboard"; billboard.Size = UDim2.new(0, 120, 0, 50)
billboard.StudsOffset = Vector3.new(0, 4, 0); billboard.AlwaysOnTop = true
billboard.Adornee = hrp; billboard.Parent = hrp; billboard.Enabled = false
local nomeLabel = Instance.new("TextLabel")
nomeLabel.Name = "Nome"; nomeLabel.Size = UDim2.new(1, 0, 0, 16); nomeLabel.BackgroundTransparency = 1
nomeLabel.Text = plr.Name; nomeLabel.TextColor3 = Color3.fromRGB(255, 180, 0)
nomeLabel.TextStrokeTransparency = 0; nomeLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
nomeLabel.Font = Enum.Font.GothamBold; nomeLabel.TextSize = 12; nomeLabel.Parent = billboard
local vidaBg = Instance.new("Frame")
vidaBg.Name = "VidaBg"; vidaBg.Size = UDim2.new(0, 80, 0, 6)
vidaBg.Position = UDim2.new(0.5, -40, 0, 18); vidaBg.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
vidaBg.BorderSizePixel = 0; vidaBg.Parent = billboard
local vbc = Instance.new("UICorner"); vbc.CornerRadius = UDim.new(0, 3); vbc.Parent = vidaBg
local vidaFill = Instance.new("Frame")
vidaFill.Name = "VidaFill"; vidaFill.Size = UDim2.new(1, 0, 1, 0)
vidaFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0); vidaFill.BorderSizePixel = 0; vidaFill.Parent = vidaBg
local vfc = Instance.new("UICorner"); vfc.CornerRadius = UDim.new(0, 3); vfc.Parent = vidaFill
local distLabel = Instance.new("TextLabel")
distLabel.Name = "Dist"; distLabel.Size = UDim2.new(1, 0, 0, 14)
distLabel.Position = UDim2.new(0, 0, 0, 26); distLabel.BackgroundTransparency = 1
distLabel.Text = "0m"; distLabel.TextColor3 = Color3.fromRGB(255, 200, 100)
distLabel.TextStrokeTransparency = 0; distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
distLabel.Font = Enum.Font.Gotham; distLabel.TextSize = 11; distLabel.Parent = billboard
espObjects[plr] = {box = box, billboard = billboard, vidaFill = vidaFill, vidaBg = vidaBg, distLabel = distLabel, nomeLabel = nomeLabel}
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum.HealthChanged:Connect(function() atualizarVida(espObjects[plr], hum) end)
end
end
local function removerESP(plr)
if espObjects[plr] then
if espObjects[plr].box then pcall(function() espObjects[plr].box:Destroy() end) end
if espObjects[plr].billboard then pcall(function() espObjects[plr].billboard:Destroy() end) end
espObjects[plr] = nil
end
end
Players.PlayerRemoving:Connect(removerESP)
task.spawn(function()
while task.wait(0.1) do
local hrp = getHRP()
if hrp then
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LP and plr.Character then
local precisaCriar = false
if not espObjects[plr] then precisaCriar = true
elseif not espObjects[plr].box or not espObjects[plr].box.Parent then precisaCriar = true end
if precisaCriar then criarESP(plr) end
if espObjects[plr] then
local dados = espObjects[plr]
local aHrp = plr.Character:FindFirstChild("HumanoidRootPart")
local aHum = plr.Character:FindFirstChildOfClass("Humanoid")
if aHrp and aHum and dados.box and dados.box.Parent then
local dist = (aHrp.Position - hrp.Position).Magnitude
local dentro = dist <= Config.raioEsp
dados.box.Visible = Config.espPlayer and dentro
if dados.billboard and dados.billboard.Parent then
dados.billboard.Enabled = dentro and (Config.espVida or Config.espDistancia)
if dados.vidaBg then dados.vidaBg.Visible = Config.espVida end
if dados.distLabel then
dados.distLabel.Visible = Config.espDistancia
if Config.espDistancia then dados.distLabel.Text = math.floor(dist) .. "m" end
end
if Config.espVida then atualizarVida(dados, aHum) end
end
end
end
end
end
end
end
end)
-- NOCLIP
local noclipAtivo = false
RunService.Stepped:Connect(function()
if noclipAtivo then
local char = LP.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = false end
end
end
end
end)
local function ativarNoclip() noclipAtivo = true end
local function resetPersonagem()
local char = LP.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not hrp or not humanoid then return end
for _, obj in ipairs(char:GetDescendants()) do
if obj:IsA("BodyVelocity") or obj:IsA("BodyGyro") or obj:IsA("BodyPosition")
or obj:IsA("BodyForce") or obj:IsA("LinearVelocity") or obj:IsA("AngularVelocity") then
pcall(function() obj:Destroy() end)
end
end
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
pcall(function()
humanoid.PlatformStand = false; humanoid.Sit = false
humanoid.WalkSpeed = 16; humanoid.JumpPower = 50
humanoid.AutoRotate = true
end)
pcall(function() hrp.CFrame = hrp.CFrame + Vector3.new(0, 30, 0) end)
task.wait(0.2)
pcall(function() humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end)
task.wait(0.1)
pcall(function() humanoid:ChangeState(Enum.HumanoidStateType.Running) end)
noclipAtivo = true
end
LP.CharacterAdded:Connect(function()
task.wait(1)
if noclipAtivo then noclipAtivo = true end
end)
-- 🎃 AUTO ABÓBORA
local REGIOES_ABOBORA = {
Vector3.new(-3360, -45, 829), Vector3.new(-2337, -56, 1458),
Vector3.new(-1974, -21, 588), Vector3.new(-1370, 112, 716),
Vector3.new(-733, 155, 948), Vector3.new(-17, -1, 831),
Vector3.new(313, -13, 50), Vector3.new(86, 116, -363),
Vector3.new(219, 86, -997), Vector3.new(-363, -21, -1010),
Vector3.new(-466, 18, -130), Vector3.new(-1011, 8, -1611),
Vector3.new(-1090, 26, -2244), Vector3.new(-518, 47, -2178),
Vector3.new(-990, 27, -2263), Vector3.new(-1458, 91, -2088),
Vector3.new(-2040, -24, -1467), Vector3.new(-3182, -45, -94),
Vector3.new(-2825, -49, -441), Vector3.new(-2686, 31, -770),
Vector3.new(-2608, 26, -1179), Vector3.new(-372, -7, 1710),
}
local function getPastaPumpkins()
local env = Workspace:FindFirstChild("Environment")
if not env then return nil end
local gath = env:FindFirstChild("Gatherable")
if not gath then return nil end
return gath:FindFirstChild("Pumpkins")
end
local function acharPromptAbobora(obj)
local p = obj:FindFirstChildOfClass("ProximityPrompt")
if p then return p end
return obj:FindFirstChildWhichIsA("ProximityPrompt", true)
end
local function ehAbobora(obj)
if not obj.Name:find("Pumpkin") then return false end
local prompt = acharPromptAbobora(obj)
if not prompt then return false end
if not string.find(string.lower(prompt.ObjectText or ""), "pumpkin") then return false end
return true
end
local function coletarAbobora(objAlvo)
local prompt = acharPromptAbobora(objAlvo)
if not prompt or not prompt.Enabled then return false end
if fireproximityprompt then
pcall(function() fireproximityprompt(prompt) end)
else
pcall(function()
prompt:InputHoldBegin()
task.wait((prompt.HoldDuration or 0) + 0.15)
prompt:InputHoldEnd()
end)
end
task.wait(0.3)
return not prompt.Enabled
end
task.spawn(function()
task.wait(3)
while true do
if Config.autoAbobora then
local urg = urgenciaComerBeber()
if urg then
if ocupado then forcarLiberacao() end
task.wait(2)
else
local pasta = getPastaPumpkins()
if pasta then
local hrp = getHRP()
local alvo = nil
local menorDist = math.huge
for _, obj in ipairs(pasta:GetChildren()) do
if ehAbobora(obj) then
local prompt = acharPromptAbobora(obj)
local pos = getPos(obj)
if prompt and prompt.Enabled and pos then
local d = (hrp.Position - pos).Magnitude
if d < menorDist then menorDist = d; alvo = obj end
end
end
end
if alvo then
local token = pegarLock("🎃 ABÓBORA")
if token then
pcall(function()
local posAlvo = getPos(alvo)
print("[T88] 🎃 Abóbora! Dist: " .. math.floor(menorDist))
voarAtePerto(posAlvo, token)
if not tenhoLock(token) then return end
coletarAbobora(alvo)
totalAbobora = totalAbobora + 1
print("[T88] 🎃 Coletado! Total: " .. totalAbobora)
end)
liberarLock(token)
end
else
if tick() - ultimaVarredura > 1.5 then
ultimaVarredura = tick()
local regiao = REGIOES_ABOBORA[indiceRegiaoAbobora]
if regiao then
print("[T88] 🗺️ Sem abóboras. Varrendo região " .. indiceRegiaoAbobora .. "/" .. #REGIOES_ABOBORA)
voarSemLock(regiao)
task.wait(2)
indiceRegiaoAbobora = indiceRegiaoAbobora + 1
if indiceRegiaoAbobora > #REGIOES_ABOBORA then indiceRegiaoAbobora = 1 end
end
end
end
else task.wait(5) end
end
task.wait(0.5)
else task.wait(1) end
end
end)
-- 💎 AUTO CRISTAL
local REGIOES = REGIOES_ABOBORA
local function acharPromptCristal(obj)
local body = obj:FindFirstChild("Body")
if body then
local p = body:FindFirstChildOfClass("ProximityPrompt")
if p then return p end
end
return obj:FindFirstChildWhichIsA("ProximityPrompt", true)
end
local function ehExpCrystal(obj)
if not obj.Name:find("Crystal") then return false end
local prompt = acharPromptCristal(obj)
if not prompt then return false end
if not string.find(string.lower(prompt.ObjectText or ""), "exp crystal") then return false end
return true
end
local function coletarCristal(objAlvo)
local prompt = acharPromptCristal(objAlvo)
if not prompt or not prompt.Enabled then return false end
if fireproximityprompt then
pcall(function() fireproximityprompt(prompt) end)
else
pcall(function()
prompt:InputHoldBegin()
task.wait((prompt.HoldDuration or 0) + 0.15)
prompt:InputHoldEnd()
end)
end
task.wait(0.3)
return not prompt.Enabled
end
local function getPastaCrystals()
local env = Workspace:FindFirstChild("Environment")
if not env then return nil end
local gath = env:FindFirstChild("Gatherable")
if not gath then return nil end
return gath:FindFirstChild("Crystals")
end
local function coletarRegiao(centro, raio, token)
local coletados = 0
local pasta = getPastaCrystals()
if not pasta then return 0 end
local inicio = tick()
while tick() - inicio < Config.tempoMaxRegiao do
if not tenhoLock(token) then break end
local achouAlgum = false
for _, obj in ipairs(pasta:GetChildren()) do
if not tenhoLock(token) then break end
if ehExpCrystal(obj) then
local prompt = acharPromptCristal(obj)
local pos = getPos(obj)
if prompt and prompt.Enabled and pos then
local d = (pos - centro).Magnitude
if d <= raio then
achouAlgum = true
voarAtePerto(pos, token)
if not tenhoLock(token) then break end
coletarCristal(obj)
coletados = coletados + 1
totalColetado = totalColetado + 1
print("[T88] 💎 Cristal! Total: " .. totalColetado)
task.wait(0.2)
end
end
end
end
if not achouAlgum then
task.wait(1)
local achouDeNovo = false
for _, obj in ipairs(pasta:GetChildren()) do
if ehExpCrystal(obj) then
local prompt = acharPromptCristal(obj)
local pos = getPos(obj)
if prompt and prompt.Enabled and pos then
if (pos - centro).Magnitude <= raio then
achouDeNovo = true; break
end
end
end
end
if not achouDeNovo then break end
end
end
return coletados
end
task.spawn(function()
task.wait(3)
while true do
if Config.autoCristal then
local regiao = REGIOES[indiceRegiaoAtual]
if regiao then
local token = pegarLock("💎 CRISTAL")
if token then
pcall(function()
local hrp = getHRP()
if not hrp then return end
print("[T88] 📍 Região " .. indiceRegiaoAtual .. "/" .. #REGIOES)
voarAtePerto(regiao, token)
if not tenhoLock(token) then return end
coletarRegiao(regiao, Config.raioRegiao, token)
end)
liberarLock(token)
indiceRegiaoAtual = indiceRegiaoAtual + 1
if indiceRegiaoAtual > #REGIOES then
print("[T88] 🔄 Rota completa!")
indiceRegiaoAtual = 1
end
else task.wait(1) end
else indiceRegiaoAtual = 1 end
task.wait(1)
else task.wait(1) end
end
end)
-- 💧 AUTO BEBER
local function acharCorposAgua()
local lista = {}
local hotsprings = {}
local outras = {}
local env = Workspace:FindFirstChild("Environment")
if not env then return lista end
local water = env:FindFirstChild("Water")
if not water then return lista end
local bodies = water:FindFirstChild("Bodies")
if not bodies then return lista end
for _, obj in ipairs(bodies:GetChildren()) do
local pos = nil
if obj:IsA("BasePart") then pos = obj.Position
else
local p = obj:FindFirstChildWhichIsA("BasePart", true)
if p then pos = p.Position end
end
if pos then
local dados = {model = obj, pos = pos, nome = obj.Name}
local nomeLower = string.lower(obj.Name)
if string.find(nomeLower, "hotspring") or string.find(nomeLower, "hot_spring") or string.find(nomeLower, "thermal") then
table.insert(hotsprings, dados)
else
table.insert(outras, dados)
end
end
end
if Config.priorizarHotsprings then
for _, h in ipairs(hotsprings) do
table.insert(lista, h)
end
end
for _, o in ipairs(outras) do
table.insert(lista, o)
end
return lista
end
local function lerQualidadeAgua()
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("ProximityPrompt") and obj.Name == "DrinkPrompt" then
local actionText = obj.ActionText or ""
local num = tonumber(string.match(actionText, "(%d+)"))
if num then return num / 100 end
end
end
return nil
end
local function ehHotspring(model)
if not model then return false end
local nomeLower = string.lower(model.Name)
return string.find(nomeLower, "hotspring") or string.find(nomeLower, "hot_spring") or string.find(nomeLower, "thermal")
end
task.spawn(function()
while task.wait(1) do
if Config.autoBeber and not ocupado and TryConsume then
local barraSede = acharBarra("Water")
if barraSede then
local pct = lerPorcentagem(barraSede)
local fomePct = 1
if Config.autoComer then
local bf = acharBarra("Food")
if bf then
local fp = lerPorcentagem(bf)
if fp then fomePct = fp end
end
end
if pct and pct < Config.prioridadeComerBeber and pct <= fomePct then
local token = pegarLock("💧 BEBER")
if token then
pcall(function()
print("[T88] 💧 Sede em " .. math.floor(pct * 100) .. "% (fome: " .. math.floor(fomePct * 100) .. "%)")
local tentativas = 0
while tentativas < 25 do
if not tenhoLock(token) then break end
tentativas = tentativas + 1
local sedeAtual = lerPorcentagem(acharBarra("Water"))
local pctAtual = sedeAtual and math.floor(sedeAtual * 100) or 0
if sedeAtual and sedeAtual >= Config.metaBeber then
print("[T88] 💧 Sede CHEIA (" .. pctAtual .. "%)!")
break
end
local corpos = acharCorposAgua()
if #corpos == 0 then
task.wait(2)
else
local hrp = getHRP()
local escolhido, menorDist = nil, math.huge
for _, c in ipairs(corpos) do
local d = (c.pos - hrp.Position).Magnitude
if ehHotspring(c.model) then
d = d * 0.1
end
if d < menorDist then
menorDist = d
escolhido = c
end
end
if escolhido then
local ehHot = ehHotspring(escolhido.model)
local distReal = (escolhido.pos - hrp.Position).Magnitude
if distReal > 3 then
voarAtePerto(escolhido.pos, token)
end
if not tenhoLock(token) then break end
if ehHot then
print("[T88] 💧 Hotsprings! Bebendo direto.")
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.5)
pcall(function() TryConsume:InvokeServer(escolhido.model, "drink") end)
totalBebeu = totalBebeu + 1
print("[T88] 💧 Gole HOTSPRING " .. tentativas .. " | Sede: " .. pctAtual .. "%")
else
local qualidade = lerQualidadeAgua()
if qualidade and qualidade < Config.qualidadeMinima then
print("[T88] 💧 Bactéria! Pulando (qualidade: " .. math.floor(qualidade * 100) .. "%)")
else
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.5)
pcall(function() TryConsume:InvokeServer(escolhido.model, "drink") end)
totalBebeu = totalBebeu + 1
print("[T88] 💧 Gole normal " .. tentativas .. " | Sede: " .. pctAtual .. "%")
end
end
end
end
task.wait(1.5)
end
end)
liberarLock(token)
end
end
end
end
end
end)
-- 🍖 AUTO COMER
local DinoSpecies = nil
task.spawn(function()
pcall(function()
local modules = ReplicatedStorage:WaitForChild("Modules", 10)
if modules then
local referential = modules:WaitForChild("Referential", 10)
if referential then
local ds = referential:WaitForChild("DinoSpecies", 10)
if ds then DinoSpecies = require(ds) end
end
end
end)
end)
local function detectarComida()
local char = LP.Character
if not char or not DinoSpecies then return {} end
local speciesID = char:FindFirstChild("speciesID")
if not speciesID then return {} end
local id = speciesID.Value
local food = Workspace:FindFirstChild("Environment")
if food then food = food:FindFirstChild("Interactive") end
if food then food = food:FindFirstChild("Food") end
if not food then return {} end
local pastasValidas = {}
for _, pasta in ipairs(food:GetChildren()) do
local ok, res = pcall(function() return DinoSpecies.canEat(id, pasta.Name) end)
if ok and res == true then table.insert(pastasValidas, pasta.Name) end
end
return pastasValidas
end
local function acharComidaValida(pastasValidas)
local hrp = getHRP()
if not hrp then return nil end
local food = Workspace:FindFirstChild("Environment")
if food then food = food:FindFirstChild("Interactive") end
if food then food = food:FindFirstChild("Food") end
if not food then return nil end
local maisPerto, menorDist = nil, math.huge
for _, nomePasta in ipairs(pastasValidas) do
local pasta = food:FindFirstChild(nomePasta)
if pasta then
for _, obj in ipairs(pasta:GetDescendants()) do
if obj.Name == "FoodRange" and obj:IsA("BasePart") then
local d = (obj.Position - hrp.Position).Magnitude
if d < menorDist then
menorDist = d
local modelAlvo = obj.Parent
maisPerto = {model = modelAlvo, pos = obj.Position, pasta = nomePasta, nome = modelAlvo.Name}
end
end
end
end
end
return maisPerto
end
task.spawn(function()
task.wait(3)
while task.wait(0.5) do
if Config.autoComer and not ocupado and DinoSpecies and TryConsume then
local barraFome = acharBarra("Food")
if barraFome then
local pct = lerPorcentagem(barraFome)
local sedePct = 1
if Config.autoBeber then
local bs = acharBarra("Water")
if bs then
local sp = lerPorcentagem(bs)
if sp then sedePct = sp end
end
end
if pct and pct < Config.prioridadeComerBeber and pct < sedePct then
local token = pegarLock("🍖 COMER")
if token then
pcall(function()
print("[T88] 🍖 Fome em " .. math.floor(pct * 100) .. "% (sede: " .. math.floor(sedePct * 100) .. "%)")
local tentativas = 0
while tentativas < 25 do
if not tenhoLock(token) then break end
tentativas = tentativas + 1
local fomeAtual = lerPorcentagem(acharBarra("Food"))
local pctAtual = fomeAtual and math.floor(fomeAtual * 100) or 0
if fomeAtual and fomeAtual >= Config.metaComer then
print("[T88] 🍖 Fome OK (" .. pctAtual .. "%)!")
break
end
local pastas = detectarComida()
local comidaAtual = acharComidaValida(pastas)
if not comidaAtual then
print("[T88] 🍖 Sem comida.")
break
end
local hrp = getHRP()
voarAteComida(comidaAtual.pos, token)
if not tenhoLock(token) then break end
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.zero
hrp.AssemblyAngularVelocity = Vector3.zero
end)
task.wait(0.8)
local ok = pcall(function() return TryConsume:InvokeServer(comidaAtual.model, "eat") end)
if ok then
totalComeu = totalComeu + 1
print("[T88] 🍖 Mordida " .. tentativas .. " | Fome: " .. pctAtual .. "%")
else break end
task.wait(1.5)
end
end)
liberarLock(token)
end
end
end
end
end
end)
-- JANELA
local Window = WindUI:CreateWindow({
Title = "🎃 T88 Hub - HALLOWEEN",
Author = "T88",
Folder = "T88Hub",
Icon = "ghost",
Theme = "Dark",
Size = UDim2.fromOffset(580, 620),
Transparent = true,
HideSearchBar = true,
Background = "rbxassetid://4082279125",
BackgroundImageTransparency = 0.65,
})
local CombateTab = Window:Tab({ Title = "Combate", Icon = "crosshair" })
CombateTab:Section({ Title = "👁️ ESP" })
CombateTab:Toggle({ Title = "ESP Players", Value = false, Callback = function(s) Config.espPlayer = s end })
CombateTab:Input({ Title = "Raio do ESP", Value = "300", Callback = function(texto)
local num = tonumber(texto)
if num then Config.raioEsp = math.clamp(math.floor(num), 1, 500) end
end })
CombateTab:Toggle({ Title = "ESP Vida", Value = true, Callback = function(s) Config.espVida = s end })
CombateTab:Toggle({ Title = "ESP Distância", Value = false, Callback = function(s) Config.espDistancia = s end })
CombateTab:Section({ Title = "⚔️ Auto Attack" })
CombateTab:Slider({ Title = "Raio de Ataque", Value = { Min = 10, Max = 25, Default = 10 }, Callback = function(v)
Config.raioAttack = v
end })
CombateTab:Slider({ Title = "⏱️ Pausa entre Ataques (s)", Value = { Min = 3, Max = 30, Default = 10 }, Callback = function(v)
Config.intervaloAtaque = v / 10
end })
CombateTab:Slider({ Title = "🎯 Ângulo pra Virar (°)", Value = { Min = 30, Max = 120, Default = 60 }, Callback = function(v)
Config.anguloLimite = v
end })
local FarmTab = Window:Tab({ Title = "Farm 🎃", Icon = "zap" })
FarmTab:Section({ Title = "🎃 Auto Farm Abóbora (Evento)" })
FarmTab:Toggle({ Title = "🎃 Auto Coletar Abóbora", Value = false, Callback = function(s)
Config.autoAbobora = s
if s then
ativarNoclip()
print("[T88] 🎃 Auto Abóbora LIGADO!")
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88 Hub", Text = "Auto Abóbora ativado!", Duration = 3
})
else print("[T88] 🎃 Auto Abóbora DESLIGADO.") end
end })
FarmTab:Section({ Title = "💎 Auto Cristal" })
FarmTab:Toggle({ Title = "Auto Coletar Exp Crystal", Value = false, Callback = function(s)
Config.autoCristal = s
if s then ativarNoclip() end
end })
FarmTab:Slider({ Title = "💎 Raio por Região", Value = { Min = 300, Max = 1200, Default = 900 }, Callback = function(v) Config.raioRegiao = v end })
FarmTab:Slider({ Title = "💎 Tempo máx por Região (s)", Value = { Min = 5, Max = 30, Default = 12 }, Callback = function(v) Config.tempoMaxRegiao = v end })
FarmTab:Section({ Title = "🍖💧 Auto Comer e Beber" })
FarmTab:Toggle({ Title = "Auto Comer (fome baixa)", Value = false, Callback = function(s)
Config.autoComer = s
if s then ativarNoclip() end
end })
FarmTab:Toggle({ Title = "Auto Beber (sede baixa)", Value = false, Callback = function(s)
Config.autoBeber = s
if s then ativarNoclip() end
end })
FarmTab:Toggle({ Title = "♨️ Priorizar Hotsprings (água termal)", Value = true, Callback = function(s)
Config.priorizarHotsprings = s
end })
FarmTab:Slider({ Title = "🚨 Urgência Comer/Beber (%)", Value = { Min = 30, Max = 80, Default = 60 }, Callback = function(v) Config.prioridadeComerBeber = v / 100 end })
FarmTab:Slider({ Title = "🍖 Meta de Comer (%)", Value = { Min = 50, Max = 90, Default = 70 }, Callback = function(v)
Config.metaComer = v / 100
end })
FarmTab:Slider({ Title = "💧 Meta de Beber (%)", Value = { Min = 70, Max = 100, Default = 95 }, Callback = function(v)
Config.metaBeber = v / 100
end })
FarmTab:Section({ Title = "⚙️ Geral" })
FarmTab:Slider({ Title = "⚡ Velocidade do Voo", Value = { Min = 50, Max = 250, Default = 200 }, Callback = function(v) Config.velocidadeVoo = v end })
FarmTab:Button({ Title = "📊 Estatísticas", Callback = function()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88 Stats",
Text = "🎃 " .. totalAbobora .. " | 💎 " .. totalColetado .. " | 💧 " .. totalBebeu .. " | 🍖 " .. totalComeu,
Duration = 6
})
end })
FarmTab:Button({ Title = "🔓 Forçar Liberação de Lock", Callback = function()
forcarLiberacao()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88", Text = "🔓 Lock liberado!", Duration = 3
})
end })
local ConfigTab = Window:Tab({ Title = "Config", Icon = "settings" })
ConfigTab:Section({ Title = "🔄 Emergência" })
ConfigTab:Button({ Title = "🔄 Reset Personagem", Callback = function() resetPersonagem() end })
ConfigTab:Button({ Title = "Fechar Hub", Callback = function()
Window:Destroy()
gui:Destroy()
end })
ConfigTab:Section({ Title = "💬 Comunidade" })
ConfigTab:Button({ Title = "📋 Copiar Link do Discord", Callback = function()
if setclipboard then
setclipboard(LINK_DO_DISCORD)
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88 Hub", Text = "✅ Link do Discord copiado!", Duration = 5
})
end
end })
ConfigTab:Button({ Title = "🌐 Abrir Discord no Navegador", Callback = function()
pcall(function() game:GetService("GuiService"):OpenBrowserWindow(LINK_DO_DISCORD) end)
end })
print("[T88] 🎃 Hub v84.1 SEM KEY carregado!")
task.spawn(function()
pcall(function()
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88 HUB - DICA",
Text = "Recomendado usar em SERVIDOR PRIVADO! Farm melhor e sem risco de denúncia.",
Duration = 10,
})
end)
print("")
print("════════════════════════════════════════")
print("🎃 T88 HUB - RECOMENDAÇÃO 🎃")
print("✨ Use em SERVIDOR PRIVADO!")
print("✅ Farm melhor - você pega TUDO pra você")
print("✅ Criar servidor privado é GRÁTIS")
print("⚠️ Em servidor público, outros players podem te denunciar.")
print("════════════════════════════════════════")
print("")
local ok, err = pcall(function()
local avisoGui = Instance.new("ScreenGui")
avisoGui.Name = "T88_AvisoInicial"
avisoGui.ResetOnSpawn = false
avisoGui.IgnoreGuiInset = true
avisoGui.DisplayOrder = 999
avisoGui.Parent = LP:WaitForChild("PlayerGui")
local banner = Instance.new("Frame")
banner.Size = UDim2.new(0, 440, 0, 120)
banner.Position = UDim2.new(0.5, -220, 0, 100)
banner.BackgroundColor3 = Color3.fromRGB(30, 15, 40)
banner.BorderSizePixel = 0
banner.Parent = avisoGui
local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0, 12); corner.Parent = banner
local stroke = Instance.new("UIStroke"); stroke.Color = Color3.fromRGB(255, 140, 0); stroke.Thickness = 3; stroke.Parent = banner
local titulo = Instance.new("TextLabel")
titulo.Size = UDim2.new(1, -20, 0, 30); titulo.Position = UDim2.new(0, 10, 0, 8)
titulo.BackgroundTransparency = 1
titulo.Text = "🎃 DICA: USE SERVIDOR PRIVADO 🎃"
titulo.TextColor3 = Color3.fromRGB(255, 140, 0)
titulo.Font = Enum.Font.GothamBold; titulo.TextSize = 17
titulo.TextStrokeTransparency = 0; titulo.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
titulo.Parent = banner
local descricao = Instance.new("TextLabel")
descricao.Size = UDim2.new(1, -20, 0, 75); descricao.Position = UDim2.new(0, 10, 0, 40)
descricao.BackgroundTransparency = 1
descricao.Text = "✅ Farm melhor - pega TUDO pra você\n✅ É grátis criar servidor privado\n✅ Sem players atrapalhando\n\n⚠️ Em servidor público, outros players podem te denunciar."
descricao.TextColor3 = Color3.fromRGB(255, 220, 150)
descricao.Font = Enum.Font.Gotham; descricao.TextSize = 13
descricao.TextWrapped = true; descricao.TextYAlignment = Enum.TextYAlignment.Top
descricao.TextStrokeTransparency = 0; descricao.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
descricao.Parent = banner
banner.BackgroundTransparency = 1; titulo.TextTransparency = 1
descricao.TextTransparency = 1; stroke.Transparency = 1
for i = 0, 20 do
banner.BackgroundTransparency = 1 - (i / 20)
titulo.TextTransparency = 1 - (i / 20)
descricao.TextTransparency = 1 - (i / 20)
stroke.Transparency = 1 - (i / 20)
task.wait(0.02)
end
task.wait(10)
for i = 0, 25 do
banner.BackgroundTransparency = i / 25
titulo.TextTransparency = i / 25
descricao.TextTransparency = i / 25
stroke.Transparency = i / 25
task.wait(0.02)
end
avisoGui:Destroy()
end)
if not ok then warn("[T88] Falha no banner:", err) end
end)
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "🎃 T88 Hub", Text = "Happy Halloween! Aproveite o evento!", Duration = 5
})
end
task.wait(1)
iniciarHub()
print("[T88] 🎃 Hub HALLOWEEN (sem key) carregado com sucesso!")Features & Information
Auto farm cristal,Auto Comer e beber,Auto atack,esp o script usa chaves pode pegar pelo link do linkvertice ou discord.
Community Comments (0)
No comments yet for this script.
