
Key Required

--========================================================--
-- STRANGE HUB + MOTOSSERRA 3D + ANIMAÇÕES E NOVOS SONS
-- [UP] JUST A BASEPLATE
-- PLACE ID: 123974602339071
--========================================================--
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local TextChatService = game:GetService("TextChatService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SoundService = game:GetService("SoundService")
local player = Players.LocalPlayer
--========================================================--
-- CONFIGURAÇÃO E VARIÁVEIS GERAIS
--========================================================--
local ALLOWED_PLACE_ID = 123974602339071
local scriptRunning = false
local vrConnections = {}
local activeEffects = {}
local chainsawParts = {}
local vrGuiInstance = nil
local isEquipped = true
local isAttacking = false
local attackStartTime = 0
local isLaughing = false
local laughStartTime = 0
--========================================================--
-- VERIFICAR JOGO
--========================================================--
local function isAllowedGame()
return game.PlaceId == ALLOWED_PLACE_ID
end
--========================================================--
-- GUI DO HUB PRINCIPAL (LIMPO E COMPACTO)
--========================================================--
local oldGui = player:WaitForChild("PlayerGui"):FindFirstChild("StrangeHub")
if oldGui then oldGui:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "StrangeHub"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = player.PlayerGui
local panel = Instance.new("Frame")
panel.Name = "MainPanel"
panel.Size = UDim2.new(0, 270, 0, 210)
panel.Position = UDim2.new(0.5, -135, 0.5, -105)
panel.BackgroundColor3 = Color3.fromRGB(18, 18, 23)
panel.BorderSizePixel = 0
panel.Active = true
panel.Draggable = true
panel.Parent = gui
local panelCorner = Instance.new("UICorner")
panelCorner.CornerRadius = UDim.new(0, 16)
panelCorner.Parent = panel
local panelStroke = Instance.new("UIStroke")
panelStroke.Thickness = 2
panelStroke.Transparency = 0.25
panelStroke.Parent = panel
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -50, 0, 45)
title.Position = UDim2.new(0, 10, 0, 5)
title.BackgroundTransparency = 1
title.Text = "⚡ STRANGE HUB"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextSize = 22
title.Font = Enum.Font.GothamBold
title.Parent = panel
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, -20, 0, 25)
subtitle.Position = UDim2.new(0, 10, 0, 28)
subtitle.BackgroundTransparency = 1
subtitle.Text = "[UP] JUST A BASEPLATE"
subtitle.TextColor3 = Color3.fromRGB(170, 170, 170)
subtitle.TextSize = 11
subtitle.Font = Enum.Font.Gotham
subtitle.Parent = panel
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 30, 0, 30)
minimizeBtn.Position = UDim2.new(1, -35, 0, 10)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 48)
minimizeBtn.Text = "—"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.TextSize = 14
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.Parent = panel
local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 8)
minCorner.Parent = minimizeBtn
local contentFrame = Instance.new("Frame")
contentFrame.Name = "ContentContainer"
contentFrame.Size = UDim2.new(1, 0, 1, -55)
contentFrame.Position = UDim2.new(0, 0, 0, 55)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = panel
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -20, 0, 22)
status.Position = UDim2.new(0, 10, 0, 2)
status.BackgroundTransparency = 1
status.TextSize = 13
status.Font = Enum.Font.GothamBold
status.Parent = contentFrame
local function createHubButton(text, position)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -30, 0, 38)
button.Position = position
button.BackgroundColor3 = Color3.fromRGB(40, 40, 48)
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextSize = 13
button.Font = Enum.Font.GothamBold
button.AutoButtonColor = true
button.Parent = contentFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = button
return button
end
local executeButton = createHubButton("▶️ EXECUTAR", UDim2.new(0, 15, 0, 28))
local resetButton = createHubButton("🔄 RESETAR", UDim2.new(0, 15, 0, 72))
local stopButton = createHubButton("⏹️ PARAR SCRIPT", UDim2.new(0, 15, 0, 116))
local panelOpen = true
minimizeBtn.MouseButton1Click:Connect(function()
panelOpen = not panelOpen
contentFrame.Visible = panelOpen
if panelOpen then
panel.Size = UDim2.new(0, 270, 0, 210)
minimizeBtn.Text = "—"
else
panel.Size = UDim2.new(0, 270, 0, 55)
minimizeBtn.Text = "+"
end
end)
if isAllowedGame() then
status.Text = "● PRONTO"
status.TextColor3 = Color3.fromRGB(80, 255, 130)
else
status.Text = "🔒 JOGO NÃO COMPATÍVEL"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
executeButton.Text = "🔒 PLACE ID INCORRETO"
end
--========================================================--
-- RESET
--========================================================--
local function resetCharacter()
local character = player.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then humanoid.Health = 0 end
end
end
--========================================================--
-- MODO DE EXECUÇÃO (TEXTOS E MOTOSSERRA)
--========================================================--
local function StartModMode()
if vrGuiInstance then vrGuiInstance:Destroy() end
for _, conn in ipairs(vrConnections) do if conn then conn:Disconnect() end end
table.clear(vrConnections)
for _, fx in ipairs(activeEffects) do if fx then fx:Destroy() end end
table.clear(activeEffects)
table.clear(chainsawParts)
isEquipped = true
isAttacking = false
isLaughing = false
-- SOM DE FUNDO WEIRDO (Mantido para clima)
local spookySound = Instance.new("Sound")
spookySound.Name = "StrangeHub_Audio"
spookySound.SoundId = "rbxassetid://106591379375534"
spookySound.Volume = 0.5
spookySound.Looped = true
spookySound.Parent = SoundService
spookySound:Play()
table.insert(activeEffects, spookySound)
-- NOVO: SOM DA MOTOSSERRA LIGADA (IDLE)
local chainsawIdleSound = Instance.new("Sound")
chainsawIdleSound.Name = "Chainsaw_Idle"
chainsawIdleSound.SoundId = "rbxassetid://129562586053031"
chainsawIdleSound.Volume = 2
chainsawIdleSound.Looped = true
chainsawIdleSound.Parent = SoundService
chainsawIdleSound:Play()
table.insert(activeEffects, chainsawIdleSound)
-- NOVO: SOM DE ATAQUE DA MOTOSSERRA
local sawAttackSound = Instance.new("Sound")
sawAttackSound.Name = "Chainsaw_Attack"
sawAttackSound.SoundId = "rbxassetid://98962162673952"
sawAttackSound.Volume = 3
sawAttackSound.Parent = SoundService
table.insert(activeEffects, sawAttackSound)
-- GUI DE EFEITOS E BOTÕES DE AÇÃO
vrGuiInstance = Instance.new("ScreenGui")
vrGuiInstance.Name = "StrangeHub_Effects"
vrGuiInstance.ResetOnSpawn = false
vrGuiInstance.IgnoreGuiInset = true
vrGuiInstance.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
pcall(function() vrGuiInstance.Parent = CoreGui end)
if not vrGuiInstance.Parent then vrGuiInstance.Parent = player:WaitForChild("PlayerGui") end
-- ESTÁTICA
local staticFrame = Instance.new("ImageLabel")
staticFrame.Name = "StaticEffect"
staticFrame.Size = UDim2.new(1, 0, 1, 0)
staticFrame.BackgroundTransparency = 1
staticFrame.Image = "rbxassetid://7335193983"
staticFrame.ImageTransparency = 0.88
staticFrame.ScaleType = Enum.ScaleType.Tile
staticFrame.TileSize = UDim2.new(0, 400, 0, 400)
staticFrame.ZIndex = 1
staticFrame.Parent = vrGuiInstance
-- TEXTO GLITCHADO
local weirdoText = Instance.new("TextLabel")
weirdoText.Name = "WeirdoGlitchText"
weirdoText.Size = UDim2.new(0, 500, 0, 100)
weirdoText.AnchorPoint = Vector2.new(0.5, 0.5)
weirdoText.Position = UDim2.new(0.5, 0, 0.15, 0)
weirdoText.BackgroundTransparency = 1
weirdoText.Text = "WEIRDO"
weirdoText.TextColor3 = Color3.fromRGB(255, 255, 255)
weirdoText.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
weirdoText.TextStrokeTransparency = 0
weirdoText.Font = Enum.Font.Creepster
weirdoText.TextSize = 65
weirdoText.ZIndex = 5
weirdoText.Parent = vrGuiInstance
local weirdoVariations = {"WEIRDO", "W$I%DO", "W3IRD0", "W E I R D O", "W_I_R_D_O", "W#I@D0", "WĘÏRĐØ", "₩€łRĐ0", "W?I!D*", "W E I R D O O O"}
--====================================================--
-- BOTÕES DA TELA
--====================================================--
-- 1. BOTÃO DE ATAQUE (Centro)
local attackBtn = Instance.new("TextButton")
attackBtn.Size = UDim2.new(0, 180, 0, 55)
attackBtn.AnchorPoint = Vector2.new(0.5, 1)
attackBtn.Position = UDim2.new(0.5, 0, 0.95, 0)
attackBtn.BackgroundColor3 = Color3.fromRGB(200, 30, 30)
attackBtn.Text = "🪚 ATACAR!"
attackBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
attackBtn.TextSize = 18
attackBtn.Font = Enum.Font.GothamBlack
attackBtn.ZIndex = 10
attackBtn.Parent = vrGuiInstance
Instance.new("UICorner", attackBtn).CornerRadius = UDim.new(0, 12)
local str1 = Instance.new("UIStroke", attackBtn)
str1.Color = Color3.fromRGB(255, 255, 255) str1.Thickness = 2
-- 2. BOTÃO DE GUARDAR/EQUIPAR (Esquerda)
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 150, 0, 45)
toggleBtn.AnchorPoint = Vector2.new(0.5, 1)
toggleBtn.Position = UDim2.new(0.5, -190, 0.94, 0)
toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 30)
toggleBtn.Text = "⬇️ GUARDAR"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.TextSize = 14
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.ZIndex = 10
toggleBtn.Parent = vrGuiInstance
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 10)
local str2 = Instance.new("UIStroke", toggleBtn)
str2.Color = Color3.fromRGB(255, 255, 255) str2.Thickness = 2
-- 3. BOTÃO DE RIR (Direita)
local laughBtn = Instance.new("TextButton")
laughBtn.Size = UDim2.new(0, 150, 0, 45)
laughBtn.AnchorPoint = Vector2.new(0.5, 1)
laughBtn.Position = UDim2.new(0.5, 190, 0.94, 0)
laughBtn.BackgroundColor3 = Color3.fromRGB(150, 30, 200)
laughBtn.Text = "😂 RIR (3s)"
laughBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
laughBtn.TextSize = 14
laughBtn.Font = Enum.Font.GothamBold
laughBtn.ZIndex = 10
laughBtn.Parent = vrGuiInstance
Instance.new("UICorner", laughBtn).CornerRadius = UDim.new(0, 10)
local str3 = Instance.new("UIStroke", laughBtn)
str3.Color = Color3.fromRGB(255, 255, 255) str3.Thickness = 2
-- Eventos dos Botões
table.insert(vrConnections, attackBtn.MouseButton1Click:Connect(function()
if not isAttacking and isEquipped and not isLaughing then
isAttacking = true
attackStartTime = os.clock()
sawAttackSound:Play()
end
end))
table.insert(vrConnections, toggleBtn.MouseButton1Click:Connect(function()
if isAttacking or isLaughing then return end
isEquipped = not isEquipped
if isEquipped then
toggleBtn.Text = "⬇️ GUARDAR"
toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 30)
attackBtn.Visible = true
chainsawIdleSound:Play()
for _, part in ipairs(chainsawParts) do part.Transparency = 0 end
else
toggleBtn.Text = "⬆️ EQUIPAR"
toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 150, 200)
attackBtn.Visible = false
chainsawIdleSound:Stop()
for _, part in ipairs(chainsawParts) do part.Transparency = 1 end
end
end))
table.insert(vrConnections, laughBtn.MouseButton1Click:Connect(function()
if not isLaughing and not isAttacking then
isLaughing = true
laughStartTime = os.clock()
-- Desliga depois de 3 segundos
task.delay(3, function()
isLaughing = false
end)
end
end))
-- LOOP DO EFEITO VISUAL DA TELA
local uiRenderConn = RunService.RenderStepped:Connect(function()
if not scriptRunning then return end
local t = os.clock()
if math.random(1, 10) > 7 then
weirdoText.Text = weirdoVariations[math.random(1, #weirdoVariations)]
end
weirdoText.TextColor3 = Color3.fromHSV((t * 0.3) % 1, 1, 1)
local floatX = math.sin(t * 1.5) * 35
local floatY = math.cos(t * 2) * 15
weirdoText.Position = UDim2.new(0.5, floatX, 0.15, floatY)
weirdoText.Rotation = math.sin(t * 2.8) * 12
staticFrame.ImageTransparency = math.random(85, 93) / 100
staticFrame.TileSize = UDim2.new(0, math.random(350, 450), 0, math.random(350, 450))
end)
table.insert(vrConnections, uiRenderConn)
--====================================================--
-- CONSTRUÇÃO DA MOTOSSERRA 3D
--====================================================--
local function spawnChainsaw(char, rightArm)
local chainsaw = Instance.new("Model")
chainsaw.Name = "ChainsawWeapon"
-- Corpo da motosserra (Motor)
local body = Instance.new("Part")
body.Size = Vector3.new(0.8, 1.2, 2.5)
body.Color = Color3.fromRGB(200, 30, 30)
body.Material = Enum.Material.Metal
body.CanCollide = false
body.Massless = true
body.Parent = chainsaw
-- Lâmina
local blade = Instance.new("Part")
blade.Size = Vector3.new(0.1, 0.6, 3.5)
blade.Color = Color3.fromRGB(120, 120, 120)
blade.Material = Enum.Material.DiamondPlate
blade.CanCollide = false
blade.Massless = true
blade.Parent = chainsaw
-- Alça Lateral (Handle)
local handle = Instance.new("Part")
handle.Size = Vector3.new(1.2, 0.2, 0.2)
handle.Color = Color3.fromRGB(20, 20, 20)
handle.CanCollide = false
handle.Massless = true
handle.Parent = chainsaw
-- Soldas
local weldArm = Instance.new("Weld")
weldArm.Part0 = rightArm
weldArm.Part1 = body
weldArm.C0 = CFrame.new(0, -1, -0.5) * CFrame.Angles(math.rad(-90), 0, 0)
weldArm.Parent = body
local weldBlade = Instance.new("Weld")
weldBlade.Part0 = body
weldBlade.Part1 = blade
weldBlade.C0 = CFrame.new(0, 0, -3)
weldBlade.Parent = blade
local weldHandle = Instance.new("Weld")
weldHandle.Part0 = body
weldHandle.Part1 = handle
weldHandle.C0 = CFrame.new(0, 0.6, -0.5)
weldHandle.Parent = handle
chainsaw.Parent = char
table.insert(activeEffects, chainsaw)
table.insert(chainsawParts, body)
table.insert(chainsawParts, blade)
table.insert(chainsawParts, handle)
end
--====================================================--
-- RIG DO PERSONAGEM (BRAÇOS E TORSO MÓVEIS)
--====================================================--
local currentRenderConn = nil
local function setupCharacter(char)
if currentRenderConn then
currentRenderConn:Disconnect()
currentRenderConn = nil
end
local humanoid = char:WaitForChild("Humanoid", 8)
local rootPart = char:WaitForChild("HumanoidRootPart", 8)
local torso = char:WaitForChild("Torso", 8)
local rightArm = char:WaitForChild("Right Arm", 8)
local leftArm = char:WaitForChild("Left Arm", 8)
if not humanoid or not rootPart or not torso or not rightArm or not leftArm then return end
-- Gerar Motosserra
spawnChainsaw(char, rightArm)
-- Pegar juntas principais (para cabeça e corpo tremerem na risada)
local neck = torso:FindFirstChild("Neck")
local rootJoint = rootPart:FindFirstChild("RootJoint")
local originalNeck = neck and neck.C0 or CFrame.new()
local originalRoot = rootJoint and rootJoint.C0 or CFrame.new()
-- Quebrar Ombros para mover livremente
local rightShoulder = torso:FindFirstChild("Right Shoulder")
local leftShoulder = torso:FindFirstChild("Left Shoulder")
if rightShoulder then rightShoulder:Destroy() end
if leftShoulder then leftShoulder:Destroy() end
rightArm.CanCollide = false
leftArm.CanCollide = false
-- Movers dos braços
local function createMover(part)
local bp = Instance.new("BodyPosition")
bp.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bp.P = 25000
bp.D = 1200
bp.Position = part.Position
bp.Parent = part
local bg = Instance.new("BodyGyro")
bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
bg.P = 25000
bg.D = 1200
bg.CFrame = part.CFrame
bg.Parent = part
return bp, bg
end
local rightBP, rightBG = createMover(rightArm)
local leftBP, leftBG = createMover(leftArm)
local currentRightPosition = rightArm.Position
local currentLeftPosition = leftArm.Position
local currentRightCFrame = rightArm.CFrame
local currentLeftCFrame = leftArm.CFrame
--================================================--
-- LÓGICA DE ANIMAÇÃO (LOOP RENDER)
--================================================--
currentRenderConn = RunService.RenderStepped:Connect(function()
if not scriptRunning or not char.Parent or humanoid.Health <= 0 then return end
local t = os.clock()
local rightIdleTarget, leftIdleTarget
local lerpSpeed = 0.15
-- RESET DA CABEÇA/CORPO (Modificado apenas na risada)
if neck then neck.C0 = originalNeck end
if rootJoint then rootJoint.C0 = originalRoot end
-- 1. PRIORIDADE: RIR
if isLaughing then
lerpSpeed = 0.3
local laughShake = math.sin(t * 25) * 0.05
local laughTwitch = math.cos(t * 20) * 0.05
-- Joga a cabeça para trás e treme o corpo
if neck then neck.C0 = originalNeck * CFrame.Angles(math.rad(-30) + laughTwitch, 0, laughShake) end
if rootJoint then rootJoint.C0 = originalRoot * CFrame.new(0, laughShake, 0) end
-- Mãos na barriga
rightIdleTarget = torso.CFrame * CFrame.new(0.4, -0.4, -0.6) * CFrame.Angles(math.rad(45) + laughTwitch, math.rad(-45), 0)
leftIdleTarget = torso.CFrame * CFrame.new(-0.4, -0.4, -0.6) * CFrame.Angles(math.rad(45) + laughTwitch, math.rad(45), 0)
-- 2. PRIORIDADE: ATACAR
elseif isAttacking and isEquipped then
lerpSpeed = 0.4
local elapsed = t - attackStartTime
if elapsed < 0.15 then
-- Puxar motosserra pra trás e pra cima
rightIdleTarget = torso.CFrame * CFrame.new(1.2, 1.5, 0) * CFrame.Angles(math.rad(160), math.rad(-20), 0)
leftIdleTarget = torso.CFrame * CFrame.new(-0.2, 1.2, -0.8) * CFrame.Angles(math.rad(130), math.rad(40), 0)
elseif elapsed < 0.5 then
-- Golpe rasgando para baixo
rightIdleTarget = torso.CFrame * CFrame.new(0.5, -1, -2.5) * CFrame.Angles(math.rad(20), math.rad(-30), 0)
leftIdleTarget = torso.CFrame * CFrame.new(-0.8, -0.5, -1.5) * CFrame.Angles(math.rad(40), math.rad(30), 0)
else
isAttacking = false
end
-- 3. PRIORIDADE: MOTOSSERRA GUARDADA (Mãos pra trás)
elseif not isEquipped then
lerpSpeed = 0.1
rightIdleTarget = torso.CFrame * CFrame.new(0.5, -0.6, 0.6) * CFrame.Angles(math.rad(-25), 0, math.rad(15))
leftIdleTarget = torso.CFrame * CFrame.new(-0.5, -0.6, 0.6) * CFrame.Angles(math.rad(-25), 0, math.rad(-15))
-- 4. PRIORIDADE: MOTOSSERRA EQUIPADA IDLE
else
lerpSpeed = 0.15
local shake = math.random(-8, 8) * 0.01 -- Tremedeira da serra ligada
local breath = math.sin(t * 3) * 0.05
rightIdleTarget = torso.CFrame * CFrame.new(1, -0.2 + breath, -1) * CFrame.Angles(math.rad(90) + shake, math.rad(-30) + shake, shake)
leftIdleTarget = torso.CFrame * CFrame.new(-0.2, -0.2 + breath, -1.5) * CFrame.Angles(math.rad(90) + shake, math.rad(40) + shake, shake)
end
-- Interpolação suave dos braços
currentRightPosition = currentRightPosition:Lerp(rightIdleTarget.Position, lerpSpeed)
currentLeftPosition = currentLeftPosition:Lerp(leftIdleTarget.Position, lerpSpeed)
currentRightCFrame = currentRightCFrame:Lerp(rightIdleTarget, lerpSpeed)
currentLeftCFrame = currentLeftCFrame:Lerp(leftIdleTarget, lerpSpeed)
rightBP.Position = currentRightPosition
rightBG.CFrame = currentRightCFrame
leftBP.Position = currentLeftPosition
leftBG.CFrame = currentLeftCFrame
end)
table.insert(vrConnections, currentRenderConn)
table.insert(vrConnections, char.AncestryChanged:Connect(function(_, parent)
if not parent and currentRenderConn then
currentRenderConn:Disconnect()
currentRenderConn = nil
end
end))
end
--====================================================--
-- RESPAWN HANDLE
--====================================================--
table.insert(vrConnections, player.CharacterAdded:Connect(function(char)
task.wait(0.5)
if scriptRunning then setupCharacter(char) end
end))
if player.Character then
task.spawn(function() setupCharacter(player.Character) end)
end
end
--========================================================--
-- EXECUTAR / RESETAR / PARAR
--========================================================--
local function executeScript()
if not isAllowedGame() then
status.Text = "🔒 JOGO NÃO COMPATÍVEL"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
return
end
if scriptRunning then
status.Text = "● SCRIPT JÁ ESTÁ EXECUTANDO"
status.TextColor3 = Color3.fromRGB(255, 220, 80)
return
end
scriptRunning = true
status.Text = "● SCRIPT EXECUTANDO"
status.TextColor3 = Color3.fromRGB(80, 255, 130)
StartModMode()
end
local function resetScript()
if not isAllowedGame() then return end
resetCharacter()
status.Text = "● PERSONAGEM RESETADO"
status.TextColor3 = Color3.fromRGB(255, 220, 80)
end
local function stopScript()
if not scriptRunning then
status.Text = "● SCRIPT JÁ ESTÁ PARADO"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
return
end
scriptRunning = false
for _, conn in ipairs(vrConnections) do
if conn then conn:Disconnect() end
end
table.clear(vrConnections)
for _, fx in ipairs(activeEffects) do
if fx then fx:Destroy() end
end
table.clear(activeEffects)
if vrGuiInstance then
vrGuiInstance:Destroy()
vrGuiInstance = nil
end
resetCharacter()
status.Text = "● SCRIPT PARADO"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
end
--========================================================--
-- CONECTAR BOTÕES DO HUB
--========================================================--
executeButton.MouseButton1Click:Connect(executeScript)
resetButton.MouseButton1Click:Connect(resetScript)
stopButton.MouseButton1Click:Connect(stopScript)
not fe
Holy AI