namespace GsConfigTool.Models;
public class PalworldServerSettings
{
// ── Server Info ───────────────────────────────────────────────────────
public string ServerName { get; set; } = "My Palworld Server";
public string ServerDescription { get; set; } = "";
public string AdminPassword { get; set; } = "adminpassword";
public string ServerPassword { get; set; } = "";
public string PublicIP { get; set; } = "";
public int PublicPort { get; set; } = 8211;
public int CoopPlayerMaxNum { get; set; } = 4;
public int ServerPlayerMaxNum { get; set; } = 32;
public string Region { get; set; } = "";
// ── Gameplay ──────────────────────────────────────────────────────────
public string Difficulty { get; set; } = "None";
public float DayTimeSpeedRate { get; set; } = 1.0f;
public float NightTimeSpeedRate { get; set; } = 1.0f;
public float ExpRate { get; set; } = 1.0f;
public float PalCaptureRate { get; set; } = 1.0f;
public float PalSpawnNumRate { get; set; } = 1.0f;
public float EnemyDropItemRate { get; set; } = 1.0f;
public string DeathPenalty { get; set; } = "All";
// ── Pal Combat ────────────────────────────────────────────────────────
public float PalDamageRateAttack { get; set; } = 1.0f;
public float PalDamageRateDefense { get; set; } = 1.0f;
public float PalStomachDecreaseRate { get; set; } = 1.0f;
public float PalStaminaDecreaseRate { get; set; } = 1.0f;
public float PalAutoHPRegeneRate { get; set; } = 1.0f;
public float PalAutoHpRegeneRateInSleep { get; set; } = 1.0f;
// ── Player Combat ─────────────────────────────────────────────────────
public float PlayerDamageRateAttack { get; set; } = 1.0f;
public float PlayerDamageRateDefense { get; set; } = 1.0f;
public float PlayerStomachDecreaseRate { get; set; } = 1.0f;
public float PlayerStaminaDecreaseRate { get; set; } = 1.0f;
public float PlayerAutoHPRegeneRate { get; set; } = 1.0f;
public float PlayerAutoHpRegeneRateInSleep { get; set; } = 1.0f;
// ── Building ──────────────────────────────────────────────────────────
public float BuildObjectDamageRate { get; set; } = 1.0f;
public float BuildObjectDeteriorationDamageRate { get; set; } = 1.0f;
public int BaseCampMaxNum { get; set; } = 128;
public int BaseCampWorkerMaxNum { get; set; } = 15;
// ── Collection ────────────────────────────────────────────────────────
public float CollectionDropRate { get; set; } = 1.0f;
public float CollectionObjectHpRate { get; set; } = 1.0f;
public float CollectionObjectRespawnSpeedRate { get; set; } = 1.0f;
// ── PvP / Multiplayer ─────────────────────────────────────────────────
public bool bIsPvP { get; set; } = false;
public bool bEnablePlayerToPlayerDamage { get; set; } = false;
public bool bEnableFriendlyFire { get; set; } = false;
public bool bEnableInvaderEnemy { get; set; } = true;
public bool bCanPickupOtherGuildDeathPenaltyDrop { get; set; } = false;
public bool bEnableDefenseOtherGuildPlayer { get; set; } = false;
// ── World ─────────────────────────────────────────────────────────────
public bool bEnableFastTravel { get; set; } = true;
public bool bIsStartLocationSelectByMap { get; set; } = true;
public bool bExistPlayerAfterLogout { get; set; } = false;
public bool bEnableNonLoginPenalty { get; set; } = true;
public int DropItemMaxNum { get; set; } = 3000;
public float DropItemAliveForPlayerTime { get; set; } = 600.0f;
public bool bEnableAimAssistPad { get; set; } = true;
public bool bEnableAimAssistKeyboard { get; set; } = false;
public bool bActiveUNKO { get; set; } = false;
// ── RCON / Auth ───────────────────────────────────────────────────────
public bool RCONEnabled { get; set; } = false;
public int RCONPort { get; set; } = 25575;
public bool bUseAuth { get; set; } = true;
public string BanListURL { get; set; } = "https://api.palworldgame.com/api/banlist.txt";
}