Jump to content

xEdit 4.1.5: Nasty bug when saving ESM plugins


Mousetick

Recommended Posts

I've spent the last several hours tearing my hair out while troubleshooting an issue where a temporary reference override in an ESM plugin was completely ignored by the game as if it didn't exist in the plugin. The console would show that the last overriding plugin was not the expected one but the one before it in the overriding chain of the load order.

Long story short: an ESM plugin contains a sub-record in its header, named ONAM, that is the list of temporary records overridden by that plugin. The engine uses that list for actually overriding temporary objects in-game, apparently. If an override is in the plugin but not in the list, it's completely ignored by the engine. This includes anything that can be overridden in the temporary group of a CELL: LAND, NAVM, REFR, ACHR, ...

xEdit 4.1.5 has a bug which omits the first element of the ONAM list when saving an ESM plugin. xEdit rewrites the list from scratch anytime the plugin is saved. So even if a minute change, even unrelated to temporary overrides, is made to a complete ESM plugin, the plugin will get an incomplete ONAM list when saving it. IMHO this is a pretty serious regression which affects not only new ESM plugins created by xEdit, but also existing ones edited (and/or autocleaned?) by xEdit.

@sheson If you're reading this, do you have any insider information about when the next version of xEdit might be released? ElminsterAU committed the fix ("fix for: ONAM in the File Header is always missing it's first entry") on GitHub more than a month ago. It seems there was going to be a 4.1.5b release but that didn't happen. Now there's a 4.1.6 development branch. This bug might also affect DynDOLOD.esm depending on which code base the latest DynDOLOD is built upon.

In the meantime, I'm reverting to xEdit 4.0.4.

Edited by Mousetick
Link to comment
Share on other sites

Posted (edited)

Thanks for the pointer, sheson.

xEdit 4.1.5b, with the fix for this bug among other changes, is available for download in the xedit-builds channel of the xEdit Discord server.

ESM plugins in the load order that override temporary objects and that were edited or autocleaned with xEdit 4.1.5, need to be resaved with 4.1.5b or later (or with 4.0.4) in order to "repair" them.

Edited by Mousetick
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.