Steam Workshop

Steam Workshop support is being added to Supreme Ruler Ultimate effective version 9.1.286+ (March 2020 Update).

Workshop items supported are MAPS and MODS, described below.

Workshop type MAPS:

 * Upload from:  \Scenario\Workshop
 * A "Package" of a .scenario file and as many game items as necessary
 * Game items load from Workshop path if available, then check SRU path
 * Display/Select:
 * SP:  Listbox 1534
 * MP:  switch list as with Save games; Listbox 2907

Workshop type MODS:

 * Upload from: ??
 * Replacement/addition items for anything in game root path
 * Once "subscribed", will be used for file load paths
 * Search workshop paths, in order, until file found
 * If file not found, use default SRU path
 * Optional, handle file list paths (ie Sandbox) by combining all results into one
 * Could be unsubscribed from SRU
 * Optional, could query list and subscribe from within SRU
 * Note:  This usage can cause conflicts with other workshop items, unexpected changes (ie flag replacements), issues with core game, etc

Uses of Steam Workshop

 * Create a new Sandbox/Scenario (MAPS)
 * Created in \Scenario\Workshop\
 * Create a .scenario file
 * Create a folder with the same name for scenario-specific files
 * Optional: Create folders with override for default game (Maps\, Graphics\ etc)
 * Upload to Steam using Asset Tool
 * Create Mods for Core Game (MODS)
 * Create a folder structure with changed files
 * Can be in any folder - Sandbox\ etc, Maps\, Graphics\, Localize\ etc
 * Can also override data from existing Core Sandbox, Campaign, or Scenario
 * Can override in the Sandbox\... folder, and/or the Common\ folder etc
 * Upload to Steam using ???

Technical Details
Game Engine initializes Steam during application startup, before main menu display


 * Workshop items should be retrieved before menu is called, so that graphics and haps will load through the workshop sequence.
 * Items that load before workshop data is available:
 * Splash screens (BltSplashScreen) - pubsplash, splash, splashme/box
 * If Workshop data arrives in time, everything else should be OK
 * When a new Workshop MAPS game is started, all graphics (textures) are unloaded
 * This will force the game to use any graphics in the MAPS workshop folders first
 * This may cause brief visual anomalies when starting a new game
 * Other workshop changes (ie turning MODS items on/off) usually require a game restart.
 * There are some items (ie FONTS pages, Cursors) that can't be modded in MAPS files, as they are not unloaded.

File Loading Sequence - stops at first found:


 * 1) If MAPS: MAPS workshop path
 * 2) If not MAPS: Loop through each MODS path looking for Scenario Path overrides
 * 3) If not MAPS: Scenario Path in Default installation
 * 4) Default installation

For Example - loading Sandbox SR1940, looking for Default.WMData


 * 1) Look through all MODS : \Sandbox\SR1940\MAPS\Default.WMData
 * 2) Sandbox\SR1940\MAPS\Default.WMData
 * 3) MAPS\Default.WMData

For Example - Loading MAPS Workshop Scenario SRNEW, looking for Default.WMData


 * 1) \SRNEW\MAPS\Default.WMData
 * 2) MAPS\Default.WMData

Limitations of Steam Workshop
The following are currently limitations with the Steam Workshop implementation:


 * Workshop maps cannot be used with multiplayer games.
 * Workaround: Host starts/creates game, saves it, and then transfers save game to other players
 * Workshop type MAPS items cannot modify game engine items such as graphics pages without side effects; use MODS type items for this.