Panel/docs/decisions/0004-workshop-system.md

1.5 KiB

Decision 0004: Server Content Manager Is The Workshop Layer

Status

Accepted, Phase 1 implementation started

Decision

Panel/modules/addonsmanager should remain the primary future home for Workshop items, mods, add-ons, and server content. steam_workshop should remain a deprecated compatibility layer only.

Phase 1 implements this decision by routing the user-facing Workshop install flow through addonsmanager/workshop_content.php and suppressing the standalone steam_workshop monitor button.

Reasoning

  • addonsmanager already has the richer schema and more complete product direction.
  • It supports content types beyond Steam Workshop.
  • It is a better fit for load order, enable/disable, install history, and metadata.

Alternatives Considered

  • keep steam_workshop as the main module
  • split mods, add-ons, and Workshop into separate modules

Why Those Were Not Chosen

  • steam_workshop is explicitly deprecated in the codebase.
  • Separate modules would fragment user workflows and duplicate install logic.

Implementation Notes

  • Workshop input accepts numeric IDs or Steam URLs, then stores numeric IDs only.
  • Manifests are written under the server home in gsp_server_content.
  • Bundled Linux/Cygwin scripts are copied from the Panel module to an agent-managed folder under the server home before execution.
  • DayZ/Arma-style installs default to @<workshop_id> folders and copy .bikey files into keys when present.
  • Startup parameter generation remains a later phase.