*So I'm working on this game, right? And I need to make a turret rotate with this particular style of code, in otherwords I'm trying to stay within our game's standard.
Here is the problem though:*
-- X
for i = 1,2 do
local turret = sp:FindFirstChild("Turret"..i)
local hinge = turret.TurretConstraint
local x, y, z = CFrame.new(hinge.Attachment0.WorldPosition * Vector3.new(1, 0, 1), mouse.Hit.p * Vector3.new(1, 0, 1)):toEulerAnglesXYZ()
local ang = math.abs(math.floor(math.deg(x))) >= 180 and 180 - math.deg(y) or math.deg(y)
hinge.TargetAngle = (ang > 180 and -360 + ang or ang) - sp.Torso.Orientation.Y
end
end
wait()
end
*This works perfectly fine for the X-Z Rotation of the turret; I saw somewhere that this is called a 1D turret as it doesn't move up and down.
However, when I go to flip the axis to get up and down/tilt for the turret's BARREL, it works only to some extent.*
-- Y
for i = 1,2 do
local barrel = sp:FindFirstChild("Barrel"..i)
local hinge = barrel.BarrelConstraint
local x, y, z = CFrame.new(hinge.Attachment0.WorldPosition * Vector3.new(0, 1, 1), mouse.Hit.p * Vector3.new(0, 1, 1)):toEulerAnglesXYZ()
local ang = math.abs(math.floor(math.deg(y))) >= 180 and 180 - math.deg(y) or math.deg(x)
hinge.TargetAngle = (ang > 180 and -360 + ang or ang) - sp.Torso.Orientation.X
Heres a link showing what the problem looks like: https://i.gyazo.com/1231ce2d2319c0407d53e0e63b7037dd.gif
When I look down a specific axis ( in this case the ZED axis ) my turret flips.
I personally wish I could see the problem but I can't, because I know this has to do with circles in programming and because I can't see the end result until I press play it slows me down and I'm left confused.

1 comment
your game needs a better style of code. I'd suggest keep changing the x and y and z and try to get a better result, something might click in your brain and it would work. preferably the TargetAngle or the ang