Jump to content

Tykvesh

Member
  • Posts

    82
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Tykvesh reacted to nasKo in Snack Attack   
    Haylo, here’s another dev-log sent down from the mothership.
     
    Few different things form different areas this time around, starting off with an example system update from one of the four main pillars of Build 42 – which are the crafting improvements, and the sorts of places they could take the game to.
     
    CRAFTY BUSINESS
    For the past few weeks Turbo’s focus has been on making the new machine scripting system more versatile and easy to use.
     
    As well as creating the crafting stations and machines required for the crafting tree we’re working on (potters wheels, anvils, woodwork benches and such) our ultimate goal is to allow all machines and appliances on the map utilize this system to unify how machines work within the game.
     
    This overall goal won’t be present in its entirety for a first release of B42, but the framework will have been installed that allows for them not only to share the same UI systems to keep them consistent, but also allow for them to be connected together, and allow them to have more complexity of interior parts that could be salvaged and co-opted for other uses. From fire alarms, to clocks, to ovens, to microwaves.
     
    The ramifications of this system will be huge both for the game and for modders, allowing for the machine UI and functionality to be both scriptable with lua and with the object scripting. It will then provide powerful and easy-to-use tools for devs and modders to create interesting machines quickly, cater for slots to place items, and allow for items to interact with these machines in a diverse way with a consistent UI.
     
    Instead of needing to build a bespoke scripted UI, and the complex interactions between the player, machines will be able to be added with minimal code for functionality, and provide higher level details on what goes into them and what comes out. Likewise there’ll be stardardised knobs and buttons that this backend will allow to be attached for player interaction.
     
    In order to test the versatility of how this system could be applied to vanilla objects within the game (and how far we could push it) we wanted to apply it all to a system that wasn’t strictly a crafting station like the more standard one we showed off a month or so ago with some post-apocalyptic pottery.
     
    As such, Turbo put together a test case that could have some fun utilization within a multiplayer settlement in the post-apocalypse – and indeed is pretty cool on your general solo survival adventure too.
     

    There will probably be those out there looking at this at face value, perhaps even getting annoyed and asking ‘nggggh, why vending machines?’. (Hello, to those out there!)
     
    However, the important aspect to take away from this video are the many unique interactions, systems and features that have been built into the vending machine using this same framework.
     
    What we see here allows for a unique key to unlock the machine, allows it to be stocked with different items (which could be very useful for players on a multiplayer server wanting to run a shop, for example), allows it to take in money and deposit an item from its internal inventory, allows for buttons on the machine to pick particular products, and finally allows for a custom user interface for a particular machine that’s FAR easier to create than it is with B41’s currently somewhat unwieldly UI system.
     
    That the new crafting / machine framework is flexible enough to be able to accurately create a vending machine is a huge deal to us, and in time to modders and the overall good health of the game as we continue to grow and expand.
     
    Ultimately this framework will be expanded across all machines across the PZ map, as well as those that are craftable through the crafting tree. In turn, this will allow us to open up a ton of interesting crafting and engineering opportunities, as well as open up more and more of the existing machines and gadgets strewn around the PZ map.
     
    As said before though, this is probably a longer term goal, and our focus right now is squarely on the new post-apoc crafting tech tree. This is all, however, our first (big) step towards the longer term goal of unifying how these things work across the entirety of Project Zomboid.
     
    This will then free ourselves, and modders, to have as many possibilities as possible for machinery, and ensure a consistent framework to allow anything created in the game to interoperate with each other, power, liquids and item input/output. Beyond this it will minimize mod conflicts, and overall allow PZ to become a powerful framework for modders to add in all sorts of crazy fun stuff in future.
     
    SOWING DISCORD
    Fenris has been working on updating and improving Discord integration, which will allow for powerful features to help roleplay servers and servers running gameplay events, as well as general integration features.
     
    Currently, chat within Discord rooms should be transmittable into the game chat and vice versa – but the code used is somewhat outdated and it doesn’t work brilliantly. Some may say: not at all. Server owners choose not to use it. With 42, however, everything will be polished and sparkly new.
    What’s more server operators will be able to allow discord commands to trigger lua code on the server, for example to begin a timed event and trigger changes in gameplay. Likewise this will also allow for custom lua to trigger messages sent to different discord channels on the discord server.
    Another feature we intend to include will allow for admin controlled radio / tv scripts to be executable from multi-line text from the discord server, to avoid admins having to quickly type out multiple pre-written text lines manually in the heat of gameplay.
     
    This is all very limited and walled off, and the game side lua will require custom code to allow for these Discord interactions, so there won’t be any security risks associated with this discord interoperability.
     
    For planned roleplay events or custom server game mode events, though, this should provide many cool tools for server operators to play with.
     
    ELSEWHERE
    Other mentionable work on the mighty PZ that’s happened this week has been:
     
    Aiteron has been making improvements to our sandbox menu, mod menu general mod settings. Our sandbox settings panels had become so vast and unwieldy that they needed a redesign – now with an added search function, simplification in some areas to make things less impenetrable to noobs, and some ‘advanced settings’ for the long-term survivors amongst us. We will also be improving the server settings interface, simplifying the addition of mods, unifying settings, making it easier to add modded sandbox settings etc. Blair reports in for the blog with the ‘unsexy’ work of remaking farming interactions and its associated UI. He’s currently working out what information you receive, and where, and also at which farming skill level. He’s also sorting out some of the wonkiness you saw in the animations you saw in the last Thursdoid we did. We’re approaching a new merge from the map team into the internal testing build, probably taking place tomorrow, so our testers can gambol through even more new buildings and locations. Here’s a quick video of some of the existing fun places they’ve come across.  
     
    New masks. New hats. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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 industry gameplay coder and want to join Team Awesome? Jobs page here.
  2. Like
    Tykvesh reacted to nasKo in The Skillful HuntZman   
    Hello all!
     
    This week we’ll be checking in with three of the main four pillars of Build 42 – work on the fourth, the server-side player inventories and general MP improvement, has been fairly ‘business as usual’ the past month or so and there’s not much to talk about that’d be juicy for enough for public consumption.
     
    Steady your loins, then, as first of all we jump into…
    ANIMALS AND MIGRATION
    RJ has been taking a holiday (American translation: vacation) from his work on domestic animals and husbandry, and has taken to the woodland and forests of the Knox Event.
     
    Wild animals will be important to B42 for both reasons of ambiance and necessity – it will make your experience feel no end more engaging to see deer skittering through the treeline, but also will make hunting a viable survival technique – and one required for some of our advanced crafting recipes when society is long-gone.
     
     
     
    What RJ has been working on, in particular, this week is the movement of animals over the map – their migration if you will. So if you could all also have a looksee at the following video too, then we can run into it in some more depth afterwards.
    Also clearly: USUAL WIP CAVEATS APPLY. Things can and will change through development and testing.
     
     
    So what are we seeing here?
     
    Well basically throughout the day our deer will follow paths that our designers (and modders) can map out in our WorldEd tool – and in the vid you can see a virtual animal following a path.
     
    Right now, one virtual animal is a group of animals that’s been defined in a lua file. Our current group, for example, consists of one buck, several doe and some fawns. Though clearly once they are fully implemented the variation will be greater, and also dependent on stuff like the time of year.

    Once players get close to this coded ‘virtual animal’ these deer will then spawn into the world as real animals – and once you retreat away they’ll revert to their virtual status so the game can take over their movement and activities once more. If the group has become separated meanwhile, they’ll team back up again when their paths next cross.
     
    In their virtual form the animals will move over the map, doing potential set activities at set different places. They are timetabled to have several ‘sleeping’ and ‘eating’ periods – currently sleeping for a period of half an hour at some point between 12pm and 4pm, eating at some point between 5am and 7am, and eating again for an hour at some point before 4pm and 6pm.
     
    (Clearly, all this is easily changed at the dev-end – and can also be adjusted for whatever different animals we choose to add in future)  
     
    To aid players who want to be hunters, deer will leave evidence and tracks of where they’ve been and what they’re doing. So there’ll be footprints (with a direction suggested), poop, and broken twigs and undergrowth – while flattened plants will indicate a sleeping spot, and grazed areas an eating spot.
     
    The way in which we represent these visibly in-game is currently being worked out, but for now (and perhaps later on too) we will be providing for it in a dual use for eris’ super foraging mode that was introduced in B41.
     
    A goal for the player, then, might be to follow tracks and work out the deer’s possible sleep or eating spot, mark them on their map, and then wait near those spots at the correct hours and hope that animals will stop by.
     
    We’re also working out on ways for a Tracking skill to be integrated into this, though seeing as the design is still under discussion we’ll probably talk about that at a later date. Something else that we’re aware should be factored in is human smell and wind direction potentially spooking animals, as it would in real life, but we plan to add that layer in a bit further down the line.
     
    RJ would also like to give out a call of Special Thanks to Inrictus for the time he’s spent teaching him how to be a proper huntsman!
    Finally, here’s another quick video of a survivor setting up camp with our new tents and whatnot (no deer this time) to give a little flavour of what the surrounding gameplay will feel like too.
     
    ENGINE UPGRADE
    Operation Optimization is going very well, easily obtaining several hundred FPS on our dev hardware when zoomed out.
    However at the moment we still need to look into optimizations for how our current fog and puddles work – both of these are intensive graphical operations that need updating frame by frame. Thus, at the moment, they invalidate our cached chunks and diminish some of the gains from the optimizations.
     
    As such at a later date – either before a first public release, or very possibly in a follow up build to it – we in particular plan to revisit these systems to optimize them for our new rendering system. Particularly the fog system, in fact, since having a depth map will now provide opportunities to make our visual effects look much better since we will have a solid representation of surfaces and depth to allow us to much improve how it interacts with objects in the scene.
     
    CRAFTING UPDATE
    Now the crafting systems are all in place, we’re starting to fill out the tech tree of recipes and wanted to show what’s currently being implemented.
    As a reminder to those who perhaps aren’t as interested in the long term crafting and survival systems we are implementing, these will be completely optional as to whether you want to engage with it.
     
    If you’re more interested in evading zombie hordes in the centre of towns and cities then you’ll still be able to do that.
    However, to address our game’s weaker late game, provide many roleplay opportunities, and provide depth of gameplay outside interactions with zombies – we’re going all out on making the crafting possibilities as exhaustive as possible. Likewise, we are building new and more powerful crafting systems that modders will really be able to get their teeth into.
     
    Remember, our benchmark is that a group of players should be able to build a functioning village even if spawning on a wilderness map with no signs of civilization. We want to make sure every aspect of crafting is covered to give multiplayer communities the opportunity to build and thrive, and provide modders with the tools required to make cool as hell expansive tech mods as seen on Minecraft, allowing Zomboid to become a more diverse survival, crafting and automation game modding platform in future.
     
    An example of this would be working with clay. Clay can be dug up near rivers, and will be used to make bricks, tiles, roofing, pottery, and a whole host of other items and tiles to place in the world.
     
    Those living on a barren map wanting to build a secure home will be overjoyed to be able to use bricks and tiles to make a proper dwelling that’s sturdy enough to stop zombies from breaking in. Likewise even on a smaller-scale basis, this craft will prove vital when survivors don’t have access to modern cutlery or liquid storage.
     
    So here’s a quick video (very WIP still, we have a lot of balance, UI and polish to apply yet) that will show off some of the crafting systems when working with clay.
     
     
    In future Thursdoids we’ll try to demo different diverse parts of the tech tree and their related professions as they implemented, as well as UI and quality of life improvements as we make them
    SOME WELCOMES
    The Indie Stone would like to extend an excited hello to two new fine folks this week – Egor who will be joining the MP team as they move ahead with their upgrades, and community fan favourite DaddyDirkieDirk.
     
    Dirk has joined our art team to pump out ever more delectable tiles to give our map more life, and its deepest parts some more intriguing objects to perceive in the darkness – and if you are interested in his fantastic work as a modder then we ran a Mod Spotlight on him only last week.
    Thanks all!
    A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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 industry gameplay coder and want to join Team Awesome? Jobs page here.
  3. Like
    Tykvesh reacted to nasKo in Bren After Reading   
    Hey all, hope this finds you well.
    Lots of work on the technical side of the four main pillars of 42 these past two weeks – all of which relatively dry, so let’s run through that briefly before checking out some of the other items rolling in.
     
    Right now the foundational code to our in-depth crafting systems revamp are being brought into a position where the MP team can better get their hooks into it, while in our optimization/lighting/height channel we’ve been continuing to polish out cutaway issues, errors thrown and the way our isoregions system handles its newfound 32 potential storeys.
    For our MP upgrade, meanwhile, work continues on getting the machinations of player inventories (building, recipes etc) over onto the server – while also improving the implementation of our (pretty much fully cooked at this point) new fishing minigames and systems. Domestic animals, meanwhile, are in bug fix mode – with additional attention being given to their pathfinding and around animal escapes.
     
    While all this is ongoing other team members are beavering away raising the quality of the game in smaller-scale ways, so let’s look at a few of those fun nuggets now.
     
    CURRENT AFFAIRZ
    One way to give our towns and city more personality is to provide more written literature for you to loot and peruse – whether it’s a fully readable lore item, or simply an interestingly named (if non-readable) book found in a house you loot that might deepen your understanding of the life of the zombie you just bludgeoned downstairs.
     
     
    Build 42 will feature a range of newspapers, each with a final three or four issues to pick up and read in a separate ‘written content UI’. They will contain news articles about the initial build-up to the Knox Event articles, everyday life articles, and even a few breadcrumbs as to what’s really been going in.
     
    This will also include smaller scale publications: like ‘town news’ pamphlets for the smaller settlements that don’t quite warrant a full-scale newspaper. 
     
    Beyond this we’ve also had a lovely man called Stuart taking all our teeny-tiny map logos and up-rezzing them into more suitable forms for both in-game and irl usage. Their first use within the game are ‘local business’ fliers that are also readable via the same ‘printed media’ UI.
     

     
    Clearly there’s not much zed content that can be made from these, but their gameplay role is to mark up interesting locations (and sources of potentially helpful loot) on the in-game map – a function that we feel will be especially handy for new players.
     
    We feel that finding a flier that’s a membership advertisement for, say, the West Maple Country Club and revealing it on the player’s map will give an interesting reason for new players to leave town and explore – and likewise a job advert for McCoy logging and a corresponding map reveal might flag a decent place to potentially find an axe.
     
    There’s SO MUCH stuff on the PZ map, and we wanted a way to direct people to some of the locations we’re most proud of. Especially those lost in the vastness of Louisville.
     
    PERSONAL READING
    We also really want you to feel interested in the deceased people whose homes you are raiding, and perhaps even saddened by their demise. From this we’ve also added a LOT more texture to the names of some of the books, comics and magazines they’ve been reading – and indeed the photographs they’ve been tenderly keeping in an upstairs drawer.
     
    The hope is that when the spawn tags on these 1500 different interestingly titled books/mags (non-readable) combine with the way we guide our RNG looted spawns work then neat little stories will form in your head about the sorts of folks that lived here up until recently – and perhaps who you just left dead on the kitchen floor.
     
    Perhaps they were reading a book called “Long Term Illness Management” by Laura Paloma, which shines a light on the medication in the bathroom.
     
    Perhaps their love of military history ties in with the guns, or maybe it’s satisfying to know the zombie in the garden used to read trashy thrillers.
     
    Likewise finding photographs that aren’t simply called “photograph” in a cupboard won’t do much to you, but instead seeing “Photograph of a Smiling Family” or “Photograph of a Wedding Car Arriving at a Church” will hopefully do you some emotional damage. We’ve got about five hundred of these, and they’re already bringing some amazing (doomed) colour to the average loot run.
     
    We’ve also got six new TV channels, a new radio station, and 75 new VHSs ready to mix into the game (all written by Pat_Bren, who’s also the architect of all the above alongside coder Blair Algol) so really feel that B42 will broaden the narrative possibilities of the game significantly – while also neatly tying into the gameplay in many instances.
    Some other changes that are tied into the above:
     
    The books, magazines and comic books that now have individual titles, will also be persistent. Instead of disappearing after being read, there will be a cooldown period that dictates how much time must pass before the character’s moodles can benefit from re-reading said item. In conjunction with this revision of literature items, we’ve gone over the mechanics of the Illiterate traits. Illiterate characters are unable to read literature items, but in some cases, such as Comic Books, Catalogues, Photos, and “certain magazines”, they will be able to enjoy looking at the item instead of reading it. In build 42 Illiterate characters will also be unable to read or write player generated notes using sheets of paper or notebooks, write notes on maps (although they can still put symbols on them), read the text on the annotated map items, or understand the nutritional information on packaged food. We’ve done a common sense implementation of needing light to read. If there is insufficient light in a character’s square, and they don’t have an active light source, they will be unable to read (or “look at” for illiterate characters) printed matter, unable to read nutritional information on packaged food, and unable to open maps.  
    MEN WITH VEN
    Part of the above has been in ensuring that the right newspapers and pamphlets spawn in their appropriate towns, and as such we’ve mixed in a new municipal region system that tells the game’s systems exactly what area of the map each location in the game is located within.
     
    We’re also using this for some new vehicles owned by local businesses, that only ever spawn in their hometown and associated region.
     
    It’s generally not a known gameplay function, but for many builds now we’ve had ‘profession’ vehicles on the map that are owned by carpenters, metalworkers and electricians – all of whom *do* leave tools in their vehicle overnight.
     
    We’ve never flagged this up, however, which has been a missed opportunity – as for players searching for particular items these are very much mobile treasure boxes. Therefore Martin has created a variety of new vehicles for different businesses to better communicate what sort of special loot might be found inside.
     
    We have vehicles for different utilities, nationwide businesses and local businesses – many will only spawn in one town, and some are unique in that only one instance of that vehicle will spawn in the world.
     
    We know that PZ players love collecting vehicles, especially in multiplayer servers, so this should spice up the hunt for the vehicle collectors. This regional system, and unique vehicle system, is set up to be easily used by mods also.
     
    GASP. WHEEZE. PANT.
    Regular readers will know that we recently had our very own recording sessions in a studio with microphones, actors and everything.
     
    We had various missions to accomplish with this – a primary one being to obtain recordings of a male survivor and a female survivor huffing, puffing, getting hurt, climbing over things, sneezing, coughing and even shouting “hey!”.
    The first fruits of these can be heard below and (while subtle when added to the mix and heard in isolation from the way the game sounds currently) we believe that they’ll add a lot to your overall experience once they land in 42.

    (PLEASE NOTE: This is a work in progress. Volume and balance levels are initial ones and will change, likewise some recordings sound better than others and we haven’t cherry-picked the ones that work best yet. We think that the exertion noises during heavy combat could certainly do with a boost.)
     
     
     
     
     
    A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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 industry gameplay coder and want to join Team Awesome? Jobs page here. Project Zomboid strongly discourages the unlawful dissemination of classified military intelligence
     
  4. Like
    Tykvesh reacted to nasKo in Crafting RamblZ   
    Hey all! So we’re still not at the point of being able to show anything substantial from the crafting overhaul, however we thought we’d talk about a few topics that are relevant to our current work and give people a bit of insight into where we’re going, our ultimate goals and the design challenges we’re facing. This will be very much a stream of consciousness post, taken from a chat within the crafting team, so forgive if it lacks direction but we hope it’ll be interesting!
     
     
    Inspiration
    One of our biggest inspirations in terms of what we’d like to accomplish with Zomboid ultimately in terms of crafting freedom and possibility, is to provide similar creative and community experiences found playing the extensive tech progression modpacks for Minecraft. Several of the core crafting dev team have periodically dived into Minecraft modpacks for a good chunk of Zomboid’s development, and spend many hours grinding away decorating our bases, building wonderfully cool machines, laying down pipes, wires and conveyor belts and whatnot to double our ore output or finally get that new power system to power our base. The possibilities we could bring to zomboid have tickled at our brains for many years in this area, and we’re excited to be finally exploring them.
     
    Obviously though, Zomboid is a post apocalypse survival game and it would be rather silly to say the least if some zombie apocalypse survivor was building a nuclear reactor or casting rituals to open portals, so this shouldn’t be taken as a literal 1 to 1 inspiration. What we’ve taken away from our experiences is more the overall spirit of building, of expanding, of obtaining materials, of navigating a very tall tech tree formed from the availability of resources, that will finally allow you to explore a new tree and open up new areas of gameplay to the player, rather than the literal experiences of making ore crushing machines, nuclear reactors or ender teleporters. As much as we feel Zomboid is an extremely deep game, it’s never hit the bar we’ve wanted in terms of this area of gameplay.
     
    Mixed in with that is the heavy focus on roleplaying, especially with multiplayer or later with NPCs, our ultimate vision is somewhat parallel but different to the experiences in Minecraft, with more of a focus on realism and plausibility, as well as leveraging skills, professions and learning to make the experience more cooperative and interesting in a roleplay environment (though solo players need not worry, as NPCs will fill this gap too, and before them we’ll make sure to adequately provide sandbox options, and likely the builder main menu mode, to not lock this stuff out of the single player experience).
     
    Extensivity vs Believability
    As we stated a while back, our aim with the crafting overhaul is to provide a framework for us to expand the crafting possibilities within the game massively, to allow for a long post-apocalyptic settlement to create everything they need without relying on looting, to elevate the need for players to ever need to reset their worlds unless they want to, while crucially gating all these extra possibilities in a way that makes sense — so you don’t get the odd situation where your burger flipper has wacky esoteric crafting recipes involving bee’s wax or crushed limestone popping up in their crafting panel that seem odd or ridiculous within the context of a zombie survival story.
     
    The best example of this would be for example using metalworking to make a spoon. If you’re a metal worker then you should be able to make a spoon. This is a thing that makes sense in terms of what someone with metalworking skills could produce should they wish to. But a spoon is a weird thing to see pop up as a crafting possibility in an urban environment filled with spoons.
     
    We’re currently planning on how recipes and crafting possibilities will be presented to the player, how to lock them intelligently behind professions and traits, and more crucially nest them away sensibly within a better interface, while providing enough opportunities to learn them to the player so they don’t end up doing generator manual style hunts around the map for many hours. This is not yet set in stone but ideas are forming on a new interface for crafting and building that would provide this stuff to the player in a much more natural way, where we can provide a huge amount of options without drowning the player in recipes that seem completely useless or weird within their current situation.
     
     
    Grind vs interesting multi-stage crafting
    Another challenge we’re still nailing down is finding the best balance between extensive and interesting crafting of items, involving multiple stages, potentially multiple methods, multiple skills, maybe multiple characters, but not crossing that line where crafting becomes tedious or frustrating, or you get that sinking feeling looking at the steps you have to complete that disincentivises you from undergoing it. It’s a hard balance to hit, and in our first ‘more zomboid / realistic’ pass of the tech tree, we’ve probably gone a little far over the tedium line in our desire to honour zomboid’s realism.
     
    We’re currently in the process of consolidating some of these steps, still retaining multi-profession or multi-skill or multi-step processes to keep crafting interesting, while removing a few steps that may make for frustrating or repetitive gameplay. It’s for this reason we’ve been a little sheepish about providing a look at our current crafting trees at this time, as we want to make sure we strike this balance first lest we worry people that crafting is going to be an unforgiving grind.
     
    A portion of the crafting trees. Eek.  
    Learning/Skill Grind
    Another area we’re looking into heavily is the process of learning new skills. While we want to retain the process of a player ‘doing’ stuff to level up in that skill, with the vastly expanded skill list that 42 will be introducing, we want to come up with other ways a player can level up that don’t involve building 1000 things after reading a skill book. For one – a skill book may not exist if you’re generations after the apocalypse, or if you’re playing on a blank wilderness map instead (something we’d really like to be a possibility, and our test case to make sure our crafting overhaul is comprehensive will be making sure the player literally cannot rely on looted items).
     
    We’re still coming up with ideas of how to approach this, but certainly the idea of learning recipes for items or buildable tiles as well as gaining skill xp from observing other players craft them is something we’re exploring heavily. Again, NPCs will fill this gap for single player, and in the meantime we’ll ensure that builder mode and sandbox provide the tools necessary for solo players to get access to this content without other characters to learn from.
     
    Another aspect of this is that with much more expanded profession and trait possibilities, we hope to provide much meatier skill bonuses from professions, allowing players to come into the game a lot more capable than before at these specific areas of the game, given that there will be many more they are not capable at.
     
    In addition, we’re exploring the possibility of linking recipes and professions that share common skills or concepts together, allowing characters a head start at performing crafting when they have picked up relevant experience in similar areas elsewhere.
     
     
    Modding
    So here’s where we can have our cake and have eaten it. Making a nuclear reactor seems a very silly thing to have in zomboid, but where the modding scene is concerned, hopefully people can go wild here. If a wilderness map becomes a viable way to play, the game no longer reliant on looted items nor a zombie threat to make it interesting (particularly in a multiplayer setting), then modders aren’t really constrained by the zombie survival theme of the game any more, and could extend our tech tree way beyond what we provide to allow for a much more abstract ‘tech em up’ survival sim providing factorio and minecraft style experiences along with multiplayer or NPC driven roleplay. We’ve kept all the power of crafting within the familiar scripts and lua that people are used to, expanded with item properties and traits based on crafting skills, multi-tile constructions for crafting stations or machines, fluid, item or power transmission for doing logistical networks, and can only imagine the possibilities will balloon dramatically as soon as our incredible modders get their hands on it.
     
    This is where we imagine zomboid could become an even more exciting modding platform, and in no way a small aspect of why we want this framework to exist in the game as we’d be extremely excited to see what modders will bring to the table (as we always are).
     
    So what will you be crafting?
    Lots of stuff. While it may not be relevant for a player running around in Muldraugh in the 1990s, and while a burger flipper may not have this knowledge, there’ll be professions that emerge in the years following the apocalypse to cover crafting the majority of non electrical items in the game currently (though with perhaps a more homemade aesthetic), tanning leather, making glue or soap, spinning wool, or making cloth to make clothing, dyes to dye that clothing, bowyers to make bows for the hunters, growing hemp to make ropes, glass-makers, stone masonry to finally make those zombie proof walls (again, we need to think further on the design here to not make this too OP), thatched roofs. Basically everything to make a thriving post-apocalypse town, provide much more opportunities for creative and aesthetic building mechanics, building paths, fences, walls, and the production of goods to keep that town ticking over and potentially trade with others.
     
    In case anyone is not familiar with our plans regarding post-apocalypse professions, this is the concept that in the years after society collapses, we would slowly retire pre-apocalypse professions that have ceased to be relevant in the new world, and bring in new ones that represent professions one would like to have in a more savage and technically regressed post-apocalypse. Single player and multiplayer alike will allow for a player to start much further into the Knox timeline than ‘six months later’ and provide a vastly different experience, though those who want the current zomboid experience will not be impacted beyond a larger selection of crafting opportunities. Obviously we’d be looking to give the world a much more eroded aesthetic if you were playing 100 years after the Knox event, for those hoping for a more Last of Us style degradation of the world over longer time spans, but it’s unlikely we’ll address this before 42’s release as we have a lot on our plate already.
     
    Hopefully this gives an insight into why this has taken so long to get the systems in place, and the design challenge of making all this work within the game.
     
    It’s not clear whether we’ll have literally everything we’ve designed in come first unstable release of build 42, its very possible we’ll get the base stuff in there, and then fill it out over numerous releases during a long unstable b42 release cycle, as there will be a lot of tile and item artwork required, but we want to get the core systems in place and enough crafting potential to elevate the late game dramatically before we get it out there. We need to make sure the foundations are in place first however, as we’re walking into unfamiliar territory and are as always ever mindful not to disrupt the things that make zomboid what it is.
     
    A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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 industry gameplay coder and want to join Team Awesome? Jobs page here. Title image taken from Abby on Steam
  5. Like
    Tykvesh reacted to nasKo in Eine Kleine NachtmooZik   
    Wotcha survivors.
     
    The general pattern for 42 dev is that we’ve got four main pillars of Build 42 – all of which are the ‘big stuff’ and the fundamental large-scale tech improvements.
     
    These are: moving much of the MP system server-side to give servers more control and less hackability, introducing our deeper and more expansive crafting systems, bringing animal life to the Knox Event – and engine improvements to optimize, give far greater height/depth levels to our map, and to provide more realistic light and darkness for your survival adventures.
     
    These are the things we need for release, while other things in development by our dev partners (or staff assigned to more general improvement) are seen as ‘nice-to-haves’ – and some may even fall into patches of 42 when things start to shake out a bit.  Going through the ‘pillar’ features though:
     
    The lengthy first stage of the MP work (transferring player inventories to the server) is now over, and transplanted very neatly over into the internal test build – so now our MP coders are delving deep into stage two. This will see all operations of player inventories (building, recipes, foraging etc) also move into server control, overview and deference. In terms of the deeper and more expansive crafting – as we mentioned last week the code systems this is all based on has now been merged into the internal test build and as such much of the last week or two has been centred around fixing the longstanding recipes and functions that the new stuff has broken. We’re pretty much back at a standard of ‘operational’ on this, or will be after a commit being made tomorrow, and this too has been a process that was a little smoother than expected. That all said, obviously that has been the focus post-merge, so while progress has been made since its integration, the majority of work has been bug fixing and not much to report otherwise. The team are starting to discuss the next step post merge, and looking forward to it immensely! Animal and animal husbandry meanwhile (or at least the cows, pigs and sheep – chickens are still a little haphazard) are approaching a stage where they’re fun to play around with for extended periods in SP. Following on from the merge of the music system detailed below into the internal test build, they also now moo, oink and baa which has given them a lot of extra life also!  
     
    Finally, in terms of the tech upgrade we’re mainly at the bug fixing and further optimization phase with the chunked rendering and variable height systems, but it’ll likely be the sort of thing that’ll spit out bugs and countless ‘betcha didn’t think of this scenario?’ gotchas for some time to come, so its not clear when it’ll be merged into main. As said last week, it should be mostly smooth when the time comes though.

    OTHER STUFF
    Next up, some of the other items being conjured up for 42 either with our development partners, or the smaller cool stuff that our own devs have been working on in the background.
     
    On top of the below we’re almost wrapped on stuff like fishing, work on the farming revamp continues and is having new crop assets built for it, and clearly the map expansion continues apace and will likely be a part of a/the 42 release also. 

     
    AWESOME ADAPTIVE MUSIC SYSTEM
    First up for discussion is 42’s new adaptive music system – a long term plan that’s now coming to a fairly awesome fruition.
    As long term players will know, our OST came from the musical brain, delicate ear and dainty fingers of Zach Beever – one of the most important people we came across in the earliest days of Project Zomboid and whose work many of you have heard over thousands of hours of play.
     
    What Formosa (formerly Noiseworks) have been up to more recently is taking the original arrangements and stems that Zach has provided to create variations of our beloved soundtrack that have variations of different intensities. The composers who have ably taken on this task are Armin Haas and Matthias Wolf – both of whom appear to have nailed it.
     
    Players have experienced the first stage of this system in build 41, with action music which is specifically when players are in combat with the undead.
     
    For 42, this music has then been worked into a new adaptive exploration soundtrack. Based on in-game events, a music intensity parameter is adjusted and the soundtrack adjusts accordingly as well. The aim is to have the exploration music reflect the more exciting times as well as calm moments in the game in a better and more organised way.
     
    The best way to explain this is in the following prototype video. As ever this is WIP! We’ve also cropped it slightly oddly to hide some of the debug magic that lays bare some of the magic, so please forgive the character not being centred on the screen!
     
    Sound up plz! (obv!)
     
     
    We’re only working of a very basic set of events at the moment – coming across new houses, opening doors, vaulting fences and the like.
    We will be adding lots of different game events that will have big and small impacts on the intensity parameter – the discover of ‘special’ buildings, finding useful loot, noticing a survivor zed etc etc. 
     
    The system will undergo lots of further fine-tuning, and will be adjusted further from the version seen above that went into testing only yesterday.
    Also happening this week in Sound World has been the recording sessions we’ve had arranged to create ‘body noise’ puffs, pants and pains that we want to play on top of your character’s on-screen manoeuvres.
     
    We’ve also used this opportunity to record many and various experimental dialogue lines that could potentially be played (very, very muffled) over our TV and radio shows in a Simlish kinda way – and likewise automated announcements that may well still be playing in locations such as malls and key Louisville locations even after public zombification has occurred. We’ll have more on this in the next blog, most likely.
     
     
    UNDER THE STARS
    A few notes on outdoor sleeping. First off in 42, sleeping bags and tents (when packed) can be attached to appropriate backpacks. It looks quite nice and fun, especially when attached to a survivor zed.
     
     
    Next up, we’ve made some general improvements to outdoor sleeping. As such tents are now both containers and beds. They are not good beds, mind – and using a sleeping bag by itself certainly isn’t either.
     
    You can put a mattress or an un-packed sleeping bag into a tent to make it a better bed. You can also use a pillow to modestly increase the quality of a tent bed, including reducing the chance and severity of neck pain. This applies to all other bed as well, including car seats. You’re protected from the rain when sleeping in a tent, and the tents look a lot nicer than they used to as well.  
     
    GOING UNDERGROUND
    Given as 42 will increase our height limit (and more particularly our depth limit) our artists and mappers are currently working on new visuals that will better suit locations beneath the ground of the Knox exclusion zone.
     
    Here’s a fun example of the sorts of decoration that we hope will give added flavour to your new life underground, and hopefully bring along some Resi vibes with it.
     
     
     
    A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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 industry gameplay coder and want to join Team Awesome? Jobs page here. Title image is from D4CR33P3R on Steam. That’s all for this week,
  6. Like
    Tykvesh reacted to nasKo in 41.71 Released   
    Changelog includes changes since the last stable update, from 41.69 to 41.71:
     
     
    HOTFIX 24th of May:
    - Added maxInstancesPerEmitter property to sound scripts. This is used by "M16Shoot" to fade out the oldest instances when starting a new one.
    - Updated soundbanks to include to more tracks for the new dynamic music system.
     
     
    NEW
     - 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 <JOYPAD:XXX> 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
    MODELS/ANIMS
    - 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.
     
     
    MP
    - 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).
     

    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.
    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<String,String> 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.
     

    SOUND CHANGES
    - 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.
     
     
    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.
    - 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.
     
     
    BALANCE
    - 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.
     
     
    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 (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.
     
     
    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.
    - 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.
     

    UPDATES AND BALANCE TO ITEMS_FOOD.TXT
    Reformatted file layout:
        - Standardized tab/space usage.
        - Sorted item script variables by group/function for improved legibility.
        
    Removed AlwaysWelcomeGift' entries from item scripts:
        - 'AlwaysWelcomeGift' was used in versions of the game and is likely no longer functional.
    Changes made to evolvedRecipe Burger in evolvedrecipes:
        - Removed 'Cookable' property to match with sandwiches, tortillas, and burritos.
        - Added '|Cooked' requirement to cookable items that have Burger in their EvolvedRecipe list.
    Changes made to 'Egg':
        - Removed Sandwich/Baguette/Burger/Salad EvolvedRecipes due to requiring cooked version of item.
        - Since this item uses ReplaceOnCooked, 'EggBoiled' is used as a stand-in for its cooked version.
    Changes made to 'EggBoiled':
        - Restricted EvolvedRecipes to Sandwich, Sandwich Baguette, Burger, and Salad.
        
    Changes made to 'BurgerRecipe':
        - Nutrition stats were double-defined. Fixed.
    Changes made to 'Dough', 'DoughRolled', and 'BakingTrayBread':
        - 'ThirstChange' and 'UnhappyChange' were double defined. Fixed.
    Changes made to 'NoodleSoup'
        - Added 'CustomContextMenu' and 'CustomEatSound' options, same as 'SoupBowl'.
        - Changed 'EatType' from '2hand' to '2handbowl'.
    Changes made to 'TVDinner':
        - 'UnhappyChange' was double-defined. Fixed.
    Changes made to 'FrogMeat':
        - Added cooked specification to Salad EvolvedRecipe.
    Changes made to 'FishFried':
        - EvolvedRecipes called for cooked versions of food. Food is already cooked. Fixed.
    Changes made to 'Pepperoni':
        - Removed Burger/Burrito/Taco EvolvedRecipes.
        - Added Sandwich/Baguette EvolvedRecipes.
    Changes made to 'Salami':
        - Added same EvolvedRecipe list as 'Pepperoni'.
    Changes made to 'MincedMeat':
        - Added Sandwich/Baguette EvolvedRecipes.
    Made the following foods non-cookable/pre-cooked:
        - Marhsmallows (Item 'Smore' can't be crafted/cooked)
        - EggBoiled (Placed by ReplaceOnUse in container after item 'Egg' is fully cooked)
        - EggPoached (Non-craftable. Icon shows cooked version)
        - GrilledCheese (Non-craftable. Icon shows cooked version)
        - Pepperoni (Is cured/salted. Didn't have MinutesToCook/MinutesToBurn defined)
        - NoodleSoup (Non-craftable. Used in themed restaurants as pre-cooked food, like 'MeatDumpling' and 'MeatSteamBun')
    Added Taco/Burrito EvolvedRecipes to:
        - Chicken
        - FishFillet
        - Steak
    Added Soup/Stew EvolvedRecipes to:
        - Crackers
        - Biscuit
        - Cornbread
    Made the following foods non-perishable:
        - Pretzels (These are 'packaged' pretzels, similar to 'TortillaChips')
    Made the following foods perishable (DaysFresh/DaysTotallyRotten):
        - BakingTrayBread (3/6)
        - Biscuit (3/5)
        - CookieChocolateChip (7/30)
        - CookieJelly (7/30)
        - CookiesChocolate (7/30)
        - CookiesOatmeal (7/30)
        - CookiesShortbread (7/30)
        - Cornbread (3/5)
        - Croissant (3/5)
        - Cupcake (4/8)
        - DoughnutChocolate (3/5)
        - DoughnutFrosted (3/5)
        - DoughnutJelly (3/5)
        - DoughnutPlain (3/5)
        - Guacamole (4/8)
        - RefriedBeans (4/8)
        - Wasabi (4/8)
        
    Changes made to DaysFresh/DaysTotallyRotten values:
        - BreadSlices (1/2) > (3/6) [Age is derived from base item-- non-rotten bread could produce rotten slices]
        - BreadDough (4/9) > (3/6)
        - EggBoiled (14/21) > (3/6)
        - EggPoached (14/21) > (3/6)
        - EggOmelette (14/21) > (3/6)
        - EggScrambled (14/21) > (3/6)
        - OmeletteRecipe (3/10) > (3/6)
    Changes made to MinutesToCook/MinutesToBurn values:
        - BakingTrayBread (40/80) > (20/50)
    Changes made to HungerChange values:
        - GrilledCheese: -80 > -20
    Added 'JamFruit' and 'JamMarmalade' to EvolvedRecipes.
        - Can be used in Sandwiches, Pancakes, Waffles, and Muffins.
    Removed 'UseDelta' from 'Sugar' due to not being Drainables.
    Changes made to 'Grapefruit':
        - Changed DisplayName from 'Grape fruit' to 'Grapefruit'.
    Changes made to 'Honey':
        - Is now considered a Spice.
        - Can be added to Fruit Salads, Hot Drinks, Sandwiches, Waffles, and Pancakes.
    Changes made to hunger values:
        - Centipede2: -13 > -5
        - Centipede: -13 > -5
        - CheeseSandwich: 50 > 15
        - Cockroach: -11 > -5
        - Cricket: -6 > -5
        - Grasshopper: -7 > -5
        - Millipede: -13 > -5
        - Millipede: -13 > -5
        - PeanutButterSandwich: 40 > 17
        - Slug2: -10 > -5
        - Slug: -10 > -5
        - Snail: -10 > -5
        - Sugar: 6 > 30
        - SugarBrown: 6 > 30
    Changes made to item weights:
        - CannedCarrots2: 0.7 > 0.8
        - CannedCarrotsOpen: 0.7 > 0.8
        - CannedCorn: 0.7 > 0.8
        - CannedCornOpen: 0.7 > 0.8
        - CannedFruitCocktail: 0.3 > 0.8
        - CannedFruitCocktailOpen: 1 > 0.8
        - CannedMushroomSoup: 0.7 > 0.8
        - CannedMushroomSoupOpen: 0.7 > 0.8
        - CannedPeaches: 0.3 > 0.8
        - CannedPeachesOpen: 1 > 0.8
        - CannedPeas: 0.7 > 0.8
        - CannedPeasOpen: 0.7 > 0.8
        - CannedPineapple: 0.3 > 0.8
        - CannedPineappleOpen: 1 > 0.8
        - CannedPotato2: 0.7 > 0.8
        - CannedPotatoOpen: 0.7 > 0.8
        - CannedSardines: 0.7 > 0.3
        - CannedSardinesOpen: 0.7 > 0.3
        - CannedTomato2: 0.7 > 0.8
        - CannedTomatoOpen: 0.7 > 0.8
        - Dogfood: 1 > 0.8
        - DogfoodOpen: 1 > 0.8
        - Lettuce: 0.7 > 0.2
    Added 3D Models to the following items:
        - Lobster
        - Nettles
    Added 'DisplayCategory' entries to the following items:
        - BagelPlain
        - BagelPoppy
        - BagelSesame
        - Baguette
        - BakingTray_Muffin
        - BakingTray_Muffin_Recipe
        - Baloney
        - Biscuit
        - Blackbeans
        - Burrito
        - BurritoRecipe
        - CakeBlackForest
        - CakeCarrot
        - CakeCheeseCake
        - CakeChocolate
        - CakeRedVelvet
        - CakeStrawberryShortcake
        - ChickenFoot
        - ChocolateChips
        - CocoaPowder
        - CookiesChocolate
        - CookiesOatmeal
        - CookiesShortbread
        - Cornbread
        - Crackers
        - Crayfish
        - Croissant
        - Daikon
        - DoughnutChocolate
        - DoughnutFrosted
        - DoughnutJelly
        - DoughnutPlain
        - Edamame
        - EggBoiled
        - EggOmelette
        - EggPoached
        - EggScrambled
        - FishFried
        - FishRoe
        - FriedOnionRings
        - FriedOnionRingsCraft
        - GingerPickled
        - GingerRoot
        - GrahamCrackers
        - Grapefruit
        - Gravy
        - Gum
        - Hotsauce
        - Icing
        - JamFruit
        - JamMarmalade
        - Lime
        - Lobster
        - Maki
        - MapleSyrup
        - Marshmallows
        - MeatDumpling
        - MeatSteamBun
        - MincedMeat
        - MuffinFruit
        - MuffinGeneric
        - NoodleSoup
        - OilOlive
        - OilVegetable
        - OmeletteRecipe
        - Onigiri
        - OnionRings
        - Oysters
        - OystersFried
        - PancakesRecipe
        - Pear
        - Pepperoni
        - RefriedBeans
        - RicePaper
        - RiceVinegar
        - Salami
        - Sausage
        - Seaweed
        - Shrimp
        - ShrimpDumpling
        - ShrimpFried
        - ShrimpFriedCraft
        - Smore
        - Soysauce
        - Springroll
        - Squid
        - SquidCalamari
        - SugarBrown
        - SushiEgg
        - SushiFish
        - Taco
        - TacoRecipe
        - TacoShell
        - TofuFried
        - Tortilla
        - TortillaChips
        - WafflesRecipe
        - Wasabi
  7. Like
    Tykvesh reacted to nasKo in 41.69 Unstable - Niiice   
    Heya everyone, so today we’re pushing the 41.69 patch out into the Unstable beta. This is a the first release of a wide-ranging version that touches many parts of the codebase – including some fairly foundational stuff to improve the smooth running of MP, some handy new hooks for modders and many and various different fixes and improvements.

     
    The full and unexpurgated changelist is pretty vast, but a quick topline run-through of its contents will now follow:
     
    In MP: improvements to car physics, admin improvements, anti-cheat fixes, better handling of dead bodies, PvP and safehouse fixes, fixed grass growing through safehouse floors and much much more. VHS fix – an end to the peril of one-time-use video tapes on servers. A raft of Steamdeck compatibility improvements. New items, new forage finds, updated 3D models, new hair types and more. Scarecrows and Lab Skeleton ‘mannequins’ that can be kitted out in player clothes.  


     
    Quality of life features: renamed Skill books, better item placing, movable minimap and many and various other things. 3D items now shown as textures rather than models. As such they now slide around less when the player moves, and have far less of a performance impact when all piled up. New/improved tag system for modders, and other general mod-side improvements. Added ambiance noise for different areas on the map tied to particular buildings and items, such as a little bit of mall muzak.  
    Relevant ‘power down’ noises for the above-mentioned sounds to flag the power/water cutting out.
        New sounds for arcade machines, gas pumping, vehicle headlights and car window opening (both via handle and electric windows). Also BBQ noises, campfire sounds, fireplaces and more zed trip/thump stuff. Improved treatment of inside/outside sounds depending on whether doors and windows are open or closed. Loads of UI and controller improvements that are universally handy, but have primarily been put in for (you lucky!) Steamdeck users. 41.68 works okay with the new handheld device, but 41.69 should provide some vast improvements. Lots of general balance, including a spotlight on foods and recipes. A shitload of general fixes.
    We would be hugely grateful if players could move over to 41.69 and report any oddness or hiccups, and likewise to inform the creators of any mods that have been broken.
     
    We have done our best to bypass disruption, but in such a wide-ranging patch there will always be mod toes that the code has unavoidably trodden upon.
     
    (Creators of radio/TV-related mods should especially pay attention to the MP VHS fix, as it may cause some issues.)
    OTHER STUFF
    Elsewhere work continues on Build 42 and 43 content continues, with RJ still focusing on farm animals, and also the introduction of some basic AI versions of wild beasts also. Please consider these WIP!

      Also coming to you today with a WIP tag (as we are working on far better player directional ‘strain and lean’ animations rather than a repeated ‘pull animation’) is a video from Aiteron showing his current work on the fishing update.
     
    A lot of work these past few weeks has also been into making it work online, and our testers have been having some impromptu fishing competitions already.
     
    Here, also, you can see:
     
    Water splashes (visuals WIP) to show placement of groups of fish, ultimately we plan to move to a more constant surface disturbance to show the positions of fish at any given time, as well as use the current splashes instead when the fish is struggling on the line. Lines and hooks that can be changed on the fishing rod that have an impact on your fishing. A fishing net you can catch items in, and a new ‘generic trash’ item that can also become snared up in your tackle and provide you with a random item (not always a shoe!)
        In the land of MP meanwhile the Strike Force are currently working on vehicle smoothness, and rare strange physics during and after vehicle collisions. They also have some imminent plans for better hit-fall position prediction, which should make corpse placement much closer to how it looks in SP.
     
    We are also partway through a longer term process of making the inventory system completely server side (or rather authenticated server side) to avoid any kind of item spawning cheats. This is something we really need to do to close up the potential for item hacks on MP servers.
     
    It will not likely appear for a while, most like coming in a major build rather than an iterative patch as it is a major piece of work and will also come with the potential for mod breakage for mods that spawn items directly on the client.
     
    (We’ll make sure to keep it unstable a good period to give mod authors a chance to fix when it rolls around, and will provide some method for modders to legitimately spawn items recognized by the server when needed.)
     
    This week’s stand-off from Viиicius. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized 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.
  8. Like
    Tykvesh got a reaction from Kielo in How to change / tweak existing recipes   
    There's probably a better way, but you can get a list of functions by peeking into metatables:
    --prints functions from userdata type objects local function PrintUserdataFunctions(userdata) for k, v in pairs(getmetatable(userdata).__index) do print(k) end end PrintUserdataFunctions(getScriptManager():getRecipe("Base.Clean Bandage")) --result: getName isHidden getResult getSource getOriginalname needToBeLearn Load getFullType getSound getHeat getTooltip getCategory getLuaCreate setLuaCreate setOriginalname setNeedToBeLearn DoResult setCategory getRequiredSkills getTimeToMake addRequiredSkill FindIndexOf noBrokenItems findSource isKeep setNearItem isDestroy setSound getRequiredSkill DoSource isAllowFrozenItem setLuaGrab setAnimNode getProp1 setStopOnWalk setAllowFrozenItem getProp2 isRemoveResultItem setStopOnRun getLuaGrab isStopOnWalk getLuaTest getLuaGiveXP setProp2 getAnimNode setIsHidden isStopOnRun setLuaTest setLuaGiveXP getCanPerform getNearItem setProp1 setCanPerform getRequiredSkillCount clearRequiredSkills setAllowDestroyedItem getNumberOfNeededItem getWaterAmountNeeded setRemoveResultItem setCanBeDoneFromFloor isCanBeDoneFromFloor isAllowDestroyedItem getModule wait equals toString hashCode getClass notify notifyAll
  9. Like
    Tykvesh got a reaction from Magondivel in Pleasant changes   
    Tried to tackle this issue myself. It's hacky, but it works! 
    (If anyone's interested, I can publish it as a mod.)
     

  10. Spiffo
    Tykvesh got a reaction from Magondivel in Pleasant changes   
    It doesn't seem to be working (vanilla SP). I always have to re-equip the flashlight after inserting a battery:
     

  11. Spiffo
    Tykvesh got a reaction from Yana M.D. in [41.65] Herbalist Magazine Perks Broken - Can't Find Medicinal Herbs   
    Intended or not, currently the magazine does not unlock medicinal herbs. Lemon Grass is an exception, which can be found by anyone.
     
    This is because medicinal herbs require the trait to be visible. Also confirmed in 41.66 (unstable).
    Plantain = { type = "Base.Plantain", minCount = 2, maxCount = 8, xp = 15, traits = { "Herbalist" }, function forageSystem.hasNeededTraits(_character, _itemDef) local knownTraits = 0; for _, trait in ipairs(_itemDef.traits) do if _character:HasTrait(trait) then knownTraits = knownTraits + 1; end; end; return #_itemDef.traits == knownTraits; end
  12. Pie
    Tykvesh got a reaction from Pandorea in Add Ingredient Exception   
    41.65 Singleplayer No mods Steps to reproduce: Make a Potato Soup (I added 2 stale potatoes) Add Opened Canned Mushroom Soup via crafting Any ingredients added after that also throw the same exception  

    ERROR: General , 1640702687031> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: __concat not defined for operands: ContextMenu_FoodType_ and null at KahluaUtil.fail line:82. ERROR: General , 1640702687031> DebugLogStream.printException> Stack trace: java.lang.RuntimeException: __concat not defined for operands: ContextMenu_FoodType_ and null at se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:82) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:805) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1782) at se.krka.kahlua.integration.LuaCaller.pcall(LuaCaller.java:85) at zombie.characters.CharacterTimedActions.LuaTimedActionNew.perform(LuaTimedActionNew.java:104) at zombie.characters.IsoGameCharacter.updateInternal(IsoGameCharacter.java:9704) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoGameCharacter.update(IsoGameCharacter.java:9441) at zombie.characters.IsoPlayer.updateInternal1(IsoPlayer.java:1874) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoPlayer.update(IsoPlayer.java:1858) at zombie.MovingObjectUpdateSchedulerUpdateBucket.update(MovingObjectUpdateSchedulerUpdateBucket.java:79) at zombie.MovingObjectUpdateScheduler.update(MovingObjectUpdateScheduler.java:145) at zombie.iso.IsoCell.ProcessObjects(IsoCell.java:2929) at zombie.iso.IsoCell.updateInternal(IsoCell.java:5718) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.iso.IsoCell.update(IsoCell.java:5664) at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3334) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.iso.IsoWorld.update(IsoWorld.java:3262) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1666) at zombie.gameStates.IngameState.update(IngameState.java:1367) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101) at zombie.GameWindow.logic(GameWindow.java:289) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:745) at zombie.GameWindow.run_ez(GameWindow.java:661) at zombie.GameWindow.mainThread(GameWindow.java:475) at java.base/java.lang.Thread.run(Unknown Source) LOG : General , 1640702687037> ----------------------------------------- STACK TRACE ----------------------------------------- function: checkName -- file: ISAddItemInRecipe.lua line # 72 function: perform -- file: ISAddItemInRecipe.lua line # 43 LOG : General , 1640702687039> bugged action, cleared queue zombie.characters.CharacterTimedActions.LuaTimedActionNew@67db31a0  
  13. Like
    Tykvesh got a reaction from MrHrulgin in Catwalk in Louisville Expo Center doesn't connect   
    @Pandoreafound it!
     

  14. Like
    Tykvesh got a reaction from Kielo in How to change / tweak existing recipes   
    Here's an example how you can modify specifically one of "Open Umbrella" recipes.
    There's probably a way to directly modify recipes with the recipe:Load function, but I haven't figured out the arguments.
    local recipes = getScriptManager():getAllRecipes() for i = 1, recipes:size() do local recipe = recipes:get(i - 1) if recipe:getName() == "Open Umbrella" then local result = recipe:getResult() if result:getType() == "UmbrellaRed" then result:setType("Pie") return end end end
  15. Like
    Tykvesh got a reaction from LacerAcer in Strength XP degradation spams level up sound   
    41.65 Singleplayer No mods  
    My strength periodically loses 1 xp, soon after I gain it back from regular activities (level up jingle plays each time this occurs)
    It seems to be purely random, but usually this happens during/after waking up or eating.
     

     
    Edit: I think this code is the cause; I would suggest skipping players with max strength as the constant level up sound is annoying:
    xpUpdate.everyTenMinutes = function() for playerIndex=0,getNumActivePlayers()-1 do local playerObj = getSpecificPlayer(playerIndex) if playerObj and not playerObj:isDead() then local modData = xpUpdate.getModData(playerObj) -- strength stuff modData.strengthUpTimer = modData.strengthUpTimer + 10; -- if we've been lazy for too long, we start losing xp, every 1200 tick we lose 1 xp if modData.strengthUpTimer > 20000 and modData.strengthMod ~= math.floor(modData.strengthUpTimer / 1200) then modData.strengthMod = math.floor(modData.strengthUpTimer / 1200); if playerObj:getXp():getXP(Perks.Strength) > 0 then playerObj:getXp():AddXP(Perks.Strength, -1); end xpUpdate.checkForLosingLevel(playerObj, Perks.Strength); end if modData.strengthUpTimer > 31000 then -- it's caped to a 30000 timer, so if you've been lazy for a lot of days, it's not so long to get in shape again modData.strengthUpTimer = 0; end -- fitness stuff modData.fitnessUpTimer = modData.fitnessUpTimer + 10; -- if we've been lazy for too long, we start losing xp, every 1200 tick we lose 1 xp if modData.fitnessUpTimer > 20000 and modData.fitnessMod ~= math.floor(modData.fitnessUpTimer / 1200) then modData.fitnessMod = math.floor(modData.fitnessUpTimer / 1200); if playerObj:getXp():getXP(Perks.Fitness) > 0 then playerObj:getXp():AddXP(Perks.Fitness, -1); end end if modData.fitnessUpTimer > 31000 then -- it's caped to a 30000 timer, so if you've been lazy for a lot of days, it's not so long to get in shape again modData.fitnessUpTimer = 0; end end end end
  16. Like
    Tykvesh got a reaction from Sugar in The Apocalypse is not BORING!   
    There's a temporary solution in singleplayer, is using the Claustrophobic trait. You gain panic in smallish rooms on Fast Forward x1, unlike on any other speed, where it is overpowered by passive panic reduction (starting from 4-5 months). Basically turns Fast Forward x1 into a "wipe all my boredom" button.
  17. Pie
    Tykvesh reacted to Sugar in The Apocalypse is not BORING!   
    Geez It sure would be great if my character would stop getting BORED so easily! The Apocalypse would not be BORING, if at all:/ I myself do not get BORED from; Organizing my belongings, preparing a meal, Exercising, Smashing Zombie brains Ect.... The list could go on honey, Sugar does not get bored! at least implement a setting for this mediocre moodle. Plz be a Doll an FIX this, 10 years now and this is my biggest headache. but otherwise i LOVE this game, and i LOVE Indiestone for the MASTERPIECE they have brought to humanity! Thx for it all XOXO Muaaa;) 
  18. Like
    Tykvesh got a reaction from Sugar in Let us pour maple syrup on pancakes   
    That's because Maple Syrup is a "spice", spices can be only added after regular ingredients. I'd love to have plain maple pancakes, but that means adding extra assets. Also, the true crime here is inability to use honey 
     

  19. Like
    Tykvesh reacted to LeetgamerBoi in Ice freezing + Functional Coolers   
    I've been paying attention to Thursdoids and how single player functions are being added, and I had a nice idea to contribute...   
     
        So, a common issue I run into when I'm going about my later-game survival is the issue of preserving food.   
    Currently, the only way to keep food cold is to put it in a refrigerator with power; but this heavily limits what you can do.   

    While coolers are in the game as is, they hold a tiny amount of items and don't actually function, which is fairly disappointing.    

        I think a nice feature would be to add some way to freeze ice, that could be placed into coolers (who should then have their capacity buffed to about 20 but weight reduction cut severely) that would enable you to keep food cold for several days (no less than 3) without electricity.     

         It'd enable you to accomplish far more things such as transporting your food supply to and from your fridge, taking fresh food with you on a trip without it rotting, and even conserving electricity, only turning it on to freeze ice for your cooler, enabling you to minimize gas usage in a pinch. 

    If implemented i'd highly recommend allowing these coolers to be accessed while in a car-seat or trunk, so you are able to load up or get out food while you are on a trip, effectively a portable food cooling method that meshes well with existing systems.

    If this change is implemented, which i feel it would be a relatively easier system to do, i feel like it'd be a great addition and feel right at home in the game, thanks for reading!
  20. Like
    Tykvesh got a reaction from gabriel rodrigues brandao in 42 Techdoid   
    Makes me so happy how the game keeps evolving in ways I would never expect it to, thank you so much!
    The only concern I have is... who's the monster that put a light switch on a glass? 
  21. Spiffo
    Tykvesh got a reaction from bpdlr in Rain going through roof in some buildings.   
    It seems that this room in the prefab was not marked as a room, but@bpdlrafter I enclosed the space as shown below, it started counting as indoors.
    10248x11011
     
  22. Like
    Tykvesh got a reaction from Eroge in Anyway to allow non-admin players to spawn vehicle?   
    Here's an example for your script:
    function Recipe.OnCreate.hezhuangqichea(items, result, player) if getWorld():getGameMode() ~= "Multiplayer" then for i=0,items:size() - 1 do local item = items:get(i) if item:getType() == "carboxmustangpolice" then if not player:isOutside() or player:getZ() > 0 then player:Say(getText("IGUI_zuzhuangshibai")) player:getInventory():AddItem("carboxmustangpolice") else --first we tell the server to spawn a vehicle for us sendClientCommand(player, "eroge", "SpawnVehicle", { type = "Base.ATAMustangPolice" }) end Events.OnClientCommand.Add(function(module, name, player, params) if module == "eroge" and name == "SpawnVehicle" then --server got the request and spawns the desired vehicle local vehicle = addVehicleDebug(params.type, randomdir[ZombRand(4) + 1], -1, getSquare(player:getX(), player:getY(), player:getZ())) --should repair properly as this code is run server-side vehicle:repair() --tell back to the player to do their client-side stuff sendServerCommand(player, "eroge", "ClaimVehicle", { vehicle = vehicle:getId() }) end end) Events.OnServerCommand.Add(function(module, name, params) if module == "eroge" and name == "ClaimVehicle" then local vehicle = getVehicleById(params.vehicle) if vehicle ~= nil then --now client can get some keys in peace player:getInventory():AddItem(vehicle:getCurrentKey() or vehicle:createVehicleKey()) player:Say(getText("IGUI_zuzhuangchenggong")) end end end)
  23. Like
    Tykvesh reacted to MadDan in 42 Techdoid   
    They weren't functional in MP.
  24. Like
    Tykvesh got a reaction from IdkWtfImDoingHelp in 42 Techdoid   
    Makes me so happy how the game keeps evolving in ways I would never expect it to, thank you so much!
    The only concern I have is... who's the monster that put a light switch on a glass? 
  25. Like
    Tykvesh reacted to nasKo in 42 Techdoid   
    Hey all, here’s a general update from TIS Towers on various things. We do hope this finds y’all well.
     
    First off a quick heads-up on the forthcoming 41.66 patch. It’s now content locked, and is now receiving required fixes reported by our internal testers. We will look to put it out into a new unstable beta branch as soon as we can.
     
    The full current changelist can be found here for those interested.
     
    Next up, a few details on our Build 42 work.
     
    As previously mentioned the core MP team will be sticking with Build 41 patches to improve life out on the servers for the immediate future, but work on the next big build has nevertheless now begun/continued in earnest.
     
    Already announced for Build 42 was a major expansion of late game crafting and a major focus on game balance – details on which can be found here.
     
    There are a few other irons in the fire for this build too though. As ever, no ETAs on any of this.
     
    We are very much still in the early versions of this build, and indeed much of the late game crafting update is currently in the ‘pen and paper’ planning stage. More on this in future blogs.
     
    ENGINE TECH IMPROVEMENTS
    We have recently taken some time to get rid of a bunch of our longest standing issues with the game’s engine.
     
    Whilst this is definitely not a b41-style level of disruption, we’re digging deep inside our renderer and looking for ways to get rid of the quite severe problems that have been baked into our engine for a long time in terms of both capabilities and performance.
     
    Performance
    Of course, the biggest issue our engine struggles with daily is the extreme CPU and GPU heavy requirements of having a map composed of so many unique tiles, shaders and other stuff without the ability to use a z-buffer to let us render in an optimized way like most 3D games.
     
    Ironically the fact that its ‘a simpler looking 2D game’ is what works against using a lot of the power of the GPU to render the map fast. This results in large FPS drops, particularly when zooming out due to the mind meltingly inefficient draw method that the ISO perspective forces on us.
     
    We’ve had a few rather bold ideas on how to solve this, using the caching of chunks that have already been rendered, which we hope will vastly increase the FPS in B42.
     
    It’s early days, but looks promising. This tech requires heavier use of the GPU memory, however, so it may be that this optimization will only be able to benefit cards with a few gigs of free VRAM. We’ll have to see which generations of GPUs will be best able to leverage it when its dev time is a little further down the line.
     
    Speaking of not being able to use a z-buffer to render things in an optimized way: in actual fact, we’ve also been working towards being able to use a z-buffer to render things in an optimized way.
     
    This essentially frees us from having to slot the draws of zombies, vehicles or players in between the appropriate tile draws in ‘back to front’ order.
     
    We’ll be able to simply draw all the characters and vehicles on-screen at the end, their pixels then discarded if they are deeper into the scene than an existing building object’s pixel.
     
    This should massively optimize the rendering speed of zombies, and allow us to sort them by materials. It will free us to use cached chunks indefinitely, until the lighting or cutaways demand a change, rather than rendering all the tiles individually.
     
    We have had some surprising FPS results in 4k on max zoom, however we also expect this will likely fall a lot in practice – once the work is complete and everything is drawing. Please excuse any visual glitches at the moment!
     
     
    Due to all this, in B42 it currently feels safe to assume that zooming out will have significantly lower performance penalty – and that higher resolutions will become more feasible for at least mid-range GPUs, and possibly lower end GPUs too.
     
    Variable Chunk Heights
    In the game, since our very earliest builds, we’ve been limited to 8 storey buildings. This was primarily because the height was global, and increasing this would incur a penalty to performance across the entire map even if that extra space was not used.
     
    The other issue was simply performance when drawing those extra floors. If we’re struggling to render the amount of tiles we already have, adding extra tall buildings would be a big mistake.
     
    Thirdly, there’s something to be said about less being more in terms of gameplay. However, this hard limit of 8 has long been a thorn in our mappers’ sides, as well as for our mod community.
     
    Seeing as it looks like we’ll be able to solve the performance issues discussed above, we’ve now added a variable chunk height system which will allow each chunk of the map to define its own max height.

    This means that in Build 42 it’s looking like a particular area could have floors up to 32 in height, should the mapper desire it.
     
    Four way stairs
    Currently, due to certain tech limitations, we only have stairs that rise in north or west directions.
     
    This is annoying, and we’d like to get rid of this limitation for numerous reasons. We’ve done some mock-ups of how stairs would look in the other two directions, and think we’ve found a way to make it work.
     
    They look a little odd, however functionally being able to have stairs in any of the four directions would give mappers and ourselves much more freedom in building design.
     
    Map Coordinates
    Another limitation that has been very longstanding is the fact that negative map coords (expanding out the map in the negative X and Y directions) is not possible in PZ – due primarily to some TIS naivety early on in development.
     
    For the maths-minded out there: casting a player’s x, y, z location to an int to work out what tile they are standing on will return the wrong value if any of those coordinates are a negative value.
     
    There were thousands of places where this occurred in the codebase, and they all needed changing from a static cast to a math.floor, so that they will work in negative dimensions.
     
    Making negative map coordinates possible means that we, or modders, will feasibly be able to build northwards and westwards, and opens up a huge extra area of potential map area to expand to.
     
    It likewise also puts other cool stuff (back) on the game dev table that we’ll discuss at a later date.
    Light Propagation
    We have also been updating our lighting system.
     
    In the current B41 we have an ambient light level that’s inherent to every tile within the map – though slightly reduced indoors. Light sources are only capable of lighting the room that they are in.
     
    Locking yourself in a cupboard with the door shut currently results in the same light level as you’d get in the living room with open curtains.
    For B42 we are rejigging how lighting is calculated, to make a much more interesting and realistic light propagation system.
     
    Now being in a room with no windows, even in broad daylight, will leave you in the darkness. The evening sunset glow will encroach through the window and bathe your room in a red tint, creeping back toward the window and dimming as the sun goes down.
     
    Interiors of buildings will lighten and darken with the daylight based on how much exposure to the bounced light they will feasibly receive. Opening a door to a lit room will bathe the outside corridor in light, and so on.
     
    This is all still development in progress, and it maybe requires tweaking of light intensities, colours and fall-off ranges.
    Please also excuse any glitches you see, this is all still very much in the oven!
     
     
    OTHER BIZNESS
    The map team continue their awesomeness, with lots of map polish currently going into the current Knox Event map – including electricity pylons and cool new locations like this. The Noiseworks gang continue with their improvements of the PZ soundscape, with their current mission being to provide background sounds that provide different ambiance for times when the electricity and water are on, for when they are off, and an audible change to signal the exact moment when the turn-off happens in-game. Currently awaiting integration are also 14 new music CDs, 14 movie VHS tapes, 20 new TV show tapes and 44 home recorded tapes too. You will be delighted to hear that these include several new sequels in the much-lauded Dog Goblin horror franchise. Our thanks to Brat Pen for these. The curator of the online PZ map project, Blindcoder, wants to let you know that he’s on the case with updates – and apologises for delays caused by Covid and irl fun/games. His blog here. Our thanks to him for all his amazing work also.  
     
    This week’s flamingo fun from Cute Cappuccino. A changelist of all our pre-release patches since the 41 beta began can be found here. The Centralized 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!
×
×
  • Create New...