Tentacus Posted December 2, 2022 Author Posted December 2, 2022 (edited) I might just be a little in love with my take on Silda the Unseen. She has a lot of personality for as few lines as I actually added.     I made it so Silda and Edda start out with an Irrational Love of 10 (it won't drop below that if you dismiss and rehire them), and broken (1) so you only have to train them a little.., to account for their unique recruitment as slaves... but it still doesn't feel quite how I want it so I am kicking around the idea of adding the ability to promote one slave to slave consort (head girl/boy) who will be more like a vanilla follower but with the basic slave stuff and nicer dialogue.  Edit: After looking into it I decided not to do this... it's too much work for too little benefit. I really gotta stop adding features... lol. Edited December 2, 2022 by Tentacus 3
Tentacus Posted December 3, 2022 Author Posted December 3, 2022 The bug causing the the last Follower's stats to be passed on was dumber than I thought. It has to do with how you get an actor reference for an alias, and how that property sticks around even if the alias is cleared. The way I had to fix it is to declare "Flunky (the property) = None" in the script. It didn't have anything to do with what I originally thought it did. Basing a script around a timer like I do here is fraught with this kinda shit.
Tentacus Posted December 3, 2022 Author Posted December 3, 2022 God... I just realized that the victim version of the dialogue that lets you remove unwanted weapons from the prisoner (sometimes they pick them up or have weird inventory situations so the initial sweep doesn't work) has been set up to only work when there has been exactly 1 rape this entire time... *sigh*
Parky Posted December 3, 2022 Posted December 3, 2022 I just learned that you can only have two active followers with this mod (No doubt you explained that but I missed it) Thankfully my third follower (Brina) teleported to her home and was waiting for me when I arrived. So on the 'rescue citizen" quest , make sure you have only one follower in tow, even if you don't plan on enslaving the citizen.
Tentacus Posted December 3, 2022 Author Posted December 3, 2022 (edited) 4 hours ago, Parky said: I just learned that you can only have two active followers with this mod (No doubt you explained that but I missed it) Thankfully my third follower (Brina) teleported to her home and was waiting for me when I arrived. So on the 'rescue citizen" quest , make sure you have only one follower in tow, even if you don't plan on enslaving the citizen.  When fully trained you can assign them to be house slaves which gives you 4 more slots mainly this lets you have 4 that stay where you want them to, but they can also follow you if you want a larger party. I'll probably expand the number of slots for house slaves at some point.  The 2 follower limitation is due to the way this mod was initially designed to just be a quick side project to help me work through burnout after 3+ years of Hardship development. I based almost everything on global variables which is awesome when dealing with one NPC but not multiples... Eventually I added the camp follower out of seeing a real personal need for having two. This DOUBLED the globals, and also the outfit management slot tracking, which was also a nightmare. This is why the house slaves have no outfit management and won't retain their outfits when you fast travel or leave the area unless you have another mod to handle it like Dudestia's Ring of Fashion designer.  Dealing with stripping and clothing management in Skyrim is an absolute nightmare, wheras for the most part in Fallout 4 it just works. Its debatable if the ease of dialogue creation in Skyrim balances that out or not.  For you non modders have a look at this... This is the source code for the main script. This is the largest of 79 scripts that make NMS work. Even not understanding Papyrus this may give you some idea of the complexity involved in tracking all the stats and clothing management! ?  Spoiler  Scriptname _T_NoticeMeQuestScript extends Quest Actor Property PlayerRef Auto Actor Property BirnaRef Auto Actor Property EddaRef Auto Actor Property SildaRef Auto Actor Property HaelgaRef Auto Actor Property OlavaTheFeebleRef Auto Armor Property zbfCuffsRope01 Auto Armor Property zbfGagCloth Auto Faction Property _T_HistoryFaction Auto ; 1 No B rape, No P sex, 2 No B rape, P sex, 3 B rape, No P sex, 4 B rape, P sex, 5 No B rape, P Rape once, 6 No B rape, P rape multiple, 7 B rape, P rape once, 8 B rape, P rape multiple, 9 Reward offered Faction Property _T_MartyrFaction Auto ; 1 Martyr, 2 "saved" by martyr Faction Property _T_NMS_CuckFaction Auto Faction Property _T_NMS_SlaveFaction Auto ; 1 Broken, 2 Depraved, 3 Beggar, 4 Depraved Beggar, 5 Cuck, 6 Depraved Cuck Faction Property _T_NMS_WhoreFaction Auto ; 1 Monogomous, 2 game, 3 Untested whore, 4 New whore, 5 Unhappy whore, 6 Happy whore, 7 New slave whore, 8 slave whore, 9 broken slave whore. Faction Property _T_RatFaction Auto ;1 Uncaught, 2 friend, 3 lover, 4 victim, 5 Let free Faction Property _T_IncestFaction Auto Faction Property CrimeFactionCidhnaMine Auto Faction Property CrimeFactionEastmarch Auto Faction Property CrimeFactionFalkreath Auto Faction Property CrimeFactionGreybeard Auto Faction Property CrimeFactionHaafingar Auto Faction Property CrimeFactionHjaalmarch Auto Faction Property CrimeFactionImperial Auto Faction Property CrimeFactionKhajiitCaravans Auto Faction Property CrimeFactionNull Auto Faction Property CrimeFactionOrcs Auto Faction Property CrimeFactionPale Auto Faction Property CrimeFactionReach Auto Faction Property CrimeFactionRift Auto Faction Property CrimeFactionSons Auto Faction Property CrimeFactionThievesGuild Auto Faction Property CrimeFactionWhiterun Auto Faction Property CrimeFactionWinterhold Auto Faction Property CurrentFollowerFaction Auto Formlist property _T_WaterskinList Auto Formlist property manny_up_list_AvoidNPC Auto GlobalVariable Property _T_AfterRape Auto GlobalVariable Property _T_BeatingCounter Auto GlobalVariable Property _T_BeatingRecentCounter Auto GlobalVariable Property _T_CFIsNude Auto GlobalVariable Property _T_CFNakedOutfit Auto GlobalVariable Property _T_CFRestrained Auto GlobalVariable Property _T_Fisto Auto GlobalVariable Property _T_HitCounter Auto GlobalVariable Property _T_iNeed Auto GlobalVariable Property _T_JustMartyred Auto GlobalVariable Property _T_JustOzarked Auto GlobalVariable Property _T_NakedOutfit Auto GlobalVariable Property _T_NMS_MasterToggle Auto GlobalVariable Property _T_PattyHurst Auto ; Stockholm for the camp follower. GlobalVariable Property _T_PrisonerBanditRaped Auto GlobalVariable Property _T_PrisonerDialogue Auto ;0 first meet, 1 un player raped, 2 player raped GlobalVariable Property _T_PrisonerGayness Auto ;0 straight (boo!), 1 Gay, 2 Bi GlobalVariable Property _T_PrisonerHunger Auto GlobalVariable Property _T_PrisonerIsBitch Auto ;S/He is a real pain in the ass. GlobalVariable Property _T_PrisonerIsNude Auto GlobalVariable Property _T_PrisonerIsSloot Auto ;S/He puts out. GlobalVariable Property _T_PrisonerPlayerRaped Auto GlobalVariable Property _T_PrisonerRejected Auto GlobalVariable Property _T_PrisonerThirst Auto GlobalVariable Property _T_RefractoryPeriod Auto GlobalVariable Property _T_Rescue Auto GlobalVariable Property _T_Restrained Auto GlobalVariable Property _T_Stockholm Auto GlobalVariable Property _T_Sunhelm Auto GlobalVariable Property _T_Tutorial Auto GlobalVariable Property _T_Whoreing Auto Keyword Property _T_HoboForce Auto Keyword Property ClothingNecklace Auto Keyword Property ClothingRing Auto Keyword Property VendorItemWeapon Auto Idle property idlepickup_ground Auto Idle property idlesilentbow Auto MiscObject Property Gold001 Auto Outfit Property _T_NekkidOutfit Auto ReferenceAlias Property CampFollower Auto ReferenceAlias Property Cuck Auto ReferenceAlias Property ExPrisoner Auto ReferenceAlias Property Family Auto ReferenceAlias Property HouseSlave01 Auto ReferenceAlias Property HouseSlave02 Auto ReferenceAlias Property HouseSlave03 Auto ReferenceAlias Property HouseSlave04 Auto ReferenceAlias Property LastPrisoner Auto ReferenceAlias Property PainInTheAss Auto ReferenceAlias Property Prisoner Auto Quest Property manny_up_rp Auto SexLabFramework Property SexLab auto Sound Property ITMClothingDown Auto Sound Property ITMClothingUp Auto Sound Property UIQuestComplete Auto Armor ACuff Armor Amulet Armor Apron Armor Blindfold Armor CFACuff Armor CFAmulet Armor CFApron Armor CFBlindfold Armor CFCollar Armor CFGag Armor CFHair Armor CFHood Armor CFLongHair Armor CFPArms Armor CFPBoots Armor CFPClothes Armor CFPGloves Armor CFPHead Armor CFStocking1 Armor CFStocking2 Armor CFStocking3 Armor CFWCuff Armor Collar Armor Gag Armor Hair Armor Hood Armor LongHair Armor PArms Armor PBoots Armor PClothes Armor PGloves Armor PHead Armor Stocking1 Armor Stocking2 Armor Stocking3 Armor WCuff Outfit CFDefaultOutfit Outfit DefaultOutfit Outfit TempDefaultOutfit Event OnInit() Debug.notification("NOTICE ME SENPAI SETUP STARTED") Registerforsingleupdate(10.0) RegisterForSingleUpdateGameTime(6.0) EndEvent Event OnUpdate() Actor Damsel = Prisoner.GetReference() as Actor Actor Flunky = ExPrisoner.GetReference() as Actor Utility.Wait(0.1) If manny_up_rp.GetStage() == 20 && _T_Rescue.GetValue() == 0 ;Set toggle condition Form Piece = Damsel.GetEquippedWeapon() as Form Utility.Wait(0.1) PainInTheAss.Clear() Utility.Wait(0.1) LastPrisoner.Clear() If Flunky != None If Flunky.GetFactionRank(_T_HistoryFaction) > 4 && Flunky.GetFactionRank(_T_HistoryFaction) < 9 DismissButFollow(Flunky) Else Dismiss(Flunky) Endif Flunky = None Endif Utility.Wait(0.1) If Piece != None Damsel.UnEquipItem(Piece) Damsel.RemoveItem(Piece) Endif Damsel.RemoveItem(VendorItemWeapon, -1) Damsel.RemoveItem(Gold001, -1) Damsel.RemoveItem(ClothingNecklace, -1) Damsel.RemoveItem(ClothingRing, -1) Utility.Wait(0.1) _T_AfterRape.SetValue(0) _T_BeatingCounter.SetValue(0) _T_BeatingRecentCounter.SetValue(0) _T_Fisto.SetValue(0) _T_HitCounter.SetValue(0) _T_PrisonerBanditRaped.SetValue(0) _T_PrisonerDialogue.SetValue(0) _T_PrisonerGayness.SetValue(0) _T_PrisonerHunger.SetValue(0) _T_PrisonerIsBitch.SetValue(0) _T_PrisonerIsNude.SetValue(0) _T_PrisonerIsSloot.SetValue(0) _T_PrisonerPlayerRaped.SetValue(0) _T_PrisonerRejected.SetValue(0) _T_PrisonerThirst.SetValue(0) _T_RefractoryPeriod.SetValue(0) _T_Rescue.SetValue(1) _T_Restrained.SetValue(0) _T_Stockholm.SetValue(0) _T_Whoreing.SetValue(0) Utility.Wait(0.1) PainInTheAss.ForceRefIfEmpty(Damsel) Utility.Wait(0.1) LastPrisoner.ForceRefIfEmpty(Damsel) Utility.Wait(0.1) manny_up_list_AvoidNPC.AddForm(Damsel) Debug.Notification("NMS Rescue NPC stats Started") Elseif manny_up_rp.GetStage() == 20 && _T_Rescue.GetValue() == 1 ;Write down history with player If Damsel.IsInFaction(_T_HistoryFaction) == false Damsel.AddToFaction(_T_HistoryFaction) Damsel.SetFactionRank(_T_HistoryFaction, 1) Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Else If _T_PrisonerBanditRaped.GetValue() > 0 && _T_PrisonerPlayerRaped.GetValue() > 0 ; Bandits and player raped them If _T_PrisonerPlayerRaped.GetValue() > 1 If Damsel.GetFactionRank(_T_HistoryFaction) != 8 ;Multiple player rapes Damsel.SetFactionRank(_T_HistoryFaction, 8) Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) ZipItSnitch(Damsel) Endif Else If Damsel.GetFactionRank(_T_HistoryFaction) != 7 ;single player rape Damsel.SetFactionRank(_T_HistoryFaction, 7) Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) ZipItSnitch(Damsel) Endif Endif Elseif _T_PrisonerBanditRaped.GetValue() == 0 && _T_PrisonerPlayerRaped.GetValue() > 0 ; Only the player raped them If _T_PrisonerPlayerRaped.GetValue() > 1 If Damsel.GetFactionRank(_T_HistoryFaction) != 6 ;Multiple player rapes Damsel.SetFactionRank(_T_HistoryFaction, 6) Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) ZipItSnitch(Damsel) Endif Else If Damsel.GetFactionRank(_T_HistoryFaction) != 5 ;single player rape Damsel.SetFactionRank(_T_HistoryFaction, 5) Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) ZipItSnitch(Damsel) Endif Endif Elseif _T_PrisonerIsSloot.GetValue() > 1 If _T_PrisonerBanditRaped.GetValue() > 0 If Damsel.GetFactionRank(_T_HistoryFaction) != 4 ;Raped by bandits and had consensual sex with player Damsel.SetFactionRank(_T_HistoryFaction, 4) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Endif Else If Damsel.GetFactionRank(_T_HistoryFaction) != 2 ;had consensual sex with player Damsel.SetFactionRank(_T_HistoryFaction, 2) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Endif Endif Else ;No player sex or rape If _T_PrisonerIsSloot.GetValue() == 1 ;Offered reward Not cashed in. If Damsel.GetFactionRank(_T_HistoryFaction) != 9 Damsel.SetFactionRank(_T_HistoryFaction, 9) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Endif Elseif _T_PrisonerBanditRaped.GetValue() > 0 If Damsel.GetFactionRank(_T_HistoryFaction) != 3 Damsel.SetFactionRank(_T_HistoryFaction, 3) Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Endif Endif Endif Endif Elseif manny_up_rp.GetStage() != 20 && _T_Rescue.GetValue() == 1 _T_AfterRape.SetValue(0) _T_BeatingCounter.SetValue(0) _T_BeatingRecentCounter.SetValue(0) _T_Fisto.SetValue(0) _T_HitCounter.SetValue(0) _T_PrisonerBanditRaped.SetValue(0) _T_PrisonerDialogue.SetValue(0) _T_PrisonerGayness.SetValue(0) _T_PrisonerHunger.SetValue(0) _T_PrisonerIsBitch.SetValue(0) _T_PrisonerIsNude.SetValue(0) _T_PrisonerIsSloot.SetValue(0) _T_PrisonerPlayerRaped.SetValue(0) _T_PrisonerRejected.SetValue(0) _T_PrisonerThirst.SetValue(0) _T_RefractoryPeriod.SetValue(0) _T_Rescue.SetValue(0) _T_Restrained.SetValue(0) _T_Stockholm.SetValue(0) _T_Whoreing.SetValue(0) Utility.Wait(0.1) PainInTheAss.Clear() Debug.Notification("NMS Rescue NPC stats Cleared") Elseif manny_up_rp.GetStage() != 20 && _T_Rescue.GetValue() == 0 ;Remove bondage hunger and thirst If _T_Restrained.GetValue() < 3 && _T_PrisonerHunger.GetValue() > 0 _T_PrisonerHunger.SetValue(0) Elseif _T_Restrained.GetValue() < 3 && _T_PrisonerThirst.GetValue() > 0 _T_PrisonerThirst.SetValue(0) ;Make sure faction is set for late rape Elseif _T_PrisonerBanditRaped.GetValue() > 0 && Damsel.GetFactionRank(_T_HistoryFaction) != 5 && Damsel.GetFactionRank(_T_HistoryFaction) != 6 && Damsel.GetFactionRank(_T_HistoryFaction) != 7 && Damsel.GetFactionRank(_T_HistoryFaction) != 8 Damsel.SetFactionRank(_T_HistoryFaction, 6) Endif Endif Utility.Wait(0.1) If _T_RefractoryPeriod.GetValue() > 0 _T_RefractoryPeriod.Mod(1) Utility.Wait(0.1) If _T_RefractoryPeriod.GetValue() > 35 _T_RefractoryPeriod.SetValue(0) _T_AfterRape.SetValue(0) Endif Endif Utility.Wait(0.1) LastAliasCheck() Utility.Wait(0.1) If Flunky != None UpdateWhore(Flunky) Utility.Wait(0.1) BreakTheWill(Flunky) Elseif Damsel != None UpdateWhore(Damsel) Utility.Wait(0.1) BreakTheWill(Damsel) Endif Utility.Wait(0.1) PeppermintPatty() Utility.Wait(0.1) Registerforsingleupdate(4.0) EndEvent Event OnUpdateGameTime() Actor Damsel Int Counter If _T_Rescue.GetValue() == 1 Damsel = Prisoner.GetReference() as Actor _T_PrisonerHunger.Mod(1) _T_PrisonerThirst.Mod(1) Else Damsel = ExPrisoner.GetReference() as Actor If _T_Restrained.GetValue() > 2 ;Follower is tied up _T_PrisonerHunger.Mod(1) _T_PrisonerThirst.Mod(1) Endif Endif Utility.Wait(0.1) String SlaveName = Damsel.GetBaseObject().GetName() ;Reduce irrational affection over time If Damsel.GetFactionRank(_T_NMS_SlaveFaction) != 2 && _T_Stockholm.GetValue() < 15 If Counter == 1 Counter = 2 Elseif Counter == 2 Counter = 3 Elseif Counter == 3 Counter = 1 If _T_Stockholm.GetValue() > 0 _T_Stockholm.Mod(-1) Debug.Notification("<font size='20'>"+Slavename+" Irrational Affection -1</font>") Endif Else Counter = 1 Endif Endif Utility.Wait(0.1) _T_BeatingRecentCounter.SetValue(0) Utility.Wait(0.1) RegisterForSingleUpdateGameTime(6.0) EndEvent Function BreakTheWill(actor Damsel) If Damsel.GetFactionRank(_T_HistoryFaction) > 4 && Damsel.GetFactionRank(_T_HistoryFaction) < 9 Int Sex = Damsel.GetLeveledActorBase().GetSex() String SlaveName = Damsel.GetBaseObject().GetName() ;Woman... be my slave If Damsel.GetFactionRank(_T_NMS_SlaveFaction) == 2 If Damsel.GetRelationshipRank(PlayerRef) < 4 Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Endif Else ;The torture... never stops. If Damsel.IsInFaction(_T_NMS_SlaveFaction) == False && _T_BeatingCounter.GetValue() > 9 Utility.Wait(0.1) Damsel.SetFactionRank(_T_NMS_SlaveFaction, 1) Utility.Wait(0.1) _T_PrisonerPlayerRaped.SetValue(3) Utility.Wait(0.1) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>You broke their will! "+Slavename+"'s training stats will no longer go below 5.</font>") ;Dueling banjos Elseif Damsel.IsInFaction(_T_NMS_SlaveFaction) == False && Damsel.IsInFaction(_T_IncestFaction) == True Utility.Wait(0.1) Damsel.SetFactionRank(_T_NMS_SlaveFaction, 1) Utility.Wait(0.1) _T_PrisonerPlayerRaped.SetValue(3) Utility.Wait(0.1) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>You broke their will! "+Slavename+"'s training stats will no longer go below 5.</font>") ;You made me love you... I didn't want to do it, I didn't want to do it. ElseIf _T_Stockholm.GetValue() > 19 Damsel.SetFactionRank(_T_NMS_SlaveFaction, 2) Utility.Wait(0.1) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Utility.Wait(0.2) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>"+Slavename+" is now your fully broken and devoted sex slave.</font>") ;I would die for you... feel pain for you... I would crawl on hands and knees until you see... Elseif _T_Stockholm.GetValue() > 14 ;Keeping Irrational affection above 14 makes the NPC super friendly, especially useful for PLANCK VR, as they will no longer flinch from your touch. If Damsel.GetRelationshipRank(PlayerRef) < 4 Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Debug.Notification("<font size='20'>"+Slavename+"'s mad love has made them obsessively devoted to you.</font>") Endif Elseif _T_Stockholm.GetValue() < 15 ;She's a super freak... she's super freaky If Damsel == OlavaTheFeebleRef && Damsel.GetFactionRank(_T_HistoryFaction) > 4 && Damsel.GetFactionRank(_T_HistoryFaction) < 9 _T_StockHolm.SetValue(15) ;Looooove... Love is strange. Elseif _T_Stockholm.GetValue() > 9 ;Keeping Irrational affection above 9 makes the NPC greets friendly, especially useful for PLANCK VR, as they will no longer flinch from your touch. If Damsel.GetRelationshipRank(PlayerRef) < 2 Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Debug.Notification("<font size='20'>Irrational love has made "+Slavename+" more polite.</font>") Elseif Damsel.GetRelationshipRank(PlayerRef) > 3 Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Debug.Notification("<font size='20'>"+Slavename+" is no longer obsessed with you.</font>") Endif Else If _T_PrisonerPlayerRaped.GetValue() == 0 && Damsel.GetFactionRank(_T_HistoryFaction) != 5 && Damsel.GetFactionRank(_T_HistoryFaction) != 6 && Damsel.GetFactionRank(_T_HistoryFaction) != 7 && Damsel.GetFactionRank(_T_HistoryFaction) != 8 ; Do nothing Else If Damsel == HaelgaRef && Damsel.IsInFaction(_T_NMS_SlaveFaction) == False Damsel.SetFactionRank(_T_NMS_SlaveFaction, 2) Utility.Wait(0.1) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Utility.Wait(0.1) _T_PrisonerDialogue.SetValue(2) _T_NMS_MasterToggle.Mod(1) Utility.Wait(0.1) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>Haelga has become your willing and devoted love slave.</font>") Endif Endif Endif Endif ;Shattered If Damsel.GetFactionRank(_T_NMS_SlaveFaction) == 1 If _T_BeatingCounter.GetValue() < 5 _T_BeatingCounter.SetValue(5) Endif If Damsel == EddaRef || Damsel == SildaRef If _T_Stockholm.GetValue() < 10 _T_Stockholm.SetValue(10) Endif Else If _T_Stockholm.GetValue() < 5 _T_Stockholm.SetValue(5) Endif Endif Utility.Wait(0.1) ;Keeping discipline above 7 makes the NPC greets friendly, especially useful for PLANCK VR, as they will no longer flinch from your touch. If _T_BeatingCounter.GetValue() > 6 && Damsel.GetRelationshipRank(PlayerRef) < 2 Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Debug.Notification("<font size='20'>Discipline has taught "+Slavename+" to be more polite.</font>") Elseif _T_BeatingCounter.GetValue() < 7 && Damsel.GetRelationshipRank(PlayerRef) > 1 && _T_Stockholm.GetValue() < 10 Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) Debug.Notification("<font size='20'>"+Slavename+" loves you less and is less polite.</font>") Endif ;constant rape of the broken slave has led to them becoming sexually depraved as a survival mechanism. Greets will always remain friendly. If _T_PrisonerPlayerRaped.GetValue() > 9 Damsel.SetFactionRank(_T_NMS_SlaveFaction, 2) Utility.Wait(0.1) Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Utility.Wait(0.2) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>"+Slavename+" is now your fully broken and devoted sex slave.</font>") Endif ElseIf _T_Stockholm.GetValue() < 10 && Damsel.GetRelationshipRank(PlayerRef) > 1 Damsel.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Damsel, -2) Debug.Notification("<font size='20'>"+Slavename+" Lost discipline and is less polite.</font>") Endif Endif If _T_PrisonerIsSloot.GetValue() > 0 _T_PrisonerIsSloot.SetValue(0) Endif Elseif _T_PrisonerIsSloot.GetValue() > 1 && Damsel.GetRelationshipRank(PlayerRef) < 4 Damsel.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Damsel, 4) Elseif Damsel.GetRelationshipRank(PlayerRef) < 2 Damsel.SetRelationshipRank(PlayerRef, 2) PlayerRef.SetRelationshipRank(Damsel, 2) Endif EndFunction Function LastAliasCheck() Actor PiARef = None If _T_Rescue.GetValue() == 0 If PainInTheAss != None PiARef = PainInTheAss.GetReference() as actor Endif Utility.Wait(0.1) If PiARef != None ;Citizen rescue exists PainInTheAss.Clear() Debug.Notification("NMS Rescue NPC alias Cleared") Endif Else If _T_NakedOutfit.GetValue() > 0 _T_NakedOutfit.SetValue(0) Debug.Notification("Naked Outfit Cleared") Endif Endif ; Globals insurance check If _T_RefractoryPeriod.GetValue() < 0 _T_RefractoryPeriod.SetValue(0) Endif If _T_BeatingCounter.GetValue() < 0 _T_BeatingCounter.SetValue(0) Endif If _T_Stockholm.GetValue() < 0 _T_Stockholm.SetValue(0) Endif EndFunction Function PeppermintPatty() If _T_PattyHurst.GetValue() > 9 Actor Stooge = CampFollower.GetReference() as Actor String StoogeName = Stooge.GetBaseObject().GetName() Utility.Wait(0.1) If Stooge.GetFactionRank(_T_NMS_SlaveFaction) == 2 _T_PattyHurst.SetValue(0) Debug.Notification("<font size='20'>"+StoogeName+" Is a devoted slave.</font>") Elseif Stooge.GetFactionRank(_T_NMS_SlaveFaction) == 1 Stooge.SetFactionRank(_T_NMS_SlaveFaction, 2) Utility.Wait(0.1) Stooge.SetRelationshipRank(PlayerRef, 4) PlayerRef.SetRelationshipRank(Stooge, 4) _T_PattyHurst.SetValue(0) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>"+StoogeName+" is now your fully devoted accomplice and sex slave.</font>") Else Stooge.SetFactionRank(_T_NMS_SlaveFaction, 1) _T_PattyHurst.SetValue(0) UIQuestComplete.Play(PlayerRef) Debug.Notification("<font size='20'>"+StoogeName+"'s will has been broken. Training stats will no longer go below 5.</font>") Endif Endif If _T_SunHelm.GetValue() == 0 && Game.GetModByname("SunHelmSurvival.esp") != 255 _T_WaterskinList.Revert() Potion SunFull = Game.GetFormFromFile(0x054DE9AD, "SunHelmSurvival.esp") as Potion Potion SunMid = Game.GetFormFromFile(0x054DE9AF, "SunHelmSurvival.esp") as Potion Potion SunLow = Game.GetFormFromFile(0x054DE9AE, "SunHelmSurvival.esp") as Potion Utility.Wait(0.1) _T_WaterskinList.AddForm(SunFull) _T_WaterskinList.AddForm(SunMid) _T_WaterskinList.AddForm(SunLow) Utility.Wait(0.1) Debug.Notification("NMS: Sunhelm detected. Waterskins added.") _T_SunHelm.SetValue(1) Elseif _T_iNeed.GetValue() == 0 && Game.GetModByname("iNeed.esp") != 255 _T_WaterskinList.Revert() Potion iNeedFull = Game.GetFormFromFile(0x05004376, "iNeed.esp") as Potion Potion iNeedMid = Game.GetFormFromFile(0x0500437D, "iNeed.esp") as Potion Potion iNeedLow = Game.GetFormFromFile(0x0500437F, "iNeed.esp") as Potion Utility.Wait(0.1) _T_WaterskinList.AddForm(iNeedFull) _T_WaterskinList.AddForm(iNeedMid) _T_WaterskinList.AddForm(iNeedLow) Utility.Wait(0.1) Debug.Notification("NMS: iNeed detected. Waterskins added.") _T_iNeed.SetValue(1) Endif EndFunction Function SetCuffs(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor If Stooge == Damsel CFACuff = Damsel.GetWornForm(0x00800000) As Armor CFWCuff = Damsel.GetWornForm(0x20000000) As Armor Else ACuff = Damsel.GetWornForm(0x00800000) As Armor WCuff = Damsel.GetWornForm(0x20000000) As Armor Endif EndFunction Function SetGag(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor If Stooge == Damsel CFGag = Damsel.GetWornForm(0x00004000) As Armor Else Gag = Damsel.GetWornForm(0x00004000) As Armor Endif EndFunction ;Note: This is different from the vanilla setoutfit function which is called in this same script. This one is only called by (I believe) The _T_ExPrisonerInventory fragment. Function SetOutfit(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor Actor Flunky = ExPrisoner.GetReference() as Actor Utility.Wait(0.1) If Stooge == Damsel CFAmulet = Damsel.GetWornForm(0x00000020) As Armor CFApron = Damsel.GetWornForm(0x00004000) As Armor CFACuff = Damsel.GetWornForm(0x00800000) As Armor CFBlindfold = Damsel.GetWornForm(0x02000000) As Armor CFCollar = Damsel.GetWornForm(0x00008000) As Armor CFGag = Damsel.GetWornForm(0x00004000) As Armor CFHair = Damsel.GetWornForm(0x00000002) As Armor CFHood = Damsel.GetWornForm(0x00000001) As Armor CFLongHair = Damsel.GetWornForm(0x00000800) As Armor CFPArms = Damsel.GetWornForm(0x00000010) As Armor CFPBoots = Damsel.GetWornForm(0x00000080) As Armor CFPClothes = Damsel.GetWornForm(0x00000004) As Armor CFPHead = Damsel.GetWornForm(0x00001000) As Armor CFPGloves = Damsel.GetWornForm(0x00000008) As Armor CFStocking1 = Damsel.GetWornForm(0x00010000) As Armor CFStocking2 = Damsel.GetWornForm(0x00020000) As Armor CFStocking3 = Damsel.GetWornForm(0x00800000) As Armor CFWCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.1) If CFPClothes == None _T_CFIsNude.SetValue(1) Utility.Wait(0.1) _T_CFNakedOutfit.SetValue(1) Utility.Wait(0.1) If _T_Tutorial.GetValue() == 0 _T_Tutorial.SetValue(1) Utility.Wait(0.1) Debug.Messagebox("TUTORIAL: You have set an outfit without a torso item. For the purposes of Notice Me Senpai, this outfit will be recognized as being nude in dialogue. The Undress and dress dialogue options will be disabled until you set an outfit with a torso, this is to prevent mismatches in function between the two methods of clothing management. Do not use other mods to manage clothing for this NPC.") Else Debug.Notification("Nude Outfit selected. Dressing dialogue disabled.") Endif Else _T_CFIsNude.SetValue(0) Utility.Wait(0.1) _T_CFNakedOutfit.SetValue(0) Endif Elseif Flunky == Damsel Amulet = Damsel.GetWornForm(0x00000020) As Armor Apron = Damsel.GetWornForm(0x00004000) As Armor ACuff = Damsel.GetWornForm(0x00800000) As Armor Blindfold = Damsel.GetWornForm(0x02000000) As Armor Collar = Damsel.GetWornForm(0x00008000) As Armor Gag = Damsel.GetWornForm(0x00004000) As Armor Hair = Damsel.GetWornForm(0x00000002) As Armor Hood = Damsel.GetWornForm(0x00000001) As Armor LongHair = Damsel.GetWornForm(0x00000800) As Armor PArms = Damsel.GetWornForm(0x00000010) As Armor PBoots = Damsel.GetWornForm(0x00000080) As Armor PClothes = Damsel.GetWornForm(0x00000004) As Armor PGloves = Damsel.GetWornForm(0x00000008) As Armor Stocking1 = Damsel.GetWornForm(0x00010000) As Armor Stocking2 = Damsel.GetWornForm(0x00020000) As Armor Stocking3 = Damsel.GetWornForm(0x00800000) As Armor PHead = Damsel.GetWornForm(0x00001000) As Armor WCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.1) If PClothes == None _T_PrisonerIsNude.SetValue(1) Utility.Wait(0.1) _T_NakedOutfit.SetValue(1) Utility.Wait(0.1) If _T_Tutorial.GetValue() == 0 _T_Tutorial.SetValue(1) Utility.Wait(0.1) Debug.Messagebox("TUTORIAL: You have set an outfit without a torso item. For the purposes of Notice Me Senpai, this outfit will be recognized as being nude in dialogue. The Undress and dress dialogue options will be disabled until you set an outfit with a torso, this is to prevent mismatches in function between the two methods of clothing management. Do not use other mods to manage clothing for this NPC.") Else Debug.Notification("Nude Outfit selected. Dressing dialogue disabled.") Endif Else _T_PrisonerIsNude.SetValue(0) Utility.Wait(0.1) _T_NakedOutfit.SetValue(0) Endif Endif EndFunction Function Strip(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor Utility.Wait(0.1) If Damsel.IsInFaction(CurrentFollowerFaction) == True || Damsel.HasKeyword(_T_HoboForce) == True Armor FClothes = Damsel.GetWornForm(0x00000004) As Armor Utility.Wait(0.1) If FClothes != None Damsel.UnEquipAll() Else Damsel.Disable() Utility.Wait(0.3) Damsel.Enable() Endif Elseif Stooge == Damsel If _T_CFIsNude.GetValue() == 0 CFAmulet = Damsel.GetWornForm(0x00000020) As Armor CFACuff = Damsel.GetWornForm(0x00800000) As Armor CFBlindfold = Damsel.GetWornForm(0x02000000) As Armor CFCollar = Damsel.GetWornForm(0x00008000) As Armor CFGag = Damsel.GetWornForm(0x00004000) As Armor CFHood = Damsel.GetWornForm(0x00000001) As Armor CFPArms = Damsel.GetWornForm(0x00000010) As Armor CFPBoots = Damsel.GetWornForm(0x00000080) As Armor CFPClothes = Damsel.GetWornForm(0x00000004) As Armor CFPHead = Damsel.GetWornForm(0x00001000) As Armor CFPGloves = Damsel.GetWornForm(0x00000008) As Armor CFWCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) If CFPHead != None Damsel.UnequipItem(CFPHead) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(0.1) If CFPGloves != None Damsel.UnequipItem(CFPGloves) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(0.1) If CFPArms != None Damsel.UnequipItem(CFPArms) ITMClothingDown.Play(PlayerRef) Endif Damsel.PlayIdle(idlepickup_ground) Utility.Wait(1.0) If CFPBoots != None Damsel.UnequipItem(CFPBoots) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(1.0) Damsel.PlayIdle(idlesilentbow) Utility.Wait(1.0) Form CFPiece = Damsel.GetEquippedWeapon() as Form If CFPiece != None Damsel.RemoveItem(CFPiece, 1, True, PlayerRef) Endif Utility.Wait(0.1) If CFPClothes != None Damsel.UnequipItem(CFPClothes) ITMClothingDown.Play(PlayerRef) Endif _T_CFIsNude.SetValue(1) Utility.Wait(0.1) Else Damsel.PlayIdle(idlepickup_ground) Utility.Wait(1.0) If CFPClothes != None Damsel.EquipItem(CFPClothes) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(1.0) If CFPBoots != None Damsel.EquipItem(CFPBoots) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(1.0) If CFPArms != None Damsel.EquipItem(CFPArms) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(0.1) If CFPGloves != None Damsel.EquipItem(CFPGloves) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(0.1) If CFPHead != None Damsel.EquipItem(CFPHead) ITMClothingUp.Play(PlayerRef) Endif _T_CFIsNude.SetValue(0) Endif Else If _T_PrisonerIsNude.GetValue() == 0 Amulet = Damsel.GetWornForm(0x00000020) As Armor ACuff = Damsel.GetWornForm(0x00800000) As Armor Blindfold = Damsel.GetWornForm(0x02000000) As Armor Collar = Damsel.GetWornForm(0x00008000) As Armor Gag = Damsel.GetWornForm(0x00004000) As Armor Hood = Damsel.GetWornForm(0x00000001) As Armor PArms = Damsel.GetWornForm(0x00000010) As Armor PBoots = Damsel.GetWornForm(0x00000080) As Armor PClothes = Damsel.GetWornForm(0x00000004) As Armor PHead = Damsel.GetWornForm(0x00001000) As Armor PGloves = Damsel.GetWornForm(0x00000008) As Armor WCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) If PHead != None Damsel.UnequipItem(PHead) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(0.1) If PGloves != None Damsel.UnequipItem(PGloves) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(0.1) If PArms != None Damsel.UnequipItem(PArms) ITMClothingDown.Play(PlayerRef) Endif Damsel.PlayIdle(idlepickup_ground) Utility.Wait(1.0) If PBoots != None Damsel.UnequipItem(PBoots) ITMClothingDown.Play(PlayerRef) Endif Utility.Wait(1.0) Damsel.PlayIdle(idlesilentbow) Utility.Wait(1.0) Form Piece = Damsel.GetEquippedWeapon() as Form If Piece != None Damsel.RemoveItem(Piece, 1, True, PlayerRef) Endif Utility.Wait(0.1) If PClothes != None Damsel.UnequipItem(PClothes) ITMClothingDown.Play(PlayerRef) Endif _T_PrisonerIsNude.SetValue(1) Utility.Wait(0.1) Else Damsel.PlayIdle(idlepickup_ground) Utility.Wait(1.0) If PClothes != None Damsel.EquipItem(PClothes) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(1.0) If PBoots != None Damsel.EquipItem(PBoots) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(1.0) If PArms != None Damsel.EquipItem(PArms) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(0.1) If PGloves != None Damsel.EquipItem(PGloves) ITMClothingUp.Play(PlayerRef) Endif Utility.Wait(0.1) If PHead != None Damsel.EquipItem(PHead) ITMClothingUp.Play(PlayerRef) Endif _T_PrisonerIsNude.SetValue(0) Endif Endif EndFunction Function FixNude(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor Actor Flunky = ExPrisoner.GetReference() as Actor Utility.Wait(0.1) If Flunky == Damsel If _T_PrisonerIsNude.GetValue() == 0 If PClothes != None Damsel.EquipItem(PClothes) Endif Utility.Wait(0.1) If PBoots != None Damsel.EquipItem(PBoots) Endif Utility.Wait(0.1) If PArms != None Damsel.EquipItem(PArms) Endif Utility.Wait(0.1) If PGloves != None Damsel.EquipItem(PGloves) Endif Utility.Wait(0.1) If PHead != None Damsel.EquipItem(PHead) Endif Endif If Hair != None Damsel.EquipItem(Hair) Endif If LongHair != None Damsel.EquipItem(LongHair) Endif If Amulet != None Damsel.EquipItem(Amulet) Endif If Apron != None Damsel.EquipItem(Apron) Endif If ACuff != None Damsel.EquipItem(ACuff) Endif If Blindfold != None Damsel.EquipItem(Blindfold) Endif If Collar != None Damsel.EquipItem(Collar) Endif If Gag != None Damsel.EquipItem(Gag) Endif If Hood != None Damsel.EquipItem(Hood) Endif If Stocking1 != None Damsel.EquipItem(Stocking1) Endif If Stocking2 != None Damsel.EquipItem(Stocking2) Endif If Stocking3 != None Damsel.EquipItem(Stocking3) Endif If WCuff != None Damsel.EquipItem(WCuff) Endif Utility.Wait(0.1) If _T_Restrained.GetValue() == 5 || _T_Restrained.GetValue() == 6 Damsel.EquipItem(zbfGagCloth) Endif Utility.Wait(0.1) If _T_NakedOutfit.GetValue() == 0 Armor FArms = Damsel.GetWornForm(0x00000010) As Armor Armor FBoots = Damsel.GetWornForm(0x00000080) As Armor Armor FClothes = Damsel.GetWornForm(0x00000004) As Armor Armor FGloves = Damsel.GetWornForm(0x00000008) As Armor Utility.Wait(0.1) If _T_PrisonerIsNude.GetValue() > 0 If FGloves != None Damsel.UnequipItem(FGloves) Endif If FArms != None Damsel.UnequipItem(FArms) Endif If FClothes != None Damsel.UnequipItem(FClothes) Endif If FBoots != None Damsel.UnequipItem(FBoots) Endif Endif Endif ElseIf Stooge == Damsel If _T_CFIsNude.GetValue() == 0 If CFPClothes != None Damsel.EquipItem(CFPClothes) Endif Utility.Wait(0.1) If CFPBoots != None Damsel.EquipItem(CFPBoots) Endif Utility.Wait(0.1) If CFPArms != None Damsel.EquipItem(CFPArms) Endif Utility.Wait(0.1) If CFPGloves != None Damsel.EquipItem(CFPGloves) Endif Utility.Wait(0.1) If CFPHead != None Damsel.EquipItem(CFPHead) Endif Endif If CFHair != None Damsel.EquipItem(CFHair) Endif If CFLongHair != None Damsel.EquipItem(CFLongHair) Endif If CFAmulet != None Damsel.EquipItem(CFAmulet) Endif If CFApron != None Damsel.EquipItem(CFApron) Endif If CFACuff != None Damsel.EquipItem(CFACuff) Endif If CFBlindfold != None Damsel.EquipItem(CFBlindfold) Endif If CFCollar != None Damsel.EquipItem(CFCollar) Endif If CFGag != None Damsel.EquipItem(CFGag) Endif If CFHood != None Damsel.EquipItem(CFHood) Endif If CFStocking1 != None Damsel.EquipItem(CFStocking1) Endif If CFStocking2 != None Damsel.EquipItem(CFStocking2) Endif If CFStocking3 != None Damsel.EquipItem(CFStocking3) Endif If CFWCuff != None Damsel.EquipItem(CFWCuff) Endif Utility.Wait(0.1) If _T_CFRestrained.GetValue() == 5 || _T_CFRestrained.GetValue() == 6 Damsel.EquipItem(zbfGagCloth) Endif Utility.Wait(0.1) If _T_CFNakedOutfit.GetValue() == 0 Armor CArms = Damsel.GetWornForm(0x00000010) As Armor Armor CBoots = Damsel.GetWornForm(0x00000080) As Armor Armor CClothes = Damsel.GetWornForm(0x00000004) As Armor Armor CGloves = Damsel.GetWornForm(0x00000008) As Armor Utility.Wait(0.1) If _T_CFIsNude.GetValue() > 0 If CGloves != None Damsel.UnequipItem(CGloves) Endif If CArms != None Damsel.UnequipItem(CArms) Endif If CClothes != None Damsel.UnequipItem(CClothes) Endif If CBoots != None Damsel.UnequipItem(CBoots) Endif Endif Endif Endif EndFunction Function FixOutfit(Actor Damsel) Actor Stooge = CampFollower.GetReference() as Actor Actor Flunky = ExPrisoner.GetReference() as Actor If Stooge == Damsel If CFPHead != None Damsel.UnequipItem(CFPHead) Endif If CFPGloves != None Damsel.UnequipItem(CFPGloves) Endif If CFPArms != None Damsel.UnequipItem(CFPArms) Endif If CFPBoots != None Damsel.UnequipItem(CFPBoots) Endif If CFPClothes != None Damsel.UnequipItem(CFPClothes) Endif If CFHair != None Damsel.UnequipItem(CFHair) Endif If CFLongHair != None Damsel.UnequipItem(CFLongHair) Endif Utility.Wait(0.1) Damsel.SetOutfit(_T_NekkidOutfit) Damsel.SetOutfit(_T_NekkidOutfit, true) Utility.Wait(0.1) If CFHair != None Damsel.EquipItem(CFHair) Endif If CFLongHair != None Damsel.EquipItem(CFLongHair) Endif If CFPClothes != None Damsel.EquipItem(CFPClothes) Endif If CFPBoots != None Damsel.EquipItem(CFPBoots) Endif If CFPArms != None Damsel.EquipItem(CFPArms) Endif If CFPGloves != None Damsel.EquipItem(CFPGloves) Endif If CFPHead != None Damsel.EquipItem(CFPHead) Endif Utility.Wait(0.2) Damsel.SetOutfit(None) Damsel.SetOutfit(None, true) Elseif Flunky == Damsel DefaultOutfit = Damsel.GetActorBase().GetOutfit() Amulet = Damsel.GetWornForm(0x00000020) As Armor Apron = Damsel.GetWornForm(0x00004000) As Armor ACuff = Damsel.GetWornForm(0x00800000) As Armor Blindfold = Damsel.GetWornForm(0x02000000) As Armor Collar = Damsel.GetWornForm(0x00008000) As Armor Gag = Damsel.GetWornForm(0x00004000) As Armor Hair = Damsel.GetWornForm(0x00000002) As Armor Hood = Damsel.GetWornForm(0x00000001) As Armor LongHair = Damsel.GetWornForm(0x00000800) As Armor PArms = Damsel.GetWornForm(0x00000010) As Armor PBoots = Damsel.GetWornForm(0x00000080) As Armor PClothes = Damsel.GetWornForm(0x00000004) As Armor PHead = Damsel.GetWornForm(0x00001000) As Armor PGloves = Damsel.GetWornForm(0x00000008) As Armor Stocking1 = Damsel.GetWornForm(0x00010000) As Armor Stocking2 = Damsel.GetWornForm(0x00020000) As Armor Stocking3 = Damsel.GetWornForm(0x00800000) As Armor WCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) If PHead != None Damsel.UnequipItem(PHead) Endif If PGloves != None Damsel.UnequipItem(PGloves) Endif If PArms != None Damsel.UnequipItem(PArms) Endif If PBoots != None Damsel.UnequipItem(PBoots) Endif If PClothes != None Damsel.UnequipItem(PClothes) Endif If Hair != None Damsel.UnequipItem(Hair) Endif If LongHair != None Damsel.UnequipItem(LongHair) Endif Utility.Wait(0.1) Damsel.SetOutfit(_T_NekkidOutfit) Damsel.SetOutfit(_T_NekkidOutfit, true) Utility.Wait(0.1) If Hair != None Damsel.EquipItem(Hair) Endif If LongHair != None Damsel.EquipItem(LongHair) Endif If PClothes != None Damsel.EquipItem(PClothes) Endif If PBoots != None Damsel.EquipItem(PBoots) Endif If PArms != None Damsel.EquipItem(PArms) Endif If PGloves != None Damsel.EquipItem(PGloves) Endif If PHead != None Damsel.EquipItem(PHead) Endif Utility.Wait(0.2) Damsel.SetOutfit(None) Damsel.SetOutfit(None, true) Endif EndFunction Function RatRapeFixOutfit(Actor Damsel) DefaultOutfit = Damsel.GetActorBase().GetOutfit() Amulet = Damsel.GetWornForm(0x00000020) As Armor Apron = Damsel.GetWornForm(0x00004000) As Armor ACuff = Damsel.GetWornForm(0x00800000) As Armor Blindfold = Damsel.GetWornForm(0x02000000) As Armor Collar = Damsel.GetWornForm(0x00008000) As Armor Gag = Damsel.GetWornForm(0x00004000) As Armor Hair = Damsel.GetWornForm(0x00000002) As Armor Hood = Damsel.GetWornForm(0x00000001) As Armor LongHair = Damsel.GetWornForm(0x00000800) As Armor PArms = Damsel.GetWornForm(0x00000010) As Armor PBoots = Damsel.GetWornForm(0x00000080) As Armor PClothes = Damsel.GetWornForm(0x00000004) As Armor PHead = Damsel.GetWornForm(0x00001000) As Armor PGloves = Damsel.GetWornForm(0x00000008) As Armor Stocking1 = Damsel.GetWornForm(0x00010000) As Armor Stocking2 = Damsel.GetWornForm(0x00020000) As Armor Stocking3 = Damsel.GetWornForm(0x00800000) As Armor WCuff = Damsel.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) If PHead != None Damsel.UnequipItem(PHead) Endif If PGloves != None Damsel.UnequipItem(PGloves) Endif If PArms != None Damsel.UnequipItem(PArms) Endif If PBoots != None Damsel.UnequipItem(PBoots) Endif If PClothes != None Damsel.UnequipItem(PClothes) Endif Utility.Wait(0.1) Damsel.SetOutfit(_T_NekkidOutfit) Damsel.SetOutfit(_T_NekkidOutfit, true) _T_PrisonerIsNude.SetValue(1) EndFunction Function FollowMe(Actor Follower) Actor Stooge = CampFollower.GetReference() as Actor Actor Flunky = ExPrisoner.GetReference() as Actor Utility.Wait(0.1) If Follower.GetFactionRank(_T_RatFaction) == 1 If Follower == BirnaRef PlayerRef.RemoveItem(Gold001, 25) Follower.SetFactionRank(_T_RatFaction, 3) ;independant whore Follower.SetFactionRank(_T_HistoryFaction, 2) ;Sex Elseif Follower == EddaRef || Follower == SildaRef PlayerRef.RemoveItem(Gold001, 10) Follower.SetFactionRank(_T_RatFaction, 3) ;independant whore Follower.SetFactionRank(_T_HistoryFaction, 2) ;Sex Follower.SetFactionRank(_T_NMS_SlaveFaction, 1) ;Broken by life _T_Stockholm.SetValue(10) ;Grateful Else Follower.SetFactionRank(_T_RatFaction, 2) ;Friend Follower.SetFactionRank(_T_HistoryFaction, 1) ;No Sex Endif Utility.Wait(0.1) manny_up_list_AvoidNPC.AddForm(Follower) Elseif Follower.GetFactionRank(_T_RatFaction) == 3 If Follower == BirnaRef PlayerRef.RemoveItem(Gold001, 25) Elseif Follower == EddaRef || Follower == SildaRef PlayerRef.RemoveItem(Gold001, 10) Endif Endif Utility.Wait(0.1) If Flunky != None If Flunky.GetFactionRank(_T_HistoryFaction) > 4 && Flunky.GetFactionRank(_T_HistoryFaction) < 9 DismissButFollow(Flunky) Else Dismiss(Flunky) Utility.Wait(0.1) If Stooge == Follower DismissCampFollower(Follower) Endif Endif Else If Stooge == Follower DismissCampFollower(Follower) Endif Endif Utility.Wait(0.4) _T_AfterRape.SetValue(0) _T_BeatingCounter.SetValue(0) _T_BeatingRecentCounter.SetValue(0) _T_Fisto.SetValue(0) _T_HitCounter.SetValue(0) _T_PrisonerBanditRaped.SetValue(0) _T_PrisonerDialogue.SetValue(0) _T_PrisonerGayness.SetValue(0) _T_PrisonerHunger.SetValue(0) _T_PrisonerIsBitch.SetValue(0) _T_PrisonerIsNude.SetValue(0) _T_PrisonerIsSloot.SetValue(0) _T_PrisonerPlayerRaped.SetValue(0) _T_PrisonerRejected.SetValue(0) _T_PrisonerThirst.SetValue(0) _T_RefractoryPeriod.SetValue(0) _T_Restrained.SetValue(0) _T_Stockholm.SetValue(0) _T_Whoreing.SetValue(0) ExPrisoner.Clear() Debug.Notification("NMS Ex Prisoner NPC stats Cleared") Utility.Wait(0.1) ExPrisoner.ForceRefIfEmpty(Follower) Utility.Wait(0.1) If Follower.GetFactionRank(_T_NMS_SlaveFaction) == 2 Follower.setplayerteammate(0) Debug.Notification("Your slave is following you") Elseif Follower.GetFactionRank(_T_HistoryFaction) > 4 && Follower.GetFactionRank(_T_HistoryFaction) < 9 ;Raped by player Follower.setplayerteammate(0) Debug.Notification("Your victim is following you") Else Follower.setplayerteammate(1) If Follower.GetFactionRank(_T_HistoryFaction) == 2 || Follower.GetFactionRank(_T_HistoryFaction) == 4 Debug.Notification("Your lover is following you") Else Debug.Notification("Your friend is following you") Endif Endif ZipItSnitch(Follower) Utility.Wait(0.1) FixOutfit(Follower) Utility.Wait(0.1) FixWhore(Follower) Utility.Wait(0.1) FixNude(Follower) ;Gaydar If Sexlab.GetSexuality(Follower) < 35 ;Giovani _T_PrisonerGayness.SetValue(1) ElseIf Sexlab.GetSexuality(Follower) < 65 ;Josuke _T_PrisonerGayness.SetValue(2) Else _T_PrisonerGayness.SetValue(0) ;Joeseph Joestar... OH MY GOD. Endif EndFunction Function FollowMeCF(Actor Flunky) Actor Stooge = CampFollower.GetReference() as Actor Utility.Wait(0.1) CFDefaultOutfit = Flunky.GetActorBase().GetOutfit() CFAmulet = Flunky.GetWornForm(0x00000020) As Armor CFApron = Flunky.GetWornForm(0x00004000) As Armor CFACuff = Flunky.GetWornForm(0x00800000) As Armor CFBlindfold = Flunky.GetWornForm(0x02000000) As Armor CFCollar = Flunky.GetWornForm(0x00008000) As Armor CFGag = Flunky.GetWornForm(0x00004000) As Armor CFHair = Flunky.GetWornForm(0x00000002) As Armor CFHood = Flunky.GetWornForm(0x00000001) As Armor CFLongHair = Flunky.GetWornForm(0x00000800) As Armor CFPArms = Flunky.GetWornForm(0x00000010) As Armor CFPBoots = Flunky.GetWornForm(0x00000080) As Armor CFPClothes = Flunky.GetWornForm(0x00000004) As Armor CFPHead = Flunky.GetWornForm(0x00001000) As Armor CFPGloves = Flunky.GetWornForm(0x00000008) As Armor CFStocking1 = Flunky.GetWornForm(0x00010000) As Armor CFStocking2 = Flunky.GetWornForm(0x00020000) As Armor CFStocking3 = Flunky.GetWornForm(0x00800000) As Armor CFWCuff = Flunky.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) If Stooge != None DismissCampFollower(Stooge) Else CampFollower.Clear() Endif Utility.Wait(0.1) CampFollower.Clear() Utility.Wait(0.1) CampFollower.ForceRefIfEmpty(Flunky) If Flunky.GetFactionRank(_T_NMS_SlaveFaction) == 2 Flunky.setplayerteammate(0) Debug.Notification("Your complicit slave is following") Else Flunky.setplayerteammate(0) Debug.Notification("Your complicit victim is following") Endif Utility.Wait(0.2) ZipItSnitch(Flunky) Utility.Wait(0.1) FixOutfit(Flunky) EndFunction Function ZipItSnitch(Actor Snitch) If Snitch.IsInFaction(CrimeFactionCidhnaMine) Snitch.RemoveFromFaction(CrimeFactionCidhnaMine) Elseif Snitch.IsInFaction(CrimeFactionEastmarch) Snitch.RemoveFromFaction(CrimeFactionEastmarch) Elseif Snitch.IsInFaction(CrimeFactionFalkreath) Snitch.RemoveFromFaction(CrimeFactionFalkreath) Elseif Snitch.IsInFaction(CrimeFactionGreybeard) Snitch.RemoveFromFaction(CrimeFactionGreybeard) Elseif Snitch.IsInFaction(CrimeFactionHaafingar) Snitch.RemoveFromFaction(CrimeFactionHaafingar) Elseif Snitch.IsInFaction(CrimeFactionHjaalmarch) Snitch.RemoveFromFaction(CrimeFactionHjaalmarch) Elseif Snitch.IsInFaction(CrimeFactionImperial) Snitch.RemoveFromFaction(CrimeFactionImperial) Elseif Snitch.IsInFaction(CrimeFactionKhajiitCaravans) Snitch.RemoveFromFaction(CrimeFactionKhajiitCaravans) Elseif Snitch.IsInFaction(CrimeFactionOrcs) Snitch.RemoveFromFaction(CrimeFactionOrcs) Elseif Snitch.IsInFaction(CrimeFactionPale) Snitch.RemoveFromFaction(CrimeFactionPale) Elseif Snitch.IsInFaction(CrimeFactionReach) Snitch.RemoveFromFaction(CrimeFactionReach) Elseif Snitch.IsInFaction(CrimeFactionRift) Snitch.RemoveFromFaction(CrimeFactionRift) Elseif Snitch.IsInFaction(CrimeFactionSons) Snitch.RemoveFromFaction(CrimeFactionSons) Elseif Snitch.IsInFaction(CrimeFactionThievesGuild) Snitch.RemoveFromFaction(CrimeFactionThievesGuild) Elseif Snitch.IsInFaction(CrimeFactionWhiterun) Snitch.RemoveFromFaction(CrimeFactionWhiterun) Elseif Snitch.IsInFaction(CrimeFactionWinterhold) Snitch.RemoveFromFaction(CrimeFactionWinterhold) Endif Debug.Notification("NMS Follower crime reporting disabled") EndFunction Function BeMyMaid(Actor Maid) Actor Stooge = CampFollower.GetReference() as Actor Utility.Wait(0.1) If Stooge == Maid DismissCampFollower(Maid) Else Dismiss(Maid) Endif Utility.Wait(0.1) If HouseSlave01.GetReference() == None HouseSlave01.ForceRefTo(Maid) Debug.Notification("1st house slave assigned") Utility.Wait(0.2) ZipItSnitch(Maid) Elseif HouseSlave02.GetReference() == None HouseSlave02.ForceRefTo(Maid) Debug.Notification("2nd house slave assigned") Utility.Wait(0.2) ZipItSnitch(Maid) Elseif HouseSlave03.GetReference() == None HouseSlave03.ForceRefTo(Maid) Debug.Notification("3rd house slave assigned") Utility.Wait(0.2) ZipItSnitch(Maid) Elseif HouseSlave04.GetReference() == None HouseSlave04.ForceRefTo(Maid) Debug.Notification("4th house slave assigned") Utility.Wait(0.2) Debug.Notification("You must dismiss a house slave before you can assign another.") ZipItSnitch(Maid) Else Debug.Messagebox("You have too many house slaves. Dismiss a house slave, and try again.") Endif Utility.Wait(0.2) Maid.EvaluatePackage() EndFunction Function DismissMaid(Actor Maid) Utility.Wait(0.2) If HouseSlave01.GetReference() == Maid HouseSlave01.Clear() Debug.Notification("1st house slave cleared") Elseif HouseSlave02.GetReference() == Maid HouseSlave02.Clear() Debug.Notification("2nd house slave cleared") Elseif HouseSlave03.GetReference() == Maid HouseSlave03.Clear() Debug.Notification("3rd house slave cleared") Elseif HouseSlave04.Clear() == Maid HouseSlave04.Clear() Debug.Notification("4th house slave cleared") Endif EndFunction Function Dismiss(Actor Flunky) If _T_PrisonerIsNude.GetValue() == 1;Redress ex prisoner Strip(Flunky) Endif ExPrisoner.Clear() Utility.Wait(0.2) Flunky.SetOutfit(DefaultOutfit) Utility.Wait(0.1) _T_AfterRape.SetValue(0) _T_BeatingCounter.SetValue(0) _T_BeatingRecentCounter.SetValue(0) _T_Fisto.SetValue(0) _T_HitCounter.SetValue(0) _T_PrisonerBanditRaped.SetValue(0) _T_PrisonerDialogue.SetValue(0) _T_PrisonerGayness.SetValue(0) _T_PrisonerHunger.SetValue(0) _T_PrisonerIsBitch.SetValue(0) _T_PrisonerIsNude.SetValue(0) _T_PrisonerIsSloot.SetValue(0) _T_NakedOutfit.SetValue(0) _T_PrisonerPlayerRaped.SetValue(0) _T_PrisonerRejected.SetValue(0) _T_PrisonerThirst.SetValue(0) _T_RefractoryPeriod.SetValue(0) _T_Restrained.SetValue(0) _T_Stockholm.SetValue(0) _T_Whoreing.SetValue(0) Utility.Wait(0.1) If Amulet != None Flunky.UnequipItem(Amulet) Endif If Apron != None Flunky.UnequipItem(Apron) Endif If ACuff != None Flunky.UnequipItem(ACuff) Endif If Blindfold != None Flunky.UnequipItem(Blindfold) Endif If Collar != None Flunky.UnequipItem(Collar) Endif If Gag != None Flunky.UnequipItem(Gag) Endif If Hood != None Flunky.UnequipItem(Hood) Endif If Stocking1 != None Flunky.UnequipItem(Stocking1) Endif If Stocking2 != None Flunky.UnequipItem(Stocking2) Endif If Stocking3 != None Flunky.UnequipItem(Stocking3) Endif If WCuff != None Flunky.UnequipItem(WCuff) Endif If Hair != None Flunky.UnequipItem(Hair) Endif If LongHair != None Flunky.UnequipItem(LongHair) Endif Utility.Wait(0.1) Amulet = Flunky.GetWornForm(0x00000020) As Armor Apron = Flunky.GetWornForm(0x00004000) As Armor ACuff = Flunky.GetWornForm(0x00800000) As Armor Blindfold = Flunky.GetWornForm(0x02000000) As Armor Collar = Flunky.GetWornForm(0x00008000) As Armor Gag = Flunky.GetWornForm(0x00004000) As Armor Hair = Flunky.GetWornForm(0x00000002) As Armor Hood = Flunky.GetWornForm(0x00000001) As Armor LongHair = Flunky.GetWornForm(0x00000800) As Armor Stocking1 = Flunky.GetWornForm(0x00010000) As Armor Stocking2 = Flunky.GetWornForm(0x00020000) As Armor Stocking3 = Flunky.GetWornForm(0x00800000) As Armor WCuff = Flunky.GetWornForm(0x20000000) As Armor Debug.Notification("NMS NPC stats cleared") Utility.Wait(0.1) ;Insurance _T_BeatingCounter.SetValue(0) _T_Stockholm.SetValue(0) EndFunction Function DismissButFollow(Actor Flunky) Actor Stooge = CampFollower.GetReference() as Actor Utility.Wait(0.1) TempDefaultOutfit = DefaultOutfit CFAmulet = Flunky.GetWornForm(0x00000020) As Armor CFApron = Flunky.GetWornForm(0x00004000) As Armor CFACuff = Flunky.GetWornForm(0x00800000) As Armor CFBlindfold = Flunky.GetWornForm(0x02000000) As Armor CFCollar = Flunky.GetWornForm(0x00008000) As Armor CFGag = Flunky.GetWornForm(0x00004000) As Armor CFHair = Flunky.GetWornForm(0x00000002) As Armor CFHood = Flunky.GetWornForm(0x00000001) As Armor CFLongHair = Flunky.GetWornForm(0x00000800) As Armor CFPArms = Flunky.GetWornForm(0x00000010) As Armor CFPBoots = Flunky.GetWornForm(0x00000080) As Armor CFPClothes = Flunky.GetWornForm(0x00000004) As Armor CFPHead = Flunky.GetWornForm(0x00001000) As Armor CFPGloves = Flunky.GetWornForm(0x00000008) As Armor CFStocking1 = Flunky.GetWornForm(0x00010000) As Armor CFStocking2 = Flunky.GetWornForm(0x00020000) As Armor CFStocking3 = Flunky.GetWornForm(0x00800000) As Armor CFWCuff = Flunky.GetWornForm(0x20000000) As Armor Utility.Wait(0.2) Dismiss(Flunky) Utility.Wait(0.1) If Stooge != None DismissCampFollower(Stooge) Else CampFollower.Clear() Endif Utility.Wait(0.1) CampFollower.Clear() Utility.Wait(0.1) CFDefaultOutfit = TempDefaultOutfit Utility.Wait(0.1) CampFollower.ForceRefIfEmpty(Flunky) Debug.Notification("Complicit victim is following") Utility.Wait(0.2) ZipItSnitch(Flunky) Utility.Wait(0.1) FixOutfit(Flunky) Utility.Wait(0.1) ;Insurance _T_BeatingCounter.SetValue(0) _T_Stockholm.SetValue(0) EndFunction Function DismissCampFollower(Actor Flunky) If _T_CFIsNude.GetValue() > 0 ;Redress Camp Follower Strip(Flunky) Endif Utility.Wait(0.1) CampFollower.Clear() Utility.Wait(0.2) Flunky.SetOutfit(CFDefaultOutfit) Debug.Notification("Dismissed victim is no longer following") _T_CFIsNude.SetValue(0) _T_CFNakedOutfit.SetValue(0) _T_CFRestrained.SetValue(0) EndFunction Function Sayonara(Actor Flunky) Flunky.RemoveFromFaction(_T_HistoryFaction) Flunky.RemoveFromFaction(_T_NMS_WhoreFaction) Flunky.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Flunky, -2) EndFunction Function UpdateWhore(Actor Whore) If Whore.GetFactionRank(_T_HistoryFaction) > 4 && Whore.GetFactionRank(_T_HistoryFaction) < 9 If Whore.GetFactionRank(_T_NMS_WhoreFaction) == 2 Whore.SetFactionRank(_T_NMS_WhoreFaction, 0) Elseif Whore.GetFactionRank(_T_NMS_WhoreFaction) > 2 && Whore.GetFactionRank(_T_NMS_WhoreFaction) < 7 Whore.SetFactionRank(_T_NMS_WhoreFaction, 7) Endif Endif EndFunction Function FixWhore(Actor Whore) If Whore.GetFactionRank(_T_HistoryFaction) != 5 && Whore.GetFactionRank(_T_HistoryFaction) != 6 && Whore.GetFactionRank(_T_HistoryFaction) != 7 && Whore.GetFactionRank(_T_HistoryFaction) != 8 If Whore.GetFactionRank(_T_NMS_WhoreFaction) != 2 Whore.SetFactionRank(_T_NMS_WhoreFaction, 0) Whore.RemoveFromFaction(_T_NMS_WhoreFaction) Endif Elseif Whore.GetFactionRank(_T_HistoryFaction) > 4 && Whore.GetFactionRank(_T_HistoryFaction) < 9 If Whore.GetFactionRank(_T_NMS_WhoreFaction) == 2 Whore.SetFactionRank(_T_NMS_WhoreFaction, 0) Elseif Whore.GetFactionRank(_T_NMS_WhoreFaction) > 2 && Whore.GetFactionRank(_T_NMS_WhoreFaction) < 7 Whore.SetFactionRank(_T_NMS_WhoreFaction, 7) Endif Endif EndFunction Function Martyr(Actor Mark) Actor Fam = Family.GetReference() as Actor Utility.Wait(0.1) If Fam == Mark If _T_JustOzarked.GetValue() == 0 Form Piece = Mark.GetEquippedWeapon() as Form Actor Flunky = ExPrisoner.GetReference() as Actor _T_JustOzarked.SetValue(1) If Piece != None Mark.UnequipItem(Piece) Endif Utility.Wait(0.1) DismissButFollow(Flunky) Utility.Wait(0.1) If Mark.IsInFaction(_T_RatFaction) Mark.SetFactionRank(_T_RatFaction, 4) Endif Utility.Wait(0.1) Mark.RemoveItem(VendorItemWeapon, -1, True, PlayerRef) Mark.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Mark, -2) Mark.SetFactionRank(_T_HistoryFaction, 6) Utility.Wait(0.1) FollowMe(Mark) Utility.Wait(0.1) manny_up_list_AvoidNPC.AddForm(Mark) Else _T_JustOzarked.SetValue(0) Family.Clear() Endif Else If _T_JustMartyred.GetValue() == 0 Form Piece = Mark.GetEquippedWeapon() as Form Actor Flunky = ExPrisoner.GetReference() as Actor _T_JustMartyred.SetValue(1) If Piece != None Mark.UnequipItem(Piece) Endif Utility.Wait(0.1) Dismiss(Flunky) Utility.Wait(0.1) If Mark.IsInFaction(_T_RatFaction) Mark.SetFactionRank(_T_RatFaction, 4) Endif Utility.Wait(0.1) Mark.RemoveItem(VendorItemWeapon, -1, True, PlayerRef) Mark.SetRelationshipRank(PlayerRef, -2) PlayerRef.SetRelationshipRank(Mark, -2) Mark.SetFactionRank(_T_HistoryFaction, 6) Mark.SetFactionRank(_T_MartyrFaction, 1) Flunky.SetFactionRank(_T_MartyrFaction, 2) Utility.Wait(0.1) FollowMe(Mark) Utility.Wait(0.1) Mark.RemoveFromFaction(_T_NMS_CuckFaction) Utility.Wait(0.1) manny_up_list_AvoidNPC.AddForm(Mark) Cuck.Clear() Utility.Wait(0.1) If Mark.IsInFaction(_T_RatFaction) Mark.SetFactionRank(_T_RatFaction, 4) Endif Else _T_JustMartyred.SetValue(0) Endif Endif EndFunction Function SetHogtie(actor Slave) Actor Stooge = CampFollower.GetReference() as Actor String SlaveName = Slave.GetBaseObject().GetName() Utility.Wait(0.1) If Stooge == Slave _T_CFRestrained.SetValue(3) _T_PattyHurst.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Attention bonding + 1</font>") Else _T_Restrained.SetValue(3) _T_BeatingCounter.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Discipline + 1</font>") Endif EndFunction Function SetHogtieGagged(actor Slave) Actor Stooge = CampFollower.GetReference() as Actor String SlaveName = Slave.GetBaseObject().GetName() Utility.Wait(0.1) If Stooge == Slave _T_CFRestrained.SetValue(5) _T_PattyHurst.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Attention bonding + 1</font>") Else _T_Restrained.SetValue(5) _T_BeatingCounter.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Discipline + 1</font>") Endif EndFunction Function SetNormaltie(actor Slave) Actor Stooge = CampFollower.GetReference() as Actor String SlaveName = Slave.GetBaseObject().GetName() Utility.Wait(0.1) If Stooge == Slave _T_CFRestrained.SetValue(4) _T_PattyHurst.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Attention bonding + 1</font>") Else _T_Restrained.SetValue(4) _T_StockHolm.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Irrational Affection + 1</font>") Endif EndFunction Function SetNormaltieGagged(actor Slave) Actor Stooge = CampFollower.GetReference() as Actor String SlaveName = Slave.GetBaseObject().GetName() Utility.Wait(0.1) If Stooge == Slave _T_CFRestrained.SetValue(6) _T_PattyHurst.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Attention bonding + 1</font>") Else _T_Restrained.SetValue(6) _T_StockHolm.Mod(1) Debug.Notification("<font size='20'>"+Slavename+" Irrational Affection + 1</font>") Endif EndFunction Function SetFree(actor Slave) Actor Stooge = CampFollower.GetReference() as Actor Utility.Wait(0.1) If Stooge == Slave _T_CFRestrained.SetValue(0) Else _T_Restrained.SetValue(0) Endif EndFunction  Edited December 3, 2022 by Tentacus 2
Tentacus Posted December 3, 2022 Author Posted December 3, 2022 I'm gonna redo the relationship check dialogue for the camp follower it's not very good. 1
Tentacus Posted December 4, 2022 Author Posted December 4, 2022 After getting Thaena for the bajillionth time I decided to give her unique dialogue, she's now one of the NPCs that will always say yes if you ask for the reward. I'll also probably add a little unique dialogue to Cucking the Jarl. Â 1
Tentacus Posted December 4, 2022 Author Posted December 4, 2022 Found a bug that you could assign Camp follower to house slave when not fully trained. Will be fixed in next version.
Tentacus Posted December 4, 2022 Author Posted December 4, 2022 I had quite a fun testing session today. The new Thaena dialogue worked well, and I tricked her into becoming a whore and for the first time the RNG went so that she liked it... It was pretty amusing that a Jarl's wife is the only time I've gotten a happy whore.... and literally nobody wanted to pay full price for her. (LOL) With Farkas being her first time and setting the bar at a measly 15 gold. Â 2
Carnificina Posted December 5, 2022 Posted December 5, 2022 Can confirm about Endon being followed by his daughter. The fix for me was to install SL Sexual Fame Framework and enable the 'remove child npc' effect in its mcm.
Carnificina Posted December 5, 2022 Posted December 5, 2022 Hey, I've been absolutely loving the Ratcatcher topics, just lost 8 hours of my life and didn't realize it 'til I got hungry. Some dialogues actually made me blush and I thought I was the kinky one. Well done. Haven't posted many screenshots 'cause work and stuff, but I'm slowly going through the topics, and getting some new names with the 'no repeat npcs' update. Crossing my fingers to get Helga and her unique dialogue someday. The dedication put into this mod is insane, thanks for all the hard-work putting this together, its the only SL rp/dialogue mod I actually use. Looking forward to my vacation next week so I can finally do a deep dive into NMS and give it the time it honestly deserves.  1
Carnificina Posted December 5, 2022 Posted December 5, 2022 10 hours ago, Tentacus said: After getting Thaena for the bajillionth time I decided to give her unique dialogue, she's now one of the NPCs that will always say yes if you ask for the reward. I'll also probably add a little unique dialogue to Cucking the Jarl. Â I think the RNG gods in my play would agree with that. 1
Tentacus Posted December 5, 2022 Author Posted December 5, 2022 41 minutes ago, Carnificina said: Hey, I've been absolutely loving the Ratcatcher topics, just lost 8 hours of my life and didn't realize it 'til I got hungry. Some dialogues actually made me blush and I thought I was the kinky one. Well done. Haven't posted many screenshots 'cause work and stuff, but I'm slowly going through the topics, and getting some new names with the 'no repeat npcs' update. Crossing my fingers to get Helga and her unique dialogue someday. The dedication put into this mod is insane, thanks for all the hard-work putting this together, its the only SL rp/dialogue mod I actually use. Looking forward to my vacation next week so I can finally do a deep dive into NMS and give it the time it honestly deserves.   Thanks that really means a lot, also nice screenshot. I should get this update out this week and it will be the last of the year. I think you guys will love it as it adds A LOT of RP value. In addition to the Beggars and Thaena dialogue there is one other new Ratcatcher topic I haven't talked about yet that will act as a template for more and add an entirely new (for this mod) Element. 1
pinky6225 Posted December 5, 2022 Posted December 5, 2022 Think i've gone to far down the rabbit hole with Camilla with other mods as she's missing any new topic (she has been used by slave run then married her for make skyrim straight again and then had her slave trained in mias lair from sexlab sex slaves) Â Out of curiosity what are the conditions for it to appear?
Tentacus Posted December 5, 2022 Author Posted December 5, 2022 (edited) 1 hour ago, pinky6225 said: Think i've gone to far down the rabbit hole with Camilla with other mods as she's missing any new topic (she has been used by slave run then married her for make skyrim straight again and then had her slave trained in mias lair from sexlab sex slaves)  Out of curiosity what are the conditions for it to appear? The Golden Claw quest must be started. Basically it's meant so you talk to her at the bridge just like with Amorous Adventures. You can not have any active NMS follower, no Prisoner, ex prisoner or Camp Follower. (A follwing house slave is fine but not very immersive... lol.)  Beyond that your speech must be above 25 or you must have the illusion perk Hypnotic Gaze to get her to come willingly. It should work even if Lucan is dead.  If you already did Golden Claw you can still get her if she comes up on Notice board but there's no unique dialogue beyond her being a hoe (Insert MXR voiceover) and instantly saying yes to sex and prostitution. Likewise you can get her if you rescue Lucan, victimize him and do the Family trade in.   Unlike Ysolda Camilla isn't a furry so she will come with you if you are a cat or lizard but makes it clear she isn't down to bone. Edited December 5, 2022 by Tentacus
Tentacus Posted December 5, 2022 Author Posted December 5, 2022 (edited) Update: Â I figured out a way to allow you to pimp out following house slaves. You can only do this when you don't have another NMS Follower/Camp Follower. Other following house slaves are fine as well as the new Beggar minion followers that will be in the next version. So theoretically you could have up to 4 girls/guys you swap between to pimp at any given time When you do "hire" an existing follower or a rescue, the House slave will be automatically dismissed from the whore role and resume following normally (Though you'll probably have to fix their outfit). Â I would have expanded the house slave slots but that is gonna take a significant amount of labor as I have to edit a lot of script properties so that'll be at some future time. I really wish I'd thought to add a keyword to the house slave aliases sooner, I got out of the habit of thinking of using keywords at all since unlike Fallout 4 you can't dynamically attach and remove them to and from actors. Â Edited December 5, 2022 by Tentacus 2
Leoosp Posted December 5, 2022 Posted December 5, 2022 (edited) @Tentacus I may have figured out a way for the dialogue option to claim ownership of an NMS slave's home, to counter the abuse potential of saying that all of their possessions belong to the PC. An option is to have it check whether the current cell you are in is the dismiss location they return to when you tell them not to follow, or generally check the property of the actor for their home cell.  So therefore, as long as they meet the reach the necessary training level the dialogue could then check when clicked if you are actually in their home cell or dismiss location. Excluding player homes already owned by the Player Character (PC), Vanilla (including DLCs), modification added and/or already claimed by PC. Already claimed are ones which you have done this dialogue option on before. As well as not a guest of an Inn or a member of the waitress type Inn Staff, but in the case of Inns and ownership that they are that Inn's Inn Keeper. As well as current home cell ownership to make sure that they actually own the cell and it's contents. Edited December 5, 2022 by Leoosp 1
Tentacus Posted December 6, 2022 Author Posted December 6, 2022 1 hour ago, Leoosp said: @Tentacus I may have figured out a way for the dialogue option to claim ownership of an NMS slave's home, to counter the abuse potential of saying that all of their possessions belong to the PC. An option is to have it check whether the current cell you are in is the dismiss location they return to when you tell them not to follow, or generally check the property of the actor for their home cell.  So therefore, as long as they meet the reach the necessary training level the dialogue could then check when clicked if you are actually in their home cell or dismiss location. Excluding player homes already owned by the Player Character (PC), Vanilla (including DLCs), modification added and/or already claimed by PC. Already claimed are ones which you have done this dialogue option on before. As well as not a guest of an Inn or a member of the waitress type Inn Staff, but in the case of Inns and ownership that they are that Inn's Inn Keeper. As well as current home cell ownership to make sure that they actually own the cell and it's contents.  Do you have a specific dialogue condition to do that?
Leoosp Posted December 6, 2022 Posted December 6, 2022 (edited) 2 hours ago, Tentacus said:  Do you have a specific dialogue condition to do that?  IsCellOwner - the CreationKit Wiki (uesp.net) IsInMyOwnedCell - the CreationKit Wiki (uesp.net) GetInCurrentLoc - the CreationKit Wiki (uesp.net) GetKeywordDataForCurrentLocation - Creation Kit GetFactionRank - Creation Kit GetActorOwner - Cell - the CreationKit Wiki (uesp.net) GetWithinPackageLocation GetDistance  Since locations have keywords then you can check whether the location has the Inn Keyword or other relevant keyword(s). As well as check their location with conditions, their faction membership rank and actor base owner of location. It's my opinion that GetWithinPackageLocation condition is supposed to check whether an actor is within a location specified by an AI package. So, if the NPC (actor) is running or using a package for when they return home and/or are at home then checking a specified package for the going home. If that AI package location specification matches their current location and yours so it would then be checkable. All that would then be required is a FormList of claimed locations and/or already claimed locations to check if the current location is in that list. Each time you successfully claim a new location, it would be added to that list after completing the claiming ownership of the location.  Have the IsCellOwner condition check whether they and/or their faction is the owner with "IsCellOwner", NMS slave dialogue's editorID and it must return a "1". For the Inn check have it do "GetKeywordDataForCurrentLocation", check against the keyword for the location and check that it doesn't have (must return 0) a location type of "Inn". Edited December 6, 2022 by Leoosp
Tentacus Posted December 6, 2022 Author Posted December 6, 2022 Apparently someone made a Spanish translation. I don't remember giving permission. I couldn't find any DMs or mentions in this post either. To be very clear I don't believe one needs permission to do a translation if it's a patch, that would be pretty hypocritical since this mod functions similar to a patch for TNB (Though it is not one) BUUUUT... It would be nice.  If I was asked through some other channel or gave a blanket permission for all my mods in the past (Very possible) then whatevs.... Just to be clear I am totally okay with people doing translations. HOWEVER now I feel guilty because At the rate I add new dialogue It's a fools errand, because you'll have to add like 400 lines every few weeks., not to mention the fact that I revise lines fairly often.   Dunno if it'll even work with the current version.  Anyway it's on this page: Â
Tentacus Posted December 6, 2022 Author Posted December 6, 2022 (edited) 11 hours ago, Leoosp said:  IsCellOwner - the CreationKit Wiki (uesp.net) IsInMyOwnedCell - the CreationKit Wiki (uesp.net) GetInCurrentLoc - the CreationKit Wiki (uesp.net) GetKeywordDataForCurrentLocation - Creation Kit GetFactionRank - Creation Kit GetActorOwner - Cell - the CreationKit Wiki (uesp.net) GetWithinPackageLocation GetDistance  Since locations have keywords then you can check whether the location has the Inn Keyword or other relevant keyword(s). As well as check their location with conditions, their faction membership rank and actor base owner of location. It's my opinion that GetWithinPackageLocation condition is supposed to check whether an actor is within a location specified by an AI package. So, if the NPC (actor) is running or using a package for when they return home and/or are at home then checking a specified package for the going home. If that AI package location specification matches their current location and yours so it would then be checkable. All that would then be required is a FormList of claimed locations and/or already claimed locations to check if the current location is in that list. Each time you successfully claim a new location, it would be added to that list after completing the claiming ownership of the location.  Have the IsCellOwner condition check whether they and/or their faction is the owner with "IsCellOwner", NMS slave dialogue's editorID and it must return a "1". For the Inn check have it do "GetKeywordDataForCurrentLocation", check against the keyword for the location and check that it doesn't have (must return 0) a location type of "Inn".  I'll have to give this another try. Chances are that when I tried originally to make the script work anywhere and failed, I got burned out and missed the obvious that I could just use conditions to make the current script less irresponsible. We'll see.  On a side note if any eager beaver wants to compile a list of NPCs who are essential NOT THROUGH Aliases and can be made unessential with a script that would be extremely helpful.  Edited December 6, 2022 by Tentacus
Leoosp Posted December 6, 2022 Posted December 6, 2022 (edited) 3 minutes ago, Tentacus said: Â I'll have to give this another try. Chances are that when I tried originally to make the script work anywhere and failed, I got burned out and missed the obvious that I could just use conditions to make the current script less irresponsible. We'll see. Â @Tentacus When I say NMS slave dialogue's editorID it is meant that it needs to be the editorID of the slave you are talking to! Edited December 6, 2022 by Leoosp
Tentacus Posted December 6, 2022 Author Posted December 6, 2022 Yeeeaaah... gonna be honest looking it over again. It is not worth the effort to me to try to make the Cell ownership topic less exploitable... and honestly I kind of like the flexibility of being able to use it in... creative ways. Anyway... Back to testing. I've had a busy morning but if things go well, I might have the new update out tomorrow. 1
Tentacus Posted December 7, 2022 Author Posted December 7, 2022 (edited) It seems as if the Hreinn date is broken, he just becomes a full on follower. Of course he's the one member of the family who's date I didn't test before the last update. I am assuming since nobody complained nobody tried to date him, too bad I think the writing is pretty good... or will be when I fix it   Edit: Yep... Just left the condition for Hreinn out of the greet so none of his date dialogue is accessible... *sigh*.  Edited December 7, 2022 by Tentacus
shanktorias5 Posted December 7, 2022 Posted December 7, 2022 On 12/5/2022 at 8:37 PM, Tentacus said: Unlike Ysolda Camilla isn't a furry so she will come with you if you are a cat or lizard but makes it clear she isn't down to bone. Yo wait. Ive been trying to get ysolda(for reasons) but i havent been able to get her to show up on the board. Does she not show up if you are not khajit or something?
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