Nearly identical lines, but only one works

So I am working on a spacecraft, and I am using A and D keys for rotating, but only the D key works, despite being set up in the same way, and the script does get to both lines, I am 100% sure of that.

The variables are coming from a RemoteEvent, they are; Ship: The spacecraft model, Key: String of Key, KeyState: Whether the key is up or down
Ship,Key,KeyState

if Key == "A" then
    if KeyState == true then
        --This line is reached, but the spacecraft does not turn
	Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,3.5)
    else
	Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,0)
    end
end
if Key == "D" then
    if KeyState == true then
        --This line is reached, and the spacecraft turns
	Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,-3.5)
    else
       	Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,0)
    end
end
1 Like

Have you tried swapping the actions to see if the problem is the A key or if the problem is in turning? Have you tried increasing the angular velocity to a higher value to see if that causes any difference when pushing A?

1 Like

Yep, I have tried that, neither made a difference

1 Like

If a then

Elseif d then

End.

Depending on where key state is coming from, that could be the issue.

1 Like

Basically to elaborate on what this is saying…

Your second if statement is seeing that Key is not “D” and is changing the velocity to 0,0,0. So change it to

if Key == "A" then
    if KeyState == true then
        --This line is reached, but the spacecraft does not turn
	    Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,3.5)
    end
elseif Key == "D" then
    if KeyState == true then
        --This line is reached, and the spacecraft turns
	    Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,-3.5)
    end
else
    Ship.C.Center.HorizontalTurn.AngularVelocity = Vector3.new(0,0,0)
end
1 Like

Same result
30 charactersssssss

1 Like

Did you solve this yet? Could you show us the key, and key state declarations if not

Yes, I realized the problem was that since A and D controls rotation, and W controls motion forward (not shown in script), and they were firing at the same time, W key was basically making the other 2 be ignored, though not always, hence why D worked and A didn’t. Turns out sometimes D did not work either. I just made another RemoteEvent for controlling movement forward, and it works now.