Hello, im making a 2d Game with Mirror, i bult an dedicated server for Linux and can connect Players on it, Everyone sees Everyone movement and animation but doesnt change the facing direction for other players (those who dont are isLocalPlayer) This is my Player code: Code (CSharp): using Mirror; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : NetworkBehaviour { public float speed = 10f; public float jumpForce = 100f; public Transform groundCheck; public LayerMask groundLayer; public float groundCheckRadius; private Vector2 _movement; private Rigidbody2D _rigidBody; private Animator _animator; [SyncVar] public bool _facingRight = true; private bool _isGrounded; private bool doubleJump = true; private bool isAttacking = false; [SyncVar] public bool isAlive = true; private void Awake() { _rigidBody = GetComponent<Rigidbody2D>(); _animator = GetComponent<Animator>(); } // Start is called before the first frame update public override void OnStartLocalPlayer() { Camera.main.GetComponent<CameraFollow>().setTarget(transform); } void Update() { if (!hasAuthority || !isAlive) { return; } if (isLocalPlayer) { float horizontalInput = Input.GetAxisRaw("Horizontal"); if (horizontalInput < 0f && _facingRight == true) { Flip(); } else if (horizontalInput > 0f && _facingRight == false) { Flip(); } _isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayer); if (Input.GetButtonDown("Jump") && (_isGrounded == true || doubleJump == true)) { doubleJump = false; _rigidBody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); } _movement = new Vector2(horizontalInput, 0f); if (_movement != Vector2.zero) { _animator.SetInteger("animation", 2); } if (Input.GetButtonDown("Fire1") && isAttacking == false) { _animator.SetInteger("animation", 1); } } } private void FixedUpdate() { float horizontalVelocity = _movement.normalized.x * speed; _rigidBody.velocity = new Vector2(horizontalVelocity, _rigidBody.velocity.y); } private void LateUpdate() { if (!isAlive) { return; } if (_movement == Vector2.zero) { _animator.SetInteger("animation", 0); } if (_isGrounded == true && doubleJump == false) { doubleJump = true; } } private void Flip() { if(!isLocalPlayer) return; _facingRight = !_facingRight; float localScaleX = transform.localScale.x; localScaleX = localScaleX * -1f; transform.localScale = new Vector3(localScaleX, transform.localScale.y, transform.localScale.z); } public void Die() { isAlive = false; _animator.SetInteger("animation", 5); } } Thanks