spicydoritos Posted June 25, 2023 Author Posted June 25, 2023 (edited) Version 1.04 is up! v 1.04 -Changed MCM cum timer settings from fixed durations to sliders. A setting of zero minutes means no timer (cum will remain until washed out or otherwise removed). -Added an MCM debug option to treat all NPCs as if they are whitelisted for facial headparts. Note that the vast majority of vanilla/unmodified NPCs still cannot have their headparts changed, and the result for them will be no facials at all. -Fixed MCM debug option “Re-Equip NPC's Cum Suit” to also re-equip facial armor item. I also updated the "Info For Modders" section to include lee3310's improved cum-cleaning integration code, and linked to the reference heads for anyone wanting to make their own headparts. Edited June 25, 2023 by spicydoritos 9
spicydoritos Posted July 4, 2023 Author Posted July 4, 2023 1 hour ago, GamerGoose said: Can you add support for OCBP/OCBPC? The included versions are already compatible with their associated body. Be sure to install the correct version of OCBP for your body. Also, if you've installed CBBE 3BBB version instead of regular CBBE, you will have to convert the semen suit in Outfit Studio.
Avahashija Posted July 29, 2023 Posted July 29, 2023 (edited) Hi There, first of all - NICE Mod - Thanks for it. Now the question. I am using "Unique Player". So my Mesh from the player and my standart NPC's is different. Is it possible to have a NPC cum mesh and a Player cum mesh? Or how can i realize it by myself ? And another question. I am using for my main Actor the Fusion Girl Body - for my self made Companion a Atomic Beauty Body all with ZeX Skeleton 6.0 Will the cum on my Companion with different Bodytype correctly alligned? Thanks for answer Ava Edited July 29, 2023 by Avahashija
vaultbait Posted July 29, 2023 Posted July 29, 2023 4 hours ago, Avahashija said: Hi There, first of all - NICE Mod - Thanks for it. Now the question. I am using "Unique Player". So my Mesh from the player and my standart NPC's is different. Is it possible to have a NPC cum mesh and a Player cum mesh? Or how can i realize it by myself ? And another question. I am using for my main Actor the Fusion Girl Body - for my self made Companion a Atomic Beauty Body all with ZeX Skeleton 6.0 Will the cum on my Companion with different Bodytype correctly alligned? Thanks for answer Ava I don't use any "unique body" mods (I just use FG for all females and BT for all males), but the short answer is that this is simply a piece of clothing like any other. However you build outfits in BodySlide to conform to multiple bodies for your different actors is how you would build the included "cumsuit" from this mod.
spicydoritos Posted July 29, 2023 Author Posted July 29, 2023 4 hours ago, Avahashija said: Now the question. I am using "Unique Player". So my Mesh from the player and my standart NPC's is different. Is it possible to have a NPC cum mesh and a Player cum mesh? Or how can i realize it by myself ? Within a given armor record, it's only possible to set different mesh paths for male and female versions. So to accomplish what you want would require some script changes. It's feasible but kinda depends on your comfort level with papyrus. On a related note, you don't need Unique Player to have a different body look. You can build everyone to the same preset, with morphs, and then alter your own body in game with Looksmenu. All the clothes and such will morph to fit automatically. 4 hours ago, Avahashija said: And another question. I am using for my main Actor the Fusion Girl Body - for my self made Companion a Atomic Beauty Body all with ZeX Skeleton 6.0 Will the cum on my Companion with different Bodytype correctly alligned? Definitely not. If the body shapes are similar enough it might still look alright but it will not conform correctly.
spicydoritos Posted August 2, 2023 Author Posted August 2, 2023 (edited) 45 minutes ago, leesjig said: When pc gets these glowing cum shots from mutant Reveal hidden contents ...there's bout a 20/80 % chance it won't go away. 20% chance it wont reset from timer then just stays there on her body forever and 80% chance it does reset and goes away just fine. I have to reload an old save before the aaf scene when mutant gives her the cum shot. Any idea why this is happening. In the mcm debug, I tried the various ways to get rid of it. I just end up having to reload a old save... Your picture is too blurry to be completely sure, but that looks more like the overlays from Cum Overlays than CM's cum meshes. Overlays have a habit of sticking around forever if you log out before the timer expires. You can still remove them directly from Looksmenu. Open console, type slm 14, navigate to body overlays and clear them out. Or shower them away with the "Wash Out That Cum" mod. If it's actually the 3D meshes from this mod, just open the debug menu and click "Clear Cum From Player". Edited August 2, 2023 by spicydoritos
vaultbait Posted August 2, 2023 Posted August 2, 2023 7 minutes ago, leesjig said: Ok Thanks, yep its more into the skin mesh now that you said that. The 3d meshes you are saying have been reseting ok. Ok ill give those commands a try next, and I'll give more time for them to reset... I'm trying to get her to slow down, but she's loving all the mutty cocks. I think the point was, if you're using Commonwealth Moisturizer, you should uninstall (Scripted Cum Overlays, Politro's Patches) or disable (Ulfberto's UAP, Indarello's Patch for Animations) any cum overlay systems you may also have installed. This mod is intended to replace overlay-based cum solutions.
spicydoritos Posted August 2, 2023 Author Posted August 2, 2023 16 minutes ago, vaultbait said: I think the point was, if you're using Commonwealth Moisturizer, you should uninstall (Scripted Cum Overlays, Politro's Patches) or disable (Ulfberto's UAP, Indarello's Patch for Animations) any cum overlay systems you may also have installed. This mod is intended to replace overlay-based cum solutions. Not necessarily true. There's no conflict with mods that apply overlays via script or xml. I personally run Commonwealth Moisturizer together with Cum Overlays because I like the way they look together (also it helps satisfy the bukkake itch >_>). There are specific advantages to the overlays. In particular, they're body agnostic and don't require fitting in bodyslide. The duration timer just isn't very robust and Looksmenu can be finicky sometimes. 1
vaultbait Posted August 2, 2023 Posted August 2, 2023 (edited) 1 hour ago, spicydoritos said: Not necessarily true. There's no conflict with mods that apply overlays via script or xml. I personally run Commonwealth Moisturizer together with Cum Overlays because I like the way they look together (also it helps satisfy the bukkake itch >_>). There are specific advantages to the overlays. In particular, they're body agnostic and don't require fitting in bodyslide. The duration timer just isn't very robust and Looksmenu can be finicky sometimes. Fair enough, I agree they don't conflict directly. I personally see the CM implementation as superior in many ways (especially because it also supports dynamic facials). I didn't consider using CM and overlays together mainly because of the longstanding bugs with the latter approach, so considered CM as a newer replacement/alternative for them instead. Edited August 2, 2023 by vaultbait
spicydoritos Posted August 2, 2023 Author Posted August 2, 2023 1 hour ago, vaultbait said: Fair enough, I agree they don't conflict directly. I personally see the CM implementation as superior in many ways (especially because it also supports dynamic facials). I didn't consider using CM and overlays together mainly because of the longstanding bugs with the latter approach, so considered CM as a newer replacement/alternative for them instead. Oh sure, don't get me wrong. If I didn't think there were advantages to the mesh implementation, I'd never have gone to all the trouble. I just don't want people to get the idea that running simultaneous overlays is technically problematic.
ookkerpak Posted August 3, 2023 Posted August 3, 2023 Is it possible to make this kind of moisturization happen during animations? Drooling, sweating, oozing juices etc?
spicydoritos Posted August 3, 2023 Author Posted August 3, 2023 2 hours ago, ookkerpak said: Is it possible to make this kind of moisturization happen during animations? Drooling, sweating, oozing juices etc? With the right art assets, I don't see why not. It wouldn't be much different from equipping a strap-on. You could look into the "Cum_leak" action that Indarello uses in his xml. It's also possible to make an armor item with an animated texture; this one is a good nsfw example. 1
ookkerpak Posted August 3, 2023 Posted August 3, 2023 3 hours ago, spicydoritos said: With the right art assets, I don't see why not. It wouldn't be much different from equipping a strap-on. You could look into the "Cum_leak" action that Indarello uses in his xml. It's also possible to make an armor item with an animated texture; this one is a good nsfw example. Um, now I feel my comment sort of backfired? I was actually hoping that you would take my comment as an inspiration for adding features to CM. That kind of modding is something above my skills. I understand that it's possible via xml, but I think it would be better if the mod recognized the position from tags or something and then do it's thing. Without editing a shitload of xml's. Which is what I was guessing CM already does.
lee3310 Posted August 8, 2023 Posted August 8, 2023 Is it possible to add some delay/padding to the removal function so that the cum meshes don't disappear all at once when you take a shower ? to simulate washing... (similar to what cum overlays does). 1
spicydoritos Posted August 8, 2023 Author Posted August 8, 2023 41 minutes ago, lee3310 said: Is it possible to add some delay/padding to the removal function so that the cum meshes don't disappear all at once when you take a shower ? to simulate washing... (similar to what cum overlays does). All things are possible, but some of them are more hassle than they're worth to me. ? And if I'm being honest, I'm quite torn on this concept. Headparts could see this effect with one additional line of code. Body and head armor would need more work. Armor items also need to be unequipped and re-equipped before the omod change is visible. So you'll hear the "clothing sound" a bunch of times in a row, which I don't love. I also must consider the fact that my cleaning function is an API, and that there are good cases for instant removal. A cleansing wipe should remove all cum at once. Activating a wipe and then waiting 10 seconds for cum to slowly disappear would look strange. I could resolve this conflict by adding a bool parameter that defaults to either slow or instant removal. But then no matter which I choose as default, somebody needs to revise and recompile their code (self included... my BYOP and CWSS patches call my cleaning function too).
JB. Posted August 8, 2023 Posted August 8, 2023 (edited) @spicydoritos If it is not too much inconvenience, could I ask you for an api to be able to apply the cum mesh to a specific character, of a specific color and specific quantity? In case someone thinks of using that function for something outside of AAF.? Edited August 8, 2023 by JB.
lee3310 Posted August 8, 2023 Posted August 8, 2023 (edited) 49 minutes ago, spicydoritos said: All things are possible, but some of them are more hassle than they're worth to me. ? And if I'm being honest, I'm quite torn on this concept. Headparts could see this effect with one additional line of code. Body and head armor would need more work. Armor items also need to be unequipped and re-equipped before the omod change is visible. So you'll hear the "clothing sound" a bunch of times in a row, which I don't love. I also must consider the fact that my cleaning function is an API, and that there are good cases for instant removal. A cleansing wipe should remove all cum at once. Activating a wipe and then waiting 10 seconds for cum to slowly disappear would look strange. I could resolve this conflict by adding a bool parameter that defaults to either slow or instant removal. But then no matter which I choose as default, somebody needs to revise and recompile their code (self included... my BYOP and CWSS patches call my cleaning function too). I was thinking of leaving the current function(s) alone and add a second one with delay (or use a state) but now that you mentioned it, i can't remember if "abSilent = false" parameter will also mute the sound or just disable msg. I will try to introduce the padding myself on my version (eventually, cause it's not really a problem when you use this mod along with cum overlays) and see how it goes. If the result is satisfactory, i'll send you the script and you decide if it's worth adding or not ?. Edited August 8, 2023 by lee3310 1
spicydoritos Posted August 8, 2023 Author Posted August 8, 2023 29 minutes ago, JB. said: @spicydoritos If it is not too much inconvenience, could I ask you for an api to be able to apply the cum mesh to a specific character, of a specific color and specific quantity? In case someone thinks of using that function for something outside of AAF.? For your purposes, would it be sufficient to call my main applicator function a few times? Maybe put it in a While loop until you hit your desired numbers. It's not an API as such but I can classify it that way. Spoiler ApplyRandCumAtLocations(actor akActor, bool AddFront, bool AddOral, bool AddRear, int SemenColor) ; SemenColor: 0 = white, 1 = blue, 2 = green, 3 = none Or do you need a function that works differently in some fashion?
JB. Posted August 8, 2023 Posted August 8, 2023 41 minutes ago, spicydoritos said: For your purposes, would it be sufficient to call my main applicator function a few times? Maybe put it in a While loop until you hit your desired numbers. It's not an API as such but I can classify it that way. Hide contents ApplyRandCumAtLocations(actor akActor, bool AddFront, bool AddOral, bool AddRear, int SemenColor) ; SemenColor: 0 = white, 1 = blue, 2 = green, 3 = none Or do you need a function that works differently in some fashion? Nice. This will work for me, thank you. 1
requiredname65 Posted August 8, 2023 Posted August 8, 2023 (edited) 3 hours ago, spicydoritos said: Headparts could see this effect with one additional line of code. Body and head armor would need more work. Armor items also need to be unequipped and re-equipped before the omod change is visible. So you'll hear the "clothing sound" a bunch of times in a row, which I don't love. I also must consider the fact that my cleaning function is an API, and that there are good cases for instant removal. A cleansing wipe should remove all cum at once. Activating a wipe and then waiting 10 seconds for cum to slowly disappear would look strange. I could resolve this conflict by adding a bool parameter that defaults to either slow or instant removal. But then no matter which I choose as default, somebody needs to revise and recompile their code (self included... my BYOP and CWSS patches call my cleaning function too). I agree with Lee3310. API should remain stable when possible. Adding these solved the re-equipping sounds for me. Atleast I haven't heard anything while playing with refreshing cumsuits and/or using debug commands. Worth a try? I would take this opportunity to request a feature where mods could request/mark certain scenes based on meta to skip handling moisturizing. For example when male ejaculates deep into others throat, there shouldn't be a facial, or when he is wearing a condom. I've modificed CMkz_EventHandlerScript like this to do it but I would like a official way to do this. Event AAF:AAF_API.OnSceneEnd(AAF:AAF_API akSender, Var[] akArgs) If MCM.GetModSettingBool(CMkz, "bMCMMasterSwitch:Globals") == false DTrace("Master switch is off, skipping all OnSceneEnd actions.") Return EndIf int statuscheck = akArgs[0] as int if (statuscheck == 0) DTrace("Running OnSceneEnd check") Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[] String[] tags = Utility.VarToVarArray(akArgs[3]) as String[] String[] metas = LL_FourPlay.StringSplit(akArgs[4] as String) DTrace("Animation playing on stop was " + akArgs[2] as String) DTrace("Animation had these tags: " + tags) DTrace("Scene had these meta tags: " + metas) ; check for solo animation If actors.length == 1 DTrace("Solo animation, skipping further checks.") Return EndIf int i = 0 ; check for blacklisted tags and meta strings While i < BlacklistedTags.length If metas.Find(BlacklistedTags[i] >= 0) DTrace("Animation has blacklisted meta " + BlacklistedTags[i] + ", skipping all PostAAF functions.") Return EndIf if tags.Find(BlacklistedTags[i]) >= 0 DTrace("Animation has blacklisted tag " + BlacklistedTags[i] + ", skipping all PostAAF functions.") Return EndIf i += 1 EndWhile ... EndEvent ; Add a tag into the blacklist, intended for 3rd-party mods that want to prevent cum stains ; Adds a specific tag only once. This is here for that reason and mods could just get the property and modify it by itself Function AddTagToBlacklist(String tag) ; we shouldn't add a tag twice into this list If !HasTagInBlacklist(tag) BlacklistedTags.Add(tag) DTrace("Added tag " + tag + " into BlacklistedTags Array.") EndIf EndFunction ; iterate blacklist backwards and remove all occurances of tag found Function RemoveTagFromBlacklist(String tag) Int cursor = BlacklistedTags.Length - 1 While cursor >= 0 cursor = BlacklistedTags.RFind(tag, cursor) If cursor >= 0 DTrace("Removing found tag " + tag + " at position " + cursor) BlacklistedTags.Remove(cursor) cursor -= 1 EndIf EndWhile EndFunction Bool Function HasTagInBlacklist(String tag) Return BlacklistedTags.Find(tag) >= 0 EndFunction Edited August 8, 2023 by requiredname65 1
spicydoritos Posted August 8, 2023 Author Posted August 8, 2023 48 minutes ago, requiredname65 said: Adding these solved the re-equipping sounds for me. Atleast I haven't heard anything while playing with refreshing cumsuits and/or using debug commands. Worth a try? Are those sound files part of the base game? If so, I will investigate this avenue immediately. 1 hour ago, requiredname65 said: I would take this opportunity to request a feature where mods could request/mark certain scenes based on meta to skip handling moisturizing. I can add a check for some kind of blacklist meta(s). That part is no big deal with minimal performance impact. My reservation is that it seems like a very niche case, that also requires the author to care about this niche case. The author then needs to have enough information about the animation to send the blacklist meta and then implement it for the sake of CM alone. If all of the above doesn't happen, you, the end user, will still be making your own patches regardless. Usually a mod author has no way to know if an oral animation finishes in the mouth or not. Maybe Hardship has this kind of fine control? But that mod is no longer updated as far as I know. Which mods use condoms explicitly? Hardship again? FPE/FPEr?
requiredname65 Posted August 8, 2023 Posted August 8, 2023 (edited) 1 hour ago, spicydoritos said: Are those sound files part of the base game? If so, I will investigate this avenue immediately. I can add a check for some kind of blacklist meta(s). That part is no big deal with minimal performance impact. My reservation is that it seems like a very niche case, that also requires the author to care about this niche case. The author then needs to have enough information about the animation to send the blacklist meta and then implement it for the sake of CM alone. If all of the above doesn't happen, you, the end user, will still be making your own patches regardless. Usually a mod author has no way to know if an oral animation finishes in the mouth or not. Maybe Hardship has this kind of fine control? But that mod is no longer updated as far as I know. Which mods use condoms explicitly? Hardship again? FPE/FPEr? Those are part of the base game. It's just a pair of sound descriptors that have static attenuation cranked up to 100. I'm the co-author of TSEX (including the next version of Hardship) and it has this kind of control. Every scene started by TSEX is tagged as such using meta string and I'm keeping track internally where to place those cumstains (if any). If done by meta string , it wouldn't interfere with other mods. Current public version has a basic overlay based system, which is replaced with this mod in dev version. Indeed, this is a niche case but I think this is preferable to toggling bMCMMasterSwitch. FPE is one of those mods that could use a feature like this but dunno if anyone else (other than me) cares about this enough. Might be easier for future compatability if meta tag to look for is defined in your lib script and consuming mods opt-into this (consider making a API method for ApplyRandCumForPosition) by fetching this value with GetPropertyValue or a API function and appending it to the meta. ; in file CMkz:CMkz_LibScript String Property SkipThisScene = "CMkz_SkipThisScene" AutoReadOnly ; in file CMkz:CMkz_EventHandlerScript Event AAF:AAF_API.OnSceneEnd(AAF:AAF_API akSender, Var[] akArgs) ... int statuscheck = akArgs[0] as int if (statuscheck == 0) DTrace("Running OnSceneEnd check") Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[] String[] tags = Utility.VarToVarArray(akArgs[3]) as String[] String[] metas = LL_FourPlay.StringSplit(akArgs[4] as String) DTrace("Animation playing on stop was " + akArgs[2] as String) DTrace("Animation had these tags: " + tags) DTrace("Scene had these meta tags: " + metas) ... If metas.Find(CMkzLibScript.SkipThisScene) DTrace("Scene was marked as SkipThisScene, skipping all POSTAAF functions.") Return EndIf ... check tags and the rest here ... EndEvent Edited August 8, 2023 by requiredname65 1
spicydoritos Posted August 8, 2023 Author Posted August 8, 2023 1 hour ago, requiredname65 said: Those are part of the base game. It's just a pair of sound descriptors that have static attenuation cranked up to 100. I'm the co-author of TSEX (including the next version of Hardship) and it has this kind of control. Every scene started by TSEX is tagged as such using meta string and I'm keeping track internally where to place those cumstains (if any). If done by meta string , it wouldn't interfere with other mods. Current public version has a basic overlay based system, which is replaced with this mod in dev version. Indeed, this is a niche case but I think this is preferable to toggling bMCMMasterSwitch. FPE is one of those mods that could use a feature like this but dunno if anyone else (other than me) cares about this enough. Might be easier for future compatability if meta tag to look for is defined in your lib script and consuming mods opt-into this (consider making a API method for ApplyRandCumForPosition) by fetching this value with GetPropertyValue or a API function and appending it to the meta. ; in file CMkz:CMkz_LibScript String Property SkipThisScene = "CMkz_SkipThisScene" AutoReadOnly ; in file CMkz:CMkz_EventHandlerScript Event AAF:AAF_API.OnSceneEnd(AAF:AAF_API akSender, Var[] akArgs) ... int statuscheck = akArgs[0] as int if (statuscheck == 0) DTrace("Running OnSceneEnd check") Actor[] actors = Utility.VarToVarArray(akArgs[1]) as Actor[] String[] tags = Utility.VarToVarArray(akArgs[3]) as String[] String[] metas = LL_FourPlay.StringSplit(akArgs[4] as String) DTrace("Animation playing on stop was " + akArgs[2] as String) DTrace("Animation had these tags: " + tags) DTrace("Scene had these meta tags: " + metas) ... If metas.Find(CMkzLibScript.SkipThisScene) DTrace("Scene was marked as SkipThisScene, skipping all POSTAAF functions.") Return EndIf ... check tags and the rest here ... EndEvent Okay no problem, I can add something like that in a future update. It's pretty light lifting and sounds like you have an explicit use-case for it. 2
lee3310 Posted August 9, 2023 Posted August 9, 2023 5 hours ago, requiredname65 said: FPE is one of those mods that could use a feature like this but dunno if anyone else (other than me) cares about this enough. I care too i just forgot to ask, one of the first thing i made is add a check for FPE condom in "Cum Overlays". For the deep Throats, that's hard to handle if the scene is called by a random mod (without custom tag in xml) so adding a check meta in CM itself is a good idea. @spicydoritos so you don't have to look for the condom ID: If Game.IsPluginInstalled("FP_FamilyPlanningEnhanced.esp") FPFP_Condom = Game.GetFormFromFile(0x000F9D,"FP_FamilyPlanningEnhanced.esp") as Armor Endif
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