VergilDMX Posted March 27, 2025 Posted March 27, 2025 (edited) 1 hour ago, Dg75 said: I have a working thirst/hunger - much lighter weight than PMS, it just adds and consumes vanilla food in turn cause needs mods to update their own stuff. I cannot test if actually worked for my Rnad because I am vampire and food wouldn't effect my pc. I did add Stale blood from Better vampire. it and PAF updated states hah eating shit will make have to shit! Little worried though it may conflict with eating animation mods like Taberu. If so would have to somehow negate those idles from ticking. I have old old version of taberu back before it required nemesis and it doesn't conflict not sure about new versions with nemy. Would be bad when drinking piss and all of sudden player whips out a bottle of water. I added thirst/hunger to the test skits to be tested. I am currently working on building a simple move adjuster for small adjustments while animating. Don't hold your breath I aint ashal and this aint SexLab Nice, I'm using RND currently and Taberu mods installed, so I could test if the feature is working fine with this mod once the update is out. I understand that the RND patch won't me necessary anymore, right? Edited March 27, 2025 by VergilDMX
Dg75 Posted March 28, 2025 Author Posted March 28, 2025 1 hour ago, VergilDMX said: Nice, I'm using RND currently and Taberu mods installed, so I could test if the feature is working fine with this mod once the update is out. I understand that the RND patch won't me necessary anymore, right? correct. Loose the patch! I am getting ready to upload what I got now.
VergilDMX Posted March 28, 2025 Posted March 28, 2025 (edited) 9 hours ago, Dg75 said: correct. Loose the patch! I am getting ready to upload what I got now. Alright! Ok, I did some quick testing and the idles worked fine and they weren't interrupted by a Taberu animation. I noticed that at the end of the animation, some raw meat was added in the inventory but that's all. Unfortunately, I didn't see any changes in the thirst/hunger I understand that the idea is adding some vanilla food/drinks and consume them, but this is not triggering. I also tried to adjust the actor position, but I guess this is not implemented in the Kink test feature Edited March 28, 2025 by VergilDMX
VergilDMX Posted March 28, 2025 Posted March 28, 2025 I was checking how the mod CumSwallowNeedsAddon solved this and it has a separate script for each mod. In the case of RND, this is how this feature was implemented. Maybe something similar could be done in this mod Scriptname _CSN_InterfaceRnd extends Quest Int cumOffset = 10 Event OnInit() Debug.Trace("_CSN_InterfaceRnd: OnInit") PlayerLoadsGame() EndEvent Function PlayerLoadsGame() Debug.Trace("_CSN_InterfaceRnd: PlayerLoadsGame") If Game.GetModByName("RealisticNeedsandDiseases.esp") != 255 If GetState() != "Installed" GoToState("Installed") EndIf Else If GetState() != "" GoToState("") EndIf EndIf EndFunction Bool Function GetIsInterfaceActive() If GetState() == "Installed" Return true EndIf Return false EndFunction Event OnEndState() Utility.Wait(5.0) ; Wait before entering active state to help avoid making function calls to scripts that may not have initialized yet. RndPlayerAlias = (Game.GetFormFromFile(0x00EB43, "RealisticNeedsandDiseases.esp") as Quest).GetNthAlias(0) as ReferenceAlias ; Should probably change all this crap to arrays.... RND_HungerEffect00 = Game.GetFormFromFile(0x000D62, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerEffect01 = Game.GetFormFromFile(0x0012C5, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerEffect02 = Game.GetFormFromFile(0x0012C6, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerEffect03 = Game.GetFormFromFile(0x0012C7, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerEffect04 = Game.GetFormFromFile(0x001834, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerEffect05 = Game.GetFormFromFile(0x0012C8, "RealisticNeedsandDiseases.esp") as MagicEffect RND_ThirstEffect00 = Game.GetFormFromFile(0x0012CD, "RealisticNeedsandDiseases.esp") as MagicEffect RND_ThirstEffect01 = Game.GetFormFromFile(0x0012CE, "RealisticNeedsandDiseases.esp") as MagicEffect RND_ThirstEffect02 = Game.GetFormFromFile(0x0012CF, "RealisticNeedsandDiseases.esp") as MagicEffect RND_ThirstEffect03 = Game.GetFormFromFile(0x002DF8, "RealisticNeedsandDiseases.esp") as MagicEffect RND_ThirstEffect04 = Game.GetFormFromFile(0x0012D0, "RealisticNeedsandDiseases.esp") as MagicEffect RND_HungerPoints = Game.GetFormFromFile(0x002884, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerPointsPerHour = Game.GetFormFromFile(0x002DE7, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLastUpdateTimeStamp = Game.GetFormFromFile(0x002DE8, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_AnimEat = Game.GetFormFromFile(0x024488, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_1stPersonMsg = Game.GetFormFromFile(0x0900CA, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ForceSatiation = Game.GetFormFromFile(0x0536D7, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel00 = Game.GetFormFromFile(0x002DE9, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel01 = Game.GetFormFromFile(0x002DEA, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel02 = Game.GetFormFromFile(0x002DEB, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel03 = Game.GetFormFromFile(0x002DEC, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel04 = Game.GetFormFromFile(0x002DED, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerLevel05 = Game.GetFormFromFile(0x002DEE, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_HungerSpell00 = Game.GetFormFromFile(0x001D97, "RealisticNeedsandDiseases.esp") as Spell RND_HungerSpell01 = Game.GetFormFromFile(0x001D99, "RealisticNeedsandDiseases.esp") as Spell RND_HungerSpell02 = Game.GetFormFromFile(0x001D9B, "RealisticNeedsandDiseases.esp") as Spell RND_HungerSpell03 = Game.GetFormFromFile(0x001D9D, "RealisticNeedsandDiseases.esp") as Spell RND_HungerSpell04 = Game.GetFormFromFile(0x00231B, "RealisticNeedsandDiseases.esp") as Spell RND_HungerSpell05 = Game.GetFormFromFile(0x00231C, "RealisticNeedsandDiseases.esp") as Spell RND_HungerLevel00ConsumeMessage = Game.GetFormFromFile(0x0053F5, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel01ConsumeMessage = Game.GetFormFromFile(0x0053F6, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel02ConsumeMessage = Game.GetFormFromFile(0x0053F7, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel03ConsumeMessage = Game.GetFormFromFile(0x0053F8, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel04ConsumeMessage = Game.GetFormFromFile(0x0053F9, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel05ConsumeMessage = Game.GetFormFromFile(0x0053FA, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel00ConsumeMessageB = Game.GetFormFromFile(0x0900C4, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel01ConsumeMessageB = Game.GetFormFromFile(0x0900C5, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel02ConsumeMessageB = Game.GetFormFromFile(0x0900C6, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel03ConsumeMessageB = Game.GetFormFromFile(0x0900C7, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel04ConsumeMessageB = Game.GetFormFromFile(0x0900C8, "RealisticNeedsandDiseases.esp") as Message RND_HungerLevel05ConsumeMessageB = Game.GetFormFromFile(0x0900C9, "RealisticNeedsandDiseases.esp") as Message ; ====================== RND_ThirstPoints = Game.GetFormFromFile(0x002E07, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstPointsPerHour = Game.GetFormFromFile(0x002E08, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLastUpdateTimeStamp = Game.GetFormFromFile(0x002E09, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_AnimDrink = Game.GetFormFromFile(0x024489, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLevel00 = Game.GetFormFromFile(0x002E0A, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLevel01 = Game.GetFormFromFile(0x002E0B, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLevel02 = Game.GetFormFromFile(0x002E0C, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLevel03 = Game.GetFormFromFile(0x002E0D, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstLevel04 = Game.GetFormFromFile(0x002E0E, "RealisticNeedsandDiseases.esp") as GlobalVariable RND_ThirstSpell00 = Game.GetFormFromFile(0x001DA1, "RealisticNeedsandDiseases.esp") as Spell RND_ThirstSpell01 = Game.GetFormFromFile(0x001DA3, "RealisticNeedsandDiseases.esp") as Spell RND_ThirstSpell02 = Game.GetFormFromFile(0x001DA5, "RealisticNeedsandDiseases.esp") as Spell RND_ThirstSpell03 = Game.GetFormFromFile(0x002DFA, "RealisticNeedsandDiseases.esp") as Spell RND_ThirstSpell04 = Game.GetFormFromFile(0x002DFC, "RealisticNeedsandDiseases.esp") as Spell RND_ThirstLevel00ConsumeMessage = Game.GetFormFromFile(0x0053F5, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel01ConsumeMessage = Game.GetFormFromFile(0x005ECD, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel02ConsumeMessage = Game.GetFormFromFile(0x005ECE, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel03ConsumeMessage = Game.GetFormFromFile(0x005ECF, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel04ConsumeMessage = Game.GetFormFromFile(0x005ED0, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel00ConsumeMessageB = Game.GetFormFromFile(0x090B97, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel01ConsumeMessageB = Game.GetFormFromFile(0x090B98, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel02ConsumeMessageB = Game.GetFormFromFile(0x090B99, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel03ConsumeMessageB = Game.GetFormFromFile(0x090B96, "RealisticNeedsandDiseases.esp") as Message RND_ThirstLevel04ConsumeMessageB = Game.GetFormFromFile(0x090B95, "RealisticNeedsandDiseases.esp") as Message ; ========================= ;RND_HungerSpell00.SetNthEffectMagnitude(0, Menu.GluttedSpeed) EndEvent ; Installed State ==================================================== State Installed Bool Function IsNeedsModActive() Return _CSN_IntRnd.IsNeedsModActive(RndPlayerAlias) EndFunction Function Eat(Int FoodPoints) FoodPoints *= cumOffset if _CSN_IntRnd.isVampire(RndPlayerAlias) RND_HungerPoints.SetValue(10) RemoveHungerSpells() else ; eat food int AdjPoints = Utility.RandomInt(-5,5) float HungerPoints = RND_HungerPoints.GetValue() RND_HungerPoints.SetValue(RND_HungerPoints.GetValue() - FoodPoints - AdjPoints) if RND_ForceSatiation.GetValue() == 1 if HungerPoints >= RND_HungerLevel02.GetValue() && RND_HungerPoints.GetValue() < RND_HungerLevel01.GetValue() RND_HungerPoints.SetValue(RND_HungerLevel01.GetValue()) endif endif ; Hunger points cap between 0-RND_HungerLevel05, ; so you don't end up eating a lot and still starving ; or eating one huge meal hoping to last for a week if RND_HungerPoints.GetValue() > RND_HungerLevel05.GetValue() RND_HungerPoints.SetValue(RND_HungerLevel05.GetValue()) elseif RND_HungerPoints.GetValue() < 0 RND_HungerPoints.SetValue(0) endif ; update time stamp RND_HungerLastUpdateTimeStamp.SetValue(Utility.GetCurrentGameTime()) ; new spell to add Spell HungerSpell = RND_HungerSpell02 Message HungerLevelMessage = None if RND_HungerPoints.GetValue() < RND_HungerLevel01.GetValue() HungerSpell = RND_HungerSpell00 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel00ConsumeMessage else HungerLevelMessage = RND_HungerLevel00ConsumeMessageB endif elseif RND_HungerPoints.GetValue() >= RND_HungerLevel01.GetValue() && RND_HungerPoints.GetValue() < RND_HungerLevel02.GetValue() HungerSpell = RND_HungerSpell01 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel01ConsumeMessage else HungerLevelMessage = RND_HungerLevel01ConsumeMessageB endif elseif RND_HungerPoints.GetValue() >= RND_HungerLevel02.GetValue() && RND_HungerPoints.GetValue() < RND_HungerLevel03.GetValue() HungerSpell = RND_HungerSpell02 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel02ConsumeMessage else HungerLevelMessage = RND_HungerLevel02ConsumeMessageB endif elseif RND_HungerPoints.GetValue() >= RND_HungerLevel03.GetValue() && RND_HungerPoints.GetValue() < RND_HungerLevel04.GetValue() HungerSpell = RND_HungerSpell03 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel03ConsumeMessage else HungerLevelMessage = RND_HungerLevel03ConsumeMessageB endif elseif RND_HungerPoints.GetValue() >= RND_HungerLevel04.GetValue() && RND_HungerPoints.GetValue() < RND_HungerLevel05.GetValue() HungerSpell = RND_HungerSpell04 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel04ConsumeMessage else HungerLevelMessage = RND_HungerLevel04ConsumeMessageB endif elseif RND_HungerPoints.GetValue() >= RND_HungerLevel05.GetValue() HungerSpell = RND_HungerSpell05 if RND_1stPersonMsg.GetValue() == 1 HungerLevelMessage = RND_HungerLevel05ConsumeMessage else HungerLevelMessage = RND_HungerLevel05ConsumeMessageB endif endif if PlayerRef.HasSpell(HungerSpell) HungerLevelMessage.Show() else RemoveHungerSpells() PlayerRef.AddSpell(HungerSpell, false) HungerLevelMessage.Show() endIf endIf EndFunction Function Drink(Int WaterPoints) WaterPoints *= (cumOffset*2) if _CSN_IntRnd.isVampire(RndPlayerAlias) RND_ThirstPoints.SetValue(10) RemoveThirstSpells() else ; drink water int AdjPoints = Utility.RandomInt(-5,5) RND_ThirstPoints.SetValue(RND_ThirstPoints.GetValue() - WaterPoints - AdjPoints) if RND_ThirstPoints.GetValue() > RND_ThirstLevel04.GetValue() RND_ThirstPoints.SetValue(RND_ThirstLevel04.GetValue()) elseif RND_ThirstPoints.GetValue() < 0 RND_ThirstPoints.SetValue(0) endif RND_ThirstLastUpdateTimeStamp.SetValue(Utility.GetCurrentGameTime()) ; new spell to add Spell ThirstSpell = RND_ThirstSpell02 Message ThirstLevelMessage = None if RND_ThirstPoints.GetValue() < RND_ThirstLevel01.GetValue() ThirstSpell = RND_ThirstSpell00 if RND_1stPersonMsg.GetValue() == 1 ThirstLevelMessage = RND_ThirstLevel00ConsumeMessage else ThirstLevelMessage = RND_ThirstLevel00ConsumeMessageB endif elseif RND_ThirstPoints.GetValue() >= RND_ThirstLevel01.GetValue() && RND_ThirstPoints.GetValue() < RND_ThirstLevel02.GetValue() ThirstSpell = RND_ThirstSpell01 if RND_1stPersonMsg.GetValue() == 1 ThirstLevelMessage = RND_ThirstLevel01ConsumeMessage else ThirstLevelMessage = RND_ThirstLevel01ConsumeMessageB endif elseif RND_ThirstPoints.GetValue() >= RND_ThirstLevel02.GetValue() && RND_ThirstPoints.GetValue() < RND_ThirstLevel03.GetValue() ThirstSpell = RND_ThirstSpell02 if RND_1stPersonMsg.GetValue() == 1 ThirstLevelMessage = RND_ThirstLevel02ConsumeMessage else ThirstLevelMessage = RND_ThirstLevel02ConsumeMessageB endif elseif RND_ThirstPoints.GetValue() >= RND_ThirstLevel03.GetValue() && RND_ThirstPoints.GetValue() < RND_ThirstLevel04.GetValue() ThirstSpell = RND_ThirstSpell03 if RND_1stPersonMsg.GetValue() == 1 ThirstLevelMessage = RND_ThirstLevel03ConsumeMessage else ThirstLevelMessage = RND_ThirstLevel03ConsumeMessageB endif elseif RND_ThirstPoints.GetValue() >= RND_ThirstLevel04.GetValue() ThirstSpell = RND_ThirstSpell04 if RND_1stPersonMsg.GetValue() == 1 ThirstLevelMessage = RND_ThirstLevel04ConsumeMessage else ThirstLevelMessage = RND_ThirstLevel04ConsumeMessageB endif endif if PlayerRef.HasSpell(ThirstSpell) ThirstLevelMessage.Show() else RemoveThirstSpells() PlayerRef.AddSpell(ThirstSpell, false) ThirstLevelMessage.Show() endif endif EndFunction Bool Function IsDesperate() If PlayerRef.HasMagicEffect(RND_ThirstEffect04) || PlayerRef.HasMagicEffect(RND_HungerEffect05) Return true EndIf Return false EndFunction Function RemoveHungerSpells() PlayerRef.RemoveSpell(RND_HungerSpell00) PlayerRef.RemoveSpell(RND_HungerSpell01) PlayerRef.RemoveSpell(RND_HungerSpell02) PlayerRef.RemoveSpell(RND_HungerSpell03) PlayerRef.RemoveSpell(RND_HungerSpell04) PlayerRef.RemoveSpell(RND_HungerSpell05) EndFunction Function RemoveThirstSpells() PlayerRef.RemoveSpell(RND_ThirstSpell00) PlayerRef.RemoveSpell(RND_ThirstSpell01) PlayerRef.RemoveSpell(RND_ThirstSpell02) PlayerRef.RemoveSpell(RND_ThirstSpell03) PlayerRef.RemoveSpell(RND_ThirstSpell04) EndFunction EndState ; Empty State =============================================================================== Bool Function IsNeedsModActive() Return false EndFunction Function Eat(Int FoodPoints) EndFunction Function Drink(Int WaterPoints) EndFunction Bool Function IsDesperate() Return false EndFunction Function RemoveHungerSpells() EndFunction Function RemoveThirstSpells() EndFunction ; Vanilla Properties Actor Property PlayerRef Auto ; CLEAN UP =========================================================== ReferenceAlias RndPlayerAlias ; Rnd Properties MagicEffect Property RND_HungerEffect00 Auto Hidden MagicEffect Property RND_HungerEffect01 Auto Hidden MagicEffect Property RND_HungerEffect02 Auto Hidden MagicEffect Property RND_HungerEffect03 Auto Hidden MagicEffect Property RND_HungerEffect04 Auto Hidden MagicEffect Property RND_HungerEffect05 Auto Hidden MagicEffect Property RND_ThirstEffect00 Auto Hidden MagicEffect Property RND_ThirstEffect01 Auto Hidden MagicEffect Property RND_ThirstEffect02 Auto Hidden MagicEffect Property RND_ThirstEffect03 Auto Hidden MagicEffect Property RND_ThirstEffect04 Auto Hidden MagicEffect Property RND_SleepEffect00 Auto Hidden MagicEffect Property RND_SleepEffect01 Auto Hidden MagicEffect Property RND_SleepEffect02 Auto Hidden MagicEffect Property RND_SleepEffect03 Auto Hidden MagicEffect Property RND_SleepEffect04 Auto Hidden ; Food Properties GlobalVariable Property RND_HungerPoints Auto Hidden GlobalVariable Property RND_HungerPointsPerHour Auto Hidden GlobalVariable Property RND_HungerLastUpdateTimeStamp Auto Hidden GlobalVariable Property RND_AnimEat Auto Hidden GlobalVariable Property RND_1stPersonMsg Auto Hidden GlobalVariable Property RND_FoodPoints Auto Hidden ; *********** GlobalVariable Property RND_ForceSatiation Auto Hidden GlobalVariable Property RND_HungerLevel00 Auto Hidden GlobalVariable Property RND_HungerLevel01 Auto Hidden GlobalVariable Property RND_HungerLevel02 Auto Hidden GlobalVariable Property RND_HungerLevel03 Auto Hidden GlobalVariable Property RND_HungerLevel04 Auto Hidden GlobalVariable Property RND_HungerLevel05 Auto Hidden Spell Property RND_HungerSpell00 Auto Hidden Spell Property RND_HungerSpell01 Auto Hidden Spell Property RND_HungerSpell02 Auto Hidden Spell Property RND_HungerSpell03 Auto Hidden Spell Property RND_HungerSpell04 Auto Hidden Spell Property RND_HungerSpell05 Auto Hidden Message Property RND_HungerLevel00ConsumeMessage Auto Hidden Message Property RND_HungerLevel01ConsumeMessage Auto Hidden Message Property RND_HungerLevel02ConsumeMessage Auto Hidden Message Property RND_HungerLevel03ConsumeMessage Auto Hidden Message Property RND_HungerLevel04ConsumeMessage Auto Hidden Message Property RND_HungerLevel05ConsumeMessage Auto Hidden Message Property RND_HungerLevel00ConsumeMessageB Auto Hidden Message Property RND_HungerLevel01ConsumeMessageB Auto Hidden Message Property RND_HungerLevel02ConsumeMessageB Auto Hidden Message Property RND_HungerLevel03ConsumeMessageB Auto Hidden Message Property RND_HungerLevel04ConsumeMessageB Auto Hidden Message Property RND_HungerLevel05ConsumeMessageB Auto Hidden ; Drink Properties GlobalVariable Property RND_ThirstPoints Auto Hidden GlobalVariable Property RND_ThirstPointsPerHour Auto Hidden GlobalVariable Property RND_ThirstLastUpdateTimeStamp Auto Hidden GlobalVariable Property RND_AnimDrink Auto Hidden GlobalVariable Property RND_ThirstLevel00 Auto Hidden GlobalVariable Property RND_ThirstLevel01 Auto Hidden GlobalVariable Property RND_ThirstLevel02 Auto Hidden GlobalVariable Property RND_ThirstLevel03 Auto Hidden GlobalVariable Property RND_ThirstLevel04 Auto Hidden Spell Property RND_ThirstSpell00 Auto Hidden Spell Property RND_ThirstSpell01 Auto Hidden Spell Property RND_ThirstSpell02 Auto Hidden Spell Property RND_ThirstSpell03 Auto Hidden Spell Property RND_ThirstSpell04 Auto Hidden Message Property RND_ThirstLevel00ConsumeMessage Auto Hidden Message Property RND_ThirstLevel01ConsumeMessage Auto Hidden Message Property RND_ThirstLevel02ConsumeMessage Auto Hidden Message Property RND_ThirstLevel03ConsumeMessage Auto Hidden Message Property RND_ThirstLevel04ConsumeMessage Auto Hidden Message Property RND_ThirstLevel00ConsumeMessageB Auto Hidden Message Property RND_ThirstLevel01ConsumeMessageB Auto Hidden Message Property RND_ThirstLevel02ConsumeMessageB Auto Hidden Message Property RND_ThirstLevel03ConsumeMessageB Auto Hidden Message Property RND_ThirstLevel04ConsumeMessageB Auto Hidden
Dg75 Posted March 28, 2025 Author Posted March 28, 2025 (edited) 8 hours ago, VergilDMX said: Maybe something similar could be done in this mod Exactly what I'm trying to avoid ! Thats a lot of tracking of mods installed - and everything you see that tracking cannot possibly hope to account for all different needs mods out and their variants. And thats a script load the slow Game engine has constantly check every time you load a game - if Rnad mod found - has to run all those GetFormFromFile checks - its filling them into Property vars that that mod force controls hunger and thirst when I suppose cum is swallowed. Anf thats just script for rnad - how many needs mods are out their ? Possible , but I'd rather not as its beyond the scope for Domination. I just want whatever needs mod a user has installed to update itself when Player gets domed and Dom's mcm is enabled for hunger or thirst. - simple no checks - light weight - Fast - and it works ! The raw beef should not have been in your inventory - as Domination adds one item - consumes that item - as it should have left inventory. Probably something I did wrong in the script, and can be easily rectified. If it didn't trigger needs mod to update - it should as long as your needs mods knows that food. Its vanilla forms - I didnt change that so the needs mods should auto detect it being consumed. Further it wouldn't matter if Ineed or Rnad or Caco or whatever they should detect all vanilla foods. If they dont then I need find out why! The adjust position is implemented in the test. I tested it myself and it worked - somewhat ! By the time I got it adjusted the damn animation was over . Edited March 28, 2025 by Dg75
VergilDMX Posted March 28, 2025 Posted March 28, 2025 2 hours ago, Dg75 said: Exactly what I'm trying to avoid ! Thats a lot of tracking of mods installed - and everything you see that tracking cannot possibly hope to account for all different needs mods out and their variants. And thats a script load the slow Game engine has constantly check every time you load a game - if Rnad mod found - has to run all those GetFormFromFile checks - its filling them into Property vars that that mod force controls hunger and thirst when I suppose cum is swallowed. Anf thats just script for rnad - how many needs mods are out their ? Possible , but I'd rather not as its beyond the scope for Domination. I just want whatever needs mod a user has installed to update itself when Player gets domed and Dom's mcm is enabled for hunger or thirst. - simple no checks - light weight - Fast - and it works ! The raw beef should not have been in your inventory - as Domination adds one item - consumes that item - as it should have left inventory. Probably something I did wrong in the script, and can be easily rectified. If it didn't trigger needs mod to update - it should as long as your needs mods knows that food. Its vanilla forms - I didnt change that so the needs mods should auto detect it being consumed. Further it wouldn't matter if Ineed or Rnad or Caco or whatever they should detect all vanilla foods. If they dont then I need find out why! The adjust position is implemented in the test. I tested it myself and it worked - somewhat ! By the time I got it adjusted the damn animation was over . Alright, I tested with iNeed and it is working! I don't know why is not working with RND, maybe there is something wrong in my load order cuz I tried to eat this raw beef by itself, and it's not being recognized. The version of RND I'm using has a plugin that it should recognize any kind of food/drinks without patching. However, I noticed that only the hunger is working but not the thirst for the piss drinking.
Dg75 Posted March 28, 2025 Author Posted March 28, 2025 3 minutes ago, VergilDMX said: Alright, I tested with iNeed and it is working! I don't know why is not working with RND, maybe there is something wrong in my load order cuz I tried to eat this raw beef by itself, and it's not being recognized. The version of RND I'm using has a plugin that it should recognize any kind of food/drinks without patching. However, I noticed that only the hunger is working but not the thirst for the piss drinking. Did you adjust the Domination needs value. if testing in the test idle - mcm - it dont go off paf states because the mcm dont know what a paf state is it instead goes specificly off your mcm selection for needs. If 1 will implement pee and try to line up mouth to vagina, if set to two will only implement hunger and try to line mouth to anus. - or somewhat reasonably close I hope. In the scripts in Domination while in a skit - it goes off actual paf states - and mcm setting. if set 1 - it will never implement hunger - only thirst. if set 2 - will depend on paf state and will if pooping at all will line up mouth to anus - and apply hunger n thirst per paf state. 1
VergilDMX Posted March 28, 2025 Posted March 28, 2025 33 minutes ago, Dg75 said: Did you adjust the Domination needs value. if testing in the test idle - mcm - it dont go off paf states because the mcm dont know what a paf state is it instead goes specificly off your mcm selection for needs. If 1 will implement pee and try to line up mouth to vagina, if set to two will only implement hunger and try to line mouth to anus. - or somewhat reasonably close I hope. In the scripts in Domination while in a skit - it goes off actual paf states - and mcm setting. if set 1 - it will never implement hunger - only thirst. if set 2 - will depend on paf state and will if pooping at all will line up mouth to anus - and apply hunger n thirst per paf state. Alright, I will test that and let you know. I have solved the issue with RND, and it is working now. I placed all my RND plugins almost at the end of my load order and it recognized the vanilla food. The only issue now is that when the animation finishes, it consumes the vanilla food but it adds 3 raw beef steaks to my inventory that I think are added by CACO. I don't know why this is happening but I think I will stick to iNeed for now as I was before
VergilDMX Posted March 28, 2025 Posted March 28, 2025 Ok, so I tested setting the MCM to 1 for pee as u said and it worked as intended Regarding the animation adjustment, I understand that by pressing CTRL it will move the actor to the left, ALT forward and UP if both keys are pressed. However, nothing is happening, I've tried ticking and unticking the modifier option in the MCM, tried with ctrl, alt, shift from the left side of the keyboard and the right side and I don't see any change in the submissive actor.
Dg75 Posted March 29, 2025 Author Posted March 29, 2025 (edited) 2 hours ago, VergilDMX said: Ok, so I tested setting the MCM to 1 for pee as u said and it worked as intended Regarding the animation adjustment, I understand that by pressing CTRL it will move the actor to the left, ALT forward and UP if both keys are pressed. However, nothing is happening, I've tried ticking and unticking the modifier option in the MCM, tried with ctrl, alt, shift from the left side of the keyboard and the right side and I don't see any change in the submissive actor. The toggle in the mcm just sets weather its the left keys or right keys. it use Left side Alt/CTRL/Shift by default. so leave it disabled to use left side. You have to be pressing and holding one of the modifier keys as you press the Domination Action key. I'm fixing to load my game and I'll test it again. . edit: I tested again via test idle and mod skit - position adjusters worked for forward and left/right movement - the z up/down would try to move but didnt actually move the actor. Probably doing something wrong or z up an actor maybe don't work cuz gravity wont allow it ? IDk. It uses Event OnKeydown detected when use the main domination action key, and also if holding down any of the mod keys. In script it use function - sets position(x,y,z) ActorToMove is in lying down idle actually looking up - I have to assume the GetAngleZ is strictly a directional rotation of n/s/e/w the frwrd/back and L/R adjustments work fine the z dont work. If anyone know WTF I'm doing wrong pleas indulge ! Function AdjustPosition(Actor ActorToMove, Float _unit = 2.0, Int _directional = 0) if !ActorToMove Return endif Float _zAngle = ActorToMove.GetAngleZ() Float xPo = ActorToMove.GetPositionX() Float yPo = ActorToMove.GetPositionY() Float zPo = ActorToMove.GetPositionZ() if _directional == 0 ;forward and with shift unit is -val(Back) xPo += (_unit * Math.Sin(_zAngle)) yPo += (_unit * Math.Cos(_zAngle)) elseif _directional == 1 ;Left and with shift unit is -val(right) xPo += (_unit * Math.Sin(_zAngle + 90)) yPo += (_unit * Math.Cos(_zAngle + 90)) else zPo += _unit ; this one dont work - up/down endif ActorToMove.SetPosition(xPo, yPo, zPo) EndFunction Edited March 29, 2025 by Dg75
VergilDMX Posted March 29, 2025 Posted March 29, 2025 7 hours ago, Dg75 said: The toggle in the mcm just sets weather its the left keys or right keys. it use Left side Alt/CTRL/Shift by default. so leave it disabled to use left side. You have to be pressing and holding one of the modifier keys as you press the Domination Action key. I'm fixing to load my game and I'll test it again. . edit: I tested again via test idle and mod skit - position adjusters worked for forward and left/right movement - the z up/down would try to move but didnt actually move the actor. Probably doing something wrong or z up an actor maybe don't work cuz gravity wont allow it ? IDk. It uses Event OnKeydown detected when use the main domination action key, and also if holding down any of the mod keys. In script it use function - sets position(x,y,z) ActorToMove is in lying down idle actually looking up - I have to assume the GetAngleZ is strictly a directional rotation of n/s/e/w the frwrd/back and L/R adjustments work fine the z dont work. If anyone know WTF I'm doing wrong pleas indulge ! Function AdjustPosition(Actor ActorToMove, Float _unit = 2.0, Int _directional = 0) if !ActorToMove Return endif Float _zAngle = ActorToMove.GetAngleZ() Float xPo = ActorToMove.GetPositionX() Float yPo = ActorToMove.GetPositionY() Float zPo = ActorToMove.GetPositionZ() if _directional == 0 ;forward and with shift unit is -val(Back) xPo += (_unit * Math.Sin(_zAngle)) yPo += (_unit * Math.Cos(_zAngle)) elseif _directional == 1 ;Left and with shift unit is -val(right) xPo += (_unit * Math.Sin(_zAngle + 90)) yPo += (_unit * Math.Cos(_zAngle + 90)) else zPo += _unit ; this one dont work - up/down endif ActorToMove.SetPosition(xPo, yPo, zPo) EndFunction Oh I see, thanks for the info! I wasn't pressing the domination action key before, now it works. I noticed there is a fade out every time when I adjust position but I guess that's normal. 1
VergilDMX Posted April 6, 2025 Posted April 6, 2025 (edited) Regarding some ideas I suggested before, I have created these scat overlays for slave tats. It would be nice to apply them automatically after the scat eating skit and make the PC get dirty by listening to the mod "Dirt and blood" I made textures for the face and body. SlaveTats Scat.zip Edited April 6, 2025 by VergilDMX
Dg75 Posted April 7, 2025 Author Posted April 7, 2025 15 hours ago, VergilDMX said: Regarding some ideas I suggested before, I have created these scat overlays for slave tats. It would be nice to apply them automatically after the scat eating skit and make the PC get dirty by listening to the mod "Dirt and blood" I made textures for the face and body. SlaveTats Scat.zip 248.22 kB · 0 downloads Kool I'll take look
VergilDMX Posted April 8, 2025 Posted April 8, 2025 I made another overlay but for the golden shower/piss drinking that could be applied as well. I took the textures of the mod "Follow me for sex" as a base. SlaveTats Watersports.rar
Dg75 Posted April 9, 2025 Author Posted April 9, 2025 (edited) 3 hours ago, VergilDMX said: I made another overlay but for the golden shower/piss drinking that could be applied as well. I took the textures of the mod "Follow me for sex" as a base. SlaveTats Watersports.rar 240.25 kB · 0 downloads Just checking stuff out. above you mentioned: make the PC get dirty by listening to the mod "Dirt and blood" - just looking into Dirt and Blood , it just looks like it apply its overlay via spells and hit shaders - constant effects, or until cleaned. It does not appear to use Slave Tats in any way, Unlike Paf, use slave tats to apply its dirt. It would definitely probably easier to apply via spell than Slave tats. IDK ? either way I need to figure out a scheme to apply it and when to clean it off and tie it all into Domination scripts. Any ideas would be great. I mean I guess, get dirty and stay dirty until cleaned - this would require a cleaning integration, BISR or KIC or can just time it and once spell wears off the overlays should disappear. I think. . . Working with overlay is new to me so I have to figure out WTF I'm doing here. Just now getting to messing with this, I just finished building my own Equip mod - Fricking AH hotkeys broke and stopped working so I got teed off and built my own. Lol It works. . kinda of Edited April 9, 2025 by Dg75
VergilDMX Posted April 9, 2025 Posted April 9, 2025 8 hours ago, Dg75 said: Okay so I wiped up a quick test to view the textures you uploaded in game: Results are - Only the Scat_Face show up, the rest don't show. I just created a couple Effect Shader's to apply your textures, and not via slave tats. Here is my Scat test if anyone want to take a look at it. Maybe I did something wrong IDK, but the Scat Face looks good at least. I don't know squat about texturing, I managed to install gimp, but couldn't get over the scratching my ass part trying to figure out what to do with it. So any help here would be greatly appreciated. This is just an in game test to get a quick view at the Textures, To use this - install with Mod manager, then in game use console to Add a spell - like this: Open console and type < Help ScatSpell 4 > ; without the < > It should pop up an Id for the spell. Type in < Player.AddSpell ID > its an illusion spell, self cast, equip it and cast it. It will cycle between the four Textures, scatFace, UrinFace, ScatBody, UrinBody , with a 15 second wait in between. No animations or anything - its just a looksy at the textures. except for me only the first one ScatFace showed. I personally tried in reverse too and same result. You may want to prep your PC - undress and be clean of any other overlay before casting. When done dont save - exit and trash the test - it aint good to keep it. ScatTestEffect.7z 422.16 kB · 1 download I just made a quick test, made sure of removing all the slavetats applied on my PC, take a bath to remove all the dirty stains and even removed the tattoos applied through racemenu, but the spell doesn't seem to be working. I also placed the .esp almost at the end of my load order but it is not working. I cast the spell but I don't see any textures being applied. I don't know if perhaps I'm missing something. If you need any help to create or modify textures, I have photoshop skills, so I can help with that 👍
VergilDMX Posted April 9, 2025 Posted April 9, 2025 13 hours ago, Dg75 said: Just checking stuff out. above you mentioned: make the PC get dirty by listening to the mod "Dirt and blood" - just looking into Dirt and Blood , it just looks like it apply its overlay via spells and hit shaders - constant effects, or until cleaned. It does not appear to use Slave Tats in any way, Unlike Paf, use slave tats to apply its dirt. It would definitely probably easier to apply via spell than Slave tats. IDK ? either way I need to figure out a scheme to apply it and when to clean it off and tie it all into Domination scripts. Any ideas would be great. I mean I guess, get dirty and stay dirty until cleaned - this would require a cleaning integration, BISR or KIC or can just time it and once spell wears off the overlays should disappear. I think. . . Working with overlay is new to me so I have to figure out WTF I'm doing here. Just now getting to messing with this, I just finished building my own Equip mod - Fricking AH hotkeys broke and stopped working so I got teed off and built my own. Lol It works. . kinda of You're right. I got confused with this mod when actually PAF handles this dirty effect by using slavetats. But the idea it is basically the same, applying the scat/urine overlays after finishing a domination skit and apply the same debuffs that PAF applies.
Dg75 Posted April 9, 2025 Author Posted April 9, 2025 2 hours ago, VergilDMX said: I cast the spell but I don't see any textures being applied. I don't know if perhaps I'm missing something. Does it matter what the body type is ? What the main skin texture is ? I tried the test several times and every time same result, only Scat face showed. Strange wont show for you.
VergilDMX Posted April 11, 2025 Posted April 11, 2025 On 4/9/2025 at 6:00 PM, Dg75 said: Does it matter what the body type is ? What the main skin texture is ? I tried the test several times and every time same result, only Scat face showed. Strange wont show for you. I don't know what it could be tbh I'm testing with the modlist Nefaram
Dg75 Posted April 12, 2025 Author Posted April 12, 2025 17 hours ago, VergilDMX said: I don't know what it could be tbh I'm testing with the modlist Nefaram Well shit. It may be the effect shader records I made. I just used Dirt and blood as a template. And have the shader use your textures. The blend values may be off or something. The shader blend values effect how the shader renders. Id have to test some more or IDk hell ill wip up a slave tat script in a test and see if I get different results.
Dg75 Posted April 23, 2025 Author Posted April 23, 2025 (edited) On 4/8/2025 at 3:13 PM, VergilDMX said: I made another overlay but for the golden shower/piss drinking that could be applied as well. I took the textures of the mod "Follow me for sex" as a base. I uploaded new version 3.3.1 this has your golden shower textures, I finally got them to work. They are fantastic! I ended up remaking the poop dirt, credits sexlab cum. I just copied and recolored. Only issue, I noticed after Player got dressed they seemed to fade - the debuffs stuck, Don't know why overlay fade when getting dressed unless its something to do with 32 body clothing covering it up. It makes the dirt on face fade. I'll have to research the shader properties for Effect Shaders This version will require the new pfa update - 3.9.7 so cleaning works. I added a mod event to pfa Bathe function just for this. Edited April 23, 2025 by Dg75 1
VergilDMX Posted April 24, 2025 Posted April 24, 2025 16 hours ago, Dg75 said: I uploaded new version 3.3.1 this has your golden shower textures, I finally got them to work. They are fantastic! I ended up remaking the poop dirt, credits sexlab cum. I just copied and recolored. Only issue, I noticed after Player got dressed they seemed to fade - the debuffs stuck, Don't know why overlay fade when getting dressed unless its something to do with 32 body clothing covering it up. It makes the dirt on face fade. I'll have to research the shader properties for Effect Shaders This version will require the new pfa update - 3.9.7 so cleaning works. I added a mod event to pfa Bathe function just for this. That's amazing! great work! I just tested it and the debuffs work flawlessly as intended. However, for some reason, the overlays aren't being applied unfortunately. I don't know if this is cuz I'm using a custom race, but before I was using breton and had the same problem as well. This can be solved just by applying the textures manually for now through Slavetats. How are you applying the textures currently? I noticed that PAF just handles this by applying a texture through Slavetats when the PC gets dirty after defecating and the textures remain without issues until you clean them, so maybe by following the same approach could fix this issue of the fading textures or not appearing at all.
VergilDMX Posted April 24, 2025 Posted April 24, 2025 (edited) Btw, another suggestion based on the idea originally posted by the user @Johnnyone that would be amazing to see implemented, but probably for a new PFA addon. Spoiler The Human Toilet This idea is based on the Pee and Shit Mods. Peeing or shitting is now a normal thing for the player and maybe some NPCs. The thing is, doing it on properties is forbidden. But this would cost a lot of money for the people to build public toilets... So why not having a slave that would be your own moveable toilet! Changes: 1. In big towns are now some "public toilet slaves". 2. Some NPCs have personal toilets. 4. The player can use a public toilet, have an own personal toilet, become a public toilet or become a personal toilet. The slaves are naked and in bondage. They have a chastity belt with plugs, a plugable gag and the arms are tied up. When someone wants to use a toilet, they remove the plug, make their things and then putting the plug back in. They are also coverd in tattoos so everyone can clearly see who toilet is and who just a normal slave is. The player can turn his/her slave into a personal toilet. You can also just buy one from the town. How to end up as a toilet: 1. When the player commits a crime he becomes a public toilet. 2. Peeing or shitting in a town and not using a toilet is a crime. 3. Peeing or shitting on someones property makes you a toilet to the owner. 4. Other mods. 5. As a public toilet, the player can be bought by some random rich NPC (a poor person maybe saved alot of money to buy himself a toilet so the NPC doesn't have to be rich). 6. Taking it as a normal job (in big towns) to earn some money! But it is a dirty business where you could end up sold as a personal toilet! 7. Taking it as a normal job for someone who is rich and can affort a personal toilet. Gameplay: 1. As a public toilet, you are not allowed to leave! When you try to escape you get a high bounty. Maybe there are different work shifts. Which means you work like 8 hours per day and then you can do something else, but you have to be back at your boss before your shift starts again. I think maybe it could be boring to walk around for 8 hours just to be used as a toilet, so maybe additionally you have to do town business like cleaning the streets, working as supplier for food or letters (or things like that), helping town visitors where they can find things, feeding the animals and so on. At the end of your shift you have to empty your body. In every town is a place where the toilets can empty their body. 2. A toilet can be "full". Which means they body is full of pee and shit (like yellow and brown spots on the body) and their bellys are big. I don't know if NPCs can get "full" because it would cause alot of scripting i guess, but atleast they have the visuel effects. The player on the other hand has to go to the "toilet room". This is a small room in every town where the player can empy this body and clean himself. In this room is also the boss that takes of your bondage gear for that. When you take this as a normal job you also get paid from him. When you are a personal toilet, the master will tell you to go to the toilet room or bring it out to the woods. A person with a house maybe has his own toilet room. 3. As a personal toilet you have to follow your master everywhere he/she goes. Maybe you have to buy things, cook something, clean his/her house, taking care of his/her pets. When the master has a family you are then a family toilet (maybe also for their pets?). 4. Wanderes don't need a toilet because they can do it in the woods, but what when they visit a town and they don't want to use the public toilet? Maybe they can buy at the entrance a personal toilet for a day or so. 5. With other Mods: When the player becomes slave to a faction (like the forsworn or bandits) they become automatically the faction toilet. 6. When walking around with a follower, you are able to use the follower as a toilet and the follwer is able to use you as a toilet. Another good addition to this idea that I would like to suggest is that whereas you are working as human toilet, you are not allowed not consume other food/drinks than only shit and urine. So, this feature could also satisfy the hunger/thirst needs like this addon. Edited April 24, 2025 by VergilDMX
Dg75 Posted April 24, 2025 Author Posted April 24, 2025 10 hours ago, VergilDMX said: the overlays aren't being applied unfortunately. I don't know if this is cuz I'm using a custom race, but before I was using breton and had the same problem as well. This can be solved just by applying the textures manually for now through Slavetats. They show for me as intended, but as soon as player dresses the poop overlay disappears, your pee overlay seems to stick, but its very light and not as noticable. I applied same way sexlab applies cum effects - via spell with magiceffect that has EffectShaders. these are constant effects- they persists until removed. If I cannot figure how to make them stick or why its not working for you, then yes I will have to resort to slavetats like pee and fart. I was trying to avoid that, because theirs more script work and tracking involved - a lot more in comparison to just cast spell and be done. But while the scat is happening they do show flawlessly for me, just when PC get dressed - poof its gone. I'm using female Nord, I dont know but maybe race and body textures have much to do with it. Maybe slave tats handle it better IDK. Sexlab on the other hand use same method as I do and cum sticks even after dressing and undressing, so still something I'm missing here!
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