Skip to content

Add Support for Overlay Plugins #668

@Infernio

Description

@Infernio

Starfield introduces a new flag for plugins, which we've standardized on calling "Overlay". Current understanding is as follows:

  • The flag's index is 0x200, where the ESL flag used to be (which is now 0x100).
  • An overlay plugin cannot have the ESL flag set as well - if the game finds both, it ignores the Overlay flag.
  • An overlay plugin cannot have new records (well, technically it can, but it really shouldn't - they get injected into the the first master in the plugin's master list, which is not a desirable situation, obviously).
  • An overlay plugin does not take up a load order slot at all.
  • An overlay plugin must have at least one master - if the game does not find a master, it ignores the Overlay flag.

This makes them ideal for conflict resolution patches, for obvious reasons.

Wrye Bash should:

  • Parse the flag correctly.
  • Allow loading an unlimited number of overlay plugins.
  • Remove the ESL flag when we write a plugin that has the Overlay flag.
  • Not mark overlay plugins as ESL-capable.
  • Display the number of active overlay plugins in the status bar.
  • Warn about plugins (in the Plugin Checker) that have the Overlay flag set but include new records.
  • Warn about plugins (again, in the Plugin Checker) that have the Overlay flag set but also have the ESL flag set.
  • Warn about plugins (you guessed it, in the Plugin Checker) that have the Overlay flag set but have no masters.
  • Allow creating Overlay plugins via New Plugin...
    • Also, New Plugin... should disable the ESL checkbox if the Overlay checkbox is selected (and vice versa).
    • And the Overlay checkbox should also get disabled if no masters are selected.
  • Show a new color (and mouseover text) for overlay plugins - plus one mixed with the ESM color (no need for mixed overlay and ESL, obviously).
  • Check for Overlay-capable plugins and highlight them (time to refactor that system for good).
  • Feature an option to Overlay-flag a plugin, similar to how we ESL-flag.

Metadata

Metadata

Assignees

Labels

A-load-orderArea: Load Order (load_order.py and _games_lo.py)C-enhancementCategory: Enhancement, a request to add or enhance a featureG-starfieldGame: StarfieldM-relnotesMisc: Issue should be listed in the version history for its milestone

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions