private void handleFireProjectileMsg(NetworkMessage data) { FireProjectileMsg msg = data.ReadMessage <FireProjectileMsg>(); ProjectileBase obj = Instantiate(projectilePrefabs[msg.type], msg.objDetails.pos, Quaternion.identity).GetComponent <ProjectileBase>(); // Spawn real projectile on only server msg.objDetails.id = getNewProjectileID(); //Give the new projectile an ID, so we can locate and destroy it later spawnedProjectiles.Add(msg.objDetails.id, obj); obj.initProjectile(msg.objDetails, msg.projDetails); NetworkServer.SendToAll((short)CustomProtocol.FireProjectile, msg); }