Ok, I figured it out. For some reason the item "Staff of the Burning Call" (FormID: 00029B78, EditorID: _00E_StaffOfTheBurningCall) crashes my game now.
No clue why as the mods I have installed don't touch anything dealing with this weapon.
For others that end up dealing with this type of thing, I'm going to describe how I fixed it.
In my case because I was dealing with the Secure Storage chest, I needed a way to record the ridiculous amounts of items I had stored there. Enter:
ConSkrybe. It's an amazing little SKSE plugin that records your console input (and output) to a log file (conveniently named "ConSkrybe.log") in the main Skyrim directory.
First, I dumped the inventory list of the secure storage chest (refid 5c132) to the console using the following commands:
Next I made a small python script to process the output of the ConSkrybe log file and turn it into Skyrim batch script to remove items:
- [+] Python script
import re
# regex strings used for matching
regex_quantity = '^\d+'
regex_itemid = '[0-9A-F]{8}'
# declare variables as lists
linecontent = []
quantity = []
itemid = []
# read the conskrybe log into the script
with open('C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim\\ConSkrybe.log') as file:
linecontent = file.readlines()
# script all whitespace off either end of each line
linecontent = [line.strip() for line in linecontent]
# check if an individual line should be parsed further and added to the itemid and quantity lists
for line in linecontent:
if re.search(regex_quantity, line) is None:
# if the line does not start with a number, move on to the next line
continue
else:
# line starts with a number, so pull out said number (quantity) and the item id
quantity.append(re.search(regex_quantity, line).group(0))
itemid.append(re.search(regex_itemid, line).group(0))
# write the itemids and quantities to a file
with open('C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim\\removeitem.skybat', 'w') as file:
for id in range(0, len(itemid)):
file.write('removeitem ' + itemid[id] + ' ' + quantity[id] + '\n')
Now, pick half of the list, delete it from the removeitem.skybat file, and save the file, but do not close the file because you will be making use of the undo feature. If your text editor is being weird about it, get something like Notepad++. The theory here is that you use the script to remove half of the items in the chest each time, resulting in a smaller number of crashes (and subsequent restarts) until you figure out which item is being vexing. Let's say you have 16 items in the chest. You would edit the removeitem.skybat file and delete the second half of the file, with the result that when you run the skybat file, it will only remove the first half of the chest contents. If you open up the chest and still crash, you know that none of the 8 items you just removed via the skybat file is the culprit. At this point, you would undo the changes to the skybat file, and select 4 of the other 8 items to removed, and so on, until you find the item.
Now, when you go ingame, do the following:
- to select the storage chest.
- to run the skybat file and remove however many items are called for.
- Open the chest to see if you crash.
- If you crash, the item is still in the chest, so alter the removeitem.skybat file using the method above and try again.
- If you don't crash, alter the removeitem.skybat to remove different items, load up the previous save, and try again.
It's a bit tedious, but it will ultimately lead you to the offending item.