- module.php: bump db_version to 2; full v2 schema in install_queries[0]; ALTER TABLE migration in install_queries[2] adding 11 new profile columns plus server_workshop_settings table
- WorkshopRepository: expand saveProfile() with all new fields (steam_app_id, steamcmd_login_mode, steamcmd_path, mod_separator, copy_keys, key paths, pre/post scripts, validation_notes); add nullOrStr helper; add server settings CRUD (getServerSettings, saveServerSettings, recordUpdateResult, setUpdateQueued, listQueuedUpdateHomes); update insertOrUpdateMod with custom_folder; update listAllEnabledMods to select new columns
- WorkshopProfileController: full extractProfileData() with all new fields; validateProfileData with folder template check
- views/admin/profile_form.php: full rewrite – all required fields (steam_app_id, workshop_app_id, login mode, SteamCMD path, OS, cache path, install path, folder naming dropdown, launch params, mod separator, copy method, copy keys with JS show/hide, key paths, pre/per-mod/post bash scripts with DayZ example, validation notes, config file template)
- views/admin/profiles.php: updated list view columns (App IDs, Login, Method)
- WorkshopInstaller.php: full rewrite with %var% template support (+ legacy {var} compat); buildTemplateVars() resolves all 14 variables; pre/post script execution; triggerSteamCmdDownload uses new profile fields; copyKeys helper
- WorkshopModController: add save_settings and queue_update POST actions; handleModsPage loads serverSettings + allProfiles
- views/user_workshop_mods.php: full rewrite – server settings form (enable, profile selector, update mode, restart behavior), update status grid (status/error/time/success time), queue update button, mod table with custom_folder column and toggle/order auto-submit
- lang/en_US.php: ~80 new string keys for all v2 fields
- steam_workshop.css: new v2 styles (3-col grid, script textarea, status grid, server settings card, badges)"
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e7f0d80d-f775-4794-adbd-cf48b55bc9c1
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
|
||
|---|---|---|
| .. | ||
| bin | ||
| controllers | ||
| data | ||
| DayZ Workshop Mod Auto Update | ||
| game_configs | ||
| lang | ||
| lib | ||
| migrations | ||
| views | ||
| cron_update.php | ||
| functions.php | ||
| main.php | ||
| module.php | ||
| monitor_buttons.php | ||
| navigation.xml | ||
| prestart_sync.php | ||
| README.md | ||
| steam_workshop.css | ||
| steam_workshop.js | ||
| uninstall.php | ||
| workshop_admin.php | ||
Steam Workshop Automation (WIP)
This folder now hosts the rewritten Steam Workshop tooling for the GSP panel. The previous DayZ-only batch scripts are left untouched under DayZ Workshop Mod Auto Update/ for historical reference, but the new MVC layer introduces adapters, XML-backed configuration, and an eventual agent scheduler.
Milestone 1 summary
- Controllers –
controllers/SteamWorkshopController.phproutes the module entrypoint through a thin MVC wrapper. - Service layer –
lib/SteamWorkshopService.phploads/saves per-home XML configs underdata/configs/<home_id>.xml, parses Modlist-style imports, and exposes adapter metadata. - Adapters –
lib/GameAdapters/*.xmldefine canonical behaviors for DayZ, Arma 3, ARK, Garry's Mod, and CS2. They are validated againstschema.xsd. - Views –
views/*render the server list, edit form, and parsed mod table using localized strings fromlang/en_US.php. - Data directory –
data/configs/stores the serialized workshop configuration for each game home.
Editing workflow
- Visit
home.php?m=steam_workshop&p=mainto see the list of homes you can access. Click Configure on any home to edit its Workshop setup. - Paste a Modlist.txt style payload (e.g.,
1565508334,@MyMod) into the Workshop IDs textarea. - Choose the adapter, interval, install strategy, and on-update action, then click Save settings. The controller serializes this into XML so the agent can consume it later.
- Config files live under
modules/steam_workshop/data/configs/. Delete a file to reset a home to defaults.
Roadmap
- Milestone 2 will flesh out the adapter runtime helpers and validation against the schema.
- Milestone 3 wires the Linux/Windows agents via a new
workshop_updateRPC and scheduler, using the serialized XML from this module. - Later milestones add dry-run/apply actions, activation writers, and safe apply hooks.
GSP is a heavily customized fork of OGP maintained by WDS. Keep all Steam Workshop code inside this module tree so storefront, agents, and future docs stay decoupled.