PalBot – Discord Bot for Palworld Servers
No self hosted ? Use https://allone.run.place/ he is Integrated.
IMPORTANT: PalBot is a Discord Bot, not a game mod or plugin. It runs externally on a machine with Python and connects to your Palworld servers via the official REST API and RCON. It does not modify game files or require installation on the game server itself.
PalBot is a powerful Discord bot designed to manage and interact with Palworld dedicated servers. It provides server administration, player tracking, economy systems, cross-server chat, automated backups, and more — all controlled through Discord slash commands.
This project was originally inspired by Sphere and has been heavily extended and rewritten by Robin Oliver Lucas (rl-dev.de) to include additional features such as a multilingual system, Pal Points economy, configurable server branding, and a broadcast system.
Support System https://rl-dev.de/support
Features
- Server Management – Control your servers directly from Discord (kick, ban, announce, shutdown, save).
- Player Logging – Log player connections, disconnections, and activity with embed messages.
- Player Tracking – Track online players and broadcast their status to Discord channels.
- Administration – Full admin toolkit for managing players, bans, and whitelists.
- Server Query – Query server status, metrics, and player lists in real-time.
- Global Banlist – Sync bans across multiple servers using a Banlist API.
- PalDefender RCON – Execute PalDefender-specific RCON commands (give items, pals, XP, etc.).
- Economy System – Gold-based economy with work commands and balance tracking.
- Pal Points – Reward players with points for playtime, redeemable in the shop.
- Shop System – Sell items for Gold or Pal Points. Supports both YAML and database-driven items.
- Cross-Server Chat – Two-way chat bridge between Discord channels and in-game chat.
- Broadcast System – Send Discord channel messages directly into the game as announcements.
- Account Linking – Link Discord accounts to in-game players via secure codes.
- Scheduled Backups – Automated server backups uploaded to Discord channels.
- SFTP Support – Secure file transfers, log reading, and save management via SFTP.
- Multilingual – Full support for English and German with per-server language settings.
- License Protection – Built-in copyright validation prevents unauthorized modification.
Requirements
- Python 3.10 or higher
- A Discord Bot Token (create one at Discord Developer Portal)
- One or more Palworld dedicated servers with REST API and/or RCON enabled
- PalDefender – Required on your Palworld server for most RCON commands (give items, pals, XP, kits, etc.). See PalDefender Setup below.
- (Optional) SFTP access for chat log reading and backup features
Installation
1. Install Dependencies
pip install -r requirements.txt
3. Configure Environment Variables
Copy the example environment file and fill in your values:
cp config/.env.example config/.env
Edit config/.env:
BOT_TOKEN="YOUR_DISCORD_BOT_TOKEN_HERE"
BOT_PREFIX="!"
| Variable | Description |
|---|---|
BOT_TOKEN |
Your Discord bot token. Required. |
BOT_PREFIX |
Prefix for legacy text commands (default: !). |
4. Configure SFTP (Optional)
If you want chat relay, log reading, backups, or account linking:
cp config/sftp.yml.example config/sftp.yml
Edit config/sftp.yml:
servers:
- name: "My Palworld Server"
host: "192.168.1.10"
port: 2022
username: "user1"
password: "password1"
path: "Pal/Binaries/Win64/PalDefender/Logs"
webhook: "https://discord.com/api/webhooks/..."
chat_channel: 111111111111111111
save_path: "Pal/Saved/SaveGames/0/0000000000000001"
backup_channel: 111111111111111111
backup_interval: 300
link_channel: 222222222222222222
economy:
currency_name: "gold"
work_cooldown: 3600
work_minamount: 10
work_maxamount: 50
shop_logs: 333333333333333333
| Field | Description |
|---|---|
name |
Display name for the server in Discord. |
host |
IP address or hostname of the Palworld server. |
port |
SFTP port (usually 22 or a custom port). |
username / password |
SFTP credentials. |
path |
Path to PalDefender log files on the server. |
webhook |
Discord webhook URL for chat relay. |
chat_channel |
Discord channel ID where in-game chat is posted. |
save_path |
Path to server save files for backups. |
backup_channel |
Discord channel ID where backups are sent. |
backup_interval |
Backup interval in seconds (e.g., 300 = 5 minutes). |
link_channel |
Discord channel ID for account linking notifications. |
currency_name |
Name of the economy currency (default: gold). |
work_cooldown |
Cooldown between /work uses in seconds. |
work_minamount / work_maxamount |
Min/max gold earned per /work. |
shop_logs |
Discord channel ID for shop purchase logging. |
5. Configure Shop Items (Optional)
cp config/shop.yml.example config/shop.yml
Edit config/shop.yml:
shop:
- name: "Starter Kit"
description: "Basic starter equipment"
price: 100
server: null
items:
- "ClothArmor_5:1"
- "Pickaxe_Tier_00:1"
| Field | Description |
|---|---|
name |
Item name shown in the shop. |
description |
Short description. |
price |
Cost in gold or Pal Points. |
server |
Restrict to a specific server name, or null for all. |
items |
List of items in ItemID:Amount format. |
To use Pal Points as currency instead of gold, add currency: pal_points to the item.
6. Configure Pal Points (Optional)
Edit config/palpoints.yml:
enabled: true
points_per_minute: 5
| Field | Description |
|---|---|
enabled |
Enable/disable Pal Points tracking. |
points_per_minute |
How many Pal Points are awarded per minute of playtime. |
7. Run the Bot
python run.py
Or on Windows:
start.bat
Or with Docker:
bash start-docker.sh
8. Invite the Bot
Use the invite link printed in the console on startup, or generate one in the Discord Developer Portal with the applications.commands scope.
PalDefender Setup
PalDefender is required for most of PalBot's advanced RCON commands such as
/giveitem,/givepal,/givexp,/givekit,/reloadcfg, and more.
PalDefender depends on a Windows environment. If you plan to host your Palworld server on a Linux-based machine, you will need to install Wine or Proton.
Installing a Palworld server itself is not covered here.
Windows
- Download
PalDefender_Windows.zipfrom GitHub/releases. - Extract the contents of
PalDefender_Windows.zipand place it into your PalServer sub-directory:.../Pal/Binaries/Win64/
Your structure should look like this:
Palworld_Server/
├── Engine/
├── Pal/
│ ├── Binaries/
│ │ └── Win64
│ │ ├── config/
│ │ ├── PalDefender/ // Will be generated (Step 4)
│ │ ├── <...>
│ │ ├── PalDefender.dll << Put here (Step 2)
│ │ ├── d3d9.dll << Put here (Step 2)
│ │ ├── PalServer-Win64-Shipping-Cmd.exe
│ │ └── PalServer-Win64-Shipping.exe
│ ├── Content/
│ ├── Plugins/
│ └── Saved/
│ ├── Config/
│ │ ├── CrashReportClient/
│ │ └── WindowsServer/
│ │ ├── GameUserSettings.ini
│ │ ├── <...>
│ │ └── PalWorldSettings.ini
│ ├── Crashes/
│ ├── <...>
│ └── SaveGames/
│ ├── 0/<WorldGUID>/
│ │ ├── backup/
│ │ ├── Players/
│ │ ├── Level.sav
│ │ └── LevelMeta.sav
│ └── banlist.txt
├── PalServer.exe
├── steamclient.dll
└── <...>
- Start your server once to generate the PalDefender file structure at
.../Pal/Binaries/Win64/PalDefender/(see above). - Edit the configuration to your liking. We recommend turning on the whitelist.
Linux (Wine/Proton)
Wine or Proton must be installed, otherwise the following steps will not work.
The Palworld server setup on Linux is not managed by PalDefender and must be handled manually by you (Wine/Proton configuration, server startup, etc.).
Once the server is running correctly under Wine or Proton, you can follow the Windows installation instructions exactly, as the PalDefender setup itself is identical.
Language Setup
By default, the bot uses English. Admins can switch the bot language per server:
/language en # English
/language de # German
All command descriptions and responses will adapt to the selected language automatically.
License & Copyright
This project is protected by a built-in license validation system. If the copyright header is removed or modified from the source files, the bot will refuse to start.
Copyright (c) 2026 Robin Oliver Lucas – https://rl-dev.de

