NEW - 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 dismantling cameras for scrap/skill points - Changed setHaveConstruction to apply only when constructing and placing objects - Added the skeleton mannequin. - Added additional item categories and addressed some blunders - Added compilation of new hair types - Added option to "add all" to partially full Thread, Ducktape, Twine etc - Updated loot distributions. - Added media/scripts/mannequins.txt which describes the model/texture/animation/etc for different mannequins. - 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. - Added amount of bait items to Fishing UI - 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. - ISClothingExtraAction now sets the item's job type to "Wear" and displays the progress of the action in the inventory window. MP - Remove vehicle physics from server (first of multiple commits towards this) - do not apply impulses to static / kinematic vehicles - limit changes of linear and angular velocities - 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: kick local admin - Cancel auth ticket on client shutdown - Passengers no longer allowed to exit the car while moving - Toggle timer is disabled in non-pvp area - MultiplayerLightAmbient debug option is removed - Fixed radio in MP (sync) - Refactored SafetySystem - 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 - Server option process cycles for SafetySystemManager are simplified - PVP safety is now set to true when PVP is disabled on server - 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) - 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. - Hide the black overlay when the sleeping player is killed - PVP safety now set to true when PVP is disabled on server - 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. MODDER WARNING: This could break any mods that modify ISRadioInteractions.lua or are using the OnDeviceText event (which gained a new parameter). MODDING - 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. CONTROLLER / STEAMDECK IMPROVEMENTS - 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. - 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. DEBUG - 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 (Work 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 option 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 spawns in 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. FIXES - 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.