Skip to content

Repository files navigation

Palworld Server Manager

A Windows desktop manager for Palworld Dedicated Server, built with C++20 + Qt 6 Widgets.

Install, update, run, configure and monitor your Palworld dedicated server from a single graphical app — with a fully schema-driven settings editor, REST-based remote control, backup/restore, log tailing, and bilingual (English / Vietnamese) UI.

This project is provided under the MIT License.

Official server docs: https://tech.palworldgame.com/


Features

  • Server lifecycle — install, update, start, stop (graceful REST shutdown), restart, with crash auto-restart, auto-start on launch, and scheduled restarts / backups.
  • Multi-server profiles — manage several PalServer installations and switch between them from the top bar; settings and connections follow the active profile.
  • Schema-driven Settings editor — every PalWorldSettings.ini key is defined in one JSON schema and rendered as a categorized form with translated labels, search, reset-to-default, and presets (Vanilla / Casual / Hardcore / PvP). Change a setting → edit the JSON schema and translations, no C++ required.
  • REST API client — live info, players, metrics (FPS / uptime / players / basecamps), announce, kick, ban, unban, save, graceful shutdown. REST is LAN-only (a persistent warning is shown when it is enabled).
  • Backup / restore — timestamped ZIPs of Pal/Saved + config, retention (count + age), run in the background so the UI never freezes; auto-backup before restart / reset / reinstall.
  • Player management — online players table, kick/ban/unban, player detail (stats, pals, inventory from a sav_cli save sync).
  • World data & map — save-file sync, offline player/guild snapshots, and a tile-based map view with player/camp markers.
  • Whitelist — manage allowed players (UID / Steam ID) with optional kick-on-join enforcement.
  • Scheduled RCON commands — run REST/RCON commands on an interval.
  • Log tailing — live server log viewer with pause, filter, and open-folder.
  • i18n — English + Vietnamese, switchable at runtime (Qt Linguist).
  • Theming — dark & light themes, switchable at runtime.

Screens

Page Purpose
Dashboard Live metrics, quick actions (save world, announce, shutdown, templates)
Launch Arguments CLI flags (port, players, public lobby, perf threads, workers)
World Settings Schema-driven PalWorldSettings.ini editor
Players Online players + kick/ban/unban
World Data Offline save snapshots via sav_cli
Whitelist Allowed-player list
Map Tile map + markers (requires sav_cli + map tiles)
Scheduled Commands Interval-based RCON/REST tasks
Backup Create / restore / delete backups
Logs Live server log tail
Preferences Language, theme, paths, REST/RCON, automation, map tiles, retention

Requirements

  • Windows 10 / 11 (x64)
  • A Palworld dedicated server installation (install via SteamCMD — the app can do this for you, or point it at an existing one)
  • To build from source:
    • C++20 compiler (MSVC 2022 / GCC 11+ / Clang 14+)
    • CMake 3.21+
    • Qt 6.4+ with modules Widgets, Network, LinguistTools

Build from source

Install Qt 6 via the online installer https://www.qt.io/download-open-source, then:

cmake -S . -B build -DCMAKE_PREFIX_PATH=C:/Qt/6.7.3/msvc2019_64
cmake --build build --config Release

Run unit tests:

ctest --test-dir build -C Release --output-on-failure

The binary is produced at build\Release\PalworldServerManager.exe. On first launch the wizard asks for UI language, the PalServer install directory, and (optionally) the SteamCMD path. The manager persists its own config under %APPDATA%/PalworldServerManager/config.json.

Note for Windows developers: the Qt DLLs live in C:/Qt/.../bin. To run the tests or the built exe from a shell, add that folder to PATH first (e.g. set PATH=C:\Qt\6.7.3\msvc2019_64\bin;%PATH%), otherwise the loader reports a missing-DLL error (0xc0000135).

Building the installer

A self-contained installer is built with Inno Setup 6 (no system prerequisites at install time — it bundles the Qt runtime, MSVC v143 runtime, plugins and translations):

# 1. Build the Release binary (see above)
cmake --build build --config Release

# 2. Compile the installer (adjust the VC runtime dir if your path differs)
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\PalworldServerManager.iss

# Output: installer\output\PalworldServerManagersetup.exe

To override the MSVC runtime directory: ISCC.exe /DVC_RUNTIME_DIR="<path>" installer\PalworldServerManager.iss

Palworld server quick facts (official sources)

Topic URL
Requirements https://tech.palworldgame.com/getting-started/requirements
Deploy dedicated server https://tech.palworldgame.com/getting-started/deploy-dedicated-server
Configuration https://tech.palworldgame.com/settings-and-operation/configuration
Launch arguments https://tech.palworldgame.com/settings-and-operation/arguments
REST API https://tech.palworldgame.com/category/rest-api
  • SteamCMD AppID: 2394010
  • Game port (UDP): 8211 (default)
  • REST port: 8212 (community default, set RESTAPIPort in INI)
  • REST auth: HTTP Basic, username admin, password = AdminPassword
  • REST requires: RESTAPIEnabled=True in PalWorldSettings.ini
  • Config path: <PalServer>/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
  • Template (read-only source): <PalServer>/DefaultPalWorldSettings.ini

Security notes

  • REST is LAN-only per the official docs — do not expose RESTAPIPort to the public internet.
  • Passwords are masked in the UI and never written to plain logs.
  • RCON is deprecated by Pocketpair; this app uses REST as the primary remote-control path.

Project structure

src/
  app/        Application (central context), ManagerConfig
  core/       SteamCmd, ServerProcess, IniOptionSettings, SettingsSchema,
              RestApiClient, RconClient, BackupManager, LogTailer,
              SavSyncService, WhitelistStore, RconTaskStore, WorldOps, SteamCmdBootstrap
  ui/         MainWindow + 11 pages + Wizard + SettingsFormBuilder + dialogs
  util/       Paths, IconProvider, TrKey
resources/
  i18n/       en.ts, vi.ts          (compiled to .qm at build time)
  schema/     settings_schema.json  (embedded — the source of truth for the Settings UI)
  presets/    vanilla.json casual.json hardcore.json pvp.json
  styles/     dark.qss, light.qss   (embedded)
  Art/        application icons
installer/    PalworldServerManager.iss  (Inno Setup)
tests/        test_ini_parser.cpp test_schema.cpp

The Settings UI is fully schema-driven: resources/schema/settings_schema.json defines every field and category; SettingsFormBuilder renders them. To add or change a world-setting field, edit the JSON schema (and the i18n .ts files) — no C++ changes needed.

License

MIT © 2026 jukion. See LICENSE for the full text.

About

Windows desktop manager for Palworld Dedicated Server: install & update via SteamCMD, edit PalWorldSettings.ini, REST/RCON control, backups, logs, whitelist, multi-server, auto-update. C++20 / Qt6.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages