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.
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.
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.
Other mentionable work on the mighty PZ that’s happened this week has been:
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.