// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/game_configuration/game_configuration_data.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/game_configuration/game_configuration_data.proto</summary>
  public static partial class GameConfigurationDataReflection {

    #region Descriptor
    /// <summary>File descriptor for rec_room/game_configuration/game_configuration_data.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static GameConfigurationDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CjlyZWNfcm9vbS9nYW1lX2NvbmZpZ3VyYXRpb24vZ2FtZV9jb25maWd1cmF0",
            "aW9uX2RhdGEucHJvdG8SCHJlY19yb29tGkpyZWNfcm9vbS9nYW1lX2NvbmZp",
            "Z3VyYXRpb24vZ2FtZV9jb21iYXRfYXV0b19oZWFsX2NvbmZpZ3VyYXRpb25f",
            "ZGF0YS5wcm90bxpRcmVjX3Jvb20vZ2FtZV9jb25maWd1cmF0aW9uL2dhbWVf",
            "Y29tYmF0X2Rvd25fYnV0X25vdF9vdXRfY29uZmlndXJhdGlvbl9kYXRhLnBy",
            "b3RvGklyZWNfcm9vbS9nYW1lX2NvbmZpZ3VyYXRpb24vZ2FtZV9jb21iYXRf",
            "ZW5lbXlfdWlfY29uZmlndXJhdGlvbl9kYXRhLnByb3RvGk5yZWNfcm9vbS9n",
            "YW1lX2NvbmZpZ3VyYXRpb24vZ2FtZV9jb21iYXRfZnJpZW5kbHlfZmlyZV9j",
            "b25maWd1cmF0aW9uX2RhdGEucHJvdG8aSnJlY19yb29tL2dhbWVfY29uZmln",
            "dXJhdGlvbi9nYW1lX2NvbWJhdF9wbGF5ZXJfdWlfY29uZmlndXJhdGlvbl9k",
            "YXRhLnByb3RvGkhyZWNfcm9vbS9nYW1lX2NvbmZpZ3VyYXRpb24vZ2FtZV9j",
            "b21iYXRfcmVzcGF3bl9jb25maWd1cmF0aW9uX2RhdGEucHJvdG8aR3JlY19y",
            "b29tL2dhbWVfY29uZmlndXJhdGlvbi9nYW1lX2NvbWJhdF9yZXZpdmVfY29u",
            "ZmlndXJhdGlvbl9kYXRhLnByb3RvGktyZWNfcm9vbS9nYW1lX2NvbmZpZ3Vy",
            "YXRpb24vZ2FtZV9zdGFydF9yZXF1aXJlbWVudF9jb25maWd1cmF0aW9uX2Rh",
            "dGEucHJvdG8aPnJlY19yb29tL2dhbWVfY29uZmlndXJhdGlvbi9nYW1lX3N0",
            "YXRfY29uZmlndXJhdGlvbl9kYXRhLnByb3RvGj5yZWNfcm9vbS9nYW1lX2Nv",
            "bmZpZ3VyYXRpb24vZ2FtZV90ZWFtX2NvbmZpZ3VyYXRpb25fZGF0YS5wcm90",
            "bxpMcmVjX3Jvb20vZ2FtZV9jb25maWd1cmF0aW9uL2dhbWVfdGVhbV9wbGF5",
            "ZXJfdmlzdWFsX2NvbmZpZ3VyYXRpb25fZGF0YS5wcm90bxpEcmVjX3Jvb20v",
            "Z2FtZV9jb25maWd1cmF0aW9uL2dhbWVfdGVhbV9yYWRpb19jb25maWd1cmF0",
            "aW9uX2RhdGEucHJvdG8i4RsKFUdhbWVDb25maWd1cmF0aW9uRGF0YRIMCgRu",
            "YW1lGAEgASgJEmQKK21hbnVhbF9zdGFydF9yZXF1aXJlbWVudF9jb25maWd1",
            "cmF0aW9uX2RhdGEYAyABKAsyLy5yZWNfcm9vbS5HYW1lU3RhcnRSZXF1aXJl",
            "bWVudENvbmZpZ3VyYXRpb25EYXRhEmcKLmF1dG9tYXRpY19zdGFydF9yZXF1",
            "aXJlbWVudF9jb25maWd1cmF0aW9uX2RhdGEYBCABKAsyLy5yZWNfcm9vbS5H",
            "YW1lU3RhcnRSZXF1aXJlbWVudENvbmZpZ3VyYXRpb25EYXRhEiIKGmpvaW5f",
            "aW5fcHJvZ3Jlc3Nfc3VwcG9ydGVkGAUgASgIEiEKGWF1dG9tYXRpY19zdGFy",
            "dF9zdXBwb3J0ZWQYBiABKAgSFQoNbG9hZF9wcmlvcml0eRgHIAEoBRInCh9y",
            "ZXNwYXduX29uX2dhbWVfc3RhcnRfc3VwcG9ydGVkGAggASgIEiYKHnJlc3Bh",
            "d25fb25fZ2FtZV9vdmVyX3N1cHBvcnRlZBgJIAEoCBIkChxwcmVnYW1lX3Zv",
            "aWNlX292ZXJfc3VwcG9ydGVkGAogASgIEiQKHHJlc3VsdHNfdm9pY2Vfb3Zl",
            "cl9zdXBwb3J0ZWQYCyABKAgSLgomZW5kX2dhbWVfaWZfc3RhcnRfcmVxdWly",
            "ZW1lbnRzX25vdF9tZXQYDCABKAgSJgoeY291bnRkb3duX3ZvaWNlX292ZXJf",
            "c3VwcG9ydGVkGA0gASgIEhgKEGdhbWVfc3RhcnRfZGVsYXkYDiABKAISIQoZ",
            "ZW5kX2dhbWVfcmVzdWx0c19kdXJhdGlvbhgPIAEoAhIpCiFnYW1lX21vZGVf",
            "bm90aWZpY2F0aW9uc19zdXBwb3J0ZWQYECABKAgSLgomaW5fZ2FtZV9wbGF5",
            "ZXJfbm90aWZpY2F0aW9uc19zdXBwb3J0ZWQYESABKAgSLgomcmVsb2FkX2lu",
            "c3RhbmNlX2FmdGVyX3Bvc3RnYW1lX3Jlc3VsdHMYEiABKAgSQAoTdGVhbV9j",
            "b25maWd1cmF0aW9ucxhlIAMoCzIjLnJlY19yb29tLkdhbWVUZWFtQ29uZmln",
            "dXJhdGlvbkRhdGESHQoVdGVhbV9zZWxlY3Rpb25fbWV0aG9kGGYgASgFEikK",
            "IXRlYW1fY2hhbmdlX2R1cmluZ19nYW1lX3N1cHBvcnRlZBhnIAEoCBIpCiFl",
            "eHBsaWNpdF90ZWFtX3NlbGVjdGlvbl9zdXBwb3J0ZWQYaCABKAgSHAoUc3Bl",
            "Y3RhdGluZ19zdXBwb3J0ZWQYaSABKAgSNAoscmVzcGF3bl9vbl90ZWFtX2No",
            "YW5nZV9kdXJpbmdfZ2FtZV9zdXBwb3J0ZWQYbSABKAgSJQodc2hvd19vcGVu",
            "X3Nsb3RzX29uX3Njb3JlYm9hcmQYbiABKAgSHgoWY2xlYXJfdGVhbXNfYWZ0",
            "ZXJfZ2FtZRhvIAEoCBIeChZlbmRfZ2FtZV93aGVuX2FsbF9kZWFkGHAgASgI",
            "El4KJXRlYW1fcGxheWVyX3Zpc3VhbF9jb25maWd1cmF0aW9uX2RhdGEYaiAB",
            "KAsyLy5yZWNfcm9vbS5HYW1lVGVhbVBsYXllclZpc3VhbENvbmZpZ3VyYXRp",
            "b25EYXRhEh0KFXRlYW1fcmFkaW9zX3N1cHBvcnRlZBhrIAEoCBInCh90ZWFt",
            "X3JhZGlvc19jcm9zc3RlYW1fc3VwcG9ydGVkGHEgASgIEk8KHXRlYW1fcmFk",
            "aW9fY29uZmlndXJhdGlvbl9kYXRhGGwgASgLMigucmVjX3Jvb20uR2FtZVRl",
            "YW1SYWRpb0NvbmZpZ3VyYXRpb25EYXRhEkEKE3N0YXRfY29uZmlndXJhdGlv",
            "bnMYygEgAygLMiMucmVjX3Jvb20uR2FtZVN0YXRDb25maWd1cmF0aW9uRGF0",
            "YRIkChtwZXJzaXN0X3N0YXRzX29uX2dhbWVfc3RhcnQYywEgASgIEhMKCm1h",
            "eF9oZWFsdGgYrQIgASgFEhMKCm1heF9zaGllbGQYrgIgASgFEhwKE2F1dG9f",
            "aGVhbF9zdXBwb3J0ZWQYrwIgASgIElQKHGF1dG9faGVhbF9jb25maWd1cmF0",
            "aW9uX2RhdGEYsAIgASgLMi0ucmVjX3Jvb20uR2FtZUNvbWJhdEF1dG9IZWFs",
            "Q29uZmlndXJhdGlvbkRhdGESFwoOZGJub19zdXBwb3J0ZWQYsQIgASgIElQK",
            "F2Ribm9fY29uZmlndXJhdGlvbl9kYXRhGLICIAEoCzIyLnJlY19yb29tLkdh",
            "bWVDb21iYXREb3duQnV0Tm90T3V0Q29uZmlndXJhdGlvbkRhdGESHwoWYXV0",
            "b19yZXNwYXduX3N1cHBvcnRlZBizAiABKAgSUQoacmVzcGF3bl9jb25maWd1",
            "cmF0aW9uX2RhdGEYtAIgASgLMiwucmVjX3Jvb20uR2FtZUNvbWJhdFJlc3Bh",
            "d25Db25maWd1cmF0aW9uRGF0YRIUCgtyZXZpdmVfbW9kZRi1AiABKAUSTwoZ",
            "cmV2aXZlX2NvbmZpZ3VyYXRpb25fZGF0YRi2AiABKAsyKy5yZWNfcm9vbS5H",
            "YW1lQ29tYmF0UmV2aXZlQ29uZmlndXJhdGlvbkRhdGESXAogZnJpZW5kbHlf",
            "ZmlyZV9jb25maWd1cmF0aW9uX2RhdGEYtwIgASgLMjEucmVjX3Jvb20uR2Ft",
            "ZUNvbWJhdEZyaWVuZGx5RmlyZUNvbmZpZ3VyYXRpb25EYXRhElsKI2NvbWJh",
            "dF9wbGF5ZXJfdWlfY29uZmlndXJhdGlvbl9kYXRhGLgCIAEoCzItLnJlY19y",
            "b29tLkdhbWVDb21iYXRQbGF5ZXJVSUNvbmZpZ3VyYXRpb25EYXRhElkKImNv",
            "bWJhdF9lbmVteV91aV9jb25maWd1cmF0aW9uX2RhdGEYuQIgASgLMiwucmVj",
            "X3Jvb20uR2FtZUNvbWJhdEVuZW15VUlDb25maWd1cmF0aW9uRGF0YRIpCiBt",
            "b25vY2hyb21lX2RlYWRfZWZmZWN0X3N1cHBvcnRlZBi6AiABKAgSKQogbW9u",
            "b2Nocm9tZV9kYm5vX2VmZmVjdF9zdXBwb3J0ZWQYuwIgASgIEioKIWRhbWFn",
            "ZV9yZWRfZmxhc2hfZWZmZWN0X3N1cHBvcnRlZBi8AiABKAgSLwomZGVhZF9w",
            "ZXJzaXN0ZW50X25vdGlmaWNhdGlvbl9zdXBwb3J0ZWQYvQIgASgIEjoKMURF",
            "UFJFQ0FURURfZGJub19wZXJzaXN0ZW50X25vdGlmaWNhdGlvbl9zdXBwb3J0",
            "ZWQYvgIgASgIEkUKPERFUFJFQ0FURURfcmV2aXZlX2Nvb2xkb3duX3BlcnNp",
            "c3RlbnRfbm90aWZpY2F0aW9uX3N1cHBvcnRlZBi/AiABKAgSQwo6REVQUkVD",
            "QVRFRF9yZXNwYXduX3RpbWVyX3BlcnNpc3RlbnRfbm90aWZpY2F0aW9uX3N1",
            "cHBvcnRlZBjAAiABKAgSHQoUY29tYmF0X2h1ZF9zdXBwb3J0ZWQYwgIgASgI",
            "Eh8KFnN1cHByZXNzX3dlYXBvbl9kYW1hZ2UYwwIgASgIEiYKHXN1cHByZXNz",
            "X2FsbF9kYW1hZ2VfdG9fcGxheWVyGMQCIAEoCBIiChllbmVtaWVzX2lnbm9y",
            "ZV9zcGVjdGF0b3JzGMUCIAEoCBInCh5kZWZhdWx0X2hpdF9mZWVkYmFja19z",
            "dXBwb3J0ZWQY3gIgASgIEioKIWRlZmF1bHRfcmV2aXZlX2ZlZWRiYWNrX3N1",
            "cHBvcnRlZBjfAiABKAgSMwoqZGVmYXVsdF9kb3duZWRfb3Bwb25lbnRfZmVl",
            "ZGJhY2tfc3VwcG9ydGVkGOACIAEoCBI3Ci5kZWZhdWx0X2Rvd25lZF9sb2Nh",
            "bF9wbGF5ZXJfZmVlZGJhY2tfc3VwcG9ydGVkGOECIAEoCBIzCipkZWZhdWx0",
            "X2Rvd25lZF90ZWFtbWF0ZV9mZWVkYmFja19zdXBwb3J0ZWQY4gIgASgIEiMK",
            "GnNwYXduX3BvaW50X3NlbGVjdGlvbl9tb2RlGJEDIAEoBRInCh5tYWluX2hh",
            "bmRfc3Bhd25fZXF1aXBtZW50X3R5cGUY9QMgASgMEiYKHW9mZl9oYW5kX3Nw",
            "YXduX2VxdWlwbWVudF90eXBlGPYDIAEoDBIsCiNyZXNldF90b29sc19vbl9n",
            "YW1lX3N0YXJ0X3N1cHBvcnRlZBj3AyABKAgSHQoUYnJva2VuX3Rvb2xfYmVo",
            "YXZpb3IY+AMgASgFEi8KJmluZmluaXRlX3Jlc2VydmVfYW1tbXVuaXRpb25f",
            "c3VwcG9ydGVkGPkDIAEoCBIfChZ0b29sX2JlYWNvbnNfc3VwcG9ydGVkGPsD",
            "IAEoCBIsCiNtb3ZlbWVudF9idWZmZXJfZGlzdGFuY2VfcmVzdHJpY3RlZBjZ",
            "BCABKAgSIAoXb3V0X29mX2JvdW5kc19zdXBwb3J0ZWQYvQUgASgIEiMKGm91",
            "dF9vZl9ib3VuZHNfZ3JhY2VfcGVyaW9kGL4FIAEoAhIjChpvdXRfb2ZfYm91",
            "bmRzX21heF9kdXJhdGlvbhi/BSABKAISKwoib3V0X29mX2JvdW5kc19zcGVj",
            "dGF0b3JzX3N1cHBvcnRlZBjABSABKAgSIwoaZG93bl9vdXRfb2ZfYm91bmRz",
            "X3BsYXllcnMYwQUgASgIQhOqAhBSZWNSb29tLlByb3RvYnVmYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::RecRoom.Protobuf.GameCombatAutoHealConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatEnemyUiConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatPlayerUiConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatRespawnConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameCombatReviveConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameStartRequirementConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameStatConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameTeamConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationDataReflection.Descriptor, global::RecRoom.Protobuf.GameTeamRadioConfigurationDataReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.GameConfigurationData), global::RecRoom.Protobuf.GameConfigurationData.Parser, new[]{ "Name", "ManualStartRequirementConfigurationData", "AutomaticStartRequirementConfigurationData", "JoinInProgressSupported", "AutomaticStartSupported", "LoadPriority", "RespawnOnGameStartSupported", "RespawnOnGameOverSupported", "PregameVoiceOverSupported", "ResultsVoiceOverSupported", "EndGameIfStartRequirementsNotMet", "CountdownVoiceOverSupported", "GameStartDelay", "EndGameResultsDuration", "GameModeNotificationsSupported", "InGamePlayerNotificationsSupported", "ReloadInstanceAfterPostgameResults", "TeamConfigurations", "TeamSelectionMethod", "TeamChangeDuringGameSupported", "ExplicitTeamSelectionSupported", "SpectatingSupported", "RespawnOnTeamChangeDuringGameSupported", "ShowOpenSlotsOnScoreboard", "ClearTeamsAfterGame", "EndGameWhenAllDead", "TeamPlayerVisualConfigurationData", "TeamRadiosSupported", "TeamRadiosCrossteamSupported", "TeamRadioConfigurationData", "StatConfigurations", "PersistStatsOnGameStart", "MaxHealth", "MaxShield", "AutoHealSupported", "AutoHealConfigurationData", "DbnoSupported", "DbnoConfigurationData", "AutoRespawnSupported", "RespawnConfigurationData", "ReviveMode", "ReviveConfigurationData", "FriendlyFireConfigurationData", "CombatPlayerUiConfigurationData", "CombatEnemyUiConfigurationData", "MonochromeDeadEffectSupported", "MonochromeDbnoEffectSupported", "DamageRedFlashEffectSupported", "DeadPersistentNotificationSupported", "DEPRECATEDDbnoPersistentNotificationSupported", "DEPRECATEDReviveCooldownPersistentNotificationSupported", "DEPRECATEDRespawnTimerPersistentNotificationSupported", "CombatHudSupported", "SuppressWeaponDamage", "SuppressAllDamageToPlayer", "EnemiesIgnoreSpectators", "DefaultHitFeedbackSupported", "DefaultReviveFeedbackSupported", "DefaultDownedOpponentFeedbackSupported", "DefaultDownedLocalPlayerFeedbackSupported", "DefaultDownedTeammateFeedbackSupported", "SpawnPointSelectionMode", "MainHandSpawnEquipmentType", "OffHandSpawnEquipmentType", "ResetToolsOnGameStartSupported", "BrokenToolBehavior", "InfiniteReserveAmmmunitionSupported", "ToolBeaconsSupported", "MovementBufferDistanceRestricted", "OutOfBoundsSupported", "OutOfBoundsGracePeriod", "OutOfBoundsMaxDuration", "OutOfBoundsSpectatorsSupported", "DownOutOfBoundsPlayers" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class GameConfigurationData : pb::IMessage<GameConfigurationData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GameConfigurationData> _parser = new pb::MessageParser<GameConfigurationData>(() => new GameConfigurationData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GameConfigurationData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.GameConfigurationDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GameConfigurationData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GameConfigurationData(GameConfigurationData other) : this() {
      name_ = other.name_;
      manualStartRequirementConfigurationData_ = other.manualStartRequirementConfigurationData_ != null ? other.manualStartRequirementConfigurationData_.Clone() : null;
      automaticStartRequirementConfigurationData_ = other.automaticStartRequirementConfigurationData_ != null ? other.automaticStartRequirementConfigurationData_.Clone() : null;
      joinInProgressSupported_ = other.joinInProgressSupported_;
      automaticStartSupported_ = other.automaticStartSupported_;
      loadPriority_ = other.loadPriority_;
      respawnOnGameStartSupported_ = other.respawnOnGameStartSupported_;
      respawnOnGameOverSupported_ = other.respawnOnGameOverSupported_;
      pregameVoiceOverSupported_ = other.pregameVoiceOverSupported_;
      resultsVoiceOverSupported_ = other.resultsVoiceOverSupported_;
      endGameIfStartRequirementsNotMet_ = other.endGameIfStartRequirementsNotMet_;
      countdownVoiceOverSupported_ = other.countdownVoiceOverSupported_;
      gameStartDelay_ = other.gameStartDelay_;
      endGameResultsDuration_ = other.endGameResultsDuration_;
      gameModeNotificationsSupported_ = other.gameModeNotificationsSupported_;
      inGamePlayerNotificationsSupported_ = other.inGamePlayerNotificationsSupported_;
      reloadInstanceAfterPostgameResults_ = other.reloadInstanceAfterPostgameResults_;
      teamConfigurations_ = other.teamConfigurations_.Clone();
      teamSelectionMethod_ = other.teamSelectionMethod_;
      teamChangeDuringGameSupported_ = other.teamChangeDuringGameSupported_;
      explicitTeamSelectionSupported_ = other.explicitTeamSelectionSupported_;
      spectatingSupported_ = other.spectatingSupported_;
      respawnOnTeamChangeDuringGameSupported_ = other.respawnOnTeamChangeDuringGameSupported_;
      showOpenSlotsOnScoreboard_ = other.showOpenSlotsOnScoreboard_;
      clearTeamsAfterGame_ = other.clearTeamsAfterGame_;
      endGameWhenAllDead_ = other.endGameWhenAllDead_;
      teamPlayerVisualConfigurationData_ = other.teamPlayerVisualConfigurationData_ != null ? other.teamPlayerVisualConfigurationData_.Clone() : null;
      teamRadiosSupported_ = other.teamRadiosSupported_;
      teamRadiosCrossteamSupported_ = other.teamRadiosCrossteamSupported_;
      teamRadioConfigurationData_ = other.teamRadioConfigurationData_ != null ? other.teamRadioConfigurationData_.Clone() : null;
      statConfigurations_ = other.statConfigurations_.Clone();
      persistStatsOnGameStart_ = other.persistStatsOnGameStart_;
      maxHealth_ = other.maxHealth_;
      maxShield_ = other.maxShield_;
      autoHealSupported_ = other.autoHealSupported_;
      autoHealConfigurationData_ = other.autoHealConfigurationData_ != null ? other.autoHealConfigurationData_.Clone() : null;
      dbnoSupported_ = other.dbnoSupported_;
      dbnoConfigurationData_ = other.dbnoConfigurationData_ != null ? other.dbnoConfigurationData_.Clone() : null;
      autoRespawnSupported_ = other.autoRespawnSupported_;
      respawnConfigurationData_ = other.respawnConfigurationData_ != null ? other.respawnConfigurationData_.Clone() : null;
      reviveMode_ = other.reviveMode_;
      reviveConfigurationData_ = other.reviveConfigurationData_ != null ? other.reviveConfigurationData_.Clone() : null;
      friendlyFireConfigurationData_ = other.friendlyFireConfigurationData_ != null ? other.friendlyFireConfigurationData_.Clone() : null;
      combatPlayerUiConfigurationData_ = other.combatPlayerUiConfigurationData_ != null ? other.combatPlayerUiConfigurationData_.Clone() : null;
      combatEnemyUiConfigurationData_ = other.combatEnemyUiConfigurationData_ != null ? other.combatEnemyUiConfigurationData_.Clone() : null;
      monochromeDeadEffectSupported_ = other.monochromeDeadEffectSupported_;
      monochromeDbnoEffectSupported_ = other.monochromeDbnoEffectSupported_;
      damageRedFlashEffectSupported_ = other.damageRedFlashEffectSupported_;
      deadPersistentNotificationSupported_ = other.deadPersistentNotificationSupported_;
      dEPRECATEDDbnoPersistentNotificationSupported_ = other.dEPRECATEDDbnoPersistentNotificationSupported_;
      dEPRECATEDReviveCooldownPersistentNotificationSupported_ = other.dEPRECATEDReviveCooldownPersistentNotificationSupported_;
      dEPRECATEDRespawnTimerPersistentNotificationSupported_ = other.dEPRECATEDRespawnTimerPersistentNotificationSupported_;
      combatHudSupported_ = other.combatHudSupported_;
      suppressWeaponDamage_ = other.suppressWeaponDamage_;
      suppressAllDamageToPlayer_ = other.suppressAllDamageToPlayer_;
      enemiesIgnoreSpectators_ = other.enemiesIgnoreSpectators_;
      defaultHitFeedbackSupported_ = other.defaultHitFeedbackSupported_;
      defaultReviveFeedbackSupported_ = other.defaultReviveFeedbackSupported_;
      defaultDownedOpponentFeedbackSupported_ = other.defaultDownedOpponentFeedbackSupported_;
      defaultDownedLocalPlayerFeedbackSupported_ = other.defaultDownedLocalPlayerFeedbackSupported_;
      defaultDownedTeammateFeedbackSupported_ = other.defaultDownedTeammateFeedbackSupported_;
      spawnPointSelectionMode_ = other.spawnPointSelectionMode_;
      mainHandSpawnEquipmentType_ = other.mainHandSpawnEquipmentType_;
      offHandSpawnEquipmentType_ = other.offHandSpawnEquipmentType_;
      resetToolsOnGameStartSupported_ = other.resetToolsOnGameStartSupported_;
      brokenToolBehavior_ = other.brokenToolBehavior_;
      infiniteReserveAmmmunitionSupported_ = other.infiniteReserveAmmmunitionSupported_;
      toolBeaconsSupported_ = other.toolBeaconsSupported_;
      movementBufferDistanceRestricted_ = other.movementBufferDistanceRestricted_;
      outOfBoundsSupported_ = other.outOfBoundsSupported_;
      outOfBoundsGracePeriod_ = other.outOfBoundsGracePeriod_;
      outOfBoundsMaxDuration_ = other.outOfBoundsMaxDuration_;
      outOfBoundsSpectatorsSupported_ = other.outOfBoundsSpectatorsSupported_;
      downOutOfBoundsPlayers_ = other.downOutOfBoundsPlayers_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GameConfigurationData Clone() {
      return new GameConfigurationData(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "manual_start_requirement_configuration_data" field.</summary>
    public const int ManualStartRequirementConfigurationDataFieldNumber = 3;
    private global::RecRoom.Protobuf.GameStartRequirementConfigurationData manualStartRequirementConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameStartRequirementConfigurationData ManualStartRequirementConfigurationData {
      get { return manualStartRequirementConfigurationData_; }
      set {
        manualStartRequirementConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "automatic_start_requirement_configuration_data" field.</summary>
    public const int AutomaticStartRequirementConfigurationDataFieldNumber = 4;
    private global::RecRoom.Protobuf.GameStartRequirementConfigurationData automaticStartRequirementConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameStartRequirementConfigurationData AutomaticStartRequirementConfigurationData {
      get { return automaticStartRequirementConfigurationData_; }
      set {
        automaticStartRequirementConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "join_in_progress_supported" field.</summary>
    public const int JoinInProgressSupportedFieldNumber = 5;
    private bool joinInProgressSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool JoinInProgressSupported {
      get { return joinInProgressSupported_; }
      set {
        joinInProgressSupported_ = value;
      }
    }

    /// <summary>Field number for the "automatic_start_supported" field.</summary>
    public const int AutomaticStartSupportedFieldNumber = 6;
    private bool automaticStartSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AutomaticStartSupported {
      get { return automaticStartSupported_; }
      set {
        automaticStartSupported_ = value;
      }
    }

    /// <summary>Field number for the "load_priority" field.</summary>
    public const int LoadPriorityFieldNumber = 7;
    private int loadPriority_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int LoadPriority {
      get { return loadPriority_; }
      set {
        loadPriority_ = value;
      }
    }

    /// <summary>Field number for the "respawn_on_game_start_supported" field.</summary>
    public const int RespawnOnGameStartSupportedFieldNumber = 8;
    private bool respawnOnGameStartSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool RespawnOnGameStartSupported {
      get { return respawnOnGameStartSupported_; }
      set {
        respawnOnGameStartSupported_ = value;
      }
    }

    /// <summary>Field number for the "respawn_on_game_over_supported" field.</summary>
    public const int RespawnOnGameOverSupportedFieldNumber = 9;
    private bool respawnOnGameOverSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool RespawnOnGameOverSupported {
      get { return respawnOnGameOverSupported_; }
      set {
        respawnOnGameOverSupported_ = value;
      }
    }

    /// <summary>Field number for the "pregame_voice_over_supported" field.</summary>
    public const int PregameVoiceOverSupportedFieldNumber = 10;
    private bool pregameVoiceOverSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool PregameVoiceOverSupported {
      get { return pregameVoiceOverSupported_; }
      set {
        pregameVoiceOverSupported_ = value;
      }
    }

    /// <summary>Field number for the "results_voice_over_supported" field.</summary>
    public const int ResultsVoiceOverSupportedFieldNumber = 11;
    private bool resultsVoiceOverSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ResultsVoiceOverSupported {
      get { return resultsVoiceOverSupported_; }
      set {
        resultsVoiceOverSupported_ = value;
      }
    }

    /// <summary>Field number for the "end_game_if_start_requirements_not_met" field.</summary>
    public const int EndGameIfStartRequirementsNotMetFieldNumber = 12;
    private bool endGameIfStartRequirementsNotMet_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool EndGameIfStartRequirementsNotMet {
      get { return endGameIfStartRequirementsNotMet_; }
      set {
        endGameIfStartRequirementsNotMet_ = value;
      }
    }

    /// <summary>Field number for the "countdown_voice_over_supported" field.</summary>
    public const int CountdownVoiceOverSupportedFieldNumber = 13;
    private bool countdownVoiceOverSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CountdownVoiceOverSupported {
      get { return countdownVoiceOverSupported_; }
      set {
        countdownVoiceOverSupported_ = value;
      }
    }

    /// <summary>Field number for the "game_start_delay" field.</summary>
    public const int GameStartDelayFieldNumber = 14;
    private float gameStartDelay_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float GameStartDelay {
      get { return gameStartDelay_; }
      set {
        gameStartDelay_ = value;
      }
    }

    /// <summary>Field number for the "end_game_results_duration" field.</summary>
    public const int EndGameResultsDurationFieldNumber = 15;
    private float endGameResultsDuration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float EndGameResultsDuration {
      get { return endGameResultsDuration_; }
      set {
        endGameResultsDuration_ = value;
      }
    }

    /// <summary>Field number for the "game_mode_notifications_supported" field.</summary>
    public const int GameModeNotificationsSupportedFieldNumber = 16;
    private bool gameModeNotificationsSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool GameModeNotificationsSupported {
      get { return gameModeNotificationsSupported_; }
      set {
        gameModeNotificationsSupported_ = value;
      }
    }

    /// <summary>Field number for the "in_game_player_notifications_supported" field.</summary>
    public const int InGamePlayerNotificationsSupportedFieldNumber = 17;
    private bool inGamePlayerNotificationsSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool InGamePlayerNotificationsSupported {
      get { return inGamePlayerNotificationsSupported_; }
      set {
        inGamePlayerNotificationsSupported_ = value;
      }
    }

    /// <summary>Field number for the "reload_instance_after_postgame_results" field.</summary>
    public const int ReloadInstanceAfterPostgameResultsFieldNumber = 18;
    private bool reloadInstanceAfterPostgameResults_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ReloadInstanceAfterPostgameResults {
      get { return reloadInstanceAfterPostgameResults_; }
      set {
        reloadInstanceAfterPostgameResults_ = value;
      }
    }

    /// <summary>Field number for the "team_configurations" field.</summary>
    public const int TeamConfigurationsFieldNumber = 101;
    private static readonly pb::FieldCodec<global::RecRoom.Protobuf.GameTeamConfigurationData> _repeated_teamConfigurations_codec
        = pb::FieldCodec.ForMessage(810, global::RecRoom.Protobuf.GameTeamConfigurationData.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Protobuf.GameTeamConfigurationData> teamConfigurations_ = new pbc::RepeatedField<global::RecRoom.Protobuf.GameTeamConfigurationData>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Protobuf.GameTeamConfigurationData> TeamConfigurations {
      get { return teamConfigurations_; }
    }

    /// <summary>Field number for the "team_selection_method" field.</summary>
    public const int TeamSelectionMethodFieldNumber = 102;
    private int teamSelectionMethod_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int TeamSelectionMethod {
      get { return teamSelectionMethod_; }
      set {
        teamSelectionMethod_ = value;
      }
    }

    /// <summary>Field number for the "team_change_during_game_supported" field.</summary>
    public const int TeamChangeDuringGameSupportedFieldNumber = 103;
    private bool teamChangeDuringGameSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool TeamChangeDuringGameSupported {
      get { return teamChangeDuringGameSupported_; }
      set {
        teamChangeDuringGameSupported_ = value;
      }
    }

    /// <summary>Field number for the "explicit_team_selection_supported" field.</summary>
    public const int ExplicitTeamSelectionSupportedFieldNumber = 104;
    private bool explicitTeamSelectionSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ExplicitTeamSelectionSupported {
      get { return explicitTeamSelectionSupported_; }
      set {
        explicitTeamSelectionSupported_ = value;
      }
    }

    /// <summary>Field number for the "spectating_supported" field.</summary>
    public const int SpectatingSupportedFieldNumber = 105;
    private bool spectatingSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool SpectatingSupported {
      get { return spectatingSupported_; }
      set {
        spectatingSupported_ = value;
      }
    }

    /// <summary>Field number for the "respawn_on_team_change_during_game_supported" field.</summary>
    public const int RespawnOnTeamChangeDuringGameSupportedFieldNumber = 109;
    private bool respawnOnTeamChangeDuringGameSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool RespawnOnTeamChangeDuringGameSupported {
      get { return respawnOnTeamChangeDuringGameSupported_; }
      set {
        respawnOnTeamChangeDuringGameSupported_ = value;
      }
    }

    /// <summary>Field number for the "show_open_slots_on_scoreboard" field.</summary>
    public const int ShowOpenSlotsOnScoreboardFieldNumber = 110;
    private bool showOpenSlotsOnScoreboard_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ShowOpenSlotsOnScoreboard {
      get { return showOpenSlotsOnScoreboard_; }
      set {
        showOpenSlotsOnScoreboard_ = value;
      }
    }

    /// <summary>Field number for the "clear_teams_after_game" field.</summary>
    public const int ClearTeamsAfterGameFieldNumber = 111;
    private bool clearTeamsAfterGame_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ClearTeamsAfterGame {
      get { return clearTeamsAfterGame_; }
      set {
        clearTeamsAfterGame_ = value;
      }
    }

    /// <summary>Field number for the "end_game_when_all_dead" field.</summary>
    public const int EndGameWhenAllDeadFieldNumber = 112;
    private bool endGameWhenAllDead_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool EndGameWhenAllDead {
      get { return endGameWhenAllDead_; }
      set {
        endGameWhenAllDead_ = value;
      }
    }

    /// <summary>Field number for the "team_player_visual_configuration_data" field.</summary>
    public const int TeamPlayerVisualConfigurationDataFieldNumber = 106;
    private global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationData teamPlayerVisualConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationData TeamPlayerVisualConfigurationData {
      get { return teamPlayerVisualConfigurationData_; }
      set {
        teamPlayerVisualConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "team_radios_supported" field.</summary>
    public const int TeamRadiosSupportedFieldNumber = 107;
    private bool teamRadiosSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool TeamRadiosSupported {
      get { return teamRadiosSupported_; }
      set {
        teamRadiosSupported_ = value;
      }
    }

    /// <summary>Field number for the "team_radios_crossteam_supported" field.</summary>
    public const int TeamRadiosCrossteamSupportedFieldNumber = 113;
    private bool teamRadiosCrossteamSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool TeamRadiosCrossteamSupported {
      get { return teamRadiosCrossteamSupported_; }
      set {
        teamRadiosCrossteamSupported_ = value;
      }
    }

    /// <summary>Field number for the "team_radio_configuration_data" field.</summary>
    public const int TeamRadioConfigurationDataFieldNumber = 108;
    private global::RecRoom.Protobuf.GameTeamRadioConfigurationData teamRadioConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameTeamRadioConfigurationData TeamRadioConfigurationData {
      get { return teamRadioConfigurationData_; }
      set {
        teamRadioConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "stat_configurations" field.</summary>
    public const int StatConfigurationsFieldNumber = 202;
    private static readonly pb::FieldCodec<global::RecRoom.Protobuf.GameStatConfigurationData> _repeated_statConfigurations_codec
        = pb::FieldCodec.ForMessage(1618, global::RecRoom.Protobuf.GameStatConfigurationData.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Protobuf.GameStatConfigurationData> statConfigurations_ = new pbc::RepeatedField<global::RecRoom.Protobuf.GameStatConfigurationData>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Protobuf.GameStatConfigurationData> StatConfigurations {
      get { return statConfigurations_; }
    }

    /// <summary>Field number for the "persist_stats_on_game_start" field.</summary>
    public const int PersistStatsOnGameStartFieldNumber = 203;
    private bool persistStatsOnGameStart_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool PersistStatsOnGameStart {
      get { return persistStatsOnGameStart_; }
      set {
        persistStatsOnGameStart_ = value;
      }
    }

    /// <summary>Field number for the "max_health" field.</summary>
    public const int MaxHealthFieldNumber = 301;
    private int maxHealth_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MaxHealth {
      get { return maxHealth_; }
      set {
        maxHealth_ = value;
      }
    }

    /// <summary>Field number for the "max_shield" field.</summary>
    public const int MaxShieldFieldNumber = 302;
    private int maxShield_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MaxShield {
      get { return maxShield_; }
      set {
        maxShield_ = value;
      }
    }

    /// <summary>Field number for the "auto_heal_supported" field.</summary>
    public const int AutoHealSupportedFieldNumber = 303;
    private bool autoHealSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AutoHealSupported {
      get { return autoHealSupported_; }
      set {
        autoHealSupported_ = value;
      }
    }

    /// <summary>Field number for the "auto_heal_configuration_data" field.</summary>
    public const int AutoHealConfigurationDataFieldNumber = 304;
    private global::RecRoom.Protobuf.GameCombatAutoHealConfigurationData autoHealConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatAutoHealConfigurationData AutoHealConfigurationData {
      get { return autoHealConfigurationData_; }
      set {
        autoHealConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "dbno_supported" field.</summary>
    public const int DbnoSupportedFieldNumber = 305;
    private bool dbnoSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DbnoSupported {
      get { return dbnoSupported_; }
      set {
        dbnoSupported_ = value;
      }
    }

    /// <summary>Field number for the "dbno_configuration_data" field.</summary>
    public const int DbnoConfigurationDataFieldNumber = 306;
    private global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationData dbnoConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationData DbnoConfigurationData {
      get { return dbnoConfigurationData_; }
      set {
        dbnoConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "auto_respawn_supported" field.</summary>
    public const int AutoRespawnSupportedFieldNumber = 307;
    private bool autoRespawnSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AutoRespawnSupported {
      get { return autoRespawnSupported_; }
      set {
        autoRespawnSupported_ = value;
      }
    }

    /// <summary>Field number for the "respawn_configuration_data" field.</summary>
    public const int RespawnConfigurationDataFieldNumber = 308;
    private global::RecRoom.Protobuf.GameCombatRespawnConfigurationData respawnConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatRespawnConfigurationData RespawnConfigurationData {
      get { return respawnConfigurationData_; }
      set {
        respawnConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "revive_mode" field.</summary>
    public const int ReviveModeFieldNumber = 309;
    private int reviveMode_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int ReviveMode {
      get { return reviveMode_; }
      set {
        reviveMode_ = value;
      }
    }

    /// <summary>Field number for the "revive_configuration_data" field.</summary>
    public const int ReviveConfigurationDataFieldNumber = 310;
    private global::RecRoom.Protobuf.GameCombatReviveConfigurationData reviveConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatReviveConfigurationData ReviveConfigurationData {
      get { return reviveConfigurationData_; }
      set {
        reviveConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "friendly_fire_configuration_data" field.</summary>
    public const int FriendlyFireConfigurationDataFieldNumber = 311;
    private global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationData friendlyFireConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationData FriendlyFireConfigurationData {
      get { return friendlyFireConfigurationData_; }
      set {
        friendlyFireConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "combat_player_ui_configuration_data" field.</summary>
    public const int CombatPlayerUiConfigurationDataFieldNumber = 312;
    private global::RecRoom.Protobuf.GameCombatPlayerUIConfigurationData combatPlayerUiConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatPlayerUIConfigurationData CombatPlayerUiConfigurationData {
      get { return combatPlayerUiConfigurationData_; }
      set {
        combatPlayerUiConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "combat_enemy_ui_configuration_data" field.</summary>
    public const int CombatEnemyUiConfigurationDataFieldNumber = 313;
    private global::RecRoom.Protobuf.GameCombatEnemyUIConfigurationData combatEnemyUiConfigurationData_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GameCombatEnemyUIConfigurationData CombatEnemyUiConfigurationData {
      get { return combatEnemyUiConfigurationData_; }
      set {
        combatEnemyUiConfigurationData_ = value;
      }
    }

    /// <summary>Field number for the "monochrome_dead_effect_supported" field.</summary>
    public const int MonochromeDeadEffectSupportedFieldNumber = 314;
    private bool monochromeDeadEffectSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool MonochromeDeadEffectSupported {
      get { return monochromeDeadEffectSupported_; }
      set {
        monochromeDeadEffectSupported_ = value;
      }
    }

    /// <summary>Field number for the "monochrome_dbno_effect_supported" field.</summary>
    public const int MonochromeDbnoEffectSupportedFieldNumber = 315;
    private bool monochromeDbnoEffectSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool MonochromeDbnoEffectSupported {
      get { return monochromeDbnoEffectSupported_; }
      set {
        monochromeDbnoEffectSupported_ = value;
      }
    }

    /// <summary>Field number for the "damage_red_flash_effect_supported" field.</summary>
    public const int DamageRedFlashEffectSupportedFieldNumber = 316;
    private bool damageRedFlashEffectSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DamageRedFlashEffectSupported {
      get { return damageRedFlashEffectSupported_; }
      set {
        damageRedFlashEffectSupported_ = value;
      }
    }

    /// <summary>Field number for the "dead_persistent_notification_supported" field.</summary>
    public const int DeadPersistentNotificationSupportedFieldNumber = 317;
    private bool deadPersistentNotificationSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DeadPersistentNotificationSupported {
      get { return deadPersistentNotificationSupported_; }
      set {
        deadPersistentNotificationSupported_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_dbno_persistent_notification_supported" field.</summary>
    public const int DEPRECATEDDbnoPersistentNotificationSupportedFieldNumber = 318;
    private bool dEPRECATEDDbnoPersistentNotificationSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DEPRECATEDDbnoPersistentNotificationSupported {
      get { return dEPRECATEDDbnoPersistentNotificationSupported_; }
      set {
        dEPRECATEDDbnoPersistentNotificationSupported_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_revive_cooldown_persistent_notification_supported" field.</summary>
    public const int DEPRECATEDReviveCooldownPersistentNotificationSupportedFieldNumber = 319;
    private bool dEPRECATEDReviveCooldownPersistentNotificationSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DEPRECATEDReviveCooldownPersistentNotificationSupported {
      get { return dEPRECATEDReviveCooldownPersistentNotificationSupported_; }
      set {
        dEPRECATEDReviveCooldownPersistentNotificationSupported_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_respawn_timer_persistent_notification_supported" field.</summary>
    public const int DEPRECATEDRespawnTimerPersistentNotificationSupportedFieldNumber = 320;
    private bool dEPRECATEDRespawnTimerPersistentNotificationSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DEPRECATEDRespawnTimerPersistentNotificationSupported {
      get { return dEPRECATEDRespawnTimerPersistentNotificationSupported_; }
      set {
        dEPRECATEDRespawnTimerPersistentNotificationSupported_ = value;
      }
    }

    /// <summary>Field number for the "combat_hud_supported" field.</summary>
    public const int CombatHudSupportedFieldNumber = 322;
    private bool combatHudSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool CombatHudSupported {
      get { return combatHudSupported_; }
      set {
        combatHudSupported_ = value;
      }
    }

    /// <summary>Field number for the "suppress_weapon_damage" field.</summary>
    public const int SuppressWeaponDamageFieldNumber = 323;
    private bool suppressWeaponDamage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool SuppressWeaponDamage {
      get { return suppressWeaponDamage_; }
      set {
        suppressWeaponDamage_ = value;
      }
    }

    /// <summary>Field number for the "suppress_all_damage_to_player" field.</summary>
    public const int SuppressAllDamageToPlayerFieldNumber = 324;
    private bool suppressAllDamageToPlayer_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool SuppressAllDamageToPlayer {
      get { return suppressAllDamageToPlayer_; }
      set {
        suppressAllDamageToPlayer_ = value;
      }
    }

    /// <summary>Field number for the "enemies_ignore_spectators" field.</summary>
    public const int EnemiesIgnoreSpectatorsFieldNumber = 325;
    private bool enemiesIgnoreSpectators_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool EnemiesIgnoreSpectators {
      get { return enemiesIgnoreSpectators_; }
      set {
        enemiesIgnoreSpectators_ = value;
      }
    }

    /// <summary>Field number for the "default_hit_feedback_supported" field.</summary>
    public const int DefaultHitFeedbackSupportedFieldNumber = 350;
    private bool defaultHitFeedbackSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DefaultHitFeedbackSupported {
      get { return defaultHitFeedbackSupported_; }
      set {
        defaultHitFeedbackSupported_ = value;
      }
    }

    /// <summary>Field number for the "default_revive_feedback_supported" field.</summary>
    public const int DefaultReviveFeedbackSupportedFieldNumber = 351;
    private bool defaultReviveFeedbackSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DefaultReviveFeedbackSupported {
      get { return defaultReviveFeedbackSupported_; }
      set {
        defaultReviveFeedbackSupported_ = value;
      }
    }

    /// <summary>Field number for the "default_downed_opponent_feedback_supported" field.</summary>
    public const int DefaultDownedOpponentFeedbackSupportedFieldNumber = 352;
    private bool defaultDownedOpponentFeedbackSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DefaultDownedOpponentFeedbackSupported {
      get { return defaultDownedOpponentFeedbackSupported_; }
      set {
        defaultDownedOpponentFeedbackSupported_ = value;
      }
    }

    /// <summary>Field number for the "default_downed_local_player_feedback_supported" field.</summary>
    public const int DefaultDownedLocalPlayerFeedbackSupportedFieldNumber = 353;
    private bool defaultDownedLocalPlayerFeedbackSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DefaultDownedLocalPlayerFeedbackSupported {
      get { return defaultDownedLocalPlayerFeedbackSupported_; }
      set {
        defaultDownedLocalPlayerFeedbackSupported_ = value;
      }
    }

    /// <summary>Field number for the "default_downed_teammate_feedback_supported" field.</summary>
    public const int DefaultDownedTeammateFeedbackSupportedFieldNumber = 354;
    private bool defaultDownedTeammateFeedbackSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DefaultDownedTeammateFeedbackSupported {
      get { return defaultDownedTeammateFeedbackSupported_; }
      set {
        defaultDownedTeammateFeedbackSupported_ = value;
      }
    }

    /// <summary>Field number for the "spawn_point_selection_mode" field.</summary>
    public const int SpawnPointSelectionModeFieldNumber = 401;
    private int spawnPointSelectionMode_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int SpawnPointSelectionMode {
      get { return spawnPointSelectionMode_; }
      set {
        spawnPointSelectionMode_ = value;
      }
    }

    /// <summary>Field number for the "main_hand_spawn_equipment_type" field.</summary>
    public const int MainHandSpawnEquipmentTypeFieldNumber = 501;
    private pb::ByteString mainHandSpawnEquipmentType_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString MainHandSpawnEquipmentType {
      get { return mainHandSpawnEquipmentType_; }
      set {
        mainHandSpawnEquipmentType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "off_hand_spawn_equipment_type" field.</summary>
    public const int OffHandSpawnEquipmentTypeFieldNumber = 502;
    private pb::ByteString offHandSpawnEquipmentType_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString OffHandSpawnEquipmentType {
      get { return offHandSpawnEquipmentType_; }
      set {
        offHandSpawnEquipmentType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "reset_tools_on_game_start_supported" field.</summary>
    public const int ResetToolsOnGameStartSupportedFieldNumber = 503;
    private bool resetToolsOnGameStartSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ResetToolsOnGameStartSupported {
      get { return resetToolsOnGameStartSupported_; }
      set {
        resetToolsOnGameStartSupported_ = value;
      }
    }

    /// <summary>Field number for the "broken_tool_behavior" field.</summary>
    public const int BrokenToolBehaviorFieldNumber = 504;
    private int brokenToolBehavior_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int BrokenToolBehavior {
      get { return brokenToolBehavior_; }
      set {
        brokenToolBehavior_ = value;
      }
    }

    /// <summary>Field number for the "infinite_reserve_ammmunition_supported" field.</summary>
    public const int InfiniteReserveAmmmunitionSupportedFieldNumber = 505;
    private bool infiniteReserveAmmmunitionSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool InfiniteReserveAmmmunitionSupported {
      get { return infiniteReserveAmmmunitionSupported_; }
      set {
        infiniteReserveAmmmunitionSupported_ = value;
      }
    }

    /// <summary>Field number for the "tool_beacons_supported" field.</summary>
    public const int ToolBeaconsSupportedFieldNumber = 507;
    private bool toolBeaconsSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ToolBeaconsSupported {
      get { return toolBeaconsSupported_; }
      set {
        toolBeaconsSupported_ = value;
      }
    }

    /// <summary>Field number for the "movement_buffer_distance_restricted" field.</summary>
    public const int MovementBufferDistanceRestrictedFieldNumber = 601;
    private bool movementBufferDistanceRestricted_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool MovementBufferDistanceRestricted {
      get { return movementBufferDistanceRestricted_; }
      set {
        movementBufferDistanceRestricted_ = value;
      }
    }

    /// <summary>Field number for the "out_of_bounds_supported" field.</summary>
    public const int OutOfBoundsSupportedFieldNumber = 701;
    private bool outOfBoundsSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool OutOfBoundsSupported {
      get { return outOfBoundsSupported_; }
      set {
        outOfBoundsSupported_ = value;
      }
    }

    /// <summary>Field number for the "out_of_bounds_grace_period" field.</summary>
    public const int OutOfBoundsGracePeriodFieldNumber = 702;
    private float outOfBoundsGracePeriod_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float OutOfBoundsGracePeriod {
      get { return outOfBoundsGracePeriod_; }
      set {
        outOfBoundsGracePeriod_ = value;
      }
    }

    /// <summary>Field number for the "out_of_bounds_max_duration" field.</summary>
    public const int OutOfBoundsMaxDurationFieldNumber = 703;
    private float outOfBoundsMaxDuration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float OutOfBoundsMaxDuration {
      get { return outOfBoundsMaxDuration_; }
      set {
        outOfBoundsMaxDuration_ = value;
      }
    }

    /// <summary>Field number for the "out_of_bounds_spectators_supported" field.</summary>
    public const int OutOfBoundsSpectatorsSupportedFieldNumber = 704;
    private bool outOfBoundsSpectatorsSupported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool OutOfBoundsSpectatorsSupported {
      get { return outOfBoundsSpectatorsSupported_; }
      set {
        outOfBoundsSpectatorsSupported_ = value;
      }
    }

    /// <summary>Field number for the "down_out_of_bounds_players" field.</summary>
    public const int DownOutOfBoundsPlayersFieldNumber = 705;
    private bool downOutOfBoundsPlayers_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool DownOutOfBoundsPlayers {
      get { return downOutOfBoundsPlayers_; }
      set {
        downOutOfBoundsPlayers_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GameConfigurationData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GameConfigurationData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (!object.Equals(ManualStartRequirementConfigurationData, other.ManualStartRequirementConfigurationData)) return false;
      if (!object.Equals(AutomaticStartRequirementConfigurationData, other.AutomaticStartRequirementConfigurationData)) return false;
      if (JoinInProgressSupported != other.JoinInProgressSupported) return false;
      if (AutomaticStartSupported != other.AutomaticStartSupported) return false;
      if (LoadPriority != other.LoadPriority) return false;
      if (RespawnOnGameStartSupported != other.RespawnOnGameStartSupported) return false;
      if (RespawnOnGameOverSupported != other.RespawnOnGameOverSupported) return false;
      if (PregameVoiceOverSupported != other.PregameVoiceOverSupported) return false;
      if (ResultsVoiceOverSupported != other.ResultsVoiceOverSupported) return false;
      if (EndGameIfStartRequirementsNotMet != other.EndGameIfStartRequirementsNotMet) return false;
      if (CountdownVoiceOverSupported != other.CountdownVoiceOverSupported) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(GameStartDelay, other.GameStartDelay)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(EndGameResultsDuration, other.EndGameResultsDuration)) return false;
      if (GameModeNotificationsSupported != other.GameModeNotificationsSupported) return false;
      if (InGamePlayerNotificationsSupported != other.InGamePlayerNotificationsSupported) return false;
      if (ReloadInstanceAfterPostgameResults != other.ReloadInstanceAfterPostgameResults) return false;
      if(!teamConfigurations_.Equals(other.teamConfigurations_)) return false;
      if (TeamSelectionMethod != other.TeamSelectionMethod) return false;
      if (TeamChangeDuringGameSupported != other.TeamChangeDuringGameSupported) return false;
      if (ExplicitTeamSelectionSupported != other.ExplicitTeamSelectionSupported) return false;
      if (SpectatingSupported != other.SpectatingSupported) return false;
      if (RespawnOnTeamChangeDuringGameSupported != other.RespawnOnTeamChangeDuringGameSupported) return false;
      if (ShowOpenSlotsOnScoreboard != other.ShowOpenSlotsOnScoreboard) return false;
      if (ClearTeamsAfterGame != other.ClearTeamsAfterGame) return false;
      if (EndGameWhenAllDead != other.EndGameWhenAllDead) return false;
      if (!object.Equals(TeamPlayerVisualConfigurationData, other.TeamPlayerVisualConfigurationData)) return false;
      if (TeamRadiosSupported != other.TeamRadiosSupported) return false;
      if (TeamRadiosCrossteamSupported != other.TeamRadiosCrossteamSupported) return false;
      if (!object.Equals(TeamRadioConfigurationData, other.TeamRadioConfigurationData)) return false;
      if(!statConfigurations_.Equals(other.statConfigurations_)) return false;
      if (PersistStatsOnGameStart != other.PersistStatsOnGameStart) return false;
      if (MaxHealth != other.MaxHealth) return false;
      if (MaxShield != other.MaxShield) return false;
      if (AutoHealSupported != other.AutoHealSupported) return false;
      if (!object.Equals(AutoHealConfigurationData, other.AutoHealConfigurationData)) return false;
      if (DbnoSupported != other.DbnoSupported) return false;
      if (!object.Equals(DbnoConfigurationData, other.DbnoConfigurationData)) return false;
      if (AutoRespawnSupported != other.AutoRespawnSupported) return false;
      if (!object.Equals(RespawnConfigurationData, other.RespawnConfigurationData)) return false;
      if (ReviveMode != other.ReviveMode) return false;
      if (!object.Equals(ReviveConfigurationData, other.ReviveConfigurationData)) return false;
      if (!object.Equals(FriendlyFireConfigurationData, other.FriendlyFireConfigurationData)) return false;
      if (!object.Equals(CombatPlayerUiConfigurationData, other.CombatPlayerUiConfigurationData)) return false;
      if (!object.Equals(CombatEnemyUiConfigurationData, other.CombatEnemyUiConfigurationData)) return false;
      if (MonochromeDeadEffectSupported != other.MonochromeDeadEffectSupported) return false;
      if (MonochromeDbnoEffectSupported != other.MonochromeDbnoEffectSupported) return false;
      if (DamageRedFlashEffectSupported != other.DamageRedFlashEffectSupported) return false;
      if (DeadPersistentNotificationSupported != other.DeadPersistentNotificationSupported) return false;
      if (DEPRECATEDDbnoPersistentNotificationSupported != other.DEPRECATEDDbnoPersistentNotificationSupported) return false;
      if (DEPRECATEDReviveCooldownPersistentNotificationSupported != other.DEPRECATEDReviveCooldownPersistentNotificationSupported) return false;
      if (DEPRECATEDRespawnTimerPersistentNotificationSupported != other.DEPRECATEDRespawnTimerPersistentNotificationSupported) return false;
      if (CombatHudSupported != other.CombatHudSupported) return false;
      if (SuppressWeaponDamage != other.SuppressWeaponDamage) return false;
      if (SuppressAllDamageToPlayer != other.SuppressAllDamageToPlayer) return false;
      if (EnemiesIgnoreSpectators != other.EnemiesIgnoreSpectators) return false;
      if (DefaultHitFeedbackSupported != other.DefaultHitFeedbackSupported) return false;
      if (DefaultReviveFeedbackSupported != other.DefaultReviveFeedbackSupported) return false;
      if (DefaultDownedOpponentFeedbackSupported != other.DefaultDownedOpponentFeedbackSupported) return false;
      if (DefaultDownedLocalPlayerFeedbackSupported != other.DefaultDownedLocalPlayerFeedbackSupported) return false;
      if (DefaultDownedTeammateFeedbackSupported != other.DefaultDownedTeammateFeedbackSupported) return false;
      if (SpawnPointSelectionMode != other.SpawnPointSelectionMode) return false;
      if (MainHandSpawnEquipmentType != other.MainHandSpawnEquipmentType) return false;
      if (OffHandSpawnEquipmentType != other.OffHandSpawnEquipmentType) return false;
      if (ResetToolsOnGameStartSupported != other.ResetToolsOnGameStartSupported) return false;
      if (BrokenToolBehavior != other.BrokenToolBehavior) return false;
      if (InfiniteReserveAmmmunitionSupported != other.InfiniteReserveAmmmunitionSupported) return false;
      if (ToolBeaconsSupported != other.ToolBeaconsSupported) return false;
      if (MovementBufferDistanceRestricted != other.MovementBufferDistanceRestricted) return false;
      if (OutOfBoundsSupported != other.OutOfBoundsSupported) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OutOfBoundsGracePeriod, other.OutOfBoundsGracePeriod)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OutOfBoundsMaxDuration, other.OutOfBoundsMaxDuration)) return false;
      if (OutOfBoundsSpectatorsSupported != other.OutOfBoundsSpectatorsSupported) return false;
      if (DownOutOfBoundsPlayers != other.DownOutOfBoundsPlayers) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (manualStartRequirementConfigurationData_ != null) hash ^= ManualStartRequirementConfigurationData.GetHashCode();
      if (automaticStartRequirementConfigurationData_ != null) hash ^= AutomaticStartRequirementConfigurationData.GetHashCode();
      if (JoinInProgressSupported != false) hash ^= JoinInProgressSupported.GetHashCode();
      if (AutomaticStartSupported != false) hash ^= AutomaticStartSupported.GetHashCode();
      if (LoadPriority != 0) hash ^= LoadPriority.GetHashCode();
      if (RespawnOnGameStartSupported != false) hash ^= RespawnOnGameStartSupported.GetHashCode();
      if (RespawnOnGameOverSupported != false) hash ^= RespawnOnGameOverSupported.GetHashCode();
      if (PregameVoiceOverSupported != false) hash ^= PregameVoiceOverSupported.GetHashCode();
      if (ResultsVoiceOverSupported != false) hash ^= ResultsVoiceOverSupported.GetHashCode();
      if (EndGameIfStartRequirementsNotMet != false) hash ^= EndGameIfStartRequirementsNotMet.GetHashCode();
      if (CountdownVoiceOverSupported != false) hash ^= CountdownVoiceOverSupported.GetHashCode();
      if (GameStartDelay != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(GameStartDelay);
      if (EndGameResultsDuration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(EndGameResultsDuration);
      if (GameModeNotificationsSupported != false) hash ^= GameModeNotificationsSupported.GetHashCode();
      if (InGamePlayerNotificationsSupported != false) hash ^= InGamePlayerNotificationsSupported.GetHashCode();
      if (ReloadInstanceAfterPostgameResults != false) hash ^= ReloadInstanceAfterPostgameResults.GetHashCode();
      hash ^= teamConfigurations_.GetHashCode();
      if (TeamSelectionMethod != 0) hash ^= TeamSelectionMethod.GetHashCode();
      if (TeamChangeDuringGameSupported != false) hash ^= TeamChangeDuringGameSupported.GetHashCode();
      if (ExplicitTeamSelectionSupported != false) hash ^= ExplicitTeamSelectionSupported.GetHashCode();
      if (SpectatingSupported != false) hash ^= SpectatingSupported.GetHashCode();
      if (RespawnOnTeamChangeDuringGameSupported != false) hash ^= RespawnOnTeamChangeDuringGameSupported.GetHashCode();
      if (ShowOpenSlotsOnScoreboard != false) hash ^= ShowOpenSlotsOnScoreboard.GetHashCode();
      if (ClearTeamsAfterGame != false) hash ^= ClearTeamsAfterGame.GetHashCode();
      if (EndGameWhenAllDead != false) hash ^= EndGameWhenAllDead.GetHashCode();
      if (teamPlayerVisualConfigurationData_ != null) hash ^= TeamPlayerVisualConfigurationData.GetHashCode();
      if (TeamRadiosSupported != false) hash ^= TeamRadiosSupported.GetHashCode();
      if (TeamRadiosCrossteamSupported != false) hash ^= TeamRadiosCrossteamSupported.GetHashCode();
      if (teamRadioConfigurationData_ != null) hash ^= TeamRadioConfigurationData.GetHashCode();
      hash ^= statConfigurations_.GetHashCode();
      if (PersistStatsOnGameStart != false) hash ^= PersistStatsOnGameStart.GetHashCode();
      if (MaxHealth != 0) hash ^= MaxHealth.GetHashCode();
      if (MaxShield != 0) hash ^= MaxShield.GetHashCode();
      if (AutoHealSupported != false) hash ^= AutoHealSupported.GetHashCode();
      if (autoHealConfigurationData_ != null) hash ^= AutoHealConfigurationData.GetHashCode();
      if (DbnoSupported != false) hash ^= DbnoSupported.GetHashCode();
      if (dbnoConfigurationData_ != null) hash ^= DbnoConfigurationData.GetHashCode();
      if (AutoRespawnSupported != false) hash ^= AutoRespawnSupported.GetHashCode();
      if (respawnConfigurationData_ != null) hash ^= RespawnConfigurationData.GetHashCode();
      if (ReviveMode != 0) hash ^= ReviveMode.GetHashCode();
      if (reviveConfigurationData_ != null) hash ^= ReviveConfigurationData.GetHashCode();
      if (friendlyFireConfigurationData_ != null) hash ^= FriendlyFireConfigurationData.GetHashCode();
      if (combatPlayerUiConfigurationData_ != null) hash ^= CombatPlayerUiConfigurationData.GetHashCode();
      if (combatEnemyUiConfigurationData_ != null) hash ^= CombatEnemyUiConfigurationData.GetHashCode();
      if (MonochromeDeadEffectSupported != false) hash ^= MonochromeDeadEffectSupported.GetHashCode();
      if (MonochromeDbnoEffectSupported != false) hash ^= MonochromeDbnoEffectSupported.GetHashCode();
      if (DamageRedFlashEffectSupported != false) hash ^= DamageRedFlashEffectSupported.GetHashCode();
      if (DeadPersistentNotificationSupported != false) hash ^= DeadPersistentNotificationSupported.GetHashCode();
      if (DEPRECATEDDbnoPersistentNotificationSupported != false) hash ^= DEPRECATEDDbnoPersistentNotificationSupported.GetHashCode();
      if (DEPRECATEDReviveCooldownPersistentNotificationSupported != false) hash ^= DEPRECATEDReviveCooldownPersistentNotificationSupported.GetHashCode();
      if (DEPRECATEDRespawnTimerPersistentNotificationSupported != false) hash ^= DEPRECATEDRespawnTimerPersistentNotificationSupported.GetHashCode();
      if (CombatHudSupported != false) hash ^= CombatHudSupported.GetHashCode();
      if (SuppressWeaponDamage != false) hash ^= SuppressWeaponDamage.GetHashCode();
      if (SuppressAllDamageToPlayer != false) hash ^= SuppressAllDamageToPlayer.GetHashCode();
      if (EnemiesIgnoreSpectators != false) hash ^= EnemiesIgnoreSpectators.GetHashCode();
      if (DefaultHitFeedbackSupported != false) hash ^= DefaultHitFeedbackSupported.GetHashCode();
      if (DefaultReviveFeedbackSupported != false) hash ^= DefaultReviveFeedbackSupported.GetHashCode();
      if (DefaultDownedOpponentFeedbackSupported != false) hash ^= DefaultDownedOpponentFeedbackSupported.GetHashCode();
      if (DefaultDownedLocalPlayerFeedbackSupported != false) hash ^= DefaultDownedLocalPlayerFeedbackSupported.GetHashCode();
      if (DefaultDownedTeammateFeedbackSupported != false) hash ^= DefaultDownedTeammateFeedbackSupported.GetHashCode();
      if (SpawnPointSelectionMode != 0) hash ^= SpawnPointSelectionMode.GetHashCode();
      if (MainHandSpawnEquipmentType.Length != 0) hash ^= MainHandSpawnEquipmentType.GetHashCode();
      if (OffHandSpawnEquipmentType.Length != 0) hash ^= OffHandSpawnEquipmentType.GetHashCode();
      if (ResetToolsOnGameStartSupported != false) hash ^= ResetToolsOnGameStartSupported.GetHashCode();
      if (BrokenToolBehavior != 0) hash ^= BrokenToolBehavior.GetHashCode();
      if (InfiniteReserveAmmmunitionSupported != false) hash ^= InfiniteReserveAmmmunitionSupported.GetHashCode();
      if (ToolBeaconsSupported != false) hash ^= ToolBeaconsSupported.GetHashCode();
      if (MovementBufferDistanceRestricted != false) hash ^= MovementBufferDistanceRestricted.GetHashCode();
      if (OutOfBoundsSupported != false) hash ^= OutOfBoundsSupported.GetHashCode();
      if (OutOfBoundsGracePeriod != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OutOfBoundsGracePeriod);
      if (OutOfBoundsMaxDuration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OutOfBoundsMaxDuration);
      if (OutOfBoundsSpectatorsSupported != false) hash ^= OutOfBoundsSpectatorsSupported.GetHashCode();
      if (DownOutOfBoundsPlayers != false) hash ^= DownOutOfBoundsPlayers.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (manualStartRequirementConfigurationData_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ManualStartRequirementConfigurationData);
      }
      if (automaticStartRequirementConfigurationData_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(AutomaticStartRequirementConfigurationData);
      }
      if (JoinInProgressSupported != false) {
        output.WriteRawTag(40);
        output.WriteBool(JoinInProgressSupported);
      }
      if (AutomaticStartSupported != false) {
        output.WriteRawTag(48);
        output.WriteBool(AutomaticStartSupported);
      }
      if (LoadPriority != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(LoadPriority);
      }
      if (RespawnOnGameStartSupported != false) {
        output.WriteRawTag(64);
        output.WriteBool(RespawnOnGameStartSupported);
      }
      if (RespawnOnGameOverSupported != false) {
        output.WriteRawTag(72);
        output.WriteBool(RespawnOnGameOverSupported);
      }
      if (PregameVoiceOverSupported != false) {
        output.WriteRawTag(80);
        output.WriteBool(PregameVoiceOverSupported);
      }
      if (ResultsVoiceOverSupported != false) {
        output.WriteRawTag(88);
        output.WriteBool(ResultsVoiceOverSupported);
      }
      if (EndGameIfStartRequirementsNotMet != false) {
        output.WriteRawTag(96);
        output.WriteBool(EndGameIfStartRequirementsNotMet);
      }
      if (CountdownVoiceOverSupported != false) {
        output.WriteRawTag(104);
        output.WriteBool(CountdownVoiceOverSupported);
      }
      if (GameStartDelay != 0F) {
        output.WriteRawTag(117);
        output.WriteFloat(GameStartDelay);
      }
      if (EndGameResultsDuration != 0F) {
        output.WriteRawTag(125);
        output.WriteFloat(EndGameResultsDuration);
      }
      if (GameModeNotificationsSupported != false) {
        output.WriteRawTag(128, 1);
        output.WriteBool(GameModeNotificationsSupported);
      }
      if (InGamePlayerNotificationsSupported != false) {
        output.WriteRawTag(136, 1);
        output.WriteBool(InGamePlayerNotificationsSupported);
      }
      if (ReloadInstanceAfterPostgameResults != false) {
        output.WriteRawTag(144, 1);
        output.WriteBool(ReloadInstanceAfterPostgameResults);
      }
      teamConfigurations_.WriteTo(output, _repeated_teamConfigurations_codec);
      if (TeamSelectionMethod != 0) {
        output.WriteRawTag(176, 6);
        output.WriteInt32(TeamSelectionMethod);
      }
      if (TeamChangeDuringGameSupported != false) {
        output.WriteRawTag(184, 6);
        output.WriteBool(TeamChangeDuringGameSupported);
      }
      if (ExplicitTeamSelectionSupported != false) {
        output.WriteRawTag(192, 6);
        output.WriteBool(ExplicitTeamSelectionSupported);
      }
      if (SpectatingSupported != false) {
        output.WriteRawTag(200, 6);
        output.WriteBool(SpectatingSupported);
      }
      if (teamPlayerVisualConfigurationData_ != null) {
        output.WriteRawTag(210, 6);
        output.WriteMessage(TeamPlayerVisualConfigurationData);
      }
      if (TeamRadiosSupported != false) {
        output.WriteRawTag(216, 6);
        output.WriteBool(TeamRadiosSupported);
      }
      if (teamRadioConfigurationData_ != null) {
        output.WriteRawTag(226, 6);
        output.WriteMessage(TeamRadioConfigurationData);
      }
      if (RespawnOnTeamChangeDuringGameSupported != false) {
        output.WriteRawTag(232, 6);
        output.WriteBool(RespawnOnTeamChangeDuringGameSupported);
      }
      if (ShowOpenSlotsOnScoreboard != false) {
        output.WriteRawTag(240, 6);
        output.WriteBool(ShowOpenSlotsOnScoreboard);
      }
      if (ClearTeamsAfterGame != false) {
        output.WriteRawTag(248, 6);
        output.WriteBool(ClearTeamsAfterGame);
      }
      if (EndGameWhenAllDead != false) {
        output.WriteRawTag(128, 7);
        output.WriteBool(EndGameWhenAllDead);
      }
      if (TeamRadiosCrossteamSupported != false) {
        output.WriteRawTag(136, 7);
        output.WriteBool(TeamRadiosCrossteamSupported);
      }
      statConfigurations_.WriteTo(output, _repeated_statConfigurations_codec);
      if (PersistStatsOnGameStart != false) {
        output.WriteRawTag(216, 12);
        output.WriteBool(PersistStatsOnGameStart);
      }
      if (MaxHealth != 0) {
        output.WriteRawTag(232, 18);
        output.WriteInt32(MaxHealth);
      }
      if (MaxShield != 0) {
        output.WriteRawTag(240, 18);
        output.WriteInt32(MaxShield);
      }
      if (AutoHealSupported != false) {
        output.WriteRawTag(248, 18);
        output.WriteBool(AutoHealSupported);
      }
      if (autoHealConfigurationData_ != null) {
        output.WriteRawTag(130, 19);
        output.WriteMessage(AutoHealConfigurationData);
      }
      if (DbnoSupported != false) {
        output.WriteRawTag(136, 19);
        output.WriteBool(DbnoSupported);
      }
      if (dbnoConfigurationData_ != null) {
        output.WriteRawTag(146, 19);
        output.WriteMessage(DbnoConfigurationData);
      }
      if (AutoRespawnSupported != false) {
        output.WriteRawTag(152, 19);
        output.WriteBool(AutoRespawnSupported);
      }
      if (respawnConfigurationData_ != null) {
        output.WriteRawTag(162, 19);
        output.WriteMessage(RespawnConfigurationData);
      }
      if (ReviveMode != 0) {
        output.WriteRawTag(168, 19);
        output.WriteInt32(ReviveMode);
      }
      if (reviveConfigurationData_ != null) {
        output.WriteRawTag(178, 19);
        output.WriteMessage(ReviveConfigurationData);
      }
      if (friendlyFireConfigurationData_ != null) {
        output.WriteRawTag(186, 19);
        output.WriteMessage(FriendlyFireConfigurationData);
      }
      if (combatPlayerUiConfigurationData_ != null) {
        output.WriteRawTag(194, 19);
        output.WriteMessage(CombatPlayerUiConfigurationData);
      }
      if (combatEnemyUiConfigurationData_ != null) {
        output.WriteRawTag(202, 19);
        output.WriteMessage(CombatEnemyUiConfigurationData);
      }
      if (MonochromeDeadEffectSupported != false) {
        output.WriteRawTag(208, 19);
        output.WriteBool(MonochromeDeadEffectSupported);
      }
      if (MonochromeDbnoEffectSupported != false) {
        output.WriteRawTag(216, 19);
        output.WriteBool(MonochromeDbnoEffectSupported);
      }
      if (DamageRedFlashEffectSupported != false) {
        output.WriteRawTag(224, 19);
        output.WriteBool(DamageRedFlashEffectSupported);
      }
      if (DeadPersistentNotificationSupported != false) {
        output.WriteRawTag(232, 19);
        output.WriteBool(DeadPersistentNotificationSupported);
      }
      if (DEPRECATEDDbnoPersistentNotificationSupported != false) {
        output.WriteRawTag(240, 19);
        output.WriteBool(DEPRECATEDDbnoPersistentNotificationSupported);
      }
      if (DEPRECATEDReviveCooldownPersistentNotificationSupported != false) {
        output.WriteRawTag(248, 19);
        output.WriteBool(DEPRECATEDReviveCooldownPersistentNotificationSupported);
      }
      if (DEPRECATEDRespawnTimerPersistentNotificationSupported != false) {
        output.WriteRawTag(128, 20);
        output.WriteBool(DEPRECATEDRespawnTimerPersistentNotificationSupported);
      }
      if (CombatHudSupported != false) {
        output.WriteRawTag(144, 20);
        output.WriteBool(CombatHudSupported);
      }
      if (SuppressWeaponDamage != false) {
        output.WriteRawTag(152, 20);
        output.WriteBool(SuppressWeaponDamage);
      }
      if (SuppressAllDamageToPlayer != false) {
        output.WriteRawTag(160, 20);
        output.WriteBool(SuppressAllDamageToPlayer);
      }
      if (EnemiesIgnoreSpectators != false) {
        output.WriteRawTag(168, 20);
        output.WriteBool(EnemiesIgnoreSpectators);
      }
      if (DefaultHitFeedbackSupported != false) {
        output.WriteRawTag(240, 21);
        output.WriteBool(DefaultHitFeedbackSupported);
      }
      if (DefaultReviveFeedbackSupported != false) {
        output.WriteRawTag(248, 21);
        output.WriteBool(DefaultReviveFeedbackSupported);
      }
      if (DefaultDownedOpponentFeedbackSupported != false) {
        output.WriteRawTag(128, 22);
        output.WriteBool(DefaultDownedOpponentFeedbackSupported);
      }
      if (DefaultDownedLocalPlayerFeedbackSupported != false) {
        output.WriteRawTag(136, 22);
        output.WriteBool(DefaultDownedLocalPlayerFeedbackSupported);
      }
      if (DefaultDownedTeammateFeedbackSupported != false) {
        output.WriteRawTag(144, 22);
        output.WriteBool(DefaultDownedTeammateFeedbackSupported);
      }
      if (SpawnPointSelectionMode != 0) {
        output.WriteRawTag(136, 25);
        output.WriteInt32(SpawnPointSelectionMode);
      }
      if (MainHandSpawnEquipmentType.Length != 0) {
        output.WriteRawTag(170, 31);
        output.WriteBytes(MainHandSpawnEquipmentType);
      }
      if (OffHandSpawnEquipmentType.Length != 0) {
        output.WriteRawTag(178, 31);
        output.WriteBytes(OffHandSpawnEquipmentType);
      }
      if (ResetToolsOnGameStartSupported != false) {
        output.WriteRawTag(184, 31);
        output.WriteBool(ResetToolsOnGameStartSupported);
      }
      if (BrokenToolBehavior != 0) {
        output.WriteRawTag(192, 31);
        output.WriteInt32(BrokenToolBehavior);
      }
      if (InfiniteReserveAmmmunitionSupported != false) {
        output.WriteRawTag(200, 31);
        output.WriteBool(InfiniteReserveAmmmunitionSupported);
      }
      if (ToolBeaconsSupported != false) {
        output.WriteRawTag(216, 31);
        output.WriteBool(ToolBeaconsSupported);
      }
      if (MovementBufferDistanceRestricted != false) {
        output.WriteRawTag(200, 37);
        output.WriteBool(MovementBufferDistanceRestricted);
      }
      if (OutOfBoundsSupported != false) {
        output.WriteRawTag(232, 43);
        output.WriteBool(OutOfBoundsSupported);
      }
      if (OutOfBoundsGracePeriod != 0F) {
        output.WriteRawTag(245, 43);
        output.WriteFloat(OutOfBoundsGracePeriod);
      }
      if (OutOfBoundsMaxDuration != 0F) {
        output.WriteRawTag(253, 43);
        output.WriteFloat(OutOfBoundsMaxDuration);
      }
      if (OutOfBoundsSpectatorsSupported != false) {
        output.WriteRawTag(128, 44);
        output.WriteBool(OutOfBoundsSpectatorsSupported);
      }
      if (DownOutOfBoundsPlayers != false) {
        output.WriteRawTag(136, 44);
        output.WriteBool(DownOutOfBoundsPlayers);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (manualStartRequirementConfigurationData_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ManualStartRequirementConfigurationData);
      }
      if (automaticStartRequirementConfigurationData_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(AutomaticStartRequirementConfigurationData);
      }
      if (JoinInProgressSupported != false) {
        output.WriteRawTag(40);
        output.WriteBool(JoinInProgressSupported);
      }
      if (AutomaticStartSupported != false) {
        output.WriteRawTag(48);
        output.WriteBool(AutomaticStartSupported);
      }
      if (LoadPriority != 0) {
        output.WriteRawTag(56);
        output.WriteInt32(LoadPriority);
      }
      if (RespawnOnGameStartSupported != false) {
        output.WriteRawTag(64);
        output.WriteBool(RespawnOnGameStartSupported);
      }
      if (RespawnOnGameOverSupported != false) {
        output.WriteRawTag(72);
        output.WriteBool(RespawnOnGameOverSupported);
      }
      if (PregameVoiceOverSupported != false) {
        output.WriteRawTag(80);
        output.WriteBool(PregameVoiceOverSupported);
      }
      if (ResultsVoiceOverSupported != false) {
        output.WriteRawTag(88);
        output.WriteBool(ResultsVoiceOverSupported);
      }
      if (EndGameIfStartRequirementsNotMet != false) {
        output.WriteRawTag(96);
        output.WriteBool(EndGameIfStartRequirementsNotMet);
      }
      if (CountdownVoiceOverSupported != false) {
        output.WriteRawTag(104);
        output.WriteBool(CountdownVoiceOverSupported);
      }
      if (GameStartDelay != 0F) {
        output.WriteRawTag(117);
        output.WriteFloat(GameStartDelay);
      }
      if (EndGameResultsDuration != 0F) {
        output.WriteRawTag(125);
        output.WriteFloat(EndGameResultsDuration);
      }
      if (GameModeNotificationsSupported != false) {
        output.WriteRawTag(128, 1);
        output.WriteBool(GameModeNotificationsSupported);
      }
      if (InGamePlayerNotificationsSupported != false) {
        output.WriteRawTag(136, 1);
        output.WriteBool(InGamePlayerNotificationsSupported);
      }
      if (ReloadInstanceAfterPostgameResults != false) {
        output.WriteRawTag(144, 1);
        output.WriteBool(ReloadInstanceAfterPostgameResults);
      }
      teamConfigurations_.WriteTo(ref output, _repeated_teamConfigurations_codec);
      if (TeamSelectionMethod != 0) {
        output.WriteRawTag(176, 6);
        output.WriteInt32(TeamSelectionMethod);
      }
      if (TeamChangeDuringGameSupported != false) {
        output.WriteRawTag(184, 6);
        output.WriteBool(TeamChangeDuringGameSupported);
      }
      if (ExplicitTeamSelectionSupported != false) {
        output.WriteRawTag(192, 6);
        output.WriteBool(ExplicitTeamSelectionSupported);
      }
      if (SpectatingSupported != false) {
        output.WriteRawTag(200, 6);
        output.WriteBool(SpectatingSupported);
      }
      if (teamPlayerVisualConfigurationData_ != null) {
        output.WriteRawTag(210, 6);
        output.WriteMessage(TeamPlayerVisualConfigurationData);
      }
      if (TeamRadiosSupported != false) {
        output.WriteRawTag(216, 6);
        output.WriteBool(TeamRadiosSupported);
      }
      if (teamRadioConfigurationData_ != null) {
        output.WriteRawTag(226, 6);
        output.WriteMessage(TeamRadioConfigurationData);
      }
      if (RespawnOnTeamChangeDuringGameSupported != false) {
        output.WriteRawTag(232, 6);
        output.WriteBool(RespawnOnTeamChangeDuringGameSupported);
      }
      if (ShowOpenSlotsOnScoreboard != false) {
        output.WriteRawTag(240, 6);
        output.WriteBool(ShowOpenSlotsOnScoreboard);
      }
      if (ClearTeamsAfterGame != false) {
        output.WriteRawTag(248, 6);
        output.WriteBool(ClearTeamsAfterGame);
      }
      if (EndGameWhenAllDead != false) {
        output.WriteRawTag(128, 7);
        output.WriteBool(EndGameWhenAllDead);
      }
      if (TeamRadiosCrossteamSupported != false) {
        output.WriteRawTag(136, 7);
        output.WriteBool(TeamRadiosCrossteamSupported);
      }
      statConfigurations_.WriteTo(ref output, _repeated_statConfigurations_codec);
      if (PersistStatsOnGameStart != false) {
        output.WriteRawTag(216, 12);
        output.WriteBool(PersistStatsOnGameStart);
      }
      if (MaxHealth != 0) {
        output.WriteRawTag(232, 18);
        output.WriteInt32(MaxHealth);
      }
      if (MaxShield != 0) {
        output.WriteRawTag(240, 18);
        output.WriteInt32(MaxShield);
      }
      if (AutoHealSupported != false) {
        output.WriteRawTag(248, 18);
        output.WriteBool(AutoHealSupported);
      }
      if (autoHealConfigurationData_ != null) {
        output.WriteRawTag(130, 19);
        output.WriteMessage(AutoHealConfigurationData);
      }
      if (DbnoSupported != false) {
        output.WriteRawTag(136, 19);
        output.WriteBool(DbnoSupported);
      }
      if (dbnoConfigurationData_ != null) {
        output.WriteRawTag(146, 19);
        output.WriteMessage(DbnoConfigurationData);
      }
      if (AutoRespawnSupported != false) {
        output.WriteRawTag(152, 19);
        output.WriteBool(AutoRespawnSupported);
      }
      if (respawnConfigurationData_ != null) {
        output.WriteRawTag(162, 19);
        output.WriteMessage(RespawnConfigurationData);
      }
      if (ReviveMode != 0) {
        output.WriteRawTag(168, 19);
        output.WriteInt32(ReviveMode);
      }
      if (reviveConfigurationData_ != null) {
        output.WriteRawTag(178, 19);
        output.WriteMessage(ReviveConfigurationData);
      }
      if (friendlyFireConfigurationData_ != null) {
        output.WriteRawTag(186, 19);
        output.WriteMessage(FriendlyFireConfigurationData);
      }
      if (combatPlayerUiConfigurationData_ != null) {
        output.WriteRawTag(194, 19);
        output.WriteMessage(CombatPlayerUiConfigurationData);
      }
      if (combatEnemyUiConfigurationData_ != null) {
        output.WriteRawTag(202, 19);
        output.WriteMessage(CombatEnemyUiConfigurationData);
      }
      if (MonochromeDeadEffectSupported != false) {
        output.WriteRawTag(208, 19);
        output.WriteBool(MonochromeDeadEffectSupported);
      }
      if (MonochromeDbnoEffectSupported != false) {
        output.WriteRawTag(216, 19);
        output.WriteBool(MonochromeDbnoEffectSupported);
      }
      if (DamageRedFlashEffectSupported != false) {
        output.WriteRawTag(224, 19);
        output.WriteBool(DamageRedFlashEffectSupported);
      }
      if (DeadPersistentNotificationSupported != false) {
        output.WriteRawTag(232, 19);
        output.WriteBool(DeadPersistentNotificationSupported);
      }
      if (DEPRECATEDDbnoPersistentNotificationSupported != false) {
        output.WriteRawTag(240, 19);
        output.WriteBool(DEPRECATEDDbnoPersistentNotificationSupported);
      }
      if (DEPRECATEDReviveCooldownPersistentNotificationSupported != false) {
        output.WriteRawTag(248, 19);
        output.WriteBool(DEPRECATEDReviveCooldownPersistentNotificationSupported);
      }
      if (DEPRECATEDRespawnTimerPersistentNotificationSupported != false) {
        output.WriteRawTag(128, 20);
        output.WriteBool(DEPRECATEDRespawnTimerPersistentNotificationSupported);
      }
      if (CombatHudSupported != false) {
        output.WriteRawTag(144, 20);
        output.WriteBool(CombatHudSupported);
      }
      if (SuppressWeaponDamage != false) {
        output.WriteRawTag(152, 20);
        output.WriteBool(SuppressWeaponDamage);
      }
      if (SuppressAllDamageToPlayer != false) {
        output.WriteRawTag(160, 20);
        output.WriteBool(SuppressAllDamageToPlayer);
      }
      if (EnemiesIgnoreSpectators != false) {
        output.WriteRawTag(168, 20);
        output.WriteBool(EnemiesIgnoreSpectators);
      }
      if (DefaultHitFeedbackSupported != false) {
        output.WriteRawTag(240, 21);
        output.WriteBool(DefaultHitFeedbackSupported);
      }
      if (DefaultReviveFeedbackSupported != false) {
        output.WriteRawTag(248, 21);
        output.WriteBool(DefaultReviveFeedbackSupported);
      }
      if (DefaultDownedOpponentFeedbackSupported != false) {
        output.WriteRawTag(128, 22);
        output.WriteBool(DefaultDownedOpponentFeedbackSupported);
      }
      if (DefaultDownedLocalPlayerFeedbackSupported != false) {
        output.WriteRawTag(136, 22);
        output.WriteBool(DefaultDownedLocalPlayerFeedbackSupported);
      }
      if (DefaultDownedTeammateFeedbackSupported != false) {
        output.WriteRawTag(144, 22);
        output.WriteBool(DefaultDownedTeammateFeedbackSupported);
      }
      if (SpawnPointSelectionMode != 0) {
        output.WriteRawTag(136, 25);
        output.WriteInt32(SpawnPointSelectionMode);
      }
      if (MainHandSpawnEquipmentType.Length != 0) {
        output.WriteRawTag(170, 31);
        output.WriteBytes(MainHandSpawnEquipmentType);
      }
      if (OffHandSpawnEquipmentType.Length != 0) {
        output.WriteRawTag(178, 31);
        output.WriteBytes(OffHandSpawnEquipmentType);
      }
      if (ResetToolsOnGameStartSupported != false) {
        output.WriteRawTag(184, 31);
        output.WriteBool(ResetToolsOnGameStartSupported);
      }
      if (BrokenToolBehavior != 0) {
        output.WriteRawTag(192, 31);
        output.WriteInt32(BrokenToolBehavior);
      }
      if (InfiniteReserveAmmmunitionSupported != false) {
        output.WriteRawTag(200, 31);
        output.WriteBool(InfiniteReserveAmmmunitionSupported);
      }
      if (ToolBeaconsSupported != false) {
        output.WriteRawTag(216, 31);
        output.WriteBool(ToolBeaconsSupported);
      }
      if (MovementBufferDistanceRestricted != false) {
        output.WriteRawTag(200, 37);
        output.WriteBool(MovementBufferDistanceRestricted);
      }
      if (OutOfBoundsSupported != false) {
        output.WriteRawTag(232, 43);
        output.WriteBool(OutOfBoundsSupported);
      }
      if (OutOfBoundsGracePeriod != 0F) {
        output.WriteRawTag(245, 43);
        output.WriteFloat(OutOfBoundsGracePeriod);
      }
      if (OutOfBoundsMaxDuration != 0F) {
        output.WriteRawTag(253, 43);
        output.WriteFloat(OutOfBoundsMaxDuration);
      }
      if (OutOfBoundsSpectatorsSupported != false) {
        output.WriteRawTag(128, 44);
        output.WriteBool(OutOfBoundsSpectatorsSupported);
      }
      if (DownOutOfBoundsPlayers != false) {
        output.WriteRawTag(136, 44);
        output.WriteBool(DownOutOfBoundsPlayers);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (manualStartRequirementConfigurationData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ManualStartRequirementConfigurationData);
      }
      if (automaticStartRequirementConfigurationData_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AutomaticStartRequirementConfigurationData);
      }
      if (JoinInProgressSupported != false) {
        size += 1 + 1;
      }
      if (AutomaticStartSupported != false) {
        size += 1 + 1;
      }
      if (LoadPriority != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(LoadPriority);
      }
      if (RespawnOnGameStartSupported != false) {
        size += 1 + 1;
      }
      if (RespawnOnGameOverSupported != false) {
        size += 1 + 1;
      }
      if (PregameVoiceOverSupported != false) {
        size += 1 + 1;
      }
      if (ResultsVoiceOverSupported != false) {
        size += 1 + 1;
      }
      if (EndGameIfStartRequirementsNotMet != false) {
        size += 1 + 1;
      }
      if (CountdownVoiceOverSupported != false) {
        size += 1 + 1;
      }
      if (GameStartDelay != 0F) {
        size += 1 + 4;
      }
      if (EndGameResultsDuration != 0F) {
        size += 1 + 4;
      }
      if (GameModeNotificationsSupported != false) {
        size += 2 + 1;
      }
      if (InGamePlayerNotificationsSupported != false) {
        size += 2 + 1;
      }
      if (ReloadInstanceAfterPostgameResults != false) {
        size += 2 + 1;
      }
      size += teamConfigurations_.CalculateSize(_repeated_teamConfigurations_codec);
      if (TeamSelectionMethod != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(TeamSelectionMethod);
      }
      if (TeamChangeDuringGameSupported != false) {
        size += 2 + 1;
      }
      if (ExplicitTeamSelectionSupported != false) {
        size += 2 + 1;
      }
      if (SpectatingSupported != false) {
        size += 2 + 1;
      }
      if (RespawnOnTeamChangeDuringGameSupported != false) {
        size += 2 + 1;
      }
      if (ShowOpenSlotsOnScoreboard != false) {
        size += 2 + 1;
      }
      if (ClearTeamsAfterGame != false) {
        size += 2 + 1;
      }
      if (EndGameWhenAllDead != false) {
        size += 2 + 1;
      }
      if (teamPlayerVisualConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(TeamPlayerVisualConfigurationData);
      }
      if (TeamRadiosSupported != false) {
        size += 2 + 1;
      }
      if (TeamRadiosCrossteamSupported != false) {
        size += 2 + 1;
      }
      if (teamRadioConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(TeamRadioConfigurationData);
      }
      size += statConfigurations_.CalculateSize(_repeated_statConfigurations_codec);
      if (PersistStatsOnGameStart != false) {
        size += 2 + 1;
      }
      if (MaxHealth != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxHealth);
      }
      if (MaxShield != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxShield);
      }
      if (AutoHealSupported != false) {
        size += 2 + 1;
      }
      if (autoHealConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(AutoHealConfigurationData);
      }
      if (DbnoSupported != false) {
        size += 2 + 1;
      }
      if (dbnoConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(DbnoConfigurationData);
      }
      if (AutoRespawnSupported != false) {
        size += 2 + 1;
      }
      if (respawnConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(RespawnConfigurationData);
      }
      if (ReviveMode != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(ReviveMode);
      }
      if (reviveConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(ReviveConfigurationData);
      }
      if (friendlyFireConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(FriendlyFireConfigurationData);
      }
      if (combatPlayerUiConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(CombatPlayerUiConfigurationData);
      }
      if (combatEnemyUiConfigurationData_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(CombatEnemyUiConfigurationData);
      }
      if (MonochromeDeadEffectSupported != false) {
        size += 2 + 1;
      }
      if (MonochromeDbnoEffectSupported != false) {
        size += 2 + 1;
      }
      if (DamageRedFlashEffectSupported != false) {
        size += 2 + 1;
      }
      if (DeadPersistentNotificationSupported != false) {
        size += 2 + 1;
      }
      if (DEPRECATEDDbnoPersistentNotificationSupported != false) {
        size += 2 + 1;
      }
      if (DEPRECATEDReviveCooldownPersistentNotificationSupported != false) {
        size += 2 + 1;
      }
      if (DEPRECATEDRespawnTimerPersistentNotificationSupported != false) {
        size += 2 + 1;
      }
      if (CombatHudSupported != false) {
        size += 2 + 1;
      }
      if (SuppressWeaponDamage != false) {
        size += 2 + 1;
      }
      if (SuppressAllDamageToPlayer != false) {
        size += 2 + 1;
      }
      if (EnemiesIgnoreSpectators != false) {
        size += 2 + 1;
      }
      if (DefaultHitFeedbackSupported != false) {
        size += 2 + 1;
      }
      if (DefaultReviveFeedbackSupported != false) {
        size += 2 + 1;
      }
      if (DefaultDownedOpponentFeedbackSupported != false) {
        size += 2 + 1;
      }
      if (DefaultDownedLocalPlayerFeedbackSupported != false) {
        size += 2 + 1;
      }
      if (DefaultDownedTeammateFeedbackSupported != false) {
        size += 2 + 1;
      }
      if (SpawnPointSelectionMode != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(SpawnPointSelectionMode);
      }
      if (MainHandSpawnEquipmentType.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(MainHandSpawnEquipmentType);
      }
      if (OffHandSpawnEquipmentType.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeBytesSize(OffHandSpawnEquipmentType);
      }
      if (ResetToolsOnGameStartSupported != false) {
        size += 2 + 1;
      }
      if (BrokenToolBehavior != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(BrokenToolBehavior);
      }
      if (InfiniteReserveAmmmunitionSupported != false) {
        size += 2 + 1;
      }
      if (ToolBeaconsSupported != false) {
        size += 2 + 1;
      }
      if (MovementBufferDistanceRestricted != false) {
        size += 2 + 1;
      }
      if (OutOfBoundsSupported != false) {
        size += 2 + 1;
      }
      if (OutOfBoundsGracePeriod != 0F) {
        size += 2 + 4;
      }
      if (OutOfBoundsMaxDuration != 0F) {
        size += 2 + 4;
      }
      if (OutOfBoundsSpectatorsSupported != false) {
        size += 2 + 1;
      }
      if (DownOutOfBoundsPlayers != false) {
        size += 2 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GameConfigurationData other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.manualStartRequirementConfigurationData_ != null) {
        if (manualStartRequirementConfigurationData_ == null) {
          ManualStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
        }
        ManualStartRequirementConfigurationData.MergeFrom(other.ManualStartRequirementConfigurationData);
      }
      if (other.automaticStartRequirementConfigurationData_ != null) {
        if (automaticStartRequirementConfigurationData_ == null) {
          AutomaticStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
        }
        AutomaticStartRequirementConfigurationData.MergeFrom(other.AutomaticStartRequirementConfigurationData);
      }
      if (other.JoinInProgressSupported != false) {
        JoinInProgressSupported = other.JoinInProgressSupported;
      }
      if (other.AutomaticStartSupported != false) {
        AutomaticStartSupported = other.AutomaticStartSupported;
      }
      if (other.LoadPriority != 0) {
        LoadPriority = other.LoadPriority;
      }
      if (other.RespawnOnGameStartSupported != false) {
        RespawnOnGameStartSupported = other.RespawnOnGameStartSupported;
      }
      if (other.RespawnOnGameOverSupported != false) {
        RespawnOnGameOverSupported = other.RespawnOnGameOverSupported;
      }
      if (other.PregameVoiceOverSupported != false) {
        PregameVoiceOverSupported = other.PregameVoiceOverSupported;
      }
      if (other.ResultsVoiceOverSupported != false) {
        ResultsVoiceOverSupported = other.ResultsVoiceOverSupported;
      }
      if (other.EndGameIfStartRequirementsNotMet != false) {
        EndGameIfStartRequirementsNotMet = other.EndGameIfStartRequirementsNotMet;
      }
      if (other.CountdownVoiceOverSupported != false) {
        CountdownVoiceOverSupported = other.CountdownVoiceOverSupported;
      }
      if (other.GameStartDelay != 0F) {
        GameStartDelay = other.GameStartDelay;
      }
      if (other.EndGameResultsDuration != 0F) {
        EndGameResultsDuration = other.EndGameResultsDuration;
      }
      if (other.GameModeNotificationsSupported != false) {
        GameModeNotificationsSupported = other.GameModeNotificationsSupported;
      }
      if (other.InGamePlayerNotificationsSupported != false) {
        InGamePlayerNotificationsSupported = other.InGamePlayerNotificationsSupported;
      }
      if (other.ReloadInstanceAfterPostgameResults != false) {
        ReloadInstanceAfterPostgameResults = other.ReloadInstanceAfterPostgameResults;
      }
      teamConfigurations_.Add(other.teamConfigurations_);
      if (other.TeamSelectionMethod != 0) {
        TeamSelectionMethod = other.TeamSelectionMethod;
      }
      if (other.TeamChangeDuringGameSupported != false) {
        TeamChangeDuringGameSupported = other.TeamChangeDuringGameSupported;
      }
      if (other.ExplicitTeamSelectionSupported != false) {
        ExplicitTeamSelectionSupported = other.ExplicitTeamSelectionSupported;
      }
      if (other.SpectatingSupported != false) {
        SpectatingSupported = other.SpectatingSupported;
      }
      if (other.RespawnOnTeamChangeDuringGameSupported != false) {
        RespawnOnTeamChangeDuringGameSupported = other.RespawnOnTeamChangeDuringGameSupported;
      }
      if (other.ShowOpenSlotsOnScoreboard != false) {
        ShowOpenSlotsOnScoreboard = other.ShowOpenSlotsOnScoreboard;
      }
      if (other.ClearTeamsAfterGame != false) {
        ClearTeamsAfterGame = other.ClearTeamsAfterGame;
      }
      if (other.EndGameWhenAllDead != false) {
        EndGameWhenAllDead = other.EndGameWhenAllDead;
      }
      if (other.teamPlayerVisualConfigurationData_ != null) {
        if (teamPlayerVisualConfigurationData_ == null) {
          TeamPlayerVisualConfigurationData = new global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationData();
        }
        TeamPlayerVisualConfigurationData.MergeFrom(other.TeamPlayerVisualConfigurationData);
      }
      if (other.TeamRadiosSupported != false) {
        TeamRadiosSupported = other.TeamRadiosSupported;
      }
      if (other.TeamRadiosCrossteamSupported != false) {
        TeamRadiosCrossteamSupported = other.TeamRadiosCrossteamSupported;
      }
      if (other.teamRadioConfigurationData_ != null) {
        if (teamRadioConfigurationData_ == null) {
          TeamRadioConfigurationData = new global::RecRoom.Protobuf.GameTeamRadioConfigurationData();
        }
        TeamRadioConfigurationData.MergeFrom(other.TeamRadioConfigurationData);
      }
      statConfigurations_.Add(other.statConfigurations_);
      if (other.PersistStatsOnGameStart != false) {
        PersistStatsOnGameStart = other.PersistStatsOnGameStart;
      }
      if (other.MaxHealth != 0) {
        MaxHealth = other.MaxHealth;
      }
      if (other.MaxShield != 0) {
        MaxShield = other.MaxShield;
      }
      if (other.AutoHealSupported != false) {
        AutoHealSupported = other.AutoHealSupported;
      }
      if (other.autoHealConfigurationData_ != null) {
        if (autoHealConfigurationData_ == null) {
          AutoHealConfigurationData = new global::RecRoom.Protobuf.GameCombatAutoHealConfigurationData();
        }
        AutoHealConfigurationData.MergeFrom(other.AutoHealConfigurationData);
      }
      if (other.DbnoSupported != false) {
        DbnoSupported = other.DbnoSupported;
      }
      if (other.dbnoConfigurationData_ != null) {
        if (dbnoConfigurationData_ == null) {
          DbnoConfigurationData = new global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationData();
        }
        DbnoConfigurationData.MergeFrom(other.DbnoConfigurationData);
      }
      if (other.AutoRespawnSupported != false) {
        AutoRespawnSupported = other.AutoRespawnSupported;
      }
      if (other.respawnConfigurationData_ != null) {
        if (respawnConfigurationData_ == null) {
          RespawnConfigurationData = new global::RecRoom.Protobuf.GameCombatRespawnConfigurationData();
        }
        RespawnConfigurationData.MergeFrom(other.RespawnConfigurationData);
      }
      if (other.ReviveMode != 0) {
        ReviveMode = other.ReviveMode;
      }
      if (other.reviveConfigurationData_ != null) {
        if (reviveConfigurationData_ == null) {
          ReviveConfigurationData = new global::RecRoom.Protobuf.GameCombatReviveConfigurationData();
        }
        ReviveConfigurationData.MergeFrom(other.ReviveConfigurationData);
      }
      if (other.friendlyFireConfigurationData_ != null) {
        if (friendlyFireConfigurationData_ == null) {
          FriendlyFireConfigurationData = new global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationData();
        }
        FriendlyFireConfigurationData.MergeFrom(other.FriendlyFireConfigurationData);
      }
      if (other.combatPlayerUiConfigurationData_ != null) {
        if (combatPlayerUiConfigurationData_ == null) {
          CombatPlayerUiConfigurationData = new global::RecRoom.Protobuf.GameCombatPlayerUIConfigurationData();
        }
        CombatPlayerUiConfigurationData.MergeFrom(other.CombatPlayerUiConfigurationData);
      }
      if (other.combatEnemyUiConfigurationData_ != null) {
        if (combatEnemyUiConfigurationData_ == null) {
          CombatEnemyUiConfigurationData = new global::RecRoom.Protobuf.GameCombatEnemyUIConfigurationData();
        }
        CombatEnemyUiConfigurationData.MergeFrom(other.CombatEnemyUiConfigurationData);
      }
      if (other.MonochromeDeadEffectSupported != false) {
        MonochromeDeadEffectSupported = other.MonochromeDeadEffectSupported;
      }
      if (other.MonochromeDbnoEffectSupported != false) {
        MonochromeDbnoEffectSupported = other.MonochromeDbnoEffectSupported;
      }
      if (other.DamageRedFlashEffectSupported != false) {
        DamageRedFlashEffectSupported = other.DamageRedFlashEffectSupported;
      }
      if (other.DeadPersistentNotificationSupported != false) {
        DeadPersistentNotificationSupported = other.DeadPersistentNotificationSupported;
      }
      if (other.DEPRECATEDDbnoPersistentNotificationSupported != false) {
        DEPRECATEDDbnoPersistentNotificationSupported = other.DEPRECATEDDbnoPersistentNotificationSupported;
      }
      if (other.DEPRECATEDReviveCooldownPersistentNotificationSupported != false) {
        DEPRECATEDReviveCooldownPersistentNotificationSupported = other.DEPRECATEDReviveCooldownPersistentNotificationSupported;
      }
      if (other.DEPRECATEDRespawnTimerPersistentNotificationSupported != false) {
        DEPRECATEDRespawnTimerPersistentNotificationSupported = other.DEPRECATEDRespawnTimerPersistentNotificationSupported;
      }
      if (other.CombatHudSupported != false) {
        CombatHudSupported = other.CombatHudSupported;
      }
      if (other.SuppressWeaponDamage != false) {
        SuppressWeaponDamage = other.SuppressWeaponDamage;
      }
      if (other.SuppressAllDamageToPlayer != false) {
        SuppressAllDamageToPlayer = other.SuppressAllDamageToPlayer;
      }
      if (other.EnemiesIgnoreSpectators != false) {
        EnemiesIgnoreSpectators = other.EnemiesIgnoreSpectators;
      }
      if (other.DefaultHitFeedbackSupported != false) {
        DefaultHitFeedbackSupported = other.DefaultHitFeedbackSupported;
      }
      if (other.DefaultReviveFeedbackSupported != false) {
        DefaultReviveFeedbackSupported = other.DefaultReviveFeedbackSupported;
      }
      if (other.DefaultDownedOpponentFeedbackSupported != false) {
        DefaultDownedOpponentFeedbackSupported = other.DefaultDownedOpponentFeedbackSupported;
      }
      if (other.DefaultDownedLocalPlayerFeedbackSupported != false) {
        DefaultDownedLocalPlayerFeedbackSupported = other.DefaultDownedLocalPlayerFeedbackSupported;
      }
      if (other.DefaultDownedTeammateFeedbackSupported != false) {
        DefaultDownedTeammateFeedbackSupported = other.DefaultDownedTeammateFeedbackSupported;
      }
      if (other.SpawnPointSelectionMode != 0) {
        SpawnPointSelectionMode = other.SpawnPointSelectionMode;
      }
      if (other.MainHandSpawnEquipmentType.Length != 0) {
        MainHandSpawnEquipmentType = other.MainHandSpawnEquipmentType;
      }
      if (other.OffHandSpawnEquipmentType.Length != 0) {
        OffHandSpawnEquipmentType = other.OffHandSpawnEquipmentType;
      }
      if (other.ResetToolsOnGameStartSupported != false) {
        ResetToolsOnGameStartSupported = other.ResetToolsOnGameStartSupported;
      }
      if (other.BrokenToolBehavior != 0) {
        BrokenToolBehavior = other.BrokenToolBehavior;
      }
      if (other.InfiniteReserveAmmmunitionSupported != false) {
        InfiniteReserveAmmmunitionSupported = other.InfiniteReserveAmmmunitionSupported;
      }
      if (other.ToolBeaconsSupported != false) {
        ToolBeaconsSupported = other.ToolBeaconsSupported;
      }
      if (other.MovementBufferDistanceRestricted != false) {
        MovementBufferDistanceRestricted = other.MovementBufferDistanceRestricted;
      }
      if (other.OutOfBoundsSupported != false) {
        OutOfBoundsSupported = other.OutOfBoundsSupported;
      }
      if (other.OutOfBoundsGracePeriod != 0F) {
        OutOfBoundsGracePeriod = other.OutOfBoundsGracePeriod;
      }
      if (other.OutOfBoundsMaxDuration != 0F) {
        OutOfBoundsMaxDuration = other.OutOfBoundsMaxDuration;
      }
      if (other.OutOfBoundsSpectatorsSupported != false) {
        OutOfBoundsSpectatorsSupported = other.OutOfBoundsSpectatorsSupported;
      }
      if (other.DownOutOfBoundsPlayers != false) {
        DownOutOfBoundsPlayers = other.DownOutOfBoundsPlayers;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 26: {
            if (manualStartRequirementConfigurationData_ == null) {
              ManualStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
            }
            input.ReadMessage(ManualStartRequirementConfigurationData);
            break;
          }
          case 34: {
            if (automaticStartRequirementConfigurationData_ == null) {
              AutomaticStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
            }
            input.ReadMessage(AutomaticStartRequirementConfigurationData);
            break;
          }
          case 40: {
            JoinInProgressSupported = input.ReadBool();
            break;
          }
          case 48: {
            AutomaticStartSupported = input.ReadBool();
            break;
          }
          case 56: {
            LoadPriority = input.ReadInt32();
            break;
          }
          case 64: {
            RespawnOnGameStartSupported = input.ReadBool();
            break;
          }
          case 72: {
            RespawnOnGameOverSupported = input.ReadBool();
            break;
          }
          case 80: {
            PregameVoiceOverSupported = input.ReadBool();
            break;
          }
          case 88: {
            ResultsVoiceOverSupported = input.ReadBool();
            break;
          }
          case 96: {
            EndGameIfStartRequirementsNotMet = input.ReadBool();
            break;
          }
          case 104: {
            CountdownVoiceOverSupported = input.ReadBool();
            break;
          }
          case 117: {
            GameStartDelay = input.ReadFloat();
            break;
          }
          case 125: {
            EndGameResultsDuration = input.ReadFloat();
            break;
          }
          case 128: {
            GameModeNotificationsSupported = input.ReadBool();
            break;
          }
          case 136: {
            InGamePlayerNotificationsSupported = input.ReadBool();
            break;
          }
          case 144: {
            ReloadInstanceAfterPostgameResults = input.ReadBool();
            break;
          }
          case 810: {
            teamConfigurations_.AddEntriesFrom(input, _repeated_teamConfigurations_codec);
            break;
          }
          case 816: {
            TeamSelectionMethod = input.ReadInt32();
            break;
          }
          case 824: {
            TeamChangeDuringGameSupported = input.ReadBool();
            break;
          }
          case 832: {
            ExplicitTeamSelectionSupported = input.ReadBool();
            break;
          }
          case 840: {
            SpectatingSupported = input.ReadBool();
            break;
          }
          case 850: {
            if (teamPlayerVisualConfigurationData_ == null) {
              TeamPlayerVisualConfigurationData = new global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationData();
            }
            input.ReadMessage(TeamPlayerVisualConfigurationData);
            break;
          }
          case 856: {
            TeamRadiosSupported = input.ReadBool();
            break;
          }
          case 866: {
            if (teamRadioConfigurationData_ == null) {
              TeamRadioConfigurationData = new global::RecRoom.Protobuf.GameTeamRadioConfigurationData();
            }
            input.ReadMessage(TeamRadioConfigurationData);
            break;
          }
          case 872: {
            RespawnOnTeamChangeDuringGameSupported = input.ReadBool();
            break;
          }
          case 880: {
            ShowOpenSlotsOnScoreboard = input.ReadBool();
            break;
          }
          case 888: {
            ClearTeamsAfterGame = input.ReadBool();
            break;
          }
          case 896: {
            EndGameWhenAllDead = input.ReadBool();
            break;
          }
          case 904: {
            TeamRadiosCrossteamSupported = input.ReadBool();
            break;
          }
          case 1618: {
            statConfigurations_.AddEntriesFrom(input, _repeated_statConfigurations_codec);
            break;
          }
          case 1624: {
            PersistStatsOnGameStart = input.ReadBool();
            break;
          }
          case 2408: {
            MaxHealth = input.ReadInt32();
            break;
          }
          case 2416: {
            MaxShield = input.ReadInt32();
            break;
          }
          case 2424: {
            AutoHealSupported = input.ReadBool();
            break;
          }
          case 2434: {
            if (autoHealConfigurationData_ == null) {
              AutoHealConfigurationData = new global::RecRoom.Protobuf.GameCombatAutoHealConfigurationData();
            }
            input.ReadMessage(AutoHealConfigurationData);
            break;
          }
          case 2440: {
            DbnoSupported = input.ReadBool();
            break;
          }
          case 2450: {
            if (dbnoConfigurationData_ == null) {
              DbnoConfigurationData = new global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationData();
            }
            input.ReadMessage(DbnoConfigurationData);
            break;
          }
          case 2456: {
            AutoRespawnSupported = input.ReadBool();
            break;
          }
          case 2466: {
            if (respawnConfigurationData_ == null) {
              RespawnConfigurationData = new global::RecRoom.Protobuf.GameCombatRespawnConfigurationData();
            }
            input.ReadMessage(RespawnConfigurationData);
            break;
          }
          case 2472: {
            ReviveMode = input.ReadInt32();
            break;
          }
          case 2482: {
            if (reviveConfigurationData_ == null) {
              ReviveConfigurationData = new global::RecRoom.Protobuf.GameCombatReviveConfigurationData();
            }
            input.ReadMessage(ReviveConfigurationData);
            break;
          }
          case 2490: {
            if (friendlyFireConfigurationData_ == null) {
              FriendlyFireConfigurationData = new global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationData();
            }
            input.ReadMessage(FriendlyFireConfigurationData);
            break;
          }
          case 2498: {
            if (combatPlayerUiConfigurationData_ == null) {
              CombatPlayerUiConfigurationData = new global::RecRoom.Protobuf.GameCombatPlayerUIConfigurationData();
            }
            input.ReadMessage(CombatPlayerUiConfigurationData);
            break;
          }
          case 2506: {
            if (combatEnemyUiConfigurationData_ == null) {
              CombatEnemyUiConfigurationData = new global::RecRoom.Protobuf.GameCombatEnemyUIConfigurationData();
            }
            input.ReadMessage(CombatEnemyUiConfigurationData);
            break;
          }
          case 2512: {
            MonochromeDeadEffectSupported = input.ReadBool();
            break;
          }
          case 2520: {
            MonochromeDbnoEffectSupported = input.ReadBool();
            break;
          }
          case 2528: {
            DamageRedFlashEffectSupported = input.ReadBool();
            break;
          }
          case 2536: {
            DeadPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2544: {
            DEPRECATEDDbnoPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2552: {
            DEPRECATEDReviveCooldownPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2560: {
            DEPRECATEDRespawnTimerPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2576: {
            CombatHudSupported = input.ReadBool();
            break;
          }
          case 2584: {
            SuppressWeaponDamage = input.ReadBool();
            break;
          }
          case 2592: {
            SuppressAllDamageToPlayer = input.ReadBool();
            break;
          }
          case 2600: {
            EnemiesIgnoreSpectators = input.ReadBool();
            break;
          }
          case 2800: {
            DefaultHitFeedbackSupported = input.ReadBool();
            break;
          }
          case 2808: {
            DefaultReviveFeedbackSupported = input.ReadBool();
            break;
          }
          case 2816: {
            DefaultDownedOpponentFeedbackSupported = input.ReadBool();
            break;
          }
          case 2824: {
            DefaultDownedLocalPlayerFeedbackSupported = input.ReadBool();
            break;
          }
          case 2832: {
            DefaultDownedTeammateFeedbackSupported = input.ReadBool();
            break;
          }
          case 3208: {
            SpawnPointSelectionMode = input.ReadInt32();
            break;
          }
          case 4010: {
            MainHandSpawnEquipmentType = input.ReadBytes();
            break;
          }
          case 4018: {
            OffHandSpawnEquipmentType = input.ReadBytes();
            break;
          }
          case 4024: {
            ResetToolsOnGameStartSupported = input.ReadBool();
            break;
          }
          case 4032: {
            BrokenToolBehavior = input.ReadInt32();
            break;
          }
          case 4040: {
            InfiniteReserveAmmmunitionSupported = input.ReadBool();
            break;
          }
          case 4056: {
            ToolBeaconsSupported = input.ReadBool();
            break;
          }
          case 4808: {
            MovementBufferDistanceRestricted = input.ReadBool();
            break;
          }
          case 5608: {
            OutOfBoundsSupported = input.ReadBool();
            break;
          }
          case 5621: {
            OutOfBoundsGracePeriod = input.ReadFloat();
            break;
          }
          case 5629: {
            OutOfBoundsMaxDuration = input.ReadFloat();
            break;
          }
          case 5632: {
            OutOfBoundsSpectatorsSupported = input.ReadBool();
            break;
          }
          case 5640: {
            DownOutOfBoundsPlayers = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 26: {
            if (manualStartRequirementConfigurationData_ == null) {
              ManualStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
            }
            input.ReadMessage(ManualStartRequirementConfigurationData);
            break;
          }
          case 34: {
            if (automaticStartRequirementConfigurationData_ == null) {
              AutomaticStartRequirementConfigurationData = new global::RecRoom.Protobuf.GameStartRequirementConfigurationData();
            }
            input.ReadMessage(AutomaticStartRequirementConfigurationData);
            break;
          }
          case 40: {
            JoinInProgressSupported = input.ReadBool();
            break;
          }
          case 48: {
            AutomaticStartSupported = input.ReadBool();
            break;
          }
          case 56: {
            LoadPriority = input.ReadInt32();
            break;
          }
          case 64: {
            RespawnOnGameStartSupported = input.ReadBool();
            break;
          }
          case 72: {
            RespawnOnGameOverSupported = input.ReadBool();
            break;
          }
          case 80: {
            PregameVoiceOverSupported = input.ReadBool();
            break;
          }
          case 88: {
            ResultsVoiceOverSupported = input.ReadBool();
            break;
          }
          case 96: {
            EndGameIfStartRequirementsNotMet = input.ReadBool();
            break;
          }
          case 104: {
            CountdownVoiceOverSupported = input.ReadBool();
            break;
          }
          case 117: {
            GameStartDelay = input.ReadFloat();
            break;
          }
          case 125: {
            EndGameResultsDuration = input.ReadFloat();
            break;
          }
          case 128: {
            GameModeNotificationsSupported = input.ReadBool();
            break;
          }
          case 136: {
            InGamePlayerNotificationsSupported = input.ReadBool();
            break;
          }
          case 144: {
            ReloadInstanceAfterPostgameResults = input.ReadBool();
            break;
          }
          case 810: {
            teamConfigurations_.AddEntriesFrom(ref input, _repeated_teamConfigurations_codec);
            break;
          }
          case 816: {
            TeamSelectionMethod = input.ReadInt32();
            break;
          }
          case 824: {
            TeamChangeDuringGameSupported = input.ReadBool();
            break;
          }
          case 832: {
            ExplicitTeamSelectionSupported = input.ReadBool();
            break;
          }
          case 840: {
            SpectatingSupported = input.ReadBool();
            break;
          }
          case 850: {
            if (teamPlayerVisualConfigurationData_ == null) {
              TeamPlayerVisualConfigurationData = new global::RecRoom.Protobuf.GameTeamPlayerVisualConfigurationData();
            }
            input.ReadMessage(TeamPlayerVisualConfigurationData);
            break;
          }
          case 856: {
            TeamRadiosSupported = input.ReadBool();
            break;
          }
          case 866: {
            if (teamRadioConfigurationData_ == null) {
              TeamRadioConfigurationData = new global::RecRoom.Protobuf.GameTeamRadioConfigurationData();
            }
            input.ReadMessage(TeamRadioConfigurationData);
            break;
          }
          case 872: {
            RespawnOnTeamChangeDuringGameSupported = input.ReadBool();
            break;
          }
          case 880: {
            ShowOpenSlotsOnScoreboard = input.ReadBool();
            break;
          }
          case 888: {
            ClearTeamsAfterGame = input.ReadBool();
            break;
          }
          case 896: {
            EndGameWhenAllDead = input.ReadBool();
            break;
          }
          case 904: {
            TeamRadiosCrossteamSupported = input.ReadBool();
            break;
          }
          case 1618: {
            statConfigurations_.AddEntriesFrom(ref input, _repeated_statConfigurations_codec);
            break;
          }
          case 1624: {
            PersistStatsOnGameStart = input.ReadBool();
            break;
          }
          case 2408: {
            MaxHealth = input.ReadInt32();
            break;
          }
          case 2416: {
            MaxShield = input.ReadInt32();
            break;
          }
          case 2424: {
            AutoHealSupported = input.ReadBool();
            break;
          }
          case 2434: {
            if (autoHealConfigurationData_ == null) {
              AutoHealConfigurationData = new global::RecRoom.Protobuf.GameCombatAutoHealConfigurationData();
            }
            input.ReadMessage(AutoHealConfigurationData);
            break;
          }
          case 2440: {
            DbnoSupported = input.ReadBool();
            break;
          }
          case 2450: {
            if (dbnoConfigurationData_ == null) {
              DbnoConfigurationData = new global::RecRoom.Protobuf.GameCombatDownButNotOutConfigurationData();
            }
            input.ReadMessage(DbnoConfigurationData);
            break;
          }
          case 2456: {
            AutoRespawnSupported = input.ReadBool();
            break;
          }
          case 2466: {
            if (respawnConfigurationData_ == null) {
              RespawnConfigurationData = new global::RecRoom.Protobuf.GameCombatRespawnConfigurationData();
            }
            input.ReadMessage(RespawnConfigurationData);
            break;
          }
          case 2472: {
            ReviveMode = input.ReadInt32();
            break;
          }
          case 2482: {
            if (reviveConfigurationData_ == null) {
              ReviveConfigurationData = new global::RecRoom.Protobuf.GameCombatReviveConfigurationData();
            }
            input.ReadMessage(ReviveConfigurationData);
            break;
          }
          case 2490: {
            if (friendlyFireConfigurationData_ == null) {
              FriendlyFireConfigurationData = new global::RecRoom.Protobuf.GameCombatFriendlyFireConfigurationData();
            }
            input.ReadMessage(FriendlyFireConfigurationData);
            break;
          }
          case 2498: {
            if (combatPlayerUiConfigurationData_ == null) {
              CombatPlayerUiConfigurationData = new global::RecRoom.Protobuf.GameCombatPlayerUIConfigurationData();
            }
            input.ReadMessage(CombatPlayerUiConfigurationData);
            break;
          }
          case 2506: {
            if (combatEnemyUiConfigurationData_ == null) {
              CombatEnemyUiConfigurationData = new global::RecRoom.Protobuf.GameCombatEnemyUIConfigurationData();
            }
            input.ReadMessage(CombatEnemyUiConfigurationData);
            break;
          }
          case 2512: {
            MonochromeDeadEffectSupported = input.ReadBool();
            break;
          }
          case 2520: {
            MonochromeDbnoEffectSupported = input.ReadBool();
            break;
          }
          case 2528: {
            DamageRedFlashEffectSupported = input.ReadBool();
            break;
          }
          case 2536: {
            DeadPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2544: {
            DEPRECATEDDbnoPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2552: {
            DEPRECATEDReviveCooldownPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2560: {
            DEPRECATEDRespawnTimerPersistentNotificationSupported = input.ReadBool();
            break;
          }
          case 2576: {
            CombatHudSupported = input.ReadBool();
            break;
          }
          case 2584: {
            SuppressWeaponDamage = input.ReadBool();
            break;
          }
          case 2592: {
            SuppressAllDamageToPlayer = input.ReadBool();
            break;
          }
          case 2600: {
            EnemiesIgnoreSpectators = input.ReadBool();
            break;
          }
          case 2800: {
            DefaultHitFeedbackSupported = input.ReadBool();
            break;
          }
          case 2808: {
            DefaultReviveFeedbackSupported = input.ReadBool();
            break;
          }
          case 2816: {
            DefaultDownedOpponentFeedbackSupported = input.ReadBool();
            break;
          }
          case 2824: {
            DefaultDownedLocalPlayerFeedbackSupported = input.ReadBool();
            break;
          }
          case 2832: {
            DefaultDownedTeammateFeedbackSupported = input.ReadBool();
            break;
          }
          case 3208: {
            SpawnPointSelectionMode = input.ReadInt32();
            break;
          }
          case 4010: {
            MainHandSpawnEquipmentType = input.ReadBytes();
            break;
          }
          case 4018: {
            OffHandSpawnEquipmentType = input.ReadBytes();
            break;
          }
          case 4024: {
            ResetToolsOnGameStartSupported = input.ReadBool();
            break;
          }
          case 4032: {
            BrokenToolBehavior = input.ReadInt32();
            break;
          }
          case 4040: {
            InfiniteReserveAmmmunitionSupported = input.ReadBool();
            break;
          }
          case 4056: {
            ToolBeaconsSupported = input.ReadBool();
            break;
          }
          case 4808: {
            MovementBufferDistanceRestricted = input.ReadBool();
            break;
          }
          case 5608: {
            OutOfBoundsSupported = input.ReadBool();
            break;
          }
          case 5621: {
            OutOfBoundsGracePeriod = input.ReadFloat();
            break;
          }
          case 5629: {
            OutOfBoundsMaxDuration = input.ReadFloat();
            break;
          }
          case 5632: {
            OutOfBoundsSpectatorsSupported = input.ReadBool();
            break;
          }
          case 5640: {
            DownOutOfBoundsPlayers = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
