local lp = game.Players.LocalPlayer local char = lp.Character or lp.CharacterAdded:Wait() local root = char:WaitForChild("HumanoidRootPart") local uis = game:GetService("UserInputService") char.Humanoid.WalkSpeed = 0 local rr = Instance.new("Part") rr.Name = "roadroller" rr.Parent = workspace rr.Size = Vector3.new(8, 10, 12) rr.CFrame = root.CFrame rr.CanCollide = true pcall(function() rr.CollisionFidelity = Enum.CollisionFidelity.PreciseConvexDecomposition end) local m = Instance.new("SpecialMesh", rr) m.MeshId = "rbxassetid://6539353839" m.TextureId = "rbxassetid://6539354742" m.Scale = Vector3.new(3.8, 3.8, 3.8) local w = Instance.new("Weld", rr) w.Part0 = rr w.Part1 = root w.C0 = CFrame.new(0, -2.5, 0) local hum = Instance.new("Sound", rr) hum.SoundId = "rbxassetid://6799591495" hum.Looped = true hum.Volume = 0.5 hum:Play() local moveSfx = Instance.new("Sound", rr) moveSfx.SoundId = "rbxassetid://128503855489784" moveSfx.Looped = true moveSfx.Volume = 0.8 local speed = 1.2 local turnSpeed = 0.06 task.spawn(function() while rr and rr.Parent do task.wait() if uis:IsKeyDown(Enum.KeyCode.R) then local ex = Instance.new("Explosion", workspace) ex.Position = rr.Position ex.BlastRadius = 20 rr:Destroy() char.Humanoid.WalkSpeed = 16 break end local isMoving = false if uis:IsKeyDown(Enum.KeyCode.W) then rr.CFrame = rr.CFrame * CFrame.new(0, 0, -speed) isMoving = true elseif uis:IsKeyDown(Enum.KeyCode.S) then rr.CFrame = rr.CFrame * CFrame.new(0, 0, speed) isMoving = true end if uis:IsKeyDown(Enum.KeyCode.A) then rr.CFrame = rr.CFrame * CFrame.Angles(0, turnSpeed, 0) isMoving = true elseif uis:IsKeyDown(Enum.KeyCode.D) then rr.CFrame = rr.CFrame * CFrame.Angles(0, -turnSpeed, 0) isMoving = true end if isMoving and not moveSfx.IsPlaying then moveSfx:Play() elseif not isMoving and moveSfx.IsPlaying then moveSfx:Stop() end local parts = rr:GetTouchingParts() for _, p in pairs(parts) do if not p:IsDescendantOf(char) and p ~= rr and p.Name ~= "Baseplate" then p.Anchored = false local dir = (p.Position - rr.Position).Unit p.Velocity = (dir + Vector3.new(0, 0.7, 0)) * 180 p.RotVelocity = Vector3.new(math.random(-60, 60), math.random(-60, 60), math.random(-60, 60)) if not p:FindFirstChild("HitSfx") then local s = Instance.new("Sound", p) s.Name = "kaBOOM" s.SoundId = "rbxassetid://140278004623742" s.Volume = 0.4 s:Play() game:GetService("Debris"):AddItem(s, 2) end end end end end)