The Elder Scrolls

[PC SSE] An important PSA regarding Skyrim: Anniversary Edition, SKSE, and other native code mods

The upcoming Anniversary Edition of Skyrim is going to be much more disruptive to the modding scene than is commonly believed. Back up your executable now, and disable updates in Steam.

The native code modding scene around Skyrim SE will have been around for about four years when AE comes out. During that time, code has been developed to make many plugins portable across different versions of the game. Most plugins use the Address Library by meh321. Other plugins use code signature matching, which finds functions that "look like" a specific pattern. SKSE uses an offline tool I developed a long time ago based around position independent code hashing. With the AE update, all of these methods will break, and addresses will need to be found again from scratch.

The reason for this is that as part of the AE update, Bethesda has decided to update the compiler used to build the 64-bit version of Skyrim from Visual Studio 2015 to Visual Studio 2019. This changes the way that the code is generated in a way that forces mod developers to start from scratch finding functions and writing hooks. Class layouts are unlikely to change, luckily. I didn't ask specifically, but the most probable reason for this is that the Xbox Live libraries used for achievements on the Windows Store are only available for 2017 and later. Some games have worked around this limitation by building the code that interacts with Xbox Live in to a secondary DLL that is dynamically loaded by the game, but they didn't choose this option.

Plugins using the Address Library will need to be divided in to "pre-AE" and "post-AE" eras. Code signatures and hooks will need to be rewritten. We will all need to find functions again. The compiler's inlining behavior has changed enough that literally a hundred thousand functions have disappeared and been either inlined or deadstripped, to put it in perspective.

Doing this work takes a reasonable amount of time for each plugin. I can probably sit there over a few nights and bang out an updated version of SKSE, but my main concern is for the rest of the plugins out there. The plugin ecosystem has been around long enough that people have moved on, and code is left unmaintained. Effectively everyone who has written a native code plugin will need to do at least some amount of work to support AE. This realistically means that the native code mod scene is going to be broken for an unknown length of time after AE's release.

Additionally, I can confirm that AE will be released as a patch to existing Special Edition installations, not as a separate game listing in Steam.

I have been in contact with Bethesda since shortly after the announcement, but other than confirming my expectations they had nothing to offer.

Do not harass Bethesda employees about this.

Do not harass plugin developers about this.

TLDR edit: Scary things incoming if you use SKSE plugins. Change Skyrim SE's update settings in Steam to only update when launched. Never launch Skyrim SE via Steam, only via your mod manager or skse64_loader.

Source

Similar Guides

    None Found


More about The Elder Scrolls

Post: "[PC SSE] An important PSA regarding Skyrim: Anniversary Edition, SKSE, and other native code mods" specifically for the game The Elder Scrolls. Other useful information about this game:





Top 20 NEW Medieval Games of 2021

Swords, dragons, knights, castles - if you love any of this stuff, you might like these games throughout 2021.



10 NEW Shooter Games of 2021 With Over The Top Action

We've been keeping our eye on these crazy action oriented first and third person shooter games releasing this year. What's on your personal list? Let us know!



Top 10 NEW Survival Games of 2021

Survival video games are still going strong in 2021. Here's everything to look forward to on PC, PS5, Xbox Series X, Nintendo Switch, and beyond.



You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *