CommandoCats Posted June 22, 2025 Posted June 22, 2025 I've been testing this mod in SkyrimVR, and the previous version generally worked but there were some caveats. Notably there is a patch for the VR version of PapyrusUtil that otherwise prevents the proper reference of followers who were loaded as light plugins. (under misc. files of this mod: https://www.nexusmods.com/skyrimspecialedition/mods/106712?tab=files) However, the patch requires a new save, so it's best to make sure that the patch is installed (or I suppose if you could just not use ESL support for followers - which doesn't work for those with hundreds of followers). On the new version, the way plugins are detected in the the file ddCaptiveMCMConfig.psc unfortunately doesn't work in VR, so Sexlab and OStim are not detected. SKSEVR does not support the Game.IsPluginInstalled() function. PO3 Tweaks adds a more version agnostic PO3_SKSEFunctions.IsPluginFound(), and I had a discussion with Bane Master of Follower Slavery mod about supporting VR: I've modified the ddCaptiveMCMConfig.psc file to use PO3_SKSEFunctions.IsPluginFound() for detecting Sexlab/Ostim. Unfortunately I cannot get a clean build setup of NFF which is a dependency to build Captive Followers, I'm not sure what I'm doing wrong. I've attached the modified script - can the original author (or someone who can compile the scripts) give it a shot? ddCaptiveMCMConfig.psc
darkdesires04 Posted June 22, 2025 Author Posted June 22, 2025 On 6/20/2025 at 10:01 PM, sardoniksg0blin said: I haven't been out to Solstheim yet, but that sounds pretty bad. Not all followers are Essential, are they? Can we exclude Solstheim from the capture points in the config? I will fix it in version 1.9
darkdesires04 Posted June 22, 2025 Author Posted June 22, 2025 On 6/15/2025 at 6:18 AM, johnhamm said: If a follower is in the always capture list in the config JSON, but they aren't placed anywhere in the world, will they still be captured? Some followers I have get summoned or require placement with console, so I want to know if I need to place them first They won't be captured in this case, because they won't have a reference. The always capture list in the config only works for references. 1
darkdesires04 Posted June 22, 2025 Author Posted June 22, 2025 On 6/15/2025 at 2:24 AM, Lusciouslochs said: how do i go about finding the reference id? not sure where to look. Additionally, previous versions there was an example of what the Ref id looked like in the force captive, but the newest version dosent have this example. The reference id is found in the cell where the follower is placed. It is not the NPC definition id.
CommandoCats Posted June 22, 2025 Posted June 22, 2025 (edited) 15 hours ago, CommandoCats said: I've been testing this mod in SkyrimVR, and the previous version generally worked but there were some caveats. Notably there is a patch for the VR version of PapyrusUtil that otherwise prevents the proper reference of followers who were loaded as light plugins. (under misc. files of this mod: https://www.nexusmods.com/skyrimspecialedition/mods/106712?tab=files) However, the patch requires a new save, so it's best to make sure that the patch is installed (or I suppose if you could just not use ESL support for followers - which doesn't work for those with hundreds of followers). On the new version, the way plugins are detected in the the file ddCaptiveMCMConfig.psc unfortunately doesn't work in VR, so Sexlab and OStim are not detected. SKSEVR does not support the Game.IsPluginInstalled() function. PO3 Tweaks adds a more version agnostic PO3_SKSEFunctions.IsPluginFound(), and I had a discussion with Bane Master of Follower Slavery mod about supporting VR: I've modified the ddCaptiveMCMConfig.psc file to use PO3_SKSEFunctions.IsPluginFound() for detecting Sexlab/Ostim. Unfortunately I cannot get a clean build setup of NFF which is a dependency to build Captive Followers, I'm not sure what I'm doing wrong. I've attached the modified script - can the original author (or someone who can compile the scripts) give it a shot? 15 hours ago, CommandoCats said: ddCaptiveMCMConfig.psc 27.88 kB · 1 download I took a look at the source some more, and I found more instances of IsPluginInstalled, and went ahead and replaced it with PO3_SKSEFunctions.ISPluginFound. It seems like PO3's Papyrus Extender is already a requirement, so this change shouldn't inflate any requirements, nor affect any other versions. I believe the reason why SKSEVR doesn't have IsPluginInstalled is because IsPluginInstalled was introduced in SKSE for SE as a way to detect both normal and light plugins, but the version of SE that was forked over to VR does not have ESL support out of the box (ESL support needs to be enabled via a mod). Anyway, @darkdesires04 or anyone else who is able to compile the mod - if you get a chance, can you try this code out? It's exactly the 1.8 released code, with all instances of Game.IsPluginInstalled( replaced by PO3_SKSEFunctions.IsPluginFound(. captive_followers_1_8_vrcompat.rar Edit: I was able to half-assedly test this by commenting out the hooks to NFF (obviously breaking NFF integration), but it seems to work well on both SE and VR in terms of detecting the installed plugins. Still someone who is able to compile with all the NFF integrations should try this. Edited June 22, 2025 by CommandoCats
Keegan van Sloppenstein Posted June 23, 2025 Posted June 23, 2025 (edited) Reporting a strange bug just in case. Still running Captive Followers v1.6 and i had re-enslaved followers from the MCM due to a couple bugs and stale references. I use Khajiit will follow plus many other follower mods. For some reason the same NPC (Chatur'jo, from KWF) was enslaved 3 times in different locations. Tried to free him from one, but he was nowhere to be found in that dungeon. Then used player.moveto in the console to move to him. Turns out he was in that dungeon, just invisible? An 'enable' in the console fixed this, but the other two locations are still listing him as captured. Wtf is going on there? Next up i'll try to cleansave and install v1.8, but i've had save breakage before when trying to remove captive followers (that's why i want to clear all refs first). Fingers crossed. EDIT: Another weird bug. I've had one PROTEUS follower parked in a cave (Haemar's shame to be exact). Then after many hours of play summoned via NFF to me, and the box popped up that the enslavement process will start in 60 seconds. Just because i ported that follower to me? Wtf? Is this a spell effect that proteus applied that is now wreaking havoc because a NPC has it? EDIT2: Whoops yep. _ddCaptiveInitEff is active on the proteus follower. As i'm reading the changelog it seems that this init method is no longer used and got removed in 1.8? Can we get a 'Restrain follower in crosshair' option eventually? Please? :3 Edited June 23, 2025 by the0fromnexus
Talesien Posted June 23, 2025 Posted June 23, 2025 45 minutes ago, the0fromnexus said: Reporting a strange bug just in case. Still running Captive Followers v1.6 and i had re-enslaved followers from the MCM due to a couple bugs and stale references. I use Khajiit will follow plus many other follower mods. For some reason the same NPC (Chatur'jo, from KWF) was enslaved 3 times in different locations. Tried to free him from one, but he was nowhere to be found in that dungeon. Then used player.moveto in the console to move to him. Turns out he was in that dungeon, just invisible? An 'enable' in the console fixed this, but the other two locations are still listing him as captured. Wtf is going on there? First think I would do is to check if the esp actually has three versions of Chatur'io and places them at different parts in the world for some reason (quest?). I'm not sure if Captive Followers checks if a follower actually placed in the world might be disabled. Best practice is not placing them in the world until required, rather then keeping them disabled until required.
Keegan van Sloppenstein Posted June 23, 2025 Posted June 23, 2025 (edited) Already checked, and no. There's only one Chatur'jo spawn in the esp. ... It does break the inital S'ariq quest to move that guy out of his cell so i guess that's another one for the blacklist. EDIT: And yeah that's what i meant. Maybe a couple checks are missing about which NPCs to restrain or there's a duplication issue in case the restrainment script runs more than once at the same time (possibly related to previously mentioned proteus npc who i used to have as a follower -- i got that retrainment message a LOT back then but ignored it because i figured it happens only once ... right?) Possibly exclude followers located in a prison if possible? Edited June 23, 2025 by the0fromnexus
Zanallyth Posted June 24, 2025 Posted June 24, 2025 (edited) On 6/20/2025 at 4:56 PM, trgdolors said: Hi @darkdesires04 and everyone! Thank you for the recent updates that should dramatically improve this mod! I love the new ability to set the percent chance of each follower's captivation/restrainment. I also like that the enemy spawn is now a separate function. Unfortunately, for me, the mod does not seem to be following my settings in: \MO2\mods\CaptiveFollowers\SKSE\Plugins\CaptiveFollowers\Config.json What I want: Randomly captivate 50% of only specifically listed follower .esp's. That should currently be 21 divided by 2 = about 10 or 11 followers captivated What is actually happening: about 113 followers captivated I am on v.1.8.2 and am on a new game. In the MCM I have Restrainment Chance: = 50% Here is my Config.json. Does it look correct? Hide contents { "ForceCaptureNPCs": [], "BlacklistedMods": [ "Skyrim.esm", "Dawnguard.esm", "Dragonborn.esm", "Hearthfires.esm", "LegacyoftheDragonborn.esm", "SexLab-AmorousAdventures.esp", "troublesofheroine.esp", "troublesofheroineDG.esp", "troublesofheroineDB.esp", "troublesofheroineHF.esp", "banneredmareimmersivesexualplayground.esp", "YurianaWench.esp", "Minerva.esp", "nwsJennaFollower.esp", "DK_Thogra.esp", "Lucien.esp", "LucienReplacer.esp", "HLIORemi.esp", "Geralt.esp", "0Kaidan.esp", "Kaidan - visual replacer.esp", "MarcusHealerFollower.esp", "Inigo.esp", "Katana.esp", "Serana.esp", "Kangmina.esp", "AliciaPainSlut.esp", "shadowman_VirginSisterNun.esp", "Priscilla.Follower.esp", "Armana.esp", "shadowman_armana.esp", "Aniya Follower.esp", "RidiculousFemaleCompanion.esp", "Sexica.esp", "VermillionSuccubusCompanion.esp", "Naz_Lilith as Vermillion.esp", "Hyren - New Companion - Follower - High Poly - ESL.esp", "LetaStrange.esp", "Enna.esp", "CS_Vayne.esp", "CS_Astara.esp", "SofiaFollower.esp", "k404Koemia.esp", "k101Daegon.esp", "Recorder Follower Base.esp", "OrbOfDivines.esp", "NWS_Maloria.esp", "JSFollowerDumitra.esp", "Ashe - Fire and Blood.esp", "NWS_Amaniri.esp", "MMX452 New Additional Starts.esp" "DanarielStormbow.esp" ], "BlacklistedNPCs": [ "__formData|Deviously Cursed Loot.esp|0x094B48", "__formData|Deviously Cursed Loot.esp|0x02D74E" ], "RestrainOnlyFromWhitelist": 1, "WhitelistedMods": [ "SofiaFollower.esp", "Karin_follower.esp", "_VK_Mai.esp", "Naz_Satira.esp", "_SDAmber.esp", "AwKynessaFollower.esp", "Katheryn Follower.esp", "Ahlalia Follower.esp", "Void Nyr - Standalone Follower.esp", "AZ_KaydenFollower.esp", "Anastasia - Follower.esp", "Dallas Follower.esp", "_VK_Rowan.esp", "_VK_Reivhen.esp", "Struck Speechless.esp", "ThreeSisters.esp", "Ximena BAC_Follower.esp", "Aiyana BAC_Follower.esp", "Luthien_Follower.esp", "Mingxia BAC_Follower.esp", "(SDZ21) Morgan Follower.esp" ], "WhitelistedNPCs": [ "__formData|VR_Tannick.esp|0x01838", "__formData|Helen_follower.esp|0x0811" ] } At first the 'spoiler' feature did not work, then it did... Invalid JSON, you are missing a comma on that middle line here "NWS_Amaniri.esp", "MMX452 New Additional Starts.esp" "DanarielStormbow.esp" ], I've done that before. I suggest searching the web for JSON Validator, paste your json in there and make sure it is valid, then paste it back, to see if you messed up something. Edited June 24, 2025 by Zanallyth
enfamous13 Posted June 24, 2025 Posted June 24, 2025 (edited) Noticed that schlongs are getting wiped for captors. SuppressCaptorAggression is removing the SOS factions. This is what I used as a workaround. ;SDKE13 bool Function IsSOSFaction(Faction testFaction) string sosModName = "Schlongs of Skyrim.esp" if !Game.IsPluginInstalled(sosModName) return false endif int i = SOS_Data.CountAddons() While i > 0 i -= 1 SOS_AddonQuest_Script addon = SOS_Data.GetAddon(i) If(PO3_SKSEFunctions.IsFormInMod(testFaction as Form, sosModName) || testFaction == SOS_Data.GetFaction(addon)) return true EndIf EndWhile return false EndFunction Edited June 24, 2025 by enfamous13 1
CommandoCats Posted June 24, 2025 Posted June 24, 2025 I also noticed a funny issue in VR (I suppose it probably happens in SE too). If you make a new game, kick off the capture followers script, and then change your race via RaceMenu, you will see a bunch of clones of your character in cells where captives can be. Typically these clones will just be walking around, or behave like generic NPCs that can be killed, etc. They will also just have a bunch of random loot.
johnhamm Posted June 24, 2025 Posted June 24, 2025 (edited) 13 hours ago, enfamous13 said: Noticed that schlongs are getting wiped for captors. SuppressCaptorAggression is removing the SOS factions. This is what I used as a workaround. ;SDKE13 bool Function IsSOSFaction(Faction testFaction) string sosModName = "Schlongs of Skyrim.esp" if !Game.IsPluginInstalled(sosModName) return false endif int i = SOS_Data.CountAddons() While i > 0 i -= 1 SOS_AddonQuest_Script addon = SOS_Data.GetAddon(i) If(PO3_SKSEFunctions.IsFormInMod(testFaction as Form, sosModName) || testFaction == SOS_Data.GetFaction(addon)) return true EndIf EndWhile return false EndFunction Where would you put that? I've also been experiencing that issue Edited June 24, 2025 by johnhamm
CommandoCats Posted June 24, 2025 Posted June 24, 2025 (edited) 25 minutes ago, johnhamm said: Where would you put that? I've also been experiencing that issue It's in ddcaptivefollowersexeffect.psc, but you'd have to install Creation Kit, the dependent source files, and recompile. I suppose most people will want to wait until the original author rolls those changed into the next release. Actually I'm not understanding where this goes either, I tried to put this fix in, but I'm not sure what is calling the IsSoSFaction function. Okay, after reading the code I understand, you have to modify the SuppressCaptorAggression function with the big if statement where the result is to remove the faction, change if captorFactions[i] != SexFaction && captorFactions[i] != ddCaptive.PrisonerFaction && captorFactions[i] != ddCaptive.CaptorFaction to if captorFactions[i] != SexFaction && captorFactions[i] != ddCaptive.PrisonerFaction && captorFactions[i] != ddCaptive.CaptorFaction && !IsSOSFaction(captorFactions[i]) I'm not the poster that posted the fix, but I also recommend changing the line in the function posted to: if !PO3_SKSEFunctions.IsPluginFound(sosModName) Edited June 24, 2025 by CommandoCats
trgdolors Posted June 24, 2025 Posted June 24, 2025 (edited) 1) @ZanallythThank you so much! That was the issue! And thanks for the JSON Validator tip, too! I already used it a couple times! 2) RedBag's Falkreath: It looks like all my followers in Falkreath are not being picked up. I tested by making a save, putting the Restrainment at 100%, and seeing who on my list was captivated. None of the followers in Deadman's Drink or one in "Falkreath (The Barracs Jail)" get picked up. I have RedBag's Falkreath, which "replaces" Falkreath, so that must be why. Most Falkreath mods need a patch to work with RedBag's Falkreath. Note: If you have that mod, coc into the original Deadman's Drink and see any of your unpatched followers waiting there forever! 3) Settings Retention: Do the settings get remembered when starting a new game? If not, is that something that can be added? 4) SOS Issue: Could the new SOS issue be affecting The New Gentleman (TNG), too? I have been testing that mod and having a similar (time-consuming) problem. Edited June 24, 2025 by trgdolors
xxxstupidfastxxx Posted June 24, 2025 Posted June 24, 2025 Is there a way to undo the changes? Or once the script runs is it permanent?
eldritch68 Posted June 25, 2025 Posted June 25, 2025 Hey, I notice that Onmund and Ahtar aren't getting restrained anymore! Whatever that problem was, 1.8 fixed it. Nice work.
trgdolors Posted June 26, 2025 Posted June 26, 2025 In Fort Greymoor Cassius (the book guy from 3dNPC) was doing the punishing instead of being in his locked cell. Still on v.1.8. 1
xxxstupidfastxxx Posted June 26, 2025 Posted June 26, 2025 Want to note that without an undo button this game will brick saves. I get infinite loading if any captives are removed from the load order (one of them was bugged and causes CTD) so if you run this you need to be 100% sure on load order or it does nuke saves. Please add a way to undo the script.
xxxstupidfastxxx Posted June 26, 2025 Posted June 26, 2025 This also causes CTD for certain areas that used to have followers post capture. Two inns (Drunken Huntsmen and Winking Skeever) CTD after the followers have been captured. Removing the mod fixes but breaks the save as many of the followers disappear/it becomes highly unstable
Talesien Posted June 26, 2025 Posted June 26, 2025 2 hours ago, xxxstupidfastxxx said: This also causes CTD for certain areas that used to have followers post capture. Two inns (Drunken Huntsmen and Winking Skeever) CTD after the followers have been captured. Removing the mod fixes but breaks the save as many of the followers disappear/it becomes highly unstable Mind giving us examples which followers? I see no such behaviour in my game, so it's likely bound to the followers, not necessarily this mod. Also, did you clean your save after removing the mod? 1
r235711 Posted June 28, 2025 Posted June 28, 2025 Thanks to this great mod, I enjoy rescue missions every day! English is not my first language, so I apologize for the translated text. My personal request - Is it possible to add a function to limit the gender of the person who can be taken prisoner? (I want to enjoy it only in the classic damsel in distress situation) - Is it possible to assign captive locations by enemy type instead of building type? (I don't have the creature sex mod installed, so rescues become boring in some places)
darkdesires04 Posted June 28, 2025 Author Posted June 28, 2025 On 6/26/2025 at 8:23 PM, trgdolors said: In Fort Greymoor Cassius (the book guy from 3dNPC) was doing the punishing instead of being in his locked cell. Still on v.1.8. I will take a look...
darkdesires04 Posted June 28, 2025 Author Posted June 28, 2025 On 6/26/2025 at 9:19 PM, xxxstupidfastxxx said: Want to note that without an undo button this game will brick saves. I get infinite loading if any captives are removed from the load order (one of them was bugged and causes CTD) so if you run this you need to be 100% sure on load order or it does nuke saves. Please add a way to undo the script. Sorry, once the script runs there is no way to undo.
darkdesires04 Posted June 28, 2025 Author Posted June 28, 2025 On 6/24/2025 at 4:46 AM, enfamous13 said: Noticed that schlongs are getting wiped for captors. SuppressCaptorAggression is removing the SOS factions. This is what I used as a workaround. ;SDKE13 bool Function IsSOSFaction(Faction testFaction) string sosModName = "Schlongs of Skyrim.esp" if !Game.IsPluginInstalled(sosModName) return false endif int i = SOS_Data.CountAddons() While i > 0 i -= 1 SOS_AddonQuest_Script addon = SOS_Data.GetAddon(i) If(PO3_SKSEFunctions.IsFormInMod(testFaction as Form, sosModName) || testFaction == SOS_Data.GetFaction(addon)) return true EndIf EndWhile return false EndFunction Ok, thanks for reporting it, I will fix it in version 1.9. I am using TNG, so I didn't notice it.
Keegan van Sloppenstein Posted June 28, 2025 Posted June 28, 2025 (edited) 1 hour ago, darkdesires04 said: Sorry, once the script runs there is no way to undo. Why's that? Extra spawns i do understand, but regarding followers? You have the restrained followers in a list, visible in the MCM, what's preventing a script from unrestraining all of them? Also just to report on the cleansave process, in fact disabling the esp is not possible because that will break the save. But i've managed to upgrade from 1.7 to 1.8 via ReSaver, nuking anything the esp provided from the save EXCEPT the esp itself. The process was roughly this: - free all restrained followers for good measure - save, quit - load save in ReSaver, find the .esp, rclick, remove anything option (forgot the exact name). - Remove ddCaptiveInitEffect.pex and ddCaptivePlayerAlias.pex so the game wouldn't start the mod - Load, wait a bit, save, quit - load in ReSaver, clean the same way again - Install Captive followers v1.8 I don't get why the game loads fine without ANY refs of Captive Followers.esp in the save, but breaks hard as soon as the esp is removed. The only other mod i know that has a similar behavior is the old 1.x version of Dripping when aroused. Can't remove that either. Edited June 28, 2025 by the0fromnexus 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now