FE hyper aura menu (portuguese)
Key Required

FE hyper aura menu (portuguese)

[UP] Just a baseplate.Little_pancakeLittle_pancake 1.2K views 3.7K executesUpdated Sep 16, 2026
Unrated
00
Lua Script•955 lines (61710 chars)
--========================================================--
-- STACK HUB VIP + 32 AURAS + MODO PETS + MODO MINION + MODO COBRA 🐍
--========================================================--

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local running = false
local steppedConnection

local rightArm, leftArm, rightLeg, leftLeg
local rootPart, humanoid, character, torso
local fakeLimbs = {}
local limbTrails = {}

local currentRightArmCFrame, currentLeftArmCFrame
local currentRightLegCFrame, currentLeftLegCFrame

local hubGui
local mainPanel, statusLabel, auraButton, secondaryButton, petsButton, minionButton, snakeBtn
local panelOpen = true
local isAuraActive = false
local isSecondaryActive = false
local isPetsActive = false
local isMinionActive = false
local isSnakeActive = false
local targetPlayerName = ""
local selectedAura = "Basico"
local selectedSecondary = "Braços no Lugar"

local snakeHistory = {}
local snakeHiddenParts = {}

--========================================================--
-- SISTEMA DA COBRA (INVISIBILIDADE E RASTRO) 🐍
--========================================================--
local function hideBodyForSnake()
	local char = player.Character
	if not char then return end
	local safeParts = {["Right Arm"]=true, ["Left Arm"]=true, ["Right Leg"]=true, ["Left Leg"]=true, ["HumanoidRootPart"]=true}
	for _, v in pairs(char:GetDescendants()) do
		if v:IsA("BasePart") and not safeParts[v.Name] and not v.Name:match("Fake") then
			if v.Transparency < 1 then
				snakeHiddenParts[v] = v.Transparency
				v.Transparency = 1
			end
		elseif (v:IsA("Decal") or v:IsA("Texture")) then
			if v.Parent and safeParts[v.Parent.Name] then continue end
			if v.Parent and v.Parent.Name:match("Fake") then continue end
			if v.Transparency < 1 then
				snakeHiddenParts[v] = v.Transparency
				v.Transparency = 1
			end
		end
	end
end

local function showBodyForSnake()
	for part, trans in pairs(snakeHiddenParts) do
		if part and part.Parent then part.Transparency = trans end
	end
	snakeHiddenParts = {}
end

--========================================================--
-- BUSCAR ALVO DA AURA
--========================================================--
local function getTargetCenter()
	if targetPlayerName ~= "" then
		for _, p in ipairs(Players:GetPlayers()) do
			if p.Name:lower():sub(1, #targetPlayerName) == targetPlayerName:lower() or (p.DisplayName and p.DisplayName:lower():sub(1, #targetPlayerName) == targetPlayerName:lower()) then
				if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
					return p.Character.HumanoidRootPart.CFrame
				end
			end
		end
	end
	return rootPart and rootPart.CFrame or CFrame.new()
end

--========================================================--
-- CONFIGURAÇÃO DE COLISÃO, POSIÇÃO E RASTROS
--========================================================--
local function createTrail(part)
	if not part then return end
	local att0 = Instance.new("Attachment"); att0.Name = "TrailAtt0"; att0.Position = Vector3.new(0, 1, 0); att0.Parent = part
	local att1 = Instance.new("Attachment"); att1.Name = "TrailAtt1"; att1.Position = Vector3.new(0, -1, 0); att1.Parent = part

	local trail = Instance.new("Trail")  
	trail.Name = "LimbTrail"  
	trail.Attachment0 = att0  
	trail.Attachment1 = att1  
	trail.Color = ColorSequence.new({  
		ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 255)),  
		ColorSequenceKeypoint.new(1, Color3.fromRGB(150, 0, 255))  
	})  
	trail.Lifetime = 0.4  
	trail.MinLength = 0.1  
	trail.Parent = part  
	table.insert(limbTrails, trail)
end

local function bindR15Part(fakeLimb, part, yOffset)
	if part then
		for _, obj in ipairs(part:GetChildren()) do
			if obj:IsA("Motor6D") or obj:IsA("Weld") or obj:IsA("WeldConstraint") then obj:Destroy() end
		end
		part.CFrame = fakeLimb.CFrame * CFrame.new(0, yOffset, 0)
		local w = Instance.new("WeldConstraint"); w.Part0 = fakeLimb; w.Part1 = part; w.Parent = fakeLimb
	end
end

local function startAnimation()
	if steppedConnection then steppedConnection:Disconnect(); steppedConnection = nil end
	fakeLimbs = {}; limbTrails = {}; character = player.Character; if not character then return end
	humanoid = character:FindFirstChildOfClass("Humanoid"); rootPart = character:FindFirstChild("HumanoidRootPart")
	if not humanoid or not rootPart then return end
	local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15

	if isR15 then  
		torso = character:FindFirstChild("UpperTorso")  
		local function createFakeLimb(name, p1, p2, p3)  
			local fake = Instance.new("Part"); fake.Name = "Fake" .. name; fake.Size = Vector3.new(1, 2, 1); fake.Transparency = 1; fake.CanCollide = false; fake.Massless = false; fake.CFrame = rootPart.CFrame; fake.Parent = character; table.insert(fakeLimbs, fake)  
			for _, partName in ipairs({p1, p2, p3}) do  
				local realPart = character:FindFirstChild(partName)  
				if realPart then  
					if name:match("Arm") then realPart.CanCollide = true else realPart.CanCollide = false end  
				end  
			end  
			bindR15Part(fake, character:FindFirstChild(p1), 0.4)  
			bindR15Part(fake, character:FindFirstChild(p2), -0.2)  
			bindR15Part(fake, character:FindFirstChild(p3), -0.85)  
			createTrail(fake)  
			return fake  
		end  
		rightArm = createFakeLimb("RightArm", "RightUpperArm", "RightLowerArm", "RightHand")  
		leftArm = createFakeLimb("LeftArm", "LeftUpperArm", "LeftLowerArm", "LeftHand")  
		rightLeg = createFakeLimb("RightLeg", "RightUpperLeg", "RightLowerLeg", "RightFoot")  
		leftLeg = createFakeLimb("LeftLeg", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot")  
	else  
		torso = character:FindFirstChild("Torso")  
		rightArm = character:FindFirstChild("Right Arm"); leftArm = character:FindFirstChild("Left Arm")  
		rightLeg = character:FindFirstChild("Right Leg"); leftLeg = character:FindFirstChild("Left Leg")  
		for _, jName in ipairs({"Right Shoulder", "Left Shoulder", "Right Hip", "Left Hip"}) do    
			local j = torso:FindFirstChild(jName); if j then j:Destroy() end    
		end    
		rightArm.CanCollide = true; leftArm.CanCollide = true  
		rightLeg.CanCollide = false; leftLeg.CanCollide = false  
		rightArm.Massless = false; leftArm.Massless = false  
		rightLeg.Massless = true; leftLeg.Massless = true  
		createTrail(rightArm); createTrail(leftArm); createTrail(rightLeg); createTrail(leftLeg)  
	end  

	if not torso or not rightArm or not leftArm or not rightLeg or not leftLeg then return end  
	running = true; humanoid.BreakJointsOnDeath = false    

	currentRightArmCFrame = rightArm.CFrame; currentLeftArmCFrame = leftArm.CFrame    
	currentRightLegCFrame = rightLeg.CFrame; currentLeftLegCFrame = leftLeg.CFrame    
	  
	snakeHistory = {}  

	steppedConnection = RunService.Stepped:Connect(function(_, _)    
		if not running or not character or not rootPart or not humanoid or humanoid.Health <= 0 then return end    

		local now = os.clock()    
		local velocity = rootPart.AssemblyLinearVelocity    
		local speed = Vector3.new(velocity.X, 0, velocity.Z).Magnitude    
		local movement = math.clamp(speed / 16, 0, 1)    

		local targetRightArm, targetLeftArm, targetRightLeg, targetLeftLeg  

		if isSnakeActive then  
			local currentPos = rootPart.Position  
			local moveSpeed = speed  

			if #snakeHistory == 0 then  
				for i = 1, 35 do  
					local offset = rootPart.CFrame.LookVector * ((i - 1) * 0.45)  
					table.insert(snakeHistory, CFrame.lookAt(currentPos - Vector3.new(0, 2.7, 0) - offset, currentPos - Vector3.new(0, 2.7, 0) - offset + rootPart.CFrame.LookVector))  
				end  
			end  

			if (currentPos - snakeHistory[1].Position).Magnitude > 0.12 then  
				local look = rootPart.CFrame.LookVector  
				local flatLook = Vector3.new(look.X, 0, look.Z)  
				if flatLook.Magnitude < 0.01 then flatLook = Vector3.new(0, 0, -1) else flatLook = flatLook.Unit end  
				local newPos = currentPos - Vector3.new(0, 2.7, 0)  
				local newCF = CFrame.lookAt(newPos, newPos + flatLook)  
				table.insert(snakeHistory, 1, newCF)  
				if #snakeHistory > 35 then table.remove(snakeHistory) end  
			end  

			local snakeTime = now  
			local moving = moveSpeed > 1  
			local waveSpeed = moveSpeed < 5 and 4 or (moveSpeed < 14 and 8 or 14)  
			local waveAmplitude = moving and math.clamp(moveSpeed / 12, 0.35, 1.25) or 0.12  

			local function getSnakeSegment(index, phase, sideOffset)  
				local baseCF = snakeHistory[index] or snakeHistory[#snakeHistory]  
				local wave = math.sin(snakeTime * waveSpeed - phase) * waveAmplitude  
				local verticalWave = math.sin(snakeTime * waveSpeed * 0.5 - phase) * 0.12  
				local stretched = baseCF * CFrame.new(wave, verticalWave, sideOffset)  
				local bend = math.cos(snakeTime * waveSpeed - phase) * waveAmplitude * 0.25  
				return stretched * CFrame.Angles(bend, 0, wave * 0.18) * CFrame.Angles(math.rad(90), 0, 0)  
			end  

			local headCF = snakeHistory[1] or rootPart.CFrame * CFrame.new(0, -2.7, 0)  
			local headWave = math.sin(snakeTime * waveSpeed) * waveAmplitude * 0.35  
			targetRightArm = headCF * CFrame.new(headWave, 0, 0) * CFrame.Angles(math.rad(90), 0, headWave * 0.15)  
			targetLeftArm = getSnakeSegment(7, 1.4, 0)  
			targetRightLeg = getSnakeSegment(15, 2.8, 0)  
			targetLeftLeg = getSnakeSegment(23, 4.2, 0)  

			if not moving then  
				local breathe = math.sin(now * 2.5) * 0.08  
				targetRightArm = targetRightArm * CFrame.new(0, breathe, 0)  
				targetLeftArm = targetLeftArm * CFrame.new(0, breathe * 0.8, 0)  
				targetRightLeg = targetRightLeg * CFrame.new(0, breathe * 0.6, 0)  
				targetLeftLeg = targetLeftLeg * CFrame.new(0, breathe * 0.4, 0)  
			end  

		elseif isMinionActive then
			local groundCF = rootPart.CFrame * CFrame.new(0, -2.5, 0)
			local minionWalkSpeed = movement > 0.05 and 20 or 5
			local minionCycle = now * minionWalkSpeed
			
			local stepR1 = math.max(0, math.sin(minionCycle)) * 0.6
			local stepL1 = math.max(0, math.sin(minionCycle + math.pi)) * 0.6
			local stepR2 = math.max(0, math.sin(minionCycle + math.pi * 0.5)) * 0.6
			local stepL2 = math.max(0, math.sin(minionCycle + math.pi * 1.5)) * 0.6
			local sway = math.sin(minionCycle * 0.5) * 0.15

			targetRightArm = groundCF * CFrame.new(3, stepR1, -1.5) * CFrame.Angles(0, sway, math.rad(math.sin(minionCycle) * 15))
			targetLeftArm  = groundCF * CFrame.new(-3, stepL1, -1.5) * CFrame.Angles(0, -sway, math.rad(math.sin(minionCycle + math.pi) * 15))
			targetRightLeg = groundCF * CFrame.new(1.5, stepR2, 3) * CFrame.Angles(0, sway, math.rad(math.sin(minionCycle + math.pi * 0.5) * 15))
			targetLeftLeg  = groundCF * CFrame.new(-1.5, stepL2, 3) * CFrame.Angles(0, -sway, math.rad(math.sin(minionCycle + math.pi * 1.5) * 15))

		elseif isPetsActive then  
			local centerCF = rootPart.CFrame  
			local p1 = movement > 0.05 and math.abs(math.sin(now * 12)) * 1 or 0  
			local p2 = movement > 0.05 and math.abs(math.sin(now * 12 + 1)) * 1 or 0  
			local p3 = movement > 0.05 and math.abs(math.sin(now * 12 + 2)) * 1 or 0  
			local p4 = movement > 0.05 and math.abs(math.sin(now * 12 + 3)) * 1 or 0  
			local tilt = CFrame.Angles(math.rad(movement * -15), 0, 0)  
			  
			targetRightArm = centerCF * CFrame.new(2.5, -2 + p1, 1.5) * tilt  
			targetLeftArm  = centerCF * CFrame.new(-2.5, -2 + p2, 1.5) * tilt  
			targetRightLeg = centerCF * CFrame.new(1.2, -2 + p3, 3) * tilt  
			targetLeftLeg  = centerCF * CFrame.new(-1.2, -2 + p4, 3) * tilt  
			  
		elseif isAuraActive then  
			local organicX = math.noise(now * 0.4, 0, 0) * 0.8
			local organicY = math.noise(0, now * 0.4, 0) * 0.8
			local organicZ = math.noise(0, 0, now * 0.4) * 0.8
			local centerCF = getTargetCenter() * CFrame.new(organicX, organicY, organicZ)
			
			local t = now * 4  

			if selectedAura == "Basico" then  
				targetRightLeg = centerCF * CFrame.new(math.cos(t) * 2, math.sin(t * 1.3) * 1.5, math.sin(t) * 2) * CFrame.Angles(t, t, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(t + 1.5) * 2, math.sin(t * 1.7) * 1.5, math.sin(t + 1.5) * 2) * CFrame.Angles(0, t, t)  
				targetRightArm = centerCF * CFrame.new(math.cos(t + 3.0) * 2.5, math.sin(t * 1.1) * 2, math.sin(t + 3.0) * 2.5) * CFrame.Angles(t, 0, t)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(t + 4.5) * 2.5, math.sin(t * 1.4) * 2, math.sin(t + 4.5) * 2.5) * CFrame.Angles(0, t, t)  
			elseif selectedAura == "Minions no chão" then  
				targetRightLeg = centerCF * CFrame.new(math.cos(t) * 2.5, -2 + math.sin(t * 2) * 0.3, math.sin(t) * 2.5) * CFrame.Angles(t, 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(t + 1.5) * 2.5, -2 + math.sin(t * 2 + 1) * 0.3, math.sin(t + 1.5) * 2.5) * CFrame.Angles(0, t, 0)  
				targetRightArm = centerCF * CFrame.new(math.cos(t + 3) * 3, -2 + math.sin(t * 2 + 2) * 0.3, math.sin(t + 3) * 3) * CFrame.Angles(0, 0, t)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(t + 4.5) * 3, -2 + math.sin(t * 2 + 3) * 0.3, math.sin(t + 4.5) * 3) * CFrame.Angles(t, t, 0)  
			elseif selectedAura == "Braços grandes" then  
				targetRightLeg = centerCF * CFrame.new(math.cos(t) * 3, math.sin(t) * 2, math.sin(t) * 3) * CFrame.Angles(t, t, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(t + 1.5) * 3, math.sin(t) * 2, math.sin(t + 1.5) * 3) * CFrame.Angles(0, t, t)  
				targetRightArm = centerCF * CFrame.new(math.cos(t + 3) * 4.5, math.sin(t * 1.5) * 3, math.sin(t + 3) * 4.5) * CFrame.Angles(t * 1.5, t, 0)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(t + 4.5) * 4.5, math.sin(t * 1.5) * 3, math.sin(t + 4.5) * 4.5) * CFrame.Angles(0, t * 1.5, t)  
			elseif selectedAura == "Aura bugada de bracos e pernas rapido" then  
				local r1, r2, r3, r4 = math.random(-5,5), math.random(-2,3), math.random(-5,5), math.random(-2,3)  
				targetRightLeg = centerCF * CFrame.new(r1, r2, r3) * CFrame.Angles(math.rad(math.random(0,360)), math.rad(math.random(0,360)), 0)  
				targetLeftLeg  = centerCF * CFrame.new(r3, r4, r1) * CFrame.Angles(0, math.rad(math.random(0,360)), math.rad(math.random(0,360)))  
				targetRightArm = centerCF * CFrame.new(r2, r1, r4) * CFrame.Angles(math.rad(math.random(0,360)), 0, math.rad(math.random(0,360)))  
				targetLeftArm  = centerCF * CFrame.new(r4, r3, r2) * CFrame.Angles(math.rad(math.random(0,360)), math.rad(math.random(0,360)), math.rad(math.random(0,360)))  
			
			--====================================================--  
			-- AURAS COM O EFEITO SINE PENDULAR (LENTO E SUAVE)
			--====================================================--  
			elseif selectedAura == "Orbitação (Vai e Vem)" then  
				local st = math.sin(now * 0.9) * 5
				local h = math.sin(st) * 3  
				targetRightLeg = centerCF * CFrame.new(math.cos(st) * (3 - h*0.3), h, math.sin(st) * (3 - h*0.3)) * CFrame.Angles(st, st, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(st + 1.5) * (3 - h*0.3), h, math.sin(st + 1.5) * (3 - h*0.3)) * CFrame.Angles(0, st, st)  
				targetRightArm = centerCF * CFrame.new(math.cos(st + 3) * (4 - h*0.3), h + 1, math.sin(st + 3) * (4 - h*0.3)) * CFrame.Angles(st, 0, st)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(st + 4.5) * (4 - h*0.3), h + 1, math.sin(st + 4.5) * (4 - h*0.3)) * CFrame.Angles(0, st, st)  
			
			elseif selectedAura == "Espiral (Vai e Vem)" then  
				local st = math.sin(now * 0.9) * 4
				targetRightLeg = centerCF * CFrame.new(2, math.sin(st) * 3, 2) * CFrame.Angles(st, 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(-2, math.cos(st) * 3, -2) * CFrame.Angles(0, st, 0)  
				targetRightArm = centerCF * CFrame.new(3, math.sin(st + 1.5) * 3, -3) * CFrame.Angles(0, 0, st)  
				targetLeftArm  = centerCF * CFrame.new(-3, math.cos(st + 1.5) * 3, 3) * CFrame.Angles(st, st, 0)  
			
			elseif selectedAura == "Escudo (Vai e Vem)" then  
				local st = math.sin(now * 0.8) * 6
				targetRightLeg = centerCF * CFrame.new(math.cos(st) * 1.2, 0, math.sin(st) * 1.2) * CFrame.Angles(0, st, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(st + math.pi) * 1.2, 0, math.sin(st + math.pi) * 1.2) * CFrame.Angles(0, st, 0)  
				targetRightArm = centerCF * CFrame.new(math.cos(st + math.pi/2) * 1.8, 0.5, math.sin(st + math.pi/2) * 1.8) * CFrame.Angles(st, 0, 0)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(st + math.pi*1.5) * 1.8, 0.5, math.sin(st + math.pi*1.5) * 1.8) * CFrame.Angles(st, 0, 0)  
			
			elseif selectedAura == "Plasma (Vai e Vem)" then  
				local st = math.sin(now * 0.7) * 7
				local r = 1.5 + math.sin(now * 2) * 1  
				targetRightLeg = centerCF * CFrame.new(math.cos(st)*r, math.sin(st)*2, math.sin(st)*r) * CFrame.Angles(st, st, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(st + 1.57)*r, math.cos(st)*2, math.sin(st + 1.57)*r) * CFrame.Angles(0, st, st)  
				targetRightArm = centerCF * CFrame.new(math.cos(st + 3.14)*r, -math.sin(st)*2, math.sin(st + 3.14)*r) * CFrame.Angles(st, 0, st)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(st + 4.71)*r, -math.cos(st)*2, math.sin(st + 4.71)*r) * CFrame.Angles(0, st, st)  
			
			elseif selectedAura == "Helicóptero (Vai e Vem)" then  
				local spin = math.sin(now * 0.9) * 12
				targetRightArm = centerCF * CFrame.new(0, 2.5, 0) * CFrame.Angles(0, spin, math.rad(90)) * CFrame.new(0, 1.5, 0)  
				targetLeftArm  = centerCF * CFrame.new(0, 2.5, 0) * CFrame.Angles(0, spin + math.pi/2, math.rad(90)) * CFrame.new(0, 1.5, 0)  
				targetRightLeg = centerCF * CFrame.new(0, 2.5, 0) * CFrame.Angles(0, spin + math.pi, math.rad(90)) * CFrame.new(0, 1.5, 0)  
				targetLeftLeg  = centerCF * CFrame.new(0, 2.5, 0) * CFrame.Angles(0, spin + math.pi*1.5, math.rad(90)) * CFrame.new(0, 1.5, 0)  

			elseif selectedAura == "Caos absoluto (Vai e Vem)" then  
				local caosTime = math.sin(now * 0.8) * 12 
				local rx, ry, rz = math.sin(caosTime * 0.8) * 4, math.cos(caosTime * 0.6) * 3, math.sin(caosTime) * 4  
				
				targetRightLeg = centerCF * CFrame.new(rx, ry, rz) * CFrame.Angles(rx, ry, rz)  
				targetLeftLeg  = centerCF * CFrame.new(-rx, -ry, -rz) * CFrame.Angles(rz, ry, rx)  
				targetRightArm = centerCF * CFrame.new(rz, rx, ry) * CFrame.Angles(ry, rz, rx)  
				targetLeftArm  = centerCF * CFrame.new(-rz, -rx, -ry) * CFrame.Angles(rx, rz, ry) 

			elseif selectedAura == "Helicóptero nas Costas (Vai e Vem)" then  
				-- Rotação pendular suave (vai e vem) com as mãos separadas nas costas
				local spinBack = math.sin(now * 1.2) * math.pi * 3  
				targetRightArm = centerCF * CFrame.new(0.9, 0.2, -1.1) * CFrame.Angles(math.rad(15), spinBack, math.rad(90))  
				targetLeftArm  = centerCF * CFrame.new(-0.9, 0.2, -1.1) * CFrame.Angles(math.rad(15), spinBack + math.pi, math.rad(90))  
				targetRightLeg = centerCF * CFrame.new(0.4, -0.8, -0.9) * CFrame.Angles(0, spinBack + math.pi/2, 0)  
				targetLeftLeg  = centerCF * CFrame.new(-0.4, -0.8, -0.9) * CFrame.Angles(0, spinBack + math.pi*1.5, 0)  
			
			--====================================================--  
			
			elseif selectedAura == "Explosão expansiva" then  
				local pulse = 2 + math.sin(now * 5) * 2.5  
				targetRightLeg = centerCF * CFrame.new(math.cos(t) * pulse, 0, math.sin(t) * pulse) * CFrame.Angles(t, 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(t + 1.5) * pulse, 0, math.sin(t + 1.5) * pulse) * CFrame.Angles(0, t, 0)  
				targetRightArm = centerCF * CFrame.new(math.cos(t + 3) * (pulse * 1.3), 1, math.sin(t + 3) * (pulse * 1.3)) * CFrame.Angles(0, 0, t)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(t + 4.5) * (pulse * 1.3), 1, math.sin(t + 4.5) * (pulse * 1.3)) * CFrame.Angles(t, t, 0)  
			elseif selectedAura == "Dança caótica" then  
				local dt = now * 8  
				targetRightLeg = centerCF * CFrame.new(math.sin(dt) * 2.5, math.cos(dt * 2) * 1, math.cos(dt) * 2.5) * CFrame.Angles(dt, dt, dt)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(dt) * 2.5, math.sin(dt * 2) * 1, math.sin(dt) * 2.5) * CFrame.Angles(-dt, dt, 0)  
				targetRightArm = centerCF * CFrame.new(math.sin(dt + 2) * 3, math.cos(dt) * 1.5, math.cos(dt + 2) * 3) * CFrame.Angles(0, -dt, dt)  
				targetLeftArm  = centerCF * CFrame.new(math.cos(dt + 2) * 3, math.sin(dt) * 1.5, math.sin(dt + 2) * 3) * CFrame.Angles(dt, 0, -dt)  
			elseif selectedAura == "Cyber Neon" then  
				local st = now * 7  
				targetRightLeg = centerCF * CFrame.new(math.cos(st)*2.2, 1, math.sin(st)*2.2) * CFrame.Angles(0, st, st)  
				targetLeftLeg  = centerCF * CFrame.new(math.cos(st + math.pi)*2.2, 1, math.sin(st + math.pi)*2.2) * CFrame.Angles(st, 0, st)  
				targetRightArm = centerCF * CFrame.new(math.sin(st)*2.8, -1, math.cos(st)*2.8) * CFrame.Angles(st, st, 0)  
				targetLeftArm  = centerCF * CFrame.new(math.sin(st + math.pi)*2.8, -1, math.cos(st + math.pi)*2.8) * CFrame.Angles(0, st, st)  
			elseif selectedAura == "Glitch Destruidor" then  
				local cycleTime = (now * 0.7) % 14  
				local glitchAngle = 0  
				if cycleTime < 2.5 then glitchAngle = cycleTime * 1.5   
				elseif cycleTime < 6 then glitchAngle = 3.75 + (cycleTime - 2.5) * 6.5  
				elseif cycleTime < 7.5 then glitchAngle = 26.5 + (cycleTime - 6) * 1.5  
				elseif cycleTime < 9.5 then glitchAngle = 28.75 - (cycleTime - 7.5) * 7  
				elseif cycleTime < 12 then glitchAngle = 14.75 - (cycleTime - 9.5) * 1.5  
				else glitchAngle = 11 + (cycleTime - 12) * 5 end  
				local snap = math.floor(now * 15)  
				local gx = (math.noise(snap, 1) * 0.8)  
				local gy = (math.noise(1, snap) * 0.8)  
				targetRightLeg = centerCF * CFrame.new(gx, gy, -0.6) * CFrame.Angles(0, 0, glitchAngle)  
				targetLeftLeg  = centerCF * CFrame.new(gx, gy, -0.2) * CFrame.Angles(0, 0, glitchAngle)  
				targetRightArm = centerCF * CFrame.new(gx, gy,  0.2) * CFrame.Angles(0, 0, glitchAngle)  
				targetLeftArm  = centerCF * CFrame.new(gx, gy,  0.6) * CFrame.Angles(0, 0, glitchAngle)  
			elseif selectedAura == "Colosso Mecânico" then  
				local st = now * 1.5  
				targetRightLeg = centerCF * CFrame.new(3, math.sin(st)*0.5 - 1, 0) * CFrame.Angles(0, 0, math.rad(15))  
				targetLeftLeg  = centerCF * CFrame.new(-3, math.cos(st)*0.5 - 1, 0) * CFrame.Angles(0, 0, math.rad(-15))  
				targetRightArm = centerCF * CFrame.new(4, math.sin(st)*0.5 + 1, 0) * CFrame.Angles(0, 0, math.rad(-15))  
				targetLeftArm  = centerCF * CFrame.new(-4, math.cos(st)*0.5 + 1, 0) * CFrame.Angles(0, 0, math.rad(15))  
			elseif selectedAura == "Fuga Gravitacional" then  
				local floatY = (math.sin(now * 3) + 1) * 2.5  
				targetRightLeg = centerCF * CFrame.new(1.2, floatY, 0) * CFrame.Angles(now, 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(-1.2, floatY + 0.5, 0) * CFrame.Angles(0, now, 0)  
				targetRightArm = centerCF * CFrame.new(0, floatY + 1.5, 1.2) * CFrame.Angles(0, 0, now)  
				targetLeftArm  = centerCF * CFrame.new(0, floatY + 1.5, -1.2) * CFrame.Angles(now, now, 0)  
			elseif selectedAura == "Asas Angelicais" then  
				local flap = math.sin(now * 6) * 0.4  
				targetRightArm = centerCF * CFrame.new(0.8, 1, 1) * CFrame.Angles(math.rad(30), math.rad(45), flap + math.rad(30))  
				targetRightLeg = centerCF * CFrame.new(1.2, -0.5, 1.2) * CFrame.Angles(math.rad(15), math.rad(60), flap + math.rad(45))  
				targetLeftArm  = centerCF * CFrame.new(-0.8, 1, 1) * CFrame.Angles(math.rad(30), math.rad(-45), -flap - math.rad(30))  
				targetLeftLeg  = centerCF * CFrame.new(-1.2, -0.5, 1.2) * CFrame.Angles(math.rad(15), math.rad(-60), -flap - math.rad(45))  
			elseif selectedAura == "Asas Demoníacas" then  
				local flap = math.sin(now * 14) * 0.7  
				targetRightArm = centerCF * CFrame.new(1.2, 1.5, 0.5) * CFrame.Angles(math.rad(-30), math.rad(20), flap + math.rad(60))  
				targetRightLeg = centerCF * CFrame.new(1.8, 0, 0.8) * CFrame.Angles(math.rad(-50), math.rad(35), flap + math.rad(80))  
				targetLeftArm  = centerCF * CFrame.new(-1.2, 1.5, 0.5) * CFrame.Angles(math.rad(-30), math.rad(-20), -flap - math.rad(60))  
				targetLeftLeg  = centerCF * CFrame.new(-1.8, 0, 0.8) * CFrame.Angles(math.rad(-50), math.rad(-35), -flap - math.rad(80))  
			elseif selectedAura == "Horror Rastejante" then  
				local twitch = math.floor(now * 20)  
				local nx = math.noise(twitch, 1) * 0.6  
				targetRightArm = centerCF * CFrame.new(2 + nx, -2, -1) * CFrame.Angles(nx, 0, math.rad(90))  
				targetLeftArm  = centerCF * CFrame.new(-2 - nx, -2, -1) * CFrame.Angles(nx, 0, math.rad(-90))  
				targetRightLeg = centerCF * CFrame.new(2.5 + nx, -2, 1.5) * CFrame.Angles(-nx, 0, math.rad(90))  
				targetLeftLeg  = centerCF * CFrame.new(-2.5 - nx, -2, 1.5) * CFrame.Angles(-nx, 0, math.rad(-90))  
			elseif selectedAura == "Vulto Sombrio" then  
				local sh = math.sin(now * 5)  
				targetRightArm = centerCF * CFrame.new(0, 3 + sh, 2) * CFrame.Angles(math.rad(90), now * 10, 0)  
				targetLeftArm  = centerCF * CFrame.new(0, 2 - sh, 2.5) * CFrame.Angles(math.rad(90), -now * 8, 0)  
				targetRightLeg = centerCF * CFrame.new(0.5, 4 + sh, 1.5) * CFrame.Angles(math.rad(90), now * 12, 0)  
				targetLeftLeg  = centerCF * CFrame.new(-0.5, 4 - sh, 1.5) * CFrame.Angles(math.rad(90), -now * 15, 0)  
			elseif selectedAura == "Macaco Louco" then  
				local swing = math.sin(now * 8) * 1.5  
				targetRightArm = centerCF * CFrame.new(1.5, -2, -1 + swing) * CFrame.Angles(swing*0.5, 0, math.rad(15))  
				targetLeftArm  = centerCF * CFrame.new(-1.5, -2, -1 - swing) * CFrame.Angles(-swing*0.5, 0, math.rad(-15))  
				targetRightLeg = centerCF * CFrame.new(1.5, 1 + swing, 1) * CFrame.Angles(0, 0, math.rad(15))  
				targetLeftLeg  = centerCF * CFrame.new(-1.5, 1 - swing, 1) * CFrame.Angles(0, 0, math.rad(-15))  
			elseif selectedAura == "Mira Precisa" then  
				targetRightArm = centerCF * CFrame.new(0.6, 0.5, -2.5) * CFrame.Angles(math.rad(-90), 0, 0)  
				targetLeftArm  = centerCF * CFrame.new(-0.6, 0.5, -2.5) * CFrame.Angles(math.rad(-90), 0, 0)  
				targetRightLeg = centerCF * CFrame.new(1.5, -2, 1) * CFrame.Angles(math.rad(30), 0, math.rad(20))  
				targetLeftLeg  = centerCF * CFrame.new(-1.5, -2, 1) * CFrame.Angles(math.rad(30), 0, math.rad(-20))  
			elseif selectedAura == "Formação Tática" then  
				local breath = math.sin(now * 3) * 0.5  
				targetRightArm = centerCF * CFrame.new(2 + breath, 0, -2 - breath) * CFrame.Angles(0, math.rad(45), 0)  
				targetLeftArm  = centerCF * CFrame.new(-2 - breath, 0, -2 - breath) * CFrame.Angles(0, math.rad(-45), 0)  
				targetRightLeg = centerCF * CFrame.new(2 + breath, 0, 2 + breath) * CFrame.Angles(0, math.rad(135), 0)  
				targetLeftLeg  = centerCF * CFrame.new(-2 - breath, 0, 2 + breath) * CFrame.Angles(0, math.rad(-135), 0)  
			elseif selectedAura == "Escudo de Espadas" then  
				local rot = now * 5  
				local spin2 = now * 20  
				targetRightArm = centerCF * CFrame.Angles(0, rot, math.rad(45)) * CFrame.new(3, 0, 0) * CFrame.Angles(0, spin2, 0)  
				targetLeftArm  = centerCF * CFrame.Angles(0, rot + math.pi/2, math.rad(45)) * CFrame.new(3, 0, 0) * CFrame.Angles(0, spin2, 0)  
				targetRightLeg = centerCF * CFrame.Angles(0, rot + math.pi, math.rad(45)) * CFrame.new(3, 0, 0) * CFrame.Angles(0, spin2, 0)  
				targetLeftLeg  = centerCF * CFrame.Angles(0, rot + math.pi*1.5, math.rad(45)) * CFrame.new(3, 0, 0) * CFrame.Angles(0, spin2, 0)  
			elseif selectedAura == "Aura Divina" then  
				local haloRot = now * 2  
				targetRightArm = centerCF * CFrame.new(0, 2.8, 0) * CFrame.Angles(0, haloRot, 0) * CFrame.new(1.5, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)  
				targetLeftArm  = centerCF * CFrame.new(0, 2.8, 0) * CFrame.Angles(0, haloRot + math.pi/2, 0) * CFrame.new(1.5, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)  
				targetRightLeg = centerCF * CFrame.new(0, 2.8, 0) * CFrame.Angles(0, haloRot + math.pi, 0) * CFrame.new(1.5, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(0, 2.8, 0) * CFrame.Angles(0, haloRot + math.pi*1.5, 0) * CFrame.new(1.5, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)  
			  
			-- ================= 5 AURAS SUS ================= --  
			elseif selectedAura == "Sarrada Suspeita" then  
				local thrust = math.sin(now * 15) * 1.5  
				targetRightLeg = centerCF * CFrame.new(0.6, -1.5, thrust) * CFrame.Angles(math.rad(-45), 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(-0.6, -1.5, thrust) * CFrame.Angles(math.rad(-45), 0, 0)  
				targetRightArm = centerCF * CFrame.new(1.2, 0, thrust) * CFrame.Angles(math.rad(30), 0, 0)  
				targetLeftArm  = centerCF * CFrame.new(-1.2, 0, thrust) * CFrame.Angles(math.rad(30), 0, 0)  
			elseif selectedAura == "Mão Boba" then  
				local wander = math.sin(now * 6) * 1.5  
				local bob = math.cos(now * 8) * 0.5  
				targetRightArm = centerCF * CFrame.new(wander, -1 + bob, 1.2) * CFrame.Angles(math.rad(-60), math.rad(-90), 0)  
				targetLeftArm  = centerCF * CFrame.new(-wander, -1 - bob, -1.2) * CFrame.Angles(math.rad(60), math.rad(90), 0)  
				targetRightLeg = centerCF * CFrame.new(1.5, -2, 0) * CFrame.Angles(0, 0, math.rad(10))  
				targetLeftLeg  = centerCF * CFrame.new(-1.5, -2, 0) * CFrame.Angles(0, 0, math.rad(-10))  
			elseif selectedAura == "Pernas na Cabeça" then  
				local earFlap = math.sin(now * 8) * 0.5  
				targetRightLeg = centerCF * CFrame.new(0.6, 2.5, 0) * CFrame.Angles(0, 0, earFlap)  
				targetLeftLeg  = centerCF * CFrame.new(-0.6, 2.5, 0) * CFrame.Angles(0, 0, -earFlap)  
				targetRightArm = centerCF * CFrame.new(0.6, -2, 0) * CFrame.Angles(0, 0, 0)   
				targetLeftArm  = centerCF * CFrame.new(-0.6, -2, 0) * CFrame.Angles(0, 0, 0)  
			elseif selectedAura == "Espasmo Desconfortável" then  
				local rx, ry, rz = (math.random()-0.5)*0.5, (math.random()-0.5)*0.5, (math.random()-0.5)*0.5  
				targetRightArm = centerCF * CFrame.new(0.6+rx, ry, -0.6+rz) * CFrame.Angles(math.rad(-30), math.rad(-45), 0)  
				targetLeftArm  = centerCF * CFrame.new(-0.6+rx, ry, -0.6+rz) * CFrame.Angles(math.rad(-30), math.rad(45), 0)  
				targetRightLeg = centerCF * CFrame.new(0.6+rx, -1+ry, 0.6+rz) * CFrame.Angles(math.rad(30), math.rad(-45), 0)  
				targetLeftLeg  = centerCF * CFrame.new(-0.6+rx, -1+ry, 0.6+rz) * CFrame.Angles(math.rad(30), math.rad(45), 0)  
			elseif selectedAura == "Centopeia Bizarra" then  
				local snake = math.sin(now * 10) * 1.5  
				local snake2 = math.sin(now * 10 - 1) * 1.5  
				local snake3 = math.sin(now * 10 - 2) * 1.5  
				local snake4 = math.sin(now * 10 - 3) * 1.5  
				targetRightArm = centerCF * CFrame.new(snake, -2, 1.5) * CFrame.Angles(math.rad(-90), 0, 0)  
				targetLeftArm  = centerCF * CFrame.new(snake2, -2, 3) * CFrame.Angles(math.rad(-90), 0, 0)  
				targetRightLeg = centerCF * CFrame.new(snake3, -2, 4.5) * CFrame.Angles(math.rad(-90), 0, 0)  
				targetLeftLeg  = centerCF * CFrame.new(snake4, -2, 6) * CFrame.Angles(math.rad(-90), 0, 0)  
			end  
		else  
			local walkCycle = now * 8
			local legStep = math.sin(walkCycle)
			local leftLegStep = math.sin(walkCycle + math.pi)
			local armStep = math.sin(walkCycle + math.pi)
			local leftArmStep = math.sin(walkCycle)

			if movement > 0.05 then  
				local bounce = math.abs(math.sin(walkCycle * 2)) * 0.4 * movement
				local sway = math.sin(walkCycle) * 0.1 * movement

				targetRightLeg = rootPart.CFrame * CFrame.new(0.5, -2 + math.max(0, legStep)*0.6 + bounce, legStep * 1.2 * movement) * CFrame.Angles(math.rad(legStep * 50 * movement), 0, sway)    
				targetLeftLeg  = rootPart.CFrame * CFrame.new(-0.5, -2 + math.max(0, leftLegStep)*0.6 + bounce, leftLegStep * 1.2 * movement) * CFrame.Angles(math.rad(leftLegStep * 50 * movement), 0, -sway)    
				
				targetRightArm = rootPart.CFrame * CFrame.new(1.5, -0.5 + bounce, armStep * 1.2 * movement) * CFrame.Angles(math.rad(armStep * 45 * movement), 0, math.rad(5))  
				targetLeftArm  = rootPart.CFrame * CFrame.new(-1.5, -0.5 + bounce, leftArmStep * 1.2 * movement) * CFrame.Angles(math.rad(leftArmStep * 45 * movement), 0, math.rad(-5))  
			else  
				local breathe = math.sin(now * 3) * 0.08
				local idleSway = math.sin(now * 1.5) * 0.04

				targetRightLeg = rootPart.CFrame * CFrame.new(0.5, -2, 0)
				targetLeftLeg  = rootPart.CFrame * CFrame.new(-0.5, -2, 0)

				targetRightArm = rootPart.CFrame * CFrame.new(1.5, -0.5 + breathe, 0) * CFrame.Angles(0, 0, math.rad(5) + idleSway)
				targetLeftArm  = rootPart.CFrame * CFrame.new(-1.5, -0.5 + breathe, 0) * CFrame.Angles(0, 0, math.rad(-5) - idleSway)
			end    
		end  

		if isSecondaryActive then  
			local secTime = now * 8  
			if selectedSecondary == "Braços no Lugar" then  
				if torso then  
					targetRightArm = torso.CFrame * CFrame.new(1.3, 0.2, 0) * CFrame.Angles(0, 0, 0)  
					targetLeftArm  = torso.CFrame * CFrame.new(-1.3, 0.2, 0) * CFrame.Angles(0, 0, 0)  
				end  
			elseif selectedSecondary == "Pulso Vertical" then  
				local pulse = math.sin(secTime) * 1.2  
				targetRightLeg = targetRightLeg * CFrame.new(0, pulse, 0)  
				targetLeftLeg  = targetLeftLeg  * CFrame.new(0, pulse, 0)  
				targetRightArm = targetRightArm * CFrame.new(0, pulse, 0)  
				targetLeftArm  = targetLeftArm  * CFrame.new(0, pulse, 0)  
			elseif selectedSecondary == "Tremor Sísmico" then  
				local jx = (math.random() - 0.5) * 0.8  
				local jy = (math.random() - 0.5) * 0.8  
				targetRightLeg = targetRightLeg * CFrame.new(jx, jy, 0)  
				targetLeftLeg  = targetLeftLeg  * CFrame.new(-jx, jy, 0)  
				targetRightArm = targetRightArm * CFrame.new(jx, -jy, 0)  
				targetLeftArm  = targetLeftArm  * CFrame.new(-jx, -jy, 0)  
			elseif selectedSecondary == "Órbita Secundária" then  
				local rot = secTime * 3  
				targetRightLeg = targetRightLeg * CFrame.Angles(0, rot, 0)  
				targetLeftLeg  = targetLeftLeg  * CFrame.Angles(0, rot, 0)  
				targetRightArm = targetRightArm * CFrame.Angles(0, rot, 0)  
				targetLeftArm  = targetLeftArm  * CFrame.Angles(0, rot, 0)  
			elseif selectedSecondary == "Balanço Lateral" then  
				local tilt = math.cos(secTime) * 0.6  
				targetRightLeg = targetRightLeg * CFrame.Angles(0, 0, tilt)  
				targetLeftLeg  = targetLeftLeg  * CFrame.Angles(0, 0, -tilt)  
				targetRightArm = targetRightArm * CFrame.Angles(0, 0, tilt)  
				targetLeftArm  = targetLeftArm  * CFrame.Angles(0, 0, -tilt)  
			end  
		end  

		currentRightArmCFrame = currentRightArmCFrame:Lerp(targetRightArm, 0.25)    
		currentLeftArmCFrame  = currentLeftArmCFrame:Lerp(targetLeftArm, 0.25)    
		currentRightLegCFrame = currentRightLegCFrame:Lerp(targetRightLeg, 0.25)    
		currentLeftLegCFrame  = currentLeftLegCFrame:Lerp(targetLeftLeg, 0.25)    

		rightArm.CFrame = currentRightArmCFrame; leftArm.CFrame = currentLeftArmCFrame    
		rightLeg.CFrame = currentRightLegCFrame; leftLeg.CFrame = currentLeftLegCFrame    
		rightArm.AssemblyLinearVelocity = Vector3.zero; leftArm.AssemblyLinearVelocity = Vector3.zero    
		rightLeg.AssemblyLinearVelocity = Vector3.zero; leftLeg.AssemblyLinearVelocity = Vector3.zero    
	end)
end

local function stopAnimation()
	running = false; isAuraActive = false; isSecondaryActive = false; isPetsActive = false; isMinionActive = false

	if isSnakeActive then  
		isSnakeActive = false  
		showBodyForSnake()  
		if character and character:FindFirstChild("Humanoid") then  
			character.Humanoid.CameraOffset = Vector3.new(0, 0, 0)  
		end  
		if snakeBtn then snakeBtn.Text = "🐍 MODO COBRA: OFF"; snakeBtn.BackgroundColor3 = Color3.fromRGB(20, 120, 60) end  
	end  
	  
	if steppedConnection then steppedConnection:Disconnect(); steppedConnection = nil end    
	if fakeLimbs then for _, f in ipairs(fakeLimbs) do if f then f:Destroy() end end; fakeLimbs = {} end  
	if limbTrails then for _, t in ipairs(limbTrails) do if t then t:Destroy() end end; limbTrails = {} end  
	if statusLabel then statusLabel.Text = "Status: OFF (Dê Reset/Spawn)" end  
	if auraButton then auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150) end  
	if secondaryButton then secondaryButton.Text = "EFEITO SECUNDÁRIO: OFF"; secondaryButton.BackgroundColor3 = Color3.fromRGB(50, 120, 150) end  
	if petsButton then petsButton.Text = "MODO PETS: OFF"; petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20) end
	if minionButton then minionButton.Text = "MODO MINION: OFF"; minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20) end
end

--========================================================--
-- FUNÇÃO PARA TORNAR ELEMENTOS ARRASTÁVEIS (MOUSE E TOQUE)
--========================================================--
local function makeDraggable(guiObject)
	local dragging, dragInput, dragStart, startPos

	guiObject.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = guiObject.Position
			
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)

	guiObject.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)

	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			local delta = input.Position - dragStart
			guiObject.Position = UDim2.new(
				startPos.X.Scale, 
				startPos.X.Offset + delta.X, 
				startPos.Y.Scale, 
				startPos.Y.Offset + delta.Y
			)
		end
	end)
end

--========================================================--
-- INTRO DO HUB
--========================================================--
local function playIntro(onComplete)
	local introGui = Instance.new("ScreenGui"); introGui.Name = "StackHubIntro"; introGui.ResetOnSpawn = false; introGui.IgnoreGuiInset = true; introGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling; introGui.Parent = player:WaitForChild("PlayerGui")
	local bgFrame = Instance.new("Frame", introGui); bgFrame.Size = UDim2.fromScale(1, 1); bgFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 12); bgFrame.BackgroundTransparency = 1
	local container = Instance.new("Frame", introGui); container.Size = UDim2.new(0, 350, 0, 150); container.Position = UDim2.fromScale(0.5, 0.5); container.AnchorPoint = Vector2.new(0.5, 0.5); container.BackgroundColor3 = Color3.fromRGB(20, 20, 25); container.BorderSizePixel = 0; container.BackgroundTransparency = 1; Instance.new("UICorner", container).CornerRadius = UDim.new(0, 16)
	local containerStroke = Instance.new("UIStroke", container); containerStroke.Thickness = 2; containerStroke.Color = Color3.fromRGB(80, 80, 80); containerStroke.Transparency = 1

	local titleLabel = Instance.new("TextLabel", container); titleLabel.Size = UDim2.new(1, 0, 0, 40); titleLabel.Position = UDim2.new(0, 0, 0.05, 0); titleLabel.BackgroundTransparency = 1; titleLabel.Text = "STACK HUB VIP"; titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255); titleLabel.TextScaled = true; titleLabel.Font = Enum.Font.GothamBlack; titleLabel.TextTransparency = 1  
	local playerName = player.DisplayName or player.Name  
	local creditsLabel = Instance.new("TextLabel", container); creditsLabel.Size = UDim2.new(1, 0, 0, 20); creditsLabel.Position = UDim2.new(0, 0, 0.22, 0); creditsLabel.BackgroundTransparency = 1; creditsLabel.Text = "Criado por " .. playerName; creditsLabel.TextColor3 = Color3.fromRGB(0, 200, 255); creditsLabel.TextScaled = true; creditsLabel.Font = Enum.Font.GothamBold; creditsLabel.TextTransparency = 1  

	local howItWorksLabel = Instance.new("TextLabel", container); howItWorksLabel.Size = UDim2.new(1, -40, 0, 50); howItWorksLabel.Position = UDim2.new(0, 20, 0, 95); howItWorksLabel.BackgroundTransparency = 1; howItWorksLabel.Text = "✨ Hub VIP Moderno com Helicóptero nas Costas e UI Arrastável!"; howItWorksLabel.TextColor3 = Color3.fromRGB(180, 180, 180); howItWorksLabel.TextWrapped = true; howItWorksLabel.TextScaled = true; howItWorksLabel.TextXAlignment = Enum.TextXAlignment.Left; howItWorksLabel.Font = Enum.Font.GothamMedium; howItWorksLabel.TextTransparency = 1  
	local skipButton = Instance.new("TextButton", container); skipButton.Size = UDim2.new(0, 220, 0, 45); skipButton.Position = UDim2.new(0.5, -110, 0, 160); skipButton.BackgroundColor3 = Color3.fromRGB(0, 120, 200); skipButton.BorderSizePixel = 0; skipButton.Text = "ENTRAR NO HUB"; skipButton.TextColor3 = Color3.fromRGB(255, 255, 255); skipButton.TextScaled = true; skipButton.Font = Enum.Font.GothamBold; skipButton.TextTransparency = 1; skipButton.BackgroundTransparency = 1; Instance.new("UICorner", skipButton).CornerRadius = UDim.new(0, 8)  

	TweenService:Create(bgFrame, TweenInfo.new(0.4), { BackgroundTransparency = 0.3 }):Play()  
	TweenService:Create(container, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { BackgroundTransparency = 0, Size = UDim2.new(0, 420, 0, 230) }):Play()  
	TweenService:Create(containerStroke, TweenInfo.new(0.4), { Transparency = 0.2 }):Play(); TweenService:Create(titleLabel, TweenInfo.new(0.5), { TextTransparency = 0 }):Play(); TweenService:Create(creditsLabel, TweenInfo.new(0.5), { TextTransparency = 0 }):Play(); TweenService:Create(howItWorksLabel, TweenInfo.new(0.5), { TextTransparency = 0 }):Play(); TweenService:Create(skipButton, TweenInfo.new(0.5), { TextTransparency = 0, BackgroundTransparency = 0 }):Play()  

	local skipped = false  
	skipButton.Activated:Connect(function()  
		if skipped then return end; skipped = true  
		TweenService:Create(bgFrame, TweenInfo.new(0.4), { BackgroundTransparency = 1 }):Play(); TweenService:Create(container, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { BackgroundTransparency = 1, Size = UDim2.new(0, 350, 0, 150) }):Play(); TweenService:Create(containerStroke, TweenInfo.new(0.4), { Transparency = 1 }):Play(); TweenService:Create(titleLabel, TweenInfo.new(0.3), { TextTransparency = 1 }):Play(); TweenService:Create(creditsLabel, TweenInfo.new(0.3), { TextTransparency = 1 }):Play(); TweenService:Create(howItWorksLabel, TweenInfo.new(0.3), { TextTransparency = 1 }):Play(); TweenService:Create(skipButton, TweenInfo.new(0.3), { TextTransparency = 1, BackgroundTransparency = 1 }):Play()  
		task.wait(0.4); introGui:Destroy(); if onComplete then onComplete() end  
	end)
end

--========================================================--
-- HUB PRINCIPAL MAIOR, ARRASTÁVEL E COM ARCO-ÍRIS
--========================================================--
local function createHub()
	hubGui = Instance.new("ScreenGui"); hubGui.Name = "StackHubVIP"; hubGui.ResetOnSpawn = false; hubGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling; hubGui.Parent = player:WaitForChild("PlayerGui")

	-- Botão Flutuante [ S ] Arrastável
	local openButton = Instance.new("TextButton", hubGui)
	openButton.Size = UDim2.new(0, 50, 0, 50)
	openButton.Position = UDim2.new(0, 20, 0, 20)
	openButton.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
	openButton.BackgroundTransparency = 0.2
	openButton.BorderSizePixel = 0
	openButton.Text = "S"
	openButton.TextColor3 = Color3.fromRGB(0, 200, 255)
	openButton.TextScaled = true
	openButton.Font = Enum.Font.GothamBlack
	openButton.ZIndex = 100
	Instance.new("UICorner", openButton).CornerRadius = UDim.new(0, 14)
	local openStroke = Instance.new("UIStroke", openButton)
	openStroke.Thickness = 2
	openStroke.Color = Color3.fromRGB(0, 150, 255)
	makeDraggable(openButton)
	  
	-- Painel Principal Maior (340x480) Arrastável
	mainPanel = Instance.new("Frame", hubGui)
	mainPanel.Size = UDim2.new(0, 340, 0, 480)
	mainPanel.Position = UDim2.new(0.5, -170, 0.5, -240)
	mainPanel.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
	mainPanel.BackgroundTransparency = 0.08
	mainPanel.BorderSizePixel = 0
	mainPanel.ZIndex = 50
	Instance.new("UICorner", mainPanel).CornerRadius = UDim.new(0, 18)
	
	-- Borda com Arco-Íris Animado no Painel Principal
	local panelStroke = Instance.new("UIStroke", mainPanel)
	panelStroke.Thickness = 2.5
	
	task.spawn(function()
		while mainPanel and mainPanel.Parent do
			local hue = (os.clock() * 0.2) % 1
			panelStroke.Color = Color3.fromHSV(hue, 0.8, 1)
			task.wait(0.05)
		end
	end)

	makeDraggable(mainPanel)

	local title = Instance.new("TextLabel", mainPanel); title.Size = UDim2.new(1, -55, 0, 36); title.Position = UDim2.new(0, 12, 0, 6); title.BackgroundTransparency = 1; title.Text = "STACK HUB VIP"; title.TextColor3 = Color3.fromRGB(255, 255, 255); title.TextScaled = true; title.Font = Enum.Font.GothamBlack; title.ZIndex = 51  
	local closeButton = Instance.new("TextButton", mainPanel); closeButton.Size = UDim2.new(0, 30, 0, 30); closeButton.Position = UDim2.new(1, -38, 0, 8); closeButton.BackgroundTransparency = 1; closeButton.Text = "×"; closeButton.TextColor3 = Color3.fromRGB(255, 100, 100); closeButton.TextScaled = true; closeButton.Font = Enum.Font.GothamBold; closeButton.ZIndex = 100  

	statusLabel = Instance.new("TextLabel", mainPanel); statusLabel.Size = UDim2.new(1, -24, 0, 20); statusLabel.Position = UDim2.new(0, 12, 0, 38); statusLabel.BackgroundTransparency = 1; statusLabel.Text = "Status: OFF"; statusLabel.TextColor3 = Color3.fromRGB(180, 180, 180); statusLabel.TextScaled = true; statusLabel.Font = Enum.Font.Gotham; statusLabel.ZIndex = 51  

	local tabsContainer = Instance.new("Frame", mainPanel); tabsContainer.Size = UDim2.new(1, -24, 0, 34); tabsContainer.Position = UDim2.new(0, 12, 0, 62); tabsContainer.BackgroundTransparency = 1  
	local contentContainer = Instance.new("Frame", mainPanel); contentContainer.Size = UDim2.new(1, -24, 1, -108); contentContainer.Position = UDim2.new(0, 12, 0, 102); contentContainer.BackgroundTransparency = 1  

	local tabs = {"Anim", "Player", "Mundo", "Scripts"}  
	local tabPages = {}  

	for i, tabName in ipairs(tabs) do  
		local tabBtn = Instance.new("TextButton", tabsContainer)  
		tabBtn.Size = UDim2.new(1 / #tabs, -3, 1, 0); tabBtn.Position = UDim2.new((i - 1) / #tabs, i > 1 and 3 or 0, 0, 0)  
		tabBtn.BackgroundColor3 = (i == 1) and Color3.fromRGB(0, 120, 200) or Color3.fromRGB(35, 35, 45)  
		tabBtn.BorderSizePixel = 0; tabBtn.Text = tabName; tabBtn.TextColor3 = Color3.new(1, 1, 1); tabBtn.TextScaled = true; tabBtn.Font = Enum.Font.GothamBold; Instance.new("UICorner", tabBtn).CornerRadius = UDim.new(0, 8)  

		local page = Instance.new("ScrollingFrame", contentContainer)  
		page.Size = UDim2.fromScale(1, 1); page.BackgroundTransparency = 1; page.Visible = (i == 1); page.CanvasSize = UDim2.new(0, 0, 0, 750); page.ScrollBarThickness = 4  
		tabPages[tabName] = {btn = tabBtn, page = page}  

		tabBtn.Activated:Connect(function()  
			for name, data in pairs(tabPages) do  
				data.page.Visible = (name == tabName)  
				data.btn.BackgroundColor3 = (name == tabName) and Color3.fromRGB(0, 120, 200) or Color3.fromRGB(35, 35, 45)  
			end  
		end)  
	end  

	-- ABA 1: ANIMAÇÃO  
	local p1 = tabPages["Anim"].page  
	  
	local execute = Instance.new("TextButton", p1)  
	execute.Size = UDim2.new(1, 0, 0, 36); execute.Position = UDim2.new(0, 0, 0, 5)  
	execute.BackgroundColor3 = Color3.fromRGB(0, 140, 70); execute.BorderSizePixel = 0  
	execute.Text = "INICIAR ANIMAÇÃO"; execute.TextColor3 = Color3.new(1, 1, 1); execute.TextScaled = true; execute.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", execute).CornerRadius = UDim.new(0, 8)  
	execute.Activated:Connect(function() startAnimation(); if running then statusLabel.Text = "Status: ON" end end)  

	auraButton = Instance.new("TextButton", p1)  
	auraButton.Size = UDim2.new(1, 0, 0, 36); auraButton.Position = UDim2.new(0, 0, 0, 48)  
	auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150); auraButton.BorderSizePixel = 0  
	auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.TextColor3 = Color3.new(1, 1, 1); auraButton.TextScaled = true; auraButton.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", auraButton).CornerRadius = UDim.new(0, 8)  
	auraButton.Activated:Connect(function()  
		isAuraActive = not isAuraActive; isPetsActive = false; isMinionActive = false
		if isAuraActive then  
			auraButton.Text = "AURA DE MEMBROS: ON"; auraButton.BackgroundColor3 = Color3.fromRGB(160, 70, 220)
			petsButton.Text = "MODO PETS: OFF"; petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20)
			minionButton.Text = "MODO MINION: OFF"; minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20) 
		else  
			auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)  
		end  
	end)  

	local dropdownBtn = Instance.new("TextButton", p1)  
	dropdownBtn.Size = UDim2.new(1, 0, 0, 36); dropdownBtn.Position = UDim2.new(0, 0, 0, 91)  
	dropdownBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 55); dropdownBtn.BorderSizePixel = 0  
	dropdownBtn.Text = "Aura: Basico ▾"; dropdownBtn.TextColor3 = Color3.new(1, 1, 1); dropdownBtn.TextScaled = true; dropdownBtn.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", dropdownBtn).CornerRadius = UDim.new(0, 8)  

	local dropdownList = Instance.new("ScrollingFrame", p1)  
	dropdownList.Size = UDim2.new(1, 0, 0, 160); dropdownList.Position = UDim2.new(0, 0, 0, 131)  
	dropdownList.BackgroundColor3 = Color3.fromRGB(25, 25, 32); dropdownList.BorderSizePixel = 0  
	dropdownList.Visible = false; dropdownList.CanvasSize = UDim2.new(0, 0, 0, 32 * 29); dropdownList.ScrollBarThickness = 4  
	Instance.new("UICorner", dropdownList).CornerRadius = UDim.new(0, 8)  
	Instance.new("UIStroke", dropdownList).Color = Color3.fromRGB(70, 70, 90)  

	local auras = {  
		"Basico", "Minions no chão", "Braços grandes", "Aura bugada de bracos e pernas rapido",  
		"Orbitação (Vai e Vem)", "Explosão expansiva", "Espiral (Vai e Vem)", "Dança caótica",  
		"Escudo (Vai e Vem)", "Caos absoluto (Vai e Vem)", "Helicóptero nas Costas (Vai e Vem)", "Cyber Neon", "Glitch Destruidor",  
		"Colosso Mecânico", "Fuga Gravitacional", "Plasma (Vai e Vem)",  
		"Asas Angelicais", "Asas Demoníacas", "Horror Rastejante", "Vulto Sombrio",  
		"Helicóptero (Vai e Vem)", "Macaco Louco", "Mira Precisa", "Formação Tática",  
		"Escudo de Espadas", "Aura Divina",   
		"Sarrada Suspeita", "Mão Boba", "Pernas na Cabeça", "Espasmo Desconfortável",   
		"Centopeia Bizarra"  
	}  

	local dropdownOpen = false  
	dropdownBtn.Activated:Connect(function() dropdownOpen = not dropdownOpen; dropdownList.Visible = dropdownOpen end)  

	for idx, auraName in ipairs(auras) do  
		local optBtn = Instance.new("TextButton", dropdownList)  
		optBtn.Size = UDim2.new(1, -6, 0, 28); optBtn.Position = UDim2.new(0, 3, 0, (idx - 1) * 29)  
		optBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50); optBtn.BorderSizePixel = 0  
		optBtn.Text = auraName; optBtn.TextColor3 = Color3.new(1, 1, 1); optBtn.TextScaled = true; optBtn.Font = Enum.Font.Gotham  
		Instance.new("UICorner", optBtn).CornerRadius = UDim.new(0, 6)  
		optBtn.Activated:Connect(function()  
			selectedAura = auraName; dropdownBtn.Text = "Aura: " .. auraName .. " ▾"  
			dropdownOpen = false; dropdownList.Visible = false  
		end)  
	end  

	-- SISTEMA SECUNDÁRIO  
	secondaryButton = Instance.new("TextButton", p1)  
	secondaryButton.Size = UDim2.new(1, 0, 0, 36); secondaryButton.Position = UDim2.new(0, 0, 0, 298)  
	secondaryButton.BackgroundColor3 = Color3.fromRGB(50, 120, 150); secondaryButton.BorderSizePixel = 0  
	secondaryButton.Text = "EFEITO SECUNDÁRIO: OFF"; secondaryButton.TextColor3 = Color3.new(1, 1, 1); secondaryButton.TextScaled = true; secondaryButton.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", secondaryButton).CornerRadius = UDim.new(0, 8)  
	secondaryButton.Activated:Connect(function()  
		isSecondaryActive = not isSecondaryActive  
		if isSecondaryActive then  
			secondaryButton.Text = "EFEITO SECUNDÁRIO: ON"; secondaryButton.BackgroundColor3 = Color3.fromRGB(70, 170, 210)  
		else  
			secondaryButton.Text = "EFEITO SECUNDÁRIO: OFF"; secondaryButton.BackgroundColor3 = Color3.fromRGB(50, 120, 150)  
		end  
	end)  

	local secDropdownBtn = Instance.new("TextButton", p1)  
	secDropdownBtn.Size = UDim2.new(1, 0, 0, 36); secDropdownBtn.Position = UDim2.new(0, 0, 0, 341)  
	secDropdownBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 55); secDropdownBtn.BorderSizePixel = 0  
	secDropdownBtn.Text = "Modo: Braços no Lugar ▾"; secDropdownBtn.TextColor3 = Color3.new(1, 1, 1); secDropdownBtn.TextScaled = true; secDropdownBtn.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", secDropdownBtn).CornerRadius = UDim.new(0, 8)  

	local secDropdownList = Instance.new("ScrollingFrame", p1)  
	secDropdownList.Size = UDim2.new(1, 0, 0, 120); secDropdownList.Position = UDim2.new(0, 0, 0, 381)  
	secDropdownList.BackgroundColor3 = Color3.fromRGB(25, 25, 32); secDropdownList.BorderSizePixel = 0  
	secDropdownList.Visible = false; secDropdownList.CanvasSize = UDim2.new(0, 0, 0, 5 * 29); secDropdownList.ScrollBarThickness = 4  
	Instance.new("UICorner", secDropdownList).CornerRadius = UDim.new(0, 8)  
	Instance.new("UIStroke", secDropdownList).Color = Color3.fromRGB(70, 70, 90)  

	local secondaryModes = {"Braços no Lugar", "Pulso Vertical", "Tremor Sísmico", "Órbita Secundária", "Balanço Lateral"}  
	local secDropdownOpen = false  
	secDropdownBtn.Activated:Connect(function() secDropdownOpen = not secDropdownOpen; secDropdownList.Visible = secDropdownOpen end)  

	for idx, modeName in ipairs(secondaryModes) do  
		local optBtn = Instance.new("TextButton", secDropdownList)  
		optBtn.Size = UDim2.new(1, -6, 0, 28); optBtn.Position = UDim2.new(0, 3, 0, (idx - 1) * 29)  
		optBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50); optBtn.BorderSizePixel = 0  
		optBtn.Text = modeName; optBtn.TextColor3 = Color3.new(1, 1, 1); optBtn.TextScaled = true; optBtn.Font = Enum.Font.Gotham  
		Instance.new("UICorner", optBtn).CornerRadius = UDim.new(0, 6)  
		optBtn.Activated:Connect(function()  
			selectedSecondary = modeName; secDropdownBtn.Text = "Modo: " .. modeName .. " ▾"  
			secDropdownOpen = false; secDropdownList.Visible = false  
		end)  
	end  

	-- MODO PETS  
	petsButton = Instance.new("TextButton", p1)  
	petsButton.Size = UDim2.new(1, 0, 0, 36); petsButton.Position = UDim2.new(0, 0, 0, 510)  
	petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20); petsButton.BorderSizePixel = 0  
	petsButton.Text = "MODO PETS: OFF"; petsButton.TextColor3 = Color3.new(1, 1, 1); petsButton.TextScaled = true; petsButton.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", petsButton).CornerRadius = UDim.new(0, 8)  
	petsButton.Activated:Connect(function()  
		isPetsActive = not isPetsActive; isAuraActive = false; isMinionActive = false
		if isPetsActive then  
			petsButton.Text = "MODO PETS: ON"; petsButton.BackgroundColor3 = Color3.fromRGB(220, 120, 30)
			auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)
			minionButton.Text = "MODO MINION: OFF"; minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20)  
		else  
			petsButton.Text = "MODO PETS: OFF"; petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20)  
		end  
	end)  

	-- MODO MINION
	minionButton = Instance.new("TextButton", p1)  
	minionButton.Size = UDim2.new(1, 0, 0, 36); minionButton.Position = UDim2.new(0, 0, 0, 552)  
	minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20); minionButton.BorderSizePixel = 0  
	minionButton.Text = "MODO MINION: OFF"; minionButton.TextColor3 = Color3.new(1, 1, 1); minionButton.TextScaled = true; minionButton.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", minionButton).CornerRadius = UDim.new(0, 8)  
	minionButton.Activated:Connect(function()  
		isMinionActive = not isMinionActive; isAuraActive = false; isPetsActive = false
		if isMinionActive then  
			minionButton.Text = "MODO MINION: ON"; minionButton.BackgroundColor3 = Color3.fromRGB(240, 160, 30)  
			auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)
			petsButton.Text = "MODO PETS: OFF"; petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20)
		else  
			minionButton.Text = "MODO MINION: OFF"; minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20)  
		end  
	end)

	-- BARRA DE ALVO (TEXTBOX)  
	local playerBox = Instance.new("TextBox", p1)  
	playerBox.Size = UDim2.new(1, 0, 0, 36); playerBox.Position = UDim2.new(0, 0, 0, 598)  
	playerBox.BackgroundColor3 = Color3.fromRGB(35, 35, 45); playerBox.BorderSizePixel = 0  
	playerBox.PlaceholderText = "Nome do jogador alvo (vazio = você)"  
	playerBox.Text = ""; playerBox.TextColor3 = Color3.new(1, 1, 1); playerBox.TextScaled = true; playerBox.Font = Enum.Font.GothamMedium  
	Instance.new("UICorner", playerBox).CornerRadius = UDim.new(0, 8)  
	playerBox:GetPropertyChangedSignal("Text"):Connect(function() targetPlayerName = playerBox.Text end)  

	local stop = Instance.new("TextButton", p1)  
	stop.Size = UDim2.new(1, 0, 0, 38); stop.Position = UDim2.new(0, 0, 0, 642)  
	stop.BackgroundColor3 = Color3.fromRGB(150, 40, 40); stop.BorderSizePixel = 0  
	stop.Text = "PARAR ANIMAÇÃO"; stop.TextColor3 = Color3.new(1, 1, 1); stop.TextScaled = true; stop.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", stop).CornerRadius = UDim.new(0, 8)  
	stop.Activated:Connect(function() stopAnimation() end)  

	-- ABA 2: PLAYER  
	local p2 = tabPages["Player"].page  
	  
	snakeBtn = Instance.new("TextButton", p2)  
	snakeBtn.Size = UDim2.new(1, 0, 0, 40)  
	snakeBtn.Position = UDim2.new(0, 0, 0, 5)  
	snakeBtn.BackgroundColor3 = Color3.fromRGB(20, 120, 60)  
	snakeBtn.BorderSizePixel = 0  
	snakeBtn.Text = "🐍 MODO COBRA: OFF"  
	snakeBtn.TextColor3 = Color3.new(1, 1, 1)  
	snakeBtn.TextScaled = true  
	snakeBtn.Font = Enum.Font.GothamBold  
	Instance.new("UICorner", snakeBtn).CornerRadius = UDim.new(0, 8)  
	  
	snakeBtn.Activated:Connect(function()  
		if not running then startAnimation() end  
		isSnakeActive = not isSnakeActive  
		if isSnakeActive then  
			isAuraActive = false; isPetsActive = false; isMinionActive = false 
			auraButton.Text = "AURA DE MEMBROS: OFF"; auraButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)  
			petsButton.Text = "MODO PETS: OFF"; petsButton.BackgroundColor3 = Color3.fromRGB(150, 80, 20)  
			minionButton.Text = "MODO MINION: OFF"; minionButton.BackgroundColor3 = Color3.fromRGB(180, 120, 20)
			  
			snakeBtn.Text = "🐍 MODO COBRA: ON"  
			snakeBtn.BackgroundColor3 = Color3.fromRGB(40, 180, 80)  
			  
			hideBodyForSnake()  
			if character and character:FindFirstChild("Humanoid") then  
				character.Humanoid.CameraOffset = Vector3.new(0, -2.5, 0)  
			end  
		else  
			snakeBtn.Text = "🐍 MODO COBRA: OFF"  
			snakeBtn.BackgroundColor3 = Color3.fromRGB(20, 120, 60)  
			  
			showBodyForSnake()  
			if character and character:FindFirstChild("Humanoid") then  
				character.Humanoid.CameraOffset = Vector3.new(0, 0, 0)  
			end  
		end  
	end)  

	local function createStatBtn(y, text, callback)  
		local btn = Instance.new("TextButton", p2); btn.Size = UDim2.new(1, 0, 0, 40); btn.Position = UDim2.new(0, 0, 0, y); btn.BackgroundColor3 = Color3.fromRGB(40, 40, 50); btn.BorderSizePixel = 0; btn.Text = text; btn.TextColor3 = Color3.new(1, 1, 1); btn.TextScaled = true; btn.Font = Enum.Font.GothamBold; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)  
		btn.Activated:Connect(callback)  
	end  
	  
	createStatBtn(52, "Speed: 16 (Normal)", function() if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").WalkSpeed = 16 end end)  
	createStatBtn(98, "Speed: 32 (Rápido)", function() if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").WalkSpeed = 32 end end)  
	createStatBtn(144, "Speed: 64 (Super)", function() if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").WalkSpeed = 64 end end)  
	createStatBtn(190, "JumpPower: 50 (Normal)", function() if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").JumpPower = 50 end end)  
	createStatBtn(236, "JumpPower: 120 (Alto)", function() if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").JumpPower = 120 end end)  

	-- ABA 3: MUNDO  
	local p3 = tabPages["Mundo"].page  
	createStatBtn(5, "Gravidade: Normal (196.2)", function() Workspace.Gravity = 196.2 end)  
	createStatBtn(52, "Gravidade: Baixa (50)", function() Workspace.Gravity = 50 end)  
	createStatBtn(98, "Gravidade: Zero (0)", function() Workspace.Gravity = 0 end)  
	createStatBtn(144, "Iluminação: Noite", function() Lighting.ClockTime = 0 end)  
	createStatBtn(190, "Iluminação: Dia (Meio-dia)", function() Lighting.ClockTime = 14 end)  

	-- ABA 4: SCRIPTS (GIST)  
	local p4 = tabPages["Scripts"].page  
	local gistBtn = Instance.new("TextButton", p4); gistBtn.Size = UDim2.new(1, 0, 0, 50); gistBtn.Position = UDim2.new(0, 0, 0, 10); gistBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 200); gistBtn.BorderSizePixel = 0; gistBtn.Text = "🚀 EXECUTAR SCRIPT EXTERNO"; gistBtn.TextColor3 = Color3.new(1, 1, 1); gistBtn.TextScaled = true; gistBtn.Font = Enum.Font.GothamBold; Instance.new("UICorner", gistBtn).CornerRadius = UDim.new(0, 10)  
	gistBtn.Activated:Connect(function()  
		pcall(function() loadstring(game:HttpGet("https://gist.githubusercontent.com/nicolasanacletoluz121-collab/a1c59aab42c2101251140cf93719c31a/raw"))() end)  
	end)  

	closeButton.Activated:Connect(function() panelOpen = false; mainPanel.Visible = false end)  
	openButton.Activated:Connect(function() panelOpen = not panelOpen; mainPanel.Visible = panelOpen end)
end

playIntro(function() createHub() end)

Features & Information

Idk

Community Comments (1)

lightarchives2099lightarchives2099Sep 19, 2026

AI

More Scripts for [UP] Just a baseplate.

FE hyper aura menu (portuguese) — Roblox Script | KocakZ