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 : <Modpath>\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. *<Mapspath>\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.