using System.Text.Json.Serialization; namespace Core.Models.Spt.Server; public class SettingsBase { [JsonPropertyName("config")] public Config Configuration { get; set; } } public class Config { [JsonPropertyName("AFKTimeoutSeconds")] public int AFKTimeoutSeconds { get; set; } [JsonPropertyName("AdditionalRandomDelaySeconds")] public int AdditionalRandomDelaySeconds { get; set; } [JsonPropertyName("ClientSendRateLimit")] public int ClientSendRateLimit { get; set; } [JsonPropertyName("CriticalRetriesCount")] public int CriticalRetriesCount { get; set; } [JsonPropertyName("DefaultRetriesCount")] public int DefaultRetriesCount { get; set; } [JsonPropertyName("FirstCycleDelaySeconds")] public int FirstCycleDelaySeconds { get; set; } [JsonPropertyName("FramerateLimit")] public FramerateLimit FramerateLimit { get; set; } [JsonPropertyName("GroupStatusInterval")] public int GroupStatusInterval { get; set; } [JsonPropertyName("GroupStatusButtonInterval")] public int GroupStatusButtonInterval { get; set; } [JsonPropertyName("KeepAliveInterval")] public int KeepAliveInterval { get; set; } [JsonPropertyName("LobbyKeepAliveInterval")] public int LobbyKeepAliveInterval { get; set; } [JsonPropertyName("Mark502and504AsNonImportant")] public bool Mark502and504AsNonImportant { get; set; } [JsonPropertyName("MemoryManagementSettings")] public MemoryManagementSettings MemoryManagementSettings { get; set; } [JsonPropertyName("NVidiaHighlights")] public bool NVidiaHighlights { get; set; } [JsonPropertyName("NextCycleDelaySeconds")] public int NextCycleDelaySeconds { get; set; } [JsonPropertyName("PingServerResultSendInterval")] public int PingServerResultSendInterval { get; set; } [JsonPropertyName("PingServersInterval")] public int PingServersInterval { get; set; } [JsonPropertyName("ReleaseProfiler")] public ReleaseProfiler ReleaseProfiler { get; set; } [JsonPropertyName("RequestConfirmationTimeouts")] public List RequestConfirmationTimeouts { get; set; } [JsonPropertyName("RequestsMadeThroughLobby")] public List RequestsMadeThroughLobby { get; set; } [JsonPropertyName("SecondCycleDelaySeconds")] public int SecondCycleDelaySeconds { get; set; } [JsonPropertyName("ShouldEstablishLobbyConnection")] public bool ShouldEstablishLobbyConnection { get; set; } [JsonPropertyName("TurnOffLogging")] public bool TurnOffLogging { get; set; } [JsonPropertyName("WeaponOverlapDistanceCulling")] public int WeaponOverlapDistanceCulling { get; set; } [JsonPropertyName("WebDiagnosticsEnabled")] public bool WebDiagnosticsEnabled { get; set; } [JsonPropertyName("NetworkStateView")] public NetworkStateView NetworkStateView { get; set; } [JsonPropertyName("WsReconnectionDelays")] public List WsReconnectionDelays { get; set; } } public class FramerateLimit { [JsonPropertyName("MaxFramerateGameLimit")] public int MaxFramerateGameLimit { get; set; } [JsonPropertyName("MaxFramerateLobbyLimit")] public int MaxFramerateLobbyLimit { get; set; } [JsonPropertyName("MinFramerateLimit")] public int MinFramerateLimit { get; set; } } public class MemoryManagementSettings { [JsonPropertyName("AggressiveGC")] public bool AggressiveGC { get; set; } [JsonPropertyName("GigabytesRequiredToDisableGCDuringRaid")] public int GigabytesRequiredToDisableGCDuringRaid { get; set; } [JsonPropertyName("HeapPreAllocationEnabled")] public bool HeapPreAllocationEnabled { get; set; } [JsonPropertyName("HeapPreAllocationMB")] public int HeapPreAllocationMB { get; set; } [JsonPropertyName("OverrideRamCleanerSettings")] public bool OverrideRamCleanerSettings { get; set; } [JsonPropertyName("RamCleanerEnabled")] public bool RamCleanerEnabled { get; set; } } public class ReleaseProfiler { [JsonPropertyName("Enabled")] public bool Enabled { get; set; } [JsonPropertyName("MaxRecords")] public int MaxRecords { get; set; } [JsonPropertyName("RecordTriggerValue")] public int RecordTriggerValue { get; set; } } public class NetworkStateView { [JsonPropertyName("LossThreshold")] public int LossThreshold { get; set; } [JsonPropertyName("RttThreshold")] public int RttThreshold { get; set; } }