From 02972867c75df2a5ce15e164d2a37e1225817742 Mon Sep 17 00:00:00 2001 From: Dave Date: Sun, 4 Jun 2023 00:23:10 +0200 Subject: [PATCH] update .gamedata & add server settings Gamedata File Updated - Rhyniognatha added to base gamedata file. Administraion - add settings: SecureSendArKPayload, UseItemDupeCheck, UseSecureSpawnRules. Server Details - Event Color percentage override. Rules - Fjordhwak inventory cooldown. --- .../GameData/SurvivalEvolved.gamedata | 23 ++++++ .../Globalization/en-US/en-US.xaml | 10 +++ src/ARKServerManager/Lib/ServerProfile.cs | 76 +++++++++++++++++++ .../UserControls/ServerSettingsControl.xaml | 29 ++++--- src/ARKServerManager/VersionFeed.xml | 28 ++++++- src/ARKServerManager/VersionFeedBeta.xml | 19 +++-- 6 files changed, 166 insertions(+), 19 deletions(-) diff --git a/src/ARKServerManager/GameData/SurvivalEvolved.gamedata b/src/ARKServerManager/GameData/SurvivalEvolved.gamedata index 7b51dd08..0ae9e6d2 100644 --- a/src/ARKServerManager/GameData/SurvivalEvolved.gamedata +++ b/src/ARKServerManager/GameData/SurvivalEvolved.gamedata @@ -939,6 +939,14 @@ "Description": "Yutyrannus", "Mod": "ArkPrime" }, + { + "NameTag": "Rhyniognatha", + "IsSpawnable": true, + "IsTameable": "false", + "ClassName": "Rhynio_Character_BP_C", + "Description": "Rhyniognatha", + "Mod": "ArkPrime" + }, { "NameTag": null, "IsSpawnable": true, @@ -5084,6 +5092,14 @@ "ClassName": "EngramEntry_Wire_Flex_C", "Description": "Flexible Electrical Cable", "Mod": "ArkPrime" + }, + { + "Level": 90, + "Points": 65, + "IsTekGram": false, + "ClassName": "EngramEntry_Saddle_Rhynio_C", + "Description": "Rhyniognatha Saddle", + "Mod": "ArkPrime" } ], "Items": [ @@ -9210,6 +9226,13 @@ "Description": "Leech Blood or Horns", "Mod": "ArkPrime" }, + { + "Category": "Resource", + "IsHarvestable": false, + "ClassName": "PrimalItemConsumableEatable_RhynioPheromone_C", + "Description": "Rhyniognatha Pheromone", + "Mod": "ArkPrime" + }, { "Category": "Skins", "IsHarvestable": false, diff --git a/src/ARKServerManager/Globalization/en-US/en-US.xaml b/src/ARKServerManager/Globalization/en-US/en-US.xaml index a42d71c6..5823f3d0 100644 --- a/src/ARKServerManager/Globalization/en-US/en-US.xaml +++ b/src/ARKServerManager/Globalization/en-US/en-US.xaml @@ -1227,6 +1227,12 @@ If enabled, will enable NVIDIA Ansel on Servers. Structure Memory Optimizations If enabled, will enable the structure memory optimizations. NOTE: avoid using it when running structure-related mods (until they get updated) as it can break the snappoints of these mod structures. + Creature Upload Issue Protection + Protection against creature upload issue (Please be aware this may have an impact on some mods) + Additional Dupe Protection + Enables additional dupe protection (Note: this could have an impact on mods, so use with caution). + Secure Item/Dino spawning Rules + More secure item/dino spawning rules (Note: this could have an impact on mods, so use with caution). No Under Mesh Checking If enabled, will turn it off the anti meshing system entirely. No Under Mesh Killing @@ -1362,6 +1368,8 @@ NOTE: Enabling an event on your server should only be done when the official event is running. If you enable the event before or after the official dates, the event may cause your server to become unstable, or may not work at all. Active Event: The name of the event to enable (leave blank to disable the event). + Dino Color Chance: + Dino event color chance. @@ -1523,6 +1531,8 @@ If enabled, disables harvesting non-meat fish loot. Use Corpse Life Span Multiplier Specifies the multiplier for corpse and dropped box lifespan. + Fjordhawk Inventory Cooldown + Fjordhawk cooldown on retrieval of player's inventory when killed. Defaults to 1 hour. Global Powered Battery Durability Specifies the multiplier for the rate at which charge batteries are used in electrical objects (decrease per second). Fuel Consumption Interval Multiplier diff --git a/src/ARKServerManager/Lib/ServerProfile.cs b/src/ARKServerManager/Lib/ServerProfile.cs index e2abd8aa..34d2a7b4 100644 --- a/src/ARKServerManager/Lib/ServerProfile.cs +++ b/src/ARKServerManager/Lib/ServerProfile.cs @@ -804,6 +804,30 @@ namespace ServerManagerTool.Lib set { SetValue(ClusterDirOverrideProperty, value); } } + public static readonly DependencyProperty SecureSendArKPayloadProperty = DependencyProperty.Register(nameof(SecureSendArKPayload), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool SecureSendArKPayload + { + get { return (bool)GetValue(SecureSendArKPayloadProperty); } + set { SetValue(SecureSendArKPayloadProperty, value); } + } + + public static readonly DependencyProperty UseItemDupeCheckProperty = DependencyProperty.Register(nameof(UseItemDupeCheck), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool UseItemDupeCheck + { + get { return (bool)GetValue(UseItemDupeCheckProperty); } + set { SetValue(UseItemDupeCheckProperty, value); } + } + + public static readonly DependencyProperty UseSecureSpawnRulesProperty = DependencyProperty.Register(nameof(UseSecureSpawnRules), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool UseSecureSpawnRules + { + get { return (bool)GetValue(UseSecureSpawnRulesProperty); } + set { SetValue(UseSecureSpawnRulesProperty, value); } + } + public static readonly DependencyProperty ProcessPriorityProperty = DependencyProperty.Register(nameof(ProcessPriority), typeof(string), typeof(ServerProfile), new PropertyMetadata("normal")); [DataMember] public string ProcessPriority @@ -1073,6 +1097,14 @@ namespace ServerManagerTool.Lib get { return (string)GetValue(EventNameProperty); } set { SetValue(EventNameProperty, value); } } + + public static readonly DependencyProperty EventColorsChanceOverrideProperty = DependencyProperty.Register(nameof(EventColorsChanceOverride), typeof(float), typeof(ServerProfile), new PropertyMetadata(0.0f)); + [DataMember] + public float EventColorsChanceOverride + { + get { return (float)GetValue(EventColorsChanceOverrideProperty); } + set { SetValue(EventColorsChanceOverrideProperty, value); } + } #endregion #region Rules @@ -1595,6 +1627,14 @@ namespace ServerManagerTool.Lib set { SetValue(UseCorpseLocatorProperty, value); } } + public static readonly DependencyProperty MinimumTimeBetweenInventoryRetrievalProperty = DependencyProperty.Register(nameof(MinimumTimeBetweenInventoryRetrieval), typeof(int), typeof(ServerProfile), new PropertyMetadata(3600)); + [DataMember] + public int MinimumTimeBetweenInventoryRetrieval + { + get { return (int)GetValue(MinimumTimeBetweenInventoryRetrievalProperty); } + set { SetValue(MinimumTimeBetweenInventoryRetrievalProperty, value); } + } + public static readonly DependencyProperty PreventSpawnAnimationsProperty = DependencyProperty.Register(nameof(PreventSpawnAnimations), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules)] public bool PreventSpawnAnimations @@ -3871,6 +3911,11 @@ namespace ServerManagerTool.Lib serverArgs.Append("?RingStartTime=").Append(this.SOTF_RingStartTime); } + if (this.EventColorsChanceOverride > 0) + { + serverArgs.Append("?EventColorsChanceOverride=").Append(this.EventColorsChanceOverride); + } + if (!string.IsNullOrWhiteSpace(this.AdditionalArgs)) { var addArgs = this.AdditionalArgs.TrimStart(); @@ -4081,6 +4126,21 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -structurememopts"); } + if (this.SecureSendArKPayload) + { + serverArgs.Append(" -SecureSendArKPayload"); + } + + if (this.UseItemDupeCheck) + { + serverArgs.Append(" -UseItemDupeCheck"); + } + + if (this.UseSecureSpawnRules) + { + serverArgs.Append(" -UseSecureSpawnRules"); + } + if (this.NoUnderMeshChecking) { serverArgs.Append(" -noundermeshchecking"); @@ -4124,6 +4184,11 @@ namespace ServerManagerTool.Lib serverArgs.Append($" -log"); } + if (this.MinimumTimeBetweenInventoryRetrieval > 0) + { + serverArgs.Append(" -MinimumTimeBetweenInventoryRetrieval=").Append(this.MinimumTimeBetweenInventoryRetrieval); + } + return serverArgs.ToString(); } @@ -4309,6 +4374,7 @@ namespace ServerManagerTool.Lib BranchName = string.Empty; BranchPassword = string.Empty; EventName = string.Empty; + EventColorsChanceOverride = 0; // ensure that the auto settings are switched off for SotF servers EnableAutoBackup = false; @@ -5357,6 +5423,9 @@ namespace ServerManagerTool.Lib this.ClearValue(EpicOnlyProperty); this.ClearValue(EnablePublicIPForEpicProperty); this.ClearValue(OutputServerLogProperty); + this.ClearValue(SecureSendArKPayloadProperty); + this.ClearValue(UseItemDupeCheckProperty); + this.ClearValue(UseSecureSpawnRulesProperty); this.ClearValue(AltSaveDirectoryNameProperty); this.ClearValue(CrossArkClusterIdProperty); @@ -5741,6 +5810,7 @@ namespace ServerManagerTool.Lib this.ClearValue(FishingLootQualityMultiplierProperty); this.ClearValue(EnableNoFishLootProperty); this.ClearValue(UseCorpseLifeSpanMultiplierProperty); + this.ClearValue(MinimumTimeBetweenInventoryRetrievalProperty); this.ClearValue(GlobalPoweredBatteryDurabilityDecreasePerSecondProperty); this.ClearValue(RandomSupplyCratePointsProperty); this.ClearValue(FuelConsumptionIntervalMultiplierProperty); @@ -5792,6 +5862,7 @@ namespace ServerManagerTool.Lib this.ClearValue(BranchPasswordProperty); this.ClearValue(EventNameProperty); + this.ClearValue(EventColorsChanceOverrideProperty); } public void ResetSOTFSection() @@ -6027,6 +6098,9 @@ namespace ServerManagerTool.Lib //this.SetValue(AltSaveDirectoryNameProperty, sourceProfile.AltSaveDirectoryName); this.SetValue(CrossArkClusterIdProperty, sourceProfile.CrossArkClusterId); this.SetValue(ClusterDirOverrideProperty, sourceProfile.ClusterDirOverride); + this.SetValue(SecureSendArKPayloadProperty, sourceProfile.SecureSendArKPayload); + this.SetValue(UseItemDupeCheckProperty, sourceProfile.UseItemDupeCheck); + this.SetValue(UseSecureSpawnRulesProperty, sourceProfile.UseSecureSpawnRules); // server log options this.SetValue(EnableServerAdminLogsProperty, sourceProfile.EnableServerAdminLogs); @@ -6471,6 +6545,7 @@ namespace ServerManagerTool.Lib this.SetValue(FishingLootQualityMultiplierProperty, sourceProfile.FishingLootQualityMultiplier); this.SetValue(EnableNoFishLootProperty, sourceProfile.EnableNoFishLoot); this.SetValue(UseCorpseLifeSpanMultiplierProperty, sourceProfile.UseCorpseLifeSpanMultiplier); + this.SetValue(MinimumTimeBetweenInventoryRetrievalProperty, sourceProfile.MinimumTimeBetweenInventoryRetrieval); this.SetValue(GlobalPoweredBatteryDurabilityDecreasePerSecondProperty, sourceProfile.GlobalPoweredBatteryDurabilityDecreasePerSecond); this.SetValue(RandomSupplyCratePointsProperty, sourceProfile.RandomSupplyCratePoints); this.SetValue(FuelConsumptionIntervalMultiplierProperty, sourceProfile.FuelConsumptionIntervalMultiplier); @@ -6522,6 +6597,7 @@ namespace ServerManagerTool.Lib this.SetValue(BranchPasswordProperty, sourceProfile.BranchPassword); this.SetValue(EventNameProperty, sourceProfile.EventName); + this.SetValue(EventColorsChanceOverrideProperty, sourceProfile.EventColorsChanceOverride); } private void SyncServerFiles(ServerProfile sourceProfile) diff --git a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml index d73f16b8..b1df4789 100644 --- a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml +++ b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml @@ -1038,6 +1038,8 @@ + + @@ -1071,14 +1073,17 @@ + + + - - + + - + -