local Players = game:GetService("Players") local RunService = game:GetService("RunService") local CoreGui = game:GetService("CoreGui") local player = Players.LocalPlayer local wobbleConnection = nil local originalC0 = nil local isWobbling = false -- GUI Setup local screenGui = Instance.new("ScreenGui") screenGui.Name = "InvincibleWobbleGUI" screenGui.ResetOnSpawn = false local success = pcall(function() screenGui.Parent = CoreGui end) if not success then screenGui.Parent = player:WaitForChild("PlayerGui") end local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 60) frame.Position = UDim2.new(0.5, -100, 0.85, 0) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.BorderSizePixel = 2 frame.BorderColor3 = Color3.fromRGB(200, 50, 50) frame.Active = true frame.Draggable = true frame.Parent = screenGui local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(1, -10, 1, -10) toggleBtn.Position = UDim2.new(0, 5, 0, 5) toggleBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 16 toggleBtn.Text = "WOBBLE: OFF" toggleBtn.Parent = frame local function getRootJoint(character) if character:FindFirstChild("Humanoid") then if character.Humanoid.RigType == Enum.HumanoidRigType.R15 then return character:FindFirstChild("LowerTorso") and character.LowerTorso:FindFirstChild("Root") else return character:FindFirstChild("HumanoidRootPart") and character.HumanoidRootPart:FindFirstChild("RootJoint") end end return nil end local phase = 0 local timeElapsed = 0 toggleBtn.MouseButton1Click:Connect(function() local char = player.Character if not char then return end local rootJoint = getRootJoint(char) if not rootJoint then return end isWobbling = not isWobbling if isWobbling then toggleBtn.Text = "WOBBLE: ON" toggleBtn.TextColor3 = Color3.fromRGB(255, 50, 50) originalC0 = rootJoint.C0 phase = 0 timeElapsed = 0 wobbleConnection = RunService.RenderStepped:Connect(function(dt) timeElapsed = timeElapsed + dt -- Speed fluctuates smoothly between 2 (slow) and 22 (very fast) local currentSpeed = 12 + (math.sin(timeElapsed * 1.5) * 10) -- Increment phase safely to avoid snapping when speed changes phase = phase + (currentSpeed * dt) -- Calculate rotation angle (max 35 degrees tilt) local angle = math.sin(phase) * math.rad(35) -- Apply TILT (Leaning side-to-side instead of twisting) if char.Humanoid.RigType == Enum.HumanoidRigType.R15 then -- R15 tilts side-to-side on the Z axis rootJoint.C0 = originalC0 * CFrame.Angles(0, 0, angle) else -- R6 root joints are rotated differently; side-to-side is on the Y axis rootJoint.C0 = originalC0 * CFrame.Angles(0, angle, 0) end end) else toggleBtn.Text = "WOBBLE: OFF" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) if wobbleConnection then wobbleConnection:Disconnect() wobbleConnection = nil end if originalC0 and rootJoint then rootJoint.C0 = originalC0 end end end)