0 of 0

File information

Last updated

Original upload

Created by

UltraHex

Uploaded by

UltraHex

Virus scan

Safe to use

Tags for this mod

About this mod

Comprehensive fixes for bugs and oversights in the WIAssault02 (Scare My Enemy) quest.

Requirements
Permissions and credits
Changelogs
Donations
You may have used Scare My Enemy Bug Fix.
And you may have noticed that USSEP claims it's obsolete.
You may even have observed that Scare My Enemy Bug Fix claims to fix something that USSEP does not.
And you may ask yourself: "what gives?"

While Scare My Enemy Bug Fix does indeed cover a small edge case that USSEP does not (see diagram) the truth is there are even more things wrong (or just weird) with this quest that neither mod addresses. My mod aims to fix all of it. It's all in this note diagram:



While testing my fixes, I stumbled upon an engine bug. I've included an optional workaround in the mod. Technical details in the spoiler. Warning: Very technical.

Spoiler:  
Show

There is a condition on the WIAssault02 (and WIAssault01) quest that checks the "Crime" parameter of the "Assault" event that is triggering the quest. If the parameter is not 1, the quest won't start. In my tests, the lower 8 bits of the parameter would always be 0000 0001 and the upper 24 bits would contain garbage resulting in some absurdly large (possibly negative) odd number. Curiously, it would always be the same number until I restarted the game. What appears to be happening is the game is writing an 8-bit integer to some memory location and then reading a 32-bit integer from the same location.

I have a sneaking suspicion that the aforementioned memory location is on the stack, in a location recently occupied by a windows API call, the internal implementation of which recently changed in the Windows 11 24H2 update, where there used to be zeroed memory after the call, but no longer. As I keep my systems up-to-date, I can't test this theory and it's just speculation at this point.

This bug existed in 1.5.97 (That's the farthest back I could check) and it still exists in 1.6.1170. The bug does NOT exist in Skyrim LE, however.

But what is the "Crime" parameter anyway?
If it's a boolean indicating the assault was a crime, it always seems to be 1 (normally) even if the assault isn't technically a crime. I tested it on the Forsworn that tries to murder Margret when you first enter Markarth and always got a (sometimes garbled) 1, even on LE where the bug doesn't exist.
If it's an enum or something representing the type of crime, then it's redundant, the type of crime is always assault.