Skip to content

🛠️ Config.json

Config.json is generated in <PalServer>/Pal/Binaries/Win64/PalDefender/ on first start. Stop the server before editing it, or use /reloadcfg after saving changes.

Generated settings

PalDefender writes the current setting set back to this file. Keys not listed below are obsolete, migration-only, or unavailable in the current public build.

General and enforcement

Key Type Default Description
version string Current version Config schema/version marker maintained by PalDefender.
MOTD array Three messages Join messages. Supports {ServerName}, {PlayerName}, {Difficulty}, {DeathPenalty}, {AllowGlobalPalboxExport}, {AllowGlobalPalboxImport}, {IsPvP}, {IsHardcore}, {FriendlyFire}, {DayTimeSpeedRate}, {NightTimeSpeedRate}, {ExpRate}, {PalCaptureRate}, {PalSpawnNumRate}, {PalEggDefaultHatchingTime}, {EnemyDropItemRate}, {PalStomachDecreaceRate}, {PalStaminaDecreaceRate}, {BaseCampMaxNumInGuild}, {SupplyDropSpan}, and {MaxBuildingLimitNum}.
exitServerOnStartupFailure bool true Stops the server if PalDefender cannot initialize. Some hosts may interpret this as a crash and restart repeatedly.
preventAdminPasswordInChat bool true Blocks the admin password from being sent as chat text.
shouldWarnCheaters bool true Warns a player when an automatic detection triggers.
shouldWarnCheatersReason bool false Includes the detection reason in that warning.
shouldKickCheaters bool true Kicks detected cheaters unless a stronger enabled action applies.
shouldBanCheaters bool false Account-bans detected cheaters.
shouldIPBanCheaters bool false IP-bans detected cheaters.
blockEmergencyRespawn bool true Blocks the Menu → Emergency Respawn action.

RCON and logging

Key Type Default Description
RCONTimeout float 31.0 Seconds before an inactive RCON connection times out.
RCONbase64 bool false Enables base64-encoded RCON commands.
logNetworking bool false Writes supported network logging. Network logging is disabled in the current public build.
logNetworkingToConsole bool true Mirrors network logging to the console when network logging is available.
logChat bool true Logs Global, Guild, and Say chat.
logRCON bool false Logs RCON commands.
logPlayerUID bool false Includes PlayerUID in relevant logs and anti-cheat webhooks.
logPlayerIP bool true Includes IP addresses in relevant logs and anti-cheat webhooks.
logPlayerDeaths bool true Logs player deaths and kills.
logPlayerLogins bool true Logs player joins and leaves.
logPlayerBuildings bool true Logs supported build, cancellation, dismantle, and Palbox-move activity.
logPlayerSummons bool true Logs player raid-boss summons.
logPlayerCaptures bool true Reserved compatibility setting. Capture logging is disabled in 1.9.0 because the available event is unreliable.
logPlayerDamage bool false Logs player-originated damage events and their reported native/base damage values to the server console. Works independently of damage cheat detection.
BannedCampWorker array Panthalus variants Character IDs that cannot be assigned at a base. Matching is case-insensitive; variants such as BOSS_... must be listed separately.
logHelicopterKills bool true Logs combat-helicopter kills.
logCraftings bool true Logs player crafting.
logTechUnlocks bool true Logs technology unlocks.
logOpenOilrigBoxes bool true Logs Oil Rig End Goal Box events.
OilrigGoalBoxLocktime int 300 Seconds the Oil Rig End Goal Box remains locked.

Discord webhooks

PalWebhooks is an object. Leave an individual URL empty to disable that destination. Webhook delivery is queued, so bursts are staggered instead of blocking the game thread.

Nested key Sends
webhookURL_Chat Global and Say chat messages.
webhookURL_GuildChat Guild chat messages with the guild name.
webhookURL_Commands Commands run through in-game chat, including the administrator and full command.
webhookURL_Deaths Deaths and kills. Requires announcePlayerDeaths or logPlayerDeaths.
webhookURL_JoinLeave Join/leave events when announceConnections is enabled; respects dontAnnounceAdminConnections.
webhookURL_Summons Player/admin summon announcements and complete tracked-summon damage results.
webhookURL_Oilrig Oil Rig boxes and helicopter kills when the corresponding announce... setting is enabled.
webhookURL_AntiCheats Automatic and manual-review anti-cheat detections. UID/IP inclusion follows logPlayerUID and logPlayerIP.
"PalWebhooks": {
    "webhookURL_Chat": "",
    "webhookURL_GuildChat": "",
    "webhookURL_Commands": "",
    "webhookURL_Deaths": "",
    "webhookURL_JoinLeave": "",
    "webhookURL_Summons": "",
    "webhookURL_Oilrig": "",
    "webhookURL_AntiCheats": ""
}

Administration, chat, and announcements

Key Type Default Description
useAdminWhitelist bool true Restricts admin login/commands to adminIPs.
adminAutoLogin bool false Automatically enables admin mode for a joining whitelisted IP.
adminIPs array 127.0.0.1 Exact IPs and supported wildcard entries allowed to administer the server.
bannedChatWords array Common RMT terms Case-insensitive chat filter terms.
bannedNames array Known abuse names Player names rejected during login.
allowAdminCheats bool false Allows administrators to use commands in adminCheats and bypass selected protections. The Admin Gun itself only requires active in-game administrator status.
allowGodmodeOnehit bool false Allows Godmode users to deal one-hit damage.
adminCheats array Generated list Commands treated as admin cheats when allowAdminCheats is disabled. RCON is not blocked by this list.
announceConnections bool false Announces joins/leaves in chat and enables the join/leave webhook source.
dontAnnounceAdminConnections bool true Hides administrator joins/leaves from those announcements.
announcePunishments bool false Announces automatic cheat kicks/bans.
announcePlayerDeaths bool false Announces player deaths in chat.
announceOpenOilrigBoxes bool false Announces Oil Rig box events and enables their webhook source.
announceHelicopterKills bool false Announces helicopter kills and enables their webhook source.
announcePlayerSummons bool false Announces player raid-boss summons.
announceAdminSummons bool false Announces Pals spawned through administrative summon features.
announceAdminSummonsKill bool true Announces kills/deaths of administratively summoned Pals.
chatBypassWait bool true Removes the normal chat wait between messages.
chatMessageMaxLen int 128 Maximum accepted chat-message length.
useWhitelist bool false Enables WhiteList.json.
whitelistMessage string Generated text Message shown to a rejected non-whitelisted player.
steamidProtection bool true Rejects duplicate simultaneous use of a UserId.

Gameplay validation

Key Type Default Description
pvpMaxToBuildingDamage int 100 Maximum permitted PvP damage to buildings.
pvpMaxToPalDamage int 1000 Maximum permitted PvP damage to Pals.
pveMaxToPalBanThreshold int 900000 PvE Pal-damage threshold used by cheat detection.
droppedPalPickupRange int 99999 Maximum accepted distance for a dropped-Pal pickup.
treeLimiter float 0.1 Minimum seconds between tree destruction events used to limit foliage bursts.
disableIllegalItemProtection bool false Disables invalid/modded item protection.
disableButchering bool false Blocks Pal butchering.
disableRenaming bool false Blocks player renaming.
disablePalRenaming bool false Blocks Pal renaming.
doActionUponIllegalPalStats bool true Applies the configured cheat action for impossible Pal stats.
preventUnsupportedWorkbenchRecipes bool true Blocks recipes unsupported by the requested workbench.
preventDoctorSurgiExploit bool true Detects/blocks the Doctor Surgi exploit.
doActionUponDoctorSurgiExploit bool true Applies the configured cheat action for that exploit.
palStatsMaxRank int -1 Maximum Pal enhancement rank; -1 uses automatic/current game limits.
bannedTechnologies array Empty Technology IDs blocked from learning and removed when detected.

Anti-cheat feature switches

Key Type Default Description
antiDupeEnabled bool true Compatibility switch for the legacy AntiDupe feature; inactive in the current release build.
antiDupeBuildRateLimitSeconds float 1.5 Legacy minimum interval between builds; currently inactive.
antiDupeDismantleRateLimitSeconds float 1.5 Legacy minimum interval between dismantles; currently inactive.
antiDupeShowBlockMessage bool true Legacy block-message switch; currently inactive.
antiDupeBuildMessage string Generated text Legacy build-block message; currently inactive.
antiDupeDismantleMessage string Generated text Legacy dismantle-block message; currently inactive.
antiVacuumEnabled bool true Enables remote pickup (vacuum) protection.
antiVacuumBlockAutoPickup bool true Applies anti-vacuum checks to normal auto-pickups.
antiVacuumBlockRelicObtain bool true Applies checks to relic collection.
antiVacuumBlockNoteObtain bool true Applies checks to note collection.
antiVacuumBlockEggPickup bool true Applies checks to egg pickup.
antiVacuumMaxPickupDistance float 800.0 Maximum permitted pickup distance for protected requests.
antiVacuumShowBlockMessage bool true Shows a player-facing message when a pickup is blocked.
antiVacuumBlockMessage string Generated text Message shown for a blocked remote pickup.
staminaCheatDetectionEnabled bool true Enables suspicious stamina-action detection.
baseCampDupeDetectionEnabled bool true Enables base-camp duplication detection.
damageCheatDetectionEnabled bool true Enables damage cheat detection.
damageCheatDetectionTolerancePercent float 5.0 Permitted percentage difference between reported native damage and the reconstructed BasePower × AttackWithBuff value.
damageCheatDetectionWeaponBasePowerMultiplier float 1.5 Maximum permitted weapon BasePower as a multiplier of the equipped weapon's static AttackValue.
ammoCheatDetectionEnabled bool true Enables ammunition/weapon-state cheat detection.

The antiDupe... keys are still generated for configuration compatibility, but the legacy AntiDupe feature is disabled in the current release build. Do not rely on these controls until the feature is enabled again.

Legacy migration keys

PalImport_Disabled, PalImport_BanIfPalIsImpossible, PalImport_BannedPalIDs, PalImport_AllowGenderNone, PalImport_MaxLevel, PalImport_MaxRank, PalImport_MaxSoulHP, PalImport_MaxSoulATK, PalImport_MaxSoulDEF, PalImport_MaxSoulCS, and PalImport_MaxIV are read only to migrate older installations to Pals/ImportRules/Default.json. They are no longer written to current Config.json files.

The old RCONUsePacketIdFix, bannedIPs, bannedMessage, isChineseCmd, and blockTowerBossCapture keys are not part of the current configuration. Ban records belong in Banlist.json.