diff --git a/src/ARKServerManager.Common/Enums/CreatureBreedingable.cs b/src/ARKServerManager.Common/Enums/CreatureBreedingable.cs new file mode 100644 index 00000000..e03de523 --- /dev/null +++ b/src/ARKServerManager.Common/Enums/CreatureBreedingable.cs @@ -0,0 +1,11 @@ +using System.ComponentModel; + +namespace ServerManagerTool.Enums +{ + [DefaultValue(False)] + public enum DinoBreedingable + { + False, + True, + } +} diff --git a/src/ARKServerManager.Common/Utils/GameDataUtils.cs b/src/ARKServerManager.Common/Utils/GameDataUtils.cs index acddc094..1ddbe6a1 100644 --- a/src/ARKServerManager.Common/Utils/GameDataUtils.cs +++ b/src/ARKServerManager.Common/Utils/GameDataUtils.cs @@ -202,6 +202,22 @@ namespace ServerManagerTool.Utils } public DinoTamable IsTameable = DinoTamable.False; + + [DataMember(Name = "IsBreedingable")] + public string IsBreedingableString + { + get + { + return IsBreedingable.ToString(); + } + set + { + if (!Enum.TryParse(value, true, out IsBreedingable)) + IsBreedingable = DinoBreedingable.False; + } + } + + public DinoBreedingable IsBreedingable = DinoBreedingable.False; } [DataContract] diff --git a/src/ARKServerManager/ARKServerManager.csproj b/src/ARKServerManager/ARKServerManager.csproj index 71e4677a..3a1d8d16 100644 --- a/src/ARKServerManager/ARKServerManager.csproj +++ b/src/ARKServerManager/ARKServerManager.csproj @@ -193,6 +193,7 @@ + diff --git a/src/ARKServerManager/App.config b/src/ARKServerManager/App.config index f771f5ed..046e242e 100644 --- a/src/ARKServerManager/App.config +++ b/src/ARKServerManager/App.config @@ -915,6 +915,15 @@ + + False + + + False + + + False + diff --git a/src/ARKServerManager/Config.Designer.cs b/src/ARKServerManager/Config.Designer.cs index f7cffc57..e07cac48 100644 --- a/src/ARKServerManager/Config.Designer.cs +++ b/src/ARKServerManager/Config.Designer.cs @@ -1370,7 +1370,22 @@ namespace ServerManagerTool { this["SectionSupplyCrateOverridesIsExpanded"] = value; } } - + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool SectionExcludeItemIndicesOverridesIsExpanded + { + get + { + return ((bool)(this["SectionExcludeItemIndicesOverridesIsExpanded"])); + } + set + { + this["SectionExcludeItemIndicesOverridesIsExpanded"] = value; + } + } + [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("https://steamcommunity.com/dev/apikey")] @@ -1593,7 +1608,22 @@ namespace ServerManagerTool { this["SectionSupplyCrateOverridesEnabled"] = value; } } - + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool SectionExcludeItemIndicesOverridesEnabled + { + get + { + return ((bool)(this["SectionExcludeItemIndicesOverridesEnabled"])); + } + set + { + this["SectionExcludeItemIndicesOverridesEnabled"] = value; + } + } + [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] @@ -2552,7 +2582,22 @@ namespace ServerManagerTool { this["SupplyCrateItemsGridHeight"] = value; } } - + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("200")] + public global::System.Windows.GridLength ExcludeItemIndicesOverrideGridHeight + { + get + { + return ((global::System.Windows.GridLength)(this["ExcludeItemIndicesOverrideGridHeight"])); + } + set + { + this["ExcludeItemIndicesOverrideGridHeight"] = value; + } + } + [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("400")] @@ -3256,5 +3301,50 @@ namespace ServerManagerTool { this["TaskSchedulerPassword"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool ProfileSyncServerModIdsEnabled + { + get + { + return ((bool)(this["ProfileSyncServerModIdsEnabled"])); + } + set + { + this["ProfileSyncServerModIdsEnabled"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool ProfileSyncCrossArkClusterIdEnabled + { + get + { + return ((bool)(this["ProfileSyncCrossArkClusterIdEnabled"])); + } + set + { + this["ProfileSyncCrossArkClusterIdEnabled"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool ProfileSyncAutoShutdownEnabled + { + get + { + return ((bool)(this["ProfileSyncAutoShutdownEnabled"])); + } + set + { + this["ProfileSyncAutoShutdownEnabled"] = value; + } + } } } diff --git a/src/ARKServerManager/Enums/ServerProfileCategory.cs b/src/ARKServerManager/Enums/ServerProfileCategory.cs index 905f996e..9dc9076b 100644 --- a/src/ARKServerManager/Enums/ServerProfileCategory.cs +++ b/src/ARKServerManager/Enums/ServerProfileCategory.cs @@ -23,6 +23,7 @@ MapSpawnerOverrides, CraftingOverrides, SupplyCrateOverrides, + ExcludeItemIndicesOverrides, StackSizeOverrides, PreventTransferOverrides, PGM, diff --git a/src/ARKServerManager/Enums/ServerSettingsResetAction.cs b/src/ARKServerManager/Enums/ServerSettingsResetAction.cs index cba7329b..5096bee5 100644 --- a/src/ARKServerManager/Enums/ServerSettingsResetAction.cs +++ b/src/ARKServerManager/Enums/ServerSettingsResetAction.cs @@ -20,6 +20,7 @@ MapSpawnerOverridesSection, CraftingOverridesSection, SupplyCrateOverridesSection, + ExcludeItemIndicesOverridesSection, StackSizeOverridesSection, PreventTransferOverridesSection, diff --git a/src/ARKServerManager/GameData/Aberration.gamedata b/src/ARKServerManager/GameData/Aberration.gamedata index 52121b83..0812cc35 100644 --- a/src/ARKServerManager/GameData/Aberration.gamedata +++ b/src/ARKServerManager/GameData/Aberration.gamedata @@ -7,6 +7,7 @@ "NameTag": "Achatina", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Achatina_Character_BP_Aberrant_C", "Description": "Aberrant Achatina", "Mod": "Aberration" @@ -15,6 +16,7 @@ "NameTag": "Angler", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Angler_Character_BP_Aberrant_C", "Description": "Aberrant Anglerfish", "Mod": "Aberration" @@ -23,6 +25,7 @@ "NameTag": "Ankylo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Ankylo_Character_BP_Aberrant_C", "Description": "Aberrant Ankylosaurus", "Mod": "Aberration" @@ -31,6 +34,7 @@ "NameTag": "Arthro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Arthro_Character_BP_Aberrant_C", "Description": "Aberrant Arthropluera", "Mod": "Aberration" @@ -39,6 +43,7 @@ "NameTag": "Baryonyx", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Baryonyx_Character_BP_Aberrant_C", "Description": "Aberrant Baryonyx", "Mod": "Aberration" @@ -47,6 +52,7 @@ "NameTag": "Bigfoot", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BigFoot_Character_BP_Aberrant_C", "Description": "Aberrant Gigantopithecus", "Mod": "Aberration" @@ -55,6 +61,7 @@ "NameTag": "Titanboa", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "BoaFrill_Character_BP_Aberrant_C", "Description": "Aberrant Titanoboa", "Mod": "Aberration" @@ -63,6 +70,7 @@ "NameTag": "Carno", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Carno_Character_BP_Aberrant_C", "Description": "Aberrant Carnotaurus", "Mod": "Aberration" @@ -71,6 +79,7 @@ "NameTag": "Cnidaria", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Cnidaria_Character_BP_Aberrant_C", "Description": "Aberrant Cnidaria", "Mod": "Aberration" @@ -79,6 +88,7 @@ "NameTag": "Coel", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Coel_Character_BP_Aberrant_C", "Description": "Aberrant Coelacanth", "Mod": "Aberration" @@ -87,6 +97,7 @@ "NameTag": "Dimetro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dimetro_Character_BP_Aberrant_C", "Description": "Aberrant Dimetrodon", "Mod": "Aberration" @@ -95,6 +106,7 @@ "NameTag": "Dimorph", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dimorph_Character_BP_Aberrant_C", "Description": "Aberrant Dimorphodon", "Mod": "Aberration" @@ -103,6 +115,7 @@ "NameTag": "Diplocaulus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Diplocaulus_Character_BP_Aberrant_C", "Description": "Aberrant Diplocaulus", "Mod": "Aberration" @@ -111,6 +124,7 @@ "NameTag": "Diplo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Diplodocus_Character_BP_Aberrant_C", "Description": "Aberrant Diplodocus", "Mod": "Aberration" @@ -119,6 +133,7 @@ "NameTag": "Direbear", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Direbear_Character_BP_Aberrant_C", "Description": "Aberrant Direbear", "Mod": "Aberration" @@ -127,6 +142,7 @@ "NameTag": "Dodo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dodo_Character_BP_Aberrant_C", "Description": "Aberrant Dodo", "Mod": "Aberration" @@ -135,6 +151,7 @@ "NameTag": "Doed", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Doed_Character_BP_Aberrant_C", "Description": "Aberrant Doedicurus", "Mod": "Aberration" @@ -143,6 +160,7 @@ "NameTag": "Dragonfly", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragonfly_Character_BP_Aberrant_C", "Description": "Aberrant Meganeura", "Mod": "Aberration" @@ -151,6 +169,7 @@ "NameTag": "Beetle", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "DungBeetle_Character_BP_Aberrant_C", "Description": "Aberrant Dung Beetle", "Mod": "Aberration" @@ -159,6 +178,7 @@ "NameTag": "Eel", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Eel_Character_BP_Aberrant_C", "Description": "Aberrant Electrophorus", "Mod": "Aberration" @@ -167,6 +187,7 @@ "NameTag": "Equus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Equus_Character_BP_Aberrant_C", "Description": "Aberrant Equus", "Mod": "Aberration" @@ -175,6 +196,7 @@ "NameTag": "Iguanodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Iguanodon_Character_BP_Aberrant_C", "Description": "Aberrant Iguanodon", "Mod": "Aberration" @@ -183,6 +205,7 @@ "NameTag": "Lystro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Lystro_Character_BP_Aberrant_C", "Description": "Aberrant Lystrosaurus", "Mod": "Aberration" @@ -191,6 +214,7 @@ "NameTag": "Manta", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Manta_Character_BP_Aberrant_C", "Description": "Aberrant Manta", "Mod": "Aberration" @@ -199,6 +223,7 @@ "NameTag": "Megalania", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megalania_Character_BP_Aberrant_C", "Description": "Aberrant Megalania", "Mod": "Aberration" @@ -207,6 +232,7 @@ "NameTag": "Megalosaurus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megalosaurus_Character_BP_Aberrant_C", "Description": "Aberrant Megalosaurus", "Mod": "Aberration" @@ -215,6 +241,7 @@ "NameTag": "Moschops", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Moschops_Character_BP_Aberrant_C", "Description": "Aberrant Moschops", "Mod": "Aberration" @@ -223,6 +250,7 @@ "NameTag": "Otter", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Otter_Character_BP_Aberrant_C", "Description": "Aberrant Otter", "Mod": "Aberration" @@ -231,6 +259,7 @@ "NameTag": "Para", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Para_Character_BP_Aberrant_C", "Description": "Aberrant Parasaur", "Mod": "Aberration" @@ -239,6 +268,7 @@ "NameTag": "Paracer", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Paracer_Character_BP_Aberrant_C", "Description": "Aberrant Paraceratherium", "Mod": "Aberration" @@ -247,6 +277,7 @@ "NameTag": "Piranha", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Piranha_Character_BP_Aberrant_C", "Description": "Aberrant Piranha", "Mod": "Aberration" @@ -255,6 +286,7 @@ "NameTag": "Purlovia", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Purlovia_Character_BP_Aberrant_C", "Description": "Aberrant Purlovia", "Mod": "Aberration" @@ -263,6 +295,7 @@ "NameTag": "Raptor", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Raptor_Character_BP_Aberrant_C", "Description": "Aberrant Raptor", "Mod": "Aberration" @@ -271,6 +304,7 @@ "NameTag": "Salmon", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Salmon_Character_Aberrant_C", "Description": "Aberrant Salmon", "Mod": "Aberration" @@ -279,6 +313,7 @@ "NameTag": "Sarco", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Sarco_Character_BP_Aberrant_C", "Description": "Aberrant Sarco", "Mod": "Aberration" @@ -287,6 +322,7 @@ "NameTag": "Scorpion", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Scorpion_Character_BP_Aberrant_C", "Description": "Aberrant Pulmonoscorpius", "Mod": "Aberration" @@ -295,6 +331,7 @@ "NameTag": "Sheep", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Sheep_Character_BP_Aberrant_C", "Description": "Aberrant Ovis", "Mod": "Aberration" @@ -303,6 +340,7 @@ "NameTag": "Spider", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "SpiderS_Character_BP_Aberrant_C", "Description": "Aberrant Araneo", "Mod": "Aberration" @@ -311,6 +349,7 @@ "NameTag": "Spino", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Spino_Character_BP_Aberrant_C", "Description": "Aberrant Spino", "Mod": "Aberration" @@ -319,6 +358,7 @@ "NameTag": "Stego", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Stego_Character_BP_Aberrant_C", "Description": "Aberrant Stegosaurus", "Mod": "Aberration" @@ -327,6 +367,7 @@ "NameTag": "Toad", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Toad_Character_BP_Aberrant_C", "Description": "Aberrant Beelzebufo", "Mod": "Aberration" @@ -335,6 +376,7 @@ "NameTag": "Trike", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Trike_Character_BP_Aberrant_C", "Description": "Aberrant Triceratops", "Mod": "Aberration" @@ -343,6 +385,7 @@ "NameTag": "Trilobite", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Trilobite_Character_Aberrant_C", "Description": "Aberrant Trilobite", "Mod": "Aberration" @@ -351,6 +394,7 @@ "NameTag": "Turtle", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Turtle_Character_BP_Aberrant_C", "Description": "Aberrant Carbonemys", "Mod": "Aberration" @@ -359,6 +403,7 @@ "NameTag": "Basilisk", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Basilisk_Character_BP_C", "Description": "Basilisk", "Mod": "Aberration" @@ -367,6 +412,8 @@ "NameTag": "CaveWolf", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", + "IsBreedingable": "False", "ClassName": "CaveWolf_Character_BP_C", "Description": "Ravager", "Mod": "Aberration" @@ -375,6 +422,7 @@ "NameTag": "Chupacabra", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "ChupaCabra_Character_BP_C", "Description": "Nameless", "Mod": "Aberration" @@ -383,6 +431,7 @@ "NameTag": "CaveCrab", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Crab_Character_BP_C", "Description": "Karkinos", "Mod": "Aberration" @@ -391,6 +440,7 @@ "NameTag": "Lamprey", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Lamprey_Character_C", "Description": "Lamprey", "Mod": "Aberration" @@ -399,6 +449,7 @@ "NameTag": "Lantern Bird", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "LanternBird_Character_BP_C", "Description": "Featherlight", "Mod": "Aberration" @@ -407,6 +458,7 @@ "NameTag": "Lantern Goat", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "LanternGoat_Character_BP_C", "Description": "Shinehorn", "Mod": "Aberration" @@ -415,6 +467,7 @@ "NameTag": "Lantern Lizard", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "LanternLizard_Character_BP_C", "Description": "Glowtail", "Mod": "Aberration" @@ -423,6 +476,7 @@ "NameTag": "Pug", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "LanternPug_Character_BP_C", "Description": "Bulbdog", "Mod": "Aberration" @@ -431,6 +485,7 @@ "NameTag": "Lightbug", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Lightbug_Character_BaseBP_C", "Description": "Glowbug", "Mod": "Aberration" @@ -439,6 +494,7 @@ "NameTag": "Elite Basilisk", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaBasilisk_Character_BP_C", "Description": "Alpha Basilisk", "Mod": "Aberration" @@ -447,6 +503,7 @@ "NameTag": "Elite CaveCrab", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaCrab_Character_BP_C", "Description": "Alpha Karkinos", "Mod": "Aberration" @@ -455,6 +512,7 @@ "NameTag": "Elite Xenomorph", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaXenomorph_Character_BP_Male_Surface_C", "Description": "Alpha Surface Reaper King", "Mod": "Aberration" @@ -463,6 +521,7 @@ "NameTag": "MoleRat", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "MoleRat_Character_BP_C", "Description": "Roll Rat", "Mod": "Aberration" @@ -471,6 +530,7 @@ "NameTag": "Bat", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Pteroteuthis_Char_BP_C", "Description": "Seeker", "Mod": "Aberration" @@ -479,6 +539,7 @@ "NameTag": "RockDrake", "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "RockDrake_Character_BP_C", "Description": "Rock Drake", "Mod": "Aberration" @@ -487,6 +548,7 @@ "NameTag": "Xenomorph", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_C", "Description": "Nameless Queen", "Mod": "Aberration" @@ -495,6 +557,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "ChupaCabra_Character_BP_Minion_C", "Description": "Nameless (Minion)", "Mod": "Aberration" @@ -503,6 +566,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "ChupaCabra_Character_BP_Surface_C", "Description": "Nameless (Surface)", "Mod": "Aberration" @@ -511,6 +575,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Pteroteuthis_Char_BP_Surface_C", "Description": "Seeker (Surface)", "Mod": "Aberration" @@ -519,6 +584,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Female_C", "Description": "Reaper Queen", "Mod": "Aberration" @@ -527,6 +593,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_C", "Description": "Reaper King", "Mod": "Aberration" @@ -535,6 +602,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_Chupa_C", "Description": "Subterranean Reaper King", "Mod": "Aberration" @@ -543,6 +611,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_Minion_C", "Description": "Elemental Reaper King", "Mod": "Aberration" @@ -551,6 +620,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_Surface_C", "Description": "Surface Reaper King", "Mod": "Aberration" @@ -559,6 +629,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_Tamed_C", "Description": "Reaper King Tamed", "Mod": "Aberration" @@ -567,6 +638,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Rockwell_Character_BP_C", "Description": "Rockwell", "Mod": "Aberration" @@ -575,6 +647,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Rockwell_Character_BP_Easy_C", "Description": "Rockwell (Easy Variant)", "Mod": "Aberration" @@ -583,6 +656,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Rockwell_Character_BP_Medium_C", "Description": "Rockwell (Medium Variant)", "Mod": "Aberration" @@ -591,6 +665,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Rockwell_Character_BP_Hard_C", "Description": "Rockwell (Hard Variant)", "Mod": "Aberration" @@ -599,6 +674,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RockwellTentacle_Character_BP_C", "Description": "Rockwell Tentacle", "Mod": "Aberration" @@ -607,6 +683,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RockwellTentacle_Character_BP_Alpha_C", "Description": "Rockwell Tentacle (Hard Variant)", "Mod": "Aberration" @@ -615,6 +692,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RockwellTentacle_Character_BP_Beta_C", "Description": "Rockwell Tentacle (Medium Variant)", "Mod": "Aberration" @@ -623,6 +701,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RockwellTentacle_Character_BP_Gamma_C", "Description": "Rockwell Tentacle (Easy Variant)", "Mod": "Aberration" diff --git a/src/ARKServerManager/GameData/Extinction.gamedata b/src/ARKServerManager/GameData/Extinction.gamedata index d417ee6e..d96a58aa 100644 --- a/src/ARKServerManager/GameData/Extinction.gamedata +++ b/src/ARKServerManager/GameData/Extinction.gamedata @@ -7,6 +7,7 @@ "NameTag": "Artho", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Arthro_Character_BP_Corrupt", "Description": "Corrupted Arthropluera", "Mod": "Extinction" @@ -15,6 +16,7 @@ "NameTag": "Carno", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Carno_Character_BP_Corrupt_C", "Description": "Corrupted Carnotaurus", "Mod": "Extinction" @@ -23,6 +25,7 @@ "NameTag": "Chalico", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Chalico_Character_BP_Corrupt_C", "Description": "Corrupted Chalicotherium", "Mod": "Extinction" @@ -31,6 +34,7 @@ "NameTag": "Deathworm", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Deathworm_Character_BP_Corrupt_C", "Description": "Corrupted Deathworm", "Mod": "Extinction" @@ -39,6 +43,7 @@ "NameTag": "Dilo", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dilo_Character_BP_Corrupt_C", "Description": "Corrupted Dilophosaur", "Mod": "Extinction" @@ -47,6 +52,7 @@ "NameTag": "Dimorph", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dimorph_Character_BP_Corrupt_C", "Description": "Corrupted Dimorphodon", "Mod": "Extinction" @@ -55,6 +61,7 @@ "NameTag": "Gigant", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gigant_Character_BP_Corrupt_C", "Description": "Corrupted Giganotosaurus", "Mod": "Extinction" @@ -63,6 +70,7 @@ "NameTag": "Xenomorph", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Xenomorph_Character_BP_Male_Tamed_Corrupt_C", "Description": "Corrupted Reaper King", "Mod": "Extinction" @@ -71,6 +79,7 @@ "NameTag": "Paracer", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Paracer_Character_BP_Corrupt_C", "Description": "Corrupted Paraceratherium", "Mod": "Extinction" @@ -79,6 +88,7 @@ "NameTag": "Ptero", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Ptero_Character_BP_Corrupt_C", "Description": "Corrupted Pteranodon", "Mod": "Extinction" @@ -87,6 +97,7 @@ "NameTag": "Raptor", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Raptor_Character_BP_Corrupt_C", "Description": "Corrupted Raptor", "Mod": "Extinction" @@ -95,6 +106,7 @@ "NameTag": "MegaRex", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaRex_Character_BP_Corrupt_C", "Description": "Enraged Corrupted Rex", "Mod": "Extinction" @@ -103,6 +115,7 @@ "NameTag": "Rex", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Rex_Character_BP_Corrupt_C", "Description": "Corrupted Rex", "Mod": "Extinction" @@ -111,6 +124,7 @@ "NameTag": "RockDrake", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RockDrake_Character_BP_Corrupt_C", "Description": "Corrupted Rock Drake", "Mod": "Extinction" @@ -119,6 +133,7 @@ "NameTag": "Spino", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Spino_Character_BP_Corrupt_C", "Description": "Corrupted Spino", "Mod": "Extinction" @@ -127,6 +142,7 @@ "NameTag": "Stego", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Stego_Character_BP_Corrupt_C", "Description": "Corrupted Stegosaurus", "Mod": "Extinction" @@ -135,6 +151,7 @@ "NameTag": "MegaTrike", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaTrike_Character_BP_Corrupt_C", "Description": "Enraged Triceratops", "Mod": "Extinction" @@ -143,6 +160,7 @@ "NameTag": "Trike", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Trike_Character_BP_Corrupt_C", "Description": "Corrupted Triceratops", "Mod": "Extinction" @@ -151,6 +169,7 @@ "NameTag": "Wyvern", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Wyvern_Character_BP_Fire_Corrupt_C", "Description": "Corrupted Wyvern", "Mod": "Extinction" @@ -159,6 +178,7 @@ "NameTag": "DesertTitan", "IsSpawnable": false, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "DesertKaiju_Character_BP_C", "Description": "Desert Titan", "Mod": "Extinction" @@ -167,6 +187,7 @@ "NameTag": "Enforcer", "IsSpawnable": true, "IsTameable": "ByCrafting", + "IsBreedingable": "False", "ClassName": "Enforcer_Character_BP_C", "Description": "Enforcer", "Mod": "Extinction" @@ -175,6 +196,7 @@ "NameTag": "ForestTitan", "IsSpawnable": false, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "ForestKaiju_Character_BP_C", "Description": "Forest Titan", "Mod": "Extinction" @@ -183,6 +205,7 @@ "NameTag": "Gacha", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Gacha_Character_BP_C", "Description": "Gacha", "Mod": "Extinction" @@ -191,6 +214,7 @@ "NameTag": "GasBags", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "GasBags_Character_BP_C", "Description": "GasBags", "Mod": "Extinction" @@ -199,6 +223,7 @@ "NameTag": "Managarmr", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "IceJumper_Character_BP_C", "Description": "Managarmr", "Mod": "Extinction" @@ -207,6 +232,7 @@ "NameTag": "IceTitan", "IsSpawnable": false, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "IceKaiju_Character_BP_C", "Description": "Ice Titan", "Mod": "Extinction" @@ -215,6 +241,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "CorruptTumor_Character_BP_C", "Description": "Corrupt Tumor", "Mod": "Extinction" @@ -223,6 +250,7 @@ "NameTag": "King Titan", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "KingKaiju_Character_BP_C", "Description": "King Titan (Gamma)", "Mod": "Extinction" @@ -231,6 +259,7 @@ "NameTag": "KingTitanAlpha", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "KingKaiju_Character_BP_Alpha_C", "Description": "King Titan (Alpha)", "Mod": "Extinction" @@ -239,6 +268,7 @@ "NameTag": "King Titan", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "KingKaiju_Character_BP_Beta_C", "Description": "King Titan (Beta)", "Mod": "Extinction" @@ -247,6 +277,7 @@ "NameTag": "MegaMek", "IsSpawnable": false, "IsTameable": "ByCrafting", + "IsBreedingable": "False", "ClassName": "MegaMek_Character_BP_C", "Description": "Mega Mek", "Mod": "Extinction" @@ -255,6 +286,7 @@ "NameTag": "Mek", "IsSpawnable": false, "IsTameable": "ByCrafting", + "IsBreedingable": "False", "ClassName": "Mek_Character_BP_C", "Description": "Mek", "Mod": "Extinction" @@ -263,6 +295,7 @@ "NameTag": "Owl", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Owl_Character_BP_C", "Description": "Snow Owl", "Mod": "Extinction" @@ -271,6 +304,7 @@ "NameTag": "Scout", "IsSpawnable": true, "IsTameable": "ByCrafting", + "IsBreedingable": "False", "ClassName": "Scout_Character_BP_C", "Description": "Scout", "Mod": "Extinction" @@ -279,6 +313,7 @@ "NameTag": "Velonasaur", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Spindles_Character_BP_C", "Description": "Velonasaur", "Mod": "Extinction" @@ -287,6 +322,7 @@ "NameTag": "Defender", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Defender_Character_BP_C", "Description": "Defense Unit", "Mod": "Extinction" diff --git a/src/ARKServerManager/GameData/Ragnarok.gamedata b/src/ARKServerManager/GameData/Ragnarok.gamedata index 0f42a90f..69e34682 100644 --- a/src/ARKServerManager/GameData/Ragnarok.gamedata +++ b/src/ARKServerManager/GameData/Ragnarok.gamedata @@ -7,6 +7,7 @@ "NameTag": "Griffin", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Griffin_Character_BP_C", "Description": "Griffin", "Mod": "Ragnarok" @@ -15,6 +16,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Polar_Bear_C", "Description": "Polar Bear", "Mod": "Ragnarok" @@ -23,6 +25,7 @@ "NameTag": "Ice Wyvern", "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "Ragnarok_Wyvern_Override_Ice_C", "Description": "Ice Wyvern", "Mod": "Ragnarok" @@ -31,6 +34,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Iceworm_Character_Minion_BP_smaller_C", "Description": "Iceworm", "Mod": "Ragnarok" @@ -39,6 +43,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Iceworm_Queen_Character_BP_C", "Description": "Iceworm Queen", "Mod": "Ragnarok" @@ -47,6 +52,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "LavaGolem_Character_BP_C", "Description": "Lava Golem", "Mod": "Ragnarok" @@ -55,6 +61,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Easy_Ragnarok_C", "Description": "Dragon (Easy Variant)", "Mod": "Ragnarok" @@ -63,6 +70,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Medium_Ragnarok_C", "Description": "Dragon (Medium Variant)", "Mod": "Ragnarok" @@ -71,6 +79,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Hard_Ragnarok_C", "Description": "Dragon (Hard Variant)", "Mod": "Ragnarok" @@ -79,6 +88,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Easy_Ragnarok_C", "Description": "Manticore (Easy Variant)", "Mod": "Ragnarok" @@ -87,6 +97,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Medium_Ragnarok_C", "Description": "Manticore (Medium Variant)", "Mod": "Ragnarok" @@ -95,6 +106,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Hard_Ragnarok_C", "Description": "Manticore (Hard Variant)", "Mod": "Ragnarok" diff --git a/src/ARKServerManager/GameData/ScorchedEarth.gamedata b/src/ARKServerManager/GameData/ScorchedEarth.gamedata index f53eb7aa..dd7e225d 100644 --- a/src/ARKServerManager/GameData/ScorchedEarth.gamedata +++ b/src/ARKServerManager/GameData/ScorchedEarth.gamedata @@ -7,6 +7,7 @@ "NameTag": "Camelsaurus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "camelsaurus_Character_BP_C", "Description": "Morellatops", "Mod": "ScorchedEarth" @@ -15,6 +16,7 @@ "NameTag": "Deathworm", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Deathworm_Character_BP_C", "Description": "Deathworm", "Mod": "ScorchedEarth" @@ -23,6 +25,7 @@ "NameTag": "Jerboa", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Jerboa_Character_BP_C", "Description": "Jerboa", "Mod": "ScorchedEarth" @@ -31,6 +34,7 @@ "NameTag": "JugBug", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Jugbug_Oil_Character_BP_C", "Description": "Oil Jug Bug", "Mod": "ScorchedEarth" @@ -39,6 +43,7 @@ "NameTag": "Mantis", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Mantis_Character_BP_C", "Description": "Mantis", "Mod": "ScorchedEarth" @@ -47,6 +52,7 @@ "NameTag": "Moth", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Moth_Character_BP_C", "Description": "Lymantria", "Mod": "ScorchedEarth" @@ -55,6 +61,7 @@ "NameTag": "Phoenix", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Phoenix_Character_BP_C", "Description": "Phoenix", "Mod": "ScorchedEarth" @@ -63,6 +70,7 @@ "NameTag": "RockElemental", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "RockGolem_Character_BP_C", "Description": "Rock Elemental", "Mod": "ScorchedEarth" @@ -71,6 +79,7 @@ "NameTag": "SpineyLizard", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "SpineyLizard_Character_BP_C", "Description": "Thorny Dragon", "Mod": "ScorchedEarth" @@ -79,6 +88,7 @@ "NameTag": "Vulture", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Vulture_Character_BP_C", "Description": "Vulture", "Mod": "ScorchedEarth" @@ -87,6 +97,7 @@ "NameTag": "Wyvern", "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "Wyvern_Character_BP_Fire_C", "Description": "Fire Wyvern", "Mod": "ScorchedEarth" @@ -95,6 +106,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Jugbug_Water_Character_BP_C", "Description": "Water Jug Bug", "Mod": "ScorchedEarth" @@ -103,6 +115,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaDeathworm_Character_BP_C", "Description": "Alpha Deathworm", "Mod": "ScorchedEarth" @@ -111,6 +124,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaWyvern_Character_BP_Fire_C", "Description": "Alpha Wyvern", "Mod": "ScorchedEarth" @@ -119,6 +133,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "RubbleGolem_Character_BP_C", "Description": "Rubble Golem", "Mod": "ScorchedEarth" @@ -127,6 +142,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "Wyvern_Character_BP_Lightning_C", "Description": "Lightning Wyvern", "Mod": "ScorchedEarth" @@ -135,6 +151,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "Wyvern_Character_BP_Poison_C", "Description": "Poison Wyvern", "Mod": "ScorchedEarth" @@ -143,6 +160,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_C", "Description": "Manticore", "Mod": "ScorchedEarth" @@ -151,6 +169,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Easy_C", "Description": "Manticore (Easy Variant)", "Mod": "ScorchedEarth" @@ -159,6 +178,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Medium_C", "Description": "Manticore (Medium Variant)", "Mod": "ScorchedEarth" @@ -167,6 +187,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Hard_C", "Description": "Manticore (Hard Variant)", "Mod": "ScorchedEarth" diff --git a/src/ARKServerManager/GameData/SurvivalEvolved.gamedata b/src/ARKServerManager/GameData/SurvivalEvolved.gamedata index c3fe3769..7947f5e4 100644 --- a/src/ARKServerManager/GameData/SurvivalEvolved.gamedata +++ b/src/ARKServerManager/GameData/SurvivalEvolved.gamedata @@ -7,6 +7,7 @@ "NameTag": "Achatina", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Achatina_Character_BP_C", "Description": "Achatina", "Mod": "ArkPrime" @@ -15,6 +16,7 @@ "NameTag": "Allo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Allo_Character_BP_C", "Description": "Allosaurus", "Mod": "ArkPrime" @@ -23,6 +25,7 @@ "NameTag": "Ammonite", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Ammonite_Character_C", "Description": "Ammonite", "Mod": "ArkPrime" @@ -31,6 +34,7 @@ "NameTag": "Angler", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Angler_Character_BP_C", "Description": "Anglerfish", "Mod": "ArkPrime" @@ -39,6 +43,7 @@ "NameTag": "Anky", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Ankylo_Character_BP_C", "Description": "Ankylosaurus", "Mod": "ArkPrime" @@ -47,6 +52,7 @@ "NameTag": "Ant", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Ant_Character_BP_C", "Description": "Titanomyrma Drone", "Mod": "ArkPrime" @@ -55,6 +61,7 @@ "NameTag": "Archa", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Archa_Character_BP_C", "Description": "Archaeopteryx", "Mod": "ArkPrime" @@ -63,6 +70,7 @@ "NameTag": "Argent", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Argent_Character_BP_C", "Description": "Argentavis", "Mod": "ArkPrime" @@ -71,6 +79,7 @@ "NameTag": "Arthro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Arthro_Character_BP_C", "Description": "Arthropluera", "Mod": "ArkPrime" @@ -79,6 +88,7 @@ "NameTag": "Baryonyx", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Baryonyx_Character_BP_C", "Description": "Baryonyx", "Mod": "ArkPrime" @@ -87,6 +97,7 @@ "NameTag": "Basilosaurus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Basilosaurus_Character_BP_C", "Description": "Basilosaurus", "Mod": "ArkPrime" @@ -95,6 +106,7 @@ "NameTag": "Bat", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Bat_Character_BP_C", "Description": "Onyc", "Mod": "ArkPrime" @@ -103,6 +115,7 @@ "NameTag": "Beaver", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Beaver_Character_BP_C", "Description": "Castoroides", "Mod": "ArkPrime" @@ -111,6 +124,7 @@ "NameTag": "Bee", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Bee_Character_BP_C", "Description": "Giant Bee", "Mod": "ArkPrime" @@ -119,6 +133,7 @@ "NameTag": "Bigfoot", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BigFoot_Character_BP_C", "Description": "Gigantopithecus", "Mod": "ArkPrime" @@ -127,6 +142,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BionicPara_Character_BP_C", "Description": "Tek Parasaur", "Mod": "ArkPrime" @@ -135,6 +151,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BionicQuetz_Character_BP_C", "Description": "Tek Quetzal", "Mod": "ArkPrime" @@ -143,6 +160,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BionicRaptor_Character_BP_C", "Description": "Tek Raptor", "Mod": "ArkPrime" @@ -151,6 +169,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BionicRex_Character_BP_C", "Description": "Tek Rex", "Mod": "ArkPrime" @@ -159,6 +178,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "BionicStego_Character_BP_C", "Description": "Tek Stegosaurus", "Mod": "ArkPrime" @@ -167,14 +187,16 @@ "NameTag": "Titanboa", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "BoaFrill_Character_BP_C", "Description": "Titanoboa", "Mod": "ArkPrime" }, { - "NameTag": "Carcharodontosaurus", + "NameTag": "Carcha", "IsSpawnable": "true", "IsTameable": "true", + "IsBreedingable": "True", "ClassName": "Carcha_Character_BP_C", "Description": "Carcharodontosaurus", "Mod": "ArkPrime" @@ -183,6 +205,7 @@ "NameTag": "Carno", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Carno_Character_BP_C", "Description": "Carnotaurus", "Mod": "ArkPrime" @@ -191,6 +214,7 @@ "NameTag": "Chalico", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Chalico_Character_BP_C", "Description": "Chalicotherium", "Mod": "ArkPrime" @@ -199,6 +223,7 @@ "NameTag": "Cnidaria", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Cnidaria_Character_BP_C", "Description": "Cnidaria", "Mod": "ArkPrime" @@ -207,6 +232,7 @@ "NameTag": "Coel", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Coel_Character_BP_C", "Description": "Coelacanth", "Mod": "ArkPrime" @@ -215,6 +241,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Coel_Character_BP_Ocean_C", "Description": "Coelacanth (Ocean)", "Mod": "ArkPrime" @@ -223,6 +250,7 @@ "NameTag": "Compy", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Compy_Character_BP_C", "Description": "Compy", "Mod": "ArkPrime" @@ -231,6 +259,7 @@ "NameTag": "Daeodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Daeodon_Character_BP_C", "Description": "Daeodon", "Mod": "ArkPrime" @@ -239,6 +268,7 @@ "NameTag": "Dilo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dilo_Character_BP_C", "Description": "Dilophosaurus", "Mod": "ArkPrime" @@ -247,6 +277,7 @@ "NameTag": "Dimetro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dimetro_Character_BP_C", "Description": "Dimetrodon", "Mod": "ArkPrime" @@ -255,6 +286,7 @@ "NameTag": "Dimorph", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dimorph_Character_BP_C", "Description": "Dimorphodon", "Mod": "ArkPrime" @@ -263,6 +295,7 @@ "NameTag": "Diplocaulus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Diplocaulus_Character_BP_C", "Description": "Diplocalus", "Mod": "ArkPrime" @@ -271,6 +304,7 @@ "NameTag": "Diplo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Diplodocus_Character_BP_C", "Description": "Diplodocus", "Mod": "ArkPrime" @@ -279,6 +313,7 @@ "NameTag": "Direbear", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Direbear_Character_BP_C", "Description": "Direbear", "Mod": "ArkPrime" @@ -287,6 +322,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Direbear_Character_Polar_C", "Description": "Polar Bear", "Mod": "ArkPrime" @@ -295,6 +331,7 @@ "NameTag": "Direwolf", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Direwolf_Character_BP_C", "Description": "Direwolf", "Mod": "ArkPrime" @@ -303,6 +340,7 @@ "NameTag": "Dodo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dodo_Character_BP_C", "Description": "Dodo", "Mod": "ArkPrime" @@ -311,6 +349,7 @@ "NameTag": "Doed", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Doed_Character_BP_C", "Description": "Doedicurus", "Mod": "ArkPrime" @@ -319,6 +358,7 @@ "NameTag": "Dolphin", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dolphin_Character_BP_C", "Description": "Ichthy", "Mod": "ArkPrime" @@ -327,6 +367,7 @@ "NameTag": "Dragonfly", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragonfly_Character_BP_C", "Description": "Meganeura", "Mod": "ArkPrime" @@ -335,6 +376,7 @@ "NameTag": "Beetle", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "DungBeetle_Character_BP_C", "Description": "Dung Beetle", "Mod": "ArkPrime" @@ -343,6 +385,7 @@ "NameTag": "Dunkle", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Dunkle_Character_BP_C", "Description": "Dunkleosteus", "Mod": "ArkPrime" @@ -351,6 +394,7 @@ "NameTag": "Eel", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Eel_Character_BP_C", "Description": "Electrophorus", "Mod": "ArkPrime" @@ -359,6 +403,7 @@ "NameTag": "Equus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Equus_Character_BP_C", "Description": "Equus", "Mod": "ArkPrime" @@ -367,6 +412,7 @@ "NameTag": "Euryp", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Euryp_Character_C", "Description": "Eurypterid", "Mod": "ArkPrime" @@ -375,6 +421,7 @@ "NameTag": "Galli", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Galli_Character_BP_C", "Description": "Gallimimus", "Mod": "ArkPrime" @@ -383,6 +430,7 @@ "NameTag": "Gigant", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Gigant_Character_BP_C", "Description": "Giganotosaurus", "Mod": "ArkPrime" @@ -391,6 +439,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gigant_Character_BP_TekCave_C", "Description": "Giganotosaurus (Tek Cave)", "Mod": "ArkPrime" @@ -399,6 +448,7 @@ "NameTag": "Hesperornis", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Hesperornis_Character_BP_C", "Description": "Hesperornis", "Mod": "ArkPrime" @@ -407,6 +457,7 @@ "NameTag": "Hyaenodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Hyaenodon_Character_BP_C", "Description": "Hyaenodon", "Mod": "ArkPrime" @@ -415,6 +466,7 @@ "NameTag": "Ichthyornis", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Ichthyornis_Character_BP_C", "Description": "Ichthyornis", "Mod": "ArkPrime" @@ -423,6 +475,7 @@ "NameTag": "Iguanodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Iguanodon_Character_BP_C", "Description": "Iguanodon", "Mod": "ArkPrime" @@ -431,6 +484,7 @@ "NameTag": "Kairu", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Kairuku_Character_BP_C", "Description": "Kairuku", "Mod": "ArkPrime" @@ -439,6 +493,7 @@ "NameTag": "Kaprosuchus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Kaprosuchus_Character_BP_C", "Description": "Kaprosuchus", "Mod": "ArkPrime" @@ -447,6 +502,7 @@ "NameTag": "Kentro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Kentro_Character_BP_C", "Description": "Kentrosaurus", "Mod": "ArkPrime" @@ -455,6 +511,7 @@ "NameTag": "Leech", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Leech_Character_C", "Description": "Leech", "Mod": "ArkPrime" @@ -463,6 +520,7 @@ "NameTag": "Leedsichthys", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Leedsichthys_Character_BP_C", "Description": "Leedsichthys", "Mod": "ArkPrime" @@ -471,6 +529,7 @@ "NameTag": "Liopleurodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Liopleurodon_Character_BP_C", "Description": "Liopleurodon", "Mod": "ArkPrime" @@ -479,6 +538,7 @@ "NameTag": "Lystro", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Lystro_Character_BP_C", "Description": "Lystrosaurus", "Mod": "ArkPrime" @@ -487,6 +547,7 @@ "NameTag": "Mammoth", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Mammoth_Character_BP_C", "Description": "Mammoth", "Mod": "ArkPrime" @@ -495,6 +556,7 @@ "NameTag": "Manta", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Manta_Character_BP_C", "Description": "Manta", "Mod": "ArkPrime" @@ -503,6 +565,7 @@ "NameTag": "Elite Carno", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaCarno_Character_BP_C", "Description": "Alpha Carnotaurus", "Mod": "ArkPrime" @@ -511,6 +574,7 @@ "NameTag": "Megalania", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megalania_Character_BP_C", "Description": "Megalania", "Mod": "ArkPrime" @@ -519,6 +583,7 @@ "NameTag": "Mega", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megalodon_Character_BP_C", "Description": "Megalodon", "Mod": "ArkPrime" @@ -527,6 +592,7 @@ "NameTag": "Megalosaurus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megalosaurus_Character_BP_C", "Description": "Megalosaurus", "Mod": "ArkPrime" @@ -535,6 +601,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Megalosaurus_Character_BP_TekCave_C", "Description": "Megalosaurus (Tek Cave)", "Mod": "ArkPrime" @@ -543,6 +610,7 @@ "NameTag": "Elite Mega", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MEgaMegalodon_Character_BP_C", "Description": "Alpha Megalodon", "Mod": "ArkPrime" @@ -551,6 +619,7 @@ "NameTag": "Elite Raptor", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaRaptor_Character_BP_C", "Description": "Alpha Raptor", "Mod": "ArkPrime" @@ -559,6 +628,7 @@ "NameTag": "Elite Rex", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "MegaRex_Character_BP_C", "Description": "Alpha T-Rex", "Mod": "ArkPrime" @@ -567,6 +637,7 @@ "NameTag": "Megatherium", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Megatherium_Character_BP_C", "Description": "Megatherium", "Mod": "ArkPrime" @@ -575,6 +646,7 @@ "NameTag": "Microraptor", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Microraptor_Character_BP_C", "Description": "Microraptor", "Mod": "ArkPrime" @@ -583,6 +655,7 @@ "NameTag": "Monkey", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Monkey_Character_BP_C", "Description": "Mesopithecus", "Mod": "ArkPrime" @@ -591,6 +664,7 @@ "NameTag": "Mosasaur", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Mosa_Character_BP_C", "Description": "Mosasaurus", "Mod": "ArkPrime" @@ -599,6 +673,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "false", + "IsBreedingable": "False", "ClassName": "Mosa_Character_BP_Cave_C", "Description": "Mosasaurus (Cave)", "Mod": "ArkPrime" @@ -607,6 +682,7 @@ "NameTag": "Moschops", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Moschops_Character_BP_C", "Description": "Moschops", "Mod": "ArkPrime" @@ -615,6 +691,7 @@ "NameTag": "Otter", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Otter_Character_BP_C", "Description": "Otter", "Mod": "ArkPrime" @@ -623,6 +700,7 @@ "NameTag": "Ovi", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Oviraptor_Character_BP_C", "Description": "Oviraptor", "Mod": "ArkPrime" @@ -631,6 +709,7 @@ "NameTag": "Pachy", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Pachy_Character_BP_C", "Description": "Pachy", "Mod": "ArkPrime" @@ -639,6 +718,7 @@ "NameTag": "Pachyrhino", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Pachyrhino_Character_BP_C", "Description": "Pachyrhinosaurus", "Mod": "ArkPrime" @@ -647,6 +727,7 @@ "NameTag": "Para", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Para_Character_BP_C", "Description": "Parasaur", "Mod": "ArkPrime" @@ -655,6 +736,7 @@ "NameTag": "Paracer", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Paracer_Character_BP_C", "Description": "Paraceratherium", "Mod": "ArkPrime" @@ -663,6 +745,7 @@ "NameTag": "Pegomastax", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Pegomastax_Character_BP_C", "Description": "Pegomastax", "Mod": "ArkPrime" @@ -671,6 +754,7 @@ "NameTag": "Pela", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Pela_Character_BP_C", "Description": "Pelagornis", "Mod": "ArkPrime" @@ -679,6 +763,7 @@ "NameTag": "Phiomia", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Phiomia_Character_BP_C", "Description": "Phiomia", "Mod": "ArkPrime" @@ -687,6 +772,7 @@ "NameTag": "Piranha", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Piranha_Character_BP_C", "Description": "Megapiranha", "Mod": "ArkPrime" @@ -695,6 +781,7 @@ "NameTag": "Plesiosaur", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Plesiosaur_Character_BP_C", "Description": "Plesiosaur", "Mod": "ArkPrime" @@ -703,6 +790,7 @@ "NameTag": "Kangaroo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Procoptodon_Character_BP_C", "Description": "Procoptodon", "Mod": "ArkPrime" @@ -711,6 +799,7 @@ "NameTag": "Ptera", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Ptero_Character_BP_C", "Description": "Pteranodon", "Mod": "ArkPrime" @@ -719,6 +808,7 @@ "NameTag": "Purlovia", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Purlovia_Character_BP_C", "Description": "Purlovia", "Mod": "ArkPrime" @@ -727,6 +817,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "false", + "IsBreedingable": "False", "ClassName": "Purlovia_Character_BP_Polar_C", "Description": "Purlovia (Snow Cave)", "Mod": "ArkPrime" @@ -735,6 +826,7 @@ "NameTag": "Quetz", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Quetz_Character_BP_C", "Description": "Quetzal", "Mod": "ArkPrime" @@ -743,6 +835,7 @@ "NameTag": "Raptor", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Raptor_Character_BP_C", "Description": "Raptor", "Mod": "ArkPrime" @@ -751,6 +844,7 @@ "NameTag": "Rex", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Rex_Character_BP_C", "Description": "Rex", "Mod": "ArkPrime" @@ -759,6 +853,7 @@ "NameTag": "Rhino", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Rhino_Character_BP_C", "Description": "Woolly Rhino", "Mod": "ArkPrime" @@ -767,6 +862,7 @@ "NameTag": "Sabertooth", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Saber_Character_BP_C", "Description": "Sabertooth", "Mod": "ArkPrime" @@ -775,6 +871,7 @@ "NameTag": "Salmon", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Salmon_Character_BP_C", "Description": "Sabertooth Salmon", "Mod": "ArkPrime" @@ -783,6 +880,7 @@ "NameTag": "Sarco", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Sarco_Character_BP_C", "Description": "Sarco", "Mod": "ArkPrime" @@ -791,6 +889,7 @@ "NameTag": "Bronto", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Sauropod_Character_BP_C", "Description": "Bronto", "Mod": "ArkPrime" @@ -799,6 +898,7 @@ "NameTag": "Scorpion", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Scorpion_Character_BP_C", "Description": "Pulmonoscorpius", "Mod": "ArkPrime" @@ -807,6 +907,7 @@ "NameTag": "Sheep", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Sheep_Character_BP_C", "Description": "Ovis (Sheep)", "Mod": "ArkPrime" @@ -815,6 +916,7 @@ "NameTag": "Spider", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "SpiderS_Character_BP_C", "Description": "Araneo", "Mod": "ArkPrime" @@ -823,6 +925,7 @@ "NameTag": "Spino", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Spino_Character_BP_C", "Description": "Spinosaurus", "Mod": "ArkPrime" @@ -831,6 +934,7 @@ "NameTag": "Stag", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Stag_Character_BP_C", "Description": "Megaloceros", "Mod": "ArkPrime" @@ -839,6 +943,7 @@ "NameTag": "Stego", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Stego_Character_BP_C", "Description": "Stego", "Mod": "ArkPrime" @@ -847,6 +952,7 @@ "NameTag": "Tapejara", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Tapejara_Character_BP_C", "Description": "Tapejara", "Mod": "ArkPrime" @@ -855,6 +961,7 @@ "NameTag": "TerrorBird", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "TerrorBird_Character_BP_C", "Description": "Terror Bird", "Mod": "ArkPrime" @@ -863,6 +970,7 @@ "NameTag": "Therizinosaurus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Therizino_Character_BP_C", "Description": "Therizinosaurus", "Mod": "ArkPrime" @@ -871,6 +979,7 @@ "NameTag": "Thylacoleo", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Thylacoleo_Character_BP_C", "Description": "Thylacoleo", "Mod": "ArkPrime" @@ -879,6 +988,7 @@ "NameTag": "Titan", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Titanosaur_Character_BP_C", "Description": "Titanosaur", "Mod": "ArkPrime" @@ -887,6 +997,7 @@ "NameTag": "Toad", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Toad_Character_BP_C", "Description": "Beelzebufo", "Mod": "ArkPrime" @@ -895,6 +1006,7 @@ "NameTag": "Trike", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Trike_Character_BP_C", "Description": "Trike", "Mod": "ArkPrime" @@ -911,6 +1023,7 @@ "NameTag": "Troodon", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Troodon_Character_BP_C", "Description": "Troodon", "Mod": "ArkPrime" @@ -919,6 +1032,7 @@ "NameTag": "Turtle", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Turtle_Character_BP_C", "Description": "Carbonemys", "Mod": "ArkPrime" @@ -927,6 +1041,7 @@ "NameTag": "Tusoteuthis", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Tusoteuthis_Character_BP_C", "Description": "Tusoteuthis", "Mod": "ArkPrime" @@ -935,6 +1050,7 @@ "NameTag": "Yutyrannus", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Yutyrannus_Character_BP_C", "Description": "Yutyrannus", "Mod": "ArkPrime" @@ -943,6 +1059,7 @@ "NameTag": "Rhyniognatha", "IsSpawnable": true, "IsTameable": "true", + "IsBreedingable": "False", "ClassName": "Rhynio_Character_BP_C", "Description": "Rhyniognatha", "Mod": "ArkPrime" @@ -951,6 +1068,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Alpha_Leedsichthys_Character_BP_C", "Description": "Alpha Leedsichthys", "Mod": "ArkPrime" @@ -959,6 +1077,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "Bee_Queen_Character_BP_C", "Description": "Queen Bee", "Mod": "ArkPrime" @@ -967,6 +1086,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "True", "ClassName": "Equus_Character_BP_Unicorn_C", "Description": "Unicorn", "Mod": "ArkPrime" @@ -975,6 +1095,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "FlyingAnt_Character_BP_C", "Description": "Titanomyrma Soldier", "Mod": "ArkPrime" @@ -983,6 +1104,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Leech_Character_Diseased_C", "Description": "Diseased Leech", "Mod": "ArkPrime" @@ -991,6 +1113,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Mega_Tusoteuthis_Character_BP_C", "Description": "Alpha Tusoteuthis", "Mod": "ArkPrime" @@ -999,6 +1122,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Mosa_Character_BP_Mega_C", "Description": "Alpha Mosasaurus", "Mod": "ArkPrime" @@ -1007,6 +1131,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Mosa_Character_BP_Mega_Cave_C", "Description": "Alpha Mosasaurus (Cave)", "Mod": "ArkPrime" @@ -1015,6 +1140,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Yeti_Character_BP_C", "Description": "Yeti", "Mod": "ArkPrime" @@ -1023,6 +1149,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_C", "Description": "Broodmother Lysrix", "Mod": "ArkPrime" @@ -1031,6 +1158,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_Easy_C", "Description": "Broodmother Lysrix (Easy Variant)", "Mod": "ArkPrime" @@ -1039,6 +1167,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_Medium_C", "Description": "Broodmother Lysrix (Medium Variant)", "Mod": "ArkPrime" @@ -1047,6 +1176,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_Hard_C", "Description": "Broodmother Lysrix (Hard Variant)", "Mod": "ArkPrime" @@ -1055,6 +1185,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_C", "Description": "Megapithecus", "Mod": "ArkPrime" @@ -1063,6 +1194,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Easy_C", "Description": "Megapithecus (Easy Variant)", "Mod": "ArkPrime" @@ -1071,6 +1203,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Medium_C", "Description": "Megapithecus (Medium Variant)", "Mod": "ArkPrime" @@ -1079,6 +1212,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Hard_C", "Description": "Megapithecus (Hard Variant)", "Mod": "ArkPrime" @@ -1087,6 +1221,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_C", "Description": "Dragon", "Mod": "ArkPrime" @@ -1095,6 +1230,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Easy_C", "Description": "Dragon (Easy Variant)", "Mod": "ArkPrime" @@ -1103,6 +1239,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Medium_C", "Description": "Dragon (Medium Variant)", "Mod": "ArkPrime" @@ -1111,6 +1248,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Hard_C", "Description": "Dragon (Hard Variant)", "Mod": "ArkPrime" @@ -1119,6 +1257,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndDrone_Character_BP_C", "Description": "Attack Drone", "Mod": "ArkPrime" @@ -1127,6 +1266,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndDrone_Character_BP_Med_C", "Description": "Attack Drone (Medium Variant)", "Mod": "ArkPrime" @@ -1135,6 +1275,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndDrone_Character_BP_Hard_C", "Description": "Attack Drone (Hard Variant)", "Mod": "ArkPrime" @@ -1143,6 +1284,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndTank_Character_BP_C", "Description": "Defense Unit", "Mod": "ArkPrime" @@ -1151,6 +1293,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndTank_Character_BP_Med_C", "Description": "Defense Unit (Medium Variant)", "Mod": "ArkPrime" @@ -1159,6 +1302,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndTank_Character_BP_Hard_C", "Description": "Defense Unit (Hard Variant)", "Mod": "ArkPrime" @@ -1167,6 +1311,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "EndBoss_Character_C", "Description": "Overseer", "Mod": "ArkPrime" @@ -1175,6 +1320,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "EndBoss_Character_Easy_C", "Description": "Overseer (Easy Variant)", "Mod": "ArkPrime" @@ -1183,6 +1329,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "EndBoss_Character_Medium_C", "Description": "Overseer (Medium Variant)", "Mod": "ArkPrime" @@ -1191,6 +1338,7 @@ "NameTag": null, "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "EndBoss_Character_Hard_C", "Description": "Overseer (Hard Variant)", "Mod": "ArkPrime" @@ -1199,6 +1347,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossDragon_Character_BP_C", "Description": "Dragon Guardian", "Mod": "ArkPrime" @@ -1207,6 +1356,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossDragon_Character_BP_Easy_C", "Description": "Dragon Guardian (Easy Variant)", "Mod": "ArkPrime" @@ -1215,6 +1365,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossDragon_Character_BP_Medium_C", "Description": "Dragon Guardian (Medium Variant)", "Mod": "ArkPrime" @@ -1223,6 +1374,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossDragon_Character_BP_Hard_C", "Description": "Dragon Guardian (Hard Variant)", "Mod": "ArkPrime" @@ -1231,6 +1383,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossGorilla_Character_BP_C", "Description": "Megapithecus Guardian", "Mod": "ArkPrime" @@ -1239,6 +1392,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossGorilla_Character_BP_Easy_C", "Description": "Megapithecus Guardian (Easy Variant)", "Mod": "ArkPrime" @@ -1247,6 +1401,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossGorilla_Character_BP_Medium_C", "Description": "Megapithecus Guardian (Medium Variant)", "Mod": "ArkPrime" @@ -1255,6 +1410,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossGorilla_Character_BP_Hard_C", "Description": "Megapithecus Guardian (Hard Variant)", "Mod": "ArkPrime" @@ -1263,6 +1419,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossSpiderL_Character_BP_C", "Description": "Broodmother Guardian", "Mod": "ArkPrime" @@ -1271,6 +1428,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossSpiderL_Character_BP_Easy_C", "Description": "Broodmother Guardian (Easy Variant)", "Mod": "ArkPrime" @@ -1279,6 +1437,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossSpiderL_Character_BP_Medium_C", "Description": "Broodmother Guardian (Medium Variant)", "Mod": "ArkPrime" @@ -1287,6 +1446,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "EndBossSpiderL_Character_BP_Hard_C", "Description": "Broodmother Guardian (Hard Variant)", "Mod": "ArkPrime" @@ -13538,26 +13698,11 @@ "EventName": "WinterWonderland", "Description": "Winter Wonderland" }, - { - "IsSotF": false, - "EventName": "Arkaeology", - "Description": "Arkaeology" - }, - { - "IsSotF": false, - "EventName": "ExtinctionChronicles", - "Description": "Extinction Chronicles" - }, { "IsSotF": false, "EventName": "Summer", "Description": "Summer Bash" }, - { - "IsSotF": false, - "EventName": "ark7th", - "Description": "7th Anniversary" - }, { "IsSotF": false, "EventName": "PAX", diff --git a/src/ARKServerManager/GameData/TheCenter.gamedata b/src/ARKServerManager/GameData/TheCenter.gamedata index 34254f2e..b406200e 100644 --- a/src/ARKServerManager/GameData/TheCenter.gamedata +++ b/src/ARKServerManager/GameData/TheCenter.gamedata @@ -7,6 +7,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_TheCenter_C", "Description": "Broodmother Lysrix (Easy Variant)", "Mod": "TheCenter" @@ -15,6 +16,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_TheCenterMedium_C", "Description": "Broodmother Lysrix (Medium Variant)", "Mod": "TheCenter" @@ -23,6 +25,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_Character_BP_TheCenterHard_C", "Description": "Broodmother Lysrix (Hard Variant)", "Mod": "TheCenter" @@ -31,6 +34,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_TheCenter_C", "Description": "Megapithecus (Easy Variant)", "Mod": "TheCenter" @@ -39,6 +43,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_TheCenter_Medium_C", "Description": "Megapithecus (Medium Variant)", "Mod": "TheCenter" @@ -47,6 +52,7 @@ "NameTag": null, "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_TheCenter_Hard_C", "Description": "Megapithecus (Hard Variant)", "Mod": "TheCenter" diff --git a/src/ARKServerManager/GameData/Valguero.gamedata b/src/ARKServerManager/GameData/Valguero.gamedata index a1eb3e71..4466a0e7 100644 --- a/src/ARKServerManager/GameData/Valguero.gamedata +++ b/src/ARKServerManager/GameData/Valguero.gamedata @@ -7,6 +7,7 @@ "NameTag": "Deinonychus", "IsSpawnable": true, "IsTameable": "ByBreeding", + "IsBreedingable": "True", "ClassName": "Deinonychus_Character_BP_C", "Description": "Deinonychus", "Mod": "Valguero" @@ -15,6 +16,7 @@ "NameTag": "ChalkRockElemental", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "ChalkGolem_Character_BP_C", "Description": "Chalk Golem", "Mod": "Valguero" @@ -23,6 +25,7 @@ "NameTag": "IceRockElemental", "IsSpawnable": true, "IsTameable": "True", + "IsBreedingable": "False", "ClassName": "IceGolem_Character_BP_C", "Description": "Ice Golem", "Mod": "Valguero" @@ -31,6 +34,7 @@ "NameTag": "BroodmotherLysrix", "IsSpawnable": true, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "SpiderL_VAL_Character_BP_C", "Description": "Broodmother Lysrix", "Mod": "Valguero" @@ -39,6 +43,7 @@ "NameTag": "Megapithecus", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Easy_C", "Description": "Megapithecus (Easy Variant)", "Mod": "Valguero" @@ -47,6 +52,7 @@ "NameTag": "Megapithecus", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Medium_C", "Description": "Megapithecus (Medium Variant)", "Mod": "Valguero" @@ -55,6 +61,7 @@ "NameTag": "Megapithecus", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Gorilla_Character_BP_Hard_C", "Description": "Megapithecus (Hard Variant)", "Mod": "Valguero" @@ -63,6 +70,7 @@ "NameTag": "Dragon", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Easy_C", "Description": "Dragon (Easy Variant)", "Mod": "Valguero" @@ -71,6 +79,7 @@ "NameTag": "Dragon", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Medium_C", "Description": "Dragon (Medium Variant)", "Mod": "Valguero" @@ -79,6 +88,7 @@ "NameTag": "Dragon", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Dragon_Character_BP_Boss_Hard_C", "Description": "Dragon (Hard Variant)", "Mod": "Valguero" @@ -87,6 +97,7 @@ "NameTag": "Manticore", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Easy_C", "Description": "Manticore (Easy Variant)", "Mod": "Valguero" @@ -95,6 +106,7 @@ "NameTag": "Manticore", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Medium_C", "Description": "Manticore (Medium Variant)", "Mod": "Valguero" @@ -103,6 +115,7 @@ "NameTag": "Manticore", "IsSpawnable": false, "IsTameable": "False", + "IsBreedingable": "False", "ClassName": "Manticore_Character_BP_Hard_C", "Description": "Manticore (Hard Variant)", "Mod": "Valguero" diff --git a/src/ARKServerManager/Globalization/de-DE/de-DE.xaml b/src/ARKServerManager/Globalization/de-DE/de-DE.xaml index 909df50a..e206ba2d 100644 --- a/src/ARKServerManager/Globalization/de-DE/de-DE.xaml +++ b/src/ARKServerManager/Globalization/de-DE/de-DE.xaml @@ -1413,8 +1413,6 @@ Gibt den Multiplikator für die Beutequalität der Versorgungskiste an. Fischen-Qualitätsmultiplikator Gibt den Multiplikator für die Qualität der Angelbeute an. - Deaktivieren die fleischlose Fischbeute - Wenn aktiviert, wird das Ernten von nicht fleischiger Fischbeute deaktiviert. Anzeigedauer Leichen/Gegenstände Gibt den Multiplikator für die Lebensdauer von Leichen und abgelegten Kisten an. Globale Batterielebensdauer @@ -1616,8 +1614,6 @@ Wenn diese Option aktiviert ist, kann die Bewegungsgeschwindigkeit der Flugtiere angepasst werden. Verhindert Dino Begleiter Bonus Wenn diese Option aktiviert ist, wird der Dino-Paar-Bonus deaktiviert. - Deaktiviere Landung mit Sprengstoff - Wenn aktiviert, wird die Landung des Fliegers deaktiviert, wenn Sprengstoff darauf gelegt wird. Erlaube mehrere C4 Ladungen Wenn aktiviert, können mehr als ein C4 pro Dino geladen werden. Deaktiviere Dino Verfall PvE @@ -1824,8 +1820,6 @@ Aktiviere Strukturzerfall PvE Wenn aktiviert, wird der Zerfall von Spielerstrukturen im PvE aktiviert. - Strukturverfallszeitraum: - Gibt die Zeit an, die Spielerstrukturen benötigen, um im PvE-Modus zu verfallen. Strukturzerfallsmultiplikator: Gibt den Skalierungsfaktor für die Zerfallsrate von Spielerstrukturen im PvE-Modus an. diff --git a/src/ARKServerManager/Globalization/en-US/en-US.xaml b/src/ARKServerManager/Globalization/en-US/en-US.xaml index 0b9d7d4b..f163e684 100644 --- a/src/ARKServerManager/Globalization/en-US/en-US.xaml +++ b/src/ARKServerManager/Globalization/en-US/en-US.xaml @@ -319,6 +319,7 @@ Refresh Backup Files Error Name + Size Created Last Updated @@ -583,6 +584,8 @@ If enabled, the map spawner overrides will be managed by the server manager. Enable Supply Crate Overrides If enabled, the supply crate overrides will be managed by the server manager. + Enable Exclude Item Indices Overrides + If enabled, the exclude item indices overrides will be managed by the server manager. Enable Prevent Transfer Overrides If enabled, the prevent transfer overrides will be managed by the server manager. Enable PGM Ark Settings @@ -591,6 +594,14 @@ If enabled, the SotF settings will be managed by the server manager. WARNING: While any of these options are disabled, the server manager will not read or write the associated overrides settings. Re-enabling any of these options will cause ALL existing associated overrides to be removed from the config file. + Custom Profile Sync Options + Enable Sync for ModIDs + If enabled, on profile sync the ModIDs are still synced. + Enable Sync for ClusterID + If enabled, on profile sync the ClusterID is still synced. + Enable Sync for Auto Shutdown Time + If enabled, on profile sync the Auto Shutdown Time Settings are still synced. + Custom Level Options Player Level Increase: The amount of XP to be increased when adding a new custom level. @@ -914,6 +925,7 @@ If you proceed the entire SteamCMD folder will be removed including all mod cache downloads.\r\nAre you sure you want to reinstall SteamCMD? Reinstall SteamCMD Error An error occured while trying to reinstall SteamCMD. This has left SteamCmd in an unstable state, try reinstalling again or please report this.\r\nException: {0} + Steam WebAPI Key missing! Updates, downloads and installation of profiles could fail. Enter your Steam WebApiKey in the global settings Discord Bot Running Commands The discord bot has one or more running commands, do you want to continue shutting down the server manager? @@ -1194,6 +1206,14 @@ If enabled, the ban list URL specified will be used. The URL of the ban list to use. Reset the ban list properties to defaults. + Use Dynamic Config URL + If enabled, the dynamic config URL specified will be used. + The URL of the dynamic config to use. + Use Custom Live Tuning URL + If enabled, the custom live tuning config URL specified will be used. + Server Language + Overrides the server output language. It doesn't override clients language. + The URL of the custom live tuning config to use. Disable Valve Anti-Cheat System (VAC) If enabled, the Valve anti-cheat system will be disabled. Please use this with caution! Disable Player-Move-Physics Optimization @@ -1233,6 +1253,8 @@ 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. + Structure Stasis Grid + Enables the structure stasis grid to improve server performance on large bases with lots of players. (Please be aware this may have an impact on some mods) Creature Upload Issue Protection Protection against creature upload issue (Please be aware this may have an impact on some mods) Additional Dupe Protection @@ -1414,8 +1436,14 @@ If enabled, will make Supply Crates random. Prevent Building in Resource Rich Areas If enabled, completely disables building in specific resource-rich areas, in particular setup on TheIsland around the major mountains. + Enable Single Player Settings + If enabled, all game settings will be more balanced for an individual player experience. Useful for dedicated server with a very small amount of players. Disable PvP Friendly Fire If enabled, players are unable to deal damage to or kill other tribe members, dinos and structures when PvP mode is enabled. + Enable PVP Cave Building + If enabled, allows building in caves when PvP mode is enabled. + Disable PvP Railgun + If enabled, players are unable to use the Tek Railgun when PvP mode is enabled. Use Corpse Locator If enabled, upon death, a beam of light shoots into the sky to help the player locate where they died. Prevent Spawn Animations @@ -1461,6 +1489,8 @@ Cluster Tribute Options No Transfer from Filtering + Disable Custom Tribute Folders + Disables creation of folders in Tribute inventories. If enabled, the survivor, item and dino transfers are disabled if the server is not in the same cluster. Override Survivor Upload Expiration If enabled, will allow you to override the expiration timer. @@ -1547,8 +1577,6 @@ Specifies the multiplier for the supply crate loot quality. Fishing Loot Quality Multiplier Specifies the multiplier for the fishing loot quality. - Disable Non-Meat Fish Loot - 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 @@ -1585,6 +1613,8 @@ If enabled, will cause world buffs to scale their benefits multiplicatively, rather than add/subtract a flat amount to the value at runtime. World Buff Scaling Efficacy Specifies the global scalar to reduce/increase the effectiveness of world buffs (e.g. 1 is default, 0.5 would be 50% less effective, 2.0 would be 2x more effective). + Mutagen Spawn Delay Multiplier + Scales the Mutagen spawn rates. By default, the game attempts to spawn them every 8 hours on dedicated servers, and every hour on non-dedicated servers and single-player. Rising this value will rise the re-spawn interval, lowering will make it shorter. Hexagons Disable Hexagon Store @@ -1768,10 +1798,10 @@ If enabled, allows the leveling of flyer movement speed. Prevent Dino Mate Boost If enabled, the dino mate boost will be disabled. - Disable Force Ground Flyer with Explosives - If enabled, will disable the grounding of the flyer when explosives are put on them. Allow Multiple Attached C4 If enabled, will allow more than one C4 attached per dino. + Allow Unclaim Dinos + if disabled, prevents players to unclaim tamed creatures. Disable Dino Decay PvE If enabled, disables the gradual decay of dino ownership in PvE; otherwise every dino can be claimed by any player. Disable Dino Decay PvP @@ -1784,10 +1814,14 @@ If enabled, ANYONE will to be able to take care of a Baby Dino (cuddle etc), not just whomever imprinted on it. Auto Destroy Decayed Dinos If enabled, all claimable decayed dinos will auto-destroy on load, rather than have them remain around as Claimable. + Enable Level Up Animation + If disabled, tamed dinos on level-up will not perform the related animation. Disable Dino Riding If enabled, all tamed dinos will be unable to be ridden. Disable Dino Taming If enabled, all wild dinos will be unable to be tamed. + Disable Dino Breeding + if enabled, prevents tames to be bred. Change Flyer Riding If enabled, will allow you to change if flyers can be ridden on the map or not; otherwise will default to use the map settings. Enable Flyer Riding @@ -1812,6 +1846,7 @@ Mod Spawnable Tameable + Breedable Replace With Spawn Weight Override Limit @@ -1953,6 +1988,8 @@ Structures Disable Structure Placement Collision If enabled, will allow players to place structures that clip into terrain. + Remove Decorative Structures Limit + Removes the limit of 150 decorative structures (flags, signs, dermis etc.). Structure Resistance: Specifies the scaling factor for the resistance to damage structures receive when attacked. Higher values decrease resistance, increasing damage per attack. Lower values increase it, reducing damage per attack. Structure Damage: @@ -1978,8 +2015,6 @@ Enable Structure Decay PvE If enabled, enables decay of player structures in PvE. - Structure Decay Period: - Specifies the time required for player structures to decay in PvE mode. Structure Decay Multiplier: Specifies the scaling factor for the decay rate of player structures in PvE mode. @@ -2020,6 +2055,8 @@ Specifies the amount of time of the quick-pickup hold duration, use 0 to disable and have instant pickup. Allow Integrated Structures Plus If enabled, will add all of the new S+ structures; otherwise disables all of the new S+ structures (intended mainly for letting unofficials that want to keep using the S+ mod version to keep using that without a ton of extra duplicate structures). + Disable Building in Special Areas + If enabled, building areas where normally it's not allowed, such around some maps' Obelisks, in the Aberration Portal and in Mission Volumes areas on Genesis: Part 1. Note: in Genesis: Part 1 this settings is enabled by default and there is an ad hoc settings called bGenesisUseStructuresPreventionVolumes to disable it. Disable Building in Mission Areas If enabled, will disable building in mission areas on the Genesis map. @@ -2544,6 +2581,23 @@ Save supply crate + + Exclude ItemIDs From Supply Crate Overrides + Exclude ItemIDs from Supply Crates + Exclude ItemIDs from Supply Crates Overrides Settings + NOTE: If you want to manage your overrides manually or with another application, you can disable the option that will prevent the server manager managing the overrides. See the 'Custom Override Options' in the global settings. + WARNING: Items on this list will be excluded from supply crates. + + ItemID + ItemID Number + + Add ItemID + Delete all ItemIDs + Paste exclude item indices data + Delete ItemID + Save exclude item indices data + + Stack Size Overrides Item Stack Size Multiplier diff --git a/src/ARKServerManager/Globalization/es-ES/es-ES.xaml b/src/ARKServerManager/Globalization/es-ES/es-ES.xaml index d872a443..f0a20b4f 100644 --- a/src/ARKServerManager/Globalization/es-ES/es-ES.xaml +++ b/src/ARKServerManager/Globalization/es-ES/es-ES.xaml @@ -1291,8 +1291,6 @@ Especifica el multiplicador para la calidad del botín de los cristales de suministros. Multiplicador de calidad de botín de pesca Especifica el multiplicador para la calidad del botín de pesca. - Desactivar botín sin pescado - Si es activado, desactiva el botín en cosecha sin pescado. Usar multiplicador de vida útil de cadáver Especifica el multiplicador de vida útil para cadáveres y mochilas desechadas. Durabilidad global de batería con alimentación @@ -1459,8 +1457,6 @@ Si es activado, se recupera energía mientras se está parado en el aire. Prevenir estímulo de dinos compañeros Si es activado, el estímulo de grupo será desactivado. - Desactivar aterrizaje forzado de voladores con explosivos - Si es activado, será desactivado el aterrizaje de los dinos voladores si llevan puestos explosivos en ellos. Permitir múltiples C4 unidos Al activas, se permitirá más de un C4 unido por dino. Desactivar deterioro de dinos en JcE @@ -1663,8 +1659,6 @@ Activar deterioro de estructuras en JcE Si es activado, activa el deterioro de estructuras de jugador en JcE. - Periodo de deterioro de estructura: - Especifica el tiempo requerido para que las estructuras de jugadores inicien el deterioro en modo JcE. Multiplicador de deterioro de estructura: Especifica el factor de escala para el ratio de deterioro de estrucutras de jugador en modo JcE. diff --git a/src/ARKServerManager/Globalization/fr-FR/fr-FR.xaml b/src/ARKServerManager/Globalization/fr-FR/fr-FR.xaml index a7a60306..5eeee5ee 100644 --- a/src/ARKServerManager/Globalization/fr-FR/fr-FR.xaml +++ b/src/ARKServerManager/Globalization/fr-FR/fr-FR.xaml @@ -1512,8 +1512,6 @@ Spécifie le multiplicateur pour la qualité du butin des caisses de butin. Multiplicateur de qualité du butin de pêche Spécifie le multiplicateur pour la qualité du butin de pêche. - Désactiver le butin hors viande des poissons - Si activé, désactive la récolte du butin de poisson non-viande. Multiplicateur avant décomposition du cadavre Spécifie le multiplicateur avant décomposition du cadavre et la perte de l'inventaire. Durabilité de la batterie global @@ -1731,8 +1729,6 @@ Si activé, permet le nivau de la vitesse de déplacement des créatures volantes. Empêchez le bonus de couple Si cette option est activée, le le bonus de couple dino sera désactivé. - Désactiver l'entrave au sol des dinos volants avec explosifs - Si activé, désactivera le bloquage des dinos volants au sol lorsque des explosifs sont placés dessus. Autoriser plusieurs C4 attachés Si activé, permettra plus d'un C4 attaché par dino. Désactiver la désintégration Dino PvE @@ -1939,8 +1935,6 @@ Activer la dégradation des structures PvE Si activé, permet la dégradation des structures de joueurs en PvE. - Période de décroissance de la structure: - Spécifie le temps nécessaire pour que les structures du joueur se désintègrent en mode PvE. Multiplicateur de dégradation des structure: Spécifie le facteur d'échelle pour le taux de décompostion des structures de joueur en mode PvE. diff --git a/src/ARKServerManager/Globalization/pt-BR/pt-BR.xaml b/src/ARKServerManager/Globalization/pt-BR/pt-BR.xaml index 585a9bee..e07e9a96 100644 --- a/src/ARKServerManager/Globalization/pt-BR/pt-BR.xaml +++ b/src/ARKServerManager/Globalization/pt-BR/pt-BR.xaml @@ -1545,8 +1545,6 @@ Especifica o multiplicador na qualidade do supply crate loot. Multiplicador de Qualidade na Pesca de Loot Especifica o multiplicador na qualidade de pesca de loot. - Desativar pilhagem de peixe não-carne - Se ativado, desativa a coleta de pilhagem de peixe não-carne. Usa o multiplicador de vida útil nos cadáveres Especifica o multiplicador para o tempo de vida dos cadáver e da caixa de depósito. Tempo de Recarga no Inventário Fjordhawk @@ -1766,8 +1764,6 @@ Se habilitado, permite upar velocidade de movimento do flyer. Desativar Bônus de companheiro Se ativado, Os dinos não receberão o bônus do companheiro, o mesmo não receberá o bônus de 33% de dano de resistência - Desativar força de Explosivos em voadores. - Se ativado, desativará o aterramento dos voadores no chão, quando explosivos forem colocados sobre eles. Permitir Múltiplos C4 Anexados Se habilitado, permitirá mais de um C4 anexado por dino. Desativar decaimento de Dino PvE @@ -1976,8 +1972,6 @@ Ativar Decay de Estrutura PvE Se habilitado, habilita o decaimento das estruturas do jogador em PvE. - Período de decaimento da estrutura: - Especifica o tempo necessário para as estruturas do player decaírem no modo PvE. Multiplicador de Decaimento da Estrutura: Especifica o fator de escala para a taxa de decaimento das estruturas do player no modo PvE. diff --git a/src/ARKServerManager/Globalization/ru-RU/ru-RU.xaml b/src/ARKServerManager/Globalization/ru-RU/ru-RU.xaml index e16aa6f3..dc56fa2d 100644 --- a/src/ARKServerManager/Globalization/ru-RU/ru-RU.xaml +++ b/src/ARKServerManager/Globalization/ru-RU/ru-RU.xaml @@ -1519,8 +1519,6 @@ Множитель для качества добычи в лучах/ящиках (значения от 1 до 5) Качества добычи при рыбалке Множитель для качества добычи с рыбалки (значения от 1 до 5) - Откл. добычу предметов при рыбалке - Если включено, то это отключает добычу предметов (кроме мяса) во время рыбалки. Множитель удаления трупа и дропа Множитель времени до удаления трупов и выброшенных предметов Долговечность заряда батареи @@ -1738,8 +1736,6 @@ Если включено, то позволяет прокачивать скорость полёта. Запретить бонус разнополости Если включено, то бонус разнополости (Dino Mate Boost) будет отключен. - Выкл приземление летающих дино с C4 - Если включено, то отключит приземление летающих динозавров, если на них есть C4. Разрешить множественное присоединение C4 Если включено, то разрешено прикреплять более одного C4 на каждого динозавра. Выкл потерю прав на дино в PvE @@ -1946,8 +1942,6 @@ Вкл. разрушение структур в PvE Если этот параметр включен, структуры в PvE будут автоматически разрушаться если они не использовались какое то время. - Время до разрушения структур: - Определяет время, необходимое для автоматического разрушения структур игрока в режиме PvE. Множитель время разрушения структур: Определяет множитель для автоматического разрушения структур игрока в режиме PvE. diff --git a/src/ARKServerManager/Globalization/tr-TR/tr-TR.xaml b/src/ARKServerManager/Globalization/tr-TR/tr-TR.xaml index 039a4a9e..17147f05 100644 --- a/src/ARKServerManager/Globalization/tr-TR/tr-TR.xaml +++ b/src/ARKServerManager/Globalization/tr-TR/tr-TR.xaml @@ -1512,8 +1512,6 @@ Tedarik sandığı yağma kalitesi için çarpanı belirtir. Balık Tutma Ganimet Kalite Çarpanı Balıkçılık ganimet kalitesi için çarpanı belirtir. - Et Olmayan Balık Yağmasını Devre Dışı Bırak - Etkinleştirilirse, et olmayan balık ganimeti toplamayı devre dışı bırakır. Ceset Ömrü Çarpanı Kullan Ceset ve bırakılan kutu ömrü için çarpanı belirtir. Küresel Güçle Çalışan Pil Dayanıklılığı @@ -1731,8 +1729,6 @@ Etkinleştirilirse, el ilanı hareket hızının dengelenmesine izin verir. Dino Mate Boost'u Önleyin Etkinleştirilirse, dino mate güçlendirme devre dışı bırakılır. - Disable Force Ground Flyer with Explosives - Etkinleştirilirse, üzerlerine patlayıcı yerleştirildiğinde el ilanının topraklanmasını devre dışı bırakır. Birden Çok Ekli C4'e İzin Ver Etkinleştirilirse, dino başına birden fazla C4 eklenmesine izin verir. Dino Decay PvE'yi Devre Dışı Bırak @@ -1939,8 +1935,6 @@ Yapı Bozulmasını Etkinleştir PvE Etkinleştirilirse, PvE'deki oyuncu yapılarının bozulmasını etkinleştirir. - Yapı Bozulma Dönemi: - Oyuncu yapılarının PvE modunda çürümesi için gereken süreyi belirtir. Yapı Bozulması Çarpanı: PvE modunda oyuncu yapılarının bozulma oranı için ölçeklendirme faktörünü belirtir. diff --git a/src/ARKServerManager/Globalization/zh-CN/zh-CN.xaml b/src/ARKServerManager/Globalization/zh-CN/zh-CN.xaml index 7349d377..1a723431 100644 --- a/src/ARKServerManager/Globalization/zh-CN/zh-CN.xaml +++ b/src/ARKServerManager/Globalization/zh-CN/zh-CN.xaml @@ -1533,8 +1533,6 @@ 指定补给箱和宝箱的质量倍数。 钓鱼质量倍数 指定钓鱼获取物品质量的倍数。 - 禁用钓鱼奖励 - 如果启用,钓鱼将不会在获得任何装备和图纸奖励,只有鱼肉。 使用尸体和包裹时间倍数 调整尸体和掉落包裹的存在时间倍数。 维京岛冷却时间(取回背包) @@ -1754,8 +1752,6 @@ 如果启用,允许飞行龙加点. 防止恐龙交配 如果启用,恐龙交配将被禁用。 - 禁用带爆炸物的飞行物强制地面 - 如果启用,当飞行生物上装有炸药时,会使飞行生物的接地失效。(除风神翼龙和双足飞龙以外的飞行单位现被贴上C4后将无法飞行)。 允许恐龙贴多个C4 如果启用,将允许每个恐龙贴多个C4。 禁用PVE恐龙自动放生 @@ -1966,8 +1962,6 @@ 启用PVE建筑过期倒计时 如果启用,使得在PVE玩家建筑过期倒计时。 - 建筑过期时间: - 设置玩家建筑在PvE模式下过期所需的时间。(系统启用一个建筑过期倒计时,计时结束任何玩家可以拆除建筑。) 建筑过期倍数: 设置PvE模式下玩家建筑过期的倍数。(高值增加时间,较低的值减少。) diff --git a/src/ARKServerManager/Lib/GameData.cs b/src/ARKServerManager/Lib/GameData.cs index 252bcb08..ebed5669 100644 --- a/src/ARKServerManager/Lib/GameData.cs +++ b/src/ARKServerManager/Lib/GameData.cs @@ -210,6 +210,8 @@ namespace ServerManagerTool.Lib public static DinoTamable IsTameableForClass(string className) => gameData?.Creatures?.FirstOrDefault(c => c.ClassName.Equals(className))?.IsTameable ?? DinoTamable.True; + public static DinoBreedingable IsBreedingableForClass(string className) => gameData?.Creatures?.FirstOrDefault(c => c.ClassName.Equals(className))?.IsBreedingable ?? DinoBreedingable.True; + public static string NameTagForClass(string className, bool returnEmptyIfNotFound = false) => gameData?.Creatures?.FirstOrDefault(c => c.ClassName.Equals(className))?.NameTag ?? (returnEmptyIfNotFound ? string.Empty : className); public static string FriendlyCreatureNameForClass(string className, bool returnEmptyIfNotFound = false) => string.IsNullOrWhiteSpace(className) ? string.Empty : GlobalizedApplication.Instance.GetResourceString(className) ?? gameData?.Creatures?.FirstOrDefault(i => i.ClassName.Equals(className))?.Description ?? (returnEmptyIfNotFound ? string.Empty : className); diff --git a/src/ARKServerManager/Lib/Model/ExcludeItemIndicesOverrideList.cs b/src/ARKServerManager/Lib/Model/ExcludeItemIndicesOverrideList.cs new file mode 100644 index 00000000..05a7f2b7 --- /dev/null +++ b/src/ARKServerManager/Lib/Model/ExcludeItemIndicesOverrideList.cs @@ -0,0 +1,105 @@ +using ServerManagerTool.Common.Attibutes; +using ServerManagerTool.Common.Model; +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Windows; + +namespace ServerManagerTool.Lib +{ + [DataContract] + public class ExcludeItemIndicesOverrideList : AggregateIniValueList + { + public ExcludeItemIndicesOverrideList(string aggregateValueName) + : base(aggregateValueName, null) + { + } + + public IEnumerable RenderToView() + { + Update(); + + return new List(); + } + + public void RenderToModel() + { + } + + public void Update() + { + IsEnabled = this.Count > 0; + + foreach (var excludeItemIndices in this) + excludeItemIndices.Update(); + } + } + + [DataContract] + public class ExcludeItemIndicesOverride : AggregateIniValue + { + public static readonly DependencyProperty ItemIdProperty = DependencyProperty.Register(nameof(ItemId), typeof(Int64), typeof(ExcludeItemIndicesOverride), new PropertyMetadata(0L)); + [DataMember] + [AggregateIniValueEntry(QuotedString = false, ExcludePropertyName = true)] + public Int64 ItemId + { + get { return (Int64)GetValue(ItemIdProperty); } + set { SetValue(ItemIdProperty, value); } + } + + public override string GetSortKey() + { + return null; + } + + public override bool IsEquivalent(AggregateIniValue other) + { + return false; + } + + public override void InitializeFromINIValue(string value) + { + if (string.IsNullOrWhiteSpace(value)) + { + Update(); + return; + } + + var kvPair = value.Split(new[] { '=' }, 2); + Int64.TryParse(kvPair[1].Trim(' '), out Int64 kvValue); + + if (kvValue <= 0) + { + Update(); + return; + } + + ItemId = kvValue; + } + + public override string ToINIValue() + { + return base.ToComplexINIValue(false); + } + + public bool IsValid => (ItemId > 0); + + public override bool ShouldSave() + { + return IsValid; + } + + public static readonly DependencyProperty ValidStatusProperty = DependencyProperty.Register(nameof(ValidStatus), typeof(string), typeof(ExcludeItemIndicesOverride), new PropertyMetadata("N")); + + public string ValidStatus + { + get { return (string)GetValue(ValidStatusProperty); } + set { SetValue(ValidStatusProperty, value); } + } + + public void Update() + { + ValidStatus = IsValid ? "Y" : "W"; + } + } +} diff --git a/src/ARKServerManager/Lib/ServerProfile.cs b/src/ARKServerManager/Lib/ServerProfile.cs index 5f6b54c1..ce4821bd 100644 --- a/src/ARKServerManager/Lib/ServerProfile.cs +++ b/src/ARKServerManager/Lib/ServerProfile.cs @@ -70,12 +70,13 @@ namespace ServerManagerTool.Lib // initialise the complex properties this.DinoSpawnWeightMultipliers = new AggregateIniValueList(nameof(DinoSpawnWeightMultipliers), GameData.GetDinoSpawns); this.PreventDinoTameClassNames = new StringIniValueList(nameof(PreventDinoTameClassNames), () => new string[0] ); + this.PreventBreedingForClassNames = new StringIniValueList(nameof(PreventBreedingForClassNames), () => new string[0]); this.NPCReplacements = new AggregateIniValueList(nameof(NPCReplacements), GameData.GetNPCReplacements); this.TamedDinoClassDamageMultipliers = new AggregateIniValueList(nameof(TamedDinoClassDamageMultipliers), GameData.GetDinoMultipliers); this.TamedDinoClassResistanceMultipliers = new AggregateIniValueList(nameof(TamedDinoClassResistanceMultipliers), GameData.GetDinoMultipliers); this.DinoClassDamageMultipliers = new AggregateIniValueList(nameof(DinoClassDamageMultipliers), GameData.GetDinoMultipliers); this.DinoClassResistanceMultipliers = new AggregateIniValueList(nameof(DinoClassResistanceMultipliers), GameData.GetDinoMultipliers); - this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); + this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.PreventBreedingForClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); this.DinoLevels = new LevelList(); this.PlayerLevels = new LevelList(); @@ -97,6 +98,7 @@ namespace ServerManagerTool.Lib this.ConfigOverrideItemCraftingCosts = new CraftingOverrideList(nameof(ConfigOverrideItemCraftingCosts)); this.ConfigOverrideItemMaxQuantity = new StackSizeOverrideList(nameof(ConfigOverrideItemMaxQuantity)); this.ConfigOverrideSupplyCrateItems = new SupplyCrateOverrideList(nameof(ConfigOverrideSupplyCrateItems)); + this.ExcludeItemIndices = new ExcludeItemIndicesOverrideList(nameof(ExcludeItemIndices)); this.PreventTransferForClassNames = new PreventTransferOverrideList(nameof(PreventTransferForClassNames)); this.ConfigAddNPCSpawnEntriesContainer = new NPCSpawnContainerList(nameof(ConfigAddNPCSpawnEntriesContainer), NPCSpawnContainerType.Add); @@ -315,6 +317,38 @@ namespace ServerManagerTool.Lib set { SetValue(BanListURLProperty, value); } } + public static readonly DependencyProperty EnableCustomDynamicConfigUrlProperty = DependencyProperty.Register(nameof(EnableCustomDynamicConfigUrl), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool EnableCustomDynamicConfigUrl + { + get { return (bool)GetValue(EnableCustomDynamicConfigUrlProperty); } + set { SetValue(EnableCustomDynamicConfigUrlProperty, value); } + } + + public static readonly DependencyProperty CustomDynamicConfigUrlProperty = DependencyProperty.Register(nameof(CustomDynamicConfigUrl), typeof(string), typeof(ServerProfile), new PropertyMetadata("")); + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Administration, ConditionedOn = nameof(EnableCustomDynamicConfigUrl), QuotedString = QuotedStringType.True)] + public string CustomDynamicConfigUrl + { + get { return (string)GetValue(CustomDynamicConfigUrlProperty); } + set { SetValue(CustomDynamicConfigUrlProperty, value); } + } + + public static readonly DependencyProperty EnableCustomLiveTuningUrlProperty = DependencyProperty.Register(nameof(EnableCustomLiveTuningUrl), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool EnableCustomLiveTuningUrl + { + get { return (bool)GetValue(EnableCustomLiveTuningUrlProperty); } + set { SetValue(EnableCustomLiveTuningUrlProperty, value); } + } + + public static readonly DependencyProperty CustomLiveTuningUrlProperty = DependencyProperty.Register(nameof(CustomLiveTuningUrl), typeof(string), typeof(ServerProfile), new PropertyMetadata("")); + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Administration, ConditionedOn = nameof(EnableCustomLiveTuningUrl), QuotedString = QuotedStringType.True)] + public string CustomLiveTuningUrl + { + get { return (string)GetValue(CustomLiveTuningUrlProperty); } + set { SetValue(CustomLiveTuningUrlProperty, value); } + } + public static readonly DependencyProperty MaxPlayersProperty = DependencyProperty.Register(nameof(MaxPlayers), typeof(int), typeof(ServerProfile), new PropertyMetadata(70)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_GameSession, ServerProfileCategory.Administration)] public int MaxPlayers @@ -573,7 +607,7 @@ namespace ServerManagerTool.Lib set { SetValue(NotifyAdminCommandsInChatProperty, value); } } - public static readonly DependencyProperty MaxTribeLogsProperty = DependencyProperty.Register(nameof(MaxTribeLogs), typeof(int), typeof(ServerProfile), new PropertyMetadata(100)); + public static readonly DependencyProperty MaxTribeLogsProperty = DependencyProperty.Register(nameof(MaxTribeLogs), typeof(int), typeof(ServerProfile), new PropertyMetadata(400)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Administration)] public int MaxTribeLogs { @@ -669,6 +703,14 @@ namespace ServerManagerTool.Lib set { SetValue(StructureMemoryOptimizationsProperty, value); } } + public static readonly DependencyProperty UseStructureStasisGridProperty = DependencyProperty.Register(nameof(UseStructureStasisGrid), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool UseStructureStasisGrid + { + get { return (bool)GetValue(UseStructureStasisGridProperty); } + set { SetValue(UseStructureStasisGridProperty, value); } + } + public static readonly DependencyProperty NoUnderMeshCheckingProperty = DependencyProperty.Register(nameof(NoUnderMeshChecking), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [DataMember] public bool NoUnderMeshChecking @@ -1115,6 +1157,14 @@ namespace ServerManagerTool.Lib #endregion #region Server Details + public static readonly DependencyProperty CultureProperty = DependencyProperty.Register(nameof(Culture), typeof(string), typeof(ServerProfile), new PropertyMetadata(String.Empty)); + [DataMember] + public string Culture + { + get { return (string)GetValue(CultureProperty); } + set { SetValue(CultureProperty, value); } + } + public static readonly DependencyProperty BranchNameProperty = DependencyProperty.Register(nameof(BranchName), typeof(string), typeof(ServerProfile), new PropertyMetadata(String.Empty)); [DataMember] public string BranchName @@ -1197,6 +1247,22 @@ namespace ServerManagerTool.Lib set { SetValue(DisableFriendlyFirePvEProperty, value); } } + public static readonly DependencyProperty AllowCaveBuildingPvPProperty = DependencyProperty.Register(nameof(AllowCaveBuildingPvP), typeof(bool), typeof(ServerProfile), new PropertyMetadata(true)); + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules, "AllowCaveBuildingPvP")] + public bool AllowCaveBuildingPvP + { + get { return (bool)GetValue(AllowCaveBuildingPvPProperty); } + set { SetValue(AllowCaveBuildingPvPProperty, value); } + } + + public static readonly DependencyProperty DisableRailgunPVPProperty = DependencyProperty.Register(nameof(DisableRailgunPVP), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool DisableRailgunPVP + { + get { return (bool)GetValue(DisableRailgunPVPProperty); } + set { SetValue(DisableRailgunPVPProperty, value); } + } + public static readonly DependencyProperty DisableLootCratesProperty = DependencyProperty.Register(nameof(DisableLootCrates), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules, "bDisableLootCrates")] public bool DisableLootCrates @@ -1221,6 +1287,14 @@ namespace ServerManagerTool.Lib set { SetValue(EnableExtraStructurePreventionVolumesProperty, value); } } + public static readonly DependencyProperty UseSingleplayerSettingsProperty = DependencyProperty.Register(nameof(UseSingleplayerSettings), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules, "bUseSingleplayerSettings", ConditionedOn = nameof(UseSingleplayerSettings))] + public bool UseSingleplayerSettings + { + get { return (bool)GetValue(UseSingleplayerSettingsProperty); } + set { SetValue(UseSingleplayerSettingsProperty, value); } + } + public static readonly DependencyProperty EnableDifficultyOverrideProperty = DependencyProperty.Register(nameof(EnableDifficultyOverride), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); public bool EnableDifficultyOverride { @@ -1309,7 +1383,7 @@ namespace ServerManagerTool.Lib set { SetValue(PreventUploadDinosProperty, value); } } - public static readonly DependencyProperty MaxTributeDinosProperty = DependencyProperty.Register(nameof(MaxTributeDinos), typeof(NullableValue), typeof(ServerProfile), new PropertyMetadata(new NullableValue(false, 50))); + public static readonly DependencyProperty MaxTributeDinosProperty = DependencyProperty.Register(nameof(MaxTributeDinos), typeof(NullableValue), typeof(ServerProfile), new PropertyMetadata(new NullableValue(false, 20))); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules)] public NullableValue MaxTributeDinos { @@ -1333,6 +1407,14 @@ namespace ServerManagerTool.Lib set { SetValue(NoTransferFromFilteringProperty, value); } } + public static readonly DependencyProperty DisableCustomFoldersInTributeInventoriesProperty = DependencyProperty.Register(nameof(DisableCustomFoldersInTributeInventories), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [DataMember] + public bool DisableCustomFoldersInTributeInventories + { + get { return (bool)GetValue(DisableCustomFoldersInTributeInventoriesProperty); } + set { SetValue(DisableCustomFoldersInTributeInventoriesProperty, value); } + } + public static readonly DependencyProperty OverrideTributeCharacterExpirationSecondsProperty = DependencyProperty.Register(nameof(OverrideTributeCharacterExpirationSeconds), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [DataMember] public bool OverrideTributeCharacterExpirationSeconds @@ -1740,14 +1822,6 @@ namespace ServerManagerTool.Lib set { SetValue(FishingLootQualityMultiplierProperty, value); } } - public static readonly DependencyProperty EnableNoFishLootProperty = DependencyProperty.Register(nameof(EnableNoFishLoot), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); - [DataMember] - public bool EnableNoFishLoot - { - get { return (bool)GetValue(EnableNoFishLootProperty); } - set { SetValue(EnableNoFishLootProperty, value); } - } - public static readonly DependencyProperty UseCorpseLifeSpanMultiplierProperty = DependencyProperty.Register(nameof(UseCorpseLifeSpanMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(1.0f)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules, WriteIfNotValue = 1.0f)] public float UseCorpseLifeSpanMultiplier @@ -1756,7 +1830,7 @@ namespace ServerManagerTool.Lib set { SetValue(UseCorpseLifeSpanMultiplierProperty, value); } } - public static readonly DependencyProperty GlobalPoweredBatteryDurabilityDecreasePerSecondProperty = DependencyProperty.Register(nameof(GlobalPoweredBatteryDurabilityDecreasePerSecond), typeof(float), typeof(ServerProfile), new PropertyMetadata(4.0f)); + public static readonly DependencyProperty GlobalPoweredBatteryDurabilityDecreasePerSecondProperty = DependencyProperty.Register(nameof(GlobalPoweredBatteryDurabilityDecreasePerSecond), typeof(float), typeof(ServerProfile), new PropertyMetadata(3.0f)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules, WriteIfNotValue = 4.0f)] public float GlobalPoweredBatteryDurabilityDecreasePerSecond { @@ -1765,7 +1839,7 @@ namespace ServerManagerTool.Lib } public static readonly DependencyProperty RandomSupplyCratePointsProperty = DependencyProperty.Register(nameof(RandomSupplyCratePoints), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); - [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules)] + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules)] public bool RandomSupplyCratePoints { get { return (bool)GetValue(RandomSupplyCratePointsProperty); } @@ -1876,6 +1950,14 @@ namespace ServerManagerTool.Lib set { SetValue(WorldBuffScalingEfficacyProperty, value); } } + public static readonly DependencyProperty AdjustableMutagenSpawnDelayMultiplierProperty = DependencyProperty.Register(nameof(AdjustableMutagenSpawnDelayMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(1.0f)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Rules)] + public float AdjustableMutagenSpawnDelayMultiplier + { + get { return (float)GetValue(AdjustableMutagenSpawnDelayMultiplierProperty); } + set { SetValue(AdjustableMutagenSpawnDelayMultiplierProperty, value); } + } + public static readonly DependencyProperty EnableCryoSicknessPVEProperty = DependencyProperty.Register(nameof(EnableCryoSicknessPVE), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules)] public bool EnableCryoSicknessPVE @@ -1884,7 +1966,7 @@ namespace ServerManagerTool.Lib set { SetValue(EnableCryoSicknessPVEProperty, value); } } - public static readonly DependencyProperty MaxHexagonsPerCharacterProperty = DependencyProperty.Register(nameof(MaxHexagonsPerCharacter), typeof(int), typeof(ServerProfile), new PropertyMetadata(2500000)); + public static readonly DependencyProperty MaxHexagonsPerCharacterProperty = DependencyProperty.Register(nameof(MaxHexagonsPerCharacter), typeof(int), typeof(ServerProfile), new PropertyMetadata(2000000000)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Rules)] public int MaxHexagonsPerCharacter { @@ -2093,7 +2175,7 @@ namespace ServerManagerTool.Lib } public static readonly DependencyProperty EnablePlayerJoinedNotificationsProperty = DependencyProperty.Register(nameof(EnablePlayerJoinedNotifications), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); - [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.ChatAndNotifications, "alwaysNotifyPlayerJoined")] + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.ChatAndNotifications, "DontAlwaysNotifyPlayerJoined")] public bool EnablePlayerJoinedNotifications { get { return (bool)GetValue(EnablePlayerJoinedNotificationsProperty); } @@ -2332,7 +2414,7 @@ namespace ServerManagerTool.Lib set { SetValue(DinoCharacterHealthRecoveryMultiplierProperty, value); } } - public static readonly DependencyProperty DinoHarvestingDamageMultiplierProperty = DependencyProperty.Register(nameof(DinoHarvestingDamageMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(3.0f)); + public static readonly DependencyProperty DinoHarvestingDamageMultiplierProperty = DependencyProperty.Register(nameof(DinoHarvestingDamageMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(3.2f)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos, WriteIfNotValue = 3.0f)] public float DinoHarvestingDamageMultiplier { @@ -2420,6 +2502,14 @@ namespace ServerManagerTool.Lib set { SetValue(AutoDestroyDecayedDinosProperty, value); } } + public static readonly DependencyProperty UseDinoLevelUpAnimationsProperty = DependencyProperty.Register(nameof(UseDinoLevelUpAnimations), typeof(bool), typeof(ServerProfile), new PropertyMetadata(true)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos, "bUseDinoLevelUpAnimations")] + public bool UseDinoLevelUpAnimations + { + get { return (bool)GetValue(UseDinoLevelUpAnimationsProperty); } + set { SetValue(UseDinoLevelUpAnimationsProperty, value); } + } + public static readonly DependencyProperty PvEDinoDecayPeriodMultiplierProperty = DependencyProperty.Register(nameof(PvEDinoDecayPeriodMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(1.0f)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Dinos, WriteIfNotValue = 1.0f)] public float PvEDinoDecayPeriodMultiplier @@ -2428,14 +2518,6 @@ namespace ServerManagerTool.Lib set { SetValue(PvEDinoDecayPeriodMultiplierProperty, value); } } - public static readonly DependencyProperty ForceFlyerExplosivesProperty = DependencyProperty.Register(nameof(ForceFlyerExplosives), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); - [DataMember] - public bool ForceFlyerExplosives - { - get { return (bool)GetValue(ForceFlyerExplosivesProperty); } - set { SetValue(ForceFlyerExplosivesProperty, value); } - } - public static readonly DependencyProperty AllowMultipleAttachedC4Property = DependencyProperty.Register(nameof(AllowMultipleAttachedC4), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Dinos, ConditionedOn = nameof(AllowMultipleAttachedC4))] public bool AllowMultipleAttachedC4 @@ -2444,6 +2526,14 @@ namespace ServerManagerTool.Lib set { SetValue(AllowMultipleAttachedC4Property, value); } } + public static readonly DependencyProperty AllowUnclaimDinosProperty = DependencyProperty.Register(nameof(AllowUnclaimDinos), typeof(bool), typeof(ServerProfile), new PropertyMetadata(true)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos, "bAllowUnclaimDinos")] + public bool AllowUnclaimDinos + { + get { return (bool)GetValue(AllowUnclaimDinosProperty); } + set { SetValue(AllowUnclaimDinosProperty, value); } + } + public static readonly DependencyProperty DisableDinoRidingProperty = DependencyProperty.Register(nameof(DisableDinoRiding), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos, "bDisableDinoRiding", ConditionedOn = nameof(DisableDinoRiding))] public bool DisableDinoRiding @@ -2460,7 +2550,15 @@ namespace ServerManagerTool.Lib set { SetValue(DisableDinoTamingProperty, value); } } - public static readonly DependencyProperty MaxTamedDinosProperty = DependencyProperty.Register(nameof(MaxTamedDinos), typeof(int), typeof(ServerProfile), new PropertyMetadata(4000)); + public static readonly DependencyProperty DisableDinoBreedingProperty = DependencyProperty.Register(nameof(DisableDinoBreeding), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos, "bDisableDinoBreeding", ConditionedOn = nameof(DisableDinoBreeding))] + public bool DisableDinoBreeding + { + get { return (bool)GetValue(DisableDinoBreedingProperty); } + set { SetValue(DisableDinoBreedingProperty, value); } + } + + public static readonly DependencyProperty MaxTamedDinosProperty = DependencyProperty.Register(nameof(MaxTamedDinos), typeof(int), typeof(ServerProfile), new PropertyMetadata(5000)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Dinos)] public int MaxTamedDinos { @@ -2755,6 +2853,14 @@ namespace ServerManagerTool.Lib set { SetValue(PreventDinoTameClassNamesProperty, value); } } + public static readonly DependencyProperty PreventBreedingForClassNamesProperty = DependencyProperty.Register(nameof(PreventBreedingForClassNames), typeof(StringIniValueList), typeof(ServerProfile), new PropertyMetadata(null)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)] + public StringIniValueList PreventBreedingForClassNames + { + get { return (StringIniValueList)GetValue(PreventBreedingForClassNamesProperty); } + set { SetValue(PreventBreedingForClassNamesProperty, value); } + } + public static readonly DependencyProperty DinoSettingsProperty = DependencyProperty.Register(nameof(DinoSettings), typeof(DinoSettingsList), typeof(ServerProfile), new PropertyMetadata(null)); public DinoSettingsList DinoSettings { @@ -3094,14 +3200,6 @@ namespace ServerManagerTool.Lib set { SetValue(EnableStructureDecayPvEProperty, value); } } - public static readonly DependencyProperty PvEStructureDecayDestructionPeriodProperty = DependencyProperty.Register(nameof(PvEStructureDecayDestructionPeriod), typeof(float), typeof(ServerProfile), new PropertyMetadata(0f)); - [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Structures, ConditionedOn = nameof(EnableStructureDecayPvE))] - public float PvEStructureDecayDestructionPeriod - { - get { return (float)GetValue(PvEStructureDecayDestructionPeriodProperty); } - set { SetValue(PvEStructureDecayDestructionPeriodProperty, value); } - } - public static readonly DependencyProperty PvEStructureDecayPeriodMultiplierProperty = DependencyProperty.Register(nameof(PvEStructureDecayPeriodMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(1.0f)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Structures, ConditionedOn = nameof(EnableStructureDecayPvE))] public float PvEStructureDecayPeriodMultiplier @@ -3182,6 +3280,14 @@ namespace ServerManagerTool.Lib set { SetValue(DisableStructurePlacementCollisionProperty, value); } } + public static readonly DependencyProperty IgnoreLimitMaxStructuresInRangeTypeFlagProperty = DependencyProperty.Register(nameof(IgnoreLimitMaxStructuresInRangeTypeFlag), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.Structures)] + public bool IgnoreLimitMaxStructuresInRangeTypeFlag + { + get { return (bool)GetValue(IgnoreLimitMaxStructuresInRangeTypeFlagProperty); } + set { SetValue(IgnoreLimitMaxStructuresInRangeTypeFlagProperty, value); } + } + public static readonly DependencyProperty EnableFastDecayIntervalProperty = DependencyProperty.Register(nameof(EnableFastDecayInterval), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); public bool EnableFastDecayInterval { @@ -3261,6 +3367,14 @@ namespace ServerManagerTool.Lib set { SetValue(AllowIntegratedSPlusStructuresProperty, value); } } + public static readonly DependencyProperty IgnoreStructuresPreventionVolumesProperty = DependencyProperty.Register(nameof(IgnoreStructuresPreventionVolumes), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Structures, "bIgnoreStructuresPreventionVolumes")] + public bool IgnoreStructuresPreventionVolumes + { + get { return (bool)GetValue(IgnoreStructuresPreventionVolumesProperty); } + set { SetValue(IgnoreStructuresPreventionVolumesProperty, value); } + } + public static readonly DependencyProperty GenesisUseStructuresPreventionVolumesProperty = DependencyProperty.Register(nameof(GenesisUseStructuresPreventionVolumes), typeof(bool), typeof(ServerProfile), new PropertyMetadata(false)); [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Structures, "bGenesisUseStructuresPreventionVolumes")] public bool GenesisUseStructuresPreventionVolumes @@ -3496,6 +3610,16 @@ namespace ServerManagerTool.Lib } #endregion + #region Exclude Item Indices Overrides + public static readonly DependencyProperty ExcludeItemIndicesProperty = DependencyProperty.Register(nameof(ExcludeItemIndices), typeof(ExcludeItemIndicesOverrideList), typeof(ServerProfile), new PropertyMetadata(null)); + [IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.ExcludeItemIndicesOverrides)] + public ExcludeItemIndicesOverrideList ExcludeItemIndices + { + get { return (ExcludeItemIndicesOverrideList)GetValue(ExcludeItemIndicesProperty); } + set { SetValue(ExcludeItemIndicesProperty, value); } + } + #endregion + #region Stacking Overrides public static readonly DependencyProperty ItemStackSizeMultiplierProperty = DependencyProperty.Register(nameof(ItemStackSizeMultiplier), typeof(float), typeof(ServerProfile), new PropertyMetadata(1.0f)); [IniFileEntry(IniFiles.GameUserSettings, IniSections.GUS_ServerSettings, ServerProfileCategory.StackSizeOverrides, WriteIfNotValue = 1.0f)] @@ -3936,11 +4060,6 @@ namespace ServerManagerTool.Lib { serverArgs.Append($"?AltSaveDirectoryName={this.AltSaveDirectoryName}"); } - - if (this.ForceFlyerExplosives) - { - serverArgs.Append("?ForceFlyerExplosives=true"); - } if (this.EnableServerAutoForceRespawnWildDinosInterval) { @@ -3993,11 +4112,6 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -AutoDestroyStructures"); } - if (this.EnableNoFishLoot) - { - serverArgs.Append(" -nofishloot"); - } - if (this.KickIdlePlayersPeriod.HasValue) { serverArgs.Append(" -EnableIdlePlayerKick"); @@ -4055,6 +4169,11 @@ namespace ServerManagerTool.Lib } } + if (this.DisableCustomFoldersInTributeInventories) + { + serverArgs.Append(" -DisableCustomFoldersInTributeInventories"); + } + if (this.EnableWebAlarm) { serverArgs.Append(" -webalarm"); @@ -4164,6 +4283,11 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -structurememopts"); } + if (this.UseStructureStasisGrid) + { + serverArgs.Append(" -UseStructureStasisGrid"); + } + if (this.SecureSendArKPayload) { serverArgs.Append(" -SecureSendArKPayload"); @@ -4204,11 +4328,21 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -epiconly"); } + if (this.EnableCustomDynamicConfigUrl && !string.IsNullOrWhiteSpace(this.CustomDynamicConfigUrl)) + { + serverArgs.Append(" -UseDynamicConfig "); + } + if ((this.Crossplay || this.EpicOnly) && this.EnablePublicIPForEpic) { serverArgs.Append($" -PublicIPForEpic={Config.Default.MachinePublicIP}"); } + if (this.DisableRailgunPVP) + { + serverArgs.Append(" -DisableRailgunPVP"); + } + if (this.UseVivox) { serverArgs.Append(" -UseVivox"); @@ -4232,6 +4366,11 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -imprintlimit=").Append(this.Imprintlimit); } + if (!string.IsNullOrWhiteSpace(this.Culture)) + { + serverArgs.Append(" -culture=").Append(this.Culture); + } + return serverArgs.ToString(); } @@ -4274,6 +4413,8 @@ namespace ServerManagerTool.Lib profile.NPCSpawnSettings.RenderToView(); if (Config.Default.SectionSupplyCrateOverridesEnabled) profile.ConfigOverrideSupplyCrateItems.RenderToView(); + if (Config.Default.SectionExcludeItemIndicesOverridesEnabled) + profile.ExcludeItemIndices.RenderToView(); if (Config.Default.SectionCraftingOverridesEnabled) profile.ConfigOverrideItemCraftingCosts.RenderToView(); if (Config.Default.SectionStackSizeOverridesEnabled) @@ -4354,6 +4495,8 @@ namespace ServerManagerTool.Lib profile.NPCSpawnSettings.RenderToView(); if (Config.Default.SectionSupplyCrateOverridesEnabled) profile.ConfigOverrideSupplyCrateItems.RenderToView(); + if (Config.Default.SectionExcludeItemIndicesOverridesEnabled) + profile.ExcludeItemIndices.RenderToView(); if (Config.Default.SectionCraftingOverridesEnabled) profile.ConfigOverrideItemCraftingCosts.RenderToView(); if (Config.Default.SectionStackSizeOverridesEnabled) @@ -4496,6 +4639,12 @@ namespace ServerManagerTool.Lib this.ConfigOverrideSupplyCrateItems.RenderToModel(); } + if (Config.Default.SectionExcludeItemIndicesOverridesEnabled) + { + progressCallback?.Invoke(0, _globalizer.GetResourceString("ProfileSave_ConstructingExcludeItemIndicesInformation")); + this.ExcludeItemIndices.RenderToModel(); + } + if (Config.Default.SectionCraftingOverridesEnabled) { progressCallback?.Invoke(0, _globalizer.GetResourceString("ProfileSave_ConstructingCraftingOverridesInformation")); @@ -5436,6 +5585,7 @@ namespace ServerManagerTool.Lib public void ResetServerOptions() { + this.ClearValue(CultureProperty); this.ClearValue(DisableValveAntiCheatSystemProperty); this.ClearValue(DisablePlayerMovePhysicsOptimizationProperty); this.ClearValue(DisableAntiSpeedHackDetectionProperty); @@ -5455,6 +5605,7 @@ namespace ServerManagerTool.Lib this.ClearValue(UseNoHangDetectionProperty); this.ClearValue(ServerAllowAnselProperty); this.ClearValue(StructureMemoryOptimizationsProperty); + this.ClearValue(UseStructureStasisGridProperty); this.ClearValue(NoUnderMeshCheckingProperty); this.ClearValue(NoUnderMeshKillingProperty); this.ClearValue(NoDinosProperty); @@ -5511,6 +5662,10 @@ namespace ServerManagerTool.Lib this.ClearValue(EnableBanListURLProperty); this.ClearValue(BanListURLProperty); + this.ClearValue(EnableCustomDynamicConfigUrlProperty); + this.ClearValue(CustomDynamicConfigUrlProperty); + this.ClearValue(EnableCustomLiveTuningUrlProperty); + this.ClearValue(CustomLiveTuningUrlProperty); this.ClearValue(MaxPlayersProperty); this.ClearNullableValue(KickIdlePlayersPeriodProperty); @@ -5605,12 +5760,14 @@ namespace ServerManagerTool.Lib this.ClearValue(DisableDinoDecayPvEProperty); this.ClearValue(DisableDinoDecayPvPProperty); this.ClearValue(AutoDestroyDecayedDinosProperty); + this.ClearValue(UseDinoLevelUpAnimationsProperty); this.ClearValue(PvEDinoDecayPeriodMultiplierProperty); - this.ClearValue(ForceFlyerExplosivesProperty); this.ClearValue(AllowMultipleAttachedC4Property); + this.ClearValue(AllowUnclaimDinosProperty); this.ClearValue(DisableDinoRidingProperty); this.ClearValue(DisableDinoTamingProperty); + this.ClearValue(DisableDinoBreedingProperty); this.ClearValue(MaxTamedDinosProperty); this.ClearValue(MaxPersonalTamedDinosProperty); this.ClearValue(PersonalTamedDinosSaddleStructureCostProperty); @@ -5648,13 +5805,14 @@ namespace ServerManagerTool.Lib this.DinoSpawnWeightMultipliers = new AggregateIniValueList(nameof(DinoSpawnWeightMultipliers), GameData.GetDinoSpawns); this.PreventDinoTameClassNames = new StringIniValueList(nameof(PreventDinoTameClassNames), () => new string[0]); + this.PreventBreedingForClassNames = new StringIniValueList(nameof(PreventBreedingForClassNames), () => new string[0]); this.NPCReplacements = new AggregateIniValueList(nameof(NPCReplacements), GameData.GetNPCReplacements); this.TamedDinoClassDamageMultipliers = new AggregateIniValueList(nameof(TamedDinoClassDamageMultipliers), GameData.GetDinoMultipliers); this.TamedDinoClassResistanceMultipliers = new AggregateIniValueList(nameof(TamedDinoClassResistanceMultipliers), GameData.GetDinoMultipliers); this.DinoClassDamageMultipliers = new AggregateIniValueList(nameof(DinoClassDamageMultipliers), GameData.GetDinoMultipliers); this.DinoClassResistanceMultipliers = new AggregateIniValueList(nameof(DinoClassResistanceMultipliers), GameData.GetDinoMultipliers); - - this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); + + this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.PreventBreedingForClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); this.DinoSettings.RenderToView(); } @@ -5788,9 +5946,12 @@ namespace ServerManagerTool.Lib this.ClearValue(AllowCaveBuildingPvEProperty); this.ClearValue(DisableFriendlyFirePvPProperty); this.ClearValue(DisableFriendlyFirePvEProperty); + this.ClearValue(AllowCaveBuildingPvPProperty); + this.ClearValue(DisableRailgunPVPProperty); this.ClearValue(DisableLootCratesProperty); this.ClearValue(AllowCrateSpawnsOnTopOfStructuresProperty); this.ClearValue(EnableExtraStructurePreventionVolumesProperty); + this.ClearValue(UseSingleplayerSettingsProperty); this.ClearValue(EnableDifficultyOverrideProperty); this.ClearValue(OverrideOfficialDifficultyProperty); @@ -5808,6 +5969,7 @@ namespace ServerManagerTool.Lib this.ClearNullableValue(MaxTributeItemsProperty); this.ClearValue(NoTransferFromFilteringProperty); + this.ClearValue(DisableCustomFoldersInTributeInventoriesProperty); this.ClearValue(OverrideTributeCharacterExpirationSecondsProperty); this.ClearValue(OverrideTributeItemExpirationSecondsProperty); this.ClearValue(OverrideTributeDinoExpirationSecondsProperty); @@ -5862,7 +6024,6 @@ namespace ServerManagerTool.Lib this.ClearValue(OxygenSwimSpeedStatMultiplierProperty); this.ClearValue(SupplyCrateLootQualityMultiplierProperty); this.ClearValue(FishingLootQualityMultiplierProperty); - this.ClearValue(EnableNoFishLootProperty); this.ClearValue(UseCorpseLifeSpanMultiplierProperty); this.ClearValue(MinimumTimeBetweenInventoryRetrievalProperty); this.ClearValue(GlobalPoweredBatteryDurabilityDecreasePerSecondProperty); @@ -5883,6 +6044,7 @@ namespace ServerManagerTool.Lib this.ClearValue(DisableWorldBuffsProperty); this.ClearValue(EnableWorldBuffScalingProperty); this.ClearValue(WorldBuffScalingEfficacyProperty); + this.ClearValue(AdjustableMutagenSpawnDelayMultiplierProperty); this.ClearValue(MaxHexagonsPerCharacterProperty); this.ClearValue(DisableHexagonStoreProperty); @@ -5962,7 +6124,6 @@ namespace ServerManagerTool.Lib this.ClearValue(FlyerPlatformAllowUnalignedDinoBasingProperty); this.ClearValue(PvEAllowStructuresAtSupplyDropsProperty); this.ClearValue(EnableStructureDecayPvEProperty); - this.ClearValue(PvEStructureDecayDestructionPeriodProperty); this.ClearValue(PvEStructureDecayPeriodMultiplierProperty); this.ClearValue(AutoDestroyOldStructuresMultiplierProperty); this.ClearValue(ForceAllStructureLockingProperty); @@ -5973,6 +6134,7 @@ namespace ServerManagerTool.Lib this.ClearValue(FastDecayUnsnappedCoreStructuresProperty); this.ClearValue(DestroyUnconnectedWaterPipesProperty); this.ClearValue(DisableStructurePlacementCollisionProperty); + this.ClearValue(IgnoreLimitMaxStructuresInRangeTypeFlagProperty); this.ClearValue(EnableFastDecayIntervalProperty); this.ClearValue(FastDecayIntervalProperty); this.ClearValue(LimitTurretsInRangeProperty); @@ -5983,6 +6145,7 @@ namespace ServerManagerTool.Lib this.ClearValue(StructurePickupTimeAfterPlacementProperty); this.ClearValue(StructurePickupHoldDurationProperty); this.ClearValue(AllowIntegratedSPlusStructuresProperty); + this.ClearValue(IgnoreStructuresPreventionVolumesProperty); this.ClearValue(GenesisUseStructuresPreventionVolumesProperty); } @@ -5992,6 +6155,12 @@ namespace ServerManagerTool.Lib this.ConfigOverrideSupplyCrateItems.Reset(); } + public void ResetExcludeItemIndicesOverridesSection() + { + this.ExcludeItemIndices = new ExcludeItemIndicesOverrideList(nameof(ExcludeItemIndices)); + this.ExcludeItemIndices.Reset(); + } + public void UpdateOverrideMaxExperiencePointsDino() { if (EnableLevelProgressions && EnableDinoLevelProgressions) @@ -6091,6 +6260,9 @@ namespace ServerManagerTool.Lib case ServerProfileCategory.SupplyCrateOverrides: SyncSupplyCrateOverridesSection(sourceProfile); break; + case ServerProfileCategory.ExcludeItemIndicesOverrides: + SyncExcludeItemIndicesOverridesSection(sourceProfile); + break; case ServerProfileCategory.StackSizeOverrides: SyncStackSizeOverridesSection(sourceProfile); break; @@ -6108,7 +6280,10 @@ namespace ServerManagerTool.Lib private void SyncAdministrationSection(ServerProfile sourceProfile) { - //this.SetValue(ServerModIdsProperty, sourceProfile.ServerModIds); + if (Config.Default.ProfileSyncServerModIdsEnabled) + { + this.SetValue(ServerModIdsProperty, sourceProfile.ServerModIds); + } this.SetValue(AutoSavePeriodMinutesProperty, sourceProfile.AutoSavePeriodMinutes); @@ -6117,10 +6292,15 @@ namespace ServerManagerTool.Lib this.SetValue(ExtinctionEventUTCProperty, sourceProfile.ExtinctionEventUTC); // server options + this.SetValue(CultureProperty, sourceProfile.Culture); this.SetValue(MaxPlayersProperty, sourceProfile.MaxPlayers); this.SetNullableValue(KickIdlePlayersPeriodProperty, sourceProfile.KickIdlePlayersPeriod); this.SetValue(EnableBanListURLProperty, sourceProfile.EnableBanListURL); this.SetValue(BanListURLProperty, sourceProfile.BanListURL); + this.SetValue(EnableCustomDynamicConfigUrlProperty, sourceProfile.EnableCustomDynamicConfigUrl); + this.SetValue(CustomDynamicConfigUrlProperty, sourceProfile.CustomDynamicConfigUrl); + this.SetValue(EnableCustomLiveTuningUrlProperty, sourceProfile.EnableCustomLiveTuningUrl); + this.SetValue(CustomLiveTuningUrlProperty, sourceProfile.CustomLiveTuningUrl); this.SetValue(DisableValveAntiCheatSystemProperty, sourceProfile.DisableValveAntiCheatSystem); this.SetValue(UseBattlEyeProperty, sourceProfile.UseBattlEye); this.SetValue(DisablePlayerMovePhysicsOptimizationProperty, sourceProfile.DisablePlayerMovePhysicsOptimization); @@ -6143,12 +6323,17 @@ namespace ServerManagerTool.Lib this.SetValue(StasisKeepControllersProperty, sourceProfile.StasisKeepControllers); this.SetValue(ServerAllowAnselProperty, sourceProfile.ServerAllowAnsel); this.SetValue(StructureMemoryOptimizationsProperty, sourceProfile.StructureMemoryOptimizations); + this.SetValue(UseStructureStasisGridProperty, sourceProfile.UseStructureStasisGrid); this.SetValue(CrossplayProperty, sourceProfile.Crossplay); this.SetValue(EpicOnlyProperty, sourceProfile.EpicOnly); this.SetValue(EnablePublicIPForEpicProperty, sourceProfile.EnablePublicIPForEpic); this.SetValue(OutputServerLogProperty, sourceProfile.OutputServerLog); //this.SetValue(AltSaveDirectoryNameProperty, sourceProfile.AltSaveDirectoryName); - this.SetValue(CrossArkClusterIdProperty, sourceProfile.CrossArkClusterId); + if (Config.Default.ProfileSyncCrossArkClusterIdEnabled) + { + this.SetValue(CrossArkClusterIdProperty, sourceProfile.CrossArkClusterId); + this.SetValue(ClusterDirOverrideProperty, sourceProfile.ClusterDirOverride); + } this.SetValue(ClusterDirOverrideProperty, sourceProfile.ClusterDirOverride); this.SetValue(SecureSendArKPayloadProperty, sourceProfile.SecureSendArKPayload); this.SetValue(UseItemDupeCheckProperty, sourceProfile.UseItemDupeCheck); @@ -6188,14 +6373,20 @@ namespace ServerManagerTool.Lib this.SetValue(AutoStartOnLoginProperty, sourceProfile.AutoStartOnLogin); this.SetValue(EnableAutoShutdown1Property, sourceProfile.EnableAutoShutdown1); - this.SetValue(AutoShutdownTime1Property, sourceProfile.AutoShutdownTime1); - this.SetValue(ShutdownDaysOfTheWeek1Property, sourceProfile.ShutdownDaysOfTheWeek1); + if (Config.Default.ProfileSyncAutoShutdownEnabled) + { + this.SetValue(AutoShutdownTime1Property, sourceProfile.AutoShutdownTime1); + this.SetValue(ShutdownDaysOfTheWeek1Property, sourceProfile.ShutdownDaysOfTheWeek1); + } this.SetValue(RestartAfterShutdown1Property, sourceProfile.RestartAfterShutdown1); this.SetValue(UpdateAfterShutdown1Property, sourceProfile.UpdateAfterShutdown1); this.SetValue(EnableAutoShutdown2Property, sourceProfile.EnableAutoShutdown2); - this.SetValue(AutoShutdownTime2Property, sourceProfile.AutoShutdownTime2); - this.SetValue(ShutdownDaysOfTheWeek2Property, sourceProfile.ShutdownDaysOfTheWeek2); + if (Config.Default.ProfileSyncAutoShutdownEnabled) + { + this.SetValue(AutoShutdownTime2Property, sourceProfile.AutoShutdownTime2); + this.SetValue(ShutdownDaysOfTheWeek2Property, sourceProfile.ShutdownDaysOfTheWeek2); + } this.SetValue(RestartAfterShutdown2Property, sourceProfile.RestartAfterShutdown2); this.SetValue(UpdateAfterShutdown2Property, sourceProfile.UpdateAfterShutdown2); @@ -6284,12 +6475,14 @@ namespace ServerManagerTool.Lib this.SetValue(DisableDinoDecayPvEProperty, sourceProfile.DisableDinoDecayPvE); this.SetValue(DisableDinoDecayPvPProperty, sourceProfile.DisableDinoDecayPvP); this.SetValue(AutoDestroyDecayedDinosProperty, sourceProfile.AutoDestroyDecayedDinos); + this.SetValue(UseDinoLevelUpAnimationsProperty, sourceProfile.UseDinoLevelUpAnimations); this.SetValue(PvEDinoDecayPeriodMultiplierProperty, sourceProfile.PvEDinoDecayPeriodMultiplier); - this.SetValue(ForceFlyerExplosivesProperty, sourceProfile.ForceFlyerExplosives); this.SetValue(AllowMultipleAttachedC4Property, sourceProfile.AllowMultipleAttachedC4); + this.SetValue(AllowUnclaimDinosProperty, sourceProfile.AllowUnclaimDinos); this.SetValue(DisableDinoRidingProperty, sourceProfile.DisableDinoRiding); this.SetValue(DisableDinoTamingProperty, sourceProfile.DisableDinoTaming); + this.SetValue(DisableDinoBreedingProperty, sourceProfile.DisableDinoBreeding); this.SetValue(MaxTamedDinosProperty, sourceProfile.MaxTamedDinos); this.SetValue(MaxPersonalTamedDinosProperty, sourceProfile.MaxPersonalTamedDinos); this.SetValue(PersonalTamedDinosSaddleStructureCostProperty, sourceProfile.PersonalTamedDinosSaddleStructureCost); @@ -6352,6 +6545,10 @@ namespace ServerManagerTool.Lib this.PreventDinoTameClassNames.FromIniValues(sourceProfile.PreventDinoTameClassNames.ToIniValues()); this.PreventDinoTameClassNames.IsEnabled = sourceProfile.PreventDinoTameClassNames.IsEnabled; + this.PreventBreedingForClassNames.Clear(); + this.PreventBreedingForClassNames.FromIniValues(sourceProfile.PreventBreedingForClassNames.ToIniValues()); + this.PreventBreedingForClassNames.IsEnabled = sourceProfile.PreventBreedingForClassNames.IsEnabled; + this.NPCReplacements.Clear(); this.NPCReplacements.FromIniValues(sourceProfile.NPCReplacements.ToIniValues()); this.NPCReplacements.IsEnabled = sourceProfile.NPCReplacements.IsEnabled; @@ -6372,7 +6569,7 @@ namespace ServerManagerTool.Lib this.DinoClassResistanceMultipliers.FromIniValues(sourceProfile.DinoClassResistanceMultipliers.ToIniValues()); this.DinoClassResistanceMultipliers.IsEnabled = sourceProfile.DinoClassResistanceMultipliers.IsEnabled; - this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); + this.DinoSettings = new DinoSettingsList(this.DinoSpawnWeightMultipliers, this.PreventDinoTameClassNames, this.PreventBreedingForClassNames, this.NPCReplacements, this.TamedDinoClassDamageMultipliers, this.TamedDinoClassResistanceMultipliers, this.DinoClassDamageMultipliers, this.DinoClassResistanceMultipliers); this.DinoSettings.RenderToView(); } @@ -6531,9 +6728,12 @@ namespace ServerManagerTool.Lib this.SetValue(AllowCaveBuildingPvEProperty, sourceProfile.AllowCaveBuildingPvE); this.SetValue(DisableFriendlyFirePvPProperty, sourceProfile.DisableFriendlyFirePvP); this.SetValue(DisableFriendlyFirePvEProperty, sourceProfile.DisableFriendlyFirePvE); + this.SetValue(AllowCaveBuildingPvPProperty, sourceProfile.AllowCaveBuildingPvP); + this.SetValue(DisableRailgunPVPProperty, sourceProfile.DisableRailgunPVP); this.SetValue(DisableLootCratesProperty, sourceProfile.DisableLootCrates); this.SetValue(AllowCrateSpawnsOnTopOfStructuresProperty, sourceProfile.AllowCrateSpawnsOnTopOfStructures); this.SetValue(EnableExtraStructurePreventionVolumesProperty, sourceProfile.EnableExtraStructurePreventionVolumes); + this.SetValue(UseSingleplayerSettingsProperty, sourceProfile.UseSingleplayerSettings); this.SetValue(EnableDifficultyOverrideProperty, sourceProfile.EnableDifficultyOverride); this.SetValue(OverrideOfficialDifficultyProperty, sourceProfile.OverrideOfficialDifficulty); @@ -6551,6 +6751,7 @@ namespace ServerManagerTool.Lib this.SetNullableValue(MaxTributeItemsProperty, sourceProfile.MaxTributeItems); this.SetValue(NoTransferFromFilteringProperty, sourceProfile.NoTransferFromFiltering); + this.SetValue(DisableCustomFoldersInTributeInventoriesProperty, sourceProfile.DisableCustomFoldersInTributeInventories); this.SetValue(OverrideTributeCharacterExpirationSecondsProperty, sourceProfile.OverrideTributeCharacterExpirationSeconds); this.SetValue(OverrideTributeItemExpirationSecondsProperty, sourceProfile.OverrideTributeItemExpirationSeconds); this.SetValue(OverrideTributeDinoExpirationSecondsProperty, sourceProfile.OverrideTributeDinoExpirationSeconds); @@ -6605,7 +6806,6 @@ namespace ServerManagerTool.Lib this.SetValue(OxygenSwimSpeedStatMultiplierProperty, sourceProfile.OxygenSwimSpeedStatMultiplier); this.SetValue(SupplyCrateLootQualityMultiplierProperty, sourceProfile.SupplyCrateLootQualityMultiplier); 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); @@ -6626,6 +6826,7 @@ namespace ServerManagerTool.Lib this.SetValue(DisableWorldBuffsProperty, sourceProfile.DisableWorldBuffs); this.SetValue(EnableWorldBuffScalingProperty, sourceProfile.EnableWorldBuffScaling); this.SetValue(WorldBuffScalingEfficacyProperty, sourceProfile.WorldBuffScalingEfficacy); + this.SetValue(AdjustableMutagenSpawnDelayMultiplierProperty, sourceProfile.AdjustableMutagenSpawnDelayMultiplier); this.SetValue(MaxHexagonsPerCharacterProperty, sourceProfile.MaxHexagonsPerCharacter); this.SetValue(DisableHexagonStoreProperty, sourceProfile.DisableHexagonStore); @@ -6721,7 +6922,6 @@ namespace ServerManagerTool.Lib this.SetValue(FlyerPlatformAllowUnalignedDinoBasingProperty, sourceProfile.FlyerPlatformAllowUnalignedDinoBasing); this.SetValue(PvEAllowStructuresAtSupplyDropsProperty, sourceProfile.PvEAllowStructuresAtSupplyDrops); this.SetValue(EnableStructureDecayPvEProperty, sourceProfile.EnableStructureDecayPvE); - this.SetValue(PvEStructureDecayDestructionPeriodProperty, sourceProfile.PvEStructureDecayDestructionPeriod); this.SetValue(PvEStructureDecayPeriodMultiplierProperty, sourceProfile.PvEStructureDecayPeriodMultiplier); this.SetValue(AutoDestroyOldStructuresMultiplierProperty, sourceProfile.AutoDestroyOldStructuresMultiplier); this.SetValue(ForceAllStructureLockingProperty, sourceProfile.ForceAllStructureLocking); @@ -6732,6 +6932,7 @@ namespace ServerManagerTool.Lib this.SetValue(FastDecayUnsnappedCoreStructuresProperty, sourceProfile.FastDecayUnsnappedCoreStructures); this.SetValue(DestroyUnconnectedWaterPipesProperty, sourceProfile.DestroyUnconnectedWaterPipes); this.SetValue(DisableStructurePlacementCollisionProperty, sourceProfile.DisableStructurePlacementCollision); + this.SetValue(IgnoreLimitMaxStructuresInRangeTypeFlagProperty, sourceProfile.IgnoreLimitMaxStructuresInRangeTypeFlag); this.SetValue(EnableFastDecayIntervalProperty, sourceProfile.EnableFastDecayInterval); this.SetValue(FastDecayIntervalProperty, sourceProfile.FastDecayInterval); this.SetValue(LimitTurretsInRangeProperty, sourceProfile.LimitTurretsInRange); @@ -6742,6 +6943,7 @@ namespace ServerManagerTool.Lib this.SetValue(StructurePickupTimeAfterPlacementProperty, sourceProfile.StructurePickupTimeAfterPlacement); this.SetValue(StructurePickupHoldDurationProperty, sourceProfile.StructurePickupHoldDuration); this.SetValue(AllowIntegratedSPlusStructuresProperty, sourceProfile.AllowIntegratedSPlusStructures); + this.SetValue(IgnoreStructuresPreventionVolumesProperty, sourceProfile.IgnoreStructuresPreventionVolumes); this.SetValue(GenesisUseStructuresPreventionVolumesProperty, sourceProfile.GenesisUseStructuresPreventionVolumes); } @@ -6754,6 +6956,16 @@ namespace ServerManagerTool.Lib this.ConfigOverrideSupplyCrateItems.IsEnabled = this.ConfigOverrideSupplyCrateItems.Count > 0; this.ConfigOverrideSupplyCrateItems.RenderToView(); } + + private void SyncExcludeItemIndicesOverridesSection(ServerProfile sourceProfile) + { + sourceProfile.ExcludeItemIndices.RenderToModel(); + + this.ExcludeItemIndices.Clear(); + this.ExcludeItemIndices.FromIniValues(sourceProfile.ExcludeItemIndices.ToIniValues()); + this.ExcludeItemIndices.IsEnabled = this.ExcludeItemIndices.Count > 0; + this.ExcludeItemIndices.RenderToView(); + } #endregion #region Server Files diff --git a/src/ARKServerManager/Lib/ViewConverters/TributeExpirationConverter.cs b/src/ARKServerManager/Lib/ViewConverters/TributeExpirationConverter.cs index b736fa4e..741df9fd 100644 --- a/src/ARKServerManager/Lib/ViewConverters/TributeExpirationConverter.cs +++ b/src/ARKServerManager/Lib/ViewConverters/TributeExpirationConverter.cs @@ -6,8 +6,8 @@ namespace ServerManagerTool.Lib.ViewModel { public class TributeExpirationConverter : IValueConverter { - public const int MIN_VALUE = 1; - public const int MAX_VALUE = 20000; + public const int MIN_VALUE = 0; + public const int MAX_VALUE = 525600; public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { diff --git a/src/ARKServerManager/Lib/ViewModel/DinoSettings.cs b/src/ARKServerManager/Lib/ViewModel/DinoSettings.cs index 9302c081..3e7a1d6c 100644 --- a/src/ARKServerManager/Lib/ViewModel/DinoSettings.cs +++ b/src/ARKServerManager/Lib/ViewModel/DinoSettings.cs @@ -13,6 +13,7 @@ namespace ServerManagerTool.Lib.ViewModel public static readonly DependencyProperty ModProperty = DependencyProperty.Register(nameof(Mod), typeof(string), typeof(DinoSettings), new PropertyMetadata(String.Empty)); public static readonly DependencyProperty KnownDinoProperty = DependencyProperty.Register(nameof(KnownDino), typeof(bool), typeof(DinoSettings), new PropertyMetadata(false)); public static readonly DependencyProperty CanTameProperty = DependencyProperty.Register(nameof(CanTame), typeof(bool), typeof(DinoSettings), new PropertyMetadata(true)); + public static readonly DependencyProperty CanBreedingProperty = DependencyProperty.Register(nameof(CanBreeding), typeof(bool), typeof(DinoSettings), new PropertyMetadata(true)); public static readonly DependencyProperty CanSpawnProperty = DependencyProperty.Register(nameof(CanSpawn), typeof(bool), typeof(DinoSettings), new PropertyMetadata(true)); public static readonly DependencyProperty ReplacementClassProperty = DependencyProperty.Register(nameof(ReplacementClass), typeof(string), typeof(DinoSettings), new PropertyMetadata(String.Empty)); public static readonly DependencyProperty SpawnWeightMultiplierProperty = DependencyProperty.Register(nameof(SpawnWeightMultiplier), typeof(float), typeof(DinoSettings), new PropertyMetadata(DinoSpawn.DEFAULT_SPAWN_WEIGHT_MULTIPLIER)); @@ -47,6 +48,12 @@ namespace ServerManagerTool.Lib.ViewModel set { SetValue(CanTameProperty, value); } } + public bool CanBreeding + { + get { return (bool)GetValue(CanBreedingProperty); } + set { SetValue(CanBreedingProperty, value); } + } + public bool CanSpawn { get { return (bool)GetValue(CanSpawnProperty); } @@ -108,6 +115,7 @@ namespace ServerManagerTool.Lib.ViewModel public bool HasClassName { get; internal set; } public bool IsSpawnable { get; internal set; } public DinoTamable IsTameable { get; internal set; } + public DinoBreedingable IsBreedingable { get; internal set; } public string DisplayReplacementName => GameData.FriendlyCreatureNameForClass(ReplacementClass); public float OriginalSpawnWeightMultiplier { get; internal set; } @@ -119,6 +127,7 @@ namespace ServerManagerTool.Lib.ViewModel public string ModSort => $"{Mod}|{DisplayName}"; public string CanSpawnSort => $"{IsSpawnable}|{CanSpawn}|{DisplayName}|{Mod}"; public string CanTameSort => $"{IsTameable != DinoTamable.False}|{CanTame}|{DisplayName}|{Mod}"; + public string CanBreedingSort => $"{IsBreedingable != DinoBreedingable.False}|{CanBreeding}|{DisplayName}|{Mod}"; public string ReplacementNameSort => $"{DisplayReplacementName}|{Mod}"; public string SpawnWeightMultiplierSort => $"{SpawnWeightMultiplier:0000000000.0000000000}|{DisplayName}|{Mod}"; public string OverrideSpawnLimitPercentageSort => $"{OverrideSpawnLimitPercentage}|{DisplayName}|{Mod}"; diff --git a/src/ARKServerManager/Lib/ViewModel/DinoSettingsList.cs b/src/ARKServerManager/Lib/ViewModel/DinoSettingsList.cs index f6fb884d..2f1d8310 100644 --- a/src/ARKServerManager/Lib/ViewModel/DinoSettingsList.cs +++ b/src/ARKServerManager/Lib/ViewModel/DinoSettingsList.cs @@ -9,6 +9,7 @@ namespace ServerManagerTool.Lib.ViewModel { public AggregateIniValueList DinoSpawnWeightMultipliers { get; } public StringIniValueList PreventDinoTameClassNames { get; } + public StringIniValueList PreventBreedingForClassNames { get; } public AggregateIniValueList NpcReplacements { get; } public AggregateIniValueList TamedDinoClassDamageMultipliers { get; } public AggregateIniValueList TamedDinoClassResistanceMultipliers { get; } @@ -20,12 +21,13 @@ namespace ServerManagerTool.Lib.ViewModel Reset(); } - public DinoSettingsList(AggregateIniValueList dinoSpawnWeightMultipliers, StringIniValueList preventDinoTameClassNames, AggregateIniValueList npcReplacements, + public DinoSettingsList(AggregateIniValueList dinoSpawnWeightMultipliers, StringIniValueList preventDinoTameClassNames, StringIniValueList preventBreedingForClassNames, AggregateIniValueList npcReplacements, AggregateIniValueList tamedDinoClassDamageMultipliers, AggregateIniValueList tamedDinoClassResistanceMultipliers, AggregateIniValueList dinoClassDamageMultipliers, AggregateIniValueList dinoClassResistanceMultipliers) { this.DinoSpawnWeightMultipliers = dinoSpawnWeightMultipliers; this.PreventDinoTameClassNames = preventDinoTameClassNames; + this.PreventBreedingForClassNames = preventBreedingForClassNames; this.NpcReplacements = npcReplacements; this.TamedDinoClassDamageMultipliers = tamedDinoClassDamageMultipliers; this.TamedDinoClassResistanceMultipliers = tamedDinoClassResistanceMultipliers; @@ -39,6 +41,7 @@ namespace ServerManagerTool.Lib.ViewModel var nameTag = GameData.NameTagForClass(className); var isSpawnable = GameData.IsSpawnableForClass(className); var isTameable = GameData.IsTameableForClass(className); + var isBreedingable = GameData.IsBreedingableForClass(className); return new DinoSettings() { @@ -49,6 +52,7 @@ namespace ServerManagerTool.Lib.ViewModel CanSpawn = true, CanTame = isTameable != DinoTamable.False, + CanBreeding = isBreedingable != DinoBreedingable.False, ReplacementClass = className, SpawnWeightMultiplier = DinoSpawn.DEFAULT_SPAWN_WEIGHT_MULTIPLIER, @@ -67,6 +71,7 @@ namespace ServerManagerTool.Lib.ViewModel HasNameTag = hasNameTag, IsSpawnable = isSpawnable, IsTameable = isTameable, + IsBreedingable = isBreedingable, }; } @@ -135,7 +140,25 @@ namespace ServerManagerTool.Lib.ViewModel } } - foreach(var entry in this.NpcReplacements.Where(e => !string.IsNullOrWhiteSpace(e.FromClassName))) + foreach (var entry in this.PreventBreedingForClassNames.Where(e => !string.IsNullOrWhiteSpace(e))) + { + if (this.Any(d => d.ClassName == entry)) + { + foreach (var dinoSetting in this.Where(d => d.ClassName == entry && d.CanBreeding)) + { + dinoSetting.CanBreeding = false; + } + } + else + { + var dinoSetting = CreateDinoSetting(entry, GameData.MOD_UNKNOWN, false, false, true); + dinoSetting.CanBreeding = false; + + this.Add(dinoSetting); + } + } + + foreach (var entry in this.NpcReplacements.Where(e => !string.IsNullOrWhiteSpace(e.FromClassName))) { if (this.Any(d => d.ClassName == entry.FromClassName)) { @@ -235,6 +258,8 @@ namespace ServerManagerTool.Lib.ViewModel this.DinoSpawnWeightMultipliers.Clear(); this.PreventDinoTameClassNames.Clear(); this.PreventDinoTameClassNames.IsEnabled = true; + this.PreventBreedingForClassNames.Clear(); + this.PreventBreedingForClassNames.IsEnabled = true; this.NpcReplacements.Clear(); this.NpcReplacements.IsEnabled = true; this.TamedDinoClassDamageMultipliers.Clear(); @@ -286,6 +311,11 @@ namespace ServerManagerTool.Lib.ViewModel this.PreventDinoTameClassNames.Add(entry.ClassName); } + if ((entry.IsBreedingable != DinoBreedingable.False) && !entry.CanBreeding) + { + this.PreventBreedingForClassNames.Add(entry.ClassName); + } + this.NpcReplacements.Add(new NPCReplacement() { FromClassName = entry.ClassName, ToClassName = entry.CanSpawn ? entry.ReplacementClass : string.Empty }); if (entry.IsTameable != DinoTamable.False) diff --git a/src/ARKServerManager/Styles/Default.xaml b/src/ARKServerManager/Styles/Default.xaml index c5bebb68..1e6cbf56 100644 --- a/src/ARKServerManager/Styles/Default.xaml +++ b/src/ARKServerManager/Styles/Default.xaml @@ -25,6 +25,8 @@ + + diff --git a/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml b/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml index 95d120ad..12972666 100644 --- a/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml +++ b/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml @@ -266,6 +266,28 @@ + + + + + + + + + + + + + + + + + + + + + @@ -285,7 +307,7 @@ - + @@ -306,7 +328,7 @@ - + @@ -328,7 +350,7 @@ - + diff --git a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml index bc64e3ed..adfc6a2e 100644 --- a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml +++ b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml @@ -1041,6 +1041,8 @@ + + @@ -1051,38 +1053,50 @@ - - - - + + + + + + + + - - - - - - - - - - - - - + + + + - - + @@ -3526,6 +3579,7 @@ + @@ -6097,6 +6151,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml.cs b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml.cs index 26e04c4f..ceaee7f0 100644 --- a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml.cs +++ b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml.cs @@ -20,6 +20,7 @@ using System.IO; using System.Linq; using System.Reflection; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows; @@ -53,6 +54,7 @@ namespace ServerManagerTool public static readonly DependencyProperty BaseEventsProperty = DependencyProperty.Register(nameof(BaseEvents), typeof(ComboBoxItemList), typeof(ServerSettingsControl), new PropertyMetadata(null)); public static readonly DependencyProperty BetaVersionProperty = DependencyProperty.Register(nameof(BetaVersion), typeof(bool), typeof(ServerSettingsControl), new PropertyMetadata(false)); public static readonly DependencyProperty ConfigProperty = DependencyProperty.Register(nameof(Config), typeof(Config), typeof(ServerSettingsControl)); + public static readonly DependencyProperty CultureProperty = DependencyProperty.Register(nameof(Culture), typeof(ComboBoxItemList), typeof(ServerSettingsControl), new PropertyMetadata(null)); public static readonly DependencyProperty IsAdministratorProperty = DependencyProperty.Register(nameof(IsAdministrator), typeof(bool), typeof(ServerSettingsControl), new PropertyMetadata(false)); public static readonly DependencyProperty NetworkInterfacesProperty = DependencyProperty.Register(nameof(NetworkInterfaces), typeof(List), typeof(ServerSettingsControl), new PropertyMetadata(new List())); public static readonly DependencyProperty RuntimeProperty = DependencyProperty.Register(nameof(Runtime), typeof(ServerRuntime), typeof(ServerSettingsControl)); @@ -159,6 +161,12 @@ namespace ServerManagerTool set { SetValue(ConfigProperty, value); } } + public ComboBoxItemList Culture + { + get { return (ComboBoxItemList)GetValue(CultureProperty); } + set { SetValue(CultureProperty, value); } + } + public bool IsAdministrator { get { return (bool)GetValue(IsAdministratorProperty); } @@ -364,6 +372,7 @@ namespace ServerManagerTool this.RefreshBaseSupplyCrateList(); this.RefreshBaseGameMapsList(); this.RefreshBaseTotalConversionsList(); + this.RefreshCultureList(); this.RefreshBaseBranchesList(); this.RefreshBaseEventsList(); this.RefreshProcessPrioritiesList(); @@ -374,6 +383,7 @@ namespace ServerManagerTool this.Settings.ConfigOverrideItemCraftingCosts.Update(); this.Settings.ConfigOverrideItemMaxQuantity.Update(); this.Settings.ConfigOverrideSupplyCrateItems.Update(); + this.Settings.ExcludeItemIndices.Update(); this.Settings.NPCSpawnSettings.Update(); this.Settings.PreventTransferForClassNames.Update(); } @@ -398,6 +408,7 @@ namespace ServerManagerTool ssc.RefreshBaseSupplyCrateList(); ssc.RefreshBaseGameMapsList(); ssc.RefreshBaseTotalConversionsList(); + ssc.RefreshCultureList(); ssc.RefreshBaseBranchesList(); ssc.RefreshBaseEventsList(); ssc.RefreshProcessPrioritiesList(); @@ -1385,6 +1396,11 @@ namespace ServerManagerTool Settings.ConfigOverrideSupplyCrateItems.Update(); } + private void ExcludeItemIndicesOverrideGrids_SourceUpdated(object sender, DataTransferEventArgs e) + { + Settings.ExcludeItemIndices.Update(); + } + private void CraftingOverrideGrids_SourceUpdated(object sender, DataTransferEventArgs e) { Settings.ConfigOverrideItemCraftingCosts.Update(); @@ -1454,6 +1470,11 @@ namespace ServerManagerTool Server.Profile.PreventDinoTameClassNames.AddRange(preventDinoTameClassNames); Server.Profile.PreventDinoTameClassNames.IsEnabled |= preventDinoTameClassNames.IsEnabled; + var preventBreedingForClassNames = new StringIniValueList(nameof(Server.Profile.PreventBreedingForClassNames), null); + preventBreedingForClassNames.FromIniValues(section.KeysToStringEnumerable().Where(s => s.StartsWith($"{preventBreedingForClassNames.IniCollectionKey}="))); + Server.Profile.PreventBreedingForClassNames.AddRange(preventBreedingForClassNames); + Server.Profile.PreventBreedingForClassNames.IsEnabled |= preventBreedingForClassNames.IsEnabled; + var npcReplacements = new AggregateIniValueList(nameof(Server.Profile.NPCReplacements), null); npcReplacements.FromIniValues(section.KeysToStringEnumerable().Where(s => s.StartsWith($"{npcReplacements.IniCollectionKey}="))); Server.Profile.NPCReplacements.AddRange(npcReplacements); @@ -1480,7 +1501,7 @@ namespace ServerManagerTool Server.Profile.DinoClassResistanceMultipliers.IsEnabled |= dinoClassResistanceMultipliers.IsEnabled; } - Server.Profile.DinoSettings = new DinoSettingsList(Server.Profile.DinoSpawnWeightMultipliers, Server.Profile.PreventDinoTameClassNames, Server.Profile.NPCReplacements, Server.Profile.TamedDinoClassDamageMultipliers, Server.Profile.TamedDinoClassResistanceMultipliers, Server.Profile.DinoClassDamageMultipliers, Server.Profile.DinoClassResistanceMultipliers); + Server.Profile.DinoSettings = new DinoSettingsList(Server.Profile.DinoSpawnWeightMultipliers, Server.Profile.PreventDinoTameClassNames, Server.Profile.PreventBreedingForClassNames, Server.Profile.NPCReplacements, Server.Profile.TamedDinoClassDamageMultipliers, Server.Profile.TamedDinoClassResistanceMultipliers, Server.Profile.DinoClassDamageMultipliers, Server.Profile.DinoClassResistanceMultipliers); Server.Profile.DinoSettings.RenderToView(); RefreshBaseDinoList(); @@ -1506,6 +1527,7 @@ namespace ServerManagerTool var iniValues = new List(); iniValues.AddRange(Settings.DinoSpawnWeightMultipliers.ToIniValues()); iniValues.AddRange(Settings.PreventDinoTameClassNames.ToIniValues()); + iniValues.AddRange(Settings.PreventBreedingForClassNames.ToIniValues()); iniValues.AddRange(Settings.NPCReplacements.ToIniValues()); iniValues.AddRange(Settings.DinoClassDamageMultipliers.ToIniValues()); iniValues.AddRange(Settings.DinoClassResistanceMultipliers.ToIniValues()); @@ -3349,6 +3371,109 @@ namespace ServerManagerTool } #endregion + #region Exclude Item Indices Overrides + private void AddExcludeItemIndicesOverride_Click(object sender, RoutedEventArgs e) + { + Settings.ExcludeItemIndices.Add(new ExcludeItemIndicesOverride()); + Settings.ExcludeItemIndices.Update(); + } + + private void ClearExcludeItemIndicesOverrides_Click(object sender, RoutedEventArgs e) + { + if (MessageBox.Show(_globalizer.GetResourceString("ServerSettings_ClearLabel"), _globalizer.GetResourceString("ServerSettings_ClearTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) + return; + + Settings.ExcludeItemIndices.Clear(); + Settings.ExcludeItemIndices.Update(); + } + + private void PasteExcludeItemIndicesOverride_Click(object sender, RoutedEventArgs e) + { + var window = new CustomConfigDataWindow(); + window.Owner = Window.GetWindow(this); + window.Closed += Window_Closed; + var result = window.ShowDialog(); + + if (!result.HasValue || !result.Value) + return; + + // read the pasted data into an ini file. + var iniFile = IniFileUtils.ReadString(window.ConfigData.Replace(" ", "")); + + Server.Profile.ExcludeItemIndices.RenderToModel(); + + // cycle through the sections, adding them to the list. Will bypass any sections that are named as per the ARK default sections. + foreach (var section in iniFile.Sections.Where(s => s.SectionName != null && !SystemIniFile.IniSectionNames.ContainsValue(s.SectionName))) + { + var excludeItemIndices = new AggregateIniValueList(nameof(Server.Profile.ExcludeItemIndices), null); + excludeItemIndices.FromIniValues(section.KeysToStringEnumerable().Where(s => s.StartsWith($"{excludeItemIndices.IniCollectionKey}="))); + Server.Profile.ExcludeItemIndices.AddRange(excludeItemIndices); + Server.Profile.ExcludeItemIndices.IsEnabled |= excludeItemIndices.IsEnabled; + } + + var errors = Server.Profile.ExcludeItemIndices.RenderToView(); + + RefreshBaseDinoList(); + + if (errors.Any()) + { + var error = $"The following errors have been found:\r\n\r\n{string.Join("\r\n", errors)}"; + + var window2 = new CommandLineWindow(error); + window2.OutputTextWrapping = TextWrapping.NoWrap; + window2.Height = 500; + window2.Title = "Import Errors"; + window2.Owner = Window.GetWindow(this); + window2.ShowDialog(); + } + } + + private void RemoveExcludeItemIndicesOverrideItem_Click(object sender, RoutedEventArgs e) + { + if (MessageBox.Show(_globalizer.GetResourceString("ServerSettings_DeleteLabel"), _globalizer.GetResourceString("ServerSettings_DeleteTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) + return; + + var item = ((ExcludeItemIndicesOverride)((Button)e.Source).DataContext); + Settings.ExcludeItemIndices.Remove(item); + Settings.ExcludeItemIndices.Update(); + } + + private void SaveExcludeItemIndicesOverride_Click(object sender, RoutedEventArgs e) + { + Settings.ExcludeItemIndices.RenderToModel(); + + var iniValues = new List(); + iniValues.AddRange(Settings.ExcludeItemIndices.ToIniValues()); + var iniValue = string.Join("\r\n", iniValues); + + var window = new CommandLineWindow(iniValue); + window.OutputTextWrapping = TextWrapping.NoWrap; + window.Height = 500; + window.Title = _globalizer.GetResourceString("ServerSettings_ExcludeItemIndicesOverrides_SaveTitle"); + window.Owner = Window.GetWindow(this); + window.ShowDialog(); + } + + private void SaveExcludeItemIndicesOverrideItem_Click(object sender, RoutedEventArgs e) + { + var item = ((ExcludeItemIndicesOverride)((Button)e.Source).DataContext); + if (item == null) + return; + + Settings.ExcludeItemIndices.RenderToModel(); + + var iniName = Settings.ExcludeItemIndices.IniCollectionKey; + var iniValue = $"{iniName}={item.ToINIValue()}"; + + var window = new CommandLineWindow(iniValue); + window.OutputTextWrapping = TextWrapping.Wrap; + window.Height = 500; + window.Title = _globalizer.GetResourceString("ServerSettings_ExcludeItemIndicesOverrides_SaveTitle"); + window.Owner = Window.GetWindow(this); + window.ShowDialog(); + } + #endregion + #region Stack Size Overrides private void AddStackSizeOverride_Click(object sender, RoutedEventArgs e) { @@ -3564,6 +3689,24 @@ namespace ServerManagerTool GlobalizedApplication.Instance.GlobalizationManager.ResourceDictionaryChangedEvent -= ResourceDictionaryChangedEvent; } + public void RefreshCultureList() + { + var newList = new ComboBoxItemList(); + + string[] culture = { "ca", "cs", "da", "de", "en", "es", "eu", "fi", "fr", "hu", "it", "ja", "ka", "ko", "nl", "pl", "pt_BR", "ru", "sv", "th", "tr", "zh", "zh-Hans-CN", "zh-TW" }; + foreach (var lang in culture) + { + newList.Add(new Common.Model.ComboBoxItem + { + DisplayMember = lang, + ValueMember = lang, + }); + } + + this.Culture = newList; + this.CultureComboBox.SelectedValue = this.Settings.Culture; + } + public void RefreshBaseDinoModList() { var selectedValue = SelectedModDino; @@ -4138,6 +4281,7 @@ namespace ServerManagerTool this.Settings.ResetAdministrationSection(); RefreshBaseGameMapsList(); RefreshBaseTotalConversionsList(); + RefreshCultureList(); RefreshBaseBranchesList(); RefreshBaseEventsList(); RefreshProcessPrioritiesList(); @@ -4213,6 +4357,11 @@ namespace ServerManagerTool RefreshBasePrimalItemList(); break; + case ServerSettingsResetAction.ExcludeItemIndicesOverridesSection: + this.Settings.ResetExcludeItemIndicesOverridesSection(); + RefreshBasePrimalItemList(); + break; + case ServerSettingsResetAction.StackSizeOverridesSection: this.Settings.ResetStackSizeOverridesSection(); RefreshBasePrimalItemList(); @@ -4364,6 +4513,7 @@ namespace ServerManagerTool RefreshBaseSupplyCrateList(); RefreshBaseGameMapsList(); RefreshBaseTotalConversionsList(); + RefreshCultureList(); RefreshBaseBranchesList(); RefreshBaseEventsList(); RefreshProcessPrioritiesList(); diff --git a/src/ARKServerManager/VersionFeed.xml b/src/ARKServerManager/VersionFeed.xml index 3e5975ce..ad0f71a5 100644 --- a/src/ARKServerManager/VersionFeed.xml +++ b/src/ARKServerManager/VersionFeed.xml @@ -5,7 +5,48 @@ Ark Server Manager Version Feed This is the Ark Server Manager release version feed. - 2023-06-22T00:00:00Z + 2023-08-21T00:00:00Z + + + + 1.1.444 (1.1.444.1) + 1.1.444.1 + + 2023-08-21T00:00:00Z + +
+

+ BUGFIX +
+

    +
  • Chat and Notifications - fix setting for "Enable 'Player Joined' Notifications"
  • +
+ CHANGE +
+
    +
  • ASM Options - add setting to reenable ModIDs, CluserID and AutoShutdown Timer sync
  • +
  • Global - remove deprecated settings.
  • +
  • Global - add global info, if Steam WebApiKey is missing.
  • +
  • Administration - remove CluserID from profile sync.
  • +
  • Administration - add settings: CustomDynamicConfigUrl, CustomLiveTuningUrl, UseStructureStasisGrid, Culture
  • +
  • Administration - change default value for MaxTribeLogs
  • +
  • Automatic Management - remove AutoShutdown Timer from profile sync.
  • +
  • Rules - add settings: AllowCaveBuildingPvP, DisableRailgunPVP, DisableCustomFoldersInTributeInventories, AdjustableMutagenSpawnDelayMultiplier, bUseSingleplayerSettings
  • +
  • Rules - change default value for MaxTributeDinos, GlobalPoweredBatteryDurabilityDecreasePerSecond, MaxHexagonsPerCharacter
  • +
  • Structures - add settings: IgnoreLimitMaxStructuresInRangeTypeFlag, bIgnoreStructuresPreventionVolumes
  • +
  • Dino Settings - add settings: DisableDinoBreeding, AllowUnclaimDinos, PreventBreedingForClassNames, UseDinoLevelUpAnimations
  • +
  • Dino Settings - change default value for MaxTamedDinos
  • +
  • Exclude ItemIDs From Supply Crate Overrides - add new section
  • +
  • WorldSaveRestore - add file size
  • +
+

+
+
+ + Lacoi + + +
urn:uuid:6D7413E7-3C96-41A6-B51F-C1B507FC7D7B @@ -20,7 +61,7 @@
  • Administration - fix blue text for server / launcher args.
  • -
  • Global Settings - default auto backup should be sequential.
  • +
  • Global Settings - default auto backup should be parallel.
CHANGE
diff --git a/src/ARKServerManager/VersionFeedBeta.xml b/src/ARKServerManager/VersionFeedBeta.xml index 497f7c45..69d6e6c3 100644 --- a/src/ARKServerManager/VersionFeedBeta.xml +++ b/src/ARKServerManager/VersionFeedBeta.xml @@ -5,28 +5,39 @@ Ark Server Manager Version Feed This is the Ark Server Manager beta version feed. - 2023-06-22T00:00:00Z + 2023-08-21T00:00:00Z - urn:uuid:6D7413E7-3C96-41A6-B51F-C1B507FC7D7B - 1.1.443 (1.1.443.1) - 1.1.443.1 + + 1.1.444 (1.1.444.1) + 1.1.444.1 - 2023-06-22T00:00:00Z + 2023-08-21T00:00:00Z

BUGFIX

    -
  • Administration - fix blue text for server / launcher args.
  • -
  • Global Settings - default auto backup should be sequential.
  • +
  • Chat and Notifications - fix setting for "Enable 'Player Joined' Notifications"
CHANGE
    -
  • Global Settings - add option to add additional steamcmd exit status codes as "successful" (use on your own risk).
  • -
  • Administration - remove ModID list from profile sync.
  • +
  • ASM Options - add setting to reenable ModIDs, CluserID and AutoShutdown Timer sync
  • +
  • Global - remove deprecated settings.
  • +
  • Global - add global info, if Steam WebApiKey is missing.
  • +
  • Administration - remove CluserID from profile sync.
  • +
  • Administration - add settings: CustomDynamicConfigUrl, CustomLiveTuningUrl, UseStructureStasisGrid, Culture
  • +
  • Administration - change default value for MaxTribeLogs
  • +
  • Automatic Management - remove AutoShutdown Timer from profile sync.
  • +
  • Rules - add settings: AllowCaveBuildingPvP, DisableRailgunPVP, DisableCustomFoldersInTributeInventories, AdjustableMutagenSpawnDelayMultiplier, bUseSingleplayerSettings
  • +
  • Rules - change default value for MaxTributeDinos, GlobalPoweredBatteryDurabilityDecreasePerSecond, MaxHexagonsPerCharacter
  • +
  • Structures - add settings: IgnoreLimitMaxStructuresInRangeTypeFlag, bIgnoreStructuresPreventionVolumes
  • +
  • Dino Settings - add settings: DisableDinoBreeding, AllowUnclaimDinos, PreventBreedingForClassNames, UseDinoLevelUpAnimations
  • +
  • Dino Settings - change default value for MaxTamedDinos
  • +
  • Exclude ItemIDs From Supply Crate Overrides - add new section
  • +
  • WorldSaveRestore - add file size

diff --git a/src/ARKServerManager/Windows/MainWindow.xaml b/src/ARKServerManager/Windows/MainWindow.xaml index 880bb2f0..42a02f37 100644 --- a/src/ARKServerManager/Windows/MainWindow.xaml +++ b/src/ARKServerManager/Windows/MainWindow.xaml @@ -43,6 +43,10 @@ + + + + diff --git a/src/ARKServerManager/Windows/MainWindow.xaml.cs b/src/ARKServerManager/Windows/MainWindow.xaml.cs index 5a29752b..5f232bab 100644 --- a/src/ARKServerManager/Windows/MainWindow.xaml.cs +++ b/src/ARKServerManager/Windows/MainWindow.xaml.cs @@ -1,5 +1,6 @@ using EO.Wpf; using NLog; +using ServerManagerTool.Common; using ServerManagerTool.Common.Enums; using ServerManagerTool.Common.Lib; using ServerManagerTool.Common.Utils; @@ -35,6 +36,7 @@ namespace ServerManagerTool public static readonly DependencyProperty AppInstanceProperty = DependencyProperty.Register(nameof(AppInstance), typeof(App), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty ConfigProperty = DependencyProperty.Register(nameof(Config), typeof(Config), typeof(MainWindow), new PropertyMetadata(null)); + public static readonly DependencyProperty CommonConfigProperty = DependencyProperty.Register(nameof(CommonConfig), typeof(CommonConfig), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty ServerManagerProperty = DependencyProperty.Register(nameof(ServerManager), typeof(ServerManager), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty AutoBackupStateProperty = DependencyProperty.Register(nameof(AutoBackupState), typeof(Microsoft.Win32.TaskScheduler.TaskState), typeof(MainWindow), new PropertyMetadata(Microsoft.Win32.TaskScheduler.TaskState.Unknown)); public static readonly DependencyProperty AutoBackupStateStringProperty = DependencyProperty.Register(nameof(AutoBackupStateString), typeof(string), typeof(MainWindow), new PropertyMetadata(string.Empty)); @@ -52,6 +54,7 @@ namespace ServerManagerTool { this.AppInstance = App.Instance; this.Config = Config.Default; + this.CommonConfig = CommonConfig.Default; InitializeComponent(); WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile); @@ -102,6 +105,12 @@ namespace ServerManagerTool set { SetValue(ConfigProperty, value); } } + public CommonConfig CommonConfig + { + get { return GetValue(CommonConfigProperty) as CommonConfig; } + set { SetValue(CommonConfigProperty, value); } + } + public ServerManager ServerManager { get { return (ServerManager)GetValue(ServerManagerProperty); } diff --git a/src/ARKServerManager/Windows/ProfileSyncWindow.xaml.cs b/src/ARKServerManager/Windows/ProfileSyncWindow.xaml.cs index 3b468bc9..64ed9f8a 100644 --- a/src/ARKServerManager/Windows/ProfileSyncWindow.xaml.cs +++ b/src/ARKServerManager/Windows/ProfileSyncWindow.xaml.cs @@ -238,6 +238,8 @@ namespace ServerManagerTool SyncSections.Add(new SyncSection() { Selected = false, Category = ServerProfileCategory.MapSpawnerOverrides, SectionName = _globalizer.GetResourceString("ServerSettings_MapSpawnerOverridesLabel") }); if (Config.Default.SectionSupplyCrateOverridesEnabled) SyncSections.Add(new SyncSection() { Selected = false, Category = ServerProfileCategory.SupplyCrateOverrides, SectionName = _globalizer.GetResourceString("ServerSettings_SupplyCrateOverridesLabel") }); + if (Config.Default.SectionExcludeItemIndicesOverridesEnabled) + SyncSections.Add(new SyncSection() { Selected = false, Category = ServerProfileCategory.ExcludeItemIndicesOverrides, SectionName = _globalizer.GetResourceString("ServerSettings_ExcludeItemIndicesOverridesLabel") }); if (Config.Default.SectionStackSizeOverridesEnabled) SyncSections.Add(new SyncSection() { Selected = false, Category = ServerProfileCategory.StackSizeOverrides, SectionName = _globalizer.GetResourceString("ServerSettings_StackSizeOverridesLabel") }); if (Config.Default.SectionPreventTransferOverridesEnabled) diff --git a/src/ARKServerManager/Windows/WorldSaveRestoreWindow.xaml b/src/ARKServerManager/Windows/WorldSaveRestoreWindow.xaml index fe28e951..7f591631 100644 --- a/src/ARKServerManager/Windows/WorldSaveRestoreWindow.xaml +++ b/src/ARKServerManager/Windows/WorldSaveRestoreWindow.xaml @@ -2,6 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:com="clr-namespace:ServerManagerTool.Common;assembly=ServerManager.Common" + xmlns:cc="clr-namespace:ServerManagerTool.Common.Converters;assembly=ServerManager.Common" MinWidth="700" MinHeight="480" Width="800" Height="480" ResizeMode="CanResize" WindowStyle="ToolWindow" WindowStartupLocation="CenterOwner" ShowInTaskbar="False" Loaded="Window_Loaded" Icon="../Art/favicon.ico" Title="{DynamicResource WorldSaveRestore_Title}"> @@ -55,6 +56,18 @@ + + + + + + + + + + + + diff --git a/src/ConanServerManager/Windows/MainWindow.xaml.cs b/src/ConanServerManager/Windows/MainWindow.xaml.cs index d9ec8a10..56b28f8a 100644 --- a/src/ConanServerManager/Windows/MainWindow.xaml.cs +++ b/src/ConanServerManager/Windows/MainWindow.xaml.cs @@ -1,5 +1,6 @@ using EO.Wpf; using NLog; +using ServerManagerTool.Common; using ServerManagerTool.Common.Enums; using ServerManagerTool.Common.Lib; using ServerManagerTool.Common.Utils; @@ -35,6 +36,7 @@ namespace ServerManagerTool public static readonly DependencyProperty AppInstanceProperty = DependencyProperty.Register(nameof(AppInstance), typeof(App), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty ConfigProperty = DependencyProperty.Register(nameof(Config), typeof(Config), typeof(MainWindow), new PropertyMetadata(null)); + public static readonly DependencyProperty CommonConfigProperty = DependencyProperty.Register(nameof(CommonConfig), typeof(CommonConfig), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty ServerManagerProperty = DependencyProperty.Register(nameof(ServerManager), typeof(ServerManager), typeof(MainWindow), new PropertyMetadata(null)); public static readonly DependencyProperty AutoBackupStateProperty = DependencyProperty.Register(nameof(AutoBackupState), typeof(Microsoft.Win32.TaskScheduler.TaskState), typeof(MainWindow), new PropertyMetadata(Microsoft.Win32.TaskScheduler.TaskState.Unknown)); public static readonly DependencyProperty AutoBackupStateStringProperty = DependencyProperty.Register(nameof(AutoBackupStateString), typeof(string), typeof(MainWindow), new PropertyMetadata(string.Empty)); @@ -52,6 +54,7 @@ namespace ServerManagerTool { this.AppInstance = App.Instance; this.Config = Config.Default; + this.CommonConfig = CommonConfig.Default; InitializeComponent(); WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile); @@ -102,6 +105,12 @@ namespace ServerManagerTool set { SetValue(ConfigProperty, value); } } + public CommonConfig CommonConfig + { + get { return GetValue(CommonConfigProperty) as CommonConfig; } + set { SetValue(CommonConfigProperty, value); } + } + public ServerManager ServerManager { get { return (ServerManager)GetValue(ServerManagerProperty); } diff --git a/src/ConanServerManager/Windows/WorldSaveRestoreWindow.xaml b/src/ConanServerManager/Windows/WorldSaveRestoreWindow.xaml index 4f6f9332..0abc7622 100644 --- a/src/ConanServerManager/Windows/WorldSaveRestoreWindow.xaml +++ b/src/ConanServerManager/Windows/WorldSaveRestoreWindow.xaml @@ -2,6 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:com="clr-namespace:ServerManagerTool.Common;assembly=ServerManager.Common" + xmlns:cc="clr-namespace:ServerManagerTool.Common.Converters;assembly=ServerManager.Common" MinWidth="700" MinHeight="480" Width="800" Height="480" ResizeMode="CanResize" WindowStyle="ToolWindow" WindowStartupLocation="CenterOwner" ShowInTaskbar="False" Loaded="Window_Loaded" Icon="../Art/favicon.ico" Title="{DynamicResource WorldSaveRestore_Title}"> @@ -56,6 +57,18 @@ + + + + + + + +