Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

StickySock

Uploaded by

StickySock

Virus scan

Safe to use

About this mod

Have you ever wanted to marry, recruit, or kill any NPC but are worried about messing up your game's main quests? Well the aim of this mod is to dynamically allow you to kill, marry, or recruit NPCs that are or become unimportant to your quests.

Requirements
Permissions and credits
Changelogs
No longer supported, I do have ambiguous future plans to make a new version, but that is likely a long time from now.

Inspired by mods like Essentials Be Gone and Free Marriage, this mod aims accomplish similar things but with a restriction: only NPCs that are currently unimportant are altered. This is done by the use of PO3's papyrus extender (required) and the added function IsVIP, which "It checks if the alias quest is running and returns if they're a quest object/essential/protected/forced into ref." - direct quote from PO3, one of the nine divines of .dll skyrim modding.

Basically, using the OnMenuClose event from SKSE, this mod checks all nearby NPCs by forcing the player to cast a hidden spell. The hidden spell checks whether the Actors are VIPs, and adds them to their respective new factions (IsVIP and IsNotVIP). These factions can be utilized by conditions for any mod authors wanting to make mods either effect or not effect VIPs or Non-VIPs.

Hopefully, with this mod, throughout your game you may notice more NPCs that have recruitment and marriage options, and also you might notice that most (if not all) NPCs can eventually become killable once you finish or fail all quests (you can send your maxed out completionist character on a murder spree, assuming you have talked to the relevant NPC at some point after the quest was finished or failed).

Main file's default settings only add and remove NPCs from ISVIP and ISNOTVIP factions. Users must adjust the settings or also install my preferred settings file to have other effects on NPCs (like followers, marriage candidates, protected status, and nonessential status).

Reminder:
1.) NPCs will not be followers or marriage candidates without raising their disposition towards the player.
2.) The mod checks for VIP status every time the dialogue menu is closed on all nearby NPCs.
3.) The recommended mods are highly suggested to make the most use of the mod.


Configuration (from ini file, also describes MCM options).


; fPriorityThreshold is the priority that VIPCheck will consider as a "real quest" and not random miscellaneous quests or scenes. Most "real" quests in vanilla are 60 or higher, so the default is anything greater than 59.
; To add Non-VIPs to the PotentialFollowerFaction, set fFollowOption to 1.
; To add Non-VIPs to the PotentialMarriageFaction, set fMarryOption to 2
; To add the Protected flag to Non-VIPs, set fProtectOption to 4.
; To remove the Protected flag from Non-VIPs, set fProtectOption to 8.
; To remove the Essential flag from Non-VIPs, set fNonEssentialOption to 16.
; The mod will add the total from your selections and use the option that matches your preferences.


Required:

1.) PO3 Papyrus Extender -> Hard requirement (it also means you need all the requirements listed on this mod page as well).
2.) SKSE
3.) SkyUI
4.) MCM Helper

Recommended:

1.) Sidequests of Skyrim -> Allows you to raise your disposition with most NPCs, which will be required for followers and marriages to the new IsNotVIP faction members.
2.) Relationship Dialogue Overhaul Lite -> Needed for follower and marriage dialogue for some voice types who otherwise would not have it.
3.) Charitable Soul -> Chance to change disposition if being nice to people.
4.) Favor Jobs Disposition Changes -> Adjusts the amount of disposition change per Favor Job
5.) Compliments and Insults -> Allows for the increasing and lowering of disposition through dialogue.
6.) Relationship Change Notifications -> Notifies you when disposition has changed.

Credits:
1.) PO3 -> Not possible without his amazing Papyrus Extender
2.) SKSE team -> For everything else and making Skyrim modding such a wonderful and exciting place.
3.) schlangster -> SkyUI
4.) Parapets -> MCM Helper is amazing.


Additional boring details:

The mod has a script attached to an alias of the player that fires every time you close a dialogue menu. This script grabs the global variables of this mod, adds them, and chooses as spell for the player to cast based on the sum of the globals. The spell is cast to a location that has a huge radius, and checks all the actors regardless of line of sight.

The spell then uses conditions to check to see if the target (subject) is an actor, is not the player, has keyword ActorTypeNPC, is not hostile to player, is not a player teammate, isunique, and is not in the following factions: CurrentFollowerFaction, PlayerFollowerFaction, and WIFollowerCommentFaction. This should ensure that the mod does not interfere with follower frameworks, does not affect enemies, monsters or animals, does not effect non-unique NPCs, and does not affect the player.

Once the mod has found an eligible target (subject), the mod runs the function IsVIP. If it returns true, the actor is a VIP. If it returns false, the mod runs a loop that checks all of the actor's associated quests and gets their priority and completion statuses. If the actor has more priority quests than priority quests that are completed, it means there are priority quests that have not been completed, and the NPC is marked as a VIP. If the values are equal, then the NPC is finally marked as not being a VIP, and the following effects apply depending on configuration:

If the Follow option is set to 1, the NPC will then be added to the Potential Follower Faction.
If the Marry option is set to 2, the NPC will then be added to the Potential Marriage Faction.
If the Protect option is set to 4, the NPC will then be flagged as Protected.
If the Protect option is set to 8, the NPC will have its protected flag removed.
If the NonEssential option is set to 16, the NPC will have its essential flag removed.

The sum of these values determines which spell the activator script will force the player to secretly cast.

Overall, I made the script as lightweight as I could, so there are no constantly running checks or updates. It is event-based, only firing when the dialogue menu is closed. The spell is fire and forget, so the conditions are only checked for the duration of the spell, which is instant I believe. The only loop runs only when when the number of aliases the NPC has is greater than 0, and stops as soon as it has checked them all. It also never runs on NPCs already determined to be VIP by the IsVIP function, and once the NPC has ever been marked as ISNOTVIP it will not run on that NPC again, so that the loop can be saved to check only the NPCs it needs to.

The VIPCheck.ini can be configured so that your MCM settings are set up before loading into the game, and persist across saves (simply edit the ini file with a text editor).