Can't see the host of the server

I got this problem where I can as a host see all the players connected to the server, but the other players can’t see the host.
It did work in the start of the project but not anymore. And I just can’t find it. I’ve tried numerous ways without any success. I hope you guys can help me.

Edit: I’ve narrowed it down to that the hosts Outsideview don’t get activated for some reason.

My multiplayer manager that has all the info for connection, disconnection, spawning and so forth

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class MultiplayerManager : MonoBehaviour {

	public static MultiplayerManager instance;
	public GUIManager guiManager;
	
	public GameObject PlayerManagerPrefab;
	
	public string PlayerName;
	
	private string MatchName = "";
	private string MatchPassword = "";
	private int MatchMaxUsers = 32;
	
	public List<MPPlayer> PlayerList = new List<MPPlayer>();
	public List<MapSetting> MapList = new List<MapSetting>();
	
	public MapSetting CurrentMap = null;
	public int oldPrefix;
	public bool IsMatchStarted = false;
	
	//General Multiplayer Modes
	public bool MatchLoaded;
	public MPPlayer MyPlayer;
	public GameObject[] Spawnpoints;
	
	
	void Start(){
		instance = this;	
		PlayerName = PlayerPrefs.GetString("PlayerName");
		CurrentMap = MapList[0];
		DontDestroyOnLoad(gameObject);
	}
	
	void FixedUpdate(){
		instance = this;	
	}
	
	public void StartServer(string servername, string serverpassword, int maxusers){
		MatchName = servername;
		MatchPassword = serverpassword;
		MatchMaxUsers = maxusers;
		Network.InitializeServer(MatchMaxUsers,2550,false);
		MasterServer.RegisterHost("DeathMatch",MatchName,"");
		//Network.InitializeSecurity();
	}
	
	void OnServerInitialized(){
		Server_PlayerJoinRequest(PlayerName,Network.player);
	}
	
	void OnConnectedToServer(){
		networkView.RPC("Server_PlayerJoinRequest",RPCMode.Server,PlayerName,Network.player);	
	}
	
	void OnPlayerDisconnected(NetworkPlayer id){
		networkView.RPC("Client_RemovePlayer",RPCMode.All, id);		
	}
	
	void OnPlayerConnected(NetworkPlayer player){
		foreach(MPPlayer pl in PlayerList){
			networkView.RPC("Client_AddPlayerToList",player, pl.PlayerName, pl.PlayerNetwork);	
		}		
		networkView.RPC("Client_GetMultiplayerMatchSettings",player,CurrentMap.MapName,"","");
	}
	
	void OnDisconnectedFromServer(){
		PlayerList.Clear();	
	}
	
	[RPC]
	void Server_PlayerJoinRequest(string playername, NetworkPlayer view){
		networkView.RPC("Client_AddPlayerToList",RPCMode.All, playername, view);		
	}
	
	[RPC]
	void Client_AddPlayerToList(string playername, NetworkPlayer view){
		MPPlayer tempplayer = new MPPlayer();
		tempplayer.PlayerName = playername;
		tempplayer.PlayerNetwork = view;
		PlayerList.Add(tempplayer);
		if(Network.player == view){
			MyPlayer = tempplayer;	
			GameObject play = Network.Instantiate(PlayerManagerPrefab,Vector3.zero,Quaternion.identity,5) as GameObject;
		}
	}
	
	[RPC]
	void Client_RemovePlayer(NetworkPlayer view){
		MPPlayer temppl = null;
		foreach(MPPlayer pl in PlayerList){
			if(pl.PlayerNetwork == view){
				temppl = pl;	
			}
		}
		if(temppl != null){
			PlayerList.Remove(temppl);	
		}
	}
	
	[RPC]
	void Client_GetMultiplayerMatchSettings(string map, string mode, string others){
		CurrentMap = GetMap(map);
	}
	
	public MapSetting GetMap(string name){
		MapSetting get = null;
		
		foreach(MapSetting st in MapList){
			if(st.MapName == name){
				get = st;
				break;
			}
		}
		
		return get;
	}
	
	[RPC]
	void Client_LoadMultiPlayerMap(string map, int prefix){
		//Network.SetLevelPrefix(prefix);
		Application.LoadLevel(map);
	}
	
	[RPC]
	void Server_SpawnPlayer(NetworkPlayer player){
		int numberspawn = Random.Range(0,Spawnpoints.Length - 1);
		MyPlayer.PlayerManager.OutsideView.SetActive(true);
		networkView.RPC("Client_SpawnPlayer",RPCMode.All,player, Spawnpoints[numberspawn].transform.position + new Vector3(0,2,0),Spawnpoints[numberspawn].transform.rotation);
	}
	
	[RPC]
	public void Client_SpawnPlayer(NetworkPlayer player, Vector3 position, Quaternion rotation){
		MultiplayerManager.GetMPPlayer(player).PlayerIsAlive = true;
		MultiplayerManager.GetMPPlayer(player).PlayerHealth = 100;
		if(player == MyPlayer.PlayerNetwork){
			MyPlayer.PlayerManager.ControllerTransform.position = position;	
			MyPlayer.PlayerManager.ControllerTransform.rotation = rotation;
			MyPlayer.PlayerManager.networkView.RPC("Client_PlayerAlive", RPCMode.All);
		}
		else{
			
		}
	}
	
	[RPC]
	public void Client_PlayerAlive(){
		PlayerManager pm = PlayerManagerPrefab.GetComponent<PlayerManager>();
		pm.Client_PlayerAlive();			
	}
	
	void OnLevelWasLoaded(){
		if(Application.loadedLevelName == CurrentMap.MapLoadName && Network.isServer){
			MatchLoaded = true;
			Spawnpoints = GameObject.FindGameObjectsWithTag("SpawnPoint");
			networkView.RPC("Client_ServerLoaded",RPCMode.AllBuffered, IsMatchStarted);
		}
	}
	
	[RPC]
	void Client_ServerLoaded(bool started){
		MatchLoaded = true;	
		IsMatchStarted = started;
	}
	
	public static MPPlayer GetMPPlayer(NetworkPlayer player){
		foreach(MPPlayer play in MultiplayerManager.instance.PlayerList){
			if(play.PlayerNetwork == player){
				return play;
			}
		}
		return null;
	}
	
	void OnGUI(){
		if(!MyPlayer.PlayerIsAlive && IsMatchStarted){
			SpawnMenu();
		}
		if(IsMatchStarted && Input.GetKey(KeyCode.Tab)){
			guiManager.ScoreBoard();	
		}
	}
	
	//Deathmatch
	void SpawnMenu(){
		if(GUI.Button(new Rect(5,Screen.height - 40,250,35),"Spawn")){
			if(Network.isServer)
				Server_SpawnPlayer(Network.player);
			else
			networkView.RPC("Server_SpawnPlayer",RPCMode.Server,Network.player);
		}	
	}
	
	[RPC]
	public void Client_UpdatePlayerHealthAndAlive(NetworkPlayer targetplayer, bool IsAlive, int currenthealth){
		MPPlayer player = MultiplayerManager.GetMPPlayer(targetplayer);
		player.PlayerIsAlive = IsAlive;
		player.PlayerHealth = currenthealth;
	}
}

[System.Serializable]
public class MPPlayer{
	public string PlayerName = "";
	public NetworkPlayer PlayerNetwork;
	public PlayerManager PlayerManager;
	public int PlayerHealth = 100;
	public bool PlayerIsAlive;
	public int PlayerScore;
	public int PlayerKills;
	public int PlayerDeaths;
}

[System.Serializable]
public class MapSetting{
	
	public string MapName;
	public string MapLoadName;
	public Texture MapLoadTexture;
}

My PlayerManager that has the info for the world model and so forth

using UnityEngine;
using System.Collections;

public class PlayerManager : MonoBehaviour {

	public MPPlayer thisplayer
	{
		get{
            return MultiplayerManager.GetMPPlayer(networkView.owner);			
		}
	}
	public PlayerController Controller;
	public Transform ControllerTransform;
	
	public GameObject OutsideView;
	
	public Vector3 CurrentPosition;
	public Quaternion CurrentRotation;
	
	
	void Start(){
		DontDestroyOnLoad(gameObject);
		ControllerTransform.gameObject.SetActive(false);
		OutsideView.SetActive(false);
		thisplayer.PlayerManager = this;
	}
	
	void FixedUpdate(){
		if(networkView.isMine){
			CurrentPosition = ControllerTransform.position;
			CurrentRotation = ControllerTransform.rotation;
		}
		else{
			OutsideView.transform.position = CurrentPosition + new Vector3(0,-1f,0);
			OutsideView.transform.rotation = CurrentRotation;
		}
	}
	
	void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info){
		if(stream.isWriting){
        	stream.Serialize(ref CurrentPosition);   
			stream.Serialize(ref CurrentRotation);  
        } 
		else{          
			stream.Serialize(ref CurrentPosition);  
			stream.Serialize(ref CurrentRotation);  
        }
	}
	
	void GetBulletDamage(int damage){
		if(Network.isServer)
			Server_HandleBulletDamage(damage);
		else
		networkView.RPC("Server_HandleBulletDamage",RPCMode.Server,damage);	
	}
	
	[RPC]
	public void Server_HandleBulletDamage(int damage){
		thisplayer.PlayerHealth -= damage;
		if(thisplayer.PlayerHealth <= 0){ //When dead
			thisplayer.PlayerIsAlive = false;
			thisplayer.PlayerHealth = 0;
			thisplayer.PlayerDeaths++;
			networkView.RPC("Client_PlayerDead",RPCMode.All);
			MultiplayerManager.instance.networkView.RPC("Client_UpdatePlayerHealthAndAlive",RPCMode.Others,thisplayer.PlayerNetwork, false,0);
		}
		else{ //Getting hit while alive
			MultiplayerManager.instance.networkView.RPC("Client_UpdatePlayerHealthAndAlive",RPCMode.All,thisplayer.PlayerNetwork,thisplayer.PlayerIsAlive,thisplayer.PlayerHealth);	
		}
	}
	
	[RPC]
	public void Client_PlayerDead(){
		OutsideView.SetActive(false);	
		if(networkView.isMine)
			ControllerTransform.gameObject.SetActive(false);
	}
	
	[RPC]
	public void Client_PlayerAlive(){
		OutsideView.SetActive(true);
		if(networkView.isMine)
			ControllerTransform.gameObject.SetActive(true);
		else
			OutsideView.SetActive(true);
	}
}

I really hope you guys can help.
Thanks in advance

I didn’t dig through your whole code, but i guess that the server doesn’t have it’s own player in his local player list. Usually the server can’t send an RPC to himself.

So i would suggest to handle the server player differently since he’s always in the list from the very beginning to the end.

So this is the part that should be changed:

void OnServerInitialized()
{
    // add server player to local list, maybe by calling "Client_AddPlayerToList" manually
}