Skip to main content

Palworld Admin is a GUI to manage your Palworld Dedicated Server, including deployment, configuration, monitoring and backups.

Project description

Palworld A.D.M.I.N.

(Automated Deployment, Management & Installation Nexus)

GitHub Downloads (all assets, all releases) GitHub commit activity
PyPI - Downloads PyPI - Format
Docker Pulls

Getting Started:

Choose a Version:

Choose a version that matches the Operating System of the machine the Dedicated Server will be run on, not the machine you will manage the server from.
For Windows, choose a .exe, for linux use palworld-admin-linux

Windows:

Compatibility: Windows 10+ / Windows Server 2019+ (Success has been reported on Windows Server 2016 but not recommended)

  • palworld-admin.exe: Webserver + Electron UI - Clean, simple experience
  • palworld-admin-console.exe WebServer + Electron UI + Console - Same as above plus a console, helpful for troubleshooting, if you need help, you must be using this version to provide troubleshooting information.
  • palworld-admin-no-ui.exe Webserver Only - Lightweight, use this version if you would like to use your browser to manage the server by visiting http://127.0.0.1:8210 (or the server's IP if managing a remote server)

Linux:

Compatibility: Tested on 23.04+, should work on 22.04+ as long as you have Python3.11+ installed

  • palworld-admin-linux Webserver Only - Lightweight, use this version if you would like to use your browser to manage the server by visiting http://127.0.0.1:8210 (or the server's IP if managing a remote server)

Installation:

  1. Choose version (See above)
  2. Create an empty directory. This is where the application will be run from. Recommended:
    c:\Palworld-Dedicated-Server (Windows)
    $HOME/Palworld-Dedicated-Server (Linux)
    Note for Windows Users:
    The directory MUST NOT BE IN a Known Folder, including but not limited to, My Documents, Downloads, Desktop otherwise the SteamCMD installtion will fail.
  3. Download the latest version from Releases and place it in the directory you created in step 2
  4. Run the application
    Note for Linux as well as users intending to manage a remote server:
  • Make sure that TCP port 8210 is forwarded to the machine the server will be running on.
  • For securty, YOU MUST RUN THE APPLICATION with -r -mp [management-password]. This will make it so that in order to access the server a [management-password] must be entered.
    If you do not this, anyone can take full control of your server by accessing it's IP address on port 8210 with any browser.
  1. Click on image to Install a clean version of the dedicated server. Please wait for it to complete the operation, which does the following:
  • Download and Install SteamCMD
  • Download and Install Palworld Dedicated Server
  • Create necessary symlinks for SteamCMD (Linux Only)
  • Initial 5 second run of the server to create default files and paths
  • Copying the default PalWorldSettings.ini into the Config Directory
  1. (Optional) If you have an existing server that you want to transfer the data in, click on image then navigate into the /Saved directory of the existing server and click on upload. This will import the existing server data into Palworld Admin.
  2. For security, Palworld Admin will not launch the server unless the admin password is at least 8 characters long. This can be changed by click on image, then setting the password field next to RCONEnabled, then clicking on image to save your settings. Note, this screen is where you can access all other server settings as well. With everything set, you can now return to the main screen by clicking on image.
  3. You should now be able to start your server by clicking on image.
  4. To use RCON Features, enter the Server IP/Port/RCON Password on the top of the main window and click on image.
    Note: when managing the server locally (either on same machine or same LAN) use the Local IP displayed on the top of the settings window. When managing the server remotely (over the internet) enter the Public IP, and ensure that port forwarding has been done on port 8210.
  5. If you enable "SteamAuth Required", then players will need to visit http://[palworldadminip]:8210/steam-auth and sign in with their Steam Account before they are able to connect to the server without being kicked. "Enfoce SteamAuth IP" Requires Palguard, and will make sure that only a player whose IP matches the IP used to process the steamAuth can connect to the server.

Running Docker Image:

IMPORTANT:

If you mount the directories as explained below, they must be owned by UID:GID 1001:1001 on the host, otherwise you will have permission errors. If your distro doesn't already have a 1001:1001 user (you can check by running sudo cat /etc/passwd), then you can create the user and set the user perms by running the following commands:

sudo useradd -u 1001 -g 1001 [username]
sudo chown [username]:[username] /path/to/dir

Simply run (if using Docker, or use any alternative you like such as Docker Compose or Kubernetes:

docker run \
	-e MANAGEMENT_PASSWORD="[management-password]" \
	-e MANAGEMENT_PORT=[management-port] \
	-p [desired management-port]:[management-port]/tcp \
	-p [desired game port]:[desired game port]/udp \
	-p [desired RCON port]:[desired RCON port]/tcp \
	-p [desired query port]:[desired query port]/udp \
	-v [location on host to mount palworld-admin directory]:/home/lukium/palworld-admin/ \
	-v [location on host to mount Palworld Dedicated Server directory]:/home/lukium/.wine/drive_c/steamcmd/ \
	--name [desired container name] \
	lukium/palworld-admin-wine:latest

If running on windows Docker Desktop, do not use -v as mounting the volumes directly will break things and run the entire command as one line. The palworld-admin and dedicated server files will be mounted to \wsl.localhost\docker-desktop-data\data\docker\volumes as directories with random string (once you identify which is which, you can create a shortcut to them wherever you like) Docker Compose:

# docker-compose.yml

version: '3.8'
services:
  app:
    container_name: ${CONTAINER_NAME}
    image: 'lukium/palworld-admin-wine:${CONTAINER_VERSION}'
    restart: unless-stopped
    environment:
      MANAGEMENT_PASSWORD: ${MANAGEMENT_PASSWORD}
    ports:
      - '${ADMIN_PORT}:8210/tcp'
      - '${GAME_PORT}:${GAME_PORT}/udp'
      - '${RCON_PORT}:${RCON_PORT}/tcp'
      - '${QUERY_PORT}:${QUERY_PORT}/udp'
    volumes:
      - ./palworld-admin:/home/lukium/palworld-admin/
      - ./PalServer:/home/lukium/.wine/drive_c/steamcmd/

# .env

CONTAINER_NAME=Palworld Server
CONTAINER_VERSION=latest
MANAGEMENT_PASSWORD=changeme
ADMIN_PORT=8210
GAME_PORT=8211
RCON_PORT=25575
QUERY_PORT=27015

For example:

docker run \
	-e MANAGEMENT_PASSWORD="test123" \
	-p 8210:8210/tcp \
	-p 8211:8211/udp \
	-p 25575:25575/tcp \
	-p 25575:25575/udp \
	-p 27015:27015/tcp \
	-p 27015:27015/udp \
	-v $HOME/palworld-admin/app/:/home/lukium/palworld-admin/ \
	-v $HOME/palworld-admin/server/:/home/lukium/.wine/drive_c/steamcmd/ \
	--name palworld-admin-wine \
	lukium/palworld-admin-wine:latest

How to run directly from the code:

  • Install python, at least 3.11
  • Install poetry pip install poetry make sure you add it to your PATH
  • Optional but recommended: Set poetry to place the venv in the project directory by using the command poetry config virtualenvs.in-project true
  • Git clone the repo
  • From the palworld-admin directory run poetry install
  • Ensure that in ./palworld_admin/settings.py that self.no_ui: bool = False (In order to keep the repo clean, it does not contain the Electron UI executables so if running from code you must run no-ui)
  • Run poetry run python ./palworld_admin/main.py
  • Access the application via the browser on port 8210 (e.g. http://127.0.0.1:8210)

Feature Roadmap

Server Manager:
🟢 1-Click Installer - 🟢 Windows
- 🟢 Linux
🟢 1-Click Launcher - 🟢 Windows
- 🟢 Linux
🟢 Data Backup & Restore - 🟢 Manually Backup Server Data
- 🟢 Automatically Backup Server Data
- 🟢 AutoPrune Server Data (by quantity)
- 🟢 Restore Server Data from Backup
🟢 Server Performance Monitoring - 🟢 Server CPU Usage Monitoring
- 🟢 Server RAM Usage Monitoring
🟢 Server Auto Restart - 🟢 On Unexpected Server Shutdown
- 🟢 RAM Utilization Based
🟢 RCON Client: - 🟢 Connect
- 🟢 Broadcast Message (Multi Word working)
- 🟢 List Players
- 🟢 View SteamID/UID
- 🟢 Kick Players
- 🟢 Ban Players
- 🟢 Save Game
- 🟢 Shutdown Gracefully
🟢 Server Settings Manager:
🟢 Generate Settings: - 🟢 PalWorldSettings.ini
- 🟢 WorldOption.sav
🟢 Read/Write Directly to Server: - 🟢 Read settings directly from server
- 🟢 Write settings directly to server
🟡Beyond RCON - ⚪ Whitelist Player
- ⚪ Whitelist Mode (Only allow whitelisted players to join server)
- ⚪ Unban Player
- ⚪ Broadcast player joins in server
- ⚪ Create RCON Log
- 🟢 display HEX UID for easy Save Identification

Troubleshooting:

1. Failure to Install/Launch Server:

The most likely cause for this is the user running Palworld A.D.M.I.N. from the desktop, a folder in the desktop, or a folder in a windows directory that's "syncable" like Documents / Downloads / etc.
Instead I recommend creating a directory like c:\Palworld-Admin or c:\Palworld Server.

2. Unhandled exception in script with OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted

(See screenshot below) This means that the webserver is already running (maybe the application didn't fully close before). Check your task manager and close palworld-admin manually before trying to restart the application.
image

3. Unhandled exception in script with sqlite3.OperationalError

(See screenshot below) This means that the application database need to be upgraded. Re-run the application with -mdb flag, e.g., palworld-admin.exe -mdb and this should upgrade the database to current. image

4. I set a RAM Auto-Restart to 16GB, my task manager says that the server is using ~16100mb, but the server has not restarted, how come?

1 GB = 1024 MB. This means that the server will not restart at 16000MB, because 16000 MB is not 16GB. 16 GB = 16384 MB. Also, The logic is that the server must exceed the limit 3 times a row (to prevent unecessary restarts should it just be a random spike). You should see notifications in the application saying that it has been triggered 1/3, 2/3 and 3/3, before a restart.

5. Repeated Error: list index out of range / I can't kick a player in my server

This typically results from someone in your playerlist having a name that breaks RCON. Unfortunately, Palworld's RCON is very rudimentary and names with non-ASCII characters messes with it. Another symptom is being unable to kick/ban a player via RCON. Tell your players to use names with ASCII characters until the ingame-RCON is improved upon.

Credits:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

palworld_admin-0.10.4.tar.gz (912.8 kB view details)

Uploaded Source

Built Distribution

palworld_admin-0.10.4-py3-none-any.whl (905.9 kB view details)

Uploaded Python 3

File details

Details for the file palworld_admin-0.10.4.tar.gz.

File metadata

  • Download URL: palworld_admin-0.10.4.tar.gz
  • Upload date:
  • Size: 912.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.8 Windows/10

File hashes

Hashes for palworld_admin-0.10.4.tar.gz
Algorithm Hash digest
SHA256 905b764a00b78d9a848e57716bf0a9ff28303c68a20613b68cfaada94feff673
MD5 9144fa139b7727aa7f40e7160af1211b
BLAKE2b-256 9e2aa68b171b602a5d7042586ebc76f0405929cd50f2b9f21bce0cb180739cb8

See more details on using hashes here.

File details

Details for the file palworld_admin-0.10.4-py3-none-any.whl.

File metadata

  • Download URL: palworld_admin-0.10.4-py3-none-any.whl
  • Upload date:
  • Size: 905.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.8 Windows/10

File hashes

Hashes for palworld_admin-0.10.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c87c6969ef74b5fb359b6c9b239bbe943e4bf023846a741eb14e7def52430ac1
MD5 d49c2ae1288edd11896cb31700d1d4e7
BLAKE2b-256 fae5815fbe0f0e49152e8979c53ea15b9c2e602fcd4cf63d4ef2b5d6c2538cf9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page