void InitNewPlayerRPC(byte[] zippedMetaBytes, byte[] zippedVoosBytes) { Util.Log($"InitNewPlayerRPC, {zippedMetaBytes.Length / 1024} KB zippedMetaBytes, {zippedVoosBytes.Length / 1024} KB zippedVoosBytes"); byte[] unzippedMetaBytes = Util.UnGZip(zippedMetaBytes); string payloadJson = Encoding.UTF8.GetString(unzippedMetaBytes, 0, unzippedMetaBytes.Length); NewPlayerInitPayload payload = JsonUtility.FromJson <NewPlayerInitPayload>(payloadJson); if (payload.version != NewPlayerInitPayload.CurrentVersion) { OnFatalError($"The game you're trying to join seems to be running an incompatible version of the game.\nQuit the game and make sure Steam has no pending updates."); return; } byte[] unzippedVoosBytes = Util.UnGZip(zippedVoosBytes); var voosReader = new UNET.NetworkReader(unzippedVoosBytes); behaviorSystem.LoadDatabaseForNetworkInit(payload.behaviorDatabase); voosEngine.DeserializePlayerInitV2(voosReader); sojoSystem.LoadDatabase(payload.sojoDatabase); stage.Load(payload.stage); receivedPlayerInitPayload = true; lastReceivedTerrainMeta = payload.terrainMeta; }