Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Models/Spt/Server/SettingsBase.cs
T
2025-07-16 13:26:09 +01:00

334 lines
9.7 KiB
C#

using System.Text.Json.Serialization;
using SPTarkov.Server.Core.Models.Eft.Common;
namespace SPTarkov.Server.Core.Models.Spt.Server;
public record SettingsBase
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("config")]
public Config Configuration { get; set; }
}
public record Config
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("AFKTimeoutSeconds")]
public int AFKTimeoutSeconds { get; set; }
[JsonPropertyName("AdditionalRandomDelaySeconds")]
public int AdditionalRandomDelaySeconds { get; set; }
[JsonPropertyName("AudioSettings")]
public AudioSettings AudioSettings { 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<double> RequestConfirmationTimeouts { get; set; }
[JsonPropertyName("RequestsMadeThroughLobby")]
public List<string> 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<int> WsReconnectionDelays { get; set; }
}
public record AudioSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("AudioGroupPresets")]
public List<AudioGroupPreset> AudioGroupPresets { get; set; }
[JsonPropertyName("EnvironmentSettings")]
public EnvironmentSettings EnvironmentSettings { get; set; }
[JsonPropertyName("HeadphonesSettings")]
public HeadphoneSettings HeadphonesSettings { get; set; }
[JsonPropertyName("MetaXRAudioPluginSettings")]
public MetaXRAudioPluginSettings MetaXRAudioPluginSettings { get; set; }
[JsonPropertyName("PlayerSettings")]
public PlayerSettings PlayerSettings { get; set; }
[JsonPropertyName("RadioBroadcastSettings")]
public RadioBroadcastSettings RadioBroadcastSettings { get; set; }
}
public record FramerateLimit
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("MaxFramerateGameLimit")]
public int MaxFramerateGameLimit { get; set; }
[JsonPropertyName("MaxFramerateLobbyLimit")]
public int MaxFramerateLobbyLimit { get; set; }
[JsonPropertyName("MinFramerateLimit")]
public int MinFramerateLimit { get; set; }
}
public record MemoryManagementSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[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 record ReleaseProfiler
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("Enabled")]
public bool Enabled { get; set; }
[JsonPropertyName("MaxRecords")]
public int MaxRecords { get; set; }
[JsonPropertyName("RecordTriggerValue")]
public int RecordTriggerValue { get; set; }
}
public record NetworkStateView
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("LossThreshold")]
public int LossThreshold { get; set; }
[JsonPropertyName("RttThreshold")]
public int RttThreshold { get; set; }
}
public record AudioGroupPreset
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("AngleToAllowBinaural")]
public double? AngleToAllowBinaural { get; set; }
[JsonPropertyName("DisabledBinauralByDistance")]
public bool? DisabledBinauralByDistance { get; set; }
[JsonPropertyName("DistanceToAllowBinaural")]
public double? DistanceToAllowBinaural { get; set; }
[JsonPropertyName("GroupType")]
public double? GroupType { get; set; }
[JsonPropertyName("HeightToAllowBinaural")]
public double? HeightToAllowBinaural { get; set; }
[JsonPropertyName("Name")]
public string? Name { get; set; }
[JsonPropertyName("OcclusionEnabled")]
public bool? OcclusionEnabled { get; set; }
[JsonPropertyName("OcclusionIntensity")]
public double? OcclusionIntensity { get; set; }
[JsonPropertyName("OcclusionRolloffScale")]
public double? OcclusionRolloffScale { get; set; }
[JsonPropertyName("OverallVolume")]
public double? OverallVolume { get; set; }
}
public record EnvironmentSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("AutumnLateSettings")]
public SeasonEnvironmentSettings AutumnLateSettings { get; set; }
[JsonPropertyName("AutumnSettings")]
public SeasonEnvironmentSettings AutumnSettings { get; set; }
[JsonPropertyName("SpringEarlySettings")]
public SeasonEnvironmentSettings SpringEarlySettings { get; set; }
[JsonPropertyName("SpringSettings")]
public SeasonEnvironmentSettings SpringSettings { get; set; }
[JsonPropertyName("StormSettings")]
public SeasonEnvironmentSettings StormSettings { get; set; }
[JsonPropertyName("SummerSettings")]
public SeasonEnvironmentSettings SummerSettings { get; set; }
[JsonPropertyName("WinterSettings")]
public SeasonEnvironmentSettings WinterSettings { get; set; }
[JsonPropertyName("SurfaceMultipliers")]
public List<SurfaceMultiplier>? SurfaceMultipliers { get; set; }
}
public record SeasonEnvironmentSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("RainSettings")]
public List<RainSetting> RainSettings { get; set; }
[JsonPropertyName("StepsVolumeMultiplier")]
public double StepsVolumeMultiplier { get; set; }
[JsonPropertyName("WindMultipliers")]
public List<WindMultiplier> WindMultipliers { get; set; }
}
public record SurfaceMultiplier
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
public string SurfaceType { get; set; }
public double VolumeMult { get; set; }
}
public record WindMultiplier
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("VolumeMult")]
public double VolumeMult { get; set; }
[JsonPropertyName("WindSpeed")]
public string WindSpeed { get; set; }
}
public record RainSetting
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
[JsonPropertyName("IndoorVolumeMult")]
public int IndoorVolumeMult { get; set; }
[JsonPropertyName("OutdoorVolumeMult")]
public double OutdoorVolumeMult { get; set; }
[JsonPropertyName("RainIntensity")]
public string RainIntensity { get; set; }
}
public record HeadphoneSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
public double FadeDuration { get; set; }
public string FadeIn { get; set; }
public string FadeOut { get; set; }
}
public record MetaXRAudioPluginSettings
{
[JsonExtensionData]
public Dictionary<string, object>? ExtensionData { get; set; }
public bool? EnabledPluginErrorChecker { get; set; }
public double? OutputVolumeCheckCooldown { get; set; }
}