legion army Posted March 30, 2025 Posted March 30, 2025 And I have a question about bugs of attach items to belts Spoiler Since I use a lot of mods and recently encountered this problem, I don't know where the problem comes from or which mod it is related to I would be grateful if anyone knows how to fix it.
Venusm4 Posted April 1, 2025 Posted April 1, 2025 On 3/30/2025 at 7:38 PM, legion army said: And I have a question about bugs of attach items to belts Reveal hidden contents Since I use a lot of mods and recently encountered this problem, I don't know where the problem comes from or which mod it is related to I would be grateful if anyone knows how to fix it. It might be something you're wearing. Try taking off things like your shoes to see if they're causing a problem. Go through each part step by step to rule things out.
legion army Posted April 2, 2025 Posted April 2, 2025 On 4/1/2025 at 8:49 AM, Venusm4 said: It might be something you're wearing. Try taking off things like your shoes to see if they're causing a problem. Go through each part step by step to rule things out. Yes I tried it but the problem is not related to wearing or body mod Now that I think about it, I encountered this problem when I installed the new version of Bandits mod, since the bandits have this bug too but before the new version, there was no such problem! Are you also using the latest version of Bandits mod?
dsfsffsd Posted April 5, 2025 Posted April 5, 2025 (edited) On 3/27/2025 at 3:12 PM, BlaBla012345 said: Thanks for the clarification. The idea behind bukkake seems simple, but it turns out to be almost impossible to implement. I ran into the hardcode problem when I wanted to display a character model with bones in addition to the original model (to add bones for the penis, breasts, butt, etc.). When the game uses hardcoded functions or parts, it's impossible to change them. I know something about it : I spent two weeks trying to find a workaround, without success... The invisibility idea seems good in theory, but... I'm afraid our character will also be invisible to our own eyes (which ruins the whole point). Furthermore, I'm afraid that making the player invisible will cause the animation to glitch if this invisibility occurs during the act. I didn't know you were a coder, otherwise I would have mentioned you in my call for help. It was with great joy that I read that you had partially managed to port the mod to the B42. If I may : take your time and wait for a new version of the game (they've been coming out regularly lately) that will fix this model invisibility issue. Perhaps it's not necessary to bother finding a way to 'fix' this, while the B42 is still at a very unstable stage. When the B42 is released in a stable version, that will be the time to see if ZomboWin can be fully compatible with it. One last thing : I believe the Grapple Tech animation software won't be available to the public until the stable release of the B42... can you confirm this ? I've decided to redo the current animations for the B41; I hope I don't have to do everything again for the B42... 🤔 instead of using human visuals why not implement it as a makeup item? Whenever you want the makeup applied to the character, just create it like this: local item = InventoryItemFactory.CreateItem("Base.MakeupItem") player:getInventory():AddItem(item) player:setWornItem(item:getBodyLocation(), item) Of course replace the "Base.MakeupItem" string with whatever the actual makeup item is Edited April 5, 2025 by dsfsffsd 1
shadowwolf10125 Posted April 5, 2025 Posted April 5, 2025 Thanks for the extra animations! You wouldn't happen to have the base Ada BJ pic/animation in the OP too, would you?
BlaBla012345 Posted April 6, 2025 Author Posted April 6, 2025 On 3/28/2025 at 12:48 AM, Timerz said: As for the animations, It will depend on how the animation system of the mod will work with Grapple. You probably won't need to redo things much, just set some short animation loops here and there, and it's done. Worst case scenario, you will need to add even MORE animations. I'm quite looking forward to if I can implement a better animation system with stages, transitions, and all the good stuff in the far future. But seeing how ZomboWin is handling that... I guess it would be better to just start over from scratch. Given the unstable state of the B42 and the information you've given me here, it seems to me that continuing work on the B41 won't be wasted time. So I'm currently redoing the animations. These new versions of the animations will be very long (over 1 minute) and always in a single 'block' since the stage system isn't yet usable. If you can ever make the stage system usable, then I could cut the animations and add variations in the central part. Explanation : Start_Animation (always the same version) Middle_Animation_Version_1 End_Animation (always the same version) Or we could see Start_Animation (always the same version) Middle_Animation_Version_2 End_Animation (always the same version) Etc... So it would be a plus to have a functional stage system. But from what you're saying, we'll have to rewrite almost all the Lua code... So I have a possible alternative : Just as I'm creating alternative versions of the animations with different voice tones, I could create alternative versions with variations of the animation itself. It's not happening right away, but it's a possibility in case it's impossible to have a functional stage system. Anyway, thanks for your help. On 4/2/2025 at 9:41 AM, legion army said: Yes I tried it but the problem is not related to wearing or body mod Now that I think about it, I encountered this problem when I installed the new version of Bandits mod, since the bandits have this bug too but before the new version, there was no such problem! Are you also using the latest version of Bandits mod? Unfortunately, I can't help here; I don't have this problem myself. It must be a conflict with something other than my 'Lewd Model' mod or the Bandit mod. I think I fixed an annoyance during animations related to the fact that when our character has a weapon in hand when being defeated, our character keeps that weapon in hand during the animation. This creates strange situations where we see the weapon in hand pass through the protagonists' bodies during their sexual act... On 4/5/2025 at 7:30 AM, dsfsffsd said: instead of using human visuals why not implement it as a makeup item? Whenever you want the makeup applied to the character, just create it like this: local item = InventoryItemFactory.CreateItem("Base.MakeupItem") player:getInventory():AddItem(item) player:setWornItem(item:getBodyLocation(), item) Of course replace the "Base.MakeupItem" string with whatever the actual makeup item is Wow! That's a brilliant idea... one I should have come up with myself. For a first post on this thread, you're going strong ! 🤩 I'm not a programmer, but I'm trying to implement this code in the Lua files that plays the sounds during the animation. I changed "Base.MakeupItem" to "Base.MakeUp_Bukkake" and created a MakeUp_Bukkake.png file in media/textures/Body/MakeUp/ I then created a file in media/scripts/ module Base { item MakeUp_Bukkake { DisplayName = MakeUp Bukkake, DisplayCategory = Appearance, Type = Clothing, ClothingItem = MakeUp_Bukkake, BodyLocation = Head, } } And finally, I changed the line player:setWornItem(item:getBodyLocation(), item) to player:setWornItem(item:getBodyLocation("Head"), item) Do you think this will work ? Do I need to create a MakeUp_Bukkake.xml file in media/clothing/clothingitems/ Do I need to create a MakeUp_Definitions.lua file in media/lua/shared/Definitions/ Do I need to create a MakeUp_BodyLocations.lua file in media/lua/shared/NPCs/ Do I need anything else ? Thanks in advance for your reply. 💗 8 hours ago, shadowwolf10125 said: Thanks for the extra animations! You wouldn't happen to have the base Ada BJ pic/animation in the OP too, would you? Are you asking if I've created an animation like the one of Ada lying on Leon in my mod's cover image ? If so : not yet, but it's a possibility. 4
BlaBla012345 Posted April 6, 2025 Author Posted April 6, 2025 Well, I wrote this using an AI... I don't have time to test it yet this weekend, but I'll post it here in case a real coder reads it. Let me know if it works. 🤔 This first Lua code is used to add a makeup item to the player's inventory and apply it to their face to simulate a facial ejaculation. (Note: the first function is a sound to play during the animation. The code for the bukkake is added later, just like the code adding a pool of sperm to the ground : see my post on the Cum.lua file.) return function(action, parameter) action.character:playSound("ZomboLewdSFXVomitFemale") end -- Function to add the item to the player's inventory and equip it local function addItemAndEquip() -- Get the player (assumes single-player or first player in multiplayer) local player = getPlayer() -- Get the current player -- Create the custom objet local item = InventoryItemFactory.CreateItem("Base.MakeUp_Bukkake") -- Add the custom item to the player's inventory player:getInventory():AddItem(item) -- Check if the item was successfully added if item then print("Item 'Base.MakeUp_Bukkake' successfully added to the player's inventory!") -- Equip the item on the player's head player:setWornItem(item:getBodyLocation("Head"), item) print("Item 'Base.MakeUp_Bukkake' equipped on the player's head!") else print("Failed to add 'Base.MakeUp_Bukkake' to the player's inventory.") end end This second Lua code is used to make the player invisible during sex so that other zombies 'forget' the player's presence and start moving away. (Note 1: The first function is a sound to play during the animation.) (Note 2: It's better to make the player invisible so the zombies 'forget' the player's presence and start moving away, rather than making the player invincible as suggested in a previous post.) return function(action, parameter) action.character:playSound("ZomboLewdSFXBackground") end local player = getPlayer() -- Get the current player -- Function to set player visibility function SetPlayerVisibility(player, isVisible) if isVisible then player:setGhostMode(false) -- Make the player visible else player:setGhostMode(true) -- Make the player invisible end end local durationInMinutes = 1 -- Set the duration in minutes: Base = 1 minute -- Function to make the player invisible for a specific duration function MakePlayerInvisibleForDuration(player, durationInMinutes) -- Make the player invisible SetPlayerVisibility(player, false) print("Player is now invisible.") -- Schedule a timer to revert visibility after the duration: Base * 2 = 2 minutes local timer = Timer.new() timer:Start(durationInMinutes * 2, function() SetPlayerVisibility(player, true) print("Player is now visible again.") end) end Thank you for any help you can give me 💗 🙏 1
dsfsffsd Posted April 7, 2025 Posted April 7, 2025 (edited) @BlaBla012345Using AI is not very useful for niche coding like modding for Project Zomboid. Regarding the makeup, I would recommend looking at a mod like this: https://steamcommunity.com/sharedfiles/filedetails/?id=3315365342. You will need all the things you've listed above to have the makeup work correctly. Assigning it to the head location will cause issues, as that's used for actual clothing items. Again I would recommend looking at the workshop mod I posted above and create a new body location specifically for the texture. player:setWornItem(item:getBodyLocation("Head"), item) adding "Head" isn't needed, it will get the body location you provide from the script file, and may throw errors since getBodyLocation does not take any parameters. The functions you made for applying both the makeup texture and invisiblity won't work. Anything after the "return" statement is ignored. Zombowin seems to have an AnimationStage system in ZomboWin/ActionStageEvents/ZomobWinAnimationHandler.lua local AnimationHandler = {EventMarkerModules = {}, ActionEvents = {Perform = {}, WaitToStart = {}, Start = {}, Stop = {}, Update = {}}} And its used in ZomboWin/ActionStageEvents/ApplyBasicTraits.lua I would use that system instead, the code would be in its own file and would look something like this: local ZomboWin = require("ZomboWin/ZomboWin"); local ActionEvents = ZomboWin.AnimationHandler.ActionEvents; local function applyInvisiblity(action) local player = action.character player:setGhostMode(true) end local function removeInvisiblity(action) local player = action.character player:setGhostMode(false) end local function applyMakeup(action) local player = action.character local animation = action.animation local item = InventoryItemFactory.CreateItem("Base.MakeUp_Bukkake") player:getInventory():AddItem(item) player:setWornItem(item:getBodyLocation(), item) end table.insert(ActionEvents.Start, applyInvisiblity) table.insert(ActionEvents.Stop, removeInvisiblity) table.insert(ActionEvents.Perform, removeInvisiblity) table.insert(ActionEvents.Perform, applyMakeup) This is all untested but should work. You can also extend the applyMakeup function to only trigger for certain animations, or only all oral animations. It depends on what you want to do and I can modify it to fit your purposes. You could also use this system to create animation variations, but that would require a bit more effort. Its defintely doable though. I'll also keep looking into using the AnimationEvents system like is used from sounds and the tile sprites, since it would defintely be alot better to figure that out and have certain functions called mid-animation. The most difficult part will be lining up events with the timings of the animations, and just figuring out where in ZomboWin those functions are called. Also please feel free to ask me for any coding related stuff. PZ modding can be very obtuse and AI will regularly get things wrong. Edited April 7, 2025 by dsfsffsd 2
Timerz Posted April 8, 2025 Posted April 8, 2025 On 4/5/2025 at 2:30 AM, dsfsffsd said: instead of using human visuals why not implement it as a makeup item? Whenever you want the makeup applied to the character, just create it like this: local item = InventoryItemFactory.CreateItem("Base.MakeupItem") player:getInventory():AddItem(item) player:setWornItem(item:getBodyLocation(), item) Of course replace the "Base.MakeupItem" string with whatever the actual makeup item is I was so focused on the texture side that I completely forgot about items, nice save! The best is that it doesn't NEED to be makeup items; it can be any item with a Clothing texture that we can apply. We just need to create an item and location for each part of the body and apply them. There's potential to make something even fancier here, but I guess I'll leave that to some other programmer or the future me. On 4/6/2025 at 5:44 AM, BlaBla012345 said: Given the unstable state of the B42 and the information you've given me here, it seems to me that continuing work on the B41 won't be wasted time. YES! It will not! Every drop of work we do in B41 will be beneficial for us. As the experience gained here will carry on to the future versions of the game, since B42 is way more compatible with B41 than I imagined, nobody is doing sex better than us, and figuring out how to handle that even better on Zomboid's wonky engine will be greatly beneficial for the foreseeable future. Zombowin code might not be the best in some parts (I'm still pissed about the 900 line function), but it works. It just needs to be a bit cleaned up and refactored to be sturdier. If that proves too inefficient, we can make another sex mod, dodging the pitfalls we fell into, maybe a Zombowin 2? As for the port I mentioned before, I decide to stash that for the time being. It's just not worth doing it since if I implement new features in the port, I will also need to do it in B41, and that would be a mess to manage. I think I will downgrade to B41 and work with that version instead, even if there is less functionality we can toy with. Even if I managed to discover how to abuse the Grapple system (which I kinda discovered how to use to some extent), I'm still a rookie when it comes to this engine, so it's better to learn the ropes on a stable version and use that experience when B42 goes stable. I know there's a bunch of people wanting a port, but I bet they do not want that port to be a broken one. On 4/6/2025 at 2:27 PM, BlaBla012345 said: Well, I wrote this using an AI... Yeah, I'm reinforcing what dsfsffsd said: DON'T USE AI TO CODE, especially with Zomboid's intricate engine. The AI makes false assumptions all the time! Just look at this snip of the second code you made. local timer = Timer.new() TIMER DOES NOT EXIST! It isn't in Zomboid or Lua, it is not even a defined class. It's just a made up object that the AI used to prove its false point and code. Even if you run it local and feed the entire source code to it, it will keep making those mistakes. Unless you're using it to just learn raw Java or Lua, don't use it. dsfsffsd also said everything needed to be said about the code snippets and how you can theoretically apply the "MakeUp" on the character, except that it is better to use instanceItem("Base.someItem") instead of InventoryItemFactory.CreateItem("Base.someItem"). Does the same thing and is more version safe since that class isn't exposed anymore on B42. Also if any programmer is reading this too, most of the animation logic with zombies and bandits works on ZomboWinDefeat\media\lua\client\ZomboWinDefeat\ZomboWinDefeatZombieHandler.lua On PlayAnim() line 564. Yeah, it's the fucking 900 line function, and it does not seem to be modular, like at all. Might be wrong, might be right, dig up and see if it's true. On 4/6/2025 at 5:44 AM, BlaBla012345 said: Do I need to create a MakeUp_Bukkake.xml file in media/clothing/clothingitems/ Do I need to create a MakeUp_Definitions.lua file in media/lua/shared/Definitions/ Do I need to create a MakeUp_BodyLocations.lua file in media/lua/shared/NPCs/ Do I need anything else ? Yes. No. Yes. Maybe? Yes. You will need to create an individual XML file for each MakeUp you create. No. We are creating cum items so we can put them on top of the character's Texture. It does not need to be defined as a MakeUp on Lua, unless you want them to be applied by the player as MakeUps. Yes. We don't want other clothing items to conflict with the Bukkake, for example, putting on a shirt and OH NO! WHERE DID THE CUM GO?! So we will need to create a location for each part of the body. Unless you want a single texture to overlay the entire character, so that makes it one. Maybe? You might need to create a fileguidtable.xml in the mod's media root folder to point out the clothing XMLs locations and GUIDs, but I think you already have that file figure out already since all you do is create animations. I've taken the liberty to tinker with this idea with the little time I had, and this is the result: (Ignore a certain someone on the left. I was testing stuff and got too lazy to remove him.) I'm still on B42 but I'm certain the code also works on B41. Here are some rough snippets of the code doing all the work for some clarification: Lua code to add the new location. require 'NPCs/BodyLocations' local group = BodyLocations.getGroup("Human") --At the end of the day this is only text used to prevent Textures from conflicting and adjust their rendering order. group:getOrCreateLocation("CustomLocation") This is to apply the item's texture to the character. local ZomboWinDebugConfig = ZomboWinDebugConfig --IGNORE IT!!! local function testFunction(key) --Ignore this check statement, its only a bind available on my test enviroment. if ZomboWinDebugConfig.options["CloneBind"] == key then local player = getPlayer() if not player then return end local fakeItem = instanceItem("ZomboWinDebug.FakeItem") --Get's the item, ZomboWinDebug being the module of the item. --There is no need to add the Item to the player's Inventory, we can apply the visual directly. player:setWornItem(fakeItem:getBodyLocation(), fakeItem) --Wears the fakeItem and applies the Texture of it. end end Events.OnKeyPressed.Add(testFunction) And this is the item's clothing XML. <?xml version="1.0" encoding="utf-8"?> <clothingItem> <m_MaleModel></m_MaleModel> <m_FemaleModel></m_FemaleModel> <m_GUID>c31179e6-de71-4bd1-9534-e5d02166bdc1</m_GUID> <m_Static>false</m_Static> <m_AllowRandomHue>false</m_AllowRandomHue> <m_AllowRandomTint>false</m_AllowRandomTint> <m_AttachBone></m_AttachBone> <m_BaseTextures>ZomboWinDebug\test</m_BaseTextures> </clothingItem> I think I wasn't clear enough with these snippets, but I hope some confusion has been diminished. BlaBla012345 If you wish, I can create a proper example mod on B41 to show exactly how things work and what you need to do. Even better if you give some PNGs you want to test with (remember they must be 256x256 and made in relation to the player's skin texture for better results). 3
dsfsffsd Posted April 8, 2025 Posted April 8, 2025 Using @Timerz's method for item creation is better, I had forgotten about that change in B42. I've also been looking more into animation stuff as well as sound events. Basically sex animations are timed actions, where the animations will loop over and over during the timed action. What this means is having excessively short animations that loop over and over again will result in the same animation events occuring several times in the same action. This is why sounds may overlap excessively when having short loops, and why cum tiles will be created during the duration of the animation. The m_TimePc parameter in the animation XML files represents the fraction of the duration of the animation (I will explain a bit more in a moment). This can be viewed using the animation viewer found in debug mode. Debug mode is also very useful for editing and testing XML files as any changes you make will be hotloaded into the game after you save the file. So regard m_TimePc, lets use the chop tree animation for example. The animation lasts 1 second and is 30 frames, so recorded at 30 frames a second. The XML file for the animation has a ChopTree event at 0.35, or 0.35 seconds into the animation. So to properly align sounds and events, ideally each animation should be long enough that sounds will not overlap, and if certain events should only occur once, those should be done using the AnimationStageEvents or only on animations that do not loop. 2
BlaBla012345 Posted April 10, 2025 Author Posted April 10, 2025 (edited) Hello everyone, First of all, please excuse the insanely long post. I'm going to primarily address the two Lua coders @dsfsffsd and @Timerz, @Venusm4, and @zxc741854; but everyone is strongly encouraged to participate by commenting, suggesting solutions, or making modifications of your own. Before getting to the heart of the matter, I'd like to particularly thank Timerz and dsfsffsd for their Lua code contributions and for the crucial information on m_TimePc And for pointing out the existence of the animation viewer in the game's Debug mode : a feature that I hadn't taken into account (shame on me 😝). Part One : Lua Code - dsfsffsd and Timerz Over the past few days, I've been taking all the information from your posts and trying to put it all into the add-on. First thing, I need to clarify something : I'm NOT a coder. I know NOTHING about Lua. That's why I used an AI to help me, but AIs aren't yet capable of providing this kind of help. What I know how to do is modify Lua files already written by real coders, by changing a filename or adding a piece of code like if ZombRand(0,100)<34 then action.character:playSound("ZomboLewdFemaleSodomyHotToneInterLong") elseif ZombRand(0,100)>66 then action.character:playSound("ZomboLewdFemaleSodomyMildToneInterLong") else action.character:playSound("ZomboLewdFemaleSodomyMediumToneInterLong") end So, what you're going to see in the files in this version of 'ZomboWin Add-on 2.0 Alpha test' is certainly full of errors and is completely non-functional : Red error / nothing happens on the screen / ... The main reason is that I don't know if I did the right thing when creating the files, if I named them correctly, and if I put them in the right place in the mod directories. The second reason is that I don't know how to 'call the function' to start an event. I'll take your suggestion Timerz, or dsfsffsd, and I'd like you to make me a 'sample version' that I can then modify to point to the correct file names. 🙏 💗 Details of what I did : ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin I created a ZomboWinAnimationAddon.lua file by taking your two codes, merging them, and modifying them according to your recommendations. There are already several problems here : I don't know if I need to create a function for each part of the body, or if a single function is enough... So I added line 17 local function applyBukkakeFace(action) but maybe you just need to local function applyBukkake(action) and that specific locations are managed elsewhere ? Same thing line 20 local Bukkake_Face_item = instanceItem("Base.Bukkake_Face") --Get's the item, Base.Bukkake_Face being the module of the item. maybe it is necessary local Bukkake_item = instanceItem("???.Bukkake_???") Should we keep 'Base' and do we absolutely need something after 'Bukkake_' or do we just need 'Bukkake' without _xxx (that's why I put '???') Then I created the 'function calls' (I don't know the correct words) that I will use in the <m_Events> of the .xml files In the directory ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents AbilityInvisibilityStart.lua AbilityInvisibilityStop.lua AbilitySelfSoiled.lua Well, EVERYTHING in there is false, I have no idea how to start the function. local function applyInvisiblity(action) and local function removeInvisiblity(action) neither local function applyBukkakeFace(action) Thank you for your help. Then we move on to the Makeup part : I created everything necessary like the example of the mod [B41/B42] Kek's 2K Skin Addon, proposed by dsfsffsd In the scripts directory ...\Zomboid\mods\ZomboWin AddOn\media\scripts\clothing I don't know if the module name is correct I don't know if I should add imports { Base } I don't know if the BodyLocation = Bukkake_FullFace, are correct or if you should use the base game locations as on this summary page https://pzwiki.net/wiki/BodyLocation I created the fileguidtable.xml file here ...\Zomboid\mods\ZomboWin AddOn\media I don't know how works the <guid> I hope my numbering is correct... In the directory ...\Zomboid\mods\ZomboWin AddOn\media\lua\shared\NPCs I created the ZomboWinAddonBodyLocations.lua file. This is a test, hoping it's correct... As for the files located here ...\Zomboid\mods\ZomboWin AddOn\media\clothing\clothingItems If the <m_GUID>ZW-ADDON-F0000-000000000001</m_GUID> are correct so it should be good... Finally at this location ...\Zomboid\mods\ZomboWin AddOn\media\AnimSets\player\actions There's the heart of the events and how they unfold : In reality, what I want is : 0.0 = Player becomes invisible 0.1 = Sound events 0.5 = Sound events 0.x = Sound events ... 0.9 = Makeup display End = Player becomes visible The two animations provided show that there will be NO loops in the animations from now on. The two advantages : Long, unlooped animations allow the player to put down their keyboard and mouse for a moment to... you know what. 😛 And long, unlooped animations allow the surrounding zombies to forget about us and start moving elsewhere, leaving the field open for our character, once the animation is over, to escape. Notes : The textures were created very quickly and are for testing purposes, so they are not final quality. The animations only have two sound events and are for testing purposes, so they are not final quality. Thanks for your help ! Part Two : Sounds - Venusm4 and zxc741854 I redid the entire sound file : multiplication by about 1200 % ! Venusm4 If you want and if you have the time, you can listen to and check the sounds that need to be cleaned up. Otherwise, I'll check it again myself a little later. zxc741854 If you're still on this forum, know that I've completely modified the sound directories, so your anime girl voice mod will no longer work. This sub-mod has a very good reputation, with 50% of users using it. I have over a hundred anime girl sound files to add. Contact me if you want to continue working on this. Otherwise, I'll redo your mod a little later. Attached is an ALPHA TEST version 2.0 of the ZomboWin Add-on mod. Please note that this is a test version, which is broken, incomplete, and non-functional. For testing purposes only. OBSOLETE ZomboWin AddOn 2.0 ALPHA TEST.zip Thanks everyone ! Edited April 14, 2025 by BlaBla012345 3
Venusm4 Posted April 12, 2025 Posted April 12, 2025 On 4/10/2025 at 9:00 PM, BlaBla012345 said: Part Two : Sounds - Venusm4 and zxc741854 I redid the entire sound file : multiplication by about 1200 % ! Venusm4 If you want and if you have the time, you can listen to and check the sounds that need to be cleaned up. Otherwise, I'll check it again myself a little later. No problem, I will check it out and let you know when I have finished. Thank you! 1
Timerz Posted April 12, 2025 Posted April 12, 2025 On 4/10/2025 at 10:00 AM, BlaBla012345 said: First of all, please excuse the insanely long post. Nah, I like long posts. They are a pleasure to read. On 4/10/2025 at 10:00 AM, BlaBla012345 said: I'll take your suggestion Timerz, or dsfsffsd, and I'd like you to make me a 'sample version' that I can then modify to point to the correct file names. 🙏 💗 I've finished the 'sample version'! But I think I went a bit overboard... But I'll talk about that in a second, but first I need to clarify two points you probably didn't get well. First, when creating clothing scripts, make sure that the ClothingItem value has the same name as the XML of the item. Otherwise, the game will not be able to find the XML and get any textures from the item. (Got a bit of a headache with this one.) Second, when creating locations for the character, make sure to create a location for each item, or else when the character "wears" them, the textures will just replace each other, making things a bit unnatural... Unless that's what you were after, so plus points for that. For the rest, you actually did things on the spot! The XMLs are where they should be, in the right format, and the textures are placed right as well, though it's worth pointing out that you can put the textures anywhere you want inside the Textures as long as you put their path correctly on the XMLs. Okay, now the big one: I really don't know if a demon possessed me or something, but damn! It was like my hands moved on their own. Instead of creating just a format that you could just glance at and take as reference, I coded a COMPLETELY functional testing environment for putting these textures onto the character. Well, it's really not that complicated, but it will ease things A LOT when it comes to testing things. ESPECIALLY seeing how the textures turned out to be. There is even a somewhat fluid system in here. So, when you enter a save on Zomboid, the character will now have a reference to a table containing all the Bukkake items. Making it possible to call them just whenever you want. There are two modes in this test environment: DYNAMIC and STATIC. Dynamic mode overlaps all textures into individual layers, following the quantity of items set up. Static mode is used to see individual textures in each location of the body instead of overlapping them all. In the game, you have already set up controls to control all this, so you don't actually need much coding to see the results. "<" and ">" serve for you to add and subtract the C U M quantity of the character in each location. "[" and"]" are to switch the location focus of the body. Now on the RIGHT side of the keyboard, you've got the "CTRL" and "ALT" on that side. "ALT" for switching which mode you are in and "CTRL" to reset the whole bukkake to default zero. Don't worry, some messages will appear on the character to notify you which location and mode you are in. And if you're too curious to see how those placeholders looked in the character, here is this monstrosity: Sadly, not everything is sunflowers; if you want to add more layers and locations, you'll need to do a bit of tinkering with the code. HOWEVER, I've let things ease a bit to modify and commented on the most important stuff so you won't get too confused when trying to customize things. This test also showed one of the cons of using this method to overlay the character is that 3D clothing, such as pants, won't get affected as they have their own models and a separate texture. Oh well, it's not like we were going to do the deed while clothed. This code might even be reusable for better stuff later, but I guess I've talked a bit too much on this post, and I REALLY need some sleep now. If anyone encounters any errors please report them. (I'm wasting to much time on this game...) BukkakeSample.zip 2
BlaBla012345 Posted April 12, 2025 Author Posted April 12, 2025 (edited) Exceptional ! 😍 I wasn't expecting a complete system for testing bukkake... I wasn't asking for so much, and I thank you so much for this testing system. And thank you for the corrections regarding module names and the ClothingItem value mapping, as well as the need to create locations for each item ! 👍 However, I must have misspoken regarding the files launching the functions. AbilityInvisibilityStart.lua and AbilityInvisibilityStop.lua (Let's leave AbilitySelfSoiled.lua aside for now) Okay, I tried this : return function(action, parameter) action.character:Start("applyInvisiblity") end this : return function(action, parameter) action.character:applyInvisiblity(Start) end and even this : return function(action, parameter) applyInvisiblity:Start() end But I still have the same error : function: null -- file: AbilityInvisibilityStart.lua line # 2 | MOD: ZomboWin AddOn function: animEvent -- file: ZomboWinAnimationHandler.lua line # 300 | MOD: ZomboWin Exception thrown java.lang.RuntimeException: attempted index: Start of non-table: null at KahluaThread.tableget line:1689. Stack trace: java.lang.RuntimeException: attempted index: Start of non-table: null So I can't launch (which is in the file ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\ZomboWinAnimationAddon.lua) : local function applyInvisiblity(action) local player = action.character player:setGhostMode(true) end local function removeInvisiblity(action) local player = action.character player:setGhostMode(false) end table.insert(ActionEvents.Start, applyInvisiblity) table.insert(ActionEvents.Stop, removeInvisiblity) table.insert(ActionEvents.Perform, removeInvisiblity) table.insert(ActionEvents.Perform, applyBukkakeFace1) On the other hand, I corrected my stupidity by modifying this (which is in the file ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\ZomboWinAnimationAddon.lua) : local function applyBukkakeFace1(action) local player = action.character local animation = action.animation local BukkakeFace1Item = instanceItem("Bukkake_Addon.Bukkake_Face1") --Get's the item, Bukkake_Addon being the module of the item. player:setWornItem(BukkakeFace1Item:getBodyLocation(), BukkakeFace1Item) --Wears the fakeItem (Here = BukkakeFace1Item) and applies the Texture of it. end I understand what the module is : Bukkake_Addon. (So it should be correct) I corrected the name of the fakeItem, and I think I understand that we need to create a different function for each Item (that's why I added a number). I'll have to read the comments in your Debug file at least a hundred times to fully grasp their meaning 💭 Yeah, I know... I'm not good at coding 😒 But it's clearly not my field. I do animation, 3D modeling, or sound and image processing. Coding isn't my job 😝 Thanks in advance for your help ! 💗 🙏 Edited April 12, 2025 by BlaBla012345 4
BlaBla012345 Posted April 12, 2025 Author Posted April 12, 2025 After hours of headaches, I managed to get the body bukkake application to work ! 💥 All I had to do was copy the code directly into the files in the ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents directory. I'll put all the code at the end of this post. The only big problem that remains is that I still can't get invisibility to work... I'm missing something... probably a function that allows the use of cheats for a short time (On then Off). So, in detail : ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents\AbilitySelfSoiledFace1.lua local function applyBukkakeFace1(action) local player = action.character local animation = action.animation local BukkakeFace1Item = instanceItem("Bukkake_Addon.Bukkake_Face1") --Get's the item, Bukkake_Addon being the module of the item. --There is no need to add the Item to the player's Inventory, we can apply the visual directly. --player:getInventory():AddItem(xxx) player:setWornItem(BukkakeFace1Item:getBodyLocation(), BukkakeFace1Item) --Wears the fakeItem (Here = BukkakeFace1Item) and applies the Texture of it. end and ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents\AbilitySelfSoiledLegs1.lua local function applyBukkakeLegs1(action) local player = action.character local animation = action.animation local BukkakeLegs1Item = instanceItem("Bukkake_Addon.Bukkake_Legs1") --Get's the item, Bukkake_Addon being the module of the item. --There is no need to add the Item to the player's Inventory, we can apply the visual directly. --player:getInventory():AddItem(xxx) player:setWornItem(BukkakeLegs1Item:getBodyLocation(), BukkakeLegs1Item) --Wears the fakeItem (Here = BukkakeLegs1Item) and applies the Texture of it. end and we don't forget to add all that, as well as the tables, in ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\ZomboWinAnimationAddon.lua local ZomboWin = require("ZomboWin/ZomboWin"); local ActionEvents = ZomboWin.AnimationHandler.ActionEvents; --Code created by and with the courtesy of dsfsffsd from LoversLab local function applyInvisiblity(action) local player = action.character player:setInvisible(true) end local function removeInvisiblity(action) local player = action.character player:setInvisible(false) end --Code created by and with the courtesy of dsfsffsd and Timerz from LoversLab local function applyBukkakeFace1(action) local player = action.character local animation = action.animation local BukkakeFace1Item = instanceItem("Bukkake_Addon.Bukkake_Face1") --Get's the item, Bukkake_Addon being the module of the item. --There is no need to add the Item to the player's Inventory, we can apply the visual directly. --player:getInventory():AddItem(xxx) player:setWornItem(BukkakeFace1Item:getBodyLocation(), BukkakeFace1Item) --Wears the fakeItem (Here = BukkakeFace1Item) and applies the Texture of it. end local function applyBukkakeLegs1(action) local player = action.character local animation = action.animation local BukkakeLegs1Item = instanceItem("Bukkake_Addon.Bukkake_Legs1") --Get's the item, Bukkake_Addon being the module of the item. --There is no need to add the Item to the player's Inventory, we can apply the visual directly. --player:getInventory():AddItem(xxx) player:setWornItem(BukkakeLegs1Item:getBodyLocation(), BukkakeLegs1Item) --Wears the fakeItem (Here = BukkakeLegs1Item) and applies the Texture of it. end table.insert(ActionEvents.Start, applyInvisiblity) table.insert(ActionEvents.Stop, removeInvisiblity) table.insert(ActionEvents.Perform, removeInvisiblity) table.insert(ActionEvents.Perform, applyBukkakeFace1) table.insert(ActionEvents.Perform, applyBukkakeLegs1) Regarding invisibility, I believe the correct code is setInvisible (and not setGhostMode : this is to keep our character visible to us, but only invisible to zombies). But as I said above, we must declare that our character is going into cheat mode BEFORE declaring the use of setInvisible. The problem is, I don't know how... I modified the files ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents\AbilityInvisibilityStart.lua local function applyInvisiblity(action) local player = action.character player:setInvisible(true) end and ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents\AbilityInvisibilityStop.lua local function removeInvisiblity(action) local player = action.character player:setInvisible(false) end But it's not working... If you could help me, that would be great ! 🫡 Thanks. 1
Timerz Posted April 13, 2025 Posted April 13, 2025 5 hours ago, BlaBla012345 said: If you could help me, that would be great ! 🫡 Alright, I did some searching and a BUNCH of testing and discovered that Zombowin actually doesn't run any events when the animation starts, and guess what? It is the only part of the animation system that doesn't do that, mostly because there wasn't ever a Start event defined in the mod, and thanks to how "for" loops works in Lua, it would always give out an error. So my guess is that at some time it had that feature, but someone came in and saw it gave out errors, and instead of verifying if there was an event, they just DELETED that loop. Thankfully that function is global and easily patchable. This code might solve the issue. Just create a .lua file anywhere in the zombowin folder with any name you wish, or just call it "ZomboWinAnimationHandlerPATCH.lua" if you're not that creative right now. local AnimationHandler = require("ZomboWin/ZomboWinAnimationHandler") local ISAnimationAction = ISAnimationAction function ISAnimationAction:start() --- What happens when the animation starts? if self.callbacks then if self.callbacks.Start then self.callbacks.Start(self) end end if AnimationHandler.ActionEvents.Start[1] then --checks if there's any Start events. for i = 1, #AnimationHandler.ActionEvents.Start do AnimationHandler.ActionEvents.Start[i](self) end end self.maxTime = self.duration self.action:setTime(self.maxTime) self:setActionAnim(self.animation) --self:setOverrideHandModels(nil, nil) self.character:getModData().ZomboWinSexScene = true end Also about all the invisible stuff and confusion. I'm going to reinforce that setGhostMode() and setInvisible() ARE THE SAME THING!!!! There is no difference between them in the game's code! SetGhostMode() is probably a sugar function to prevent the devs from using setInvincible() as an accident. All this clown show could have been prevented if the devs just defined the function as setInvulnerable(), but it is what it is. And one thing you need to keep in mind is that it's possible that our character won't be visible through other players eyes, or not. I haven't tested that, so I'm just taking a guess here on how all this works. Hope this helps! 1
BlaBla012345 Posted April 13, 2025 Author Posted April 13, 2025 (edited) And here we are ! 💥 We've reached the final step. One more piece of code and the show can begin ! We're on the right track, even if you might think at first that it's not the right method. I'll explain everything, but first : Kudos to Timerz for your code on ActionEvents.Start ! 💗 It works wonderfully. It works so well, in fact, we can't see anything on the screen anymore _"Uh... If we can't see anything on the screen anymore, how is that good news ?" 🤔 Explanation : I've done tons of tests, with and without -Debug mode, and the result is clear : applyInvisiblity with its setGhostMode(true) starts immediately at the BEGINNING of the animation. Regardless of the time entered in the <m_TimePc> field, it executes directly at 0.0, even if we entered 0.50 or 0.90 in <m_TimePc>. Which is expected because we execute ActionEvents.Start removeInvisiblity, on the other hand, only executes at the VERY END of the animation. Regardless of the time entered in the <m_TimePc> field, it executes directly at End, even if we entered 0.50 or 0.90 in <m_TimePc>. Which is expected because we execute ActionEvents.Stop Since the entire animation takes place with GhostMode = true, we see nothing, we hear nothing, but the zombies start moving away from our character, as expected. When the animation is finished, the removeInvisibility setGhostMode(false) code is executed and our character reappears WITH ALL the bukkake displayed. Which is not expected... because it should have happened during the animation and not at the very end. In the console.txt file we see this : LOG : General , 1744559858786> Warning, root node parent is always null. LOG : General , 1744559858802> FirstNAME:Bob WARN : Lua , 1744548756703> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/Footstep") failed LOG : General , 1744548756704> [ZomboWin] ZomboWin - Ignoring Footstep events from now on WARN : Lua , 1744548118145> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/ActiveAnimLooped") failed LOG : General , 1744548117761> [ZomboWin] ZomboWin - Ignoring ActiveAnimLooped events from now on WARN : Lua , 1744548118144> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/ActiveAnimFinishing") failed LOG : General , 1744548118144> [ZomboWin] ZomboWin - Ignoring ActiveAnimFinishing events from now on WARN : Lua , 1744548118145> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/NonLoopedAnimFadeOut") failed LOG : General , 1744548118145> [ZomboWin] ZomboWin - Ignoring NonLoopedAnimFadeOut events from now on LOG : General , 1744548134660> [ZomboWin] ZomboWin - Ignoring AbilityInvisibilityStart events from now on LOG : General , 1744548138809> [ZomboWin] ZomboWin - Ignoring AbilityInvisibilityStop events from now on LOG : General , 1744548147110> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledLegs1 events from now on LOG : General , 1744559896803> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledTorso1 events from now on LOG : General , 1744548184459> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledFace1 events from now on LOG : General , 1744559756203> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledLegs2 events from now on LOG : General , 1744559765204> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledTorso2 events from now on LOG : General , 1744559796703> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledFace2 events from now on I created in the directory ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents the files Footstep.lua ActiveAnimLooped.lua ActiveAnimFinishing.lua NonLoopedAnimFadeOut.lua They're empty. But the game continues to ignore ALL these files... Yet they are taken into account, since our character disappears and reappears with ALL the bukkakes. ⁉️❗❓ What we need to do is ensure that AbilityInvisibilityStop.lua and its removeInvisiblity setGhostMode(false) are functional and can be executed at the time written in the <m_TimePc> field in addition to the End. The same goes for AbilityInvisibilityStart.lua and its applyInvisiblity setGhostMode(true) ; it should be able to be executed at the time written in the <m_TimePc> field in addition to the Start. As expected from ActionEvents.Perform A thought : it is possible that the problem comes from the way I call the function because I simply copied it as is in the files AbilityInvisibilityStart.lua and AbilityInvisibilityStop.lua If one of our awesome coders could do that, that would be perfect. 🙏😍 Now you're going to ask me : "But why use setGhostMode ? We want to see our character get fucked ! We don't want to see nothing !" This is where it gets interesting. You may have seen that the end of my new animations ends with the zombie/bandit getting up and walking away, and our character struggling to recover from her emotions and getting up, staggering. The trick is as follows : We start the animation 0.0 applyInvisiblity followed directly by 0.01 removeInvisiblity : this makes the couple blink, signaling the start of hostilities to the player, who can then put down their keyboard and mouse. We see our character breed 👱♀️ 🍆👨 and the zombies crowd around them. The moment comes when the couple separates. Here we call a new function AbilityInvisibleForTime.lua (Edit : After thinking about it, I wonder if a timer system is really necessary ? 🤔) We make our character disappear local player = action.character player:setGhostMode(true) PLUS the code from this page https://theindiestone.com/forums/index.php?/topic/23554-lua-timers-adding-repeatable-timers-with-less-then-10-minute-intervals/ and finally we make our character reappear local player = action.character player:setGhostMode(false) The goal is to make our character blink (ideally faster and faster) while the animation ends with the zombie/bandit and our character standing side by side in "idle mode." The invisibility duration serves to make the surrounding zombies move away. The blinking serves as a warning to the player to get ready to use their keyboard and mouse again. You can activate the invisible/visible moments with <m_TimePc> if you prefer (So a timer system would be useless ? 🤔), or by letting a single timer do the job, or by using EveryOneMinute, or any other method. The invisibility duration must be long enough at the beginning so that the zombies can move far away : therefore, a very short visibility duration then increasingly longer. I hope that with the example code provided on the TIS forum page, it won't be too difficult to code. I'm providing you with the new 2.0.1 ALPHA TEST version of the mod with everything up close for testing. I've prepared all the necessary files as well as a slightly more functional test version of the <m_TimePc> animations to help you get a clearer picture. Well, these are just my suggestions. If you have better ideas, please feel free to write them here ! Thanks. 🫡 PS : If this isn't possible, I can try another approach by modifying the Translation_Data to physically move the character in the world (provided they don't get stuck against a wall or, on the contrary, pass through it...) That said, if the Translation_Data works as expected, we can also combine the two... blinking and physical movement to move as far away as possible from the risk zone. Please note that this version remains completely broken and non-functional. You won't see anything on screen during the deed. This is for testing purposes only. OBSOLETE ZomboWin AddOn 2.0.1 ALPHA TEST.zip Hmm... this Duration thing doesn't seem to correspond to anything. 🤔 blabla_all_holes_filled.lua Blender = 5700 frames at 60 fps = 1.30mn = 90s Viewer = 2700 frames at 60 fps = 1.30mn = 90s Duration = env 4100 ? blabla_Acrobat.lua Blender = 4980 frames at 60 fps = 1.23mn = 83s Viewer = 2490 frames at 60 fps =1.23mn = 83s Duration = env 4100 ? Note : The animation fbx files are significantly larger, at 30 MB versus 2 MB. I tried a new approach to better understand Duration, but it's not conclusive. Also worth checking for character positioning : This test is only possible if I can see both protagonists at the same time, and this isn't possible with the currently code. PS : I forgot to modify the Debug system to add the new entries. I'll do it soon. This system is perfect for removing cum from our character after washing : just press a key and poof : All clean ! 🥰 There might be a subsidiary and optional improvement if a coder wants to do it : adapting a mod like fol_Take_a_bath to automatically remove cum. But I just need to explain on my page which key to press to get the same result, so it's not that important. Plus, you can get back to dirty if and when you want, so this system is really excellent ! It goes way beyond a simple debugging system. We'll see later. Edited April 15, 2025 by BlaBla012345 Details 1
Whizkid Posted April 14, 2025 Posted April 14, 2025 6 hours ago, BlaBla012345 said: And here we are ! 💥 We've reached the final step. One more piece of code and the show can begin ! We're on the right track, even if you might think at first that it's not the right method. I'll explain everything, but first : Kudos to Timerz for your code on ActionEvents.Start ! 💗 It works wonderfully. It works so well, in fact, we can't see anything on the screen anymore _"Uh... If we can't see anything on the screen anymore, how is that good news ?" 🤔 Explanation : I've done tons of tests, with and without -Debug mode, and the result is clear : applyInvisiblity with its setGhostMode(true) starts immediately at the BEGINNING of the animation. Regardless of the time entered in the <m_TimePc> field, it executes directly at 0.0, even if we entered 0.50 or 0.90 in <m_TimePc>. Which is expected because we execute ActionEvents.Start removeInvisiblity, on the other hand, only executes at the VERY END of the animation. Regardless of the time entered in the <m_TimePc> field, it executes directly at End, even if we entered 0.50 or 0.90 in <m_TimePc>. Which is expected because we execute ActionEvents.Stop Since the entire animation takes place with GhostMode = true, we see nothing, we hear nothing, but the zombies start moving away from our character, as expected. When the animation is finished, the removeInvisibility setGhostMode(false) code is executed and our character reappears WITH ALL the bukkake displayed. Which is not expected... because it should have happened during the animation and not at the very end. In the console.txt file we see this : LOG : General , 1744559858786> Warning, root node parent is always null. LOG : General , 1744559858802> FirstNAME:Bob WARN : Lua , 1744548756703> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/Footstep") failed LOG : General , 1744548756704> [ZomboWin] ZomboWin - Ignoring Footstep events from now on WARN : Lua , 1744548118145> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/ActiveAnimLooped") failed LOG : General , 1744548117761> [ZomboWin] ZomboWin - Ignoring ActiveAnimLooped events from now on WARN : Lua , 1744548118144> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/ActiveAnimFinishing") failed LOG : General , 1744548118144> [ZomboWin] ZomboWin - Ignoring ActiveAnimFinishing events from now on WARN : Lua , 1744548118145> LuaManager$GlobalObject.require> require("ZomboWin/AnimationEvents/NonLoopedAnimFadeOut") failed LOG : General , 1744548118145> [ZomboWin] ZomboWin - Ignoring NonLoopedAnimFadeOut events from now on LOG : General , 1744548134660> [ZomboWin] ZomboWin - Ignoring AbilityInvisibilityStart events from now on LOG : General , 1744548138809> [ZomboWin] ZomboWin - Ignoring AbilityInvisibilityStop events from now on LOG : General , 1744548147110> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledLegs1 events from now on LOG : General , 1744559896803> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledTorso1 events from now on LOG : General , 1744548184459> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledFace1 events from now on LOG : General , 1744559756203> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledLegs2 events from now on LOG : General , 1744559765204> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledTorso2 events from now on LOG : General , 1744559796703> [ZomboWin] ZomboWin - Ignoring AbilitySelfSoiledFace2 events from now on I created in the directory ...\Zomboid\mods\ZomboWin AddOn\media\lua\client\ZomboWin\AnimationEvents the files Footstep.lua ActiveAnimLooped.lua ActiveAnimFinishing.lua NonLoopedAnimFadeOut.lua They're empty. But the game continues to ignore ALL these files... Yet they are taken into account, since our character disappears and reappears with ALL the bukkakes. ⁉️❗❓ What we need to do is ensure that AbilityInvisibilityStop.lua and its removeInvisiblity setGhostMode(false) are functional and can be executed at the time written in the <m_TimePc> field in addition to the End. The same goes for AbilityInvisibilityStart.lua and its applyInvisiblity setGhostMode(true) ; it should be able to be executed at the time written in the <m_TimePc> field in addition to the Start. As expected from ActionEvents.Perform A thought : it is possible that the problem comes from the way I call the function because I simply copied it as is in the files AbilityInvisibilityStart.lua and AbilityInvisibilityStop.lua If one of our awesome coders could do that, that would be perfect. 🙏😍 Now you're going to ask me : "But why use setGhostMode ? We want to see our character get fucked ! We don't want to see nothing !" This is where it gets interesting. You may have seen that the end of my new animations ends with the zombie/bandit getting up and walking away, and our character struggling to recover from her emotions and getting up, staggering. The trick is as follows : We start the animation 0.0 applyInvisiblity followed directly by 0.01 removeInvisiblity : this makes the couple blink, signaling the start of hostilities to the player, who can then put down their keyboard and mouse. We see our character breed 👱♀️ 🍆👨 and the zombies crowd around them. The moment comes when the couple separates. Here we call a new function AbilityInvisibleForTime.lua (Edit : After thinking about it, I wonder if a timer system is really necessary ? 🤔) We make our character disappear local player = action.character player:setGhostMode(true) PLUS the code from this page https://theindiestone.com/forums/index.php?/topic/23554-lua-timers-adding-repeatable-timers-with-less-then-10-minute-intervals/ and finally we make our character reappear local player = action.character player:setGhostMode(false) The goal is to make our character blink (ideally faster and faster) while the animation ends with the zombie/bandit and our character standing side by side in "idle mode." The invisibility duration serves to make the surrounding zombies move away. The blinking serves as a warning to the player to get ready to use their keyboard and mouse again. You can activate the invisible/visible moments with <m_TimePc> if you prefer (So a timer system would be useless ? 🤔), or by letting a single timer do the job, or by using EveryOneMinute, or any other method. The invisibility duration must be long enough at the beginning so that the zombies can move far away : therefore, a very short visibility duration then increasingly longer. I hope that with the example code provided on the TIS forum page, it won't be too difficult to code. I'm providing you with the new 2.0.1 ALPHA TEST version of the mod with everything up close for testing. I've prepared all the necessary files as well as a slightly more functional test version of the <m_TimePc> animations to help you get a clearer picture. Well, these are just my suggestions. If you have better ideas, please feel free to write them here ! Thanks. 🫡 PS : If this isn't possible, I can try another approach by modifying the Translation_Data to physically move the character in the world (provided they don't get stuck against a wall or, on the contrary, pass through it...) That said, if the Translation_Data works as expected, we can also combine the two... blinking and physical movement to move as far away as possible from the risk zone. Please note that this version remains completely broken and non-functional. You won't see anything on screen during the deed. This is for testing purposes only. ZomboWin AddOn 2.0.1 ALPHA TEST.zip 231.72 MB · 3 downloads Hmm... this Duration thing doesn't seem to correspond to anything. 🤔 blabla_all_holes_filled.lua Blender = 5700 frames at 60 fps = 1.30mn = 90s Viewer = 2700 frames at 60 fps = 1.30mn = 90s Duration = env 4100 ? blabla_Acrobat.lua Blender = 4980 frames at 60 fps = 1.23mn = 83s Viewer = 2490 frames at 60 fps =1.23mn = 83s Duration = env 4100 ? Note : The animation fbx files are significantly larger, at 30 MB versus 2 MB. I tried a new approach to better understand Duration, but it's not conclusive. Also worth checking for character positioning : This test is only possible if I can see both protagonists at the same time, and this isn't possible with the currently code. PS : I forgot to modify the Debug system to add the new entries. I'll do it soon. This system is perfect for removing cum from our character after washing : just press a key and poof : All clean ! 🥰 There might be a subsidiary and optional improvement if a coder wants to do it : adapting a mod like fol_Take_a_bath to automatically remove cum. But I just need to explain on my page which key to press to get the same result, so it's not that important. Plus, you can get back to dirty if and when you want, so this system is really excellent ! It goes way beyond a simple debugging system. We'll see later. or can you force the main character to join the zombie faction during the deed to prevent the zombies from gaining aggro on the main character?
BlaBla012345 Posted April 14, 2025 Author Posted April 14, 2025 (edited) 7 hours ago, Whizkid said: or can you force the main character to join the zombie faction during the deed to prevent the zombies from gaining aggro on the main character? What do you mean by 'join the zombie faction' ? As far as I know, there's no such thing as a zombie faction... or a living faction. 🤔 *********************************************************************************** I forgot to add an important detail. In the game in normal mode (i.e. WITHOUT -Debug), our character disappears from the screen when we use the 'GhostMode ON' cheat, and the zombies around us no longer see us. But when the game is in -Debug mode, our character remains visible on the screen when we use the 'GhostMode ON' cheat, and the zombies around us still no longer see us. I don't think it's feasible to have both 'GhostMode ON' AND our character always visible on the screen in the normal game WITHOUT -Debug. It must be something specific to -Debug mode. But the ultimate solution would of course be to have both : Our character visible on the screen while having 'GhostMode ON' enabled so that the zombies around us no longer see us. Well... we can always dream ☺️ Edited April 14, 2025 by BlaBla012345
Timerz Posted April 15, 2025 Posted April 15, 2025 Alright, here I am with a deserved patch to this. Sorry for the late reply, I had a couple of things I needed to do on my day. On 4/13/2025 at 4:57 PM, BlaBla012345 said: They're empty. But the game continues to ignore ALL these files... Yet they are taken into account, since our character disappears and reappears with ALL the bukkakes. ⁉️❗❓ So, let me explain in a brief way what the hell was happening. In short, THE CODE FORMATTING WAS WRONG! The code format you put into the events was: local function applyInvisiblity(action) local player = action.character player:setGhostMode(true) end But the correct ones should've been: return function(action, parameter) local player = action.character player:setGhostMode(true) end This simple error made the events not actually work and return NOTHING when called, making zombowin confused and resulting in all those warnings and stuff. It might still give a few warnings, but that is because we turn the character invisible or something related. For the Bukkake explosion effect, it is mainly thanks to how you implemented the functions to the animation system. When you defined those events unto the ActionEvents. You actually put events to happen on EVERY SINGLE ANIMATION AND ACTOR! No wonder the zombies was invisible too. It was defined behavior for them to be. I commented out this section of the code, and you might uncomment some parts, but be cautious with your actions. table.insert(ActionEvents.Start, applyInvisiblity) table.insert(ActionEvents.Stop, removeInvisiblity) --Everything down here will be applied to the actors in every frame, whether you want it or not table.insert(ActionEvents.Perform, removeInvisiblity) table.insert(ActionEvents.Perform, applyBukkakeFace1) table.insert(ActionEvents.Perform, applyBukkakeFace2) table.insert(ActionEvents.Perform, applyBukkakeFace3) table.insert(ActionEvents.Perform, applyBukkakeLegs1) table.insert(ActionEvents.Perform, applyBukkakeLegs2) table.insert(ActionEvents.Perform, applyBukkakeLegs3) table.insert(ActionEvents.Perform, applyBukkakeTorso1) table.insert(ActionEvents.Perform, applyBukkakeTorso2) table.insert(ActionEvents.Perform, applyBukkakeTorso3) To prevent all this mess, just use the events through the animations XMLs. Which I have another small note for them. From what I can gather through some testing, putting 0.0 on the m_TimePc will not actually run the event, you need to put a value like 0.1 or 0.05, anything that isn't 0. I don't know exactly why, but the game engine just ignores that event if thats the case. Also, I've replaced the End value with 0.95. Probably a rookie mistake on my part, but I have no idea if End is accepted in here and would make the game ignore the event. You can revert it back and do some actual testing with it to see if that's true, as I have little knowledge on how XMLs work in the Zomboid's engine. <m_TimePc>0.01</m_TimePc> Also keep in mind that you need to calibrate when the animations duration on the .lua configs because the animation can create some confusion if they are repeated. I shortened their time just a little to prevent that, but it's up to you to find that sweet, sweet time value. I don't like to criticize things, but I might advise you to stash the invisible idea, it seems it has more cons than pros, as the main values that make us hear nothing while invisible are all debug values checks, so we can't confirm that whatever we do with those values will work both on debug and normal modes at all times. 17 hours ago, BlaBla012345 said: But the ultimate solution would of course be to have both : Our character visible on the screen while having 'GhostMode ON' enabled so that the zombies around us no longer see us. This is exactly how GhostMode works! We are supposed to keep seeing our character even if they are invisible since they're local models. But thanks to how ZomboWin Defeat handles animations and compatibility with bandits, we actually are just seeing a clone of our character that IS invisible in our perspective. (We might actually be benefiting from a bug here...) TLDR: GhostMode brings more downsides than upsides. We already have that bar that tells the player when the animation is about to end, so it won't be that bad if we can't blink our character. One last thing before I go: I must say that I'm currently kind of running on borrowed time right now. There are some major things I need to do in the next couple of weeks or even months. So I will probably be way less active in here than I was in the last couple of weeks for a time. Might still respond to some questions but nothing crazy. I hope I said everything I needed to say and haven't forgotten anything. Good luck with the add-on, as always! ZomboWin AddOn 2.0.2 ALPHA TEST.zip 2
BlaBla012345 Posted April 15, 2025 Author Posted April 15, 2025 7 hours ago, Timerz said: Alright, here I am with a deserved patch to this. ... I hope I said everything I needed to say and haven't forgotten anything. Good luck with the add-on, as always! As always : a huge THANK YOU ! 🤩 💗 Your explanations are cristal clear, and the solution always seems so simple to me afterward that I feel truly stupid for not having understood where the problem was coming from. There's no doubt about it : coding is the domain of true experts and doesn't tolerate amateurs. Timerz, you have my immense respect. 🫡 With these fixes, everything is now perfectly in place, and I've already started assembling this version 2.0 Without you and dsfsffsd, none of this would have been possible. I hope the future result lives up to your expectations. I've noted your criticism of the use of invisibility; it's perfectly justified and constructive. I'm going to do a bunch of tests and see how much I use this technique. I need to check the game's behavior with the use of Translation_Data during animations : it's a kind of character hook in Blender. Perhaps I could combine this method with invisibility... Thanks again for all your time, good luck with your personal stuff, and I hope you'll come back and say hello to this thread one of these days. See you soon ! 😎 4
BlaBla012345 Posted April 19, 2025 Author Posted April 19, 2025 @Venusm4 I was so focused on the invisibility and bukkake system that I completely forgot to give you a crucial detail regarding the sound files. 😔 Normally, it shouldn't have any impact on the cleanup if you just removed noise or modified a reverb. I think I'd already done 90% of the work, so there shouldn't be much to improve. However, what's extremely important is the length of the sound files. I'll soon move on to implementing the sounds in the animations, and I suddenly remembered that I need to clarify the meaning of the words at the end of the sounds : _Short = less than 1 second _Long = more than 1 second but less than 2 seconds Here's the complete list : Spoiler Note : If '+ than 1 second', this means that the track is always less than 2 seconds long (unless otherwise specified for a specific sound to be played at the end of the animation). French + de 1 seconde Mean More than 1 second French - de 1 seconde Mean Less thn 1 second French + de x secondes donc fin d'animation obligatoire Mean More than x seconds, so animation ends + de 1 seconde Female_Breath_Cassandra (Fast & Inter) - de 1 seconde Female_Breath_Claire_Fast - de 1 seconde Female_Breath_Claire_Inter + de 1 seconde Female_Breath_Claire_Long - de 1 seconde Female_Fellatio_Choke_Dry + de 1 seconde Female_Fellatio_Choke_Wet + de 1 seconde Female_Fellatio_Cough + de 1 seconde Female_Fellatio_Enjoy_Long - de 1 seconde Female_Fellatio_Enjoy_Short + de 1 seconde Female_Fellatio_Force_Long - de 1 seconde Female_Fellatio_Force_Short - de 1 seconde Female_Fellatio_Gag_Deep - de 1 seconde Female_Fellatio_Gag_Enjoy + de 1 seconde Female_Fellatio_Gag_Force - de 1 seconde Female_Fellatio_Slup + de 1 seconde Female_Fellatio_Slup_&_Moan - de 1 seconde Female_Fellatio_Spit - de 1 seconde Female_Fellatio_Suck - de 1 seconde Female_Fellatio_Swallow - de 1 seconde Female_Grunt_Tone_High - de 1 seconde Female_Grunt_Tone_Low + de 1 seconde Female_Laugh_Long - de 1 seconde Female_Laugh_Short + de 1 seconde Female_Masturbation_Hot_Long - de 1 seconde Female_Masturbation_Hot_Short + de 1 seconde Female_Masturbation_Medium_Long - de 1 seconde Female_Masturbation_Medium_Short + de 1 seconde Female_Masturbation_Mild_Long - de 1 seconde Female_Masturbation_Mild_Short - de 1 seconde Female_Masturbation_Shlick /!\ (+ de 5 secondes donc fin d'animation obligatoire) Female_Masturbation_Yonchi_Climax + de 1 seconde Female_Masturbation_Yonchi_Long - de 1 seconde Female_Masturbation_Yonchi_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Deep_Final + de 1 seconde Female_Moan_Hot_Tone_Deep_Long - de 1 seconde Female_Moan_Hot_Tone_Deep_Short + de 1 seconde Female_Moan_Hot_Tone_High_Long - de 1 seconde Female_Moan_Hot_Tone_High_Short + de 1 seconde Female_Moan_Hot_Tone_Inter_Long - de 1 seconde Female_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Low_Final + de 1 seconde Female_Moan_Hot_Tone_Low_Long - de 1 seconde Female_Moan_Hot_Tone_Low_Short + de 1 seconde Female_Moan_Medium_Tone_Deep_Long - de 1 seconde Female_Moan_Medium_Tone_Deep_Short + de 1 seconde Female_Moan_Medium_Tone_High_Long - de 1 seconde Female_Moan_Medium_Tone_High_Short + de 1 seconde Female_Moan_Medium_Tone_Inter_Long - de 1 seconde Female_Moan_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Medium_Tone_Low_Final + de 1 seconde Female_Moan_Medium_Tone_Low_Long - de 1 seconde Female_Moan_Medium_Tone_Low_Short + de 1 seconde Female_Moan_Mild_Tone_Deep_Long - de 1 seconde Female_Moan_Mild_Tone_Deep_Short + de 1 seconde Female_Moan_Mild_Tone_High_Long - de 1 seconde Female_Moan_Mild_Tone_High_Short + de 1 seconde Female_Moan_Mild_Tone_Inter_Long - de 1 seconde Female_Moan_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Mild_Tone_Low_Final + de 1 seconde Female_Moan_Mild_Tone_Low_Long - de 1 seconde Female_Moan_Mild_Tone_Low_Short + de 1 seconde Female_Moan_Yonchi_Hot_Long - de 1 seconde Female_Moan_Yonchi_Hot_Short + de 1 seconde Female_Moan_Yonchi_Medium_Long - de 1 seconde Female_Moan_Yonchi_Medium_Short + de 1 seconde Female_Moan_Yonchi_Mild_Long - de 1 seconde Female_Moan_Yonchi_Mild_Short + de 1 seconde Female_Pant_Fast + de 1 seconde Female_Pant_Long - de 1 seconde Female_Pant_Short + de 1 seconde Female_Rape_Scream_Dry_Long - de 1 seconde Female_Rape_Scream_Dry_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Rape_Scream_Final + de 1 seconde Female_Rape_Scream_Long - de 1 seconde Female_Rape_Scream_Short + de 1 seconde Female_Sodomy_Hot_Tone_High_Long - de 1 seconde Female_Sodomy_Hot_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Hot_Tone_Inter_Final + de 1 seconde Female_Sodomy_Hot_Tone_Inter_Long - de 1 seconde Female_Sodomy_Hot_Tone_Inter_Short + de 1 seconde Female_Sodomy_Hot_Tone_Low_Long - de 1 seconde Female_Sodomy_Hot_Tone_Low_Short + de 1 seconde Female_Sodomy_Medium_Tone_High_Long - de 1 seconde Female_Sodomy_Medium_Tone_High_Short + de 1 seconde Female_Sodomy_Medium_Tone_Inter_Long - de 1 seconde Female_Sodomy_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Medium_Tone_Low_Final + de 1 seconde Female_Sodomy_Medium_Tone_Low_Long - de 1 seconde Female_Sodomy_Medium_Tone_Low_Short + de 1 seconde Female_Sodomy_Mild_Tone_High_Long - de 1 seconde Female_Sodomy_Mild_Tone_High_Short + de 1 seconde Female_Sodomy_Mild_Tone_Inter_Long - de 1 seconde Female_Sodomy_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Mild_Tone_Low_Final + de 1 seconde Female_Sodomy_Mild_Tone_Low_Long - de 1 seconde Female_Sodomy_Mild_Tone_Low_Short - de 1 seconde Female_Struggles_Abigail_Hard - de 1 seconde Female_Struggles_Abigail_Medium - de 1 seconde Female_Struggles_Abigail_Normal + de 1 seconde Female_Struggles_Hot_Tone_High_Long - de 1 seconde Female_Struggles_Hot_Tone_High_Short + de 1 seconde Female_Struggles_Hot_Tone_Low_Long - de 1 seconde Female_Struggles_Hot_Tone_Low_Short + de 1 seconde Female_Struggles_Medium_Tone_High_Long - de 1 seconde Female_Struggles_Medium_Tone_High_Short - de 1 seconde Female_Struggles_Medium_Tone_Low + de 1 seconde Female_Struggles_Mild_Tone_High_Long - de 1 seconde Female_Struggles_Mild_Tone_High_Short - de 1 seconde Female_Struggles_Mild_Tone_Low - de 1 seconde Male_Grunt + de 1 seconde Male_Moan_Hot_Tone_High_Long - de 1 seconde Male_Moan_Hot_Tone_High_Short + de 1 seconde Male_Moan_Hot_Tone_Inter_Long - de 1 seconde Male_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Hot_Tone_Low_Final + de 1 seconde Male_Moan_Hot_Tone_Low_Long - de 1 seconde Male_Moan_Hot_Tone_Low_Short - de 1 seconde Male_Moan_Medium_Tone_High (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Medium_Tone_Inter_Final + de 1 seconde Male_Moan_Medium_Tone_Inter_Long - de 1 seconde Male_Moan_Medium_Tone_Inter_Short + de 1 seconde Male_Moan_Medium_Tone_Low_Long - de 1 seconde Male_Moan_Medium_Tone_Low_Short + de 1 seconde Male_Moan_Mild_Tone_High_Long - de 1 seconde Male_Moan_Mild_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Mild_Tone_Inter_Final + de 1 seconde Male_Moan_Mild_Tone_Inter_Long - de 1 seconde Male_Moan_Mild_Tone_Inter_Short + de 1 seconde Male_Moan_Mild_Tone_Low_Long - de 1 seconde Male_Moan_Mild_Tone_Low_Short /!\ (Presque dés le début d'animation obligatoire) SFX_Background + de 1 seconde SFX_Body_Falling - de 1 seconde SFX_Body_Slapping (entre 9 secondes et 10 secondes max, donc fin d'animation obligatoire) SFX_Cum - de 1 seconde SFX_Hand_Slap + de 1 seconde SFX_Kiss_Female + de 1 seconde SFX_Kiss_Male + de 1 seconde SFX_Kiss_Unisex (+ de 1 seconde = fin d'animation obligatoire) SFX_Semen_Flowing_Out - de 1 seconde SFX_Sex_Rough - de 1 seconde SFX_Sex_Slide - de 1 seconde SFX_Sex_Slosh - de 1 seconde SFX_Sex_Slurp_Dry - de 1 seconde SFX_Sex_Slurp_Loud - de 1 seconde SFX_Sex_Slurp_Quiet - de 1 seconde SFX_Sex_Squish - de 1 seconde SFX_Shinlalala_Cum - de 1 seconde SFX_Shinlalala_DryPlap - de 1 seconde SFX_Shinlalala_PullOut - de 1 seconde SFX_Shinlalala_Stroke - de 1 seconde SFX_Shinlalala_Wet - de 1 seconde SFX_Shinlalala_WetPlap - de 1 seconde SFX_Slapping_Dry - de 1 seconde SFX_Slapping_Hard - de 1 seconde SFX_Slapping_Light - de 1 seconde SFX_Slapping_Medium - de 1 seconde SFX_Slapping_Slow - de 1 seconde SFX_Slapping_Wet - de 1 seconde SFX_Smack_Dry - de 1 seconde SFX_Smack_Wet (+ de 1 seconde = fin d'animation obligatoire) SFX_Vomit_Female The most important point is that changes in pitch, speed, and tempo affect the duration : so do NOT do this, or keep the duration below 1 second or below 2 seconds depending on the sound file. I've already normalized the sound level so that all the files have the same volume, so there's no need to do it again. I'm terribly sorry to tell you all this so late. 😰 My apologies if this is a problem for you. 🙏 Normally, it shouldn't because, as I already wrote, you should only have a handful of files to modify, and only for reverb or background noise issues. Last point : please do NOT change the file names. Simply overwrite the modified files. Thank you 💗 3
Transcendent Lala Posted April 19, 2025 Posted April 19, 2025 54 minutes ago, BlaBla012345 said: @Venusm4 I was so focused on the invisibility and bukkake system that I completely forgot to give you a crucial detail regarding the sound files. 😔 Normally, it shouldn't have any impact on the cleanup if you just removed noise or modified a reverb. I think I'd already done 90% of the work, so there shouldn't be much to improve. However, what's extremely important is the length of the sound files. I'll soon move on to implementing the sounds in the animations, and I suddenly remembered that I need to clarify the meaning of the words at the end of the sounds : _Short = less than 1 second _Long = more than 1 second but less than 2 seconds Here's the complete list : Hide contents Note : If '+ than 1 second', this means that the track is always less than 2 seconds long (unless otherwise specified for a specific sound to be played at the end of the animation). French + de 1 seconde Mean More than 1 second French - de 1 seconde Mean Less thn 1 second French + de x secondes donc fin d'animation obligatoire Mean More than x seconds, so animation ends + de 1 seconde Female_Breath_Cassandra (Fast & Inter) - de 1 seconde Female_Breath_Claire_Fast - de 1 seconde Female_Breath_Claire_Inter + de 1 seconde Female_Breath_Claire_Long - de 1 seconde Female_Fellatio_Choke_Dry + de 1 seconde Female_Fellatio_Choke_Wet + de 1 seconde Female_Fellatio_Cough + de 1 seconde Female_Fellatio_Enjoy_Long - de 1 seconde Female_Fellatio_Enjoy_Short + de 1 seconde Female_Fellatio_Force_Long - de 1 seconde Female_Fellatio_Force_Short - de 1 seconde Female_Fellatio_Gag_Deep - de 1 seconde Female_Fellatio_Gag_Enjoy + de 1 seconde Female_Fellatio_Gag_Force - de 1 seconde Female_Fellatio_Slup + de 1 seconde Female_Fellatio_Slup_&_Moan - de 1 seconde Female_Fellatio_Spit - de 1 seconde Female_Fellatio_Suck - de 1 seconde Female_Fellatio_Swallow - de 1 seconde Female_Grunt_Tone_High - de 1 seconde Female_Grunt_Tone_Low + de 1 seconde Female_Laugh_Long - de 1 seconde Female_Laugh_Short + de 1 seconde Female_Masturbation_Hot_Long - de 1 seconde Female_Masturbation_Hot_Short + de 1 seconde Female_Masturbation_Medium_Long - de 1 seconde Female_Masturbation_Medium_Short + de 1 seconde Female_Masturbation_Mild_Long - de 1 seconde Female_Masturbation_Mild_Short - de 1 seconde Female_Masturbation_Shlick /!\ (+ de 5 secondes donc fin d'animation obligatoire) Female_Masturbation_Yonchi_Climax + de 1 seconde Female_Masturbation_Yonchi_Long - de 1 seconde Female_Masturbation_Yonchi_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Deep_Final + de 1 seconde Female_Moan_Hot_Tone_Deep_Long - de 1 seconde Female_Moan_Hot_Tone_Deep_Short + de 1 seconde Female_Moan_Hot_Tone_High_Long - de 1 seconde Female_Moan_Hot_Tone_High_Short + de 1 seconde Female_Moan_Hot_Tone_Inter_Long - de 1 seconde Female_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Low_Final + de 1 seconde Female_Moan_Hot_Tone_Low_Long - de 1 seconde Female_Moan_Hot_Tone_Low_Short + de 1 seconde Female_Moan_Medium_Tone_Deep_Long - de 1 seconde Female_Moan_Medium_Tone_Deep_Short + de 1 seconde Female_Moan_Medium_Tone_High_Long - de 1 seconde Female_Moan_Medium_Tone_High_Short + de 1 seconde Female_Moan_Medium_Tone_Inter_Long - de 1 seconde Female_Moan_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Medium_Tone_Low_Final + de 1 seconde Female_Moan_Medium_Tone_Low_Long - de 1 seconde Female_Moan_Medium_Tone_Low_Short + de 1 seconde Female_Moan_Mild_Tone_Deep_Long - de 1 seconde Female_Moan_Mild_Tone_Deep_Short + de 1 seconde Female_Moan_Mild_Tone_High_Long - de 1 seconde Female_Moan_Mild_Tone_High_Short + de 1 seconde Female_Moan_Mild_Tone_Inter_Long - de 1 seconde Female_Moan_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Mild_Tone_Low_Final + de 1 seconde Female_Moan_Mild_Tone_Low_Long - de 1 seconde Female_Moan_Mild_Tone_Low_Short + de 1 seconde Female_Moan_Yonchi_Hot_Long - de 1 seconde Female_Moan_Yonchi_Hot_Short + de 1 seconde Female_Moan_Yonchi_Medium_Long - de 1 seconde Female_Moan_Yonchi_Medium_Short + de 1 seconde Female_Moan_Yonchi_Mild_Long - de 1 seconde Female_Moan_Yonchi_Mild_Short + de 1 seconde Female_Pant_Fast + de 1 seconde Female_Pant_Long - de 1 seconde Female_Pant_Short + de 1 seconde Female_Rape_Scream_Dry_Long - de 1 seconde Female_Rape_Scream_Dry_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Rape_Scream_Final + de 1 seconde Female_Rape_Scream_Long - de 1 seconde Female_Rape_Scream_Short + de 1 seconde Female_Sodomy_Hot_Tone_High_Long - de 1 seconde Female_Sodomy_Hot_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Hot_Tone_Inter_Final + de 1 seconde Female_Sodomy_Hot_Tone_Inter_Long - de 1 seconde Female_Sodomy_Hot_Tone_Inter_Short + de 1 seconde Female_Sodomy_Hot_Tone_Low_Long - de 1 seconde Female_Sodomy_Hot_Tone_Low_Short + de 1 seconde Female_Sodomy_Medium_Tone_High_Long - de 1 seconde Female_Sodomy_Medium_Tone_High_Short + de 1 seconde Female_Sodomy_Medium_Tone_Inter_Long - de 1 seconde Female_Sodomy_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Medium_Tone_Low_Final + de 1 seconde Female_Sodomy_Medium_Tone_Low_Long - de 1 seconde Female_Sodomy_Medium_Tone_Low_Short + de 1 seconde Female_Sodomy_Mild_Tone_High_Long - de 1 seconde Female_Sodomy_Mild_Tone_High_Short + de 1 seconde Female_Sodomy_Mild_Tone_Inter_Long - de 1 seconde Female_Sodomy_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Mild_Tone_Low_Final + de 1 seconde Female_Sodomy_Mild_Tone_Low_Long - de 1 seconde Female_Sodomy_Mild_Tone_Low_Short - de 1 seconde Female_Struggles_Abigail_Hard - de 1 seconde Female_Struggles_Abigail_Medium - de 1 seconde Female_Struggles_Abigail_Normal + de 1 seconde Female_Struggles_Hot_Tone_High_Long - de 1 seconde Female_Struggles_Hot_Tone_High_Short + de 1 seconde Female_Struggles_Hot_Tone_Low_Long - de 1 seconde Female_Struggles_Hot_Tone_Low_Short + de 1 seconde Female_Struggles_Medium_Tone_High_Long - de 1 seconde Female_Struggles_Medium_Tone_High_Short - de 1 seconde Female_Struggles_Medium_Tone_Low + de 1 seconde Female_Struggles_Mild_Tone_High_Long - de 1 seconde Female_Struggles_Mild_Tone_High_Short - de 1 seconde Female_Struggles_Mild_Tone_Low - de 1 seconde Male_Grunt + de 1 seconde Male_Moan_Hot_Tone_High_Long - de 1 seconde Male_Moan_Hot_Tone_High_Short + de 1 seconde Male_Moan_Hot_Tone_Inter_Long - de 1 seconde Male_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Hot_Tone_Low_Final + de 1 seconde Male_Moan_Hot_Tone_Low_Long - de 1 seconde Male_Moan_Hot_Tone_Low_Short - de 1 seconde Male_Moan_Medium_Tone_High (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Medium_Tone_Inter_Final + de 1 seconde Male_Moan_Medium_Tone_Inter_Long - de 1 seconde Male_Moan_Medium_Tone_Inter_Short + de 1 seconde Male_Moan_Medium_Tone_Low_Long - de 1 seconde Male_Moan_Medium_Tone_Low_Short + de 1 seconde Male_Moan_Mild_Tone_High_Long - de 1 seconde Male_Moan_Mild_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Mild_Tone_Inter_Final + de 1 seconde Male_Moan_Mild_Tone_Inter_Long - de 1 seconde Male_Moan_Mild_Tone_Inter_Short + de 1 seconde Male_Moan_Mild_Tone_Low_Long - de 1 seconde Male_Moan_Mild_Tone_Low_Short /!\ (Presque dés le début d'animation obligatoire) SFX_Background + de 1 seconde SFX_Body_Falling - de 1 seconde SFX_Body_Slapping (entre 9 secondes et 10 secondes max, donc fin d'animation obligatoire) SFX_Cum - de 1 seconde SFX_Hand_Slap + de 1 seconde SFX_Kiss_Female + de 1 seconde SFX_Kiss_Male + de 1 seconde SFX_Kiss_Unisex (+ de 1 seconde = fin d'animation obligatoire) SFX_Semen_Flowing_Out - de 1 seconde SFX_Sex_Rough - de 1 seconde SFX_Sex_Slide - de 1 seconde SFX_Sex_Slosh - de 1 seconde SFX_Sex_Slurp_Dry - de 1 seconde SFX_Sex_Slurp_Loud - de 1 seconde SFX_Sex_Slurp_Quiet - de 1 seconde SFX_Sex_Squish - de 1 seconde SFX_Shinlalala_Cum - de 1 seconde SFX_Shinlalala_DryPlap - de 1 seconde SFX_Shinlalala_PullOut - de 1 seconde SFX_Shinlalala_Stroke - de 1 seconde SFX_Shinlalala_Wet - de 1 seconde SFX_Shinlalala_WetPlap - de 1 seconde SFX_Slapping_Dry - de 1 seconde SFX_Slapping_Hard - de 1 seconde SFX_Slapping_Light - de 1 seconde SFX_Slapping_Medium - de 1 seconde SFX_Slapping_Slow - de 1 seconde SFX_Slapping_Wet - de 1 seconde SFX_Smack_Dry - de 1 seconde SFX_Smack_Wet (+ de 1 seconde = fin d'animation obligatoire) SFX_Vomit_Female The most important point is that changes in pitch, speed, and tempo affect the duration : so do NOT do this, or keep the duration below 1 second or below 2 seconds depending on the sound file. I've already normalized the sound level so that all the files have the same volume, so there's no need to do it again. I'm terribly sorry to tell you all this so late. 😰 My apologies if this is a problem for you. 🙏 Normally, it shouldn't because, as I already wrote, you should only have a handful of files to modify, and only for reverb or background noise issues. Last point : please do NOT change the file names. Simply overwrite the modified files. Thank you 💗 I am looking forward to using this soon as it is all setup
Venusm4 Posted April 19, 2025 Posted April 19, 2025 1 hour ago, BlaBla012345 said: @Venusm4 I was so focused on the invisibility and bukkake system that I completely forgot to give you a crucial detail regarding the sound files. 😔 Normally, it shouldn't have any impact on the cleanup if you just removed noise or modified a reverb. I think I'd already done 90% of the work, so there shouldn't be much to improve. However, what's extremely important is the length of the sound files. I'll soon move on to implementing the sounds in the animations, and I suddenly remembered that I need to clarify the meaning of the words at the end of the sounds : _Short = less than 1 second _Long = more than 1 second but less than 2 seconds Here's the complete list : Reveal hidden contents Note : If '+ than 1 second', this means that the track is always less than 2 seconds long (unless otherwise specified for a specific sound to be played at the end of the animation). French + de 1 seconde Mean More than 1 second French - de 1 seconde Mean Less thn 1 second French + de x secondes donc fin d'animation obligatoire Mean More than x seconds, so animation ends + de 1 seconde Female_Breath_Cassandra (Fast & Inter) - de 1 seconde Female_Breath_Claire_Fast - de 1 seconde Female_Breath_Claire_Inter + de 1 seconde Female_Breath_Claire_Long - de 1 seconde Female_Fellatio_Choke_Dry + de 1 seconde Female_Fellatio_Choke_Wet + de 1 seconde Female_Fellatio_Cough + de 1 seconde Female_Fellatio_Enjoy_Long - de 1 seconde Female_Fellatio_Enjoy_Short + de 1 seconde Female_Fellatio_Force_Long - de 1 seconde Female_Fellatio_Force_Short - de 1 seconde Female_Fellatio_Gag_Deep - de 1 seconde Female_Fellatio_Gag_Enjoy + de 1 seconde Female_Fellatio_Gag_Force - de 1 seconde Female_Fellatio_Slup + de 1 seconde Female_Fellatio_Slup_&_Moan - de 1 seconde Female_Fellatio_Spit - de 1 seconde Female_Fellatio_Suck - de 1 seconde Female_Fellatio_Swallow - de 1 seconde Female_Grunt_Tone_High - de 1 seconde Female_Grunt_Tone_Low + de 1 seconde Female_Laugh_Long - de 1 seconde Female_Laugh_Short + de 1 seconde Female_Masturbation_Hot_Long - de 1 seconde Female_Masturbation_Hot_Short + de 1 seconde Female_Masturbation_Medium_Long - de 1 seconde Female_Masturbation_Medium_Short + de 1 seconde Female_Masturbation_Mild_Long - de 1 seconde Female_Masturbation_Mild_Short - de 1 seconde Female_Masturbation_Shlick /!\ (+ de 5 secondes donc fin d'animation obligatoire) Female_Masturbation_Yonchi_Climax + de 1 seconde Female_Masturbation_Yonchi_Long - de 1 seconde Female_Masturbation_Yonchi_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Deep_Final + de 1 seconde Female_Moan_Hot_Tone_Deep_Long - de 1 seconde Female_Moan_Hot_Tone_Deep_Short + de 1 seconde Female_Moan_Hot_Tone_High_Long - de 1 seconde Female_Moan_Hot_Tone_High_Short + de 1 seconde Female_Moan_Hot_Tone_Inter_Long - de 1 seconde Female_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Hot_Tone_Low_Final + de 1 seconde Female_Moan_Hot_Tone_Low_Long - de 1 seconde Female_Moan_Hot_Tone_Low_Short + de 1 seconde Female_Moan_Medium_Tone_Deep_Long - de 1 seconde Female_Moan_Medium_Tone_Deep_Short + de 1 seconde Female_Moan_Medium_Tone_High_Long - de 1 seconde Female_Moan_Medium_Tone_High_Short + de 1 seconde Female_Moan_Medium_Tone_Inter_Long - de 1 seconde Female_Moan_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Medium_Tone_Low_Final + de 1 seconde Female_Moan_Medium_Tone_Low_Long - de 1 seconde Female_Moan_Medium_Tone_Low_Short + de 1 seconde Female_Moan_Mild_Tone_Deep_Long - de 1 seconde Female_Moan_Mild_Tone_Deep_Short + de 1 seconde Female_Moan_Mild_Tone_High_Long - de 1 seconde Female_Moan_Mild_Tone_High_Short + de 1 seconde Female_Moan_Mild_Tone_Inter_Long - de 1 seconde Female_Moan_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Moan_Mild_Tone_Low_Final + de 1 seconde Female_Moan_Mild_Tone_Low_Long - de 1 seconde Female_Moan_Mild_Tone_Low_Short + de 1 seconde Female_Moan_Yonchi_Hot_Long - de 1 seconde Female_Moan_Yonchi_Hot_Short + de 1 seconde Female_Moan_Yonchi_Medium_Long - de 1 seconde Female_Moan_Yonchi_Medium_Short + de 1 seconde Female_Moan_Yonchi_Mild_Long - de 1 seconde Female_Moan_Yonchi_Mild_Short + de 1 seconde Female_Pant_Fast + de 1 seconde Female_Pant_Long - de 1 seconde Female_Pant_Short + de 1 seconde Female_Rape_Scream_Dry_Long - de 1 seconde Female_Rape_Scream_Dry_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Rape_Scream_Final + de 1 seconde Female_Rape_Scream_Long - de 1 seconde Female_Rape_Scream_Short + de 1 seconde Female_Sodomy_Hot_Tone_High_Long - de 1 seconde Female_Sodomy_Hot_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Hot_Tone_Inter_Final + de 1 seconde Female_Sodomy_Hot_Tone_Inter_Long - de 1 seconde Female_Sodomy_Hot_Tone_Inter_Short + de 1 seconde Female_Sodomy_Hot_Tone_Low_Long - de 1 seconde Female_Sodomy_Hot_Tone_Low_Short + de 1 seconde Female_Sodomy_Medium_Tone_High_Long - de 1 seconde Female_Sodomy_Medium_Tone_High_Short + de 1 seconde Female_Sodomy_Medium_Tone_Inter_Long - de 1 seconde Female_Sodomy_Medium_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Medium_Tone_Low_Final + de 1 seconde Female_Sodomy_Medium_Tone_Low_Long - de 1 seconde Female_Sodomy_Medium_Tone_Low_Short + de 1 seconde Female_Sodomy_Mild_Tone_High_Long - de 1 seconde Female_Sodomy_Mild_Tone_High_Short + de 1 seconde Female_Sodomy_Mild_Tone_Inter_Long - de 1 seconde Female_Sodomy_Mild_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Female_Sodomy_Mild_Tone_Low_Final + de 1 seconde Female_Sodomy_Mild_Tone_Low_Long - de 1 seconde Female_Sodomy_Mild_Tone_Low_Short - de 1 seconde Female_Struggles_Abigail_Hard - de 1 seconde Female_Struggles_Abigail_Medium - de 1 seconde Female_Struggles_Abigail_Normal + de 1 seconde Female_Struggles_Hot_Tone_High_Long - de 1 seconde Female_Struggles_Hot_Tone_High_Short + de 1 seconde Female_Struggles_Hot_Tone_Low_Long - de 1 seconde Female_Struggles_Hot_Tone_Low_Short + de 1 seconde Female_Struggles_Medium_Tone_High_Long - de 1 seconde Female_Struggles_Medium_Tone_High_Short - de 1 seconde Female_Struggles_Medium_Tone_Low + de 1 seconde Female_Struggles_Mild_Tone_High_Long - de 1 seconde Female_Struggles_Mild_Tone_High_Short - de 1 seconde Female_Struggles_Mild_Tone_Low - de 1 seconde Male_Grunt + de 1 seconde Male_Moan_Hot_Tone_High_Long - de 1 seconde Male_Moan_Hot_Tone_High_Short + de 1 seconde Male_Moan_Hot_Tone_Inter_Long - de 1 seconde Male_Moan_Hot_Tone_Inter_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Hot_Tone_Low_Final + de 1 seconde Male_Moan_Hot_Tone_Low_Long - de 1 seconde Male_Moan_Hot_Tone_Low_Short - de 1 seconde Male_Moan_Medium_Tone_High (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Medium_Tone_Inter_Final + de 1 seconde Male_Moan_Medium_Tone_Inter_Long - de 1 seconde Male_Moan_Medium_Tone_Inter_Short + de 1 seconde Male_Moan_Medium_Tone_Low_Long - de 1 seconde Male_Moan_Medium_Tone_Low_Short + de 1 seconde Male_Moan_Mild_Tone_High_Long - de 1 seconde Male_Moan_Mild_Tone_High_Short (+ de 2 secondes donc fin d'animation obligatoire) Male_Moan_Mild_Tone_Inter_Final + de 1 seconde Male_Moan_Mild_Tone_Inter_Long - de 1 seconde Male_Moan_Mild_Tone_Inter_Short + de 1 seconde Male_Moan_Mild_Tone_Low_Long - de 1 seconde Male_Moan_Mild_Tone_Low_Short /!\ (Presque dés le début d'animation obligatoire) SFX_Background + de 1 seconde SFX_Body_Falling - de 1 seconde SFX_Body_Slapping (entre 9 secondes et 10 secondes max, donc fin d'animation obligatoire) SFX_Cum - de 1 seconde SFX_Hand_Slap + de 1 seconde SFX_Kiss_Female + de 1 seconde SFX_Kiss_Male + de 1 seconde SFX_Kiss_Unisex (+ de 1 seconde = fin d'animation obligatoire) SFX_Semen_Flowing_Out - de 1 seconde SFX_Sex_Rough - de 1 seconde SFX_Sex_Slide - de 1 seconde SFX_Sex_Slosh - de 1 seconde SFX_Sex_Slurp_Dry - de 1 seconde SFX_Sex_Slurp_Loud - de 1 seconde SFX_Sex_Slurp_Quiet - de 1 seconde SFX_Sex_Squish - de 1 seconde SFX_Shinlalala_Cum - de 1 seconde SFX_Shinlalala_DryPlap - de 1 seconde SFX_Shinlalala_PullOut - de 1 seconde SFX_Shinlalala_Stroke - de 1 seconde SFX_Shinlalala_Wet - de 1 seconde SFX_Shinlalala_WetPlap - de 1 seconde SFX_Slapping_Dry - de 1 seconde SFX_Slapping_Hard - de 1 seconde SFX_Slapping_Light - de 1 seconde SFX_Slapping_Medium - de 1 seconde SFX_Slapping_Slow - de 1 seconde SFX_Slapping_Wet - de 1 seconde SFX_Smack_Dry - de 1 seconde SFX_Smack_Wet (+ de 1 seconde = fin d'animation obligatoire) SFX_Vomit_Female The most important point is that changes in pitch, speed, and tempo affect the duration : so do NOT do this, or keep the duration below 1 second or below 2 seconds depending on the sound file. I've already normalized the sound level so that all the files have the same volume, so there's no need to do it again. I'm terribly sorry to tell you all this so late. 😰 My apologies if this is a problem for you. 🙏 Normally, it shouldn't because, as I already wrote, you should only have a handful of files to modify, and only for reverb or background noise issues. Last point : please do NOT change the file names. Simply overwrite the modified files. Thank you 💗 Thank you for letting me know. No worries! My project is only halfway done, let me start over. I noticed that many sounds have reverb. Is this the effect you wanted? Due to the large number of files, or if you already know, could you tell me which files need more cleaning? If you don’t have time, I can take care of it. As always, I appreciate your hard work! 1
BlaBla012345 Posted April 19, 2025 Author Posted April 19, 2025 2 hours ago, Venusm4 said: Thank you for letting me know. No worries! My project is only halfway done, let me start over. I noticed that many sounds have reverb. Is this the effect you wanted? Due to the large number of files, or if you already know, could you tell me which files need more cleaning? If you don’t have time, I can take care of it. As always, I appreciate your hard work! After a quick scan of the files, I can say with certainty that only the sounds in the Female_Moan_* directories require reverb cleaning. This kind of reverb, on these Female_Moan_* files, is clearly not an effect I wanted to keep. I really feel like I'm asking too much of you here 🫤, so : To avoid wasting your time, focus only on the files in the Female_Moan_* directories. I don't think the rest requires any processing. I say that, but I'm no expert in the field of sounds... 2
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