FE weirdo script
Key Required

FE weirdo script

[UP] Just a baseplate.Little_pancakeLittle_pancake 1.4K views 4.7K executesUpdated Sep 10, 2026
Unrated
00
Lua Script•679 lines (24080 chars)
--========================================================--
-- 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)

Features & Information

Idk

Community Comments (1)

lightarchives2099lightarchives2099Sep 16, 2026

AI

More Scripts for [UP] Just a baseplate.