Project Zomboid: 42.4.0 Unstable

News

The Indie Stone announced the release of 42.4.0 Unstable for Project Zomboid today via their Discord and Steam site. If some zombie apocalypse action in Project Zomboid holds any interest for you, you can take a peek at the official patch message on their website, here. It’s a monstrous set of changes in a forum like format on their site.

I do love me some Zombie Apocalypse games, there is no doubt about that. PZ gets some play time from at least several of us in the group in spurts. As much as I love the game, I do feel some of the tasks (such as reading the manuals) is incredibly time consuming in multiplayer. Nothing, or at least nothing I can think of is more frustrating then to spend a chunk of time reading all the manuals you need for trade skill experience, only to go out and get waxed in a zombie horde shortly after getting all that complete.

Granted that might change with the upcoming build 42. In truth I haven’t been able to keep up with all the changes, and even if we did play, I’m doubtful we’d move over to the unstable build in this case. I mean, don’t get me wrong, several of us LOVE the game. But it’s already a bit punishing enough with the perma death scenarios. I’m not too keen on adding an ‘experimental’ like experience to the already added difficulty. But, a great big kudos to those of you that are ‘testing’ it out for us!

42.4.0 Unstable

NEW
– Added an Extended Placement UI.
– RMC on a 3D item on the ground to move it precisely.

– Added raccoons, though currently there are issues with their fence-climbing.
– Added 5 new flyers

– Build Window and HandCraft Window are now usable with a controller. To navigate between the different panes in these windows, press and hold the right shoulder button
  and use the D-pad.
– Added controller support to crafting stations that use ISCraftBenchPanel.
– Added controller support to ISFluidInfoUI.lua and ISFluidTransferUI.lua.
– Added using the right joystick to quickly change the value of ISSliderPanel.
– Chicken coop. This is now a tabbed window separating the egg-laying nests from the roosts.
– D-pad up radial menu displays the animal radial menu (with pet, pick up etc).
– D-pad right radial menu displays the “Designated Zones” option.
– Animal designated zones can be created by selecting start and end squares with the D-pad.
– Animal-info windows allowing renaming etc.
– Butcher hook ui.
– Livestock trailer ui.
– Added controller support to the Flyer/Newspaper windows.
  The X button toggles the text view.
  The Y button reveals the location on the world map.
– Don’t save and restore inventory-window and loot-window layout when using a controller.
  These are always positioned automatically at the bottom of the screen.
– Fixed inventory-window and loot-window column layout after resizing the screen, when using a controller.

– Added research progression for metal armor, both scrap welded and proper blacksmithed.

– The Debug Item List Viewer will now have columns displaying whether items can be: Crafted, Foraged or Found as Loot

– Added new sounds for resting on chairs, Old Fashioned Generator, Wood Log Gate
– Added missing recipe Forge Spade Head, this item had no recipe to create it.
– Added specific sprint to aim anims for weapon types.
– Added and repointed transition anims to use correct anims for sprint stops
– Added two new biomes depending if close to a lake or river

– Added tracking of Carbohydrates, Lipids and Proteins to the Body window, in General Debuggers option.
– Added scaleable sidebar icons


– Added vehicle.sound.alarm script property to allow a different sound for car alarms than the horn. If the alarm sound isn’t specified, the horn sound is used, if any.
– Added new Chickens foley sounds
– Add FluidContainer meta-entity system, and push fluidContainer components to meta, so rain collectors will be filled with water when player is away.

Changes to the Lua debugger:
– Added small / medium / large monospaced fonts.
  This is the “Noto Sans Mono” font. We use “Noto Sans” for Thai, and “Noto Sans Mono” has the same license (which I included).
– Added a combobox to the Lua debugger that allows switching between small / medium / large font sizes.
– Source-window line numbers are right justified.
– Source-window background color was changed from white to gray.
– AngelCodeFont no longer compresses font textures, this is already the case for most ui textures.

– Added “read” checkmarks to print media (brochures and fliers).
  IsoGameCharacter gained these methods:
    void addReadPrintMedia(String media_id);
    boolean isPrintMediaRead(String media_id);
    HashSet<String> getReadPrintMedia();

Animals now recognize rivers:
– If the zone includes some waters tiles (lake, river..) it’ll be shown in the zone UI.
– Animals will try to drink from river they can access before anything else.

Changed some behavior to eat grass.
– Animal will now look around him instead of purely under his feet.
– made other changes to try and make their behavior more consistent & smart.

– Updated a couple of rifle aim anims
– Added “Play Music When Paused” audio option.

BALANCE

– The ShopLooted story will no longer occur in single-room buildings. Some utility buildings used “electronicstore” or similar roomdefs for their single room, which means that police and bandit zombies could spawn inside them as a looted shop story.
– Added missing craftRecipe allowance for making nailed broken planks.
– Rebalanced Tableleg weapons.
– Chopping Logs and Large Branches into Firewood will produce Splinters; this is so chopping Firewood always produces a tinder item.
– Nails can be used to research the Forge Heading Tool craftRecipe.
– Added the following items: Improvised Screwdriver; Firewood; Firewood Bundle;Firewood with Nails.
– Added recipes to make an Improvised Screwdriver; Chop Firewood from Logs and Large Branches; Bundle Firewood; Unbundle Firewood; Firewood with Nails can be made using the general nails weapon craftRecipe.
– Firewood burns for longer than other wooden items by weight; by chopping Logs and Large Branches into Firewood you increase the length of time that they can be used as fuel for campfires, etc.
– Firewood and Firewood Bundles were added to some loot and story clutter tables.
– Added a wooden clay tool item and a craftRecipe to carve one; the icon and model already existed.
– Make Jar of Produce can also use Seasoning Salt.
– Nerfed Wooden Spade stats, it is supposed to be an improvised, primitive tool and stats were still too close to a standard spade for how easy it can be crafted.
– Updated Smash Watermelon recipe to use its own timed action, so sound and animation issues can be solved.
– Updated recipes that use crucibles so that they need to be empty.
– Updated Melt Sand and Melt Glass recipes to need a lighter or other way to start the fire.
– The MakeScrewdriver craftRecipe can be learned from melee weapon schematics and the Escaping Captivity recipe magazine.
– Added a wooden clay tool item and a craftRecipe to carve one; the icon and model already existed.
– Limited some actions such as drinking and cleaning bandages to fluid sources that contain only water or tainted water
– Updated drinking from IsoObjects (sinks/barrels) to use IsoGameCharacter:DrinkFluid() to ensure correct health effects with all fluid types.
– Characters will no longer autodrink from a bottle that is being filled, the action has to be completed first.
– Added a craftRecipe to carve wooden goblets.
– Reorganized the carving craftRecipe file to order recipes by skill level requirements.
– Added recipe research allowances for Forging Spade Heads to relevant items.
– Added a craftRecipe for sewing a Leather Tool Roll.
– Added a Crafted Baseball Bat item and the craftRecipe to make it. It requires Carving 9, and has to be learned. But also you can research it from wooden Baseball Bats, Large Branches, and Short Bats.
– Increased Campfire capacity to allow use of Buckets for water purification/cooking

– The looted/trashed buildings should have more broken and open doors, and more broken windows, to better signpost their status as looted & trashed.
– Ground floor locked windows in looted/trashed buildings will be unlocked.
– Corpses will now sometimes spawn outside of Trashed & Looted buildings; this is RNG dependant, and also “buildings” don’t really have much of a outside footprint, it’s basically a row a squares surrounding the building in most cases, so there’s not much real estate to work with.
– Trash will also spawn outside of Trashed & Looted buildings on ground squares. Again, not much real estate to work with here.
– Any ground floor locked doors will be destroyed.
– The basements of trashed & looted buildings will be less trashed and looted, proportional to how deep below ground level the individual basement floors may be.
– Halved the maximum size of buildings that can be trashed & looted.
– Reworked the corpse spawning in trashed buildings to use the new corpse spawning code.
– Additionally sometimes trashed buildings will have one or more zombies or corpses of bandits/survivalists/militia in them; this is rare, but as those outfits can have good loot, it will serve as “finding some of the missing loot.
– Reworked how a bunch of trashed build code works; checks to prevent story content occurring in kids rooms was preventing stuff from occurring in areas w/o rooms; in addition to some other checks were being too aggressive in preventing content occurring in some squares.
– Additionally more attention is paid to doors and windows, and locked closed garage doors should be broken.

– Added recipe research progression for several “tool” category items: masonry trowels; masonry chisels; (more) fleshing tool; (more) sickles; tweezers; forceps; files; whetstones; nails and heading tools from nail-spiked weapons; buckets; crowbars; trowels; etc.
– The CarveBat recipe was added to the pool of recipes that can be on a melee weapon schematic.
– Added the Improvised Screwdriver items to some attached weapon definitions. Bandits, Survivalist, and later game zombies may have them attached to or impaled within them.
– Iron and Steel Bars, Bar Halves, Rods and Rod Halves will break into halves when they break, like many other melee weapons.
– It’s possible that people may exploit this as a “materials processing” exploit; you should still be able to saw/forge/etc. broken rods/bars into halves as is, and it is arguable that

– Added research progression for pots, cutlery, pans, and saucepans and kettles (although their craft recipes are commented out).
– Rebalanced the skill level requirements for the welded weapons as they were too “bottom heavy”.
– Changed MakeSmallScrapWeapon to MakeSawbladeHatchet; it was a multi-recipe that could also make a scrap cleaver, but also there was already a scrap cleaver recipe.
– Halved the time required for the recipe research action.
– Having a Magnifying Glass or Loupe in either hand will further slightly reduce item research time.

– Added research progression for pots, cutlery and pans

– Increased the burn time of the firewood bundle to match unbundled firewood.
– Added an addCorpse function to IsoGridSquare; the code generates and drops corpses in multiple places so having a utility function to use instead will simplify matters.

– A players relevant highest skill level can reduce how long craftRecipes can take to perform; for every level the highest skill level is higher than the highest recipe skill requirement the time required to perform the craftRecipe will be reduced by 5%.
– Fixed times repaired not transferring from the weapon to the blade when dismantling blades. The times repaired inheritance for weapon parts is probably going to have more gremlins to flush out.
– Reorganized welded weapons recipe file by skill level.
– Rebalanced the weapons that can be produced by welding, generally strong reductions in durability, and lesser reductions in damage and criticals.
– The intent of these weapons is to be “crappier” crude versions of “properly crafted” weapons; under ideal circumstances a skilled blacksmith would produce properly crafted real weapons instead of the crude welded weapons.
– Rebalanced some weapons produced by knapping in regards to durability and damage output.
– Fixed several recipes having duplicate condition fields.
– Reorganized the knapping recipe file by skill levels requirements.
– Changed the category of some knapping-related weapon and tool assembly recipes from “Survival” to “Assembly” as almost all weapon and tool assembly recipes are in that category, especially ones involving sticking heads onto sticks like these ones.
– Minor tweaks/simplifications/consistency-ing to some knapping recipes.
– The knapp stone awl craftRecipe requires no skill level to perform.
– Rebalanced several Cudgel type weapons in regards to their damage and criticals.
– Rebalanced the skill level requirements of several improvised weapon recipes involving Carpentry or Maintenance. This is to make the weapon recipes, less bottom heavy, skill level requirement wise, with a more drawn out progression, and providing more room for blacksmithing to be a superior option (assuming materials and workstations).
– Some minor rebalancing of mace and morningstar type weapons.
– Consolidated some code for spawning corpses into IsoGridSquare.

– Added Coffee to the items that can spawn as kitchen countertop clutter.
– Added craftRecipe for making an improvised knife from a machete blade.
– Changed text display strings for Crude Sword/Shortswords and their blades to “Simple” Swords/Shortswords and Blades to be consistent with how most every other crude weapon and tool have had their display name string changed to “Simple”.
– Changed display text strings for Crude Whetstone to Improvised Whetstone, as above.
– Spiked bone clubs can be crafted.

– Applied placeholder values to crafted metal armor for Bullet Defense; this isn’t very realistic as-is, and is subject to change, but despite being quite low ranging from 5% to 20, ; ideally we will have better handling of armor types versus specific calibers of ammunition at some point, so this is to acknowledge that we aren’t ignoring the matter in the meantime.
– The Baseball trait teaches the Carve Baseball Bat craftRecipe.
– Added new display string for WeaponMag7 “Magazine: The Louisville Bruiser”, which teaches the Cave Baseball Bat craftRecipe.
– Added some checks to the other looted two building/store stories so that if the looted building option is disabled, those other similar-but-different stories from the “trashed and looted buildings” shouldn’t occur. They will also use the same limit on room numbers that the trashed and looted building story uses.
– Modified some general purpose crafting lua code used for Knapping and Carving to be more flexible/robust.
– Added craftRecipes for sawing Wooden Rods from Long Sticks, Tree BRanches from Saplings, and Small Handles from wooden rods. If you have a saw, and a source of Long Sticks/Saplings/Brooms/Mops/Hockey Sticks/etc, you will be able to produce Wooden Rods and Small Handles without any carving beyond carving Saplings and Hockey Sticks into Long Sticks, which doesn’t have any skill level requirement.

– Allow players to use liquids from different containers in craft recipes
– Added the item and craftRecipe for a Flint Saw and Scraper.
– This functions as a “crude saw” for some, but not all, craftRecipes (it can so simple/crude work but not fine work), as well as a fleshing tool.
– Saws and Crude Saws can be used to make Log Furniture in addition to Axes that can chop down trees.
– Added the item and craftRecipe for a Twig Broom.
– This does the things that a normal Broom does in regards to cleaning and being able to be used to make spears.
– Made the recipe for making rope from dogbane  the recipe for making it from hemp, and the recipes for making twine from dogbane and the recipe for making it from hemp or flax consistent in regards to their tools, durations, etc.

– Added animals skeleton with no heads.
– Balanced butchering meat given.

– Added the Trait “Mason” which provides 2 levels in the Masonry skill.
– Characters with the Mason trait know several workstation building recipes that involve bricks or stone and concrete.
– Adjusted the Masonry skill bonus provided by the Construction Worker profession from +3 to +2; it’s probably still too much for the point cost of the profession, but it should at least be consistent with the Mason trait, which is consistent with other Skill traits.
– The Masonry craftRecipe for making Stones from Large Stones provides more XP.
– The Masonry craftRecipe for making Stone Blocks from Stones now requires Masonry 1 and provides XP equivalent with it’s level requirement.
– Similarly the recipe for making Small Stone Wheels, Large Stone Wheels and Stone Anvils requires Masonry 2. Some of these arguably should be greater, to provide progression and more XP, but this is the initial rebalancing pass.
– Added stonemasonry recipes for making Stone Maul and Large Axe Heads using a Club Hammer and Masonry Chisel. These have a much higher skill level requirement than the knapping versions, and also don’t need to be learned. This is to provide some high level options for the stonemasonry skill, and it doesn’t seem unreasonable as well when using proper tools.
– These craftRecipes should eventually require a suitable workstation, such as using a flat boulder, versus being an AnySurfaceCraft.
– Changed how the learned recipe/granted xp messages are presented to the player. Although there is no control available over the duration of the message, the formatting has been changed to hopefully be easier and faster to read.
– Added the DontRecordInput inputFlag to the clay and concrete inputs used to build tiles and workstations.
– Added the item and craftRecipe for a Flint Saw.
– This functions as a “crude saw” for some, but not all, craftRecipes (it can so simple/crude work but not fine work).
– Saws and Crude Saws can be used to make Log Furniture in addition to Axes that can chop down trees..
– Added the item and craftRecipe for a Twig Broom.
– This does the things that a normal Broom does in regards to cleaning and being able to be used to make spears.
– Made the recipe for making rope from dogbane  the recipe for making it from hemp, and the recipes for making twine from dogbane and the recipe for making it from hemp or flax consistent in regards to their tools, durations, etc.
– Boosted the durability of the spears made using proper forged spear heads.
– Made the CopyBuildingKey craftRecipe not-researchable; it was too easy for any player to learn it from building keys, and is supposed to be more of a “criminal”/heist type thing.
– Added crafted bone and wood knitting needle items.
– Added craftRecipe to carve bone and wood crafted Knitting Needles.
– Added recipe magazine “Pioneering Carvers” that teaches the Carve Knitting Needles recipe; the recipes for carving bone Awls and Sewing Needles were also moved to this magazine from another one.
– Extend rain fluid dilution mechanics to dilute all fluid types/work on barrels.
– Added the Trait “Inventive” which provides a benefit with learning recipes from items or the autoLearn mechanic by reducing the required level; it still needs an icon.
– Added the Trait “Artisan” which provides +1 to Pottery and Glassmaking; it also still needs an icon.
– Tweaked the math for the level requirement calculations for the research mechanic; it will now round the calculated level to the nearest whole number, instead of always rounding down.
– Added the Flint Saw as a valid input for several crafting and building recipes.
– Added a craftRecipe to saw wooden Baseball Bats and nail-spiked Baseball Bats into Short Bats, which will also reset their condition if damaged.
– Consolidated the second spear dismantling recipe, ReclaimFromSpear2, with DismantleLongerImplement, as both craftRecipes output a broken long stick; the spears this recipe dismantles involved spear heads that have been mechanically attached to the spear shaft and their removal breaks the shaft versus “taped on” spears.
– Added a craftedRecipe DismantleGardenImplement for cases where a broken garden tool handle should be produced, and not a long stick; this should be consolidated with DismantleLongerImplement, but I’m not certain that multiple output mappers currently works as desired.
– Added the input tag ResearchInput; if the input item has recipes that the player can research they will learn them.
– Added the ResearchInput tag to the electronic and radio dismantling recipes.
– Added researchable progression to radio type items.
– Rakes can be dismantled for a Rake Head and broken Long Stick.
– The Siberian Bear Hunting recipe magazine also teaches the recipes for forging spear heads.
– Filleting fish provides Butchering XP and not Cooking XP.
– Balanced butchering further.
– Added rotting stage for animals, currently i only have bloodied skeleton, but rotten corpse (before skeleton) is coming.
– Rebalanced several carving recipe time requirements; they should be more consistent and sensible, as well as more generous in many cases.
– The Wooden Bucket carving recipe requirement has been increased to 4 from 3.
– Several carving recipes, including forks, buckets, goblets and spades, require being learned.
– Appropriate traits teach these recipes and appropriate recipe magazines teach them.
– However, alongside generous autoLearns, there are ways to research all of these recipes.
– Wood Spoons can be used to carve Wood Forks and Boon Spoons and be used to carve Bone Forks. This just makes sense but also allows for cunning XP goblins to double down their gains when crafting carved tableware.
– The Wooden Trowel can now be used like a Hand Trowel alongside being able to be used as a Plaster Trowel and a Masons Trowel.
– Adjusted the autoLearn requirements for some carving recipes in that they were too generous; they are still generous.
– Tires and Tires Pieces both provides less Tire Armor research recipes, only teaching Shin and Forearm Armor; however crafting those and researching them will teach additional tire armor recipes.
– Consolidated the metal mask craftRecipes by material into one recipe.
– Ammo Straps, Double Holsters and Crafted Hide Holsters can be cut up for a leather strip and buckle alongside Belts.
– Fixed some errors with “Base.Base.” in some craftRecipe scripts.
– The durability of stone, bone, and simple/crude metal spears was boosted; these all comprise “proper” spears, and as such are being slightly de-nerfed.
– Disabled some lua farming code for handling being damaged by vehicles; it was redundant as it is handled java-side.
– Several disassembly recipes for long and longer type implements were consolidated into one craftRecipe; it’s outputMapper should produce the correct head and broken handle for the dismantled object.
– Rebalanced Animal Bone club-type weapons.
– Added craftRecipes for processing Copper, Gold and Silver scrap, sheets, and bars.
– Added craftRecipes for forging Goblets and metal Cups.
– Restored craftRecipes for forging copper Kettles and Saucepans.
– Added craftRecipes for processing copper items into Copper Scrap; Copper Scrap can be made into Copper Sheets to craft Copper Items.
– Added craftRecipes for forging Gold and Silver Spoons, Butter Knives, and Forks.
– Added craftRecipe for forging the Jawbone Morningstar weapon.
– Added craftRecipes for producing Gold and Silver scrap by processing Gold and Silver jewellery.
– Although this will produce any appropriate gemstones for the processed items, this uses procedural OnCreate code to generate them, and they will not be displayed in the crafting UI; this is a case where it’s not practical to include that information in the crafting UI due to specificities of the craftRecipes in question.
– With this players should be able to generate Blacksmithing XP by producing Gold and Silver tableware, goblets, cups and masks, by scrapping Gold and Silver jewellery and producing Gold and Silver sheets from the scrap.
– Added recipe for rendering Metal Baseball Bat type weapons into Aluminum Scrap.
– Aluminum Scrap can be used for the Scrap Sheet Metal Weapon craftRecipes.
– Aluminum Scrap can be further rendered into Aluminum Fragments, which alongside Aluminum Foil, can be used for some Bomb and Radio recipes.
– Iron and Steel Scrap can be rendered into Iron and Steel Pieces and can be forged into chunks or bar quarters.
– Adjusted how the yields work for scrapping vehicles; a more useful spread of crafting materials should be produced.
– Adjusted the Carve Short Bat recipe to require a higher skill level, and to be learned, based on feedback; this is taught by appropriate professions, traits and magazines, and can be researched.
– Adjusted the Carve Wooden Spade recipe to require skill level 4 and not 3 also based on feedback.
– The Forge Buckle recipe needs to be learned; this is taught by appropriate professions, traits and magazines, and can be researched.
– Adjusted the weights of some metal scrap items for better consistency with crafting.

– Rebalanced nutrition values for alcoholic beverages.
– Removed XP for sub-dividing Fish Fillets; this was just so oversize Fish Fillets could be made to fit smaller containers, but players were using it as an XP generating exploit.
– Opening canned food with a knife or sharp stone is now AnySurfaceCraft and not InHandCraft; this is to make it less likely for players to unintentionally select this option when opening cans. Additionally with right-clicking you cannot both select the can and knife, and you can break a knife (or your hand) performing this craftRecipe. You should use a surface when stabbing a can open anyways.
– Based on community feedback, mildly nerfed Short Bat class weapons; their minimum damage value was reduced by 0.1, which means that damage, before additional calculations, will be 0.05 less on average.
– This doesn’t affect Spiked clubs and Maces, both of which are made from Short Bats; these are endgame Blacksmithing weapons and as such should be meta weapons.
– Increased the Knapping skill level requirement by 1 for the Large Stone Axe Head and Stone Maul Head craftRecipes; looking over community feedback, they have acquired a meta-weapon reputation, their statistics have already been nerfed but as-is they also had remarkably low skill level requirements compared to weapon crafts in general, so this may need to be increased further.
– All bomb/bomb-type weapon items have a maximum condition of 1; this is to prevent them from ever spawning in a “Worn” state from having a condition of less than 1/3rd maximum.
– Added Survival Schematics; they are like other Schematics but teach wilderness and post apocalypse type survival craftRecipes.
– Leather Drying Racks can be built using the Flint Saw item.
– Slight buff to brake-disc type weapons; as heavy-type weapons they were under performing.

– Road kills will now yield way less meat and of poor quality.
– Moved Dig Furrow in the Shovel sub context menu.
– Animals can now be added to graves.
– Butchered meat numbers/value will be reduced with time passed since animal’s death (start lowering at 12h).
– This meat can be rotten if the animal stayed dead for too long before butchering.
– Update the status of food for animal dead bodies (so it’ll say Stale/Rotten if needed).
– Added animal bodies rotten version, it takes 50h by default (hours for corpse removal sandbox option) to change the animal rotting stage (fresh -> rotten -> bloody skel -> skel -> removed).

– The time until maximum Trashed & Looted buildings has been changed from 56 days to 90 days.
– The Maximum Rat Index sandbox value has been changed from a default value of 100 to 50 and is also hard capped to 50.
– Weapons that do not generate Maintenance XP now have a tooltip warning the player as such.

– Removed the ability to remove buckets from forges.
– Removed XP from researching items.
– Reverted calls for adjustMaxTime in timed actions added in commit 26957 as it led to the multipliers being applied twice.
– Adjusted values in ISBaseTimedAction.adjustMaxTime so that unhappyness and drunkeness have a stronger effect.

– Boosted the xp, in general, for constructing tiles.
– This should now be, minimum, 10xp/per level of skill requirement; 1-6 xp for 0 skill tiles.
– This is because previously, with tile dismantling enabled, xp-wise it was far more productive to destroy tiles than to make them, by a high degree. The xp awards for building stuff were remarkably low compared to dismantling mechanics.
– Sledgehammers can spawn as surface clutter in Farm Storage and Garage roomdefs.
– Restore skull tags in inventory pane for hazardous fluids placed in world.
– Packing eggs in a carton sets the carton’s freeze time to the average freeze time of the 12 eggs.
– Restore reserve water to plumbed items when mains is off
– Fixed the “Discovered Recipes and Media” button possibly extending past the edge of the Info panel.
– Updated some buildings on the in-game map.

– Raised unhappiness and drunkenness effects so actions take two times longer to finish if you’re at max moodle level in one of them.
– Mild reduction in the chance/amount of armor and weapons that spawn on Survivalist outfit zombies.
– Nerf to the amount and kind of loot in late-game Bandit outfit zombies backpacks.
– Mild nerf to the amount of loot in late-game Survivalist outfit zombies backpacks.
– Both Bandits and Survivalist outfit zombies will have good stuff, they were just nudged to have slightly less good stuff.
– Some appropriate vehicle types have the possibility of spawning a Sledgehammer as part of their trunk loot.
– Extend plumbing FindExternalWaterSource tests to find water sources within range of ALL sprites of a multi-sprite IsoObject (e.g. Bath)
– Slightly reduced Old and Cheap Generators sound radius and volume; they are still louder than the good ones.


FIXES

– Fixed error with MakeImprovisedLantern craftRecipe.
– Fixed missing vehicle mechanics overlays for several vehicles.
– Fixed shin and thigh armor recipes outputting thigh and shin armor.
– Fixed interrupting of pour/fill/drink/empty leaving a fully filled or empty bottle.
– Fixed Chop tree, farming and paint cursors remaining open if the character enters a vehicle.
– Fixed Dismantle Medium Implement recipe, it could only use the standard Hammer as a tool.
– Fixed issue where fluid transfers sometimes transform all fluids into water
– Fixed issue where fluid transfers stopped partway through would leave a transfer either 0% or 100% complete only
– Fixed line endings of worldmap/docker-linux64.sh
– Fixed issues when medical satchel was shown in right hand.
– Fixed errors when some weapons break
– Fixed being able to chop down infinite trees with Stone Axes.
– Fixed character health UI for simplified chinese
– Fixed Crucibles, glazed and unglazed Ceramic Jars not being fluid containers and not being filled by rain.
– Fixed the Firewood with Nail weapon using the wrong sounds.
– Fixed an error with reclaiming rope from Firewood Bundles.
– Fixed All Clothes Unlocked list not fitting in its UI (especially on <2k res) + Renamed “Randomize” outfit button to “Random”
– Fixed incorrect spacing for tooltips with names,
– Fixed sizing of bottom right button sizes to match new “report bug” button,
– Fixed issues with spawn select advanced panel to fit with existing UI layout design ]
– Fixed splitscreen players seeing container highlights for other players.
– Fixed missing SeatMaterial parameter with carpentry seats.
– Fixed buildings containing another player being partially cutaway in splitscreen.
– Fixed thirst reaching negative values
– Fixed players not being able to slice fish that can’t fit in their inventories
– Fixed keys with ID == -1 being spawned
– Fixed the Amount of items being gained through foraging showing wrong number
– Fixed crops showing “remove” as first option when checking their status, as Info should be at the top
– Fixed Orange led light being missing from lightswitches when house is powered by a generator
– Fixed Error when weapons break or get stuck in zeds during combat.
– Fixed texture compression issues with floor overlays
– Fixed Petting Animal sounds being silent after the first time triggered.
– Fixed InventoryItem.onBreak() calling Lua code from the wrong thread while loading items.
– Fixed being unable to smelt broken items.
– Fixed some blacksmithing recipes producing items that were sharp; for consistency they should all produce blunt items that require sharpening.
– Fixed an error that can happen with OnBreak functions when a head part is processed and the item in question is a world item.
– Fixed some Pan items having inconsistent weights.
– Fixed Empty Jar not displaying a model in hand when being filled.
– Fixed flickering object highlighting.
– Fixed Players not being able to leave vehicle if they enter it while digging furrows
– Fixed “Cocoa: Regular windows do not have icons on macOS” warning on MacOS.
– Fixed an error when a character would attempt to research a recipe from an item outside of their inventory.
– Fixed an error where the item research debug text strings could communicate improper information in some instances, saying that skill levels were required when they were not for some items/recipes. This was only a “bug” debug-mode-information-wise; the mechanic worked as intended.
– Fixed plastering, painting and farming context-menu options being accessible when in a vehicle. Context menu now hidden when the player enters a vehicle.
– Fixed the player being able to turn  while transferring items between containers while sitting.
– Fixed issue with voice style data not saving with pre-sets.
– Fixed Horde Manager throwing errors after changing the spawn number
– Fixed zombies lunging forever at players across the sides of staircases.
– Fixed the most recent issue with tents, tile definitions and moveables; the old tents weren’t working moveables-wise.
– Fixed the carve spear craftRecipe having two OnCreates definitions in the script.
– Fixed some inputFlag processing code; when dismantled hafted implements with heads the conditions and times repaired should properly transfer to the dismantled head.
– Fixed Voice pitch slider being non-functional
– Fixed zombie Thumps on barbed wire fences playing wrong sound
– Fixed eggs never unfreezing when frozen
– Fixed a wall blocking a staircase, and a cutaway issue.
– Fixed issue where text for ‘need to learn recipe’ in HandcraftPanel recipe header was empty
– Fixed issue where possible craft qty would show incorrectly as zero if recipe was not yet learned
– Fixed issue where bowl was not being consumed for Make Cake Batter recipe
– Fixed some clay tiles still counting as dirt.
– Fixed Cook trait references to the separate Make Jar recipes.
– Fixed a typo in one postcard name.
– Fixed cars facing wrong direction at the drive-in theater, but it needs better parameters so it isn’t enforced for other areas of Rosewood.
– Fixed butchering animals from ground not producing blood on your character.
– Fixed coughing making animal stressed and running.
– Fixed an error with the logic of the craft recipe research system when evaluating whether a recipe should be unable to be researched.
– Fixed an error that can occur when repairing saws.
– Fixed an error with the FillPipe craftRecipe where it was producing an extra pipe.
– Fixed animals not drinking from placed bowls/buckets/etc due to IsoWorldInventoryObject changes
– Fixed Add IsoWorldInventoryObject(placed objects) in FluidContainer meta so bowls/dishes/etc will collect rainwater when left outside.
– Fixed Discovered Recipes and Media window having icons too big,
– Fixed search window not using good\bad highlight colours
– Fixed key researching.
– Fixed Horde Manager’s IsAnimationRecording flag not working for newly spawned zeds. Was getting ignored because AnimationPlayer was not yet initialized.
– Fixed missing fluid filled visual states for IsoWorldInventoryObjects
– Fixed missing canAddFluid check to FluidContainerUpdateSystem rain mixing to prevent illegal mixing of fluids
– Fix names of fluid containers in context menu (more verbose names)
– Fixed inconsistent FluidContainer contextual options
– Fixed Clay Mug clipping with floor
– Fixed the heresy of not being able to pet raccoons.
– Fixed Spiffo Mug not filling with rain.
– Fixed Tile Floor missing from build menu.
– Fixed “GetWaterFromDispenser” sound when drinking from a water dispenser.
– Fixed chop-tree controller prompt from saying “Carpentry”, now “Chop down tree”.
– Fixed the chop-tree timed action failing due to IsoGameCharacter.isHandModelOverriddenByCurrentCharacterAction().
– Fixed “Press Tab to change mode.” showing in the furniture-moving tooltip when using a controller.
– Fixed the new larger game-speed icons in the controller Back-button radial menu not being used.
– Fixed “UNKNOWN GLFW KEY CODE: -1” being printed to console.  This may appear for sound-volume keyboard dials.
– Fixed Crawler Zombies are missing some conditions to be set during the game.
– Fixed pain being capped at 1 when it should be 100, pain is back!
– Fixed Poppy and Mint seed packets using wrong icons.
– Fixed Depth of Furrows. Depth textures added for the flat farming and gardening tiles, the ones without plants sticking out.
– Fixed missing depth textures to two location_restaurant_diner_01 tiles.
– Fixed Crude and log fences having blockAllTheSquare”
– Fixed some plants have missing Best Month/Poor month/Min water” info
– Fixed Poisonous berries and mushrooms missing the poisonous tag in foraging sometimes”
– Fixed issue with character getting stuck in place
– Fixed a problem when adding dead animals via hands in a trailer.
– Fixed deer not having a trailer size (only debug).
– Fixed put corpse in grave tooltip.
– Fixed unpaintable trailer home walls
– Fixed buildings that are one square wide or tall always being blacked out when collapsed.
– Fixed some instances of Zeds sometimes get stuck in bite animation when shot from a distance
– Fixed missing animal name in the title of the genome UI.
– Fixed small and large crucibles’ models being the same size. Crucibles’ models will now display fluids inside them when filled.
– Fixed some stuff with troughs.
– Fixed some missing crafting for raccoon leather.
– Fixed being unable to right-click on squares adjacent to water.
– Fixed wrong shortsword blade recipe in some weapon schematics.
– Fixed IsoCurtain.ToggleDoor() not changing IsoCurtain.open.
– Fixed ISEquippedItem tooltips appearing when the in-game map is displayed (or any other window covers the icons). Sort items below the “Possible Items” header in the Crafting ui by name.
– Fixed sometimes displaying possible items in the Crafting ui when the “Possible Items” header is collapsed.
– Fixed Show Info UI ‘blinking’ glitch when selecting option from world context menu from afar.
– Fixed stutters when right clicking hundreds of objects on ground – still happens but much improved
– Fixed severe freezing when right clicking inventory with 100s of nails in inventory or near world.

FORAGING

Add new zones for improved player experience] + [General foraging fixes] + [New forage definitions]

  -added luautils.lerp(), luautils.roughlyEqual()
     -added lerp support for all ISZoneDisplay transitions, should no longer flicker during zone transitions.
     -removed some unnecessary handling of fade stepping and some minor stranded/unused code in search mode
  -fixed missing Road Zone images in ISZoneDisplay.
  -fixed clouds and stars not showing in ISZoneDisplay.
  -adjusted alpha step for fog in ISZoneDisplay, it now has a very subtle rolling effect.
  -fixed the first time foraging tutorial page showing the incorrect page.
  -added support for new forage zones and handling of overlapping zones in ISZoneDisplay and statistics debug.
  -added support for mixed forage zone handling, loot tables can be generated for mixed zones by specifying the zones they contain.
    -this also supports handling of doubled up zones such as farm/farmland and Nav/ForagingNav which have identical tables
  -adjusted BiomeMapConfig to generate new forage zones
  -added forage zone definitions for all biomes in BiomeMapConfig.lua
  -added support for new biomes in ISZoneDisplay zone images (they just use Forest/DeepForest for now)
  -added support for chance ratios for mixed zones, and category tables now adjust accordingly
  -removed ammo spawns from vegitation loot table to avoid issues with mixed zones
  -added a lot of debug logging to forage tables and info about tables/chance injection
  -fixed multiples of categories displayed in ISZoneDisplay.
  -added very high chances for mushrooms and firewood to be found in Organic/Birch to differentiate them from regular forests a tad.
  -added chance to find stones where it seemed appropriate in new zones based on the existing entries.
  -added the final pieces for mixed categories, zones, chanceRatio etc. and inserting items into the forage loot tables.
    -during init step, these chances are added to both category and item definitions.
    -the existing table generation can now handle the mixes without needing any changes, as these are done in advance.
  -categories are now defined before zones during forageSystem init step as this was needed to add chances during init step.
  -added new step populateMixedZoneCategories() to forageSystem init.
  -added forage chances for all categories with a variety of spawns across the new biomes.
  -added forageSystem.statisticsDebug version 2.0 for setting spawn chances for biomes more easily.
    -this generates and saves a full copy of the loot table with all chances calculated in statisticsDebug.log.
    -it is broken down into zone/month/weather/timeofday, then by category, then finally by item.
    -added exact chance calculation for each item in forageSystem.statisticsDebug().
    -adjusted stats file text to be much easier to split into spreadsheet columns.
  -added CraftingMaterials category for foraging, added existing bottleneck items to this category.
    -these are still in the junk items table as well, as items can have multiple categories.
    -crafting mats category is hidden to not be focusable and uncommon to find, determined searchers should find any of these in urban areas eventually.
    -less likely outside of towns but still possible.
  -added multiple category definitions to Junk and Trash tables to diversify their loot a little more.
  -increased chances of finding Trash items in several biomes.
  -removed some debug info (item count per zone) as it’s no longer functional with stacked zones.
    -left some comments related to re-implementing this if it is needed in future for spawn density debugging.
  -added sprite affinities for boulders and stone-like deposits, to add a small chance of finding a Rock category item nearby.
  -added slightly higher chance to forage Clay during and after rain.

-added very slightly higher chance to find Flint for a while after it has rained.
  -added tiny chance to find trash in OrganicForest.
  -removed Farm chances from all categories and items, as these are now handled by containsBiomes support for parent zone FarmLand.
  -more loot table adjustments to tweaking for CraftingMaterials and fixed some missing categories in zones.
  -commented out items which don’t exist in the forage tables, mostly old water container items.
  -combined stacked identical zones to hide them from players, these are no longer visible anywhere in search mode.
    -F2 picker can still reveal stacked identical zones in debug mode.
  -split, documented and commented out forageSystem.statisticsDebug and forageSystem.createDebugLog(_doItemStats) for debug statistics generation.
  -tidied and commented and documented some further forage log info that isn’t needed except for very specific area testing.
  -added translation placeholders for the new biomes. These are just based on the names or where it would be near identical e.g. PRForest=Primary Forest and PHForest=Acidic Forest.
  -added forage defs for some more misc items, minor tables tidying of commented entries
  -moved forage definitions table clearing to a dedicated function in forageSystem.init() to occur before any events trigger.
    -previously this was clearing the tables whenever populate<x>Defs() was called, which meant definitions were not able to be populated via the helpers: add<x>Def functions on event triggers.
    -should now be possible to add and extend the definition tables using the preAdd<x>Defs events as originally intended.
    -this should also be helpful for modders to keep the correct order of operations when adding definitions via Events for the future mixed biome support.
    -tidied up some comments related to the clearing of tables.
  -more forageSystem tidy up around helper function comments.
  -removed some unused and localised variables in forageSystem.
  -added a basic “FAQ” for forageSystem modder reference on how to add items and best practices.
  -added an example for category definitions.
  -restored forageSystem.doItemDefCheck() for listing all non-forageable items. It’s only available from the debug console.
    -added save-to-file support for forageSystem.doItemDefCheck() to ease checking over all non-forage items.
  -added many new items to foraging tables. This time focusing on missing wild plants, herbs, insects and most seed-bearing plants.
  -reorganised some forage table items into appropriate categories.
  -reduced the amount of seeds given by wild crops and seed bearing plants by 50% on average.
  -added a scaling value for category chances in ISZoneDisplay to help colour coding cover a wider range.
  -tidied up some values which could be re-used in ISZoneDisplay.
  -added Bones foraging category for crafting materials, it’s fairly common outside of towns.
  -increased chance to forage the CraftingMaterials category slightly.
  -added Artifacts category for foraging. This one is rare and only found outside of towns.
    -added more artifacts to forage loot.
  -split Categories/Junk.lua into six new category files to be easier to maintain.
    -Artifacts, Bones, CraftingMaterials, JunkFood, JunkWeapons, Trash now have their own files.
  -tidied up a few more “Farm” zone forage chances where “FarmLand” is defined.


TECHNICAL

– Limited the maximum size of console.txt, coop-console.txt and server-console.txt.
  Console.txt and coop-console.txt default to a maximum of 5 megabytes.
  Server-console.txt defaults to a maximum of 20 megabytes.
  This limit can be changed in two ways:
  1) With the JVM parameter “zomboid.consoleDotTxtSizeKB”.
     For example, -Dzomboid.ConsoleDotTxtSizeKB=1024 sets the maximum file size to 1024 kilobytes or 1 megabyte.
  2) With the command-line argument “-console_dot_txt_size_kb”.
     For example, -console_dot_txt_size_kb=1024 sets the maximum file size to 1024 kilobytes or 1 megabyte.
  This size is limited between 512 (half a megabyte) and 1024 x 100 (100 megabytes).
  When the size limit is reached, the log file is cleared and writing starts at the beginning.
– BallisticsController::getCameraTarget() now uses the same BulletZtoPZWorldScale as a forthcoming feature
– Remove legacy .pcx “support” from codebase
– Add more usage of BoxedStaticValues where it makes sense
– Replaced PZBallistics::updatedBallisticsRotation with updateBallisticsAimDirection for improved clarity and consistency.
– BallisticsController::calculateMuzzlePosition now returns an unnormalized ballistics direction vector to better align with subsequent calculations.
– Corrected the conversion of the ballistics direction vector passed to PZBullet; the up vector is now properly scaled before normalization.
– CombatManager::calculateBallistics() now utilizes BallisticsController::calculateMuzzlePosition() for more accurate ballistics direction calculations, replacing the previous renderedAngle approach.
– Enabled camera targeting for weapons with isRangeFalloff enabled (e.g., Shotguns).
– Updated PZBullet Win32/64 natives
– Remove unused deprecated DDS texture loading
– Remove com.sixlegs.png library, used in a single place and could be replaced with a single line
– Delete unused de.jarnbjo.vorbis code
– Updated license/README.txt to rename a library and remove an unused license
– Remove javax.vecmath source and dependency
– Change profiling from .invoke(…) style that boxes primitives to using try-with-resources instead.
– Remove unused pcj library code and license
– simplify BloodClothingType and BloodBodyPartType
– normalize whitespace in BloodClothingPartType/BloodBodyPartType
– Move all testcode to src/test/
– remove svn:ignore’d file
– Added Durability componentType
– Added Durability to BottleBeer, BeerImported, CanBeer, BeerEmpty, BeerCanEmpty
– CombatManager::shootPlacedItems() to replace string name checks with durability component checks
– Only keep single stdlib.lua/lbc and load it from workdir/
– Remove some Thigglewhat from the code
– Remove more unused/needed custom container/vector/matrix classes
– delete unused custom collection classes. If we need it again, it is called: high-scale-lib
– Change ‘unittests’ into real tests
– Added IsoGameCharacter::isHandModelOverriddenByCurrentCharacterAction()
– Updated IsoGameCharacter::isWeaponReady with additional hand model override check, which prevents primaryHandModel.m_modelScript null reference
– Added IsoGameCharacter::isRangedWeaponReady() returns true for melee weapons
– Refactored Moodle, Moodles, MoodleType, MoodleUI, MoodleTextureSet
– Updated Moodles_EN entries, moodle entry string identifiers now must match exactly MoodleType string names
– ILuaGameCharacter replaced CanAttack with isEnduranceSufficientForAction
– ISChopTreeAction::isValid() now checks isEnduranceSufficientForAction() rather than CanAttack()
– Implemented PhysicsHitReaction ImGui editing panel for real-time adjustments.
– Added BodyParts translator entries to provide localization support.
– Added PhysicsHitReactionScript to handle physics-based hit reactions data.
– Refactored IsoWindow and its dependent classes. Simplified logic, defined access control, replaced hardcoded numbers with named constants, removed redundant casts.
– Fixed bug in IsoWindow::damage() where the sandbox option for TriggerHouseAlarm would never get evaluated in its call to IsoWindow::smashWindow().
– Refactored IsoBarricade and IsoWindow and its dependent classes.  Simplified logic and improved readability, defined proper access control, replaced hardcoded values with named constants, removed redundant casts.
– Added methods to force and reset various IsoBarricade and IsoWindow states.
– Introduced DebugOptions to set the barricade state for all IsoWindow and IsoBarricades instances in the current cell.
– Implemented HandWeapon::canAttackPierceTransparentWall, allowing firearms, WeaponType.spear, and WeaponType.knife to attack through transparent walls ie fences.
– Fixed a missing toggle in IsoCurtain::ToggleDoor().
– Reworked CombatManager::attackCollisionCheck() to resolve logic discrepancies between IsoWindow and IsoBarricade usage.