My kill part keeps on bugging out and i need help fixing it

ok so here is what the part looks like that is not supposed to be doing: robloxapp-20201130-2027340.wmv (91.3 KB)
(if you can’t download the file for some reason ill just tell you of what the part is doing)
so what the part is doing is once it is vertical it just bugs out and kinda wiggles like back and forth as if its glitched,
and what it is supposed to is keep spinning but instead it just bugs out.
here is the script for it:

local part = script.Parent

function onTouch(part) 
local human = part.Parent:findFirstChild("Humanoid") 
if (human == nil) then return end -- if it is not a humanoid, then do nothing, otherwise...
human.Health = 0 -- then kill the humanoid
end 
script.Parent.Touched:connect(onTouch)

while true do
	part.Orientation = part.Orientation + Vector3.new(-2, 0, 0)
	wait(0)
end~~~

The issue is likely due to your while loop. I’m not entirely sure how Roblox handles this, but if you add some degrees to your orientation, then the degrees change respective to the other axis’s. So if my orientation is (0, 0, 0), and I did -90 on the X axis, my Y & Z axis would become (0, 0). But if I did -92, since you’re adding -2 indefinitely then the degrees on the X, Y & Z axis would become (-88, 180, 180), respectively. Your loop is stuck at a point where it’s going back and forth from (-90, 0, 0) and (-88, 180, 180), I assume.

I believe you should replace Orientation with CFrame, and go with a different approach. If you’re trying to spin it on one axis, try using CFrame.fromAxisAngle. The Vector3 is the axis you want to spin.

while true do
    part.CFrame = part.CFrame * CFrame.fromAxisAngle(Vector3.new(-2, 0, 0), math.rad(5))
    wait()
end

Don’t use while loops for movement or rotation, instead you can just use RunService.Stepped and rotate the part by constant multiplied by delta time:

local turnSpeed = 5
game:GetService("RunService").Stepped:Connect(function(dt)
    part.CFrame *= CFrame.Angles(turnSpeed * dt, 0, 0)
end)

You can change the axis by switching between the CFrame.Angles, and you can modify the turnSpeed until the result is the desired one.