1. Project Zomboid
  2. News

Project Zomboid News

Bad Red vs. Good Green



Hey all, here’s a Thursday round-up. We released version 41.71 last Thursday. We’re big on Thursdays around here.
41.71 contained a huge range of stuff, but topline features included: new and improved dynamic action music, a raft of improvements for Steam Deck players, new items, scarecrows, less wobbly and less performance-costly 3D items on your safehouse floor, loads of MP improvements under the hood, the fabled one-watch VHS video fix, new ambient and shutdown noises, modding improvements and tons more.

Better to read the forum release post than a long paragraph in the blog, I guess, if you are in need of a catch-up.

Since last week we hotfixed some issues with sound cut-outs on busy servers and with rapid-fire weapons, and so now we find ourselves moving onto…


[h3]41.72[/h3]
Seeing as we already have a fair amount of MP changes, fixes and balance in the pot for .72 at the moment it feels like it won’t be too long until we move it into the Unstable beta – unless of course a more disruptive feature comes to the boil over the next week or so and requires added internal testing.

The current changelist for what we have in this patch can be seen here if you are interested.

Primary items of note involve a lot of fixes and polish to radio use in-game, improvements to the representation of weapon-part upgrades in 3D models, and various issues with generators and batteries.

Also in the patch will be the opt-in ability for fellow faction and safehouse members to be visible on your in-game map.



And also some support for our colour-blind survivors, who will now be able to choose their favoured new text colours instead of BAD RED and GOOD GREEN. Thanks to Fox for this one.




[h3]BEYOND[/h3]
There are many advantages of having a tight small team when making a game like PZ. However, one of the biggest disadvantages is that when serious ‘irl’ stuff happens to any of us it makes aspects of development difficult. We’ve never really mentioned it before, and still won’t go into any detail, but this was one of the reasons that Build 41 itself took a long time to come to complete fruition.

The reason we are bringing this up is because one of the primary architects of the revamped B42 crafting system, Turbo, has been very ill (and often hospitalized) for much of the last three-four months.

Turbs said it was okay to let you all know this, as it clearly has meant that while RJ’s work on domestic animals and some roaming beasts has been rocketing on ahead – Turbo’s own work on the post-apoc crafting, tech-trees and recipes has had to be on hold.

We are so, so relieved and happy that Turbo’s treatment led up to an operation and a complete return to health – to the extent that he has been back working with us again this week. It’s been awesome having him about the place again.

We don’t yet know how much this will impact on build content, timings etc, and will be working out what’s what in the week or two ahead – tho B43 stuff is being worked on in parallel, so it hasn’t been detrimental to that.

Sorry if this has been a bit of a ‘too much info’ update, it’s probably not something you’d catch in a Call of Duty blog, but with Turbo’s permission, we thought it would give everyone a more accurate insight into where we’re at with things.

We also hope that everyone will join us in wishing Turbs continued good health – a phrase for which the Dutch probably have their own term for and that we will google later on.

To circle back around to more developmental matters-at-hand, here’s an image from RJ and Tim’s work on ways in which our non-domestic animals will roam the map. These are AnimalZone paths that share points, and allow for both long paths that cross cell boundaries and branching paths too.




[h3]MAPPING[/h3]
We love seeing the maps our community produces – each with their own flavours, design and challenge. To support all our mappers today we are releasing almost 1500 buildings and associated assets of our own in-game housing, garages, sheds and patio sets for use in community maps.

These should help map-builders flesh out their worlds without having to rely purely on their own constructed (and shared community) houses, flats and outbuildings.

If you are a mapper then you can find the released assets here.

We are not releasing ‘special’ and governmental/military buildings – but there are many, many houses, apartments, sheds, shacks, shops and restaurants here for folks to use in their own apocalyptic zombie nightmares.

In terms of our own future map improvement and expansion, meanwhile, check out what Ayrton has been doing to our Louisville rich districts.

“To bring more diversity to some locations of Louisville, I am converting some streets or blocks into Victorian-style districts, it should enable us to add a new layer of complexity to the urban plan with areas that are more/less wealthy, ancient, etc. Those new tiles are also being added across existing relevant buildings.”



Elsewhere Aiteron is playing around with his improved fishing system to mix in some added ‘fun quota’ alongside the improved anims/visuals we showed last time round. Long-term work on server-side items and timed actions for MP continues, and the Noiseworks/Formosa soundscape revolution continues with their next missions due to be discussed in the coming week.

Pat_Bren is also, meanwhile, crafting a bunch more annotated survivor maps to bolster our current stock – and also to cover Louisville and other newer areas of the Knox Event map.


[h3]JOB AD AGAIN[/h3]
Following the success of Build 41, we find ourselves in a position where we can hunt down other experienced Games Programmers to join the Project Zomboid team.

We are looking for coders willing and able to refresh some of our older systems, polish the existing ones and then to delve further into the features that will be part of the Knox Event’s exciting future.

Interested applicants should check our jobs page, but we should underline that we currently don’t have any entry-level positions available. You will need to have a fair amount of experience we are afraid.

This week’s touching crime scene from hp.tf. 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.

Project Zomboid update 41.71 adds dynamic combat music

One of the things that indie survival game Project Zomboid does phenomenally well is tension, proving you don't need a first-person perspective or ray-traced lighting effects to scare someone. The latest Project Zomboid update, version 41.71, adds a new dynamic music system that will dial up the tension during your ultimately futile fights against Kentucky's ravenous dead.


With update 41.71, Project Zomboid gets a new 'action music system.' Developer The Indie Stone says that rather than simply switching tracks during combat, you'll now hear a reactive musical score that can "increase and decrease in intensity during combat and other dramatic moments." So from now on, the score will crank up the tension as more zombies head your way when you're waylaid by a couple stragglers behind a liquor store or out in a field.


The patch adds some more nice additions and tweaks, too: there's a "compilation" of new hair types, plus an option for stubble in the hair and beard sections of the character creator - terrific for that 1950s comic strip tough guy look.


Read the rest of the story...


RELATED LINKS:

Project Zomboid NPCs will have complex, dynamic stories

Project Zomboid now supports 100-player servers, sort of

Project Zomboid multiplayer - what you need to know

41.71 - Released

41.71 compiled changelist


(Includes changes from builds 41.69 to 41.71 from the unstable branch.)


[h3]NEW[/h3]
New action music system
Instead of switching between tracks mid-combat, the music is reactive and can increase and decrease in intensity during combat and other dramatic moments.

Added "Stubble" checkboxes to the Hair and Beard sections in the character-creation ui.
Added new items + updated 3D models
Added new forage items

Added the skeleton mannequin and scarecrow.
Added additional item categories and addressed some blunders
Added compilation of new hair types
Added option to "add all" to partially full Thread, Duct Tape, Twine etc
Added media/scripts/mannequins.txt which describes the model/texture/animation/etc for different mannequins.
Added BackupsOnVersionChange server option.

Added a second set of translations to the Survival Guide that are displayed when using a controller.
Added formatting to rich text, where XXX is the name of a Joypad.Texture.XXX texture.
Device options can now be opened when radio is on floor, in loot window or when radio just dropped from inventory

Added methods Texture.saveToCurrentSavefileDirectory(filename) and Texture.saveToZomboidDirectory(filename).
The filename may contain folder names, but not "..", to prevent saving to arbitrary locations.
These methods replace the broken Texture.save(filename) method.

Clicking and holding the left mouse button when placing items now locks the item to the clicked square.

Added XBOX_Menu.png and XBOX_View.png controller icons.
Added autouse new sack of gravel/sand/etc when pouring it on ground
Renamed Skill books so that they are easier to categorise.
ISClothingExtraAction now sets the item's job type to "Wear" and displays the progress of the action in the inventory window.
Updated credits
Updated community translations.

3D items now shown as textures instead of models. They shouldn't slide around as much when the player moves.
This helps a lot with framerates when there are 100 nails on the ground, for example.
In debug mode, holding the HOME key will disable the item atlas and render models as before.
Added IsoSprite.ItemHeight and IsoSprite.Surface debug options to display a rectangle around surfaces that items can be placed on.
Changed some ItemHeight and Surface tile properties.
Added a title bar to the mini-map window which allows the mini-map to be repositioned. The title bar and bottom row of buttons are hidden unless the mouse is over the mini-map.
Changed setHaveConstruction to apply only when constructing and placing objects


[h3]MODELS/ANIMS[/h3]
Changed Diamond Pattern Sweater Vest and V-neck Sweater Vest to use Sweater body location
Changed High Viz vest to use Sweater body location
Added a different animation played when destroying floors with a sledgehammer.


[h3]MP[/h3]
Removed vehicle physics from server (not client) to address some of the vehicular weirdness sometimes seen online
do not apply impulses to static / kinematic vehicles
limit changes of linear and angular velocities
Passengers no longer allowed to exit the car while moving

Enable packet processing on the server
MultiplayerSeeNonPvpZones debug only option is added

Local admin check is delayed after set-access-level command
Player update replay is commented out
Check for local admin kick is improved
Turn on player teleport logs on the server
Admin is not kickable from safehouse

Burnt or smashed vehicle check is added for dismantle vehicle command
Car wreck is removed via new "dismantle" vehicle command
Only admin can delete vehicle via "remove" vehicle command
Add vehicle UI allows creation of burnt and smashed car wrecks

Anti-cheat: fixed kick local admin issue
Cancel auth ticket on client shutdown

Toggle timer is disabled in non-pvp area

MultiplayerLightAmbient debug option is removed

Refactored SafetySystem
Server option process cycles for SafetySystemManager are simplified
PVP safety is now set to true when PVP is disabled on server
Set the default Host server memory to 4GB on 64-bit systems. This is the value displayed in the "Server memory" combobox which is saved in Zomboid/Lua/host.ini.
Don't create a backup of the server savefile in Zomboid/backups/version if BackupsOnStart=false. This backup is created when a new version of the game is released, but only for the first server that is launched.
Hide the black overlay when the sleeping players are killed

Improvements to how the MP game handles dead player bodies
DeadBody creation is moved to the server
DeadBody ID is added (World version 192)
Client does not allocate dead body ID

Fixed player death animations
Fixed desaturation being set for dead player
Fixed reanimation delay timer starting immediately without 10 seconds delay
Fixed reanimation delay of 0-30 seconds
Fixed player death final animation
Fixed possible null point exception when zombie bites dead player
Fixed dead body grabbing breaking reanimation
Fixed dead body id not changing when added to world
Fixed desync of safety cooldown timer
Fixed sleeping player not being woken up in case of kick from safehouse
Fixed PVP icon being located over the map
Fixed players who could be kicked when admin removes that player from safehouse
Fixed when a non-owner player quits a safe house, other players also getting kicked.
Fixed when safehouse owner goes offline, the non-safehouse-members get teleported immediately
Fixed PVP button becoming inactive for each player across the map if Admin shot\got shot by a player"
Fixed player being kicked when admin creates or removes PVP zone
Fixed SyncNonPvpZone packet send/receive loop
Fixed newly connected player not having all the non PVP zones
Fixed possible nullpointer in checkForNearbyRadios
Fixed zed texture 4 being used for player texture 5 instead of random index
Fixed reanimated player corpse disappearing
Fixed being able to turn pvp on when server option PVP set to false.
Fixed BufferUnderflowException on the server in SneezeCough packet processing
Fixed possible NullPointerException in ClientPlayerDB.getAllSavedPlayers().
Fixed player appearance sync in multiplayer with greater than 32 connections.
Fixed erosion growth not being suppressed when building floors or digging graves in multiplayer.
Fixed radio sync in MP
Fixed players outside the Non-PVP zone being able to kill a player with a bomb located in that zone
Fixed player being able to remove PVP button cooldown in non-PVP zone
Fixed unexpected anti-cheat kick just after leaving non-PVP zone
Fixed being able to turn pvp on when server option PVP is set to false.
Fixed player being able to remove PVP button cooldown when in a non-PVP zone. (Safety cooldown timer is now stored/restored when player enters/leaves non-pvp-zone)

VHS Fix
Fixed listened-to media lines being saved globally instead of for each player. This could add over 200KB to each player's saved data if every line is listened to.
Fixed ClientPlayerDB handling of WorldVersion.
Transfer known media lines from recorded_media.bin to the player on the first load.
Check for null arguments to RecordedMedia.hasListenedToAll(). A mod seems to pass null for the IsoPlayer argument, which was ok when listened-to lines were stored globally instead of per-player.
The mod file is es.info.books.main.lua.

MODDER WARNING: This could break any mods that modify ISRadioInteractions.lua or are using the OnDeviceText event (which gained a new parameter).


[h3]MODDING[/h3]
Fixed mod animations not being loaded if they aren't in a subdirectory of anims_X, or aren't in a subdirectory registered in animations_meshes.txt. Any such animations are added to the MaleBody model by default.

Item tagging changes

MODDERS: PLEASE READ ADDENDUM DOCUMENTATION FOR INFO


Added new tags to some items: BlowTorch, Fork, GasMask, Glue, HazmatSuit, Knife, Razor, Scissors, Sledgehammer, Spoon, StartFire, WeldingMask. These tags are used in multiple places instead of looking for specific item types.
Added methods ItemContainer.getBestConditionEvalArg() and ItemContainer.getBestConditionEvalArgRecurse().

Script properties item.staticModel and item.worldStaticModel are set to the fully-qualified "module.type" after loading scripts. This is to fix mod items not finding "model" scripts that aren't in the Base module.

Added a new item-script property ReplaceTypes which supersedes ReplaceOnUseOn (which is still supported).
The format is "ReplaceTypes=Key1 Type1;Key2 Type2;..." where each key is some string (such as WaterSource) and each type is an item type.
ReplaceTypes allows specifying different replacement item types for different uses of an item, for example, filling an empty item with water and/or with gasoline.
It is used for the same thing as ReplaceOnUseOn, but allows multiple key/type mappings instead of only one.
These new methods were added to both Item and InventoryItem classes:
String getReplaceType()
HashMap getReplaceTypes()
String getReplaceType(String key)
boolean hasReplaceType(String key)
The existing ReplaceOnUseOn lines in items.txt add a new value to the item's ReplaceTypes HashMap.


[h3]SOUND CHANGES[/h3]
Added global parameters Electricity, RoomType, and Water.
Added a new tile property named "AmbientSound" to support custom ambient sounds from objects. Current values assigned to some tiles are:
FactoryMachineAmbiance
HotdogMachineAmbiance
PayPhoneAmbiance
StreetLightAmbiance
NeonLightAmbiance
NeonSignAmbiance
JukeboxAmbiance
ControlStationAmbiance
ClockAmbiance
GasPumpAmbiance
LightBulbAmbiance

The FMOD global parameter "Electricity" is set to 0.0 when the new WorldEventElectricityShutdown event passes the "ElectricityOff" timeline marker.
Added FMOD parameter value RoomType=Factory.
Changed debugSetRoomType() to accept an integer instead of the name of an enum value.

Added sounds:
ArcadeMachineAmbiance
CanisterAddFuelFromGasPump
CanisterAddFuelSiphon
VehicleAddFuelFromCanister
VehicleAddFuelFromGasPump
VehicleHeadlightsOn
VehicleHeadlightsOff
VehicleWindowHandleOpen
VehicleWindowHandleClose
VehicleWindowElectricOpen
VehicleWindowElectricClose

Synchronize room lights and other objects losing power with the ElectricityOff timeline marker.
Added PlaceOneSound and PlaceMultipleSound item script properties.
These are played when placing items using the "Place Item" command.
The default sound played if these aren't defined is PutItemInBag (the same sound played when dropping items).

Added BoxOfRoundsOpenOne and BoxOfShellsOpenOne sounds to some recipes.
Increased the time of these recipes to allow the sound to play. The time is still quite short (was 5 ticks, now 15 ticks). Probably nobody will die waiting.

Added FountainBigAmbiance sound played to the multi-tile water fountain.
The sound doesn't seem to loop and stops after several seconds.

Added RepairWithWrench sound played when plumbing sinks and for the moveables Wrench tool sound.
Added value MetalGate to the FenceTypeLow and TripObstacleType parameters.

Added sounds:
BBQPropaneTankInsert
BBQPropaneTankRemove
BBQPropaneRunning
BBQRegularAddFuel
BBQRegularLight
BBQRegularRunning
CampfireAddFuel
CampfireRunning
CampfireLight
CampfireBuild
FireplaceAddFuel
FireplaceRunning
FireplaceLight
ZombieTrip
ZombieThumpGarageDoor

Added EquippedBaggageContainer FMOD parameter.
Added "SoundParameter = Name Value" item-script property.
Added FMOD parameter SinkType=Generic|Ceramic|Metallic which affects the WaterDrip sound.

Hitting trees with weapons and bare hands plays the weapon's HitSound instead of ChopTree.
A melee weapon's SwingSound is now played via animation events instead of at the start of SwipeStatePlayer.
This allows using different sounds for different attack animations.
Currently this is used to play a different sound for spear stab versus spear slash attacks.

Play the WorldEventElectricityShutdown event from the nearest square in a building when outdoors.
Set the FMOD parameter "RoomType" using RoomType objects added in WorldEd.

Changed how ambient sounds are played from doors and windows.
Instead of choosing random objects, only the nearest exterior objects will play sound.
Different sounds are played depending on whether the door or window is open or closed.
This will be used for playing rain and wind sounds when the player is inside.

Fixed the BurningFlesh sound not stopping in multiplayer after a player dies.
Fixed the barbecue and fireplace extinguish sounds stopping instead of being triggered to fade out.
Play an animation when turning a propane barbecue on and off.
Fixed crouching when extinguishing a charcoal barbecue.
Fixed SFX and music cutting out in busy situations (often seen on MP servers)
Reimplemented ZombieVocalsManager to limit zombie voice events to the nearest 20 zombies.
Optimized sorting objects in DoorAndWindowEmitters and ZombieVocalsManager.
Changed handling of object ambient sounds so they only play from the nearest 20 objects. This includes doors, fridges, trees, windows and any sprite with the AmbientSound property set.
Removed DoorAndWindowEmitters. This is combined with ObjectAmbientEmitters.
Fixed ZombieVocalsManager not actually stopping vocal events when one of the 20 slots was reassigned to a different zombie.



[h3]CONTROLLER / STEAMDECK IMPROVEMENTS[/h3]
ProjectZomboid64.exe will disable the -XX:+UseZGC option if a required function is undefined in Kernel32.dll.
Steam Proton does not define the MapViewOfFile3() function, which prevents the Windows version of the game starting on the Steam Deck.
Conveniently, MapViewOfFile3() is only available on Windows 10 1803, the same version ZGC requires.
When options.ini doesn't exist on startup, set the display to fullscreen desktop resolution.
When options.ini doesn't exist on startup on Steam Deck, call Core.setOptionActiveController() to enable the controller.

Allow precise positioning when placing items using a controller. This is done by holding the Y button and using either D-pad or the left joystick to move the item around the square. When there is more than one surface, it can be changed by pressing the right shoulder button while the Y button is held down.

Enabled the on-screen keyboard in CoopUserName.lua.
Leave room for two lines of tooltip text at the bottom of the character-creation profession ui.
Several panels in the main menu can be scrolled using the right joystick.

The Start/Menu button will display the main menu in single-player, or resume normal game speed.
This is instead of pressing once to pause the game and double-pressing to display the main menu.
The game can still be paused using the Back/View button radial menu.

Added controller navigation in the Workshop ui (for submitting Workshop items). NOTE: The controller doesn't work in the Steam overlay, which some buttons display.
Allow mouse clicks etc in the inventory and loot windows when a controller is active.
Added controller navigation to the Temperature tab of the character info window.
Made the selection in the Health panel easier to see.
Made the character-info window more opaque.
Made CharacterCreationMain wider at lower resolutions to avoid overlap.
Added a button to the on-screen keyboard to hide and show password text.
Enabled controller navigation in the server browser ui.
Enabled controller navigation in the server-settings editor.
Put the inventory and loot windows in their default positions if the controller is disconnected and "Use Keyboard and Mouse" is selected.

When placing items, the inventory and loot windows are collapsed if they aren't pinned open.
When placing items, mouse clicks on world objects are ignored to prevent the loot window popping open.
Set the width of ISEquippedItem to match its buttons. This fixes the wider invisible area blocking mouse clicks.
Set the texture compression option to be on by default.

Fixed navigation in the Multiplayer tab in the options.
Fixed editing server spawn regions with a controller.
Fixed the filter checkboxes going outside the ui on small screens.
Fixed being unable to navigate to the filter checkboxes and some other buttons.
Fixed controller focus when creating a splitscreen player.
Fixed toggling the mod under the mouse pointer when pressing the controller A button.
Fixed several cases of improper controller focus after clicking buttons with the mouse.
Fixed Lua error in MapSpawnSelect when the filename entry is hidden.
Fixed LoadingQueueState disconnecting immediately due to the A button being pressed, after pressing it in the last character-creation panel.
Fixed ISGameLoadingUI not receiving the controller focus when an unexpected error occurred while loading.
Fixed BootstrapConnectPopup, ServerConnectPopup and ServerWorkshopItemScreen not working with a controller.
Fixed Build 41 popup and DebugScenarios ui appearing overtop BootstrapConnectPopup.
Fixed cancellation in ServerWorkshopItemScreen throwing an exception in ConnectToServerState due to GameClient.connection being null.
Fixed using the controller X button to "Toggle Vision Info" in the foraging ui.
Fixed rendering the post-death ui for split-screen players 3 and 4 in the top half of the screen.
Fixed a Lua error pressing the Y button when moving furniture when the player isn't on a square.


[h3]BALANCE[/h3]
Added BedType property to the Pizza-Whirled seats which fixes pizza spawning on them.
Added amount of bait items to Fishing UI
Added dismantling cameras for scrap/skill points
Plastic bags and paper money can now be used as tinder.
Doors broken by zombies now give unusable wood instead of planks.
Container items now grouped together into their type in the context menu, so you can 'fill all' of a certain container.
Players now able to stack and unstack logs on the ground
Cars now remember their cruise control setting
Breaking vehicle windows now produces broken glass
Decrease zed attraction volume of “remove broken glass action"
Updated and fixed item categorizations
Updated evolvedrecipes.txt and items_food.txt.
Removed Cookable:true from the Burger evolved recipe.
Added the "|Cooked" flag to Burger ingredients in farming.txt.
Updated distributions Lua files
Muffins produced by the "Get 6 Muffins" recipe have the name of the ingredient added to the muffins, if any, such as "Apple Muffin".
Muffins produced by the "Get 6 Muffins" recipe are marked "Cooked", so the hunger-reduction bonus due to being cooked is applied.
Fixed adding a spice to a stale Taco increases boredom and unhappiness.
Added new methods to the Food class (to fix the above issue):
getBoredomChangeUnmodified()
getEnduranceChangeUnmodified()
getStressChangeUnmodified()
getThirstChangeUnmodified()
getUnhappyChangeUnmodified()
Higher level carpentry crates now have more space.
Can now move empty composter.
Can now move military crates.



[h3]DEBUG[/h3]
Updated Debug context menu.
Updated Debug Menu UI.
Added Z param to teleport.
Added change vehicle skin option to debug.
Added Sync for changing color, blood and skin of vehicles.

Refactored "Remove Item"-tool UI.

Added option to the F11 UI: Disable Welcome message (Works only in debug mode).
Added Reload Lua button to main screen (only in debug mode).
Added Cheats Panel in debug menu. Updated cheat list (merged in options from Admin and F11 menu).
Added fast move cheat (Controls: Arrow keys, Page Up/Down) (Debug and Admin panel).
Added Admin context menu options (some options from debug).
Added cheat Spawn Key door

Added LootZed tool
Added LootZed tool cheat (Check what can spawn in a container with what chance)
Added remove items tools
Added Remove items tools in Debug mode (Option for remove items from container menu and option in Debug UI for remove items in area)
Added options to the "[DEBUG] Objects" menu to:
1) Change a mannequin's script.
2) Create a Moveable item in the player's inventory for a chosen mannequin script.

Changes to the debug Items List UI:
Don't recreate the ui each time it is displayed, because it's slow.
Keyboard focus is set to the "Type" text-entry box each time the ui is displayed.
Pressing the Tab key switches focus between the "Type" and "Name" text-entry boxes when either one has the focus.



[h3]FIXES[/h3]
Fixed the player's head being semi-transparent where hair and beard stubble appears. This also fixes semi-transparency that has always been there around the edges of holes in clothing.
Fixed the controller tooltip text in the character-creation profession ui not displaying.
Fixed the overly-long delay before changing the volume of a cd player or television when using a controller.
Fixed spam messages about CDplayer's invalid world sprite.
Fixed the player not running when moving too slowly to sprint.
Fixed the character-creation Add Trait button being covered by the controller tooltip text.
Fixed placing multiple items locking the items to the first square that is clicked.
Fixed controller focus not being set to the "Check back cover" ui.
Fixed exploit holding down the Escape key before starting certain actions.
Fixed taking damage when walking down stairs while faster-forwarding.
Fixed a NullPointerException in InventoryItem.update() when an item's ReplaceOnUseOn refers to an invalid item type.
Fixed the post-death ui appearing in the main menu in multiplayer, if the player dies while the main menu is displayed.
Fixed use of an undefined variable in SPlantGlobalObject.stateToIsoObject().
Fixed buggy player rendering in the in-game map when the player is attacked.
Fixed "Decaying Corpse Health Impact" health reduction for "Low" and "High" both being less than "Normal".
Fixed some duplications and formatting in MainCreationMethods.lua.
Fixed custom Sandbox floats displaying too many decimals in the tooltip.
Fixed walls in Fire station in LV remaining cutaway for no reason.
Fixed character being able to rest on seats seen through some windows.
Fixed siren and light bar shutting off once you get a certain distance away from the vehicle. Now even when you go over 1000 blocks away and come back, the lights and sirens on cars are still going off.
Fixed not being able to attach sheet ropes at certain locations.
Fixed cars not remembering their cruise control setting.
Fixed "Place item on ground" ignoring item's favourite status when placing items.
Fixed being able to interact with rain collectors through the wall.
Fixed player-built doors inside houses being transparent at any angle of view.
Fixed Walkie-Talkies not showing new "equipped" weight when equipped.
Fixed Metalwork locker container name being "Crate" in the loot window.
Fixed a spawned bowl of pasta or rice not being edible.
Fixed Painted Crates becoming white after Pick up / Place down.
Fixed Rotten food showing in right click menu as (Fresh) when newly spawned.
Fixed Applying Disinfectant to an un-infected wound making that body part immune to infection.
Fixed player-built walls cutting away completely when built inside of another building.
Fixed typo in AdjacentFreeTileFinder.lua.
Fixed "Cake Preparation" not spawning rotten in 6 Months Later scenario.
Fixed Dish Towel having option to "dry self" even if char is dry.
Fixed Hair/Beard types grow back to their dyed colour, instead of their natural colour.
Fixed Coffee / coffee beverage fatigue reduction values not saving on quit / restart.
Fixed replacing disassembled floors with dirt tiles above ground level.
Fixed clock Size option not being changable while in game.
Fixed nil variable in ISWorldObjectContextMenu.doSleepOption() when tired enough to sleep on the ground.
Fixed disassmbling floors playing the standing animation instead of crouching.
Fixed saved Radio Stations being removed when a radio is removed and reinstalled.
Fixed Foundation Makeup requiring a mirror when it already comes with one.
Fixed characters not using a Knive that was equipped or in main inventory when crafting while a better Knive was in a nearby container.
Fixed ISPaintMenu error when near a placed radio.
Fixed weirdness installing and uninstalling radios in vehicles.
Fixed NullPointerException in ParameterInside.
Fixed Composters not having a container icon and title.
Fixed blank VHS Home tapes spawning. They are now replaced with a random Retail VHS when spawning loot.
Fixed an occasional exception in ISInventoryPane.sortItemsByTypeAndWeight() caused by a bad item-sorting comparison function.
Fixed parts of weather effects not being rendered sometimes. This resulted in some clouds not being rendered at different zoom levels, causing the scene color to change when zooming in/out, for example.
Fixed items replaced by their ReplaceOnCooked type not being synced in multiplayer correctly.
Fixed Lua error when the mini-map doesn't exist.
Fixed jumbo item-atlas textures being drawn the first time models are loaded.
Fixed mannequins that spawn in containers being invisible when placing them the first time.
Fixed being unable to transfer the same item between containers until a timeout expires, if the first attempt was interrupted. This happened in multiplayer only.
Fixed item models being drawn jumbo-sized for one frame when they are still loading, when using the old way of rendering 3D items.
Fixed item-atlas textures being drawn in the incorrect position sometimes.
Fixed items floating in air or remaining on the ground after removing or placing furniture.
Fixed items on furniture being visible through walls. Item alpha is set to match that of the furniture it is placed on.
Fixed not setting the keyboard focus on the debug Items List ui the first time it is displayed.
Fixed the character-creation profession screen displaying controller icons after activating mods in the New Game ui, when no controller is active.
Fixed building Wallframe using two planks but giving three when disassembled
Fixed cooking an egg showing the progress bar twice
Fixed shirts and other clothing items getting auto-removed from the world when they shouldn't be.
Fixed the character-creation profession screen displaying controller icons after activating mods in the New Game ui, when no controller is active.
Fixed ISMap.canWrite() and ISMap:canErase() not using the Write and Eraser tags.
Fixed support pillars for stairs not being created on the server or other clients.
Fixed inability to burn corpses in MP
Fixed Millipede and Millepede2 in forageDefinitions.lua both using type=Base.Centipede.
Fixed forageSystem.modifyItemDef() incorrect use of _itemDef.type.
Fixed forageSystem.removeItemDef() possibly using a nil _itemDef variable when printing a warning.
Fixed HumanVisual.naturalBeardColor possibly being uninitialized before being copied in HumanVisual.copyFrom().
Fixed OldBrake1 VehicleType being 3 instead of 1.
Fixed the "Enable left joystick radial menu" option not being saved.
Fixed a Lua error pressing the Toggle Search Mode key before starting a game.
Fixed the Toggle Search Mode key getting in the way when the game is paused.
Fixed crafted radios getting less maximum range at higher Electricity levels.
Fixed crafted Ham Radios weighing 1.5-3 pounds instead of 20.



[h3]AND MORE[/h3]
Changes to food and balancing can be read on our forums, since they would have this post hit the character limit.
https://theindiestone.com/forums/index.php?/topic/54121-4171-released/

Project Zomboid version 41.71 out with Steam Deck and controller upgrades

Project Zomboid, a survival game from The Indie Stone that's currently in Early Access just had a big new stable release, and it should now work better on the Steam Deck and with controllers overall.

Read the full article here: https://www.gamingonlinux.com/2022/05/project-zomboid-version-4171-out-with-steam-deck-and-controller-upgrades

Howard Ze(n)d



For our last blog we released the new unstable beta version of Build 41 – which was 41.69 (nice). Today we are releasing 41.71, which follows last Thursday’s 41.70.

You can subscribe to the Unstable beta branch and download 41.71 by right-clicking PZ in your Steam library, and selecting Properties. Now go to the Betas tab and select the "unstable" branch from the dropdown menu.



These have generally been iterative patches, polishing the unstable beta up to a standard that we hope to be ready for a wider stable release next week.

This week’s primary task has been our Sound Team and coder brains fixing out some nasty total sound cut-outs that had been cropping up on busy servers.

Another primary thing we’ve been adding patch-by-patch is our new approach to action music. Instead of switching between tracks mid-combat, the music is reactive and can increase and decrease in intensity during combat and other dramatic moments. The familiar tune can cross-fade into a high action version, essentially.

So far we’ve been getting a very positive reaction from players on the beta. With 41.71 we will have ten out of the fourteen action tracks working in this way, so let us know what you think!

Otherwise in these patches we’ve been fixing lots of different longstanding niggles with the game, so have a peek at the changelists – and jump in if you fancy on the unstable beta to let us know whether you think the build is ready for wider public consumption.

Finally, if you notice that the Unstable beta is misbehaving with your favourite mods, then please let your favourite mod authors know – though please also be patient with them as they all exist in the real world with real lives/jobs/families/pets/TV shows to watch.

Finally finally+ a reminder that we will be removing some legacy builds from the Steam betas once the latest unstable beta goes stable. If you are playing on an older Build 41 beta, then please return to the mainline if at all possible.

[h3]NEXT[/h3]
Meanwhile, new stuff continues to build for future updates to Build 41. The MP team continue their long-term work on having all items operate server-side to prevent item-spawn cheating, while also providing improvements to 41’s more iterative patches.

At the moment there’s also MP work in the can on stuff like vehicle radios now receiving radio stations, VOIP and radio chat messages in bubble text over the car. Likewise improvements have been made to your client predicting where your friends are falling/dying which is resulting in resulting in far less corpse placement weirdness.

Work is also currently going into the smoothness of vehicles being controlled by other folks on the server – especially when they are moving at high speed.

On the TIS side, meanwhile, EP has been integrating a new feature into the in-game map system that will be of great interest to admins and server owners: the ability to see where individual players are on Build 41’s in-game map.

Server operators will also have the option of allowing members of safehouses or factions be able to see each other on their own map, if that suits their playstyle more than the usual default of having absolute no idea where your friends are.



While it’s still not imminent, Aiteron is also integrating new animations into his fishing system that are starting to look really cool. This is super WIP and will get a lot of polish, but this is what it looked like this morning.

Please note that in the vid the character is following the cursor: the cursor doesn’t represent fish placement. Gameplay hasn’t been fully tied to the anims yet.

[previewyoutube][/previewyoutube]

We are also looking for feedback and local knowledge from PZ players from Kentucky (and nearby surrounding regions) who enjoy fishing themselves.

If this means you, then please check out the questions on this Google form. Massive thanks to those who previously emailed and have already given us some direction also!

 
[h3]NEW HIRE[/h3]
Avid TIS followers will know that for a while we have been on the hunt for an Animation Engine Specialist to join the Project Zomboid team, and we are delighted to welcome one Howard Smith to our ranks. Howard is a big PZ fan, and also has big brains that have previously worked on the likes of Call of Duty, Halo and (wait for it) Left 4 Dead.

Truth be told, in the big push for MP our work on our animations tech stalled somewhat – and there’s still many, many aspects of PZ combat and movement that we want to streamline and improve, and likewise many complex systems we’d dearly love to integrate in the future. Howard has a tasklist a mile long covering areas in which our animator has been logjammed recently, and as such will be something of a busy boy.

Something else, meanwhile, that this gets us back on track with is work towards a release of our internal AnimZed animation tools to the community. This won’t be an imminent thing, but part of Howard’s work while getting bedded down in our code will be in building documentation and making some improvements both for us and the modding community.

[h3]MORE NEW HIRE?[/h3]
Following the success of Build 41, we also find ourselves in a position where we can hunt down other experienced Games Programmers to join the Project Zomboid team.

We are looking for coders willing and able to refresh some of our older systems, polish the existing ones and then to delve further into the features that will be part of the Knox Event’s exciting future.

Interested applicants should check our jobs page, but we should underline that we currently don’t have any entry-level positions available. You will need to have a fair amount of experience we are afraid.

[h3]TILL NEXT TIME[/h3]
That’s all the major news for this blog, but tomorrow we will have a surprise treat for denizens of the PZ subreddit. Pat_Bren has tracked down and interviewed a community hero, which has finally allowed us to say…



This week’s arboreal scene from a S1ngle Man. 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.