I'm making a multiplayer 2D game. I set up PUN2 and made join and create rooms menu and everything was working perfectly. But, when I tried implementing multiplayer into my game scene it did not work well. To simply put it, players need to click on red circles. Players see the same screen. There are white and red circles and if players click all red circles, all white circles get destroyed and more total circles spawn on random locations. In the script, I tried making it so master client controls spawning of circles. I added Photon view component to circle prefabs. I'm beginner in using PUN and this simple game is for me to learn it. Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; using Photon.Pun; public class CircleSpawner : MonoBehaviourPunCallbacks { public GameObject circlePrefab; public GameObject redCirclePrefab; public GameObject explosionPrefab; public GameObject redexplosionPrefab; public int totalCircles; private int currentCircles; private int currentredCircles; void Start() { GameObject[] objectsToDestroystart = GameObject.FindGameObjectsWithTag("Circle"); for (int i = 0; i < objectsToDestroystart.Length; i++) { PhotonNetwork.Destroy(objectsToDestroystart[i]); } if (PhotonNetwork.LocalPlayer.IsMasterClient) { totalCircles = 1; currentCircles = 0; currentredCircles = 0; SpawnCircle(); } else { return; } } void SpawnCircle() { if (PhotonNetwork.LocalPlayer.IsMasterClient) { Vector3 randomPos = new Vector3(Random.Range(-9f, 9f), Random.Range(-5f, 5f), 0); GameObject newCircle; if (currentCircles % 3 == 0) { newCircle = PhotonNetwork.Instantiate(redCirclePrefab.name, randomPos, Quaternion.identity); currentredCircles++; currentCircles++; } else { newCircle = PhotonNetwork.Instantiate(circlePrefab.name, randomPos, Quaternion.identity); currentCircles++; } } else { return; } } void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); Vector2 touchPos = Camera.main.ScreenToWorldPoint(touch.position); Collider2D hit = Physics2D.OverlapPoint(touchPos); if (hit != null && hit.CompareTag("Circle")) { if (touch.phase == TouchPhase.Began) { PhotonNetwork.Destroy(hit.gameObject); if (PhotonNetwork.LocalPlayer.IsMasterClient) { currentredCircles--; currentCircles--; } Debug.Log("Clicked"); PhotonNetwork.Instantiate(redexplosionPrefab.name, hit.transform.position, Quaternion.identity); } } if (hit != null && hit.CompareTag("WhiteCircle")) { if (touch.phase == TouchPhase.Began) { PhotonNetwork.Destroy(hit.gameObject); if (PhotonNetwork.LocalPlayer.IsMasterClient) { currentCircles--; } Debug.Log("Clicked"); PhotonNetwork.Instantiate(explosionPrefab.name, hit.transform.position, Quaternion.identity); } } if (currentredCircles == 0 && PhotonNetwork.LocalPlayer.IsMasterClient) { totalCircles++; GameObject[] objectsToDestroy = GameObject.FindGameObjectsWithTag("WhiteCircle"); for (int i = 0; i < objectsToDestroy.Length; i++) { if (PhotonNetwork.LocalPlayer.IsMasterClient) { PhotonNetwork.Destroy(objectsToDestroy[i]); } } for (int i = 0; i < totalCircles; i++) { if (PhotonNetwork.LocalPlayer.IsMasterClient) { SpawnCircle(); } else { return; } } } } } } There are some very weird ways I tried to fix the issue with. The problem is that on other client that is not the master, on the start 8 extra red circles spawn, and 1 red circle that is visible on the master (there should be 1 circle at the start). After that, everything works fine but red circles are still on other client's screen.