Repositories / GSConfigTool / GsConfigTool / Models / ArkServerSettings.cs
ArkServerSettings.cs 8.2 KB
git clone https://xarmina.eu/git/gsconfigtool Raw Download
using System.Collections.ObjectModel;

namespace GsConfigTool.Models;

public class ArkServerSettings
{
    // ── Session ──────────────────────────────────────────────────────────
    public string ServerName { get; set; } = "My ARK Server";
    public string ServerPassword { get; set; } = "";
    public string AdminPassword { get; set; } = "adminpassword";
    public int MaxPlayers { get; set; } = 70;
    public int QueryPort { get; set; } = 27015;
    public int GamePort { get; set; } = 7777;
    public string Map { get; set; } = "TheIsland";
    public string ActiveMods { get; set; } = "";

    // ── Server Mode ───────────────────────────────────────────────────────
    public bool PvE { get; set; } = false;
    public bool ServerHardcore { get; set; } = false;
    public bool CrosshairEnabled { get; set; } = true;
    public bool MapPlayerLocation { get; set; } = true;
    public bool EnableBattleEye { get; set; } = true;
    public bool AllowThirdPersonPlayer { get; set; } = true;
    public bool ShowMapPlayerLocation { get; set; } = true;
    public bool PreventOfflinePvP { get; set; } = false;
    public bool PreventTribeAlliances { get; set; } = false;
    public float KickIdlePlayersPeriod { get; set; } = 3600.0f;

    // ── XP & Rates ────────────────────────────────────────────────────────
    public float XPMultiplier { get; set; } = 1.0f;
    public float TamingSpeedMultiplier { get; set; } = 1.0f;
    public float HarvestAmountMultiplier { get; set; } = 1.0f;
    public float HarvestHealthMultiplier { get; set; } = 1.0f;
    public float ResourcesRespawnPeriodMultiplier { get; set; } = 1.0f;
    public float DayCycleSpeedScale { get; set; } = 1.0f;
    public float DayTimeSpeedScale { get; set; } = 1.0f;
    public float NightTimeSpeedScale { get; set; } = 1.0f;
    public float DifficultyOffset { get; set; } = 0.2f;
    public float OverrideOfficialDifficulty { get; set; } = 5.0f;

    // ── Breeding ──────────────────────────────────────────────────────────
    public float MatingIntervalMultiplier { get; set; } = 1.0f;
    public float MatingSpeedMultiplier { get; set; } = 1.0f;
    public float EggHatchSpeedMultiplier { get; set; } = 1.0f;
    public float BabyMatureSpeedMultiplier { get; set; } = 1.0f;
    public float BabyFoodConsumptionSpeedMultiplier { get; set; } = 1.0f;
    public float BabyCuddleIntervalMultiplier { get; set; } = 1.0f;
    public float BabyImprintAmountMultiplier { get; set; } = 1.0f;
    public float BabyImprintingStatScaleMultiplier { get; set; } = 1.0f;
    public float LayEggIntervalMultiplier { get; set; } = 1.0f;

    // ── Player Stats ──────────────────────────────────────────────────────
    public float PlayerDamageMultiplier { get; set; } = 1.0f;
    public float PlayerResistanceMultiplier { get; set; } = 1.0f;
    public float PlayerWaterDrainMultiplier { get; set; } = 1.0f;
    public float PlayerFoodDrainMultiplier { get; set; } = 1.0f;
    public float PlayerStaminaDrainMultiplier { get; set; } = 1.0f;
    public float PlayerHealthRecoveryMultiplier { get; set; } = 1.0f;
    public float PlayerHarvestingDamageMultiplier { get; set; } = 1.0f;
    public float PlayerTurretDamageMultiplier { get; set; } = 1.0f;
    public int OverrideMaxExperiencePointsPlayer { get; set; } = 0;

    // ── Dino Stats ────────────────────────────────────────────────────────
    public float DinoDamageMultiplier { get; set; } = 1.0f;
    public float DinoResistanceMultiplier { get; set; } = 1.0f;
    public float TamedDinoDamageMultiplier { get; set; } = 1.0f;
    public float TamedDinoResistanceMultiplier { get; set; } = 1.0f;
    public float DinoHarvestingDamageMultiplier { get; set; } = 1.0f;
    public float DinoTurretDamageMultiplier { get; set; } = 1.0f;
    public int MaxTamedDinos { get; set; } = 5000;
    public int MaxPersonalTamedDinos { get; set; } = 500;
    public int OverrideMaxExperiencePointsDino { get; set; } = 0;

    // ── Structures ────────────────────────────────────────────────────────
    public bool DisableStructureDecayPvE { get; set; } = false;
    public float StructureResistanceMultiplier { get; set; } = 1.0f;
    public float StructureDamageRepairCooldown { get; set; } = 180.0f;
    public float PerPlatformMaxStructuresMultiplier { get; set; } = 1.0f;
    public bool AllowFlyerCarryPvE { get; set; } = false;

    // ── Tribe ─────────────────────────────────────────────────────────────
    public int MaxNumberOfPlayersInTribe { get; set; } = 0;
    public int MaxAlliancesPerTribe { get; set; } = 10;
    public int MaxTribesPerAlliance { get; set; } = 10;

    // ── Items & World ─────────────────────────────────────────────────────
    public float GlobalSpoilingTimeMultiplier { get; set; } = 1.0f;
    public float GlobalItemDecompositionTimeMultiplier { get; set; } = 1.0f;
    public float GlobalCorpseDecompositionTimeMultiplier { get; set; } = 1.0f;
    public float CropGrowthSpeedMultiplier { get; set; } = 1.0f;
    public float FuelConsumptionIntervalMultiplier { get; set; } = 1.0f;
    public float CustomRecipeEffectivenessMultiplier { get; set; } = 1.0f;
    public float CustomRecipeSkillMultiplier { get; set; } = 1.0f;
    public float PassiveTameFoodConsumptionMultiplier { get; set; } = 1.0f;

    // ── Loot / Engrams / Creatures ────────────────────────────────────────
    public List<LootDropOverride> LootDropOverrides { get; set; } = new();
    public List<EngramOverride> EngramOverrides { get; set; } = new();
    public List<CreatureMultiplier> CreatureMultipliers { get; set; } = new();
    public bool UnlockAllEngrams { get; set; } = false;

    // ── PerLevelStats ─────────────────────────────────────────────────────
    public PerLevelStats PerLevelStats { get; set; } = new();
    public bool UseCustomPerLevelStats { get; set; } = false;

    // ── Stack Sizes ───────────────────────────────────────────────────────
    public List<StackSizeOverride> StackSizeOverrides { get; set; } = new();

    // ── Harvest ───────────────────────────────────────────────────────────
    public List<HarvestMultiplier> HarvestMultipliers { get; set; } = new();

    // ── Spawn Overrides ───────────────────────────────────────────────────
    public List<SpawnOverride> SpawnOverrides { get; set; } = new();

    // ── Cluster ───────────────────────────────────────────────────────────
    public ArkClusterSettings Cluster { get; set; } = new();

    // ── RCON ──────────────────────────────────────────────────────────────
    public ArkRCONSettings RCON { get; set; } = new();
}
24Fire Wuppertaler Tafel Romeo