Skip to content

feat(workshop): add Steam Workshop downloads for Colony Survival - #5016

Merged
dgibbs64 merged 3 commits into
developfrom
feature/workshop-colony-survival
Oct 11, 2026
Merged

dgibbs64 merged 3 commits into
developfrom
feature/workshop-colony-survival

Conversation

@dgibbs64

@dgibbs64 dgibbs64 commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Description

Extends the Workshop downloader (#5008, #5009, #5012, #5014) to Colony Survival. Its dedicated server doesn't download Workshop mods itself.

Unlike the other anonymous games, Colony Survival Workshop downloads need a Steam account that owns the game, as with Arma 3 and DayZ. The server itself still downloads anonymously. The default config gets an empty steamuser/steampass, so server updates stay anonymous unless a login is set for Workshop mods.

Install

  • Mods install to gamedata/mods/<id>.
  • The server only loads mods enabled in each world's gamedata/savegames/<world>/worldconfig.json. Without an entry it logs Not loading <mod>; no config entry for world.
  • LinuxGSM uses jq to keep a {"ModName": <name>, "ModVersionLastKnown": "---", "Enabled": true} entry in ModConfigEntries for each Workshop mod, in workshopmods order. <name> is the name from the mod's modInfo.json, recorded in the mod's state file.
    • Entries are matched by ModName, because the server rewrites them (it drops extra fields and fills in ModVersionLastKnown).
    • The version the server records is kept, and entries for mods you added yourself are left alone.
    • Removing a mod removes its entry.
  • This applies to every world in gamedata/savegames. If there's no world yet (the server has never started), LinuxGSM warns and skips this step.

Testing

Live test server, running this branch (tested with the final jq version), with a Steam account that owns Colony Survival (workshopmods="3816302400", Light Decor):

  • Downloaded (with a Steam login) and installed to gamedata/mods/3816302400, with modname=Light Decor recorded.
  • worldconfig.json got the entry, and the server log shows Loading mod Light Decor 1.0.0. The server then recorded "ModVersionLastKnown":"1.0.0".
  • A second workshop-update reported no update and didn't restart the server.
  • Clearing workshopmods removed the mod and set ModConfigEntries back to [].
  • The server stayed healthy throughout and was restored afterwards.
  • Locally, the worldconfig.json editing:
    • A hand-added entry is kept.
    • Order follows workshopmods.
    • The server's recorded version is preserved.
    • Removed mods' entries are dropped.
  • shellcheck and prettier pass.

Relates to #3514.

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).

Checklist

  • 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 checked that this code is commented where required.
  • I have provided a detailed enough description of this PR.
  • I have checked if documentation needs updating.

Documentation

Covered in GameServerManagers/LinuxGSM-Docs#132.

Copilot AI balanced review requested due to automatic review settings October 11, 2026 12:18
@dgibbs64 dgibbs64 added this to the v26.4.0 milestone Oct 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added type: feature New feature or request engine: unity3d Issues related to unity3d engine engine: realvirtuality Issues related to realvirtuality engine engine: enfusion Issues related to enfusion engine game: Colony Survival Issues related to Colony Survival game: ARMA 3 Issues related to ARMA 3 game: DayZ Issues related to DayZ labels Oct 11, 2026
@dgibbs64
dgibbs64 merged commit ed1162e into develop Oct 11, 2026
15 checks passed
@dgibbs64
dgibbs64 deleted the feature/workshop-colony-survival branch October 11, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine: enfusion Issues related to enfusion engine engine: realvirtuality Issues related to realvirtuality engine engine: unity3d Issues related to unity3d engine game: ARMA 3 Issues related to ARMA 3 game: Colony Survival Issues related to Colony Survival game: DayZ Issues related to DayZ type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants