Jump to content

[Project Zomboid] Add-on for ZomboWin mod : More Animations & Sounds


Recommended Posts

Posted
9 hours ago, SkyFlyWhite said:

Yeeees more people getting into the mod!

 

I personally reallyike the ideas you had too, I think animations on beds and other objects is possible but not being worked on yet, and I like the idea of consenting to getting fucked by the hoard and getting unique animations to that, but I do think they'd still be super rough sense the zombies are so aggressive. 

 

Multiplayer works fine for the one time I've used it but having it built into the mod would be so nice too yea, and group sex would be hot too, I think that's being worked on. But I like your idea for a "death" animation or "death" when surrounded by a hoard, what if instead of dying you black out from getting fucked so much and wake up a few hours later after the hoard each had their full with you? Leaving you severely weakened and likely limping, if cum inflation is possible for this mod that would be a great time to be fully inflated too imminently.

I use "being a female" mod  and that's pretty accurate experience of horde-fucking, though blabla's animations have a smaler chance of getting cum into the womb.  Not sure about fainting from sex, because It will probably use sleep function, so zombies nearby will just stand there (unless blabla codes something) but the idea itself is worthy, it may be a good addition to mod balance, especially if combined with "zwbf".  My  original take was just about some animation prior to character death, like when three zeds grab you, but with gang bang lol.  Not sure if it's possible but I think that your idea could be a "chance to stay alive" event, maybe a trait option that helps in these situations. 

Posted
8 hours ago, 8BitRizz said:

Adding onto bebra's comment about sex with zombies, I was thinking there could be human-male, zombie-female specific animations too for ZomboLust.  What I mean is that too many of the animations just look like human on human sex, not human raping a zombie, so animations where the zombie is trying to bite or attack while the male restrains would be hot.  It should be possible because I dug through some of the code and all animations are given tags; that's how the pregnancy mod determines if you should be receiving sperm or not.  

Yeah, I also suggested something like that when talked about voluntary sex with zeds, like a succubus taking advantage of a zed, basically a zombie-rape/teasing animations prior to sex scene.   (like a female character that lays down  spreading legs and masturbates, or ass-slaps herself before doggy, for example)  
And subdue animations should also differ from just rough sex. I got the idea of a zombie with tied hands animations, or dominate scenes performed by males and females.  Though my idea is more about traits that give such animations, I think that it would make gameplay more diverse, and different scenes unblocked by traits would fit everyone. 

Posted (edited)

Gave full-on playthrough a try, I think fighting hordes has never been so easy, but I don't know if it's a bug or a feature. It seems that even without "pacify" trait zombies don't attack after a couple sex animations. I tested it and it works everytime, only zombie that uses the animation is not affected by this. So I can literally fuck my way out of trouble. This mod is a gem. But it works only if there's at least five zombies I think, otherwise player just wont be able to escape.

20250809172634_1.jpg

20250809172822_1.jpg

Edited by bebra1
Posted
19 hours ago, bebra1 said:

Gave full-on playthrough a try, I think fighting hordes has never been so easy, but I don't know if it's a bug or a feature. It seems that even without "pacify" trait zombies don't attack after a couple sex animations. I tested it and it works everytime, only zombie that uses the animation is not affected by this. So I can literally fuck my way out of trouble. This mod is a gem. But it works only if there's at least five zombies I think, otherwise player just wont be able to escape.

20250809172634_1.jpg

20250809172822_1.jpg

Maybe after getting fucked so much the zombies can't smell a Healthy non infected human anymore after getting cummed in and on so much, I don't think it's intentional, but could be a fun way to rationalize it

Posted

Hey everyone,

Looks like there’s been quite a bit of activity on this thread again, so I’ll do my best to catch up.

Progress Update

I wasn’t able to get anything done during the last two weeks of July—work had me doing a 120 km round trip every day, from early morning until late evening. Needless to say, not much energy left for modding after that.

The good news: that’s behind me now, and I’ve been back at full speed for about a week.

Major Refactor

I’ve completely refactored the code across every single file, following @Timerz’s suggestions. In the spoiler below you’ll see a before/after comparison:

  • Before – huge “do-everything” functions, 100–200 lines long, unreadable and a nightmare to debug.

  • After – small, single-purpose functions, each handling one thing only, with a master function coordinating everything.

Worse ! A function INSIDE another function !

Spoiler
-- =======================
-- Main override function
-- =======================
-- Function to apply server-side overrides for Bandit spawning
local function applyBanditSpawnerOverrides()
	print("[ZomboDesire OverrideBanditSpawner] applyBanditSpawnerOverrides invoked")

	-- Step 1 : Use cached spawner module
    local spawnerMod = ZD_spawnerMod
    if not spawnerMod then
        print("[ZomboDesire OverrideBanditSpawner ERROR] spawnerMod unavailable, aborting overrides.")
        return
    end
    print("[ZomboDesire OverrideBanditSpawner] Using spawnerMod: " .. tostring(spawnerMod))

	-- Step 2 : Override the spawner
	spawnerMod.generateSpawnPointHere = ZD_buildGenerateSpawnPointHere()
	print("[ZomboDesire OverrideBanditSpawner] generateSpawnPointHere override installed")

	-- Step 3 : Wrap the Type spawner for debug with fallback
	if spawnerMod.Type then
		print("[ZomboDesire OverrideBanditSpawner] Wrapping Type")
		local origType = spawnerMod.Type
		spawnerMod.Type = function(player, bid, x, y, z)
			local ok, result = pcall(function()
				print(string.format("[ZomboDesire OverrideBanditSpawner] Type called with player = %s, bid = %s, x = %s, y = %s, z = %s", tostring(player), tostring(bid), tostring(x), tostring(y), tostring(z)))
				return origType(player, bid, x, y, z)
			end)
			if not ok then
				print("[ZomboDesire OverrideBanditSpawner ERROR] Type wrapper error:", tostring(result))
				return origType(player, bid, x, y, z)
			end
			return result
		end
		print("[ZomboDesire OverrideBanditSpawner] Wrapped Type successfully")
	else
		print("[ZomboDesire OverrideBanditSpawner WARN] Type not found, skipping wrapper.")
	end

	-- Step 4 : create icon data wrapper when needed
	local getIconDataByProgram = createIconDataWrapper()
	print("[ZomboDesire OverrideBanditSpawner] getIconDataByProgram alias set, type = " .. tostring(type(getIconDataByProgram)))
	-- Now use getIconDataByProgram whenever needed, for example:
	-- local icon, color, desc = getIconDataByProgram(args.program, brain.hostile == false)

	-- ============================================================================
	-- Step 5 : Banditized the newly spawned zombie
	-- ============================================================================
	-- Local helper: replicate spawnIndividual logic using public API
	local function spawnIndividualLocal(sp, args)
		-- Reset on every server-side call
		ZD_OverrideSent = false
		-- Global flag to indicate banditizing is not yet done
		BanditizeCompleted = false
		print("[ZomboDesire OverrideBanditSpawner] Starting banditize process")
		-- Step 5-0 : Debug
		-- Debug entry
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal called with sp = (%s,%s,%s) args.bid = %s args.clan = %s", tostring(sp.x), tostring(sp.y), tostring(sp.z), tostring(args.bid), tostring(args.clan)))
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal at x = %s, y = %s, z = %s", tostring(sp.x), tostring(sp.y), tostring(sp.z)))
		-- Debug compatibility fn
		print(string.format("[ZomboDesire OverrideBanditSpawner] AddZombiesInOutfit exists? %s, type = %s", tostring(BanditCompatibility and BanditCompatibility.AddZombiesInOutfit),	type(BanditCompatibility and BanditCompatibility.AddZombiesInOutfit)))

		-- Step 5-1 : Register OnZombieCreate listener BEFORE spawning
		local spawnX, spawnY, spawnZ = sp.x, sp.y, sp.z

		-- Step 5-2 : Validate bid
		local bid = args.bid
		if not bid then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: no bid provided")
			return false
		end

		-- Step 5-3 : Validate BanditCustom API
		if not BanditCustom or type(BanditCustom.GetById)~='function' or type(BanditCustom.ClanGet)~='function' then
			print("[ZomboDesire OverrideBanditSpawner ERROR] BanditCustom API unavailable : "..tostring(BanditCustom))
			return false
		end

		-- Step 5-4 : Validate bandit / Bandit Recovery by ID
		local bandit = BanditCustom and BanditCustom.GetById and BanditCustom.GetById(args.bid)
		if not bandit then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: invalid bid")
			return false
		end

		-- Step 5-5 : Validate clan / Recovering clan from bandit.general.cid
		local clanId = bandit.general and bandit.general.cid
		local clan = clanId and BanditCustom.ClanGet(clanId)
		if not clan then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: invalid clan id = "..tostring(clanId))
			return false
		end

		-- Step 5-6 : Retrieving the zdData table passed from the client
		local savedZombieModData = args.zdData

		-- Step 5-7 : Create banditize wrapper when needed
		local banditize = createBanditizeWrapper()

		-- Step 5-8 : We make and record the Tick listener
		ZD_BanditTickListener = createTickListener(banditize)
		print("[ZomboDesire OverrideBanditSpawner] Registering ZD_BanditTickListener")
		Events.OnTick.Add(ZD_BanditTickListener)
		print("[ZomboDesire OverrideBanditSpawner] ZD_BanditTickListener registered")

		-- Step 5-9 : Register an OnZombieCreate to guarantee an offset of 1 tick
		ZD_BanditListener = createZombieCreateListener(
			sp.x, sp.y, sp.z,
			bandit, clan, args,
			savedZombieModData
		)
		-- Step 5-10 : Added a one tick offset to the banditize call to allow zombie:getPersistentOutfitID() to register and provide a non-zero id
		print("[ZomboDesire OverrideBanditSpawner] OnZombieCreate listener registered (pre-spawn)")
		Events.OnZombieCreate.Add(ZD_BanditListener)

		-- Step 5-11 : Capture the native function in a clear alias
		local nativeAddZombiesInOutfit = addZombiesInOutfit
		-- Ensure AddZombiesInOutfit available
		if type(nativeAddZombiesInOutfit) ~= 'function' then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: native addZombiesInOutfit not available (null or wrong type)")
			return false
		end

		-- Step 5-12 : Pre-inject outfitName
		if args.zdData and args.zdData.outfitName then
			print("[ZomboDesire OverrideBanditSpawner] Pre-injecting outfit into bandit.general:", args.zdData.outfitName)
			bandit.general.outfit = args.zdData.outfitName
			bandit.general.female = (args.zdData.gender == "F")
		end
		-- >>> DIRECT INJECTION OF THE PARTS LIST
		if args.zdData and args.zdData.clothing then
			print("[ZomboDesire OverrideBanditSpawner] Injecting clothing list into bandit.clothing, count =", #args.zdData.clothing)
			bandit.clothing = args.zdData.clothing
		else
			bandit.clothing = {}  -- empty fallback if no data
		end
		-- We don't want **any** weapons
		bandit.weapons = {}

		-- Step 5-13 : Extracting configuration settings
		local banditcount = 1
		local outfit = bandit.general.outfit or "Generic01"
		local femaleChance = bandit.general.female and 100 or 0
		local crawler = bandit.general.crawler or false
		local fallOnFront = bandit.general.fallOnFront or false
		local fakeDead = bandit.general.fakeDead or false
		local knockedDown = bandit.general.knockedDown or false
		local invulnerable = bandit.general.invulnerable or false
		local sitting = bandit.general.sitting or false
		local health = bandit.general.health or 1
		print("[ZomboDesire OverrideBanditSpawner] >>> AddZombiesInOutfit is", tostring(BanditCompatibility.AddZombiesInOutfit))

		-- Step 5-14 : Call the original function to generate the zombies/bandits
		local ok, zombieList = pcall(nativeAddZombiesInOutfit,
			spawnX, spawnY, spawnZ,
			banditcount, outfit, femaleChance,
			crawler, fallOnFront, fakeDead,
			knockedDown, invulnerable, sitting, health
		)
		-- Step 5-15 : Immediately wrap the result of addZombiesInOutfit in a table before the test type(zombieList), so that zombie is no longer nil
		if ok and type(zombieList) ~= "table" then
			zombieList = { zombieList }
		end
		print(string.format(
			"[ZomboDesire OverrideBanditSpawner] addZombiesInOutfit returned: %s, length = %s",
			tostring(zombieList),
			type(zombieList)=='table' and #zombieList or 'n/a'
		))
		-- Test result
		if not ok then
			print("[ZomboDesire OverrideBanditSpawner ERROR] addZombiesInOutfit threw:", tostring(zombieList))
			return false
		end

		-- STEP 5-16 : Retrieve the zombie so the listener knows what to compare it to
		zombie = (ok and type(zombieList)=="table" and zombieList[1]) or nil
		if not zombie then
			print("[ZomboDesire OverrideBanditSpawner WARN] Spawn failed, we remove the listener")
			Events.OnZombieCreate.Remove(ZD_BanditListener)
			return false
		end

		-- Step 5-17 : zombieList is valid, you can continue processing
		for i, z in ipairs(zombieList) do
			print(string.format("  Zombie #%d = %s", i, tostring(z)))
		end

		-- Step 5-18 : Secure recovery of zombie count
		local count
		if type(zombieList) == "table" then
			count = #zombieList
		elseif type(zombieList) == "userdata" and zombieList.size then
			count = zombieList:size()
		else
			count = 0
		end

		if count == 0 then
			print("[ZomboDesire OverrideBanditSpawner WARN] no zombies spawned")
			return
		end
		
		-- Step 5-19 : If we have not received a table, we pack it in
		if type(zombieList) ~= "table" then
			print("[ZomboDesire OverrideBanditSpawner] Wrapping single IsoZombie into table")
			zombieList = { zombieList }
		end
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal got %d zombie(s)", #zombieList))

		-- Step 5-20 : banditize the zombie
		local zombie = zombieList[1]
		if type(banditize)=='function' then
			print("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal succeeded, "..#zombieList.." zombies spawned")
			return true
		else
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: banditize unavailable")
			return false
		end
	end

	-- Step 6 : Capture the original method
	local origIndividual = ZD_CaptureOriginal(spawnerMod)

	-- Step 7 : Override Individual with both exception and result==false fallback
	ZD_OverrideIndividual(spawnerMod, origIndividual, spawnIndividualLocal, customGenHere)

	-- Step 8 : Expose our custom spawnIndividualLocal
	ZD_ExposeHelper(spawnerMod, spawnIndividualLocal)
end

 

 

It's so BEAUTIFUL like that !

Spoiler
-- Constants
local DEBUG = true
local DEBUG_PREFIX = "[ZomboDesire OverrideBanditSpawner] "

-- ==================
-- Utility functions
-- ==================
-- Utility function for debug logs
local function debugLog(message, ...)
	if DEBUG then
		print(string.format(DEBUG_PREFIX .. message, ...))
	end
end

-- =======================
-- Main override function
-- =======================

-- Validates that the spawner module is available
-- @return The spawner module if available, nil otherwise
local function validateSpawnerModule()
	local spawnerMod = ZD_spawnerMod
	if not spawnerMod then
		debugLog("ERROR spawnerMod unavailable, aborting overrides.")
		return nil
	end
	debugLog("Using spawnerMod -> %s", tostring(spawnerMod))
	return spawnerMod
end

-- Wraps the Type function with error handling and logging
-- @param spawnerMod The spawner module containing the Type function
local function wrapTypeFunction(spawnerMod)
	if not spawnerMod.Type then
		debugLog("WARNING Type not found, skipping wrapper.")
		return
	end

	debugLog("Wrapping Type")
	local originalTypeFunction = spawnerMod.Type

	spawnerMod.Type = function(player, bid, x, y, z)
		local success, result = pcall(function()
			debugLog("Type called with player = %s, bid = %s, x = %s, y = %s, z = %s", 
				tostring(player), tostring(bid), tostring(x), tostring(y), tostring(z))
			return originalTypeFunction(player, bid, x, y, z)
		end)

		if not success then
			debugLog("ERROR Type wrapper error -> %s", tostring(result))
			return originalTypeFunction(player, bid, x, y, z)
		end

		return result
	end

	debugLog("Wrapped Type successfully")
end

-- Main function that applies server-side overrides for Bandit spawning
-- This function orchestrates the entire process of overriding the bandit spawning system
local function applyBanditSpawnerOverrides()
	debugLog("applyBanditSpawnerOverrides invoked")

	-- Validate and prepare the spawner module
	local spawnerMod = validateSpawnerModule()
	if not spawnerMod then
		return
	end

	-- Override core spawner functions
	overrideSpawnerFunctions(spawnerMod)

	-- Create utility functions
	local getIconDataByProgram = createIconDataWrapper()
	debugLog("getIconDataByProgram alias set, type = %s", tostring(type(getIconDataByProgram)))

	-- Define the local spawn function that will be used for bandit creation
	local spawnIndividualLocal = createLocalSpawnFunction()

	-- Capture the original Individual function
	local originalIndividual = ZD_CaptureOriginal(spawnerMod)

	-- Override the Individual function with our implementation
	ZD_OverrideIndividual(spawnerMod, originalIndividual, spawnIndividualLocal, customGenHere)

	-- Expose our spawn function for other parts of the code
	ZD_ExposeHelper(spawnerMod, spawnIndividualLocal)

	return spawnIndividualLocal
end

 

 

It might not look like progress to non-coders, but this was a critical step. Without it, tracking down issues was taking hours. Now it’s far easier to work with, and future features will be much quicker to implement.

Small Gameplay Improvement

While refactoring, I added a small tweak :
When the player is chased by a horde (whether it’s 2 zombies or 30+) and gets grabbed by a zombie of the opposite sex, the bandit that spawns won’t immediately run away anymore.
I’ve added a tiny delay — ⅛ of a second, completely unnoticeable to the player — so the game has time to push the horde back. This stops the bandit from panicking and fleeing right away.

Build 42 Quirk

I also ran into something odd in B42’s code :

If you store a zombie’s coordinates in a table with a Z value other than 0,
then teleport that zombie to a location with a Z value other than 0,
the log will confirm the teleport happened at the correct Z (say, Z = 1 for a first floor), but in-game the zombie always ends up at Z = 0.

Spawning a zombie (and turning them into a bandit) directly at Z = 1 works fine, though — no problem there.

Haven’t found a workaround yet. Might post on the TIS forums to see if it’s just me or an actual B42 bug.

Next Steps

Now that the refactor’s done, I can finally move forward with fixes and features :

  • Fixing the bandit’s orientation/direction issues

  • Adding the tag system (related to the above)

  • Making the bandit’s visuals match zombie skin tone, hairstyle, etc. (thanks to the Bandits mod outfit system)

  • Canceling interceptions if the collision happens when a zombie is crawling, has fallen after climbing, or is trying to crawl through a window

  • Randomizing sound effects

  • And probably a few more things I’m forgetting

Refactor’s out of the way, so things should start moving much faster now.

Can’t wait to have a fully functional mod ! 🫡

Posted (edited)

Lots to cover today !

I’ll keep my replies short so this doesn’t drag on.

On 7/26/2025 at 8:48 PM, Timerz said:

OOPS! I Almost made a lost media scenario here. My bad.

That happened because I removed the indexed file on my post, thinking that the file the dev indexed on the post was his adjusted version and my file was obsolete, but no, that was just an index link to my post. And since I removed it because I am a dum-dum and empty-headed monkey, it's giving you that message.

 

 I may edit this soon with the file indexed, but keep in mind that this version is destined to be obsolete quite soon. I can confirm that the changes I made will carry on to the new project for B42, so don't worry too much about it.

I’ll fix the link in post #1 of this thread.

And yes, I’m absolutely committed to making sure everything from B41 carries over to B42.
Timerz’s bukkake system will be included in ZomboLust, and there will be plenty of sub-mods so everyone can tailor the experience to their personal tastes.

For example, I’ll check with @Zikhad to see if he wants to handle the port, or if I should take it on myself—but I definitely want a ZomboLust sub-mod that adds pregnant women.

 

On 8/1/2025 at 11:09 AM, legion army said:

Hi everyone
Recently I found a unique mod named Zombies of Dimension which adds new zombies to the game, this is not just a skin mod, but there are some zombies with special powers that make the game much more interesting.

 

The only problem is the conflicts with the bandits mod
I tried to fix this problem by changing the settings but it never completely resolved.

Sorry, but there won’t be compatibility with that mod for ZomboLust.

However, I do plan to add two special zombie/bandit types :
an angel and a demon (both the opposite sex of the player).

They’ll be auto-summoned to have sex with the player based on certain conditions—like the time since the last rape scene or the last time the player masturbated.
This will fill up a bar (similar to a skill bar like Carpentry), and once it hits 100%, the player will “transform” into either :

  • a Witch Hunter (male/female), or

  • an Incubus/Succubus, with special abilities for end-game play.

I’ve also got two more ideas to encourage players to survive as long as possible (and finally create a real end-game) :

  • A masturbation-based collection system

  • A violence curve tied to rape animations

 

On 8/1/2025 at 10:03 PM, 8BitRizz said:

I wonder if it'd be possible for clothing to be removed for B42 during a defeat as part of the animation, although with the stripping system this might be wasted effort even if I prefer immersion.

 

On 8/2/2025 at 12:06 AM, Timerz said:

That's pretty possible to do, just add a custom animEvent here and there, and make an animation that uses it. Of course, with zombowin right now it's a bit of a nuance and quirky, I plan on relieving that problem in the future if possible.

Clothing-specific animations that get removed when the clothes are torn off :
That’s totally doable, like Timerz said.
Noted.

 

On 8/6/2025 at 8:24 PM, bebra1 said:

1) Does masturbation do anything to the character's state? It would be cool if this way you could relieve unhappiness and boredom.
 

2) I also found zucchini and oil, but the option to use a sex toy did not appear, it seems that it cannot be used or I did not find something?

 

3) I'm curious how many animations you plan on doing, I was amazed at how good they are.

 

4) Not sure if it's possible, but I almost immediately had sex with a zombie near the bed and thought it would be interesting if there was an  animation using beds, and in general ones that are using furniture.

 

5) I would also like to be able to change the face textures without affecting the body. I don't like some of the faces a bit,  in my opinion  it would be nice if you could choose between vanilla and new ones. Retexrue mods kinda mess up the whole thing.

 

6) I also noticed a couple of bugs.
 

7) I'd be curious to know if this mod will support multiplayer.

 

8 ) Will there  also be a possibility of  group sex?

 

9) would also like for  sex activity to level up  fitness, this could be a quick way to improve the skill.

1), 6), 7), 8 )— I’m not handling ZomboWin.
And unfortunately, I don’t have time to work on my own addon either :(
The main focus has to be the future: Build 42 !
That’s why I’m only concentrating on ZomboLust — no point spending hours on B41 when it’ll soon be obsolete.

That said, your question about masturbation effects caught my interest.
I’m planning a dedicated sub-mod for masturbation with a collection system that will influence unhappiness and boredom based on the types collected.
So yes, that’ll be added, but for B41… I’m not sure. Maybe, maybe not.

  1. For zucchini and oil — ask on the ZomboWin thread.
    What I can say for ZomboLust is that these kinds of items will be in the Masturbation sub-mod, and I’ll add specific animations for their use.

  2. I’ll be creating packs of 6 animations, and many more packs in the future so players have variety.
    These packs will be linked to violence level and survival time.
    Casual players will see softer animation types, while hardcore players (those who survive longer) will unlock more hardcore animations.
    Not there yet, but I’ll talk about it when the time comes.

  3. Using furniture is definitely something I want to add.
    It will require more animations, but I think environmental tests in code should be doable... we’ll see.

  4. That’s already possible. You just install a texture mod after the one that modifies the model.

  5. No plans for multiplayer in B42 (and anyway, there’s no multiplayer in B42 yet).

  6. In ZomboLust, I’ve got code planned for encounters: Player vs up to 3 zombies at once.

  7. Fitness: yes, for ZomboLust.
    There’s already a (crappy) mod for B41 on Steam Workshop.
    Definitely something I’ll include in the masturbation sub-mod.

 

On 8/6/2025 at 10:31 PM, 8BitRizz said:

 I honestly prefer the vanilla hands and faces, so it would be nice if they were a future option once @BlaBla012345 finishes their B42 port.

I’m planning to redo the feet on my model, inspired by a Workshop mod I saw that blends halfway between the base model and mine, to avoid shoe-related issues.

As for texture choices, there’s no need for options since people can just add whatever textures they want.
But I get what you mean — so I’ll release my improved model mod with the game’s default textures, and then folks can add their own textures on top if they want.
If they just want the base textures, they won’t need to add anything.

 

On 8/8/2025 at 12:32 AM, bebra1 said:

Planning any controls to change poses?

 

Maybe Im mistaken but I fell that each animation has different chances of appearing, so some of them will probably be more rare.

I can’t work on ZomboLust for B42 and make animations for B41 at the same time.
Once ZomboLust is up and running, I’ll create animations for it, and if B42 hasn’t left unstable branch yet, I’ll start porting those animations back to B41.
But keep in mind, they’re totally different systems — you can’t just copy-paste between them; it won’t work.

 

Controls to change poses? No, the game randomly picks an animation from the available set.

 

On 8/8/2025 at 2:47 AM, SkyFlyWhite said:

I like the idea of consenting to getting fucked by the hoard and getting unique animations to that, but I do think they'd still be super rough sense the zombies are so aggressive. 

 

what if instead of dying you black out from getting fucked so much and wake up a few hours later after the hoard each had their full with you? Leaving you severely weakened and likely limping, if cum inflation is possible for this mod that would be a great time to be fully inflated too imminently.

Agreeing to be raped by a horde ?
That’s part of the end-game concept I have in mind, but not the whole picture.

What about the player passing out during a horde rape and waking up later ?
My code will definitely support that — actually, the system’s already in place.
It works just like the escape mechanic, but I’ll add code to black out the screen like when the player sleeps.

 

On 8/8/2025 at 4:46 AM, 8BitRizz said:

I was thinking there could be human-male, zombie-female specific animations too for ZomboLust.

 What I mean is that too many of the animations just look like human on human sex, not human raping a zombie, so animations where the zombie is trying to bite or attack while the male restrains would be hot.

Humans raping zombies, with specific animations for that ?
Yeah, that’s doable—and actually desirable, since it’s not in ZomboWin right now.
I’m not sure exactly how yet, but I’ll work on it.

 

On 8/8/2025 at 1:02 PM, bebra1 said:

I use "being a female" mod  and that's pretty accurate experience of horde-fucking, though blabla's animations have a smaler chance of getting cum into the womb.  Not sure about fainting from sex, because It will probably use sleep function, so zombies nearby will just stand there (unless blabla codes something)

 

On 8/8/2025 at 1:25 PM, bebra1 said:

Yeah, I also suggested something like that when talked about voluntary sex with zeds, like a succubus taking advantage of a zed, basically a zombie-rape/teasing animations prior to sex scene.   (like a female character that lays down  spreading legs and masturbates, or ass-slaps herself before doggy, for example)  
And subdue animations should also differ from just rough sex. I got the idea of a zombie with tied hands animations, or dominate scenes performed by males and females.  Though my idea is more about traits that give such animations, I think that it would make gameplay more diverse, and different scenes unblocked by traits would fit everyone. 

It's a lot of work, but the idea is good.

 

On 8/9/2025 at 4:40 PM, bebra1 said:

Gave full-on playthrough a try, I think fighting hordes has never been so easy, but I don't know if it's a bug or a feature. It seems that even without "pacify" trait zombies don't attack after a couple sex animations. I tested it and it works everytime, only zombie that uses the animation is not affected by this. So I can literally fuck my way out of trouble. This mod is a gem. But it works only if there's at least five zombies I think, otherwise player just wont be able to escape.

 

5 hours ago, SkyFlyWhite said:

Maybe after getting fucked so much the zombies can't smell a Healthy non infected human anymore after getting cummed in and on so much, I don't think it's intentional, but could be a fun way to rationalize it

Same as before : I’m not working on ZomboWin.
But I’m paying close attention to the idea of the player becoming ‘less attractive’ to zombies.
Like a sort of disguise—think guts from The Walking Dead—but replaced by cum on and inside the body, with the same masking effect.
That way, the player would have a chance to escape, but if they don’t wash off quickly, it’d likely kill them !

Edited by BlaBla012345
Posted

Oooo big update! Love reading through the changes and ideas.

 

And I'm excited to see some of the things I was thinking of are already a part of the project. Also yea I gotta Zombowin out of my mind, I'm sure once a version of this is released I won't be thinking about it no more. And I love the idea of a sort of "disguise" from getting covered and cummed in so much, although instead of directly killing the player maybe it gives certain nerfs instead of a direct death possibility? Or perhaps a setting if this idea is implemented.

Posted (edited)

Well, here's a few ideas. Maybe a toggled option where... zombies eat you unless you find or make and wear a pheromone, maybe even the perfume in game item. Then you only run the risk of assault rather than being eaten. And the pheromone has a limited time effect before it needs to be reapplied.

 

A button to pass out after several assaults from zombies to pass the time during hordes.

 

Random encounters where two or more zombies are getting it on that the player can stumble upon. Maybe even just random zombie desire mechanic that lets nearby zombies interact naturally.

 

Trade a good time for items with friendlies and run the risks involved.

 

Trade sex for freedom during bandit attacks and run the risks.

 

Percentage sliders for absolutely everything!

 

*edit:

Also, wear mechanics for assaults. Severity depending on type and numbers.

Edited by 8BallAnnie
Posted
24 minutes ago, 8BallAnnie said:

Well, here's a few ideas. Maybe a toggled option where... zombies eat you unless you find or make and wear a pheromone, maybe even the perfume in game item. Then you only run the risk of assault rather than being eaten. And the pheromone has a limited time effect before it needs to be reapplied.

 

A button to pass out after several assaults from zombies to pass the time during hordes.

 

Random encounters where two or more zombies are getting it on that the player can stumble upon. Maybe even just random zombie desire mechanic that lets nearby zombies interact naturally.

 

Trade a good time for items with friendlies and run the risks involved.

 

Trade sex for freedom during bandit attacks and run the risks.

 

Percentage sliders for absolutely everything!

 

*edit:

Also, wear mechanics for assaults. Severity depending on type and numbers.

All good ideas I think! personally like the idea for percentage sliders for everything, the way I'd play would be like, pure Zombie wasteland sex fantasy, and uh, dying is not a part of that fantasy ):

Posted (edited)

I've been searching and didn't find anthing, so, sorry if i'm incorrect or being annoying but i'm still using some previous versions of ZomboWin/Defeat and it was working with build 41 bandits mod, but since the author remove it and later reuploaded it as the "legacy" version - before releasing the b42 version of the mod - the legacy version does not work with ZomboWin/Defeat, no matter what version of ZomboWin/Defeat i use.. does anyone still have a compatible version of Bandits 41 ?  Thank you very much (also sorry if it's not the right place to ask about ZomboWin but you guys seem to know better. I'll delete my post if necessary)

Edited by bueir
Posted
On 8/10/2025 at 11:52 AM, BlaBla012345 said:

Worse ! A function INSIDE another function !

  Reveal hidden contents
-- =======================
-- Main override function
-- =======================
-- Function to apply server-side overrides for Bandit spawning
local function applyBanditSpawnerOverrides()
	print("[ZomboDesire OverrideBanditSpawner] applyBanditSpawnerOverrides invoked")

	-- Step 1 : Use cached spawner module
    local spawnerMod = ZD_spawnerMod
    if not spawnerMod then
        print("[ZomboDesire OverrideBanditSpawner ERROR] spawnerMod unavailable, aborting overrides.")
        return
    end
    print("[ZomboDesire OverrideBanditSpawner] Using spawnerMod: " .. tostring(spawnerMod))

	-- Step 2 : Override the spawner
	spawnerMod.generateSpawnPointHere = ZD_buildGenerateSpawnPointHere()
	print("[ZomboDesire OverrideBanditSpawner] generateSpawnPointHere override installed")

	-- Step 3 : Wrap the Type spawner for debug with fallback
	if spawnerMod.Type then
		print("[ZomboDesire OverrideBanditSpawner] Wrapping Type")
		local origType = spawnerMod.Type
		spawnerMod.Type = function(player, bid, x, y, z)
			local ok, result = pcall(function()
				print(string.format("[ZomboDesire OverrideBanditSpawner] Type called with player = %s, bid = %s, x = %s, y = %s, z = %s", tostring(player), tostring(bid), tostring(x), tostring(y), tostring(z)))
				return origType(player, bid, x, y, z)
			end)
			if not ok then
				print("[ZomboDesire OverrideBanditSpawner ERROR] Type wrapper error:", tostring(result))
				return origType(player, bid, x, y, z)
			end
			return result
		end
		print("[ZomboDesire OverrideBanditSpawner] Wrapped Type successfully")
	else
		print("[ZomboDesire OverrideBanditSpawner WARN] Type not found, skipping wrapper.")
	end

	-- Step 4 : create icon data wrapper when needed
	local getIconDataByProgram = createIconDataWrapper()
	print("[ZomboDesire OverrideBanditSpawner] getIconDataByProgram alias set, type = " .. tostring(type(getIconDataByProgram)))
	-- Now use getIconDataByProgram whenever needed, for example:
	-- local icon, color, desc = getIconDataByProgram(args.program, brain.hostile == false)

	-- ============================================================================
	-- Step 5 : Banditized the newly spawned zombie
	-- ============================================================================
	-- Local helper: replicate spawnIndividual logic using public API
	local function spawnIndividualLocal(sp, args)
		-- Reset on every server-side call
		ZD_OverrideSent = false
		-- Global flag to indicate banditizing is not yet done
		BanditizeCompleted = false
		print("[ZomboDesire OverrideBanditSpawner] Starting banditize process")
		-- Step 5-0 : Debug
		-- Debug entry
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal called with sp = (%s,%s,%s) args.bid = %s args.clan = %s", tostring(sp.x), tostring(sp.y), tostring(sp.z), tostring(args.bid), tostring(args.clan)))
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal at x = %s, y = %s, z = %s", tostring(sp.x), tostring(sp.y), tostring(sp.z)))
		-- Debug compatibility fn
		print(string.format("[ZomboDesire OverrideBanditSpawner] AddZombiesInOutfit exists? %s, type = %s", tostring(BanditCompatibility and BanditCompatibility.AddZombiesInOutfit),	type(BanditCompatibility and BanditCompatibility.AddZombiesInOutfit)))

		-- Step 5-1 : Register OnZombieCreate listener BEFORE spawning
		local spawnX, spawnY, spawnZ = sp.x, sp.y, sp.z

		-- Step 5-2 : Validate bid
		local bid = args.bid
		if not bid then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: no bid provided")
			return false
		end

		-- Step 5-3 : Validate BanditCustom API
		if not BanditCustom or type(BanditCustom.GetById)~='function' or type(BanditCustom.ClanGet)~='function' then
			print("[ZomboDesire OverrideBanditSpawner ERROR] BanditCustom API unavailable : "..tostring(BanditCustom))
			return false
		end

		-- Step 5-4 : Validate bandit / Bandit Recovery by ID
		local bandit = BanditCustom and BanditCustom.GetById and BanditCustom.GetById(args.bid)
		if not bandit then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: invalid bid")
			return false
		end

		-- Step 5-5 : Validate clan / Recovering clan from bandit.general.cid
		local clanId = bandit.general and bandit.general.cid
		local clan = clanId and BanditCustom.ClanGet(clanId)
		if not clan then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: invalid clan id = "..tostring(clanId))
			return false
		end

		-- Step 5-6 : Retrieving the zdData table passed from the client
		local savedZombieModData = args.zdData

		-- Step 5-7 : Create banditize wrapper when needed
		local banditize = createBanditizeWrapper()

		-- Step 5-8 : We make and record the Tick listener
		ZD_BanditTickListener = createTickListener(banditize)
		print("[ZomboDesire OverrideBanditSpawner] Registering ZD_BanditTickListener")
		Events.OnTick.Add(ZD_BanditTickListener)
		print("[ZomboDesire OverrideBanditSpawner] ZD_BanditTickListener registered")

		-- Step 5-9 : Register an OnZombieCreate to guarantee an offset of 1 tick
		ZD_BanditListener = createZombieCreateListener(
			sp.x, sp.y, sp.z,
			bandit, clan, args,
			savedZombieModData
		)
		-- Step 5-10 : Added a one tick offset to the banditize call to allow zombie:getPersistentOutfitID() to register and provide a non-zero id
		print("[ZomboDesire OverrideBanditSpawner] OnZombieCreate listener registered (pre-spawn)")
		Events.OnZombieCreate.Add(ZD_BanditListener)

		-- Step 5-11 : Capture the native function in a clear alias
		local nativeAddZombiesInOutfit = addZombiesInOutfit
		-- Ensure AddZombiesInOutfit available
		if type(nativeAddZombiesInOutfit) ~= 'function' then
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: native addZombiesInOutfit not available (null or wrong type)")
			return false
		end

		-- Step 5-12 : Pre-inject outfitName
		if args.zdData and args.zdData.outfitName then
			print("[ZomboDesire OverrideBanditSpawner] Pre-injecting outfit into bandit.general:", args.zdData.outfitName)
			bandit.general.outfit = args.zdData.outfitName
			bandit.general.female = (args.zdData.gender == "F")
		end
		-- >>> DIRECT INJECTION OF THE PARTS LIST
		if args.zdData and args.zdData.clothing then
			print("[ZomboDesire OverrideBanditSpawner] Injecting clothing list into bandit.clothing, count =", #args.zdData.clothing)
			bandit.clothing = args.zdData.clothing
		else
			bandit.clothing = {}  -- empty fallback if no data
		end
		-- We don't want **any** weapons
		bandit.weapons = {}

		-- Step 5-13 : Extracting configuration settings
		local banditcount = 1
		local outfit = bandit.general.outfit or "Generic01"
		local femaleChance = bandit.general.female and 100 or 0
		local crawler = bandit.general.crawler or false
		local fallOnFront = bandit.general.fallOnFront or false
		local fakeDead = bandit.general.fakeDead or false
		local knockedDown = bandit.general.knockedDown or false
		local invulnerable = bandit.general.invulnerable or false
		local sitting = bandit.general.sitting or false
		local health = bandit.general.health or 1
		print("[ZomboDesire OverrideBanditSpawner] >>> AddZombiesInOutfit is", tostring(BanditCompatibility.AddZombiesInOutfit))

		-- Step 5-14 : Call the original function to generate the zombies/bandits
		local ok, zombieList = pcall(nativeAddZombiesInOutfit,
			spawnX, spawnY, spawnZ,
			banditcount, outfit, femaleChance,
			crawler, fallOnFront, fakeDead,
			knockedDown, invulnerable, sitting, health
		)
		-- Step 5-15 : Immediately wrap the result of addZombiesInOutfit in a table before the test type(zombieList), so that zombie is no longer nil
		if ok and type(zombieList) ~= "table" then
			zombieList = { zombieList }
		end
		print(string.format(
			"[ZomboDesire OverrideBanditSpawner] addZombiesInOutfit returned: %s, length = %s",
			tostring(zombieList),
			type(zombieList)=='table' and #zombieList or 'n/a'
		))
		-- Test result
		if not ok then
			print("[ZomboDesire OverrideBanditSpawner ERROR] addZombiesInOutfit threw:", tostring(zombieList))
			return false
		end

		-- STEP 5-16 : Retrieve the zombie so the listener knows what to compare it to
		zombie = (ok and type(zombieList)=="table" and zombieList[1]) or nil
		if not zombie then
			print("[ZomboDesire OverrideBanditSpawner WARN] Spawn failed, we remove the listener")
			Events.OnZombieCreate.Remove(ZD_BanditListener)
			return false
		end

		-- Step 5-17 : zombieList is valid, you can continue processing
		for i, z in ipairs(zombieList) do
			print(string.format("  Zombie #%d = %s", i, tostring(z)))
		end

		-- Step 5-18 : Secure recovery of zombie count
		local count
		if type(zombieList) == "table" then
			count = #zombieList
		elseif type(zombieList) == "userdata" and zombieList.size then
			count = zombieList:size()
		else
			count = 0
		end

		if count == 0 then
			print("[ZomboDesire OverrideBanditSpawner WARN] no zombies spawned")
			return
		end
		
		-- Step 5-19 : If we have not received a table, we pack it in
		if type(zombieList) ~= "table" then
			print("[ZomboDesire OverrideBanditSpawner] Wrapping single IsoZombie into table")
			zombieList = { zombieList }
		end
		print(string.format("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal got %d zombie(s)", #zombieList))

		-- Step 5-20 : banditize the zombie
		local zombie = zombieList[1]
		if type(banditize)=='function' then
			print("[ZomboDesire OverrideBanditSpawner] spawnIndividualLocal succeeded, "..#zombieList.." zombies spawned")
			return true
		else
			print("[ZomboDesire OverrideBanditSpawner ERROR] spawnIndividualLocal: banditize unavailable")
			return false
		end
	end

	-- Step 6 : Capture the original method
	local origIndividual = ZD_CaptureOriginal(spawnerMod)

	-- Step 7 : Override Individual with both exception and result==false fallback
	ZD_OverrideIndividual(spawnerMod, origIndividual, spawnIndividualLocal, customGenHere)

	-- Step 8 : Expose our custom spawnIndividualLocal
	ZD_ExposeHelper(spawnerMod, spawnIndividualLocal)
end

 

 

It's so BEAUTIFUL like that !

  Reveal hidden contents
-- Constants
local DEBUG = true
local DEBUG_PREFIX = "[ZomboDesire OverrideBanditSpawner] "

-- ==================
-- Utility functions
-- ==================
-- Utility function for debug logs
local function debugLog(message, ...)
	if DEBUG then
		print(string.format(DEBUG_PREFIX .. message, ...))
	end
end

-- =======================
-- Main override function
-- =======================

-- Validates that the spawner module is available
-- @return The spawner module if available, nil otherwise
local function validateSpawnerModule()
	local spawnerMod = ZD_spawnerMod
	if not spawnerMod then
		debugLog("ERROR spawnerMod unavailable, aborting overrides.")
		return nil
	end
	debugLog("Using spawnerMod -> %s", tostring(spawnerMod))
	return spawnerMod
end

-- Wraps the Type function with error handling and logging
-- @param spawnerMod The spawner module containing the Type function
local function wrapTypeFunction(spawnerMod)
	if not spawnerMod.Type then
		debugLog("WARNING Type not found, skipping wrapper.")
		return
	end

	debugLog("Wrapping Type")
	local originalTypeFunction = spawnerMod.Type

	spawnerMod.Type = function(player, bid, x, y, z)
		local success, result = pcall(function()
			debugLog("Type called with player = %s, bid = %s, x = %s, y = %s, z = %s", 
				tostring(player), tostring(bid), tostring(x), tostring(y), tostring(z))
			return originalTypeFunction(player, bid, x, y, z)
		end)

		if not success then
			debugLog("ERROR Type wrapper error -> %s", tostring(result))
			return originalTypeFunction(player, bid, x, y, z)
		end

		return result
	end

	debugLog("Wrapped Type successfully")
end

-- Main function that applies server-side overrides for Bandit spawning
-- This function orchestrates the entire process of overriding the bandit spawning system
local function applyBanditSpawnerOverrides()
	debugLog("applyBanditSpawnerOverrides invoked")

	-- Validate and prepare the spawner module
	local spawnerMod = validateSpawnerModule()
	if not spawnerMod then
		return
	end

	-- Override core spawner functions
	overrideSpawnerFunctions(spawnerMod)

	-- Create utility functions
	local getIconDataByProgram = createIconDataWrapper()
	debugLog("getIconDataByProgram alias set, type = %s", tostring(type(getIconDataByProgram)))

	-- Define the local spawn function that will be used for bandit creation
	local spawnIndividualLocal = createLocalSpawnFunction()

	-- Capture the original Individual function
	local originalIndividual = ZD_CaptureOriginal(spawnerMod)

	-- Override the Individual function with our implementation
	ZD_OverrideIndividual(spawnerMod, originalIndividual, spawnIndividualLocal, customGenHere)

	-- Expose our spawn function for other parts of the code
	ZD_ExposeHelper(spawnerMod, spawnIndividualLocal)

	return spawnIndividualLocal
end

 

 

 

Oh YEAH, it's all coming together. I'm so proud of how much you've grown, and from what you said, you are probably going to get this done quite soon, at least I hope so.

I think I will soon post my roadmap for my version of it in the main thread, and you will see how much DIFFERENT things will be in this one, so much so, I think a lot of people will dislike it. (Mainly because I'm not going to do a Bandits Mod Support) And there are a LOT of things I need to solve to make things right. This new animation system is going to explode my head!

Posted (edited)

So where exactly is the mod for build 42? Because every time I go to previous pages the mod is deleted

Edited by Bertus
Posted
19 minutes ago, Bertus said:

So where exactly is the mod for build 42? Because every time I go to previous pages the mod is deleted


Still heavily WIP. Just wait a bit, and the mod will eventually come out. Whichever comes first, at least.

Posted

Hello BlaBla012345 — I made custom versions of the modder "Tomb"'s models using the attributes from your 3D models. They are prototypes and not usable as-is (I don't yet know how to use Blender well enough). For example the "objects" in the models have multiple meshes, which makes texture application poor on some parts of the body.

I'm uploading these models here so you can see how they turned out and, if you're interested, rework or remake them for one of ZomboLust's add-ons.

(I know you're probably already very busy with other projects, but I wanted to share them anyway.)

Male and Female custom model.zip

Posted
On 8/10/2025 at 7:59 PM, BlaBla012345 said:

Sorry, but there won’t be compatibility with that mod for ZomboLust.

What a pity
So can I use the new animations individually in B41 on ZomboWin?

Posted

I’ve got one day left before I head off (far away for work) for an entire month—until mid-September.
So I’m taking the time to reply now, since there’s been a big wave of posts over the past two days.
I’ll probably be pretty quiet until September.

On 8/10/2025 at 9:33 PM, SkyFlyWhite said:

I love the idea of a sort of "disguise" from getting covered and cummed in so much, although instead of directly killing the player maybe it gives certain nerfs instead of a direct death possibility? Or perhaps a setting if this idea is implemented.

Nerfs instead of certain death if you don’t wash off the “disguise” ?
Yeah, that’s probably how it’ll work.

I was thinking of heavy penalties—fatigue, disabled sprinting, etc.—and also that if the player is 'marked' by zombies (see tattoo/bukkake system), the invisibility effect would be canceled.
That means double trouble : severe debuffs plus zombies actively hunting you… imagine the scene !

 

On 8/10/2025 at 11:40 PM, 8BallAnnie said:

Percentage sliders for absolutely everything!

 

On 8/11/2025 at 12:09 AM, SkyFlyWhite said:

personally like the idea for percentage sliders for everything,

Good ideas overall.
From your two posts, what I’m taking away is that I need to look closely at what built-in systems PZ has for adding options to mods.
I think I’ve understood that Mod Options is dead since B42, so I’ll need to investigate that.
In short : settings for a lot of things, so each player can customize their own gameplay experience.

 

On 8/11/2025 at 3:43 PM, bueir said:

does anyone still have a compatible version of Bandits 41 ?

I deleted my save from the old version of Bandits since the author re-uploaded it on Steam.
I thought it would still work.
Sorry, but there’s nothing I can do now—I don’t have the files locally anymore.

 

On 8/11/2025 at 11:52 PM, Timerz said:

 

Oh YEAH, it's all coming together. I'm so proud of how much you've grown, and from what you said, you are probably going to get this done quite soon, at least I hope so.

I think I will soon post my roadmap for my version of it in the main thread, and you will see how much DIFFERENT things will be in this one, so much so, I think a lot of people will dislike it. (Mainly because I'm not going to do a Bandits Mod Support) And there are a LOT of things I need to solve to make things right. This new animation system is going to explode my head!

The animation system—let’s talk about it !

 

I’ve completely reworked my Blender workflow for creating and exporting FBX files.
I rewrote the bandit spawn point so it now actually uses the despawn point and direction of the zombie that was hit.
And now that the bandits seem to appear in the right place and facing the right way (no more turning around or wasting time), I’m moving on to adding the grapple tech system.

 

If all goes well, all I’ll have left after that is adding the tag system and creating F2B animations.


But yeah… the animation system looks like a real beast to understand and implement.

 

10 hours ago, vit509887 said:

Hello BlaBla012345 — I made custom versions of the modder "Tomb"'s models using the attributes from your 3D models. They are prototypes and not usable as-is (I don't yet know how to use Blender well enough). For example the "objects" in the models have multiple meshes, which makes texture application poor on some parts of the body.

I'm uploading these models here so you can see how they turned out and, if you're interested, rework or remake them for one of ZomboLust's add-ons.

Excellent !
Thanks and well done on your post.

 

I was actually planning to use that Tomb mod (as I mentioned in an earlier post) for the rework of my model mod.
Your file will make a great starting point for me.

 

1 hour ago, legion army said:

What a pity
So can I use the new animations individually in B41 on ZomboWin?

Either way, like you said yourself, this mod isn’t compatible with the Bandits mod, so…

 

You mean making ZomboLust animations directly usable in B41 ?
Impossible — the two systems are completely different and totally incompatible.

Posted
8 hours ago, BlaBla012345 said:

I’ve got one day left before I head off (far away for work) for an entire month—until mid-September.
So I’m taking the time to reply now, since there’s been a big wave of posts over the past two days.
I’ll probably be pretty quiet until September.

Nerfs instead of certain death if you don’t wash off the “disguise” ?
Yeah, that’s probably how it’ll work.

I was thinking of heavy penalties—fatigue, disabled sprinting, etc.—and also that if the player is 'marked' by zombies (see tattoo/bukkake system), the invisibility effect would be canceled.
That means double trouble : severe debuffs plus zombies actively hunting you… imagine the scene !

 

 

Good ideas overall.
From your two posts, what I’m taking away is that I need to look closely at what built-in systems PZ has for adding options to mods.
I think I’ve understood that Mod Options is dead since B42, so I’ll need to investigate that.
In short : settings for a lot of things, so each player can customize their own gameplay experience.

 

I deleted my save from the old version of Bandits since the author re-uploaded it on Steam.
I thought it would still work.
Sorry, but there’s nothing I can do now—I don’t have the files locally anymore.

 

The animation system—let’s talk about it !

 

I’ve completely reworked my Blender workflow for creating and exporting FBX files.
I rewrote the bandit spawn point so it now actually uses the despawn point and direction of the zombie that was hit.
And now that the bandits seem to appear in the right place and facing the right way (no more turning around or wasting time), I’m moving on to adding the grapple tech system.

 

If all goes well, all I’ll have left after that is adding the tag system and creating F2B animations.


But yeah… the animation system looks like a real beast to understand and implement.

 

Excellent !
Thanks and well done on your post.

 

I was actually planning to use that Tomb mod (as I mentioned in an earlier post) for the rework of my model mod.
Your file will make a great starting point for me.

 

Either way, like you said yourself, this mod isn’t compatible with the Bandits mod, so…

 

You mean making ZomboLust animations directly usable in B41 ?
Impossible — the two systems are completely different and totally incompatible.

Double trouble sounds like a great time for me! Poor Soul won't know what hit her when getting actively hunted down more then before. AAAA I couldn't be more excited!

Posted

Thanks BlaBla for your answer. However I did manage to make it work. For anyone wondering just get an old revisions of the bandit mod on Skymod, grab the '25 March' revision and it should work perfectly with the latest ZomboWin/Defeat, wich is 1.28 i believe. If it doesn't work, get a previous version you can find on the main zombowin loverslab page, 1.26 should work.

  • 3 weeks later...
Posted

Are there any gameplay incentives to fucking bandits instead of killing them? Perhaps some type of buff, or mind-breaking them into following you? Or is the main mechanical benefit that zombies won't kill you?

Posted

Hello, sorry for taking up your time. This is more of a request than anything but you see when in a gangbang my character gets stuck and the gangbang simply takes too long endurance is maxed, can’t run, there are a lotta zombies nearby. I wanna fast-forward, but the game stops me because of the nearby zombies. Would it be possible to add an option or tweak so fast-forward still works even if there are many zombies around? I dunno Java, so I’d really appreciate it if you could help or suggest a way to do this. I know this is not really a problem, but this will save a lot of time for me. Thanks a lot!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   1 member

×
×
  • Create New...