using GsConfigTool.Models;
namespace GsConfigTool.Services;
public static class TemplateService
{
public static IReadOnlyList<ServerTemplate> GetArkTemplates() => new[]
{
new ServerTemplate
{
Name = "Vanilla (Standard)",
Description = "Genau wie die offiziellen ARK-Server – keine Änderungen an den Raten.",
Settings = new ArkServerSettings()
},
new ServerTemplate
{
Name = "Casual PvE (5x)",
Description = "Entspanntes PvE-Erlebnis mit erhöhten Raten für Solo- und Kleingruppen-Spieler.",
Settings = new ArkServerSettings
{
PvE = true,
XPMultiplier = 5f,
TamingSpeedMultiplier = 5f,
HarvestAmountMultiplier = 5f,
ResourcesRespawnPeriodMultiplier = 0.5f,
MatingIntervalMultiplier = 0.5f,
EggHatchSpeedMultiplier = 10f,
BabyMatureSpeedMultiplier = 10f,
BabyFoodConsumptionSpeedMultiplier = 0.5f,
DayCycleSpeedScale = 1.0f,
OverrideOfficialDifficulty = 5f,
DisableStructureDecayPvE = true,
MaxNumberOfPlayersInTribe = 10,
GlobalSpoilingTimeMultiplier = 3f,
GlobalItemDecompositionTimeMultiplier = 3f,
MaxTamedDinos = 10000
}
},
new ServerTemplate
{
Name = "10x Boosted",
Description = "Stark geboosteter Server – ideal für schnelles Vorankommen.",
Settings = new ArkServerSettings
{
XPMultiplier = 10f,
TamingSpeedMultiplier = 10f,
HarvestAmountMultiplier = 10f,
ResourcesRespawnPeriodMultiplier = 0.1f,
MatingIntervalMultiplier = 0.1f,
EggHatchSpeedMultiplier = 25f,
BabyMatureSpeedMultiplier = 25f,
BabyFoodConsumptionSpeedMultiplier = 0.25f,
BabyImprintAmountMultiplier = 3f,
OverrideOfficialDifficulty = 10f,
DifficultyOffset = 1f,
MaxTamedDinos = 15000,
GlobalSpoilingTimeMultiplier = 5f,
GlobalItemDecompositionTimeMultiplier = 5f,
UnlockAllEngrams = true
}
},
new ServerTemplate
{
Name = "Competitive PvP",
Description = "Ausgewogener PvP-Server mit leicht erhöhten Raten und harter Spielmechanik.",
Settings = new ArkServerSettings
{
PvE = false,
XPMultiplier = 3f,
TamingSpeedMultiplier = 3f,
HarvestAmountMultiplier = 3f,
ResourcesRespawnPeriodMultiplier = 0.5f,
MatingIntervalMultiplier = 0.5f,
EggHatchSpeedMultiplier = 5f,
BabyMatureSpeedMultiplier = 5f,
BabyFoodConsumptionSpeedMultiplier = 0.5f,
OverrideOfficialDifficulty = 6f,
DifficultyOffset = 1f,
PreventOfflinePvP = true,
MaxNumberOfPlayersInTribe = 6,
MaxTamedDinos = 5000
}
},
new ServerTemplate
{
Name = "Hardcore Survival",
Description = "Hardcore-Modus – Tod ist permanent, alles auf erschwertem Schwierigkeitsgrad.",
Settings = new ArkServerSettings
{
ServerHardcore = true,
PvE = false,
XPMultiplier = 0.5f,
TamingSpeedMultiplier = 0.5f,
HarvestAmountMultiplier = 0.5f,
DinoDamageMultiplier = 2f,
DinoResistanceMultiplier = 0.5f,
OverrideOfficialDifficulty = 10f,
DifficultyOffset = 1f,
PlayerDamageMultiplier = 0.75f,
PlayerResistanceMultiplier = 0.75f
}
},
new ServerTemplate
{
Name = "Singleplayer / Offline (Boosted)",
Description = "Optimiert für Solo-Spieler – sehr hohe Raten für ein vollständiges Erlebnis ohne Grind.",
Settings = new ArkServerSettings
{
PvE = true,
XPMultiplier = 15f,
TamingSpeedMultiplier = 20f,
HarvestAmountMultiplier = 10f,
ResourcesRespawnPeriodMultiplier = 0.1f,
MatingIntervalMultiplier = 0.01f,
EggHatchSpeedMultiplier = 50f,
BabyMatureSpeedMultiplier = 50f,
BabyFoodConsumptionSpeedMultiplier = 0.1f,
BabyImprintAmountMultiplier = 10f,
OverrideOfficialDifficulty = 5f,
DisableStructureDecayPvE = true,
UnlockAllEngrams = true,
MaxTamedDinos = 20000,
GlobalSpoilingTimeMultiplier = 10f
}
}
};
public static IReadOnlyList<ServerTemplate> GetPalworldTemplates() => new[]
{
new ServerTemplate
{
Name = "Vanilla (Standard)",
Description = "Offizielle Standardeinstellungen.",
PalSettings = new PalworldServerSettings()
},
new ServerTemplate
{
Name = "Casual (5x)",
Description = "Entspanntes Spielerlebnis mit geboosteten Raten.",
PalSettings = new PalworldServerSettings
{
ExpRate = 5f,
PalCaptureRate = 3f,
PalSpawnNumRate = 1.5f,
CollectionDropRate = 3f,
EnemyDropItemRate = 3f,
DayTimeSpeedRate = 0.5f,
NightTimeSpeedRate = 2f,
DeathPenalty = "Item"
}
},
new ServerTemplate
{
Name = "10x Boosted",
Description = "Stark geboosteter Server für schnelles Vorankommen.",
PalSettings = new PalworldServerSettings
{
ExpRate = 10f,
PalCaptureRate = 5f,
PalSpawnNumRate = 2f,
CollectionDropRate = 10f,
CollectionObjectRespawnSpeedRate = 5f,
EnemyDropItemRate = 10f,
DeathPenalty = "None",
BuildObjectDeteriorationDamageRate = 0f
}
},
new ServerTemplate
{
Name = "PvP Competitive",
Description = "Ausgewogener PvP-Server.",
PalSettings = new PalworldServerSettings
{
bIsPvP = true,
bEnablePlayerToPlayerDamage = true,
ExpRate = 3f,
PalCaptureRate = 2f,
CollectionDropRate = 3f,
EnemyDropItemRate = 3f,
DeathPenalty = "ItemAndEquipment"
}
}
};
}
public class ServerTemplate
{
public string Name { get; set; } = "";
public string Description { get; set; } = "";
public ArkServerSettings? Settings { get; set; }
public PalworldServerSettings? PalSettings { get; set; }
}