Unfortunately, it doesn't seem to work correctly. It does what is promised, which is to remove all spell tomes, but it doesn't reference the last esp for that record, which results in ignoring any mods or patches made after that to remove or add stuff.
For example in Skyrim.esm there is a container record which is overwritten by Skyrim Revamped.esp which removes items from that container. When this script is run after selecting all esps in the load order, the resulting esp had that container record based on Skyrim.esm only. Similar things happen for records with patches to add stuff to them.
I have to agree. When you run the patcher, a whole bunch of mods get added as masters. But when you look at the ESP that the patcher produces, it only has Skyrim, Dawnguard, Dragonborn and USSEP as masters. Only 12 containers are edited. Disappointed.
The link to the solution for what to do when there are too many plugins links to a hidden page. what is one supposed to do? it says to make a new masters.esp but the guide on how to do that is hidden.
One way to do it is to apply a filter in SSEEDit to show only BOOK records:
1. right-click plugin list, choose apply filter 2. remove ALL checkmarks 3. click "by Record Signature" 4. in the Record Signature list, click BOOK 5. click Filter button at bottom
Then highlight them all, do a ctrl-c, and paste the list in a text document. Exit out of SSEEdit, then open SSEEdit and load ONLY those in the list.
Hi, this is exactly what I am looking for. Thank you.
Quick question: If I want to exclude a specific mod, I can just not load it in SSEEdit and then do the step 3 in your description without that mod, right? Or what is the purpose of loading my entire mods - even those that don´t have spell-tomes?
To be concrete: I would want to exclute "shadow spell package" and apply your script only to other spell-adding mods I use.
Thanks for this script. I'm not sure if this is intended behaviour or not but I noticed that the resulting container records in the created esp did not actually import any of the items from the master mods, not even from Spell Research itself. So certain things like SR level lists, items added from requiem (also scripts attached to the container lock from Requiem) were not imported. It effectively created container records equivalent to vanilla but with no spell tomes (and vanilla quantities). Which invariably means I'll need to edit all these by hand anyway, which kinda defeats the purpose of using it?
I also had a couple of mods that added forms to the affected form lists and those were ignored also.
Make sure to select all mods that you want this patch applied to, before using the "Apply Script..." command in SSE-Edit.
So, load all your mods in SSE-Edit, then press Ctrl+A to select all loaded mods, and only then execute the "Apply Script" command. If no mods are selected, then the Patcher will create an empty .esp file.
1. Can the resulting patch ESP be marked as ESL, assuming the number of records in it is <4k? 2. Have you considered doing a zEdit patch instead of SSEEdit? That seems to be the way most modders are doing patches like this. For example here are some I plan to use:
Experience Mod zEdit Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/23589): This mod adds compatibility to Experience so the kills function will work on all NPCs. UPF No Dragon LODs Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/13541) This mod applies the No Dragon LODs effect. UPF Opposite Animation Disabler (https://www.nexusmods.com/skyrimspecialedition/mods/18281) A Unified Patching Framework (UPF) patcher that disables the 'Opposite Gender Anim' flag on all affected NPCs. UPF Khajiit Ears Show Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/13544) This mod will allow all Khajiit to show their ears when wearing helmets. zEdit patchers warehouse (https://www.nexusmods.com/skyrimspecialedition/mods/23254) This mod is a small collection of zEdit Patchers.
Hi! Just to make sure, it is possible to exclude some mods from this esp, right? And I was also wondering if it is possible to make this mod not get rid of tomes int the world space? Or maybe activate each function (loot list, vendors, world space) separately? I’m super new to modding so I’m sorry if these questions are dumb.
Hi, I was using your patcher as a guide to create my own patcher, and noticed you are using recordNAME := GetElementEditValues(e, 'NAME'); I think this should be recordNAME := GetElementEditValues(e, 'FULL'); Which is how the name seems to be stored for SSE. Probably why it does nothing for some mods, while doing something for other mods, since it would only be searching in the EDID and not the name.
Thanks for the tip! I've never had issues that records didn't get picked up, but if anybody is facing issues with the script, they should definitely try this =)
32 comments
For example in Skyrim.esm there is a container record which is overwritten by Skyrim Revamped.esp which removes items from that container. When this script is run after selecting all esps in the load order, the resulting esp had that container record based on Skyrim.esm only. Similar things happen for records with patches to add stuff to them.
I did it twice to make sure and get some screenshots for you:
https://imgur.com/a/VNJ8XNR
All esps are selected before applying the script. You can see in the first image that it added many esps as masters.
1. right-click plugin list, choose apply filter
2. remove ALL checkmarks
3. click "by Record Signature"
4. in the Record Signature list, click BOOK
5. click Filter button at bottom
Then highlight them all, do a ctrl-c, and paste the list in a text document. Exit out of SSEEdit, then open SSEEdit and load ONLY those in the list.
Quick question: If I want to exclude a specific mod, I can just not load it in SSEEdit and then do the step 3 in your description without that mod, right? Or what is the purpose of loading my entire mods - even those that don´t have spell-tomes?
To be concrete: I would want to exclute "shadow spell package" and apply your script only to other spell-adding mods I use.
Thank you.
The Patcher will only add masters of mods, that contain changed Spell Tomes, therefore I made the suggestion to load all mods.
If you want to exclude mods, don't load or do not select them when executing the "Apply Script" command.
I also had a couple of mods that added forms to the affected form lists and those were ignored also.
So, load all your mods in SSE-Edit, then press Ctrl+A to select all loaded mods, and only then execute the "Apply Script" command. If no mods are selected, then the Patcher will create an empty .esp file.
Hope this solved your issue.
1. Can the resulting patch ESP be marked as ESL, assuming the number of records in it is <4k?
2. Have you considered doing a zEdit patch instead of SSEEdit? That seems to be the way most modders are doing patches like this. For example here are some I plan to use:
Experience Mod zEdit Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/23589): This mod adds compatibility to Experience so the kills function will work on all NPCs.
UPF No Dragon LODs Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/13541) This mod applies the No Dragon LODs effect.
UPF Opposite Animation Disabler (https://www.nexusmods.com/skyrimspecialedition/mods/18281) A Unified Patching Framework (UPF) patcher that disables the 'Opposite Gender Anim' flag on all affected NPCs.
UPF Khajiit Ears Show Patcher (https://www.nexusmods.com/skyrimspecialedition/mods/13544) This mod will allow all Khajiit to show their ears when wearing helmets.
zEdit patchers warehouse (https://www.nexusmods.com/skyrimspecialedition/mods/23254) This mod is a small collection of zEdit Patchers.
I was using your patcher as a guide to create my own patcher, and noticed you are using
recordNAME := GetElementEditValues(e, 'NAME');
I think this should be recordNAME := GetElementEditValues(e, 'FULL');
Which is how the name seems to be stored for SSE.
Probably why it does nothing for some mods, while doing something for other mods, since it would only be searching in the EDID and not the name.