wrye-bash / wrye-bash

A swiss army knife for modding Bethesda games.
https://wrye-bash.github.io
GNU General Public License v3.0
455 stars 79 forks source link

Add Support for Overlay Plugins #668

Closed Infernio closed 7 months ago

Infernio commented 7 months ago

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

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

Wrye Bash should:

LordNyriox commented 7 months ago

@Infernio: I find it interesting that these 'overlay' plugins sound similar to the 'mergeable' patch plugins from older Bethesda games.

Once the Starfield plugin format has been fully decoded, perhaps you could implement the Starfield Bashed Patch as an 'overlay' plugin (instead of an ESL)?

Infernio commented 7 months ago

Potentially, but the BP can actually contain new records (GMSTs). Plus we already flag it as an ESL, so it's not going to take up a full slot anyways.

Infernio commented 7 months ago

We don't inject them anymore, not since 308. We create new GMST records for all games instead, because injecting records is actually quite dangerous and the only thing that used to stop us from creating new records was that there was simply no code in place to create new records in the BP. Once #312 (especially tweak pooling) paved the way for that, we switched to creating new records (and nuked some giant database files that were needed for the injection, which was nice as well).

Edit: see a5b8f9635e384519e931e1be0c3ddd1154b9bc00 (32 additions and 21,945 deletions). Also, it was 308, not 307, corrected.

Infernio commented 7 months ago

We may still do it, but we'll see how the BP shakes out for Starfield first (which will obviously have to wait until SF1Edit is reliable and maybe even until the CK is released).

Infernio commented 7 months ago

Alright, should be done. Note that none of it will work in Starfield yet (except for the new color for Overlay-flagged plugins), because canBash is False for Starfield right now, which disables everything to do with plugin manipulation.