-
Notifications
You must be signed in to change notification settings - Fork 88
feat: Add Runescape Dragonwilds dedicated server egg #507
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # RuneScape: Dragonwilds Pterodactyl Egg | ||
|
|
||
| A Pterodactyl egg for the RuneScape: Dragonwilds dedicated server. | ||
|
|
||
| ## Resources | ||
| RAM required is 2Gb + 1Gb per player. | ||
|
|
||
| The server can support up to 6 players. | ||
|
|
||
|
|
||
| ## Mandatory configuration values | ||
| **Owner ID**: This is your RuneScape: Dragonwilds Player ID. It can be found in game at the bottom of the Settings Menu. | ||
|
|
||
| **Server Name**: The name of your server, no matter what world it may run. | ||
|
|
||
| **Default World Name**: Upon startup, your Dedicated Server will create a default world. This configuration value allows you to decide how you want it to be named. | ||
|
|
||
| **Admin password**: Anyone who knows this password can enter the Server Management tab in the Pause Menu > Settings menu. | ||
|
|
||
| **World Password**: (Optional) The password required to join the world. Leave empty for public access. | ||
|
|
||
| ## Find your world | ||
| To find your dedicated server, go to the Public tab of the Worlds screen, then in the search tab, enter your exact World name, case sensitive. | ||
|
|
||
| ## Network & Ports | ||
| By default, the server uses the following ports. If you are using Pterodactyl, ensure you have allocated these to your server instance. | ||
| | Port | Default | Protocol | Purpose | | ||
| |------|---------|----------|---------| | ||
| | Game | 7777 | UDP | Main game traffic | | ||
| | Query | 27015 | UDP | Steam Server Browser traffic | | ||
|
|
||
| **Note on Allocations:** | ||
| The **Game** Port will automatically use the port assigned to your server's primary allocation if you configure it in the Pterodactyl panel. If you do not, it will default to 7777. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,134 @@ | ||
| { | ||
| "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||
| "meta": { | ||
| "version": "PTDL_v2", | ||
| "update_url": "" | ||
| }, | ||
| "exported_at": "2026-04-02T23:08:00+01:00", | ||
| "name": "RuneScape: Dragonwilds", | ||
| "author": "brad@saintyfx.com", | ||
| "description": "On RuneScape\u2019s forgotten continent of Ashenfall, dragons have awoken. Gather, build, skill and craft to survive in this co-operative survival crafting game.", | ||
| "features": [ | ||
| "steam_disk_space" | ||
| ], | ||
| "docker_images": { | ||
| "ghcr.io\/ptero-eggs\/steamcmd:debian": "ghcr.io\/ptero-eggs\/steamcmd:debian" | ||
| }, | ||
| "file_denylist": [], | ||
| "startup": ".\/RSDragonwilds\/Binaries\/Linux\/RSDragonwildsServer-Linux-Shipping RSDragonwilds -Port={{SERVER_PORT}} -QueryPort={{DV_QUERY_PORT}} -MultiHome={{SERVER_IP}} -ini:DedicatedServer:[\/Script\/Dominion.DedicatedServerSettings]:OwnerId={{DV_OWNER_ID}} -ini:DedicatedServer:[\/Script\/Dominion.DedicatedServerSettings]:AdminPassword={{DV_ADMIN_PASSWORD}} -ini:DedicatedServer:[\/Script\/Dominion.DedicatedServerSettings]:ServerName=\"{{DV_SERVER_NAME}}\" -ini:DedicatedServer:[\/Script\/Dominion.DedicatedServerSettings]:DefaultWorldName=\"{{DV_WORLD_NAME}}\" -ini:DedicatedServer:[\/Script\/Dominion.DedicatedServerSettings]:WorldPassword=\"{{DV_WORLD_PASSWORD}}\" -ini:Game:[\/Script\/Engine.GameSession]:MaxPlayers={{DV_MAX_PLAYERS}} {{EXTRA_ARGS}}", | ||
BradSainty marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| "config": { | ||
| "files": "{\n \"RSDragonwilds\/Saved\/Config\/LinuxServer\/DedicatedServer.ini\": {\n \"parser\": \"file\",\n \"find\": {\n \"AdminPassword\\\\s*=\\\\s*.*\": \"AdminPassword={{server.build.env.DV_ADMIN_PASSWORD}}\",\n \"OwnerId\\\\s*=\\\\s*.*\": \"OwnerId={{server.build.env.DV_OWNER_ID}}\",\n \"WorldPassword\\\\s*=\\\\s*.*\": \"WorldPassword={{server.build.env.DV_WORLD_PASSWORD}}\",\n \"ServerName\\\\s*=\\\\s*.*\": \"ServerName={{server.build.env.DV_SERVER_NAME}}\",\n \"DefaultWorldName\\\\s*=\\\\s*.*\": \"DefaultWorldName={{server.build.env.DV_WORLD_NAME}}\"\n }\n }\n}", | ||
|
||
| "startup": "{\n \"done\": \"Game Engine Initialized\"\n}", | ||
|
||
| "logs": "{}", | ||
| "stop": "^C" | ||
| }, | ||
| "scripts": { | ||
| "installation": { | ||
| "script": "#!\/bin\/bash\n# SteamCMD Base Installation Script\n\napt -y update\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\n\n# Variables\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\n echo -e \"Using anonymous Steam login\"\n STEAM_USER=anonymous\n STEAM_PASS=\"\"\n STEAM_AUTH=\"\"\nfi\n\ncd \/tmp\nmkdir -p \/mnt\/server\/steamcmd\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\n\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\nmkdir -p \/mnt\/server\/steamapps\ncd \/mnt\/server\/steamcmd\n\nexport HOME=\/mnt\/server\n\n# Install server\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} validate +quit\n\n# Fix steam libraries\nmkdir -p \/mnt\/server\/.steam\/sdk32\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\n\nmkdir -p \/mnt\/server\/.steam\/sdk64\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\n\n# Permissions for Sentry Crash Handler\nchmod +x \/mnt\/server\/RSDragonwilds\/Plugins\/Developer\/Sentry\/Binaries\/Linux\/crashpad_handler 2>\/dev\/null || true\n\n# Seed DedicatedServer.ini with correct headers to ensure regex find works\nmkdir -p \/mnt\/server\/RSDragonwilds\/Saved\/Config\/LinuxServer\ncat <<'EOF' > \/mnt\/server\/RSDragonwilds\/Saved\/Config\/LinuxServer\/DedicatedServer.ini\n;METADATA=(Diff=true, UseCommands=true)\n[SectionsToSave]\nbCanSaveAllSections=true\n\n[\/Script\/Dominion.DedicatedServerSettings]\nAdminPassword=\nOwnerId=\nWorldPassword=\nServerName=\nDefaultWorldName=\nServerGuid=\nEOF\n\necho \"-----------------------------------------\"\necho \"Installation completed\"\necho \"-----------------------------------------\"", | ||
|
||
| "container": "ghcr.io\/ptero-eggs\/installers:debian", | ||
| "entrypoint": "bash" | ||
| } | ||
| }, | ||
| "variables": [ | ||
| { | ||
| "name": "Owner ID", | ||
| "description": "Your RuneScape: Dragonwilds Player ID (Required for server startup)", | ||
| "env_variable": "DV_OWNER_ID", | ||
| "default_value": "", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Server Name", | ||
| "description": "The name of your server", | ||
| "env_variable": "DV_SERVER_NAME", | ||
| "default_value": "A Dragonwilds Server", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Admin Password", | ||
| "description": "The password used to access server management in-game", | ||
| "env_variable": "DV_ADMIN_PASSWORD", | ||
| "default_value": "ChangeMe", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Default World Name", | ||
| "description": "The name of the world to create\/load", | ||
| "env_variable": "DV_WORLD_NAME", | ||
| "default_value": "MyWorld", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "World Password", | ||
| "description": "Optional world password. Leave empty for public access.", | ||
| "env_variable": "DV_WORLD_PASSWORD", | ||
| "default_value": "", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "nullable|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Query Port", | ||
| "description": "Steam query port (UDP)", | ||
| "env_variable": "DV_QUERY_PORT", | ||
| "default_value": "27015", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|numeric", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Max Players", | ||
| "description": "Maximum number of players allowed on the server", | ||
| "env_variable": "DV_MAX_PLAYERS", | ||
| "default_value": "6", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|numeric", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Auto Update", | ||
| "description": "Enable automatic updates on server startup", | ||
| "env_variable": "AUTO_UPDATE", | ||
| "default_value": "1", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "required|numeric", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Extra Arguments", | ||
| "description": "Additional server startup arguments", | ||
| "env_variable": "EXTRA_ARGS", | ||
| "default_value": "-log -unattended -NoCrashDialog", | ||
| "user_viewable": true, | ||
| "user_editable": true, | ||
| "rules": "nullable|string", | ||
| "field_type": "text" | ||
| }, | ||
| { | ||
| "name": "Steam App ID", | ||
| "description": "Steam App ID for Dragonwilds server", | ||
| "env_variable": "SRCDS_APPID", | ||
| "default_value": "4019830", | ||
| "user_viewable": false, | ||
| "user_editable": false, | ||
| "rules": "required|string", | ||
| "field_type": "text" | ||
| } | ||
| ] | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love the use of -ini here!