Pterodactyl ops
AI Minecraft server admin that audits configs, fixes lag, sets up proxies and permissions, picks plugin stacks, and learns any plugin's docs on demand. Works in Claude Code, Claude.ai, Codex, Antigravity, and Gemini CLI.
npx -y skills add Teddy563/mcwrench --skill pterodactyl-opsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Operates Minecraft servers on the Pterodactyl Panel and its fork Pelican Panel. Use whenever the user mentions Pterodactyl, Pelican, "the panel", Wings, a game panel, eggs, allocations, "secondary port", RCON on a panel, SFTP to my server, "/home/container", egg variables, startup command, panel backups, "container out of memory", "Cannot allocate memory", or running Minecraft in Docker on a host panel. Covers RCON setup (secondary allocation), egg variables & the startup command, the AlwaysPreTouch/Xmx container-OOM footgun, panel backups (non-atomic), the client API (files/command/power), and Pelican-vs-Pterodactyl differences. Confirm before exposing RCON or deleting server files.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.9 KB, as published. Nobody here has run it
Pterodactyl / Pelican Ops
Run and configure Minecraft servers on Pterodactyl Panel and Pelican Panel (a fork by the
former Pterodactyl team, mid-2024; still beta as of 2026-06, relicensed AGPLv3). Pelican
imports Pterodactyl eggs unmodified and keeps the API backward-compatible, so this skill
applies to both — note the few differences in references/panel-footguns.md.
Architecture (one-screen model)
- Panel (web UI) + Wings (daemon, one per node). Each server is an isolated Docker
container; files live at
/home/container(host bind-mount under/var/lib/pterodactyl/volumes/<uuid>). - The STARTUP command substitutes egg variables (
{{SERVER_JARFILE}},{{SERVER_MEMORY}}, …) from environment variables at boot. Console/stats stream to the panel. - Allocations: the primary allocation is the game port. Anything else (RCON, query, Geyser, Dynmap) needs a secondary allocation added in the Network tab.
Tasks
- RCON →
references/rcon-setup.md. Key point: add a secondary allocation first, then setenable-rcon=true/rcon.port=<that port>/ a strongrcon.passwordinserver.properties. Confirm with the user before enabling RCON, and never expose the port publicly. - Memory / OOM → if the container dies with "Cannot allocate memory" or the cgroup OOM-kills
it: the JVM heap +
-XX:+AlwaysPreTouchis claiming the full container limit at boot. SetXmxbelow the panel's allocated memory (leave ~1–1.5 GB / 10–15% headroom for JVM native memory) and/or dropAlwaysPreTouch. The panel{{SERVER_MEMORY}}value is the container limit, not a safe heap size. (Seeperformance-tuningfor the full flag discussion.) - Backups →
references/backup-strategies.md. Panel/Wings backups archive the live filesystem and are NOT atomic — quiesce writes (/save-offthen/save-all flushvia console or the/commandAPI) before taking one, or stop the server. - Editing config → edit while stopped (a running server can overwrite files on shutdown), then start. Use SFTP for large/bulk file transfers the web file manager handles poorly.
- Automation → the client API (below) for scripted file edits, commands, and power actions.
Client API (Pterodactyl + Pelican, backward-compatible)
Auth: Authorization: Bearer ptlc_<key> (Account → API Credentials), Accept: application/json.
Rate limit ~240 req/min per key.
| Action | Endpoint |
|---|---|
| Read file | GET /api/client/servers/{id}/files/contents?file=/path |
| Write file | POST /api/client/servers/{id}/files/write?file=/path |
| List files | GET /api/client/servers/{id}/files/list |
| Send command | POST /api/client/servers/{id}/command — body {"command":"save-all flush"} |
| Power signal | POST /api/client/servers/{id}/power — body `{"signal":"start |
Output
Give exact panel steps (which tab, which field) and exact file/server.properties edits. For any
destructive action (deleting server files, wiping a world, exposing RCON), state the risk and
confirm first.