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/Config.Designer.cs b/src/ARKServerManager/Config.Designer.cs
index 15319015..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")]
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/en-US/en-US.xaml b/src/ARKServerManager/Globalization/en-US/en-US.xaml
index e2a91459..f163e684 100644
--- a/src/ARKServerManager/Globalization/en-US/en-US.xaml
+++ b/src/ARKServerManager/Globalization/en-US/en-US.xaml
@@ -584,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
@@ -1204,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
@@ -1243,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
@@ -1424,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
@@ -1471,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.
@@ -1593,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
@@ -1778,6 +1800,8 @@
If enabled, the dino mate boost will be disabled.
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
@@ -1790,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
@@ -1818,6 +1846,7 @@
Mod
Spawnable
Tameable
+ Breedable
Replace With
Spawn Weight
Override Limit
@@ -1959,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:
@@ -2024,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.
@@ -2548,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/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 53178029..39070be2 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
@@ -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
{
@@ -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
@@ -1868,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
@@ -2412,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,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
@@ -2444,6 +2550,14 @@ namespace ServerManagerTool.Lib
set { SetValue(DisableDinoTamingProperty, value); }
}
+ 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
@@ -2739,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
{
@@ -3158,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
{
@@ -3237,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
@@ -3472,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)]
@@ -4021,6 +4169,11 @@ namespace ServerManagerTool.Lib
}
}
+ if (this.DisableCustomFoldersInTributeInventories)
+ {
+ serverArgs.Append(" -DisableCustomFoldersInTributeInventories");
+ }
+
if (this.EnableWebAlarm)
{
serverArgs.Append(" -webalarm");
@@ -4130,6 +4283,11 @@ namespace ServerManagerTool.Lib
serverArgs.Append(" -structurememopts");
}
+ if (this.UseStructureStasisGrid)
+ {
+ serverArgs.Append(" -UseStructureStasisGrid");
+ }
+
if (this.SecureSendArKPayload)
{
serverArgs.Append(" -SecureSendArKPayload");
@@ -4170,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");
@@ -4198,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();
}
@@ -4240,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)
@@ -4320,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)
@@ -4462,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"));
@@ -5402,6 +5585,7 @@ namespace ServerManagerTool.Lib
public void ResetServerOptions()
{
+ this.ClearValue(CultureProperty);
this.ClearValue(DisableValveAntiCheatSystemProperty);
this.ClearValue(DisablePlayerMovePhysicsOptimizationProperty);
this.ClearValue(DisableAntiSpeedHackDetectionProperty);
@@ -5421,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);
@@ -5477,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);
@@ -5571,11 +5760,14 @@ namespace ServerManagerTool.Lib
this.ClearValue(DisableDinoDecayPvEProperty);
this.ClearValue(DisableDinoDecayPvPProperty);
this.ClearValue(AutoDestroyDecayedDinosProperty);
+ this.ClearValue(UseDinoLevelUpAnimationsProperty);
this.ClearValue(PvEDinoDecayPeriodMultiplierProperty);
this.ClearValue(AllowMultipleAttachedC4Property);
+ this.ClearValue(AllowUnclaimDinosProperty);
this.ClearValue(DisableDinoRidingProperty);
this.ClearValue(DisableDinoTamingProperty);
+ this.ClearValue(DisableDinoBreedingProperty);
this.ClearValue(MaxTamedDinosProperty);
this.ClearValue(MaxPersonalTamedDinosProperty);
this.ClearValue(PersonalTamedDinosSaddleStructureCostProperty);
@@ -5613,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();
}
@@ -5753,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);
@@ -5773,6 +5969,7 @@ namespace ServerManagerTool.Lib
this.ClearNullableValue(MaxTributeItemsProperty);
this.ClearValue(NoTransferFromFilteringProperty);
+ this.ClearValue(DisableCustomFoldersInTributeInventoriesProperty);
this.ClearValue(OverrideTributeCharacterExpirationSecondsProperty);
this.ClearValue(OverrideTributeItemExpirationSecondsProperty);
this.ClearValue(OverrideTributeDinoExpirationSecondsProperty);
@@ -5847,6 +6044,7 @@ namespace ServerManagerTool.Lib
this.ClearValue(DisableWorldBuffsProperty);
this.ClearValue(EnableWorldBuffScalingProperty);
this.ClearValue(WorldBuffScalingEfficacyProperty);
+ this.ClearValue(AdjustableMutagenSpawnDelayMultiplierProperty);
this.ClearValue(MaxHexagonsPerCharacterProperty);
this.ClearValue(DisableHexagonStoreProperty);
@@ -5936,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);
@@ -5946,6 +6145,7 @@ namespace ServerManagerTool.Lib
this.ClearValue(StructurePickupTimeAfterPlacementProperty);
this.ClearValue(StructurePickupHoldDurationProperty);
this.ClearValue(AllowIntegratedSPlusStructuresProperty);
+ this.ClearValue(IgnoreStructuresPreventionVolumesProperty);
this.ClearValue(GenesisUseStructuresPreventionVolumesProperty);
}
@@ -5955,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)
@@ -6054,6 +6260,9 @@ namespace ServerManagerTool.Lib
case ServerProfileCategory.SupplyCrateOverrides:
SyncSupplyCrateOverridesSection(sourceProfile);
break;
+ case ServerProfileCategory.ExcludeItemIndicesOverrides:
+ SyncExcludeItemIndicesOverridesSection(sourceProfile);
+ break;
case ServerProfileCategory.StackSizeOverrides:
SyncStackSizeOverridesSection(sourceProfile);
break;
@@ -6083,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);
@@ -6109,6 +6323,7 @@ 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);
@@ -6260,11 +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(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);
@@ -6327,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;
@@ -6347,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();
}
@@ -6506,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);
@@ -6526,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);
@@ -6600,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);
@@ -6705,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);
@@ -6715,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);
}
@@ -6727,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/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/UserControls/ServerSettingsControl.xaml b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml
index f0d40213..e6e510d3 100644
--- a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml
+++ b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml
@@ -1041,6 +1041,8 @@
+
+
@@ -1051,38 +1053,50 @@
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
@@ -1099,24 +1113,26 @@
-
-
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3450,6 +3506,7 @@
+
@@ -3522,6 +3579,7 @@
+
@@ -6093,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/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/ServerManager.Common/Converters/Int64RangeValueConverter.cs b/src/ServerManager.Common/Converters/Int64RangeValueConverter.cs
new file mode 100644
index 00000000..73a23c9e
--- /dev/null
+++ b/src/ServerManager.Common/Converters/Int64RangeValueConverter.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+using System.Windows.Markup;
+
+namespace ServerManagerTool.Common.Converters
+{
+ public class Int64RangeValueConverter : MarkupExtension, IValueConverter
+ {
+ public const string DEFAULT_CULTURE_CODE = "en-US";
+ protected Int64 MinValue { get; set; }
+ protected Int64 MaxValue { get; set; }
+
+ public Int64RangeValueConverter()
+ {
+ MinValue = Int64.MinValue;
+ MaxValue = Int64.MaxValue;
+ }
+
+ public Int64RangeValueConverter(Int64 minValue)
+ {
+ MinValue = minValue;
+ MaxValue = Int64.MaxValue;
+ }
+
+ public Int64RangeValueConverter(Int64 minValue, Int64 maxValue)
+ {
+ MinValue = minValue;
+ MaxValue = maxValue;
+ }
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var scaledValue = System.Convert.ToInt64(value);
+
+ var sliderValue = scaledValue;
+ sliderValue = Math.Max(MinValue, sliderValue);
+ sliderValue = Math.Min(MaxValue, sliderValue);
+ return sliderValue;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is null || value.ToString() == string.Empty)
+ return default;
+
+ if (!Int64.TryParse(value.ToString(), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.GetCultureInfo(DEFAULT_CULTURE_CODE), out Int64 sliderValue))
+ return default;
+
+ sliderValue = Math.Max(MinValue, sliderValue);
+ sliderValue = Math.Min(MaxValue, sliderValue);
+
+ var scaledValue = sliderValue;
+ return scaledValue;
+ }
+
+ public override object ProvideValue(IServiceProvider serviceProvider)
+ {
+ return this;
+ }
+ }
+}