Host player moving correctly while Client players are not

Hello, Ive recently been learning Photon Fusion and have been following some tutorials and trying out some stuff and Ive run into a problem. For some reason the host moves and shoots the discs in the right direction (the way I want it to) but the clients do not. The movement of the host is tied to the way he is face, as well as the direction of the discs he is shooting. The client players however, always move at 90 degree angles from the direction they spawned in, as well as shooting the discs at a 90 degree angle (that is cameraRotationY = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y + 90, 0):wink: So its not updating. Im not sure why or how to fix it so all clients move like the host. If anyone has any ideas to help me please let me know.

using Fusion;
using UnityEngine;
public class Player : NetworkBehaviour
{
[SerializeField] private Disc _prefabDisc;
[SerializeField] private Transform _tr;
[Networked] private TickTimer delay { get; set; }
[SerializeField] private Camera Camera;
[SerializeField] private Transform __spawner;
public int speed = 5;
private bool mainCharacter;
private float horizontalRotation;

private NetworkCharacterController _cc;
private Vector3 _forward;
[SerializeField] private Quaternion cameraRotationY;
private void Awake()
{
_cc = GetComponent();

_forward = transform.forward;
cameraRotationY = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y + 90, 0);
}
public override void Spawned()
{
if (HasInputAuthority)
{

Camera = Camera.main;
Camera.GetComponent().Target = transform;
cameraRotationY = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y + 90, 0);
}
}
public void Update()
{
// cameraRotationY = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y, 0);
float mouseX = Input.GetAxis(“Mouse X”);
horizontalRotation += mouseX * 10f;
}
public override void FixedUpdateNetwork()
{

if (GetInput(out NetworkInputData data))
{
data.direction.Normalize();
//server isnt running this for client

transform.rotation = Quaternion.Euler(0, horizontalRotation, 0);

this.transform.Translate(data.direction * speed * Runner.DeltaTime);
// cameraRotationY = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y, 0);
// cameraRotationY = Quaternion.Euler(0, Camera.transform.rotation.eulerAngles.y, 0);
if (HasStateAuthority && delay.ExpiredOrNotRunning(Runner))
{

if (data.buttons.IsSet(NetworkInputData.MOUSEBUTTON0))
{
cameraRotationY = Quaternion.Euler(0, horizontalRotation, 0);
delay = TickTimer.CreateFromSeconds(Runner, 0.5f);
Runner.Spawn(_prefabDisc,
__spawner.position, cameraRotationY,
Object.InputAuthority, (runner, o) =>
{
// Initialize the Ball before synchronizing it
o.GetComponent().Init();
});
}
}
}
}
}