Players
This page covers the players screen: the merged online and offline list, moderation actions, guilds, player notes, bans, and the Pal box.
The players screen merges two sources. Live players come from the game REST API. Offline players come from the parsed save data. A player appears here once they have joined the server at least once. The header shows how many are online and how many are known from save data.
The screen has four tabs: Players, Guilds, Player notes, and Bans.
Players tab
Section titled “Players tab”The table lists each player with an avatar, name, Steam id, status, level, guild, ping, and last seen time. Search by name or Steam id. Filter by all, online now, or offline. A hint shows when the save data was last synced.
Steam avatars are proxied through the panel on the same origin, so the browser never fetches images from an outside host. The panel ships a built-in Paldeck name roster covering the 1.0 species and variants, so Pals show their real names instead of raw internal ids.
Select a row to open the detail panel on the right. It shows the player level, guild, in-game position, ping, first seen date, and total tracked playtime. Under that is a compact Observed activity section followed by the Pal section.
Observed activity
Section titled “Observed activity”The activity section shows the current session duration and rolling totals for the last 24 hours, 7 days, and 30 days. Each window includes both observed duration and the number of sessions that overlap the window. A session crossing a window boundary contributes only the time inside that window.
This data comes from join and leave transitions observed by this Palhelm installation. The panel shows when its tracking began and labels the coverage as panel tracking only. It is not a claim about the player’s complete Palworld history before the panel began observing them. Recent session detail is capped at 20 rows; the API reports when more rows exist.
Moderation actions
Section titled “Moderation actions”An admin sees an actions menu on each row and in the detail panel:
- Message. The vanilla server has no private messages, so this broadcasts to all players with the name as a prefix, for example
@Kestrel: .... - Show on map. Opens the live map focused on that player. Available only when the player has a known position.
- Kick. Disconnects an online player. They can rejoin immediately. You can attach a message.
- Ban. Bans the player’s Steam id until you unban them. If they are online, they are disconnected now.
- Unban. Lifts the ban so the player can rejoin.
Each action opens a confirm dialog first. Kick and ban let you type an optional message shown to the player.
Optional item grants
Section titled “Optional item grants”When the item-grant provider reports ready, an admin can select Give item… for an online player. The dialog searches the operator-installed allowlist, applies the per-item quantity ceiling, requires a reason, and shows a final confirmation. Every accepted request receives an idempotency key and a durable audit record.
This action does not edit the world save and does not run through RCON. Palhelm writes a bounded request to a local spool shared with the optional UE4SS bridge; the bridge performs the authoritative in-game inventory mutation and writes one result. Palhelm never automatically retries an uncertain result.
The action fails closed and stays hidden unless all of these are true:
PALHELM_ITEM_GRANTS_ENABLED=truewas set explicitly.- The installed item catalogue and bridge allowlist match and pass validation.
- A fresh heartbeat reports the expected protocol and game version.
- The bridge package marks that exact game build as production-validated.
The source bridge currently ships with production validation disabled. Operators must complete the maintenance-window checklist for their exact game build before enabling it. Item-grant endpoints are admin-only and are intentionally absent from the read-only Integration API.
The Pal box
Section titled “The Pal box”The detail panel shows the player’s active party first, up to five Pals from the save. Each entry has an info button that expands to show level, individual HP, gender, condenser star rating, talents, passive skill ids, and equipped skill ids, plus alpha and lucky markers. A never-condensed Pal shows an empty four-star row (the game omits the rank until a Pal is condensed); Unavailable appears only for data parsed before rank decoding shipped. It also joins the Pal’s CharacterID to the bundled, version-pinned species catalogue and shows every available work suitability as a labeled SVG badge with its numeric level, such as Handiwork Lv 4. Save observations and species metadata remain labeled separately.
Select “show all” to open the Pal box dialog. It recreates the in-game storage layout:
- A Party page with five slots.
- Numbered Box pages with 30 slots each. Empty slots render as empty cells, just like in game.
- A Base and expeditions page for Pals the save placed outside the party and box.
Guilds tab
Section titled “Guilds tab”Lists each guild with its member count, base count, and the roster of known members. Guild names link to the dedicated guild detail with bases, associated Pals, and bounded panel-observed activity. Guild data is parsed from the save file.
Player notes tab
Section titled “Player notes tab”Player notes are local Steam id annotations. You can label a Steam id with a name inside the panel. This is stored by the panel only.
Bans tab
Section titled “Bans tab”Lists the players you have banned so a ban can be reviewed or lifted. Each row has an unban action for admins.
Data sources
Section titled “Data sources”This screen reads GET /api/v1/players, GET /api/v1/players/{uid} for detail, GET /api/v1/guilds, and GET/PUT /api/v1/whitelist for player notes. Moderation uses POST /api/v1/players/{uid}/kick, /ban, and /unban. Messaging uses POST /api/v1/server/announce. Optional item grants use GET /api/v1/items, GET /api/v1/items/capability, POST /api/v1/players/{uid}/item-grants, and the admin-only /api/v1/item-grants audit endpoints.