Skip to content

feat(rsdwserver): add RuneScape: Dragonwilds server#4921

Open
JSaterdalen wants to merge 3 commits intoGameServerManagers:developfrom
JSaterdalen:feat/rsdwserver
Open

feat(rsdwserver): add RuneScape: Dragonwilds server#4921
JSaterdalen wants to merge 3 commits intoGameServerManagers:developfrom
JSaterdalen:feat/rsdwserver

Conversation

@JSaterdalen
Copy link
Copy Markdown

Description

Adds dedicated server support for RuneScape: Dragonwilds (Steam appid 4019830, native Linux 64-bit binary).

This PR supersedes #4893. @yourfate invited completion in their comment ("If anyone wants to complete this, feel free, I probably won't have time to work on this for a few months."); this branch picks up that work, finishes the open items, and has been tested on my own server.

differences from #4893:

  • Uses shortname rsdw. Happy to revert if maintainers prefer rd.
  • Adds fn_info_game_rsdw parsing the in-game DedicatedServer.ini for ServerName, OwnerId, WorldPassword, AdminPassword, DefaultWorldName (verified against the actual [/Script/Dominion.DedicatedServerSettings] section produced by the running server).
  • Adds fn_info_messages_rsdw with the port table plus a "Game Settings" details block surfacing world name and owner ID.
  • Adds rsdw to info_messages.sh's ports_edit_array so details shows the real INI path instead of UNKNOWN.
  • Adds 2 GB minimum RAM check in check_system_requirements.sh (per official docs: 2 GB base + 1 GB per player).
  • Uses Saved/Config/LinuxServer/ (the wiki says Linux/, but the server actually used LinuxServer/).
  • Skips per-distro dep rows. UE5 dedicated servers installed via SteamCMD need no extra packages.

Follow-up (separate PR): a Game-Server-Configs template (rsdw/DedicatedServer.ini with SERVERNAME/ADMINPASSWORD placeholders) plus an install_config.sh block to seed the INI on first install.

Fixes #4891.

Type of change

  • Bug fix (a change which fixes an issue).
  • New feature (a change which adds functionality).
  • New Server (new server added).
  • Refactor (restructures existing code).
  • Comment update (typo, spelling, explanation, examples, etc).

Testing

  • Commands/tests run:
    • ./linuxgsm.sh rsdwserver
    • ./rsdwserver auto-install
    • ./rsdwserver start
    • ./rsdwserver details
    • ./rsdwserver stop
    • ./rsdwserver postdetails
    • shellcheck --severity=warning on info_game.sh, info_messages.sh, check_system_requirements.sh, and the new _default.cfg
  • Result: All commands successful. INI parsing matches the actual section header [/Script/Dominion.DedicatedServerSettings] and the keys the server writes on first launch.
  • Environment used (distro/version): Debian GNU/Linux 12 (bookworm), x86_64, glibc 2.36, kernel 6.8.12 (LXC). Target distro per serverlist.csv is ubuntu-24.04; Ubuntu 24.04 verification still pending.

Risk and rollback

  • Risk level: low
  • Rollback plan: revert the three commits on this branch

Breaking changes

  • No breaking changes.
  • Breaking changes included (describe below).

Documentation impact

  • No documentation update required.
  • User documentation update required.
  • Developer documentation update required.

A new page under LinuxGSM-Docs/game-servers/ for rsdwserver should be added once this lands. Happy to open the docs PR as a follow-up.

Checklist

PR will not be merged until all steps are complete.

  • This pull request links to an issue.
  • This pull request uses the develop branch as its base.
  • This pull request subject follows the Conventional Commits standard.
  • This code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have provided a detailed enough description of this PR.

Documentation

If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.

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.

1 participant