A Palworld dedicated server keeps almost all of its settings in one file, PalWorldSettings.ini, and almost all of them sit on one very long line called OptionSettings. This guide explains where that file lives, why you start from DefaultPalWorldSettings.ini, what the rates people search for actually do, how to set the name, passwords, ports and the REST API, where the world is saved, how to move a co-op world onto a dedicated server, and the mistakes that quietly undo your changes.
Which version this covers. We installed the dedicated server with SteamCMD (app 2394010, anonymous login) on Linux. It reported itself as v1.0.5.102999. Every default below is copied from the DefaultPalWorldSettings.ini that build shipped, and where we write "in our test" we started that server and checked what it did, mostly through its REST API. Descriptions come from Pocketpair's official server documentation. Palworld changes its settings between updates, and several defaults changed with 1.0, so an older guide may show different values.
The file is under the server's install folder, in a folder named after the operating system:
| Server | File |
|---|---|
| Windows | Pal\Saved\Config\WindowsServer\PalWorldSettings.ini |
| Linux | Pal/Saved/Config/LinuxServer/PalWorldSettings.ini |
These folders don't exist until the server has started once. In our test the first start created PalWorldSettings.ini as an empty file (one blank line) and ran on built-in defaults. Editing the wrong folder is a classic mistake: a Windows server never reads the LinuxServer file, and the other way round.
The install folder also contains DefaultPalWorldSettings.ini, which lists every setting with its default value. Its own first lines say "Changes to this file will NOT be reflected on the server". The official instructions are to start the server once, stop it, copy that file over the empty PalWorldSettings.ini and edit the copy:
You don't strictly need the full list. In our test a file with only four settings in its OptionSettings line worked, and everything it left out kept its default. Copying the default file is still the easier route, because it gives you every key name, spelled the way the server expects (including oddities like PlayerStomachDecreaceRate).
The file has a section header and then one line:
Everything goes inside the brackets as Key=Value pairs separated by commas. Text values are in double quotes. True/false values are written True and False. We tried the usual hand-editing mistakes on the 1.0.5 server to see what happens:
ServerName=My Pal Server): the server name fell back to "Default Palworld Server". Settings after it on the line still applied.None of these produced an error. The server simply started with different settings from the ones you wrote, so check the result after a restart (the REST API below is a quick way).
ExpRate while it was running: the running server ignored it, and when we stopped the server normally (SIGINT and SIGTERM both), it wrote the settings it had loaded back into the file. Our edit was gone. Stop the server, edit, then start it.
All rates are multipliers where 1.000000 is the default. The descriptions are the official ones.
| Setting | Default | What it does |
|---|---|---|
| ExpRate | 1.0 | EXP gain multiplier. |
| PalCaptureRate | 1.0 | Capture rate multiplier. Higher means easier catches. |
| PalSpawnNumRate | 1.0 | How many Pals spawn. The official docs warn that it affects performance. |
| WorkSpeedRate | 1.0 | Work speed multiplier. |
| DayTimeSpeedRate / NightTimeSpeedRate | 1.0 | How fast day and night pass. A lower night value makes nights last longer. |
| PalEggDefaultHatchingTime | 1.0 | Hours to hatch a Huge Egg; smaller eggs take less. The default is 1 hour in 1.0.5. Older guides say 72. |
| PlayerDamageRateAttack / PlayerDamageRateDefense | 1.0 | Damage players deal / damage players take. |
| PalDamageRateAttack / PalDamageRateDefense | 1.0 | Damage Pals deal / damage Pals take. |
| PlayerStomachDecreaceRate, PalStomachDecreaceRate | 1.0 | How fast players and Pals get hungry. |
| PlayerStaminaDecreaceRate, PalStaminaDecreaceRate | 1.0 | How fast stamina drains. |
| CollectionDropRate | 1.0 | How much you get from gathering. |
| CollectionObjectRespawnSpeedRate | 1.0 | Respawn interval of trees, rocks and other gatherables. |
| EnemyDropItemRate | 1.0 | Dropped item quantity multiplier. |
| ItemWeightRate | 1.0 | Item weight multiplier. |
| EquipmentDurabilityDamageRate | 1.0 | How fast equipment wears out. |
| BuildObjectDeteriorationDamageRate | 1.0 | Building decay speed. |
DeathPenalty decides what a player drops on death. The default in 1.0.5 is Item. Many older guides say All.
| Value | What is dropped |
|---|---|
| None | Nothing. |
| Item | All items except equipment. |
| ItemAndEquipment | All items, equipment included. |
| All | All items and all Pals in the team. |
bCanPickupOtherGuildDeathPenaltyDrop (default False) decides whether other guilds can pick that drop up. For harder modes there is also bHardcore (no respawn after death) and bPalLost (Pals are lost for good on death), both False by default.
Difficulty=None is in the default file, but the official configuration page doesn't list it. In our test, Difficulty=Hard left every rate the server reported at 1.0, so set the rates you want directly instead of counting on it.
| Setting | Default | What it does |
|---|---|---|
| BaseCampMaxNum | 128 | Total number of bases on the whole server. |
| BaseCampMaxNumInGuild | 4 | Bases per guild (official maximum 10). More bases mean more server load. |
| BaseCampWorkerMaxNum | 15 | Pals working at one base (official maximum 50). Also raises load. |
| MaxBuildingLimitNum | 0 | Structures per player; 0 means no limit. |
| GuildPlayerMaxNum | 20 | Players per guild. |
| bAutoResetGuildNoOnlinePlayers | False | If no member of a guild logs in for AutoResetGuildTimeNoOnlinePlayers hours (default 72), the guild's structures and base Pals are deleted. |
| GuildRejoinCooldownMinutes | 0 | How long a player waits before rejoining a guild. |
| bEnableInvaderEnemy | True | Raids on bases. |
| bEnableFastTravel | True | Fast travel; bEnableFastTravelOnlyBaseCamp limits it to travel between bases. |
| bIsUseBackupSaveData | True | Keeps rolling world backups in a backup folder next to the save. It adds disk load. |
PvP takes three settings, all False by default: bIsPvP, bEnablePlayerToPlayerDamage and bEnableDefenseOtherGuildPlayer. Pocketpair calls PvP a trial feature, and its PvP page suggests pairing it with stricter rules: bAllowEnhanceStat_Health=False and bAllowEnhanceStat_Attack=False to stop stat stacking, DenyTechnologyList to disable specific technologies, base-only fast travel, and bExistPlayerAfterLogout=True so logging out doesn't get anyone out of a fight.
ServerName="..." and ServerDescription="...": always in quotes.ServerPassword: the password players need to join. Empty means none.AdminPassword: players who type /AdminPassword <password> in chat get admin commands such as /Save, /KickPlayer, /BanPlayer and /Shutdown. It is also the password for RCON and the REST API. Admin commands don't work until it is set.ServerPlayerMaxNum: maximum players, 32 by default. The -players= launch option wins over it. In our test, ServerPlayerMaxNum=10 plus -players=20 gave a 20-player server.CrossplayPlatforms: which platforms may connect. The default is (Steam,Xbox,PS5,Mac).
Community server (public listing). A dedicated server is joined by IP address and port. Start it with the -publiclobby launch option and it also shows up in the in-game Community Server list. Pocketpair's docs say Xbox and PS5 players can only join a community server. If the server picks the wrong address for the list, set -publicip= and -publicport= (or PublicIP/PublicPort in the file); these change what the list shows, not the port the server listens on. If your router lacks hairpin NAT, players on the same network may not be able to join through the list.
| Port | Protocol | Used for |
|---|---|---|
| 8211 | UDP | The game. Change it with -port=. This is the port to forward. |
| 27015 | UDP | The server opened this too in our test. Players joining by IP only need 8211. |
| 8212 | TCP | REST API, only when RESTAPIEnabled=True (RESTAPIPort). |
| 25575 | TCP | RCON, only when RCONEnabled=True (RCONPort). |
Both APIs are off by default and need AdminPassword. The REST API uses HTTP Basic authentication; in our test curl -u admin:<AdminPassword> http://127.0.0.1:8212/v1/api/settings returned every active setting as JSON, and a wrong password got a 401. That makes it the easiest way to check that your ini edits really applied. /v1/api/info and /v1/api/metrics report the version, world ID, player count and server FPS.
The official docs mark RCON as deprecated and say it will stop working in an upcoming update; they recommend the REST API. RCON still answered on 1.0.5 in our test. Both listened on all network interfaces, and Pocketpair advises against exposing either to the internet, so don't forward 8212 or 25575.
The world lives in Pal/Saved/SaveGames/0/<world ID>/: Level.sav, LevelMeta.sav, a Players folder and, with backups on, a backup folder. Which world folder the server loads is set by DedicatedServerName in GameUserSettings.ini; on Linux that file sits next to PalWorldSettings.ini in Pal/Saved/Config/LinuxServer/. In our test a fresh server named its world folder with a 32-character ID and wrote the same ID into DedicatedServerName.
%LOCALAPPDATA%\Pal\Saved\SaveGames\. Steam's cloud settings for Palworld put saves in a folder named after your 64-bit Steam ID; your worlds are the folders inside it that contain a Level.sav.Pal/Saved/SaveGames/0/.DedicatedServerName= in the server's GameUserSettings.ini to that folder's name, and start the server.
We checked step 4 on 1.0.5: after renaming a world folder and pointing DedicatedServerName at the new name, the server loaded that folder (the REST API reported it as the world ID) and didn't create a new one. We could not test a real co-op save on this machine, so keep an untouched copy of the original until everyone has logged in and checked their character.
Pocketpair's docs say server-side mods currently work only on the Windows dedicated server, and only mods built to run on servers. A mod goes into Mods\Workshop\<any folder>\ with its Info.json directly inside. It is switched on in Mods\PalModSettings.ini with bGlobalEnableMod=true and one ActiveModList=<PackageName> line per mod (the PackageName from Info.json, not the folder name). It is deployed on the next restart. A mod whose Info.json install rules don't include "IsServer": true isn't meant for servers. Mods can crash the server or damage saves, so back up first.
Changes are read only at start, and in our test a normal shutdown wrote the loaded settings back over the file. Stop, edit, start.
The server never reads it. Copy it to PalWorldSettings.ini in the WindowsServer or LinuxServer folder and edit the copy.
Only the first line was read in our test. Keep it on one line, quote text values, and keep the [/Script/Pal.PalGameWorldSettings] header.
-players= overrode ServerPlayerMaxNum in our test. If your limit doesn't change, check the launch options.
In 1.0.5 a Huge Egg hatches in 1 hour, the death penalty is Item, and players don't choose their start location (bIsStartLocationSelectByMap=False). Check against your own DefaultPalWorldSettings.ini.
Forward UDP 8211 for players. Keep the REST API (8212) and RCON (25575) on your own network.
Server-side mods are Windows-only for now, according to Pocketpair.
NodeMesh runs your Palworld server on your own PC or server. Its Config tab shows the main PalWorldSettings.ini settings as form fields grouped by topic (server, rates, world and time, players, Pals, structures and bases, PvP, guilds) and writes the single OptionSettings line for you, in the right WindowsServer or LinuxServer folder.
On a Windows host, the Mods tab takes a .zip of a server-side mod, refuses packages that don't declare "IsServer": true, unpacks it into Mods/Workshop and keeps the ActiveModList lines in PalModSettings.ini in step with the mods you enable. With RCON turned on, the panel's console has buttons for Info, Show Players, Save, Broadcast, Kick and Ban.
Host Palworld on your own hardware. NodeMesh's Config tab edits PalWorldSettings.ini, and on Windows its Mods tab installs server-side mods.
Start hosting with NodeMesh