- Added a prompt for the updated Terms of Service as we are a big boy game now and have to fit in with the other biggerer boys.
- Added sandbox option to disable Fake Dead Reanimation. Disabled Fake deads in MP by default. - Added more control over fake dead behaviour to the sandbox options; having zombies that were "killed" having a chance to become fake dead is an option that is off by default. - Added sandbox option that allows Corpse Maggot spawning to be disabled or limited to corpse inventory. - Added sandbox option that allows poisoning food to be disabled, or for poisoning food with bleach to be disabled. - Added sandbox option to disable the Tainted Water Tooltip/Warning for hardcore play - Added sandbox option for enabling/disabling XP multipliers affecting passive skills, which is false by default. - Added sandbox option that prevents survivor vehicles from spawning. - Added sandbox option "Light Bulb Lifespan". This does not affect Light Bulbs in vehicles, only in light fixture tiles.
- Added "Randomize" options to Zombie sandbox options for Memory, Sight, and Hearing. - Added loot rarity settings "Incredibly Rare" and "None", as well as a "Super Low" option for Fuel Pump content.
- Items from table stories/randomized stories/etc will still spawn when loot rarity is set to none.
- Renamed Item "Weight" to "Encumbrance" in the UI and context menu.
- Added an Accessibility Option that makes the player character automatically walk to a click container within a short radius of 3 tiles. - Added the ability to set custom "Good" and "Bad" highlighting colours in the Accessibility Options menu. This is applied to things like traits, tooltips, and the aiming outline. - Added an option to bind "Walk To" to a key instead of having to go through the RMB menu. - Added highlighting to clicked Crates so it's easier to tell which crate is selected. - Added a Context Menu entry that enables/disables Auto-Drink. - Tiles that are being disassembled will now be highlighted in the "bad colour", red being the default.
- Resolutions higher than 1440p will have their zoom levels adjusted to allow closer zoom-in, bringing it more in line with lower resolutions.
- Disabled some Randomized Survivor Safehouses from occurring in instances where a building has over 10 rooms, or is a spawn location. The limit is 10 for some and 20 for other Randomized Survivor Safehouses. This also means the Toilet Paper story is now disabled in buildings that have over 10 rooms or are spawn locations, which will likely reduce the amount of Reddit posts about it by 50%. - Added a check to prevent any of the randomized burnt building stories from occurring if the building is a spawn location.
- Added "HasMetal" tag for items. This tag was added to food and water items in metal containers, which will now set microwaves on fire when microwaved.
- Adjusted the mechanics UI so that both the Battery Charge and Condition are included in the Battery entry in the list of parts. - Modified the vehicle mechanics UI to prominently feature the % of a full tank of gas it has, in addition to the battery charge.
- Added a few more existing clothing options to the character creation. - Added the ability to destroy only one wall when selecting corner walls. - Replaced the bucket world static model textures with metal icons and textures and not plastic ones, as buckets are now metal and not plastic. - Updated the BucketEmpty and BucketWaterFull scripts with tooltips and IsCookable to reflect that they are now metal and not plastic. - Changed the icon of the Watering Can With Water to match the Empty Water Can and the Watering Can models. - Added a stale tooltip for perishable food to display, when appropriate, that such food is neither fresh nor rotten. - Added tooltip to Club Hammers and Mallets explaining that they are unsuitable for driving nails. - Flatpack model is applied to movable items that use the Flatpack icon. - Made more food items capable of being added to tacos and burritos. - Bell Pepper can now be added to Stews.
- Added a check so cooked eggs cannot be used for inappropriate non-evolved recipes. - Removed the requirement for hot water to make a bowl of oats. - Changed the Violet FoodType to NoExplicit.
- Trash tiles (Movable items) and Plastic Bags can now be used as tinder and fuel for fires. - Changed the Sawed-off Shotgun recipes to only use the hacksaw, and not the garden saw; a wood saw would be unable to cut through the metal barrel of a shotgun. - Added the Meat Cleaver to the Slice Onions recipe. Removed it from the Jack-o'-lantern recipe.
- Changed the Cigarettes script to prioritize using Matches before a Lighter if both are in the same inventory. - Added a new Doctor's bag and military duffel bag. - Renamed "Hemophobic" trait to "Fear of Blood". - Vehicle Spawn Chance rate can now be a float value instead of just an int. - Added a check to prevent items that "weigh" over 50 units from being put in vehicle seats. This is an ongoing issue with bags/containers that are modded over capacity, which get stuck once placed in vehicle seats when the bag + contents have an Encumbrance of >50.
- Changed translation strings to make bottle names more consistent. - Changed IGUI_HouseKey from "House Key" to "Key" to avoid issues with non-residential keys.
- Removed the numeric information tooltip provided when selecting eat all/half/quarter food item context options. - Commented out the tool definitions in ClothingRecipesDefinitions as they currently are nonfunctional and serve no purpose aside from confusing modders.
- Commented out the WoodenLance in the safehouse weapons distro lists; that item is redundant vs SpearCrafted, and also doesn't work with spear recipes. SpearCrafted already spawns with safehouse weapons. - Replaced AmmoStraps in the safehouse armor distro list with AmmoStraps_Bullets and AmmoStraps_Shells. - Changed the display name translation string for the wearable AmmoStraps items to Bandolier on account of consistent confusion with the weapon attachment that is also called Ammo Straps. - Changed the display name translation string for firearm magazines to use the firearm it is for, and not the caliber, as the prefix. Solves having two .308 Magazines, for both the MSR788 and the M14, and also that's how they're named in real life. - Added a tooltip to firearm magazines that displays the ammunition type that it accepts.
- Added missing models for Candy Corn, Candied Fruit Slices, Hot Sauce, Fountain Cups, JuJubes, Nettles, Shrimp Dumplings, Poached Eggs, Scrambled Eggs, Packaged Corn, Pickled Ginger, Sugar Cookies, Fish Sushi, Radio Receivers,Radio Transmitters, Gummy Bears, Gummy Worms, and Tent Kits.
MULTIPLAYER
- Added server option "KnockedDownAllowed" to enable/disable the PVP knockdown. This is a stopgap change to give servers an option to make PVP combat less frustrating before we can address PVP combat more directly in the future.
- Added auto-completion for player nicknames when pressing TAB while typing in the Chatbox. - Added RCON command "checkModsNeedUpdate" to check for mods that need to be updated. - Allow other non-admin permission levels to delete items in inventory/containers.
- Fixed the multiplayer "whisper" command corrupting the Lua environment due to multithreading. - Fixed being unable to claim a safehouse unless standing on the ground floor. - Fixed not checking upper floors for other players or zombies when claiming a safehouse. - Fixed an exception on the server when food rots into a new item in a container that isn't in the world any longer. - Fixed new stubble getting added to remote players after each appearance change. - Fixed text annotations not appearing on annotated maps in multiplayer. - Fixed Endurance sync in the Admin Health Tool. - Fixed a bug that didn't display mods in the mod list of a server in the ESC menu. - Fixed admins being unable to remove car hoods while inside the vehicle. - Fixed players being unable to interact with Radios they placed themselves. - Fixed a safehouse owner always respawning in their safehouse when the option to do so is unchecked.
BALANCE
- Modified the M16 & M14 critical values to be more consistent with other rifles. - M16 CriticalChance changed from 30 to 25. - Added CritDmgMultiplier 10 - Added AimingPerkCritModifier 12 - M14 CriticalChance changed from 0 to 30. - Added CritDmgMultiplier 10 - AimingPerkCritModifier 15 - Disabled the cumulative slowdown until the next shot when firing the M16 in automatic mode. Firing the M16 in automatic mode will cumulatively reduce the chance of a critical with each additional shot. This is intended to represent the loss in accuracy due to recoil. - Set some traits to be mutually exclusive to remove exploits or illogical combinations.
- Hot-Wiring a vehicle will have a low chance of causing a car alarm. The chance for this is decreased further for higher electronics skill levels. - Zombies pushing up against a previously unentered stationary vehicle have a chance to set off an alarm. - Removed the undesired RNG check that made vehicle alarms go off only 20% of the time. - Fixed car hoods being unable to trigger vehicle alarms.
- Disabled being able to make melee attacks while inside a vehicle with the window rolled down.
- Randomized the fall damage that zombies take. This randomized spread will average out to the previous damage before it was randomized; this will have a minor impact (hohoho) on the damage that zombies that fall suffer, but slightly more of them will be able to be killed by this than before. - Made it so groin injuries from not-crawler zombies are less common, and that crawlers can also inflict uncommon groin injuries.
- Increased the yield of metal parts when scrapping wrecked vehicles by 33%. - Added a new procedural container, "CratePropane", to garages and shed. - Increased the spawn rates for Propane Tanks in the distributions.
- Trailer capacity now reduces slightly when damaged, as there was no point in repairing them before. - Changed Bowling Ball Bag capacity from 2 to 8. - Increase number of Plaster uses to 10, same as Paint. - Allow plastic bags and money to be used as tinder
- Adjusted the capacities of pistol and revolver cases from 7 down to 4. - Adjusted Encumbrance of the sturdy stick item to 1 to be more consistent with other items. - Adjusted Encumbrance of fire extinguishers to 2, to be consistent with other items. - Decreased Encumbrance of Walkie-Talkies. - Adjusted Encumbrance of the TreeBranch item to match that of a crafted spear, to 1.7 from 1; The Encumbrance discrepancy has been remarked upon repeatedly, and this also serves in making item Encumbrance more consistent. - Adjusted the amount of fuel that spawns in fuel pumps at Low and Very Low.
- Updated the nutritional value for Canned Evaporated Milk. Calories 472; Carbs, Lipids, and Proteins at 23.6 - Changed the days until rotten for Bagels from 2 to 6. - Gave the Stir Fry and roast script items a default hunger value of 10. This was previously reported as a bug when players spawned the item in instead of making it via the evolved recipe.
- Maggots are slightly more poisonous. - Fewer maggots spawn, especially in spring and fall (maggots don't spawn during winter). - Maggots are now a default item in the world item removal lists. Added a comment for the world item removal lists explaining that Base.Maggots should stay in the list due to corpse maggots. - Additional safeguard to prevent errors when using mods that remove maggots altogether.
DEBUG / MODDING
- Added a search bar to the LootZed cheat panel. - Added vehicle distributions to LootZed. - Improved inventory check-in Check Stats panel.
- Right-clicking on a fuel pump in debug mode will display the amount of fuel in the pump in the right-click context menu.
- Added isStartValid function check for BaseTimedAction. Allows checking if an action is valid before the action starts. - Added saving ModData from IsoGameCharacter to IsoDeadBody and from IsoDeadBody to IsoZombie. - Added "OnPlayerGetDamage" event. - Added event "OnWeaponHitThumpable" (Args: character, weapon, object) - Added a trigger for the OnFillContainer Event when vehicle part containers are filled. - Added the tag "CarBattery" which can be used with mod item car batteries so they can be charged with the vanilla car battery charger. - Added the event "OnThrowableExplode", which transmits the IsoTrap and IsoSquare when one detonates. - Added a toggle option in the vehicle debug context menu that will show if a vehicle's alarm is enabled or disabled. - Changed Fast Move cheat in debug. Players can now levitate on different height levels via the PageUP/PageDown keys, and move around via the Arrow Keys on the different height levels. - Made ImageScale, SeatOffsetY and SeatOffsetX global and not local in ISVehicleSeatUI. - "Missing translation", "ignoring invalid ItemPicker item type", and "VEHICLE MISSING CONT DISTRIBUTION" console messages will now only appear when using debug mode.
- Fixed characters in godmode still changing body weight. - Fixed instances of the Cheat Menu not working after a player died. - Fixed removing bodies via Horde manager not working in SP. - Fixed being stuck in a vehicle after trying to uninstall/install a car part through the Mechanics Cheat, when a character was inside the vehicle. - Fixed bug with health panel: Fully healing a body part now also removes its muscle fatigue. - Fixed mod texture packs being loaded before Core.TileScale was set based on the double-sized-textures option. This would result in 2x texture packs being loaded instead of 1x texture packs.
- Fixed issues with the Tile picker: - Fixed being unable to lock Doors placed via Tile Picker. - Fixed Tree Tile issues. - Fixed electronic tiles (TV, radio, generators, etc). - Fixed Garage Doors. - Fixed Street Light tiles. - Fixed Search Bar issues. - Fixed Light Switches. - Fixed not showing all tiles. - Fixed Fireplace objects. - Fixed Wells and Lights.
FIXES
- Fixed only being able to add Maple syrup to "PancakesRecipe" and not to "PancakesCraft" or "Pancakes". - Fixed not being able to make 2 or 4 bowls of Rice or Pasta with a Saucepan anymore. - Fixed lipstick not being appliable when player had Foundation Makeup in inventory - Fixed Make-Up not being appliable when in a car. - Fixes and changes to item categories. - Fixed destroying a wall with a Lightswitch on it not destroying the Lightswitch too. - Fixed making 2/4 bowls from a Saucepan returning a Cooking Pot. - Fixed putting a hat on a Mohawk resetting hair growth timer. - Fixed not being able to make a Molotov with an Empty Beer bottle. - Fixed repeatedly building/disassembling some carpentry objects increasing the number of Planks sometimes. - Fixed Sand/Gravel Bag wall behaviour when built at an angle. - Fixed selected part of a garment in the "Inspect" UI being too faint. - Fixed Shirts and other clothing items getting auto-removed from the world. - Fixed unnecessary extra Muffin recipe. United the two existing Muffin recipes into one. - Fixed being able to make Cake Batter using rotten ingredients below level 7. - Fixed unused Zombie Decomposition sandbox option still being listed. - Fixed NullPointerException in bThump animation variable when the object isn't loaded. - Fixed being unable to click on open doors in an adjacent room. - Fixed the starting house in "A Really CDDAy" challenge sometimes not being on fire. - Fixed possible Lua error in MOBarricade.lua when a barricade sprite is on the east or south edge of a chunk. - Fixed minor issues in ISZoneDisplay UI and text colours. - Fixed Foraging icons rerolling when a search focus was selected. - Fixed ISSearchManager check for valid zoneData when loading icons. - Fixed not being able to rip Jeans/Leather Jackets when they're on the ground instead of the player inventory. - Fixed disassembly of Favourited items. - Fixed randomized crashed cars not having the correct car keys spawned for them. - Fixed Mouse Trap related collision. - Fixed sound issue when pressing W and S at the same time. - Fixed sound issue when switching Seats while Cruise Control was enabled. - Fixed Refill tool not updating the container visually. - Fixed incorrectly named recipe for making Wooden Box Traps. - Fixed several tile and cutaway issues. - Fixed Lighters draining completely when used with a Molotov. When a Lighter is equipped it will no longer automatically become lit, instead it will do so only if activated using the flashlight keybind or radial menu, or using the inventory context menu option to activate them. - Fixed evolved recipe error in scripts for Lemons and Lime. - Fixed Machetes not losing condition when used to craft spears from branches/planks. - Fixed Empty Beer Bottle using the wrong icons. - Fixed the space before commas in evolved recipe item names. - Fixed missing recipe for Opening Canned Fruit Beverage. - Changed "Canned Condensed Milk" to "Canned Evaporated Milk" because people are really passionate about milk in can lore. - Fixed melted ice cream not rotting. - Fixed house keys spawning with a long string of numbers in their display name. - Fixed climb sheet rope speed. - Fixed water collision bug when placing Stairs on water. - Fixed missing textures for Flatpack model. - Fixed ISInventoryPaneContextMenu.doEvorecipeMenu error. - Fixed the on-screen keyboard returning asterisks instead of the actual text when entering passwords. - Fixed microwaves not stopping the StoveTimer sound when turned off. - Fixed missing context menu translation string for "Item Water Capacity". - Fixed missing movables translation strings for Oak Bars. - Fixed missing translation string for foodtype cocoa. - Fixed wrong tooltip for Onion Slices. - Fixed pies and cakes being able to be sliced when uncooked. - Fixed frozen ice cream cones causing boredom and unhappiness; added the "GoodFrozen" tag for such items that should still be enjoyable when frozen. - Fixed characters not limping when they had their groin bitten. - Fixed being able to fill a square over its capacity by using the Place Item interface. - Fixed cooking rotten eggs producing fresh boiled eggs; now if food is rotten and has a "replace on cooked" value, it will not be replaced but will still be cooked, i.e. you will get a cooked rotten egg when you cook a rotten egg. - Fixed Propane Torch not being used for disassembling objects. - Fixed Walking and sprinting not burning more calories than standing still. - Fixed NullPointerExeption when throwing a bomb from above ground level with a controller. - Fixed not being able to pick items that were dropped to a removed seat slot. - Fixed being stuck on a seat when trying to change seat twice in different places. - Fixed being able to do Fitness during sleep and while sitting in a car. - Fixed the eternal fire after destroying a lit campfire with a sledgehammer. - Fixed Map objects disappearing when a player aims at a stealthing player. - Fixed bug with item icons in halo text when foraging. - Fixed a bug with locking/unlocking doors inside buildings. - Fixed different values between standard and evolved recipes for Soup. - Fixed an issue where the interaction between the two different separate zombie population sandbox settings was inconsistent between singleplayer and multiplayer sandbox setting interfaces. - Fixed equipping "Bandana (face)" placing the bandana on the head. - Fixed not being able to get a key ring. Some zombies will now have their house or vehicle key in a key ring, and key rings can also sometimes be found in store displays with watches. - Fixed that it was impossible for a randomized name to be "Pat Bren". - Fixed adding poisonous berries or mushrooms to an evolved recipe did not make the product poisonous. - Fixed missing icon for Scrambled Eggs. - Fixed currently nonfunctional bayonet and gunlight items not being commented out in the distribution files. - Fixed missing models/textures for Fountain Cups, Recipe Pizza and Recipe Bread. - Fixed missing "Obsolete" parameter to BakingTrayBread as it's an unused test item without a model. - Fixed missing checks to prevent buildings with inappropriate randomized dead survivor stories from being alarmed. - Fixed being able to use the place item option to place infinite items in a floor square. - Fixed cut and paste error in the unused function HandWeapon.getToHitMod. - Fixed an exploit where players, especially ones with desensitized, were able to sleep immediately after breaking LOS with zombies. - Fixed a couple of inconsistencies between the default MP settings and the Apocalypse setting on account of the loot setting changes. - Fixed CannedMilk not having the parameter CannedFood = TRUE. - Fixed only pouring 50 units when selecting the option to put 100 units of water into a farming plot. - Fixed an issue with the vehicle alarm debug tool, BaseVehicle.setAlarmed also needed to set previouslyEntered to false for the vehicle when enabling an alarm. - Fixed car horns continuing when switching seats while honking. - Fixed being able to hold down keys while AFKing to grind nimble; now a check is made to ensure that the character has actually moved before awarding XP. - Fixed error with broken glass script name in distro files. - Fixed hazmat suit missing blood locations. - Fixed being able to put uncooked bacon into tacos and burritos. - Fixed Pink Hair Dye not being in the distribution lists. - Fixed not being able to put Black Beans into a salad. - Fixed Strength XP levels causing slower Sheet Rope climbing at certain levels, especially at level 10. - Fixed bugged interaction with building metal objects and the Propane Torch. - Fixed not being able to disassemble car wrecks due to a missing Propane Torch, even though it was in inventory. This needs Balance feedback since the usage per Torch was also changed. - Fixed interaction when pressing shift+e near passenger seat to move to the drivers seat. - Fixed ISBuryCorpse action validity check. - Fixed using a firearm to repair another firearm evaporating the ammo, magazine, and attachments of the first weapon. The items will now be placed in the player's inventory. - Fixed being unable to read in a car when the engine was running. - Fixed zombies spawning inside buildings when the zombie populations is set to 0. - Fixed missing world static model for Bag_ShotgunDblSawnoffBag. - Fixed search window tooltips still appearing on hover when the world map is open. - Fixed player able to walk away while equipping items to scrap or destroy an object to perform the actions from afar. - Fixed dismantling floors with the character on top by moving character to an adjacent square where possible. - Fixed disassembly context menu issue: added highlighting of target object in world and object texture in disassembly tooltips - Fixed reflective and shooting glasses having reversed icons. - Fixed some events of ZomboidSoundMP.bank not playing for remote clients. This is to potentially fix sounds cutting out when several players are together.
Flame On
Evening all.
NOW
We released 41.77 into the stable beta last week, which fixed up linux servers and also improved client to server connections by preferring a direct connection to the server.
It was mission successful in most regards, but a minority of users still had issues connecting – which we have been addressing over the past few days via hotfixes in the Unstable beta.
If you were one of the frustrated souls impacted by this, then let us know if you are still suffering on Unstable (hopefully not) on this thread on the Steam Board.
Our current plan is to get these final people back on board the connection train, then move onto releasing the final 41 patch into the freshly vacated Unstable beta next week.
We’ve blogged a bunch of stuff that we’re working towards getting into 42 now, but this week we thought it also worth mentioning that work has re-begun on the fire revamp.
The fire revamp is something that got a lot of coverage in ‘doids around two years ago, so it probably predates the knowledge of a fair few readers who have come on board in more recent times during B41’s MP launch and consequent hi-jinks.
Work on revamped fire had to be put to one side in favour of bolstering the Multiplayer code team, and ever since then it has been sitting on a dusty shelf and getting a little stale.
The tldr of it when last we left it runs as follows:
A realistic spread of fire, with combustible materials that make sense.
A system that takes into account temperature, material types, weight, volume, surface area, heating energy, cooling energy etc
A set-up on both a solo map and an MP network that means that the game can ‘remember’ what is going on in terms of a spreading fire when players leave the area.
Fire spread that uses the direction and speed of the wind, with in-game rain helping with fires being put out.
Improved effects and visuals.
So what now? Well a nice chap called Denis is brushing off the unfinished work – and has brought it all up to date with the codebase two years later. This task is now complete, and this video shows a quick summary of where we got to.
So where does this leave us? Well it doesn’t make it a confirmed 42 feature, we are already going to be packing a LOT in, but it does make its inclusion more likely.
We want to improve the visuals still (we are still not happy with whether it fits the game scene), and we want Denis to take his time getting to grips with the codebase and what can be done with the system still. Likewise we’ll be working on new anims for zeds and players who have caught fire, and the sound team will be providing all manner of sizzle noises.
So this is basically us waving a flag at you to say that we hadn’t forgotten all this cool shit, and it’s back off the shelf and receiving some active love and attention for later on down the line.
WELCOME KIRRUS!
The team would like to officially welcome Kirrus to the TIS locker-room! Kirrus has been a long-term contributor, helper and ‘cool head in troubled times’ throughout the history of Project Zomboid – but has never been officially on the team.
He’s now a full time member of the gang, and our new Sys Admin. Big Spiffo hug incoming!
This week’s office space from Sr.Cannoli. 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, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.
41.77 Released
Compliled changelist (41.74-41.77). These small updates were intended to address the crashes affecting Linux MP servers and improve the client-to-server connections.
MP
- Improved client connection. Important for server providers: Servers now have two ports for clients to connect to. The game port (UDP 16261 by default) is used to handle Steam queries. The additional port (UDP 16262 by default) is used to handle the direct connection. These ports can be configured through the server options. Clients will first try to use a direct connection. If direct connection fails, clients will try to connect via Steam. The non-Steam version works as usual. UPnP rules were changed accordingly (UPnP is used in cases to prevent manual port-forwarding). The client will show the warning message "WARNING: SERVER HAS PORT %1 CLOSED. PERFORMANCE MAY BE SEVERELY AFFECTED" if the client can't connect through direct connection.
- ZNet libraries rebuilt for Windows, Linux, and Mac. - ZNet, Connection, and Kick logs are improved.
- Improved Type5, and Type21-24 Anti-Cheat behaviour to reduce false positives. A note that if you do not run a public server (i.e. a server exclusively for you and your family & friends without the worry of griefing and cheating), you can entirely circumvent any sort of frustration with false positives by disabling all AntiCheat protections in the servers .ini file.
- Split the large ConnectionDetails packet into several smaller packets with one of the ConnectionDetailsPacket.State enum values indicating which data is requested. - Improved algorithm for the transmission of large files while playing. - Loading screen now shows the download status of large files when connecting to a server. - Extended checksum logs for debugging CRC differences. - Increased kick delay for CRC differences. - Additional logs were added.
- Fixed ObjectModData packets not being sent while the server was in the FastForward state. - Fixed bug in world dictionary when an item in a different module but with a similar name as an vanilla item was removed. - Fixed a new stubble Beard getting added to remote players after each appearance change, which resulted in receivePlayerZombieDescriptors errors. - Fixed kicks after disabling VOIP. - Fixed connecting to host after disconnection from a dedicated server. - Fixed infinite connection attempt to non-steam server when it's not up. - Fixed the client displaying "Disconnected" instead of "Wrong username or password". - Fixed players being able to change their saved password for an already created account in some instances. - Fixed Type21 black screen at connection stage when Type21 anti-cheat check is disabled. - Fixed the character model always using media/textures/Body/Masks instead a clothing item's UnderlayMasks folder. - Fixed black screen issues with certain mod constellations. - Fixed the timed-action progress bar position not being updated during actions without a fixed duration. - Fixed the animation speed of the timed-action progress bar at different framerates.
NEW
- Added a looping progress bar for timed actions that have no defined end. This is mainly a stopgap "fix" for entering cars, to visualize that there is an ongoing unfinished action until we can have visually open doors, etc. Specifically added for the scenarios where players reported being bitten through the car door after they had entered a car and interrupted the "enter car" action before it could finish (e.g. by opening the map, etc), i.e. before the door was "closed". This bar extends to other "infinite" actions like Walk To.
MODELS
- Added new body locations: Jacket_Bulky, JacketHat_Bulky, TorsoExtraVest, and JacketSuit. - Assigned new body locations to existing clothing items to avoid clipping. - Tweaked and added many clothing masks to avoid clipping through each other. - Adjusted several clothing models and bone weighting to improve clipping. - Removed Bowling shirt model from Bowling shirt definitions and made Bowling Shirt a texture. The model was left in the files in case mods use it. - Improved base Body mask to help with clipping. - Re-exported ALICE packs as some straps were missing.
Upstairs Downstairs
Now then, survivors. Let’s do the thing.
NEXT
This week we released version 41.77 into our Unstable beta. This is primarily aimed at fixing the Linux crashes that have been plaguing server hosts, and so far seems to be a mission success in that regard.
It also improves client to server connections by preferring a direct connection to the server. Servers now have two ports for clients to connect to, configurable through the server options. The game port (UDP 16261 by default) is used to handle Steam queries. The additional port (UDP 16262 by default) is used to handle the direct connection.
We’ve had a successful wider test of 41.77 with more than 30 people on a server without any crashes, and we’ve tested a modded setup afterwards as well.
Upon release there were servers running mods with 41.77 just fine, but unfortunately it seemed that some mod setup constellations caused conflicts that resulted in black screens for some servers.
We have just pushed a hotfix we believe will resolve this.
If, however, you run a 41.77 server and you are still experiencing players unable to log on (only seeing a black screen) then please send us: the list of ModIDs (specifically the “Mods=” line from their server.ini, the workshop= line, and your server logs.
Posting these in the forum release thread or in our Discord techsupport channel would probably be best.
Likewise, any reports of ongoing server instability or general misbehaviour – please let us know ASAP.
THEN
We’re still adding tweaks and polish to our final B41 patch that we’ll put out once the current network improvements are fully tested, released and stable.
This is the current changelist, with notable additions in the past few weeks on show here if you already read up on what was incoming in our last blog.
OOH, 42
Build 42 will be a very big update, and it will appear a sizable amount of time after Build 41 is fully wrapped. We’ve announced most of the things that we currently have brewing for it, but there’s one thing we’ve only hinted at so far – and which is very likely to feature.
As regular readers may remember, a while ago we wrote a blog called Techdoid that detailed some of the big engine improvements we have slated for 42.
Amongst them is a new rendering pipeline which allows for entire chunks to be cached with a depth buffer, which will afford us MASSIVE rendering and scene construction improvements and should rid us of all the performance issues we’ve been plagued with due to the isometric draw order over the years.
There’s also a new light propagation system, which allows for light to naturally leak through doors and windows, providing much more atmospheric and believable lighting
We also got rid of the 8 storey limit on chunks: specifically we allowed each chunk to have its own unique defined height up to 32 levels.
Finally, we discussed that we’d fixed the many areas of the codebase that used static casts to round the player’s position to determine what chunk or tile they were on to using Math.floors instead. This method allows for negative coordinates to work where prior the calculations would have failed if the player was stood on a tile with a negative coordinate.
This in theory will allow for us, or modders, to build north or west to the same extents as we currently build to the east and south, effectively quadrupling the maximum size the map could be extended to and open up a great deal of extra land to populate should we need to in future.
Whilst all these features are gamechangers in themselves, they were also done in service of another very specific feature we’ve had planned for a long time, which required each of them to be made feasible in any way.
The current in-game lighting system means that the indoor ambience levels are defined solely by the time of day. If it’s daytime, the ambient light levels inside a building are above zero, giving just sub-daylight levels, even if there are no sources of natural light that should fall on a tile just by virtue of it being day. That wouldn’t work very well if we were wanting to do… a certain other feature.
The previous eight level hard limit and high rendering cost of multiple levels was rather restrictive if we were to… want to do a certain something.
The lack of support for negative coordinates for character positions? Well that was IMMENSELY restrictive if we… were to want to do a certain something.
A few people may have been able to read between the lines of what all these lead toward. Many more will have just watched the video already.
The plan we have for basements and sub-levels is an interesting one, as it will provide a lot more replayability to the game map, which is otherwise completely static at the moment.
Essentially in 42 we, or modders, can list positions on the map (along with staircase orientation) that have the space for a basement and can be allocated the potential to have one. However, no basements are placed within the map itself.
When an area is streamed in for the first time, an appropriate basement ‘building’ created in the building editor and exported as a binary file is selected randomly from the list of all possible basements and will be injected into the map as it is loaded.
We could add tags to make it pick an appropriate category of basement to fit the specific house, though right now the code has it set as completely random. Each basement has stairs leading up from its ‘top’ floor and these stairs will be aligned to the correct position when it is injected into the map.
This means that despite the map being static, any areas with basements will yield surprises in every playthrough. This will also, clearly, cause the least disruption to the existing map development, modded maps and everything else.
Whilst most of the basements will be modest basement rooms, that will have their own unique layout and lootable containers and will change on every new world and be populated with our own collection as well as any collections of mod basements that are subscribed to.
There may be a few, however, which are more extensive, the player could happen upon a super rare and extensive underground complex. We have 32 levels to work with that can be distributed in any way above or below ground per chunk as required, so there’ll be few limits particularly in what modders can do with this.
We can also hardcode some specific basement levels, so we could say provide key buildings within the map with bespoke basement levels that fit that particular building and will always be the same on every map.
Also, with the new light propagation system, you better bring a torch – because unless there are light switches, its gonna be dark even if it’s daytime!
We’re also considering the possibility of other sub-surface structures, such as sewers for locations like Louisville. We’re still researching what would be appropriate and sufficiently realistic for this, however, and it’s not certain what could/would appear in b42 beyond what’s discussed above at this stage.
SPIFFO: BEYOND
If you are a Terraria player then right now you are likely enjoying the amazing Labor of Love update, and maybe you’ve even discovered a certain someone has made the jump into another game – heralding the beginning of some sort of Spiffo Cinematic Universe.
Our endless thanks to everyone at Re-Logic for letting our little dude spread his wings (or spin his tail, I guess) and treating him so well.
This week’s stunning outdoor scene from Citro. 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, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.
41.77 UNSTABLE Released
MP
- Improved client connection. Important for server providers: Servers now have two ports for clients to connect to. The game port (UDP 16261 by default) is used to handle Steam queries. The additional port (UDP 16262 by default) is used to handle the direct connection. These ports can be configured through the server options. Clients will first try to use a direct connection. If direct connection fails, clients will try to connect via Steam. The non-Steam version works as usual. UPnP rules were changed accordingly (UPnP is used in cases to prevent manual port-forwarding). The client will show the warning message "WARNING: SERVER HAS PORT %1 CLOSED. PERFORMANCE MAY BE SEVERELY AFFECTED" if the client can't connect through direct connection.
- ZNet libraries rebuilt for Windows, Linux, and Mac. - ZNet, Connection, and Kick logs are improved.
- Additional logs were added.
- Fixed kicks after disabling VOIP. - Fixed connecting to host after disconnection from a dedicated server. - Fixed infinite connection attempt to non-steam server when it's not up. - Fixed the client displaying "Disconnected" instead of "Wrong username or password". - Fixed players being able to change their saved password for an already created account in some instances.
NEW
- Added a looping progress bar for timed actions that have no defined end. This is mainly a stopgap "fix" for entering cars, to visualize that there is an ongoing unfinished action until we can have visually open doors, etc. Specifically added for the scenarios where players reported being bitten through the car door after they had entered a car and interrupted the "enter car" action before it could finish (e.g. by opening the map, etc), i.e. before the door was "closed". This bar extends to other "infinite" actions like Walk To.
MODELS
- Added new body locations: Jacket_Bulky, JacketHat_Bulky, TorsoExtraVest, and JacketSuit. - Assigned new body locations to existing clothing items to avoid clipping. - Tweaked and added many clothing masks to avoid clipping through each other. - Adjusted several clothing models and bone weighting to improve clipping. - Removed Bowling shirt model from Bowling shirt definitions and made Bowling Shirt a texture. The model was left in the files in case mods use it. - Improved base Body mask to help with clipping. - Re-exported ALICE packs as some straps were missing.
The Good Life
Hello everyone.
NEXT
The situation with Linux server instability remains ongoing, with the MP team working on another update to the Unstable beta – and an internal test of their work tonight.
The good news from the Unstable release of 41.76 was that overall network and connection speeds were improved, and will be beneficial to all online players once fully released, but the far more pressing issue was that residual errors in our zombienet library carried over server instability. Getting this, finally, sorted is currently the team’s number one priority.
This issue doesn’t impact all our players, but we recognise how frustrating it must be for those who play regularly on Linux servers – and above all those who operate them. We can only apologise for the continued outage and ongoing work, and recognise that patience has been running understandably thin.
In our travels fixing the issues, the networking has been changed so as to more directly communicate between server and client. The server now has 2 ports to connect to. The game port (16261 by default) is used to handle Steam queries. The additional port (16262 by default) is used to handle the direct connection, and thus circumnavigate the data travelling through the steam network which was impacting latency and throughput significantly. These ports can be configured through the server options.
We’re aware this may cause a bit of disruption when we first release this to stable. However, the positive impact this will have on server performance, reducing lag and improving syncing of the game is too great to ignore, and should be just an additional port for server operators to be aware of and shouldn’t affect the vast majority of players connecting. The non-Steam version, meanwhile, will just work as usual.
THEN
Most of the non-MP team are now fully on B42 development, but we do have a few brave soldiers working on the final 41 patch that’s currently backlogged behind the aforementioned MP fixes.
The intention of this patch is to be as non-disruptive as possible, and to leave 41 in the best possible condition during the next period of extensive Build 42 development.
As such it’s primarily fix-based and polish, but there are also some expanded sandbox options. You can see the topline of new changes in the screenshot below.
This build will go into the unstable beta once MP servers are fully patched up and stable.
42
We’ve got a couple of videos from RJ this week to show his current work on domestic animals. They are fairly self-explanatory when you watch them, but PLEASE NOTE everything you see is heavily WIP.
RJ is working in something of a development debug sandbox here, and as such everything will have rough edges – and likewise some player actions will have more appropriate animations, animal sizes will be improved, sound effects, further polished UI etc. etc.
Finally, just to give you the shivers, here’s a sample of the Sound Team’s latest work on sprinter screams. Don’t have nightmares.
This week’s book club from Kawri. 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, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.
41.76 UNSTABLE Released
We skipped public testing for 41.75.
The TL;DR of the changes from 41.74 to 41.76 is that the Steam Networking API implementation was improved; Linux crashes should be fixed and overall networking performance has been improved alongside connection stability in internal tests. In essence, the game will now also use direct communication with dedicated servers, instead of going entirely through Steam’s own networking API, improving performance and stability for dedicated servers.
MP
- Improved Steam Networking API implementation. - Selected game data is no longer transmitted through the Steam P2P API but through UDP instead.
- Adjusted Anti-Cheat Types 21-24 to result in fewer false positives.
A note that if you do not run a public server (i.e. a server exclusively for you and your family & friends without the worry of griefing and cheating), you can entirely circumvent any sort of frustration with false positives by disabling all AntiCheat protections in the servers .ini file.
- Split the large ConnectionDetails packet into several smaller packets with one of the ConnectionDetailsPacket.State enum values indicating which data is requested. - Improved algorithm for the transmission of large files while playing.
- Loading screen now shows the download status of large files when connecting to a server.
- ZNet library was rebuilt on all platforms.
- Fixed ObjectModData packets not being sent while the server was in the FastForward state. - Fixed bug in world dictionary when an item in a different module but with a similar name as an vanilla item was removed. - Fixed a new stubble Beard getting added to remote players after each appearance change, which resulted in receivePlayerZombieDescriptors errors.
Broadened HorizonZ
Okay, so here’s a run down on our current basic plans for finalizing Build 41, and then beyond.
NEXT
We’ve left Linux server operators hanging out to dry a bit over the last two weeks and feel awful about it – especially ones with larger/busier servers.
41.73 came with crashes on Linux servers, and the version with the updated Steam API we put into the Unstable beta in 41.74 turned out to bring in as many issues as it solved.
As such Yuri and Andrei are currently working on another approach that will be going into Unstable beta (and then Stable) as soon as we can muster – which will have the crashes fixed, and should also have increased networking performance and improved connection stabilities for everyone. We’re hoping to conduct an internal test on it tomorrow.
In essence the game will now also use direct communication with dedicated servers, instead of going entirely through Steam’s own networking. This should improve things for all players on dedicated servers – including the Linux servers that were sadly the canary in the coalmine that flagged up the fact that something needed to be done here.
Again, our apologies to those impacted – we are thinking of ways to repair some of the damage done during the outage and appreciate your frustration.
THEN
We have a staging branch backstage that all our coders are feeding aspects of their work that they wouldn’t want people to have to wait until Build 42 for – so no big features, but instead a lot of fixes and balance.
We will also be trying to limit mod disruption and big/controversial changes, as this will be the version that we leave folks with for quite a while when all of us are 100% working on new features alongside the existing 42 team. (Apart from anything urgent we might need to attend to on 41, clearly).
The sorts of things we’re currently testing for this patch include: many and various visual issues with the cutaway system, colour blind accessibility options, better crate highlights, many recipe improvements, better ways for the game to handle car alarms and (hopefully) fixes for sounds cutting out in busy MP situations.
There’s also some new 3D models where we’ve had icon mismatches, new tooltips to better explain what different items can do, weight/encumbrance rebalancing on some items, the lighter/Molotov fix we mentioned last time and many and varied other fixes. We’ve also done some work improving the in-game server browser that we would certainly like to include as well.
There’s a lot of other stuff too, but you probably get the gist. Nothing that’s going to rock the boat, but also enough stuff to keep the boat sailing until we reach the glittering shores of 42.
MAP NEXT
While we can’t and won’t go into forensic detail on which towns and what design themes we’re going for, it’s perhaps time to talk about the next map expansion – which will most likely hit with 42.
Xeonyx and Ayrton are essentially pushing the map out on all sides, apart from beyond the game’s traditional Ohio River boundary.
The map team are returning to fictionalised versions of real places on the Kentucky map – Riverside and March Ridge being entirely fictional. We don’t want to name exactly which ones, but it might be worth mentioning one of them will be Ekron.
The location currently commonly known as Ekron within the community is not supposed to be our version of that place, and (for reasons that will become explicit when viewed on the PZ map) is internally known as Fallas Lake. We will erect a sign in Build 42 to make this information more prominent.
Here’s a few WIP screens of some of our future locations to keep you all going.
ALSO
Other things currently being worked on for B42 inclusion that we haven’t mentioned before are:
The Sound Team are working on sprinter zed growls and screams – our first inspirations here will be the Dawn of the Dead remake but we will iterate until we get it right. Formosa have also created a variety of bullet impact noises (on cars, dirt, glass, plastic, trees, walls and wood) that we will be integrating come 42, alongside the further improvement of the dynamic music system. They will also clearly have their hands full with the cows, chickens, sheep, improved fishing and many and various new post-apocalypse items and actions that B42 will bring along with it.
RJ is currently experimenting with rats, which could also become part of the Knox Event alongside domestic animals. Martin, meanwhile, has been working on animal transportation – namely new trailers and potential new vehicles.
Pat_Bren has been expanding the breadth of different TV and radio channels available to tune into at the start of the outbreak, and is now moving onto some other frequencies that players might be lucky enough to come across later on within the PZ timeline too. Right now he’s added Public Access TV, a Music channel, a Sports channel, a movie channel, a new entertainment channel and a radio station called Upper South Radio.
We can’t remember if we showed it before, apologies if so, but seeing as RJ is back working with his rats – here’s what a PZ rat looks like when it bugs out with human hair.
Thanks all, and thanks for your patience. We’ll see you next time.
This week’s foggy overview from the Universe of Gamer. 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, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.
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.