Project Zomboid cover
Project Zomboid screenshot
Linux PC Mac Steam Gog
Genre: Role-playing (RPG), Simulator, Indie

Project Zomboid

Camp GigaMart

 

Hey all, we’ve had our heads deep in MP stuff this past ten days – so please excuse a blog that’s heavy on busywork and housekeeping.

We released 41.73 to stable last week, which came with an unanticipated issue that saw Linux servers (of which there are many) having frequent crashes – generally when multiple users tried to connect at the same time.

This wasn’t great, to say the least, so a lot of the B41 team’s bandwidth has gone into investigating, testing and finding a solution for this over the last ten days.

We’ve recently released version 41.74 to the Unstable beta, which has fixed the crash issue at our end – and we would ask that anyone who hasn’t been able to play due to linux server crashes to try it out. This includes a full update to Valve’s latest Steam API.

If you continue to experience crashes on the Unstable branch after this patch, please head to our Discord techsupport channel or forums and send us your hs_err_pid**.log file (you’ll find this in the server installation folder) in addition to a download link to a .zip file of your Home/Zomboid folder (remove the “Saves” folder from it to save space).

Doing a wholesale update to the Steam networking interface like this isn’t small beans, and it has thrown up a few issues that we will be remedying in the coming days – but in the interest of getting folks missing out on their PZ ASAP we have released the fix to Unstable to get people back on-board, and report back on any other misbehaviour.

We will also be making some of the new anti-cheat additions far less twitchy, as these too caused issues for some people on 41.73 launch.

NEXT PATCH


Slightly logjammed behind 41.74 is a wide-ranging patch full of many and various things. To minimise future disruption to B41 players we are thinking that it may well be the last major patch before all coders are moved to B42 and more feature-based development.

Clearly there will still be fixes and maintenance where necessary. We’ll be wanting to leave 41 in the best state that we can, and with as many annoyances removed as possible. Plans can change of course, but this currently our direction.

Some of the logjammed items ready-coded and awaiting internal integration and testing are:

41.74 UNSTABLE Released



Note: Parts of this patch were previously released as a 41.73 Unstable hotfix.*
A version bump ensures players running the Stable client get a clearer error (version mismatch) when connecting to servers running the Unstable branch.


This patch addressed the Linux server crashes.
Please let us know about any remaining crashes and the performance you're experiencing.

If you continue to experience crashes on the Unstable branch after this patch, please send us your hs_err_pid**.log file (you'll find this in the server installation folder) in addition to a .zip file of your Home/Zomboid folder (remove the "Saves" folder from it to save space). If you're submitting them outside of our Discord techsupport channel, please make sure to provide a download link from your filesharing service of choice.


MP



41.73 Released

41.73 compiled changelist, also including 41.72 from the unstable branch



Due to character limitations, the full changelog can be found on our forums and in the pastebin below:
https://theindiestone.com/forums/index.php?/topic/58075-4173-released
https://pastebin.com/PW9F8TNn


NEW



- Added the MapRemotePlayerVisibility server option for Multiplayer.
    1 = Remote players aren't visible on the in-game map
    2 = Remote players in the same faction or sharing a safehouse are visible
    3 = Remote players are always visible

- The OPT button in the in-game map that was previously visible only in debug mode or for admins is now always visible.
  When not in debug mode, these options are available:
    - Players
    - Remote Players (client only)
    - Player Names (client only)
    - Symbols

- Added MapRemotePlayerVisibility server option to the server-settings editor and admin panel.
 
- Added a new volume slider to the Audio options which affects the jump-scare sound.
 
- Fixed updates to the map causing zombies to spawn inside previously cleared buildings.
    - Fixed BuildingDef.calculateMetaID() and RoomDef.calculateMetaID() possibly creating the same ID for different buildings or rooms. This was why zombies would respawn in some already-seen rooms.

- Give zombies that are targeting a player higher priority for pathfinding than other zombies.

- Added new loot maps from Pat Bren.
- Split the single Louisville map-item into nine separate maps.
- Added Louisville maps to the loot tables.
 
- Gas container tooltip tweaks:
    1) When adding fuel to a generator, tooltips show the percentage the generator's fuel percentage will increase.
    2) When adding/siphoning fuel to/from a vehicle, tooltips show the item capacity in liters (to match the mechanics ui).
    3) When taking fuel from a gas pump, tooltips show the item capacity in drainable units.

- Updated Community Translations
- Added icons + textures for Medical/Trauma Bag and Canned Fruit Beverage.

- Added highlighting to changed Zombie Lore Sandbox Options (options that differ from Apocalypse mode are highlighted).
- Added an "AttachedToGlass" tile prop to fix signs attached to windows not being removed when breaking the window.
- Prevent the loot window from popping open when clicking on objects when using the furniture-manipulation tools.

- Added "Default=" to combobox sandbox-option tooltips.

- Allow empty bottles to store gasoline.
- Added water capacity in context tooltip when filling water container (if only 1 item type)
- Updated community translations.
- Updated credits.

- Improved icon draw for context menu
- Added ISContextMenu.addDebugOption() which adds an option with iconTexture=media/ui/BugIcon.png.
- Added a way to rename a savefile in the load-game "More..." panel.

- Added the various pictures frame missing (not spawning yet, also no inventory icon yet - currently using empty frame icon)

- Allow building double doors inside buildings.  This is to fix a bug where double doors couldn't be built on some outer walls of buildings.
- Added checks for wall-like obstacles that should prevent opening or closing double doors.
- Don't allow building stairs where there are walls or obstacles at the top. The player will pass through these when going up the stairs. Building walls or obstacles at the top of stairs was already disallowed.

- Incorporated Baph's latest additions, which include: new movable script items; new modder-orientated procedural distributions tables; new zombie outfit distributions; new vehicle distributions; more through junk tables; new items.
- Longer evolved recipe names; now up to 3 ingredients will be displayed in the display name of compound recipe items.
- Updated ISAddItemToRecipe and translation text with translation string support for new recipe naming system.
 
- Added a panel to the Attachment Editor (Shift-F7) that is displayed when a "world" attachment is selected. This new panel displays the selected model as it would appear on the ground.

- Removed the -Xss1280k stack-size JVM parameter from Linux ProjectZomboid.json files.
- Increased Linux and Mac -Xmx=2048m to -Xmx=3072m max-heap JVM parameter to match Windows.


SFX



- Updated sound banks.
    - New action music track.
    - Fixed one male zombie voice looping the Hit sound.
    - Added missing sound for taking water from a dispenser.

- Added an ambient sound to the Gas-2-Go pumps.

- Set the value of the FMOD parameter "Generator" on powered items so they play a sound when powered by a generator.

- Added ZombieCrawlLungeSwing and ZombieCrawlLungeHit sounds for zombie fence/window crawling attacks.
- Zombies play their Attack and GettingUp sounds during fence/window crawling attack animation.
 

MAP



- Full export of the current Knox Event map. This will be the final B41 map update.
    - Updates many farms and farmsteads
    - Improves upper class areas in Louisville
    - Adds many new tiles on the tilesheets
    - Fixes many and various community-reported map issues and bugs
 

FOOD AND RECIPES



- New Ice Cream Cones now melt and produce a Melted Ice Cream Cone item.
- New Gravy Boat, Baloney Slices, Salami, Salami Slices, and Snack Cakes models.
- New Canned Condensed Milk item; can be used for the same recipes as milk.
- Balance adjusted assorted values of food items and recipes.
- Appropriate bottles can now hold gasoline.
- Baloney and salami can be sliced.
- Many food items have more options for being used as evolved recipe ingredients.
- Recipes for Onigiri; Baguette Dough; Biscuit Dough; Meat Patty; Scooping Ice Cream; and Trays of Cookie Dough.
- Crayons can be used to write notes and mark the map.
- Toast can be made from Bread Slices by cooking them.
- New recipe for a Cheese Sandwich item; cook a Cheese Sandwich to make it into a Grilled Cheese Sandwich.
- Evolved Recipes for Ice Cream Cones; Sweet Pies; Bread; Toast; Bowls of Oatmeal; Mixed Beverages; and Glasses of Wine and Beer. This makes it possible to make foods such as Ice Cream Cones with candy and fruit on them, chocolate, cheese, or sunflower seed Bread, Toast with beans or avocado on it, Bowls of Oatmeal with berries and honey, cocktails, and such.
- Whole Pizza item added.
- Glasses and cup items can be filled with water.
- WildGarlic item replaced by WildGarlic2 which is edible; this was done so that Wild Garlic could be a food item and be used in recipes. Otherwise identical to the old Wild Garlic.
- Canned Condensed Milk item; can be used for the same recipes as milk.
- Maggots that spawn with zombie corpses will be mildly poisonous.
- Added evolved recipe item PizzaRecipe; "Pizza(Uncooked)" can be used to make an evolved recipe pizza with toppings.
- When Hot Drink beverages are made using Black Sage, Common Mallow, or Lemon Grass the medicinal properties of those items are transferred to the Beverage, "Herbal Teas".
- For herbal tea purposes, Hot Drinks are more flexible re ingredients and have special naming.
- Coffee and Espresso Machine stoves will now only accept mugs and other appropriate items.
- Added placeholder texture for Bag_MedicalBag.
- Added BrokenGlass tag to broken glass movables and smashed bottle, and added recipecode code for the tag, for modding purposes.
- Added support for the tag "SewingNeedle"; this will allow modders to add new mod items that can perform tailoring and wound stitching tasks.
- More flexible Tag support for writing notes.
- Added Tomato Paste item for pizza crafting.
- Added Prepare Pizza recipe to make a RecipePizza base evolved recipe item.
 

BALANCE


- Baloney, Salami, Ham, Onions, and Watermelon must be sliced before being able to be used in evolved recipes.
- Watermelon must be sliced or smashed before being able to eat it.
- Values of many food items adjusted for balance, consistency, and QOL purposes such as allowing one instance of an item to be used in more evolved recipe portions.
- Only Bread Slices and Toast can be placed inside Toasters.
- Some recipes now require a bowl as well as a spatula, spoon or fork, to mix ingredients.
- Many recipes adjusted to allow for more ingredient flexibility.
- Hot water is now required to make Bowls of Oatmeal. Tim is now satisfied.
- Added new param to Recipe: "InSameInventory". When this param true items gets only from same outermost inventory. (Need for fix Rip clothing only from player inventory or only from Floor/Container)
- Changed Rip Clothing recipe
- HandWeapon.weaponSprite is saved if it is different than the item-script's value.
- Slightly increased zed attraction to gunshots in MP
- Reduced the endurance loss when missing a hit (especially when pushing).
- Set sprite properties on the "Wood Pegboard" and "Wood Top Workbench" in location_business_machinery_01 so they are movable.
- Added all the missing translations to Moveables_EN.txt. Any missing translations for this are printed to the console when loading a game.
- Added a "Slice Onion" recipe so Fried Onion Rings can be made.
- Made the Composter thumpable by zombies.

- Sometimes the corpses that spawn as the player explores the world will be fake dead.
- As corpses progress in rot stages they have a chance of becoming fake dead.
- Additional appropriate corpses spawned in randomized world stories will rarely be fake dead.
- As corpses progress in rot stages they have a chance of spawning maggots in their inventory and in their square.

- Food value and evolved recipe name adjustments for more flexible recipe usage and shorter compound names.
- Obese is now mutually exclusive with Light Eater and Very Underweight is mutually exclusive with Hearty Appetite at character creations.

- Adjusted weight of Spears
- Floor tiles will now provide a maximum of 1 nail when dismantled.
- Eggs are dangerous uncooked but now with a greatly reduced chance of causing food sickness.
- Ice Cream Cones now melt and produce a Melted Ice Cream Cone item.

- Ginseng now provides an Endurance Buff when used to make a Hot Beverage as a spice.
- Added Basil to more recipes.
- Better handling of evolved recipe item name when they only have spice ingredients.

- Added the ability to install Makeshift Radios into vehicles; this was done for consistency with the requested fix of allowing Makeshift HAM radios to be installed in Ham radio vehicles.
- Allow vehicles that have HAM radios to allow any sort of HAM radio installed in them; Luxury and Modern Cars will also always spawn with Premium Radios installed.
- CDs in Premium radios will transfer to/from the vehicle they are being installed into/uninstalled from.


ANIMS



- Added new fill from bourbon bottle anim
- Changed fill from bourbon bottle xml to use new anim

Emote Wheel adjustments:
- Adjusted some emote bone masks to reduce clipping
- Added some stealth emote versions to reduce clipping and posing awkwardness
- Added emote states for different weapon poses

- Added an eating animation for WaterPotPasta WaterPotRice. The animation is the same as for drinking out of a pot.
 
Idle extension adjustments:
- Adjusted normal stance extensions bone masks to avoid clipping and awkward poses
- Added normal stance extensions anims, where appropriate
- Added normal stance extension xml for different weapon stances, where appropriate
 
- Added masks to extended idle xmls to not clip as much,
- Added relevant extended idle anims where needed
- Capped off hoodieUP xfiles to stop transparency
- Adjusted hoodieUP texture for new cap
- Added blood locations to a couple of missing shirts
- Re-exported female and zombie female base textures after eliminating some erroneous pixels causing holes
- Adjusted Hat_Spiffo mask to display properly on character
- re-exported missed zombie body textures that had outlying pixels
- Adjusted male and female HighViz vests to visually work similar to hunting vests
- Reworked Male and Female HighViz vests
- Changed HighViz vest body location
- Tweaked Hunting vest masks to work better with underlying clothes

 

MP



- Various anti-cheat improvements

- Sync and physics improvements for vehicles.
    - Refactored and decreased vehicle physics packet size.
    - Vehicle interpolation was refactored and improved .

- Improved towing physics and behaviour.
    - Updated PZBullet library on all platforms.
    - Rope constraint is added to PZBullet. Now used for vehicles instead of z-offset for point-to-point constraint.


- Optimized Vehicle authorization on exit

- Allow admins to repair clothes via Edit -> Condition, and remove holes when the item is set to max condition when the item is in their inventory.
- Visual data for damaged/fixed clothing will now sync between clients.
    
- Hit reaction translation length is now calculated by appropriate animation clip

- Use WaveSignal packet on client
- Improve auth/towing for cases with two drivers/swap tow

- Stopped clients updating rotting corpses and fake-dead corpses.
- Added check for IsoDeadBody.getHumanVisual() being null.

- Server will send the success result of recipes checksum validation if the client is untouchable.
    - The game will calculate the checksum using the original recipe name.


- The driver now stops the vehicle before they exit from the vehicle or switch seat.
    - Added ISBaseTimedAction timed action.
    - The BaseVehicle.setForceBrake function was added. Calling this function activates the brakes for 1 second.

- The SystemDisabler.doDisableTunePhysicDelay variable was added

- If FPS is capped the updatePhysic function receives time delta uses the PerformanceSettings.getLockFPS function.

- The game server will not send the PlayerUpdateReliable packets from players who are far away.

- Improvements for some anti-cheat checks
- ServerOptions to enable/disable AntiCheatProtectionType checks for types 21-24 are added.
- Added log message for LUA debugger


- Improve vehicle logging
    - Add DebugLogStream noise methods
    - Logs can be filtered by severity
- Reformatted log streams for damage, death, and multiplayer log types

- Added server log command for vehicle traces (ex.: "log vehicle trace" or "log ve t" for short)
    - Command entered in general chat tab changes severity on the client
    - Command entered in admin chat tab changes severity on the server

- Increased allowed map_meta.bin and map_zone.bin file size from 20MB to 50MB in multiplayer.

- Fixed Zed appearance not syncing between players.
- Fixed one player being able to use two radios / walkie talkies.
- Fixed text not displaying above the placed HAM radio if there is a Walkie talkie in your hands.
- Fixed vehicle radio using wrong coordinates.
- Fixed vehicle radio not working in the same way as world placed radio.
- Fixed other vehicle radio issues (radio stations, text, chat, VOIP).
- Fixed vehicle radio text processing.
- Fixed trailer authorizations / floaty trailers.
- Fixed Item Remove tool not removing items from containers on a server.
- Fixed clients sending StopSound packets to the server for zombie vocals.
- Fixed clients sending climb-over-fence sounds and climb-through-window sounds for players and zombies. It seems each client runs the ClimbOverFenceState and ClimbThroughWindowState, so these sounds may be kept local.
- Fixed clients sending climb-over-wall sounds.
- Fixed seat authorizations.
- Fixed null pointer exception in the VehicleManager.serverPacket function.
- Fixed incorrect delay-tuning algorithm.
- Fixed issues with Handle BufferOverflowException sending map_meta.bin and map_zone.bin for servers that use many map mods.
- Fixed issues when characters are hit by trailers.
- Fixed corpses disappeared when killed by trailer
- Fixed issues with vehicle physics debug log messages.
- Fixed Admin being kicked because of incorrect checksum.
- Fixed car changing its place after re-login.
- Fixed normal vehicle not being removable in mods.
- Fixed movement sound when vehicle is stopped.
- Fixed movement sound when player changed seat from driver to passenger. Redundant vehicle packet EngineSound flag is removed.
- Fixed disappearing trailers.
- Fixed physics update limits.
- Fixed a vehicle and towed vehicle having different physic delays right after they were attached, causing clients to see the two closer than they actually were.
- Fixed attached cars being disconnected after re-login.
- Fixed passenger not being able to exit attached car if they occupy driver's seat while the car is being towed.
- Fixed attached trailer twitching after player gets in car. The server gives authorization for a short time to a player if both vehicles don't have drivers.
- Fixed empty RequestGetFull being sent.
- Fixed vehicle passenger could have vehicle authorization after collision.
- Fixed vehicle collision owner.
- Fixed tow re-attach.
- Fixed vehicle seat switching.
- Fixed passengers seeing black boxes at high speeds.
- Fixed vehicle not damaging players after re-login.
- Fixed vehicle local simulation pass through another vehicle.
- Fixed player can't become owner of pushed vehicle.
- Fixed bouncing vehicle authorization at the end of local simulation.
- Fixed player can exit or sleep in moving car.
- Fixed rare incorrect vehicles authorization after towing.
- Fixed engine sound disappearing without a driver.
- Fixed car not stopping when driver changes their place due to cruise control.
- Fixed error when try to type "[" in Item list viewer.
- Fixed bug in the GameTime class. The class had insufficient precision when calculating the time in the syncServerTime function.
- Fixed car stopping condition. The vehicle is stopped if the speed is less than 0.8 kmph.
- Fixed clipping vehicles.
- Fixed remote cars lag. The stepSimulation function will receive fixed update period. This period will not depend from FPS.
- Fixed Vehicle simulation speed depending on locked fps.
- Fixed the server kicking players when SystemDisabler.doAllowDebugConnections variable was set to true.

- Added MapRemotePlayerVisibility server option to the server-settings editor and admin panel.


MODS



- Improved log for lua errors. Now it shows if it modified file error
- Added list of mods in Pause menu + this list show mods that cause errors
- Added additional check to Vehicle Create, Update and Install Radios that may help prevent mods that modify what data is sent to it from causing errors.


FORAGING



- Adjusted the position of foraging pin icons and direction arrows. The arrows always pointed to the northwest corner of a square, which didn't look right for dropped items.

- Turn the player to face a forage item when picking it up.

- Fixed the foraging system not handling non-rectangular zones (i.e., polygon or thick polyline zones).
- Zone.getRandomSquareInZone() now handles polygon and thick polyline zones.
- Zone.getTotalArea() returns the area of polygon and thick polyline zones.
    Note this isn't an accurate count of the squares in such zones, it is the sum of the area of each triangle that forms the polygon.
    For other types of zones, width * height is returned.
- Added the OnLoadedMapZones event which is called after map_zone.bin is loaded.
    As before, the existing OnLoadMapZones event is triggered before map_zone.bin is loaded.
- forageSystem.init() is called by the new OnLoadedMapZones event instead of OnLoadMapZones.
- forageSystem.integrityCheck() checks whether the original map zone represented by each ForageZone still exists.

- Changed double click behaviour of search mode pins to place items into the current selected player inventory panel if possible
- Adjusted the search mode snow cover penalty limit as snowy weather combination could easily hit the penalty cap
- Fixed an exploit with search focus when spamming the search mode button which could force items to change type
- Fixed a visual issue with search focus trigger after spotting items which caused picked up items to sometimes be the original item

 

ADMIN/DEBUG



- Added Brush Tool for copying, destroying, and building specific Tiles, as well as a Fire, Smoke, and Explosion-Brush. .
    - Controls:
    - Turn on Brush Tool cheat via the Debug Menu -> "Cheats" -> "Brush Tool"..
    - Right-Click on any tile -> "Brush Tool Manager", "Copy tile", "Destroy Tile".
    - When a tile was picked from the Bruth Tool Manager -> keys "[" and "]" for scrolling between tiles.

- Added trigger thunder tool (for admins).
- Added respawn new loot in container by RMC-ContextOption on container button (when LootZed cheat on or isAdmin).

- Changed LootZed manager opening on RMC-ContextOption on container button.
- Allowed admin to create any VHS out of spawned VHS-home (like in debug).
- Added sync for Health panel cheats.
- Trailers debug is improved.
- Small fix to Lua closure.
- Improved spawn vehicle menu.
- Added ability to change weight in Player Stats window.

- Added destroying objects without a sledgehammer if building cheat is on.
- Added sliders for change weight and calories in debug panel.
- Added Step Into, Step Over, and Resume buttons to the Lua debugger.


- Improved ContextMenu
        - Now you can add icons for context options:
                local myOption = context:addOption("My option name", ...)
                myOption.iconTexture = getTexture("media/ui/MyIconForOption.png")

- Added new functions for context: insertOptionAfter(...), insertOptionBefore(...), removeOptionByName(...), getMenuOptionNames(...)
- Improved Debug/Admin options.

- Added new options for doors - Now you can set a building ID for doors and force-lock doors inside buildings.
    - Added Door Options can be found in the Right-Click Context Menu -> Objects.
    - To lock a door inside a building, set a Building Key ID for the door, set Force-Lock to "True" and click "Objects" -> "Door Lock" in the context menu. A key for the door can be spawned via the "Get Key" option.
    
- Added 'make noise' options to attract zombies.
- Added option for removing all zombies in a zone to the Admin tools.
- Added icons in context menu for ADMIN/DEBUG options.
- Added elapsed time since server started in server statistics info.
- Added access to some Admin tools for moderators.
- Added an external anim debug UI for Martin.

- Removed the line "Press Esc to open Admin panel" from Server toolbox UI

Slapdashdoid



Hello all! Afraid this will be a more hastily put together than usual Thursdoid, usual Thursdoid writer is away this week, and we originally planned to do a stable release today.

Last minute, however, literally a couple of hours ago in fact, we concluded that this would be a bad idea not only in the middle of the Steam Survival Sale, but also a big week long and rather huge Spanish streamer event (go check it out!) that heralded some of our biggest Twitch numbers ever (thanks again to Silithur for organizing it!).

Stable releases are always nerve-wracking, but doubled up with the zombie respawn issues that we’ve been struggling with on unstable it just felt like a bad time to throw any dice. We believe those issues are fixed, and have done significant internal testing, however throwing it in front of a huge number of players on stable we can’t be absolutely sure it won’t still cause problems, particularly with mods, so doing a release today under these circumstances seemed a risky endeavour with so many new people being exposed to the game.

As such, we will likely wait until the coming Monday to flip the switch. This gives us a few more days to see if the zombie spawning reports on the unstable branch start to disappear after the fix went live and is probably the safer option, as eager as we are to see the update out and free up the team for bigger commits toward the next update.


41.73



So for those who haven’t dipped their toe into unstable, here’s a few highlights of what to expect:

Liquid Zedball



Haylo survivors.

41.73 STABLE


We have the next patch to the stable branch primed and ready to go, however an issue that our fantastic Unstable beta testers have flagged is keeping it held in its pen for a little longer.

Players reported that some houses they’d cleared were spawning zeds upon booting up the new build, which alerted us to a snag in our map export process not dealing with map boundaries changing with map expansions. All previous map expansions came along with forced save incompatibility so this crept through unnoticed until now.

While it’s an aggravation rather than a save-breaker, we didn’t want to send a build with a known issue out to the masses – and have spent the last few days setting up a fix. This will need some testing, after which we’ll be looking to pump out the latest version next week.

If you’re interested in the changelist, or want to jump in to try it out, then you can find the unstable release notes for 41.72 and 41.73 behind the hotlinks.


42 CONTENT


One of the focus points of Build 42 is on extended survival in the months and years beyond the initial Knox Event outbreak.

For this, we are revamping our crafting system – and Turbo’s role has been in laying new foundations for a set-up that allows for: crafted items that have more RPG-like variable attributes based on the crafter’s skill, stats of input items that are reflected in the attributes of a final output item, and the ability of the game itself to recognise all these different attributes when an item is being passed between all of its various different locations and systems.

The next stage of this work, meanwhile, has been in taking this same sort of mentality to the liquids in the game – and also making them ever more interesting in our new crafting set-up.


WET STUFF


Let’s start with a video, and then move into some explanation.



So what exactly does this mean for the water, paint, gas, alcohol, washing detergent and bleach of the Knox Event?

Essentially all fluids will be defined and stored in a global registry, which is where we as devs can add new vanilla liquids – but also will make the system very moddable.

Each definition will store basic info such as ID, name, colour etc – then has different categories it can belong to like Beverage, Alcoholic, Fuel, Flammable and such. Beyond that we also tie in properties per litre of this particular fluid: for example Carbs, Proteins, Alcohol percentage or Energy if it’s a flammable fuel.

Liquids that are hazardous or poisonous can also have modifiers that configure the maximum poison effect, and how the effect behaves when mixed.

So yes, we’re going to have the most realistic bleach-drinking ever seen in gaming.


CONTAINERS





Containers are the coding class that actually store the fluids, and are the way in which the game code interacts with the above definitions.

Inventory items, objects found in the world and vehicles will all have a fluid container – which will allow them to store and use the liquids/fuels/whatever that they contain. Each container also has information stored with it that shows what particular fluids have been mixed in, and their content percentages relative to each other.

The system calculates and caches the summary of all the containing fluids properties based on their percentages. So, if you add 80% Soda and 20% pure alcohol the mixture fluid in the container will have 80% of the soda’s carbs, proteins etc and 20% alcohol. Then, when transferred again, the right ratios will still be maintained.


USAGE


Finally, we hear you cry, cocktail mixing will be a part of the apocalypse!

Yes, but also consider the applications this will bring to post-apocalyptic crafting – as well as to more basic stuff like mixing paints to create different colours, providing different fuels and different ways to tamper with said fuels.

Certain versions of our planned workstations, say one for brewing, could have one or more ‘fluidcontainers’ attached – while also allowing other ingredients as item inputs. Likewise we can have recipes that require more precise mixing and concentrations should we desire it.



The system does retain some control over your George’s Marvellous Medicine creations. We can put limits around what can, and cannot, be mixed – however we’re not 100% on how many limitations we will put on things right now. This will probably come through testing later down the line.

Unrestricted mixing would mean, for example, that any Fluid can be mixed with Fuel, which would mean that the energy value property per litre would go down when mixed, and that anything using the fuel such as a car or generator would have its operation and potential damage governed by the sort of fuel that had been put in.

The ability to recognise tampered fuel, poison etc. would (as usual) be gated behind the game’s professions – so a mechanic might smell something suspicious with watered down gas, or a chef might spot something odd with a mild concentration of something nasty in a bottle of juice.

When it comes to poisonous liquids, each has a maximum effect (mild, medium, severe, deadly etc) and control parameters such as a minimum volume and mix ratio. So, if a poison has max effect ‘deadly’ and the minimum amount required for death is 200ml – and you have 100ml mixed into a bottle – then the final effect when drinking will most likely be a medium poisoning.

The new system will also add new depth to such things as filling up a vehicle with gas, or siphoning gas from a car’s tank – but we’ll also retain the game’s current quick context options like “fill bottle from tap” to keep things speedy.


HUTCHES


Domestic and wild animals, albeit with fairly basic AI brains, will also be a part of Build 42 – and we have already shown our cows, sheep and deer. A fairly realistic take on poultry-keeping will also be part of this.

Please note the following UI is super WIP! We may well end up with icons instead of the 3D chickens.



Based on our own experiences with keeping chickens – if you have a henhouse you will have to close its door every night after your brood have gone in to roost. Otherwise there’s a very real chance of Fantastic Mister Fox paying a visit and stealing a few, and potentially leave others dead in their pen.

You’d be advised not to forget to let your hens back out in the morning either – for fear of them losing their condition, and adding to the mess in the henhouse that will need cleaning out.

Hens will also enter the nesting boxes within the henhouse to lay their eggs, and from which you’ll have to collect the eggs on a regular basis – if you haven’t collected recently then hens will choose to lay outside in their pen instead, where there’s an added risk of them being eaten by wild animals or going bad.


OTHER STUFF


While we’re going in DEEP (as is generally our way) on stuff like the above – Build 42 will also feature all manner of other improvements to the game engine, MP systems and general zombie survival and early game stuff too. So don’t fret too much if aspects of the above don’t exactly match your own play-style.

It should also be said that it’s still some ways off – partly because of dev illness (and recovery!) that we’ve discussed before, and partly because a proportion of the team are still maintaining and improving Build 41.

From now on you’ll likely notice the changelist of 41 patches shrink a little, as team members are taken off 41 and plugged into work on features within the 42 matrix.


JOB AD AGAIN


We are back on the hunt for an Animations Engineer / Technical Wizard – most likely someone from the AAA game development space who has pines for joining a close-knit team of indie devs. If this is you, or someone you know, then our job page lives here!

This week’s forlorn firemen from OtakuYazawa. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Block of Italicised Text would like to direct your attention to the PZ Wiki should you feel like editing or amending something, and the PZ Mailing List that can send you update notifications once builds get released. We also live on Twitter right here! Our Discord is open for chat and hijinks too. Experienced games dev and want to work with us? Details here.

41.73 UNSTABLE Released



Barring any necessary hotfixes, this will likely be the last unstable patch before pushing the contents of 41.72 and 41.73 into the main stable branch.


NEW


41.72 UNSTABLE Released



NEW



41.72 Unstable

Today we are releasing version 41.72 to the Unstable beta.

If you need directions to this, then here’s a handy gif!



As always with the Unstable beta – be aware that some mods might break.

We don’t anticipate a huge amount of disruption with 41.72, but should any of your workshop mods become non-operational then please inform the relevant creators – and be patient while they find the time to update their wares. They have jobs / families / lives too!

So what’s in 41.72? Well the changelist can be found here on our forums, and there’s a lot of small tweaks and fixes to scroll through, but we’ll detail the main stuff here also.

It’s always HUGELY helpful for us when people, and server owners, jump over to the unstable beta – so please dive in and let us know how you find it.

41.72


<*>Lots of general stability and security work has gone into MP – and specifically work on vehicles when you are driving alongside (or are a passenger sitting next to) players with far higher or lower pings than your good self.
<*>The first of several layers of polish to the game’s food and recipes. New foodstuffs, improved containers, expanded recipes and all manner of different things to put together to feed yourself and your doomed friends. Various elements of balance too and, as mentioned before, no more footballs that can be jammed into a toaster.
<*>Fellow co-op, faction and safehouse member positions can now be seen on your in-game map should you choose to enable it.


<*>An improvement to the way in which mod errors are reported. A list of mods has been added to the pause menu, and whenever one is erroring out then it’ll be flagged within the list. This is going in alongside an improved lua error log that shows whether any files reported in call stacks are being overridden by mods. This should help modders and our support teams no end.
<*>The game’s foraging system will now understand polygonal foraging zones on the map, rather than rely on its former basic rectangular brain. This should help with decreasing the amount of non-forageable spaces on the map.
<*>A slight tweak to zed pathfinding, which means zombies targeting players have a higher priority in the game code than those shambling around more aimlessly.
<*>The final large map export that we’ll be doing before Build 42, most likely. This is primarily to fix user reported map bugs, but also contains improved farmsteads, scarecrows (that might be bugged and appear as mannequins currently – sorry) and improved Louisville upper class districts.


<*>Alongside the above there are various new tiles going into the game: including baby cribs, heavy factory machinery, standing floor lamps, farm related tiles, ATM machines, heavy safes, medical related tiles, and car wash tiles.


Migration vs Craft



Hello survivors! Today marks the beginning of one of the most significant and important periods in the modern world’s social and religious calendar: the Steam Summer Sale!

 
Because of this, all you existing survivors will no doubt get a little swamped with all the fresh meat turning up for the PZ grinder.

The Zomboid community has always been amazing in terms of supporting new players, and this time won’t be any different, but our tech and support teams will be working flat-out – most likely.

As such we just thought we’d say that (entirely fictitious and non-existent) bonus Spiffo points will be available for those who jump into threads to give advice or survival tips to survivors fresh to the Knox Event.

Likewise if you are one of the aforementioned noobs: hello! This is a dev blog we do every two weeks.


PATCH 41.72


We are still working on the next update to Build 41, which we are hoping to release to an Unstable beta as soon as we possibly can.

The hold-up (we were originally planning to put this out two weeks ago) is due to us wanting to smoothen out MP issues that arise when driving alongside (or in the same car as) players with a far higher or lower ping than yourself. It becomes very stop-start, and quite unplayable.

These are essentially the edge-case ramifications of the necessary decision we made to remove physics-calculations from the server, but there are a lot of people playing PZ these days so edge-cases aren’t an inconsiderable number of players.

The MP team have put a LOT of work into improving this over the past two weeks, and as soon as we’ve had a successful internal test with their latest changes we will feel in a position to punt the build out into unstable.

A top line of major changes in 41.72 includes: fellow players optionally visible on the in-game map, new loot maps, new SFX and a new music track, polished emotes and a new way for players to be able to identify exactly which mods are misbehaving when they throw errors. Also an admin brush tool letting server chiefs paint items and walls etc. onto an ongoing game, and reams of small issue bug fixes.

Additions that have gone in over the last two weeks also include:

 
<*>A huge amount of polish to the game’s food and recipes from BlairAlgol: filling in illogical gaps, expanding recipes, making foodstuffs previously absent from food crafting part of the system and making sure that you can no longer store a football in a toaster. Also a fair amount of food-related balance and common sense additions.
<*>An improvement beneath the hood to foraging – meaning that the game will be able to recognise polygonal foraging zones on the map, rather than the more inaccurate squares and rectangles it currently works from.

The map team are also currently gearing up to do a final export of the current Build 41 map ready for the 41.72 unstable release. This will contain all the polish recently mixed into the main map, after which the team will turn to concentrate purely on mapping new areas beyond the current boundaries.


There’s nothing huge in this map update, we are primarily releasing it so that all the map bugs the community have been reporting are fixed up before the team moves onto Build 42 content, but there are a few treats:

 
<*>Improved farms and farmsteads in readiness for 42’s animals, these include scarecrows that can be dressed up in the same way as shop mannequins.



<*>Improved rich district houses in Louisville
<*>Various new tiles like baby cribs, heavy factory machinery, standing floor lamps, farm related tiles, atm machines, heavy safes, medical related tiles, and new car wash tiles. [And no, baby cribs are not a harbinger of baby zeds]



We are now at a point at which it’s increasingly becoming a pain keeping 41 and 42 content separate on our internal build. We won’t be calling time on 41 patches any time super-soon, we’ll leave it polished and stable, but we’re certainly now well on the way the flipping the switch and working purely on Build 42 content. (Clearly we will still be able to return to implement super-important fixes and changes though)


42 CONTENT


We haven’t spotlit much from Build 42 recently – partly because one of its primary coders had been seriously ill (now recovered), and partly because a lot of what’s been done recently isn’t super visual yet.

However, if you’ll forgive the primarily textual blog, here’s a few updates on what’s been happening. First from our newly-healthy Turbo, who is responsible for our crafting update.


CRAFTING IMPROVEMENTS


“Hello! This is Turbo! As mentioned in earlier blogs, the new craft update introduces a good bunch of new professions, new items, crafting tree and profession work stations etc as well as some other changes to how the game code ‘creates’ and records things.”

“To explain what I’m currently working on and why, I’ll focus on a few aspects of the update:”

A) Crafted items that have more RPG-like variable attributes that are based on the crafter’s skill.

B) Stats of input items that may also influence the attributes of a final output item.

C) The fact that a newly crafted item will be able to be placed as what we call a worldobject, then picked up again to item form – with all its attributes transferred in the game code between the two.”

“As an example, we are currently working on crafting that will occur deep into the apocalypse: so a blacksmith may be making a hammer which requires a wooden tool handle and a hammerhead as the input. The wooden tool handle may have a ‘quality’ and ‘condition’ attribute with values that are based on the skill of carpenter who made it,  and perhaps for the ‘quality’ of the wood used by them. Likewise, the hammerhead may have similar attributes – based on the skills of the blacksmith who made it, and the attributes of the ore/iron used in the craft.”

“Mixed into this we also have to take into account aspects such as the skill levels of the crafter – and also take in a random factor so that not everything produced is of a uniform quality.”

“The attribute system I’m currently working on should help with these kind of things, and it will not only be used for the new stuff in 42’s crafting update – but we will also be able to refactor things currently in the game’s existing crafting systems to work with it all really easily.”

“Lastly, a simple use case example. (And this is an example – not a promise of item inclusion!)”

 
<*>Consider a shotgun item that can be crafted with attributes like damage, range and condition – based on the skills of the player who has been upgrading, improving and caring for it.
<*>The shotgun is then crafted into a new shotgun trap item, where the attributes of the original shotgun are copied over.
<*>The trap item is placed on the world as what we call an IsoObject – and the attributes are once again carried over to it. The range and damage attributes are now being used for the trap’s code.
<*>The trap gets triggered a few times – lowering the condition attribute.
<*>Another player decides to disassemble the trap to retrieve the shotgun from it, and the newly instanced shotgun item copies the attributes from the trap – and we end up with the correct damage and range values as it was originally crafted with. However, it now also has  a lowered condition due to its activity while it was being used in the trap.”

“With the new system I’m coding, this daisychain of steps can be achieved with very minimal additional coding required.”


LES ANIMAUX


“Hello everyone! RJ here.”

“Okay, so everything that’s outside of your current surroundings in PZ doesn’t really exist. It exists as ‘meta’ – it isn’t streamed in, and the game calculates hordes moving around in distant places.”  

“For animals, however – this needs to change somewhat. You need to be able to travel the distance of the map, but for the game to still remember things about them that don’t matter for shambling zombies. Animals need to age, eat and drink – if you leave them too long they can’t be in perfect condition when you get back. They, most likely, need to be dead.”

“Not only are there lots of things to consider with animal, but there could also be a LOT of them on the map – although we’re current not 100% on our final list we have models for rats, squirrels, larger birds, deer and domesticated animals. So, even though the game knows everything about them and their movement – there’s a risk that when they’re properly streamed it might get too intensive for the CPU.”

“To avoid this I have coded it so that their stats (hunger, thirst, age etc) are updated every in-game hour. Realistically you’ll likely only have one or two cows, but if you want to breed rats for… some inexplicable reason you could end up with a ton of them. We don’t want players with 100+ animals having their stats updated every tick, or things could melt.”

“As such, animals won’t be updated real-time while they are off-screen (except for animals in a migration path, more on that below) but they will update themselves once you (or anyone else) returns to them. So be sure to fill up their feeding trough before you head out on loot run!”


LA MIGRATION DES ANIMAUX


“We don’t want wild animals to always spawn in the same place. So for creatures like deer, we need to have them follow a set path – as they usually do in real life. This is being done through additions that Tim has made to WorldZed – and where we can ‘simply’ draw all the paths that animals could take – with nodes all along it where they can eat, drink, etc.”

“It’ll be up to the player to try to understand and learn these paths, so you’ll know where you could find your animals to hunt. We can also perhaps provide lootable items that can mark up rough hunting trails on your in-game map too.”

“This aspect of animals will be updated in the meta though, as animals need to always be on the move and some animal paths will cross with others – meaning that a group of deer could decide to change its path if it chooses to.”

“A deer group will contain all relevant members of the deer family. If you kill the buck in a deer group, they won’t have fawns for quite some time – until they find another buck to add into their group. As such, it will be important for players to recognise what animals they should kill: which are still too young, which might be pregnant etc.”

“It’s not done for B42 yet, but we are planning tracking to an extent via the deer excrement they leave behind and its freshness – all discovered via the foraging system. This way you’ll start to know on your server/game, what are the path animals are currently on, and could quite easily track back to them to “collect” your meat. Again, this aspect isn’t 100% up for inclusion yet – but hopefully shines a light on our plans.”


JOB AD MK II


Sadly due to unforeseen circumstances we are back on the hunt for an Animations Engineer / Technical Wizard  – most likely someone from the AAA game development space who has pines for joining a close-knit team of indie devs. If this is you, or someone you know, then our job page lives here!


Today’s Rosewood base from Poffie_was_here. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Block of Italicised Text would like to direct your attention to the PZ Wiki should you feel like editing or amending something, and the PZ Mailing List that can send you update notifications once builds get released. We also live on Twitter right here! Our Discord is open for chat and hijinks too. Experienced games dev and want to work with us? Details here.

BaZil Brush



Hey all, here’s a quick update on what we are all up to.

Our initial plan was to release our next 41.72 patch to the Unstable beta today, but annoyingly last night’s internal playtest had too many niggles with vehicle gameplay for us to comfortably let you loose on it.

This is slightly annoying in terms of today’s blog, but probably not quite as annoying as you happily downloading the new version only for MP passengers to be stuck revving on the tarmac while their drivers whizz off towards Louisville.

Still, once the MP Strike Force have checked everything out and we’ve had another (more successful) test then this is some of the stuff that will be punted out for you to try out:

  • As mentioned in the last blog, the opt-in ability to see fellow MP players in your faction or safehouse on your in-game map.
  • A huge range of new and improved admin powers that should breathe a little more life into online play. First and foremost of these is a brush tool that will allow admins to create tiles, walls, fire, smoke, water etc. in-game.

    There’s also the ability to easily trigger thunder, a more synced health panel, improved spawning of vehicles and trailers and the ability to change player weights. Also, also are more zombie-attracting options, improved zed spawns and some powers over whether doors are locked or not.

    Here’s a quick video Aiteron has made to show it all off:

  • Another more minor, but quite pleasant all the same, addition from Aiteron is the possibility of adding icons to the context menu. As seen here.




  • New loot maps. Previously we didn’t have any loot maps for Louisville, but Tim has now integrated a bunch from the hand of Pat_Bren into the loot table. There are nine different maps in all, which means that as well as the usual ‘treasure map’ aspects you will be able to reveal a ninth of the Louisville map upon reading them.


  • Also of note in .72 is an improvement to the way in which mod errors are reported. We have added a list of mods to the pause menu, and if one of them is causing errors and ‘the red box of doom’ then the culprit will be highlighted within the list.
  • Perhaps of greater import to mod authors and our tech support team, however, is the improved lua error log that goes with the above: this will show if any files reported in call stacks are overridden by mods. We hope that this will allow modders, players and our own community liaison peeps to easier find mod conflicts and other issues.



SWEAT THE SMALL STUFF


While it’s not exactly excitement dynamite, we know, this week we hit a point at which our internal tasklist board got a bit… silly. When you have been making a game for as long as we have there is a tendency for minor tasks, small bug fixes and ‘easy win’ suggestions to stack up, and up, and up…

The boards were just clogged, and it was hard to see the wood for the trees – and as such we pulled some coders from their features to blitz through and give our testing and production staff some temporary relief. Not sexy: we know, but also necessary for the sanity of some of our team.

This sort of stuff:


Having made a sizable dent in this sort of bug, everyone is now back at their usual post – but ‘Enforced Small Task Clearance Week’ also culminated in an event that will hopefully mean that we don’t have to have one of these mandated periods again in future.

Prolific modder Blair Algol has joined the team, and his role will be clearing out as many of the remaining hundreds (!) of these minor (but sometimes time-consuming) issues as he can.

Blair’s many mods touch so many different areas of the game that it seemed like a very natural fit for such a duty, while he also, of course, comes packaged with many ideas of how to make modding life easier for others in the community too.

Once the boards have been cleared, and Blair has a firmer grip on the codebase, it’s also our hope that he will be able to bring some of his own ideas and ingenuity into the game proper.


SOUND PHASE III


Much like the Marvel movies, our soundscape improvement operations have worked in phases – and we recently had the meeting that kicked off Phase 3. The following are Noiseworks/Formosa’s next primary missions:

  • Improvements to how the sound system deals with multiplayer characters and sound priorities. Primary work here is to try and solve the issues where sounds drop out due to clashes in sound priorities and limits when multiple players are around.
  • Expand the reactive music beyond action moments. The ultimate goal is to allow the other non-action tracks to evolve and change: triggered by walking into buildings, looting a container, or any other little action that may trigger a change in the track that’s playing. Likewise making sure that they all also blend more organically between each other.
  • Gameplay related sound effects, like modelling the realistic effects of using firearms in enclosed spaces without ear protectors. Also: improved noises for large crowds of zeds, sprinters and bullet world impacts if the coding team can provide their support for implementation.



OTHER STUFF


We are currently debating whether to release the map team’s current work (fixes, polish, improved farm buildings and agricultural areas, more defined Louisville upper class suburbs) in a 41 patch, or whether to outright say that the next export will be for 42 later down the line – alongside some sizable planned expansion into other towns and conurbations that would be beyond the edges of our current area. More on that, and where we are taking the Knox Event location-wise, in future blogs.

As we mentioned last time, we’re coming off the back of Turbo’s serious illness currently – so it’s been something of a month of consolidation rather than massive exciting strides ahead.

That said, sometimes strides ahead come in the form of things that will pay off in the far-flung future. Ever since the success of the 41 release we have had a lot more resources at our command, and have been able to invest it in both middleware that could bring PZ to new heights – and the talent to integrate it with our codebase.

As we all know, one of the weakest things about PZ is the UI. We all get on with it fine, but let’s face it: it aint a looker, and it can be a bit clunky, fiddly and slow. We’ve always said we’d give it an overhaul, but it’s always been a daunting prospect.

Since March, alongside our friends at General Arcade, we have been experimenting with some super fancy AAA high-end UI tech middleware that will make this process easier, and will make the end result better.

For the past few months we’ve been making sure that it’s compatible with the game, doesn’t negatively impact performance and will still allow for lua UI for our modders – and it has been this week that we feel comfortable enough to say out loud to each other that it’s going to work, and is safe to proceed.

So next time you see someone moaning that the PZ UI isn’t exactly glamorous – just tell them ‘they know, and it’ll take a while – but they’re working on it’. It’ll be some considerable time till we talk about this again, but we just wanted to let you know that this is another iron that we have in the fire.


[I] Today’s pile-up campfire from Mr.Crab763. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Block of Italicised Text would like to direct your attention to the PZ Wiki should you feel like editing or amending something, and the PZ Mailing List that can send you update notifications once builds get released. We also live on Twitter right here! Our Discord is open for chat and hijinks too. Want to work with us? Details here.