Skip to content

SSMP#484

Draft
QuickMash wants to merge 3 commits intopterodactyl:mainfrom
QuickMash:main
Draft

SSMP#484
QuickMash wants to merge 3 commits intopterodactyl:mainfrom
QuickMash:main

Conversation

@QuickMash
Copy link
Contributor

@QuickMash QuickMash commented Mar 19, 2026

Description

Checklist for all submissions

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Have you tested and reviewed your changes with confidence that everything works?
  • Did you branch your changes and PR from that branch and not from your master branch?
    • If not, why?:
  • You verify that the start command applied does not use a shell script
    • If some script is needed then it is part of a current yolk or a PR to add one
  • The egg was exported from the panel

New egg Submissions

  1. Does your submission pass tests (server is connectable)?
  2. Does your egg use a custom docker image?
    • Have you tried to use a generic image?
    • Did you PR the necessary changes to make it work?
  3. Have you added the egg to the main README.md and any other README files in subdirectories of the egg according to the alphabetical order?
  4. Have you added a unique README.md for the egg you are adding according to the alphabetical order?
  5. You verify that the start command applied does not use a shell script
    • If some script is needed then it is part of a current yolk or a PR to add one
  6. The egg was exported from the panel

Copilot AI review requested due to automatic review settings March 19, 2026 19:25
@QuickMash QuickMash marked this pull request as draft March 19, 2026 19:27
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Pterodactyl “egg” for hosting the Silksong Multiplayer (SSMP) server, including an installer script and minimal documentation under a new silksong/ directory.

Changes:

  • Added a new SSMP egg JSON targeting the dotnet_9 yolk and downloading the latest SSMP release from GitHub during install.
  • Added a short README for the new Silksong/SSMP egg directory.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
silksong/SSMP.json New Pterodactyl egg definition for SSMP (runtime image + startup + install script).
silksong/README.md Basic documentation for the new Silksong SSMP egg directory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"description": "Hollow Knight: Silksong Multiplayer Server",
"features": null,
"docker_images": {
".NET 9": "ghcr.io/ptero-eggs/yolks:dotnet_9"
Copy link

Copilot AI Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docker_images display name uses a unique .NET 9 label; elsewhere in the repo the Dotnet yolks are typically labeled Dotnet 9 / Dotnet 8 etc. Aligning the label helps keep the panel UI consistent for users browsing images.

Suggested change
".NET 9": "ghcr.io/ptero-eggs/yolks:dotnet_9"
"Dotnet 9": "ghcr.io/ptero-eggs/yolks:dotnet_9"

Copilot uses AI. Check for mistakes.
},
"scripts": {
"installation": {
"script": "#!/bin/ash\napk add --no-cache curl unzip jq\n\nmkdir -p /mnt/server\ncd /mnt/server\n\necho \"Getting latest release URL...\"\nDOWNLOAD_URL=$(curl -s https://api.github.com/repos/Extremelyd1/SSMP/releases/latest | jq -r '.assets[] | select(.name == \"SSMPServer-linux.zip\") | .browser_download_url')\n\necho \"Downloading from: ${DOWNLOAD_URL}\"\ncurl -L -o SSMPServer-linux.zip \"${DOWNLOAD_URL}\"\n\necho \"Extracting files...\"\nunzip -o SSMPServer-linux.zip\nrm SSMPServer-linux.zip\n\necho \"Listing files:\"\nls -la\n\necho \"Setting permissions...\"\nchmod +x SSMPServer\n\necho \"Installation complete!\"",
Copy link

Copilot AI Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The installer script doesn’t validate that DOWNLOAD_URL was successfully resolved (it can be empty/"null" if the asset name changes, the API rate-limits, or the release has no matching asset), and it doesn’t fail fast on command errors. Add a check that DOWNLOAD_URL is non-empty and not null before downloading, and ensure the script exits on failures so installs don’t silently produce a broken server directory.

Suggested change
"script": "#!/bin/ash\napk add --no-cache curl unzip jq\n\nmkdir -p /mnt/server\ncd /mnt/server\n\necho \"Getting latest release URL...\"\nDOWNLOAD_URL=$(curl -s https://api.github.com/repos/Extremelyd1/SSMP/releases/latest | jq -r '.assets[] | select(.name == \"SSMPServer-linux.zip\") | .browser_download_url')\n\necho \"Downloading from: ${DOWNLOAD_URL}\"\ncurl -L -o SSMPServer-linux.zip \"${DOWNLOAD_URL}\"\n\necho \"Extracting files...\"\nunzip -o SSMPServer-linux.zip\nrm SSMPServer-linux.zip\n\necho \"Listing files:\"\nls -la\n\necho \"Setting permissions...\"\nchmod +x SSMPServer\n\necho \"Installation complete!\"",
"script": "#!/bin/ash\nset -e\napk add --no-cache curl unzip jq\n\nmkdir -p /mnt/server\ncd /mnt/server\n\necho \"Getting latest release URL...\"\nDOWNLOAD_URL=$(curl -fsSL https://api.github.com/repos/Extremelyd1/SSMP/releases/latest | jq -r '.assets[] | select(.name == \"SSMPServer-linux.zip\") | .browser_download_url')\n\nif [ -z \"$DOWNLOAD_URL\" ] || [ \"$DOWNLOAD_URL\" = \"null\" ]; then\n echo \"Failed to resolve download URL for SSMPServer-linux.zip\" >&2\n exit 1\nfi\n\necho \"Downloading from: ${DOWNLOAD_URL}\"\ncurl -fsSL -o SSMPServer-linux.zip \"${DOWNLOAD_URL}\"\n\necho \"Extracting files...\"\nunzip -o SSMPServer-linux.zip\nrm SSMPServer-linux.zip\n\necho \"Listing files:\"\nls -la\n\necho \"Setting permissions...\"\nchmod +x SSMPServer\n\necho \"Installation complete!\"",

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,3 @@
# SSMP - Silk Song Multiplayer
Copy link

Copilot AI Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README title uses "Silk Song"; the game name is typically written as "Silksong" (and your description line already uses "Silksong"). Please make the title consistent to avoid confusion/searchability issues.

Suggested change
# SSMP - Silk Song Multiplayer
# SSMP - Silksong Multiplayer

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +3
# SSMP - Silk Song Multiplayer

Pterodactyl Egg for hosting a Hollow Knight: Silksong multiplayer server.
Copy link

Copilot AI Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new egg directory isn’t referenced in the repository’s main README game list, which will make it hard for users to discover. Please add silksong to the root README (alphabetically) as required by the new egg submission checklist.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,31 @@
{
Copy link

Copilot AI Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most egg JSON files in this repo are named with an egg-*.json prefix (e.g. hytale/egg-hytale.json, spacestation_14/egg-spacestation14.json, openttd/egg-open-t-t-d-server.json). Consider renaming SSMP.json to follow that convention for consistency and easier discovery.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants