steam workshotp
This commit is contained in:
parent
d8c66c4c49
commit
e921a49d5b
14 changed files with 285 additions and 26 deletions
|
|
@ -59,6 +59,13 @@ The admin template defines capability and policy. The customer supplies only Wor
|
|||
- `bash <script> <manifest>`
|
||||
7. The script runs SteamCMD, copies downloaded content into the target mod folder, logs output, and copies `.bikey` files for DayZ/Arma-style strategies.
|
||||
|
||||
Current repair:
|
||||
|
||||
- The default script filename is no longer treated as an agent-host path.
|
||||
- Missing custom scripts fall back to the bundled generic handler and log a warning.
|
||||
- Generic installs default to `{SERVER_ROOT}/workshop/{MOD_FOLDER}`.
|
||||
- DayZ/Arma installs keep `{SERVER_ROOT}/{MOD_FOLDER}` for `@<workshop_id>` compatibility.
|
||||
|
||||
## Manifest Fields
|
||||
|
||||
Phase 1 manifests include:
|
||||
|
|
@ -95,6 +102,11 @@ Default install folder:
|
|||
|
||||
- `@<workshop_id>`
|
||||
|
||||
Arma 3 game XML now declares:
|
||||
|
||||
- Workshop app ID: `107410`
|
||||
- Dedicated server app ID: `233780` through the existing `installer_name`
|
||||
|
||||
Key-copy behavior:
|
||||
|
||||
- `.bikey` files found anywhere in the installed mod folder are copied to `{SERVER_HOME}/keys`.
|
||||
|
|
@ -149,10 +161,16 @@ Phase 2 should generate structured mod lists from enabled `server_content_worksh
|
|||
- full Steam URL accepted
|
||||
- invalid text rejected
|
||||
- Temporary manifest test with fake SteamCMD confirmed:
|
||||
- Linux script installs into `@<workshop_id>`
|
||||
- Windows/Cygwin script installs into `@<workshop_id>`
|
||||
- Linux script installs generic content into `workshop/@<workshop_id>`
|
||||
- Windows/Cygwin script installs generic content into `workshop/@<workshop_id>`
|
||||
- Arma/DayZ strategies resolve to root `@<workshop_id>` folders
|
||||
- `.bikey` files are copied to `keys`
|
||||
- useful logs are written under `gsp_server_content`
|
||||
- Current smoke tests also confirm:
|
||||
- default Linux/Windows script staging no longer reports `script not found`
|
||||
- full URLs, numeric IDs, whitespace, comma, newline, duplicates, and invalid values parse correctly
|
||||
- generic no-template installs use `server_root/workshop`
|
||||
- missing SteamCMD returns a clear failure
|
||||
|
||||
## Phase 2 Work
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,13 @@ The Panel syncs the bundled install script to:
|
|||
|
||||
The agent executes the synced script with the manifest path. Customers do not need to place scripts manually on the agent.
|
||||
|
||||
Script selection rules:
|
||||
|
||||
1. If game XML defines a custom `workshop_script_linux` or `workshop_script_windows` and that script exists on the agent, use it.
|
||||
2. If the custom script is missing, log a fallback warning and stage the bundled generic handler.
|
||||
3. If no custom script is defined, stage the bundled generic handler for the server OS.
|
||||
4. The default script filename must never be treated as a pre-existing agent path. The Panel must copy the bundled script first.
|
||||
|
||||
The manifest includes:
|
||||
|
||||
- `home_id`
|
||||
|
|
@ -52,7 +59,17 @@ The manifest includes:
|
|||
- key-copy settings
|
||||
- content template metadata
|
||||
|
||||
DayZ/Arma-style installs default to `dayz_mod_folder` or `arma_mod_folder` based on the game key/name/config file. Those strategies install to `@<workshop_id>` by default and copy `.bikey` files into the server `keys` folder when found. Missing key files are logged but do not fail the install.
|
||||
Default install paths:
|
||||
|
||||
- Generic Workshop installs default to `{SERVER_ROOT}/workshop/{MOD_FOLDER}`.
|
||||
- DayZ/Arma-style installs default to `dayz_mod_folder` or `arma_mod_folder` based on the game key/name/config file. Those strategies install to `{SERVER_ROOT}/{MOD_FOLDER}` so `@<workshop_id>` folders remain compatible with existing `-mod=` workflows.
|
||||
- DayZ/Arma key-copy behavior copies `.bikey` files into the server `keys` folder when found. Missing key files are logged but do not fail the install.
|
||||
|
||||
App ID rules:
|
||||
|
||||
- `workshop_app_id` must come from a Server Content template, Steam Workshop profile, or game XML.
|
||||
- Do not silently use the dedicated server Steam app ID as the Workshop app ID unless a legacy profile explicitly does so.
|
||||
- Arma 3 XML declares Workshop app ID `107410`; its dedicated server Steam app ID remains `233780`.
|
||||
|
||||
## Database State
|
||||
|
||||
|
|
@ -101,6 +118,15 @@ The current direction already supports:
|
|||
- caching and cleanup policy need product-level design, not just ad hoc scripts.
|
||||
- `-mod=` / `-serverMod=` generation still needs a safe structured implementation.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Symptom | Meaning | Fix |
|
||||
|---|---|---|
|
||||
| `Configured workshop script not found on agent host: generic_steam_workshop_windows_cygwin.sh` | Old Panel logic treated the default script filename as an agent path. | Update the Panel. Current logic stages the bundled handler under `gsp_server_content/scripts/workshop/`. |
|
||||
| `SteamCMD is missing on the agent host.` | The handler could not find SteamCMD at the configured path, `STEAMCMD_PATH`, or common locations. | Install SteamCMD on the agent and/or set the SteamCMD path in the Workshop profile/template. |
|
||||
| `Workshop App ID is missing` | No template/profile/XML provided an app ID. | Add `workshop_app_id` to the Server Content template or game XML. |
|
||||
| Download succeeds but mod does not load | Startup parameters are not yet regenerated from installed Workshop rows. | Manually add the installed `@...` folders to the game startup params until Phase 2 startup integration is complete. |
|
||||
|
||||
## Recommended Mental Model
|
||||
|
||||
Use `addonsmanager` as the main future home for:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue