
Keyless

--========================================================--
-- STRANGE HUB + MODO VR (INTEGRADO)
-- [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 player = Players.LocalPlayer
--========================================================--
-- CONFIGURAÇÃO DO HUB
--========================================================--
local ALLOWED_PLACE_ID = 123974602339071
local scriptRunning = false
local vrConnections = {}
local vrGuiInstance = nil
--========================================================--
-- VERIFICAR JOGO
--========================================================--
local function isAllowedGame()
return game.PlaceId == ALLOWED_PLACE_ID
end
--========================================================--
-- GUI PRINCIPAL (PAINEL HUB)
--========================================================--
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, 270)
panel.Position = UDim2.new(0.5, -135, 0.5, -135)
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, -20, 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, 43)
subtitle.BackgroundTransparency = 1
subtitle.Text = "[UP] JUST A BASEPLATE"
subtitle.TextColor3 = Color3.fromRGB(170, 170, 170)
subtitle.TextSize = 12
subtitle.Font = Enum.Font.Gotham
subtitle.Parent = panel
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -20, 0, 28)
status.Position = UDim2.new(0, 10, 0, 70)
status.BackgroundTransparency = 1
status.TextSize = 14
status.Font = Enum.Font.GothamBold
status.Parent = panel
local function createHubButton(text, position)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -30, 0, 45)
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 = 15
button.Font = Enum.Font.GothamBold
button.AutoButtonColor = true
button.Parent = panel
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, 105))
local resetButton = createHubButton("🔄 RESETAR", UDim2.new(0, 15, 0, 157))
local stopButton = createHubButton("⏹️ PARAR SCRIPT", UDim2.new(0, 15, 0, 209))
-- Status Inicial
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
--========================================================--
-- FUNÇÕES GERAIS DE CONTROLE
--========================================================--
local function resetCharacter()
local character = player.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
-- Matamos o personagem para que o jogo recrie o R6 puro,
-- restaurando as articulações (shoulders) que o script VR destrói.
humanoid.Health = 0
end
end
end
--========================================================--
-- LÓGICA DO PAYLOAD VR (O QUE ACONTECE AO DAR EXECUTAR)
--========================================================--
local function StartVRMode()
-- Limpa a sessão anterior se houver
if vrGuiInstance then vrGuiInstance:Destroy() end
for _, conn in ipairs(vrConnections) do
if conn then conn:Disconnect() end
end
table.clear(vrConnections)
--========================================================--
-- CONFIGURAÇÕES DO SCRIPT VR
--========================================================--
local JOYSTICK_RADIUS = 55
local ARM_DISTANCE = 2.2
local ARM_HEIGHT = 0.7
local ARM_FORWARD = -1.1
local SIDE_MOVEMENT = 2.4
local FORWARD_MOVEMENT = 2.8
local VERTICAL_MOVEMENT = 1.8
local ROTATION_X = 85
local ROTATION_Y = 80
local ROTATION_Z = 45
local SMOOTHNESS = 0.18
local LEFT_JOYSTICK_POSITION = UDim2.new(0, 95, 1, -125)
local RIGHT_JOYSTICK_POSITION = UDim2.new(1, -95, 1, -125)
--========================================================--
-- ENVIAR MENSAGEM NO CHAT
--========================================================--
task.spawn(function()
local message = "FE silly weird made by Little_pancake"
pcall(function()
if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
local channel = TextChatService.TextChannels:FindFirstChild("RBXGeneral")
if channel then channel:SendAsync(message) end
else
local events = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents")
if events then
local remote = events:FindFirstChild("SayMessageRequest")
if remote then remote:FireServer(message, "All") end
end
end
end)
end)
--========================================================--
-- GUI DO MODO VR
--========================================================--
vrGuiInstance = Instance.new("ScreenGui")
vrGuiInstance.Name = "StrangeHub_VRMode"
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
local function createVRButton(text, position, color)
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 190, 0, 45)
button.Position = position
button.BackgroundColor3 = color
button.BackgroundTransparency = 0.05
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.Text = text
button.TextSize = 14
button.Font = Enum.Font.GothamBold
button.AutoButtonColor = true
button.Active = true
button.Parent = vrGuiInstance
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = button
return button
end
local btnStrange = createVRButton("👽 Modo Estranho: OFF", UDim2.new(0.5, -200, 0.78, 0), Color3.fromRGB(150, 0, 255))
local btnSit = createVRButton("🪑 Sentar Suspeito: OFF", UDim2.new(0.5, 10, 0.78, 0), Color3.fromRGB(50, 150, 255))
local btn67 = createVRButton("🕺 Modo 67: OFF", UDim2.new(0.5, -200, 0.88, 0), Color3.fromRGB(255, 50, 150))
local btnVR = createVRButton("🥽 Modo VR: OFF", UDim2.new(0.5, 10, 0.88, 0), Color3.fromRGB(0, 100, 200))
local isStrangeMode = false
local isSuspiciousSit = false
local is67Mode = false
local isVRMode = false
local isPunching = false
local function createJoystick(name, position)
local frame = Instance.new("Frame")
frame.Name = name
frame.Size = UDim2.new(0, 150, 0, 150)
frame.Position = position
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BackgroundTransparency = 0.35
frame.Active = true
frame.Selectable = true
frame.Visible = false
frame.ZIndex = 20
frame.Parent = vrGuiInstance
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = frame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(255, 255, 255)
stroke.Thickness = 2
stroke.Transparency = 0.4
stroke.Parent = frame
local knob = Instance.new("Frame")
knob.Name = "Knob"
knob.Size = UDim2.new(0, 60, 0, 60)
knob.AnchorPoint = Vector2.new(0.5, 0.5)
knob.Position = UDim2.new(0.5, 0, 0.5, 0)
knob.BackgroundColor3 = Color3.fromRGB(240, 240, 240)
knob.Active = false
knob.ZIndex = 21
knob.Parent = frame
local knobCorner = Instance.new("UICorner")
knobCorner.CornerRadius = UDim.new(1, 0)
knobCorner.Parent = knob
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.Text = name
label.TextColor3 = Color3.fromRGB(0, 0, 0)
label.TextSize = 14
label.Font = Enum.Font.GothamBold
label.Active = false
label.ZIndex = 22
label.Parent = knob
return frame, knob
end
local leftFrame, leftKnob = createJoystick("L-Arm", LEFT_JOYSTICK_POSITION)
local rightFrame, rightKnob = createJoystick("R-Arm", RIGHT_JOYSTICK_POSITION)
local leftOffset, rightOffset = Vector2.zero, Vector2.zero
local leftDragging, rightDragging = false, false
local leftTouch, rightTouch = nil, nil
local function getInputPosition(input)
return Vector2.new(input.Position.X, input.Position.Y)
end
local function updateJoystick(frame, knob, inputPosition)
local center = frame.AbsolutePosition + (frame.AbsoluteSize / 2)
local delta = inputPosition - center
local maxDistance = JOYSTICK_RADIUS
if delta.Magnitude > maxDistance then
delta = delta.Unit * maxDistance
end
local normalized = Vector2.new(delta.X / maxDistance, delta.Y / maxDistance)
knob.Position = UDim2.new(0.5, delta.X, 0.5, delta.Y)
return normalized
end
local function resetJoystick(frame, knob)
knob.Position = UDim2.new(0.5, 0, 0.5, 0)
end
table.insert(vrConnections, leftFrame.InputBegan:Connect(function(input)
if not isVRMode then return end
if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
if leftDragging then return end
leftDragging = true
leftTouch = input
leftOffset = updateJoystick(leftFrame, leftKnob, getInputPosition(input))
end
end))
table.insert(vrConnections, rightFrame.InputBegan:Connect(function(input)
if not isVRMode then return end
if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
if rightDragging then return end
rightDragging = true
rightTouch = input
rightOffset = updateJoystick(rightFrame, rightKnob, getInputPosition(input))
end
end))
table.insert(vrConnections, UserInputService.InputChanged:Connect(function(input)
if not isVRMode then return end
if leftDragging and leftTouch and (input == leftTouch or input.UserInputType == Enum.UserInputType.MouseMovement) then
leftOffset = updateJoystick(leftFrame, leftKnob, getInputPosition(input))
end
if rightDragging and rightTouch and (input == rightTouch or input.UserInputType == Enum.UserInputType.MouseMovement) then
rightOffset = updateJoystick(rightFrame, rightKnob, getInputPosition(input))
end
end))
table.insert(vrConnections, UserInputService.InputEnded:Connect(function(input)
if leftTouch == input or (input.UserInputType == Enum.UserInputType.MouseButton1 and leftDragging) then
leftDragging, leftTouch, leftOffset = false, nil, Vector2.zero
resetJoystick(leftFrame, leftKnob)
end
if rightTouch == input or (input.UserInputType == Enum.UserInputType.MouseButton1 and rightDragging) then
rightDragging, rightTouch, rightOffset = false, nil, Vector2.zero
resetJoystick(rightFrame, rightKnob)
end
end))
local function resetAllModes()
isStrangeMode, isSuspiciousSit, is67Mode, isVRMode = false, false, false, false
btnStrange.Text = "👽 Modo Estranho: OFF"
btnStrange.BackgroundColor3 = Color3.fromRGB(150, 0, 255)
btnSit.Text = "🪑 Sentar Suspeito: OFF"
btnSit.BackgroundColor3 = Color3.fromRGB(50, 150, 255)
btn67.Text = "🕺 Modo 67: OFF"
btn67.BackgroundColor3 = Color3.fromRGB(255, 50, 150)
btnVR.Text = "🥽 Modo VR: OFF"
btnVR.BackgroundColor3 = Color3.fromRGB(0, 100, 200)
leftFrame.Visible, rightFrame.Visible = false, false
leftDragging, rightDragging = false, false
leftTouch, rightTouch = nil, nil
leftOffset, rightOffset = Vector2.zero, Vector2.zero
resetJoystick(leftFrame, leftKnob)
resetJoystick(rightFrame, rightKnob)
end
table.insert(vrConnections, btnStrange.MouseButton1Click:Connect(function()
local was = isStrangeMode
resetAllModes()
if not was then
isStrangeMode = true
btnStrange.Text = "👽 Modo Estranho: ON"
btnStrange.BackgroundColor3 = Color3.fromRGB(0, 255, 150)
end
end))
table.insert(vrConnections, btnSit.MouseButton1Click:Connect(function()
local was = isSuspiciousSit
resetAllModes()
if not was then
isSuspiciousSit = true
btnSit.Text = "🪑 Sentar Suspeito: ON"
btnSit.BackgroundColor3 = Color3.fromRGB(0, 255, 150)
end
end))
table.insert(vrConnections, btn67.MouseButton1Click:Connect(function()
local was = is67Mode
resetAllModes()
if not was then
is67Mode = true
btn67.Text = "🕺 Modo 67: ON"
btn67.BackgroundColor3 = Color3.fromRGB(0, 255, 150)
end
end))
table.insert(vrConnections, btnVR.MouseButton1Click:Connect(function()
local was = isVRMode
resetAllModes()
if not was then
isVRMode = true
btnVR.Text = "🥽 Modo VR: ON"
btnVR.BackgroundColor3 = Color3.fromRGB(0, 255, 150)
leftFrame.Visible, rightFrame.Visible = true, true
end
end))
table.insert(vrConnections, UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
if not isStrangeMode and not isSuspiciousSit and not is67Mode and not isVRMode then
isPunching = true
task.delay(0.25, function() isPunching = false end)
end
end
end))
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
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, leftArm.CanCollide = false, false
local function createMover(part)
local bp = Instance.new("BodyPosition")
bp.Name = "VR_ArmPosition"
bp.MaxForce = Vector3.new(1000000, 1000000, 1000000)
bp.P, bp.D = 25000, 1200
bp.Position = part.Position
bp.Parent = part
local bg = Instance.new("BodyGyro")
bg.Name = "VR_ArmRotation"
bg.MaxTorque = Vector3.new(1000000, 1000000, 1000000)
bg.P, bg.D = 25000, 1200
bg.CFrame = part.CFrame
bg.Parent = part
return bp, bg
end
local rightBP, rightBG = createMover(rightArm)
local leftBP, leftBG = createMover(leftArm)
local neck = torso:FindFirstChild("Neck")
local rootJoint = rootPart:FindFirstChild("RootJoint")
local rightHip = torso:FindFirstChild("Right Hip")
local leftHip = torso:FindFirstChild("Left Hip")
local originalNeck = neck and neck.C0 or CFrame.new()
local originalRoot = rootJoint and rootJoint.C0 or CFrame.new()
local originalRightHip = rightHip and rightHip.C0 or CFrame.new()
local originalLeftHip = leftHip and leftHip.C0 or CFrame.new()
local currentRightPosition, currentLeftPosition = rightArm.Position, leftArm.Position
local currentRightCFrame, currentLeftCFrame = rightArm.CFrame, leftArm.CFrame
local targetAngle, currentAngle = 0, 0
table.insert(vrConnections, rightArm.Touched:Connect(function(hit)
if not isStrangeMode or hit:IsDescendantOf(char) or not hit:IsA("BasePart") then return end
if hit.CanCollide then
targetAngle = math.random() > 0.5 and 60 or -60
task.delay(0.4, function() if char.Parent then targetAngle = 0 end end)
end
end))
currentRenderConn = RunService.RenderStepped:Connect(function()
if not scriptRunning then return end
if not char.Parent or humanoid.Health <= 0 then return end
local t = os.clock()
if neck and not isVRMode then
neck.C0 = originalNeck * CFrame.Angles(math.sin(t * 3) * 0.2, 0, math.cos(t * 2.5) * 0.2)
end
if isStrangeMode then
rightArm.CanCollide, leftArm.CanCollide = true, true
humanoid.WalkSpeed = 16
if rootJoint then rootJoint.C0 = originalRoot end
if rightHip then rightHip.C0 = originalRightHip end
if leftHip then leftHip.C0 = originalLeftHip end
currentAngle = currentAngle + (targetAngle - currentAngle) * 0.12
local pivot = torso.CFrame * CFrame.new(0, -1.2, -0.5) * CFrame.Angles(0, math.rad(currentAngle), 0)
local rTarget = pivot * CFrame.new(0, 0, -0.5) * CFrame.Angles(math.rad(90), 0, 0)
local lTarget = pivot * CFrame.new(0, 0, -2) * CFrame.Angles(math.rad(90), 0, 0)
rightBP.Position, rightBG.CFrame = rTarget.Position, rTarget
leftBP.Position, leftBG.CFrame = lTarget.Position, lTarget
elseif isSuspiciousSit then
rightArm.CanCollide, leftArm.CanCollide = false, false
humanoid.WalkSpeed = 0
if rootJoint then rootJoint.C0 = originalRoot * CFrame.new(0, 0, 1.5) * CFrame.Angles(math.rad(-20), 0, 0) end
if rightHip then rightHip.C0 = originalRightHip * CFrame.Angles(0, 0, math.rad(45)) end
if leftHip then leftHip.C0 = originalLeftHip * CFrame.Angles(0, 0, math.rad(-45)) end
local rTarget = torso.CFrame * CFrame.new(1.5, -1.5, -1) * CFrame.Angles(math.rad(-90), math.rad(45), 0)
local lTarget = torso.CFrame * CFrame.new(-1.5, -1.5, -1) * CFrame.Angles(math.rad(-90), math.rad(-45), 0)
rightBP.Position, rightBG.CFrame = rTarget.Position, rTarget
leftBP.Position, leftBG.CFrame = lTarget.Position, lTarget
elseif is67Mode then
rightArm.CanCollide, leftArm.CanCollide = false, false
humanoid.WalkSpeed = 16
if rootJoint then rootJoint.C0 = originalRoot end
if rightHip then rightHip.C0 = originalRightHip end
if leftHip then leftHip.C0 = originalLeftHip end
local lift = (math.sin(t * 12) + 1) / 2
local ang = math.rad(lift * 160)
local rTarget = torso.CFrame * CFrame.new(1.5, 0.5 * lift, 0) * CFrame.Angles(ang, 0, math.rad(10))
local lTarget = torso.CFrame * CFrame.new(-1.5, 0.5 * lift, 0) * CFrame.Angles(ang, 0, math.rad(-10))
rightBP.Position, rightBG.CFrame = rTarget.Position, rTarget
leftBP.Position, leftBG.CFrame = lTarget.Position, lTarget
elseif isVRMode then
rightArm.CanCollide, leftArm.CanCollide = false, false
humanoid.WalkSpeed = 16
if rootJoint then rootJoint.C0 = originalRoot end
if rightHip then rightHip.C0 = originalRightHip end
if leftHip then leftHip.C0 = originalLeftHip end
local rx, ry = rightOffset.X, rightOffset.Y
local rightSide, rightUp = rx * SIDE_MOVEMENT, -ry * VERTICAL_MOVEMENT
local rightTarget = torso.CFrame * CFrame.new(ARM_DISTANCE + rightSide, ARM_HEIGHT + rightUp, ARM_FORWARD) * CFrame.Angles(math.rad(90) + ry * math.rad(ROTATION_X), rx * math.rad(ROTATION_Y), rx * math.rad(ROTATION_Z))
local lx, ly = leftOffset.X, leftOffset.Y
local leftSide, leftUp = lx * SIDE_MOVEMENT, -ly * VERTICAL_MOVEMENT
local leftTarget = torso.CFrame * CFrame.new(-ARM_DISTANCE + leftSide, ARM_HEIGHT + leftUp, ARM_FORWARD) * CFrame.Angles(math.rad(90) + ly * math.rad(ROTATION_X), lx * math.rad(ROTATION_Y), lx * math.rad(-ROTATION_Z))
currentRightPosition = currentRightPosition:Lerp(rightTarget.Position, SMOOTHNESS)
currentLeftPosition = currentLeftPosition:Lerp(leftTarget.Position, SMOOTHNESS)
currentRightCFrame = currentRightCFrame:Lerp(rightTarget, SMOOTHNESS)
currentLeftCFrame = currentLeftCFrame:Lerp(leftTarget, SMOOTHNESS)
rightBP.Position, rightBG.CFrame = currentRightPosition, currentRightCFrame
leftBP.Position, leftBG.CFrame = currentLeftPosition, currentLeftCFrame
else
rightArm.CanCollide, leftArm.CanCollide = false, false
humanoid.WalkSpeed = 16
if rootJoint then rootJoint.C0 = originalRoot end
if rightHip then rightHip.C0 = originalRightHip end
if leftHip then leftHip.C0 = originalLeftHip end
local idleBreath = math.sin(t * 2.2) * 0.025
local idleSway = math.sin(t * 1.5) * 0.02
local rightIdleTarget = torso.CFrame * CFrame.new(-0.38 + idleSway, 0.05 + idleBreath, -0.48) * CFrame.Angles(math.rad(0), math.rad(-15), math.rad(-65))
local leftIdleTarget = torso.CFrame * CFrame.new(0.38 - idleSway, 0.05 + idleBreath, -0.62) * CFrame.Angles(math.rad(0), math.rad(15), math.rad(65))
if isPunching then
local punch = torso.CFrame * CFrame.new(0, 0.5, -2) * CFrame.Angles(math.rad(90), math.rad(-45), 0)
rightBP.Position, rightBG.CFrame = punch.Position, punch
else
currentRightPosition = currentRightPosition:Lerp(rightIdleTarget.Position, 0.12)
currentLeftPosition = currentLeftPosition:Lerp(leftIdleTarget.Position, 0.12)
currentRightCFrame = currentRightCFrame:Lerp(rightIdleTarget, 0.12)
currentLeftCFrame = currentLeftCFrame:Lerp(leftIdleTarget, 0.12)
rightBP.Position, rightBG.CFrame = currentRightPosition, currentRightCFrame
leftBP.Position, leftBG.CFrame = currentLeftPosition, currentLeftCFrame
end
end
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
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
--========================================================--
-- FUNÇÕES DOS BOTÕES (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)
StartVRMode()
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)
if vrGuiInstance then
vrGuiInstance:Destroy()
vrGuiInstance = nil
end
resetCharacter()
status.Text = "● SCRIPT PARADO"
status.TextColor3 = Color3.fromRGB(255, 80, 80)
end
executeButton.MouseButton1Click:Connect(executeScript)
resetButton.MouseButton1Click:Connect(resetScript)
stopButton.MouseButton1Click:Connect(stopScript)
AI