Client-server initialization/deleting of items

Hello.

I have a such problem over here.
I am using Photon Cloud.
I have a game, 4 people multiplayer.
There are spawnpoints on a level, when user enters its area - it instatiate a monster like this:

masterClientController.RPC("InstantiateMob", PhotonTargets.MasterClient, go.name, this.transform.position);

and InstantiateMob function, where I use InstantiateSceneObject, because I want a monster to stay on scene if master client will be disconnected:

[RPC]
    public void InstantiateMob(string name, Vector3 CoinLocation)
    {
        PhotonNetwork.InstantiateSceneObject(name, CoinLocation, Quaternion.identity, 0, null);
    }

Like I understand, Master Client should instantiate a gameobject in his scene, and other players should see that monster, it should be 1 monster for all 4 people. But, every user has its own monster, not common for all, other people cannot see monster on their clients. What is the problem here, what I do wrong?

Second problem is:
When I want to destroy monster GameObject from master client side( client what have created room) I get next error on another player side(usual client):

Can’t execute received Destroy request for view ID=8 as GO can’t be found. From player/actorNr: 1 GO to destroy= originating Player=2

It works the same, when I am destroying monster from usual client side, master client works fine, but usual client has the same problem.

The way how do I delete monster is further:
on moster object, what have been created in the way that I have written above, with InstantiateSceneObject on masterclient

GameMaster.GM.masterClientController.RPC("DestroyGO", PhotonTargets.MasterClient, character.GetPhotonView().viewID);

and DestroyGO method:

[RPC]
    public void DestroyGO(int photonViewID)
    {
        PhotonView view = PhotonView.Find(photonViewID);
        if (view != null)
        {
            PhotonNetwork.Destroy(view);
        }
    }

What is wrong here? Have tired a little with trying to handle it bymyself. Please help.
Thank you.

I guess you call the RPC in every client that joins. That means: Each call will create another Mob. The MasterClient does that in the RPC method but it seems that is called by each client.
You can instantiate the single mob in OnCreatedRoom. This is only called on the single client that actually created the room.
Or you can check isMasterClient in OnJoinedLobby and create the mob there.
No RPC needed unless you want this to happen again and again.

I can’t see what goes wrong in your DestroyGo case.
Maybe you have some Destroy() call somewhere else, too? The GO seems to be destroyed by multiple clients and of course a client can’t find the GO anymore after the first Destroy.