public byte[] CreateChallengeSnapshot() { if (this.m_logicGameMode.GetState() != 1) { throw new Exception("GameMode.createChallengeSnapshot called in invalid logic state."); } LogicLevel logicLevel = this.m_logicGameMode.GetLevel(); LogicJSONObject jsonObject = new LogicJSONObject(64); jsonObject.Put("exp_ver", new LogicJSONNumber(logicLevel.GetExperienceVersion())); logicLevel.GetGameObjectManagerAt(0).SaveToSnapshot(jsonObject, 6); this.m_logicGameMode.GetLevel().GetHomeOwnerAvatar().SaveToDirect(jsonObject); ZLibHelper.CompressInZLibFormat(LogicStringUtil.GetBytes(LogicJSONParser.CreateJSONString(jsonObject, 1536)), out byte[] homeJSON); return(homeJSON); }