Files
ReSkate/contrib/pterodactyl
dubsector 7db99b57c3 Fix the Pterodactyl egg's config writes and Release rule
- The Release rule's regex held a "|", which Pterodactyl reads as a rule
  separator, so creating a server failed with a 500. Same check, no "|".
- The panel wrote port, query_port and steam_token at the top level, where
  the sectioned config ignores them. They now go to server.*.
- Add a Listed variable. The panel's JSON parser writes "false" as a
  string, so the startup command sets server.listed with sed instead.
- The first install writes its settings into the server section.
2026-10-10 16:20:05 -04:00
..

Pterodactyl

egg-reskate-server.json runs the Linux dedicated server on Pterodactyl (also works on Pelican). It installs the server from the ReSkate GitHub release and the server then updates itself, as described in Server/README-linux.md.

Import

  1. Admin area → Nests → Import Egg, choose egg-reskate-server.json and a nest.
  2. Servers → Create New with the ReSkate Server egg:
    • the primary allocation is the game port (port),
    • add a second allocation and put its port into Query Port (query_port). It must differ from the game port.
  3. 256 MB of memory is plenty for a typical server; give it about 300 MB of disk (the Steam libraries are in the tarball).

What the egg does

  • Install (install.sh, also inlined in the egg): reads the release's launcher.json, downloads the server_linux tarball, checks its SHA-256 and unpacks it into the server's folder. ReSkateServer.json, Mods and the logs are not in the tarball, so Reinstall keeps them. On the first install it writes the panel's ports and listed into the server section of ReSkateServer.json; the server adds every other setting with its default on its first start.
  • Start: ./ReSkateServer. The panel sees the server as running at is up on; Stop sends quit, so it signs out of Steam cleanly. The console takes every server command.
  • Before each start the panel writes server.port, server.query_port and server.steam_token into ReSkateServer.json, and the startup command sets server.listed, so set those in the panel, not in the file. listed is set by sed because the panel's JSON parser would write "false" as a string, which the server rejects.
  • Updates: the server installs new releases itself once nobody is on (auto_update), using the image's curl and tar, and carries on in the same process. Reinstalling also updates it.

Variables

Variable Env Default
Query Port QUERY_PORT 27016 Second UDP allocation, Steam server queries
Steam Token STEAM_TOKEN empty Game server login token (App ID 3354750, one per server); see steam_token in Server/README.txt
Release RELEASE latest latest, or a tag such as v1.1.4 (1.1.4 or newer: older releases have no Linux server)
Listed LISTED true false hides the server from the browser and stops it advertising to Steam; players join with the code

Image

ghcr.io/parkervcp/yolks:debian (Debian 13). The server needs glibc 2.38 or newer and OpenSSL 3 (libcrypto.so.3); it uses curl for the global ban list and its updates, and tar to unpack them.