IMPORTANT TO NOTE:
Project Zomboid IWBUMS beta update 41.51 contains significant optimizations to our save game system. As such any saved games played in 41.50 will NOT be operational.
A separate Steam beta containing the previous 41.50 build has been provided so that you can continue and finish your current game.
Similarly, in a changelist as big as this some mods WILL become incompatible.
If you enjoy playing modded PZ then please consider using the provided 41.50 beta to allow the creators of your favourite mods some time to update to 41.51.
This version also sees some of the foundational aspects of PZ updated to more recent versions - with it now running on Java 15 and LWJGL 3.2.3. These have, and will in future, give us access to many new optimizations and engine features.
Although any incompatibilities found in our testing group have been fixed, some issues may occur on outlier system set-ups, so please report any misbehaviour to us!
If 41.51 fails to run then please make sure you are not running an non-updated version of Windows 10, as the 64 bit version of 41.51 is incompatible with some older versions. The game should account for this, and choose not to load incompatible optimization features, but this might still be an advisable first step on a failed launch.
Now running on Java 15
Now running on latest LWJGL (3.2.3)
- Previously, to seed/water/harvest, you needed to right click on every plant and select an action. Now once you selected seeds, water or harvest, you'll have a cursor to water multiple plants easily.
- Shift+double click can now be used on clothing items in the inventory to wear the item
- Newest earned skill level is now highlighted when the skill panel is opened
- Added filter icon to inventory panel to add additional filter/sorting options, currently has 'weight'
- Water source now displayed in parentheses for the Drink/Wash option (partially to diagnose issues with puddles and rain)
- Analog watches no longer have alarms
- Digital watch display now has alarm button that can be pressed on the UI
- 'Saliva only' transmission option - player is immune to scratch infection
- Added tooltip to show which gun magazine will be filled
- Required items to cure plants and crops now shown.
- Zombies faceplanting on broken glass now get lots of blood on head/neck, and some on upper torso.
- Alarm clocks now display the same bell as digital watches when an alarm is set.
- When trying to repair a door on a vehicle through the mechanics menu, a tooltip appears telling the player that they need to uninstall the door before they can repair it. They can also then repair the doors from their inventory.
- When pressing Shift+E from any passenger door you will then move straight through to the driver's side if no one is already there.
- Added more smashed car models.
- Zombies can now pathfind through destroyable objects. They prefer to go around, but if there is no other path, they'll thump on walls and crates, etc.
- Added brazilian portugese radio translations
- Added hair gel. Mohawk will now be flatten if you wear a hat. Now need hair gel to fix it.
- Added new options to add padding/patch holes on garments. This will patch any holes if there are some and then add padding to the other parts.
- Added a remove all padding/patches option.
- Added small XP gain when ripping clothing/sheets. Gaining small amounts of XP when you recieve some thread back from items so it can't be abused.
- Added sandbox option for decay of items that are knocked off / fall off zombies
- Added some variety to crashed cars
- Use a cursor to choose which walls or objects to paint or plaster, when using the mouse and keyboard. This cursor was already used when playing with a controller.
- Added a combobox to Items List Viewer to choose which splitscreen player to give items to.
- Hats/Gloves added to the remove/decay list. Default also now set to 24 hours.
- Updated Korean fonts and translations, and updated community translations.
- Added "Please check PZ Steam betas for version 41.50." for WorldVersion 175 saves.
- Require Windows 10 version 1803 (build 17134) or greater to enable the newer garbage collector, earlier versions will just run without it and not receive the optimization.
- Added TrailerCover to VehicleDistributions.
- Allow trailer bodywork to be repaired by welding.
- Added a cursor for removing bushes, plants and wall-vines.
- Replace north-west corner wallframes with two separate wallframe objects (the first time they are loaded). The player can't upgrade the north-west corner objects.
- Car stories can now spawn decomposed zombies corpses.
MODELS AND ANIMS
- Added long hair style for when wearing hats
- Adjusted some clothes to accommodate new long hat hairstyles
- Adjusted a couple of female hats
- Tweaked female long hat hair to stop pixel flickering
- Added some new hairstyles
- Added some Braided hairstyles
- Adjusted some hairstyle definitions as they were pointing to a non-existent hairstyle and subsequently were invisible when wearing some hats.
- replaced the 'land gentle' anim with the heavier landing
- tweaks to turn 180 anims, first pass
- adjusted Zombie_Idle_FloorOnBack.X pose to match zombie death anim
- Added butter knives stuck in zombies.
- Reduced number of hunting knives stuck in zombies.
- Lowered zombie survivor in horde spawning rate.
- Lowered chance of alice pack on survivor zombies.
- Increased beef jerky nutrition values.
- Balanced weight of ammo/ammo box to be more consistent/logical (box weight is bit less than the full bullets stack)
- Dead animals (except rat/mouse) give unhappiness when you eat them raw, just cook them to remove that (tooltip was added to explain).
- White display counter (mainly in butcher shop) now also acts as fridge
- Added more tailoring books to kitchen.
- Added rifles in shed/garage.
- Zombies now do more damage to fences when crowding against/over them
- Now possible to recover and repair a weapon used in Spear creation
- M36 Revolver now only has capacity for five rounds
- Character can now auto-open nail boxes
- Beer can now returns an empty can after it's drunk
- Cockroaches and Grasshoppers can now be used to bait the StickTrap
- Tuna Can no longer requires a Can opener to be opened
- Increased health points of player built walls.
- Reduced the engine force & total speed of going in reverse with a car.
- Adding more items to partially consumed crafted foods will add new food values to original food, not partially consumed one
- Berries salad now reduces thirst
- Lowered amount of water in a bleach bottle.
- Increased recoil of pistols/revolver.
- Increased chance of creating crawler when hitting zombies with cars.
- Park Ranger/Lumberjack profession now gives a bonus to walking through trees.
- Leg fractures now reduce speed according to their severity.
- Splints increase walk speed with a fracture, depending on the doctor's Medical level.
- Can now add salt and pepper to sandwiches.
- Zombies spawning on vehicles stories now have high chance of having a key to a related vehicle.
- Increased the effect of injuries on sprint speed.
- Increased "wash vehicle" time.
- Crashing a car into objects can now damage the engine if hood condition is too low.
- Bags in hands/equipped now reduce run speed and walk speed. The more full the bag is, the bigger the slow down. Equipped bags in 2nd hand can also reduce combat speed.
- Fuel stations no longer have unlimited fuel.
- Added sandbox option under World category "initial fuel station gas", ranging from "Empty" to "Full" with "Low/Very High" etc. in between
- It takes a minimum of two zombies climbing over a fence at the same time to damage the fence. Metal fences take half the damage as wooden fences.
- Made firefighter clothing slightly heavier and increased their Run and Combat Speed Modifier accordingly.
- Lowered fanny pack capacity
- Increased empty gas can weight from 0.3 to 1.5.
- Added bullet defense in clothing tooltip.
- Some knives (mainly Stone Knife) slightly reduced in damage.
- Athletic trait now excluded when selecting Very Underweight.
- Adjusted weight of ammo boxes.
- Made tents thumpable so zombies can destroy them.
- Wooden wall frames placed by the mapper become IsoThumpables that can be upgraded, like user-placed ones.
- Did some balance on sneak/lightfoot exp gain: you now need to be rather close (15 tiles) from a zombie to gain exp, you also need to not be targetted by a zombie.
- Decreased damage done to feet when walking barefoot.
- Decreased damage done by trees when walking through them.
- Increased chance of spawning feeding zeds.
- Decreased chance of feeding zeds spotting you
- Set all bandana weight to 0.1.
PRE NOISEWORKS SOUND CHANGES
- Preload sample data ahead of time so that sounds can play immediately when started.
- Fixed some sounds randomly starting muted due to the Occlusion parameter not being re-initialized to the correct value.
- Don't set Occlusion to 1.0 as that seems to completely mute some sounds.
- Pause music when the game is paused.
- Fixed the BreakObject sound not playing when destroying carpentry objects.
- Added context menu option "[DEBUG] UIs > Spawn Points" for teleporting the player to various spawn points to check their positions.
- Added a context-menu to the "[DEBUG] UIs > Spawn Points" editor. This can be used to reposition and remove existing points.
To save the changes, use the "Copy All To Clipboard" menu option and paste in the appropriate spawnpoints.lua file.
- Added a separate menu "[DEBUG] Vehicle > Set Script (Smashed)" for smashed vehicles.
- Allow deleting map_zone.bin from the "More..." load-game ui in debug mode.
LOOT DISTRIBUTION CHANGES
Partially implemented new system - as yet untouched loot tables remain the same as before.
New more handcrafted loot placement / container system used for places like Giga-Mart and residential kitchens now applied to the rest of the map. Locations that previously spawned random grab-bags of loot (like Spiffo’s) should have their contents sorted into relevant lists: If you’re looking for a bladed weapon or some fresh-cut chops, try looking around the kitchen of any place that sells meat (i.e, not a bakery) for the meat-cutting station. If it’s baking supplies you need, look for where the sacks of flour are stored-- they’ll probably be next to a rolling pin.
Convenience stores, corner stores, and gas stations have had their shelves’ contents sorted so loose cigarettes no longer mix with the lollipops. Players who visit the pharmacy already have an idea of how the shelves are laid out: Some have snacks, some have drinks. You’re less likely to find medicine in a gas station but it’s not unheard of-- ditto car supplies in a Zippee’s. If you want the most of a particular kind of item, it’s best to stick to the relevant business. Gas station tylenol is a ripoff anyway.
Medical locations now sort their contents into tools, medicine, and doctor-related stuff like gloves, masks, and scrubs. Bars, beauty salons, butcher shops, cafes, and liquor stores all take the same approach. Giant ‘catch all’ loot lists should eventually be replaced with tailored selections of items that are relevant to the location they’re spawned in.
- Fixed movable items, such as radios from cars, having correct condition when placed and picked up again.
- Movables can now be dismantled from inventory, except for the multi tile object ones i.e: beds.
- Added MovableRecipe which has no script definitions, instead gets created on the fly from movable definitions.
- Refactored some stuff so the MovableRecipe has the same chances, xp, resultitems, equipitems etc as world object dismantling.
- Single tile Movable items are now defined as 'Moveables.world_object_sprite_here" instead of all being 'Moveables.Moveable'.
this also means these movables can be easily instanced directly now
- Removed the old JInput library which was used for controllers. The GLFW library, part of LWJGL 3, is now used.
- GLFW has a database of several hundred Xbox-like controllers, including PlayStation controllers, so these should
have a good chance of working. Recognized controllers are listed in media\gamecontrollerdb.txt.
- The user can create their own gamecontrollerdb.txt file in their User\Zomboid\joypads directory. This can be done
to add new controllers or to override a controller in the game's media\gamecontrollerdb.txt.
- The game should handle controllers disconnecting and reconnecting during play. If player 1's controller is
disconnected, they can choose to revert to keyboard and mouse input.
- The controller X button now rotates objects in Place mode.
- Fixed "delete all" on bins not working.
- Fixed tailoring book/farming mag not spawning in shelves.
- Fixed water container in office weighing 3.
- Fixed white display counter not cooling food.
- Fixed zombies not being able to pathfind through obstacles surrounding vehicles.
- Fixed some minor pathfind issues.
- Fixed zombies thumping windows when they didn't hear a sound or see the player, when the "Environmental Attacks" sandbox option is disabled.
- Fixed not being able to plaster doorframes built at Carpentry level 7
- Fixed stretched sprites in cutaways, including roof wall tiles, garage doors and certain windows
- Fixed heatable water containers not heating up if put into campfire/bbq before they are lit
- Fixed deep wounds having a shorter half-life than scratches or lacerations before healing
- Fixed GameWindow.StringUTF writing garbage characters at the end of strings. (Fixes saves)
- Fixed lights losing their custom color. (For example, the blue Pharmahug sign was only blue the first time it was loaded. Moveable lights lost their custom color when moved.)
- Fixed misplaced door models on the cars with door-models.
- Fixed keypad key names being the same as keys on the main keyboard.
- Fixed scissors not allowing jaw stab.
- Fixed corpses clipping through furniture and walls with the RBShopLooted story.
- Fixed FMOD .bank files not being found when the current working directory is not the same as Java's -Duser.dir option.
- Fixed some flying cars
- Fixed crawling zombies getting stuck while moving near walls.
- Fixed crawling zombies not thumping fences like they do with doors.
- Fixed crawling zombies trying to go through open windows.
- Fixed crawling zombies trying to crawl through fences when there is a nearby way around.
- Fixed zombies sometimes thumping on wall frames that they can climb through.
- Fixed WorldDictionary ID's not being reset uppon new game.
- Fixed the 'campfire bug'. in some cases sprite were not being set properly on IsoObject, this may have also affected erosion objects.
- Fixed edit item coloring not working.
- Fixed map issues.
- Fixed the fishing UI appearance not changing when a controller is disconnected.
- Fixed not being able to add any condiments to a Burger found in game
- Fixed Empty Pop Can appearing after char drinks a beer
- Fixed Sawed-off JS-2000 shotgun only being reparable with another Sawed-off.
- Fixed Hoodie unequipping when hood up + baseball hat
- Fixed cooking food increasing weight of the dish inconsistently
- Fixed player being able to eat by double-clicking when full to bursting
- Fixed Bourbon having two options to empty the bottle
- Fixed M9 pistol and D-E Pistol having their icons mixed up
- Fixed Wet Bath towel losing Favourite status after drying
- Fixed new ammunition types not being dismantlable
- Fixed "Sleep on ground" option in the car when char is Ridiculously tired
- Fixed some furniture not being thumpable by zombies.
- Fixed unhidden "Hat" related hair type.
- Fixed incorrect alpha fades on non-updating objects such as roof eaves and furniture.
- Fixed being able to survive bleach death by eating lemongrass
- Fixed not being able to repair double doors
- Fixed Fish fillet / Chicken behaving strangely when used in salad
- Fixed filling up an empty bottle / bucket from a river or a lake incorrectly showing "Puddle" as a source
- Fixed not being able to hold RMB and use F to turn on flashlight
- Fixed "Easy use" causing all car trunks to be opened, not only unlocked
- Fixed Analog watches not having alarms if Spanish language is selected
- Fixed Padlocks that spawn in stores oftentimes getting called "house key" + a string of numbers
- Fixed not being able to freeze separate eggs
- Fixed inconsistence in rmb -> grab and basic transfer inventory action.
- Fixed some tile defs (bunker cutaway, railward vendor machine, changed shelves to clothing rack on certains container for clothing store).
- Fixed laundry basket acting as a dryer.
- Fixed zombies spawning outside very large buildings (eg. Mall) when unexplored rooms are seen for the first time.
- Fixed drinking from soup/stew bowl with a spoon not using the spoon.
- Fixed being able to bandage a fractured body part.
- Fixed cure flies/mildew on plants causing a crash.
- Fixed harvesting plant while plant info window was open causing a crash.
- Fixed some foods (notably a lot in Zed stories) having zero nutritional values
- Fixed not being able to wash blood stains off vehicle windows
- Fixed furniture sometimes fading away while the player is still close enough to see inside.
- Fixed not being able to freeze wild eggs
- Fixed seat naming weirdness by removing "BigCarSeat" and "SportCarSeat" items, and renamng "NormalCarSeat" items to just "Seat".
- Fixed the random vehicle generator which was causing "Standard Seat" to be selected every time.
- Fixed being able to do fitness exercises when you shouldn't.
- Fixed a physics bug that caused the Sports Car to not accelerate to it's top speed of 120 km/h. This also caused vehicles to get pushed downwards at higher speeds.
- Fixed office water dispenser weighing only 5.
- Fixed blue hospital curtain requiring electrical skill to be picked up.
- Fixed "Hat" variants of hairstyles showing in the "Change" menu in the character-info ui. Some hairstyles (for example TopCurls) have a "Hat" hairstyle in their "Trim Choices".
- Fixed dropping equipped container while being overencumbred duplicating the container on ground.
- Fixed being able to grab items through fences.
- Fixed being able to do fitness while climbing.
- Fixed house alarm and helicopter sounds ignoring the master sound volume.
- Fixed UI showing up on savefile thumbnail images.
- Fixed the clock not being centered in splitscreen and overlapping the button prompts.
- Fixed splitscreen savegames taking a screencap of the middle of the screen. Thumbnails will now be created from Player 1 screen.
- Fixed OpenGL exceptions when creating a new game due to trying to create the thumbnail image in GameLoadingState's thread.
- Fixed "can't create player at" error when going back from the character-profession screen and starting a challenge.
- Fixed being able to rotate carpentry objects while they are being built. ISBuildMenu.cheat no longer controls whether build actions complete immediately. Instead, IsoGameCharacter:isTimedActionInstant() is called, as is already done by most other actions. This makes it easier to test build actions without having to have all the materials.
- Fixed inventory tooltips flickering between visible and hidden when using a controller while in the main menu.
- Fixed controller glitch when closing a map by clicking the close button in the titlebar instead of using the B button.
- Fixed smart zombies triggering house alarms when opening windows when the "Zombie House Alarm Triggering" option is disabled.
- Fixed bumping into (and possibly being tripped by) zombies on the other sides of doors/walls/windows.
- Fixed being able to load bullets into or unload bullets from a magazine after it has been inserted into a firearm by a previous action.
- Fixed broken behavior assigning keys in the options.
- Fixed animation lockup pressing Alt + Space when Alt is assigned to both Sprint and "Manual Floor Attack".
- Fixed uninstalling parts resetting the condition to 100 sometimes
- Fixed items not saving condition if the condition was 10. Now condition only isn't saved when condition equals condMax (max condition).
- Fixed being able to open multiple sleep dialogues.
- Fixed sea horse bins not having "delete all" button.
- Fixed new liquor store in Muldraugh distributions.
- Fixed some wrong definition for bar.
- Fixed display case in pie restaurant.
- Fixed thin skinned giving more resistance to being damaged while walking in trees.
- Fixed icon for shooting glasses.
- Fixed Saucepan repairing itself after it was filled with water
- Fixed items being rendered in the wrong position (offscreen) after drying out on the ground.
- Fixed a Lighter being equipped when a Lit Candle is available when pressing the 'F' key.
- Fixed not being able to reinstall radios in vehicles.
- Fixed tainted water source being prefered over a non-tainted water source when drinking or filling bottles. Prefer a non-tainted water source over a tainted one when drinking or filling bottles.
- Fixed having to move and place sinks after water shut off to be plumbable again.
- Fixed not being able to use some shovels and handforks to pick up hedges, flower beds, etc. Any item with the DigPlow tag can now be used to pick up objects with the PickUpTool=Shovel sprite property.
- Fixed random horizontal and vertical lines appearing along the edges of some textures.
- Fixed the Crawl Under Vehicle sandbox option not being applied in some instances, so all zombies could crawl under vehicles.
- Fixed formatting of WorldItemRemovalList in xxx_SandboxVars.lua files.
- Fixed the player death-drag-down animation EndDeath being overridden by HitReactionFromBehind. They both had one condition that didn't exclude the other animation.
- Fixed the player always getting up from sitting sometimes.
- Fixed multiple different VehicleDistribution Specific categories of loot being applied to the same vehicle. Now a random Specific category is chosen for the vehicle as a whole, instead of for each container.
- Fixed LuaManager.refreshAnimSets() not checking all players in splitscreen.
- Fixed error clicking on a plant infested with flies without having Insecticide Spray in inventory.
- Fixed Fitness.save() saving exeTimer.size() twice.
- Fixed the inspect-garment ui not resizing to accommodate the Bullet column.
- Fixed being able to do exercises while climbing ropes.
- Fixed some cutaway problems.
- Fixed evolved recipe (cooking stir fry...) not resetting their base nutrition values, giving big boosts to nutrition on those recipes.
- Fixed invisible players triggering house alarms.
- Fixed some issues with zombie visibility.
- Fixed duplicate Scratch Defense stat in item tooltips where nothing or Bullet Defense should be.
- Fixed missing BodyParts\overlays textures by rebuilding UI2.pack
- Fixed layout issues in the inspect-garment ui.
- Fixed debug context menu exception when there is no zone on the clicked square.
- Fixed models with capital "I" in the name not loading on the Turkish locale.
- Fixed analog watches sometimes having the alarm set, which can't be turned off.
- Fixed a Lua error when running out of paint or plaster when using the paint/plaster cursor.
- Fixed some spawn points that were inside furniture or outside buildings.
- Fixed broken Perk translation in carpentry tooltips.
- Fixed unknown RemoveUnhappinessWhenCooked item parameter. Now "Cook to remove happiness malus." appears in the tooltip for fish, may want to edit this.
- Fixed thumbnail images for savefiles using mods not being updated after returning to the main menu.
- Fixed some hair type list.
- Fixed some parking spot in Muldraugh.
- Fixed wooden pillar acting like a wall.
- Fixed DataChunk exception with a user-created walkway on a guard tower.
- Fixed Lua error building fences.
- Fixed a garage in Riverside having an inside-out door and an old dirt floor tile (with a stray pixel in it).
- Fixed broken carpentry-tooltip perk translations.
- Fixed Shift-E allowing the player to switch from a rear seat to the driver's seat in the police car.
- Fixed "laundry" being in the list of buildings that RBShopLooted can happen in.
- Fixed WorldItemModelDrawer ignoring ModelMesh.m_transform. This fixes rotation of the forthcoming 3D item models so they match what is seen in assimp_viewer.
- Fixed font loading.
- Fixed InventoryItem.attachedSlotType being treated like an item module.type when it isn't. This fixes the "WARNING: Cannot get registry id" spam in console
- Fixed "Open File Location" button in the load-game "More..." ui, since it doesn't work with -Djava.awt.headless=true.
- Fixed the farming-cursor tooltip showing the exact water level for farming skill 4 instead of 5+.
- Fixed hats not rotating as they fall to the ground.
- Fixed the item type of Radios being changed to Radio.worldSprite which broke translations.
- Fixed untranslated names of movables being displayed for the Disassemble recipe.
- Fixed the Disassemble recipe for movables being displayed when the player couldn't actually perform the recipe
(due to missing tools, for example) which is different than other recipes which aren't displayed.
- Fixed some tiles properties problems.
- Fixed duplicate VehicleDistributions.Hunter. One had TrailerTrunk, the one without it was removed.
- Fixed randomized building code adding barricades to double doors or garage doors, which the player can't do.
- Fixed campfire and tent options appearing in the context menu when in a vehicle.
- Fixed foraging ui being visible still when the player gets in a vehicle.
- Fixed duplicate radio items appearing in the "Install" men
- Fixed two unused files from "maps/West Point, KY".
- Fixed smashed StepVanMail using the StepVan template instead of StepVanMail (which didn't exist).
- Fixed upgraded doorframes blocking movement.
- Fixed weapon models without a "world" attachment not being oriented the way they used to be when on the ground. This is why things like the Club Hammer were standing on end.
- Fixed missing "world" attachments on several weapon models.
- Fixed some multi-hit sandbox problems in which some weapons would not multihit.
- Fixed TrailerCover missing from container distributions.
- Fixed Trailer-TrailerTrunk missing from container distributions.
- Allow modders to add new vehicle zones to the global VehicleZoneDefinition table.
Previously, only the game's zone names and types were allowed.
This should work for any vehicle zone not called TestVehicles or containing TrafficJam.
- Added support for loading animations from a mod's media/anims_X directory (and subdirectories of that). It should handle activating and deactivating mods.
- Global ModData
Registers moddata tables with a given String key.
When Global Moddata is initialised during world loading it triggers the event "OnInitGlobalModData" with parameter: boolean isNewGame.
LuaTable ModData.create(String key) creates and returns the table with given key, returns null if the table already exists.
String ModData.create() creates a table with a random UUID key, note: returns the string key.
LuaTable ModData.getOrCreate(String key) gets or creates the table with given key.
LuaTable ModData.get(String key) returns the table with given key or null.
boolean ModData.exists(String key) return true if table with given key exists.
LuaTable ModData.remove(String key) removes the table with given key if exists and returns it or null.
void ModData.add(String key, LuaTable table) store the table with given key (overrides any existing table).
ArrayList getTableNames() returns a list of all registered tables.
Global ModData is not synced between server and client as depending on what the moddata is being used for this may not be required or even unwanted.
Syncing of data where needed is up to coder/author. There are however two methods for networking:
void ModData.transmit(String key)
- this will attempt to transmit the table with given key, when called on server this is send to all clients, when called on client send to server. (see note on receiving moddata below)
void ModData.request(String key)
- client only, this sends a request to server to send back the table with given key to this client.
When the server or the client receives a moddata packet it is not automatically added to the local register.
Instead the packet is read and the event "OnReceiveGlobalModData" is triggered, the String key and LuaTable table are passed as arguments.
NOTE: the table argument can be 'false' when moddata packet replied to a ModData.request.
The coder/author can then decide to parse, register or keep it as temporary lua table only etc.
- Fixed issues with setting appropriate texture flags when loading mod texture packs.
- World textures were missing the flag to create mipmaps, resulting in "sparkly" textures when zoomed out.
- Floor textures were using compression, resulting in visual artifacts sometimes.
- UI textures were using compression and "mag linear" filtering instead of "mag nearest" filtering.
- When a mod texture-pack name ends with ".floor", compression is turned off.
- For texture packs containing UI textures and/or item textures, the mod.info file should add "type=ui" to pack= lines, like this:
- Allow vehicle scripts to override the "model" without a name.
Previously, "model XYZ" would override a previously-declared "model XYZ", but "model" alone wouldn't override "model".
- Allow mods to define custom sandbox options.
Each file called media/sandbox-options.txt that exists is loaded before Lua files are loaded.
- Allow mods to define custom perks (Skills ingame).
Each file called media/perks.txt that exists is loaded before scripts and Lua files are loaded.
New perks and perk categories can be defined.
This required removing the Perks enum. Now Perks is a class containing static instances of Perk.
So Perks.Strength is now the Strength perk itself instead of an enum value.
The Lua Perks table contains the predefined perks and also any custom perks.
Fortunately, these changes didn't require any changes to Lua files.
- Added textureShadow property to vehicle scripts to allow overriding the shadow texture.
For example, write "textureShadow = schoolbag_spiffo," without quotes.
- recipe.Prop1 and recipe.Prop2 can specify a source item to display in the player's hand.
For example, Prop1:Source=2 will use either the Saw or GardenSaw model:
recipe Saw Logs
The Log model could also be specified as Prop2:Source=1.
- Vehicle windows will have color from the textureLights texture applied. This was added for the boat mod. Call BaseVehicle.setWindowLightsOn(true|false) to control this. This setting isn't saved, or synced in multiplayer.
- Vehicle-shadow size and position may be set using the shadowExtents and shadowOffset properties in vehicle scripts. These can be edited in the vehicle editor, under the Chassis section.
- Fixed "Mod: XYZ" in item tooltips for mod items always displaying the name of the last mod loaded.
- Added Tooltip.ModName debug option to control displaying "Mod: XYZ" in item tooltips for mod items.
This could be changed to a Display option if wanted (translations needed though).
- Added GameTime helicopter-related methods for mods:
setHelicopterStartHour(int hour) // 0-24
setHelicopterEndHour(int hour) // 0-24
- Optimized game variable look-ups.
- AnimCondition no longer repeatedly searches for the same variable by name.
- Instead, it creates an AnimationVariableHandle and re-uses it.
- GameProfiler.invokeAndMeasure now check whether or not the recorder is running, and avoid capturing a new Lambda
- Performance improvement. Added an early-out to updateTwistBone
- If the current twist is <1 degree, the function aborts.
- Savegame compression optimization from Turbo
- Refactored and tidied up WorldDictionary.
- Server now sends the WorldDictionary data to clients when connecting.
- Client now only saves WorldDictionaryReadable.lua in game folder.
- WorldDictionary now respects Core.noSave.
- World loading should now abort correctly if any problems are found with the dictionary.
- Added method getModID(), getModName() and isVanilla() to InventoryItem.
- Added the mod name which added the item, and optionally any overrides, to item tooltip.
- Performance improvements to BoneTransform calculations for a 2x boost to animation system.
- Fog optimization
- Memory optimization: placed IsoGridSquare.collideMatrix, IsoGridSquare.pathMatrix and IsoGridSquare.visionMatrix arrays to 32 bit integer and wrote bit access functions for those.
- Refactored IsoRegion system
including optimized region calculations and fixes for a bunch of things that could cause bugs.
- Added new IsoRegion debugger based of ZombiePopulationWindow
(can build via debugger now for quick testing).
- Added IsoRegionLogger, logs can be viewed via debugger.
- WorldDictionary -> disabled logging of missing object ID.
- Colors.java -> added GetColorFromIndex, GetColorsCount.
- Added Character.Debug.Render.Vision option to display the player's vision cone and see-nearby-characters radius.
- Use the proper distance instead of Manhattan distance in IsoPlayer.updateLOS().
- Fixed IsoGameCharacter.updateSeenVisibility() not handling the see-nearby-characters radius, resulting in zombies behind the player (or nearby but outside the vision cone) not becoming visible when they should
- Don't use shared animations on the nearest 20 zombies, to avoid foot-sliding when they're lunging. IsoWorld.sceneCullZombies() already sorts zombies by visibility and distance, so it is used to set a flag on zombies that shouldn't use shared animations.
- Removed IsoPlayer.m_moveDelta because IsoGameCharacter.m_moveDelta already exists. The value is always 1.0 in any case