18
Downloads
--
Positive (0 reviews)
9 hours ago
Last Updated
A Pelican Panel server-panel plugin for safely editing Palworld gameplay and world settings straight from the panel — no manual file editing, no SSH.
It tracks the current Palworld dedicated-server settings — including the options
added in the Palworld 1.0 release (proximity voice chat, Monster Farm speed,
and more) — and adds a Palworld Settings page to a Palworld server view that
reads, parses, and rewrites the OptionSettings=(...) payload in:
Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
It's built for the standard Palworld Pelican egg workflow, where some values are owned by startup variables and may be regenerated on boot — so the editor stays out of their way and only touches what's safe to change.
[!WARNING] Stop the server before editing. The editor only allows saving while the server is confirmed offline/stopped, and a timestamped backup is written before every save. Start the server after saving (there's a button on the page) to apply your changes.
retrieveStatus()).DefaultPalWorldSettings.ini when available); nothing is written
until you press Save.OptionSettings keys are preserved when
the file is written back.plugins directory)
to install the plugin.PalWorldSettings.ini.Install it like any Pelican plugin — pick whichever method fits your setup. Each one leaves the plugin installed and enabled; afterwards, open a Palworld server and go to Palworld → Palworld Settings.
From the Pelican Hub (one-click)
Open Palworld Settings Editor on the Hub, select your connected panel, and click Install.
From the admin UI (upload a zip)
palworld-settings-editor/
directory (clone this repo and zip the folder, or grab a release archive).From the command line (artisan)
Place the palworld-settings-editor/ directory in your panel's plugins/
directory (e.g. /var/www/pelican/plugins/palworld-settings-editor).
From your panel root, run one of:
php artisan p:plugin:install palworld-settings-editor # install by id
php artisan p:plugin:install # or pick it from the list
This installs and enables the plugin in one step.
[!TIP] Run artisan as the user that owns your panel files (often
www-data), not asroot, so the plugin's files stay writable by the panel — e.g.sudo -u www-data php artisan p:plugin:install palworld-settings-editor. This CLI method is also a reliable fallback if a Hub or admin-UI install fails.
PalWorldSettings.ini is created first, then
your changes are written.[!NOTE] Startup-managed values (server name, passwords, RCON, public IP/port) are shown read-only. Change those from the server's Startup tab — the egg manages them and may overwrite the INI on boot.
Plugin config lives in config/palworld-settings-editor.php
(auto-loaded by Pelican — no publish step needed):
| Key | Default | Purpose |
|---|---|---|
settings_path |
Pal/Saved/Config/LinuxServer/PalWorldSettings.ini |
Server-relative path to the INI. The page auto-falls back to the WindowsServer path if this one is absent. |
backup_suffix_format |
Ymd-His |
PHP date format for the .bak-… backup suffix. |
show_debug_section |
false |
When true, shows the developer diagnostics section (raw OptionSettings line, unmapped keys, file preview, state diagnostics). |
Developer diagnostics are hidden by default. To surface the debug section, set:
'show_debug_section' => true,
Does:
OptionSettings values from PalWorldSettings.ini with typed,
grouped, searchable controls and one-click presets.Does not:
This plugin is built for the official games-steamcmd/palworld egg and its PalworldServerConfigParser.
The config parser runs on every boot but does an in-place update of only the INI keys whose startup variables are set (server name/description, passwords, RCON, max players, IP/port) and preserves everything else. This plugin edits a disjoint set of gameplay/world keys, so your edits are not overwritten on restart. The keys the egg manages are shown read-only here — change those from the Startup tab instead.
[!NOTE] If you add your own egg variable for a gameplay setting this plugin also edits, the parser will set that key from the variable on boot. With the stock egg there is no overlap. On Proton/Windows servers the config lives under
WindowsServer/— the plugin falls back to that path automatically.
The page only shows on Palworld servers. It detects Palworld from the egg's tags,
name, startup command (which contains PalServer / PalworldServerConfigParser),
and Docker image. If it's missing on a genuine Palworld server, the egg may be
packaged unusually — confirm the server uses the Palworld egg.
Start the Palworld server once so it generates PalWorldSettings.ini, then stop
it and reload the plugin page.
Saving is only enabled when the server's power state resolves to offline/stopped (via Pelican's native status check). If the server is running — or the state can't be confirmed safely — saving stays disabled.
The power actions are permission-gated: Start needs the control.start and
Restart the control.restart subuser permission on the server (an owner/admin has
both). Start shows while the server is stopped and PalWorldSettings.ini exists
(if the config file hasn't been generated yet the button stays hidden — see Config
file missing above); Restart shows whenever the server isn't confirmed stopped
(running, or when the daemon state can't be read).
Those are egg-managed startup variables. They're intentionally excluded from editing here because the Palworld egg may rewrite them on server start. Change them from the Startup tab.
The plugin reads and writes through Pelican's daemon-backed file APIs. If file operations fail, check Pelican/Wings connectivity, daemon permissions, and server file access.
The primary target is the Linux path (.../LinuxServer/...). On Proton/Windows
servers Palworld generates the config under .../WindowsServer/...; the plugin
detects the missing Linux file and falls back to the Windows path automatically. If
your egg writes it somewhere else, point settings_path at it in the config file.
| Path | Responsibility |
|---|---|
src/Filament/Server/Pages/PalworldSettingsPage.php |
The settings page: loads state, builds the form, validates and writes saves. |
src/PalworldSettingsEditorPlugin.php |
Plugin registration and server-panel page discovery. |
src/Services/PalworldSettingsSchema.php |
Field definitions, labels, groups, bounds, tooltips, default values, and presets. |
src/Services/PalworldOptionSettingsParser.php |
Parses and rewrites the OptionSettings=(...) payload. |
src/Services/PalworldSettingsFileService.php |
File read/write/copy plus backup listing and deletion through Pelican's daemon file API. |
src/Services/PelicanServerStateService.php |
Server state detection (native retrieveStatus()) and "safe to edit" logic. |
src/Services/PelicanStartupVariableService.php |
Startup-variable lookup and read-only display. |
src/Services/PalworldServerDetector.php |
Detects whether a server runs Palworld to scope page visibility. |
Issues and pull requests are welcome. The plugin deliberately sticks to native Filament/Pelican controls and appearance rather than heavy custom theming — please keep changes close to existing patterns and test against a live Pelican panel by rebuilding the zip and re-uploading.