Press Kit Wiki

Hurtworld Update #99


Hi Guys,

This week we’ve been powering forward with map and progression updates for the red desert release going out this Friday. The map tools have finally gotten to a point where I don’t have to pest cow_trix every 5 mins with a bug stopping me from proceeding. And I’ve got to say, these tools are awesome. We are just putting the finishing touches on the SDK update release, should have it out to you guys soon to start playing with.

The desert is coming together nicely, it’s definitely feeling like it has more character than any of our maps to date. I’ve tried to break away from too much formulaic structure that makes everything look the same, mostly thanks to our new tools that allow a lot of manual authoring in a non destructive process.


This biome has become quite big, which will likely need a vehicle to traverse easily. I’ve clustered lots of content around the south border which will border the build biome, so getting your first vehicle should be easy enough on foot. The real star of this process has been the road tool, which should more appropriately be named the spline tool. We’ve been using it not only to create awesome roads, but to create streams, deform terrain, plant lines of trees and run power lines. This is incredibly useful for making a map feel full as being able to paint a line of tree occlusion scattered in a natural way in 2 clicks if an area feels too open, has sped up my workflow immensely.

Looking forward to sending it out in the wild!


I decided to become a road worker this week. Got a sore back from diggin’ 😛

These have come out nicely. The Asphalt is pretty similar to the last build we put out, but is a bit darker and less ‘powdery’ I added a subtle normal map to show the raised area at the edge of the road and the subtle raised paint of the white lines. I made some intersection pieces also. There’s a ‘T’ Junction for the asphalt and the Unsealed Roads. There’s also a T Junction for where the Unsealed Road reconnects to the Asphalt Road. These use sneaky UV mapping to avoid having to make specific road textures. We will probably make those at a later date.


Below: I made a generic Unsealed Roads texture, which uses brown tones. This fit most of our biomes that didn’t have thick sand.


Below: For the thicker sand biomes namely; Red Desert and Start Desert I made another couple of Albedo’s and used a new normal map that really expressed the softness of the sand. This normal shows big soft tyre tread marks. Really satisfying working on these.



Hello, this week I got into trying to make the green biome feel more interesting as you explore it without taking up actual space with junk. This was a bit of a hard task, it’s easy enough to just chuck a bunch of stamps all over the map but this takes up valuable building space and also still leaves everything in between the stamps the same, which can make the map feel boring. As you can see I’ve made a bunch of different stamps, small being tight areas with little rock walls sectioning everything off, medium being farm land with lots of occlusion from trees, hay bails and long grass, and finally large stamps that consist of 90% terrain splat changes with subtle tree lines to give the player a sense of moving through an ever changing land scape. These stamps need real world rules to make them feel correct, as you can see the small stamps (red) are focal points that get tucked into corners or other tight spaces, they are then padded with medium stamps (yellow) these farm stamps which are larger and can create interesting battle zones and cover for stalking players, then comes the large stamps (blue), these are used to suggest civilization, for example as you are coming over a hill you may not notice a farm or a town like area but you can see the ground has changed under you which in the real world generally indicates that the land has been touched by other humans and civilization may be near.

Stamp Rules2

I also made a spray can and ash world item. The spray can will have different patterns assigned to it for vehicles which will be displayed on the can. The pattern on this can is an example.

SprayCan Ash


Heya folks. This week I’ve been chipping away at the new Mangatang map, trying to polish some areas of the map with some new techniques and tools. Luka created some great stamps that will vary up the ground texturing and add in some interesting object scattering, while still being negative space that players can claim and build in. I’ve been working on placing those stamps in the build biome and fixing some issues that came up with ground texture blending. I was finding for much of the first half of the week that I was getting a lot of artifacts and blending issues with both ground textures and grass, when stamping them down and when setting them with the road tool. I realised, after one mostly successful refactor attempt, that I’d kind of overcomplicated the logic and I could simplify everything down. I was basically trying to figure out, given a point in the map, if I should read data from all the layers beneath where I was looking to figure out what was there – which is appropriate if nothing has altered the layer yet – or to look in the layer for the value of that data – which is appropriate when something else has altered the layer. I realised it would be a whole lot easier to just copy all the compound layer data to the currently executing layer right at the start, and then never look at the base at all. This simplified the logic immensely and actually let me spot a few other bugs in code where I was sampling things just a little bit off.

Progress on the map has been going well, with me and Spencer trying to figure out a good workflow for splitting things up and working on the same map separately. Something I’ve realised with this stuff is that the key word is “context”. When something has context with something else, you really do need to be putting them in the level, or stamp, together so that context can be preserved. So, for instance, when setting up these isolated scenes to author individual areas of the map, we need to be very careful that we don’t put things with context in areas of the stamp that won’t have 100% control over that point, as the context will change. For instance, if you have a stamp that places some walls on the ground, and you’ve authored that stamp with flat ground, then the walls have a context where they require flatness. If you stamp them somewhere on in such a way where they’re placed on uneven terrain, you get some walls that really don’t look right.

The road network for this map is more complex than we’ve had in Hurtworld so far, so I’m looking forward to seeing how that plays. There are a lot more trails, intersections, and roads to travel down in this coming build. Check out screenshots below!



This week I worked on the recently released bugfix patch and started to flesh out how our customization system is going to be implemented in an upcoming patch (at this stage targeted for a 6th October release).

As part of the patch I made some changes to the spawn system used by vehicles and Antor hives. Previously the respawn timer was calculated by MaxRespawnTime / ServerPlayerCount but with the longer respawn of the Antor hive we needed more control over how player counts affected the spawn timer. We setup the hive to have a 1 hour respawn on a full server but this meant on an empty server it would be a 60 hour respawn!
Now the spawner uses a user definable curve that is given normalized server fullness as its input (ie. 0 for empty server, 1 for a full server) and the result of this is multiplied by SecondsPerSpawn to find the final spawn time. In this example Goats will respawn every 300 seconds on a full server and 10x that (3000 seconds) in an empty server.


I also fixed plants appearing bugged after a server restart. It turned out we were saving the plant’s planted time relative to server start instead of relative to the current time. This meant that an Owrong planted 15 hours into server start wouldn’t appear ripe after a restart until restart time + planted time + grow time.
Another tricky bug was getting the construction hammer to teardown all of its ui features properly. Because the construction validation has to occur server side but the construction selection through the ui runs on the client there is shared authority over the system and some necessary delays while one side waits for the other to process. The bug where complexity costs and attachment point previews would stick around after unequipping the hammer was caused by either a quick equip and unequip or a quick selection change (ie. foundations to walls) and an unequip. This would cause the following sequence of events:
Equip or selection change is sent to server to setup the construction preview object.
Hammer is unequipped on client, turning off the ui elements.
Client receives construction preview setup message from server, turning some ui elements back on.
To fix this the construction manager now tracks the client predicted state to see if a construction hammer is equipped and the construction preview code now makes checks against this when making client side changes.

I’ve also started working on item customization scheduled for the update. For this we’ll be improving weapon attachments allowing you to do things like swap between different sights on your gun. Also, the customization previously available to vehicle panels will be expanded to include several items and gear pieces (you will be able to apply different design masks and also change colors).
So far I’ve been mostly focused on getting the tech side of this up and happening so items can easily have masks applied and swapped and creating asset types that allow modders to easily create new masks for items. I’ll be going into the design side of this system this week and fleshing out how you’ll be able to earn these masks in game and what other changes to items are required to properly support the system (ie. we will likely return item repairing to allow you to keep any items you get attached to and end up customizing). Watch this space!

Hurtworld Update #98


This week I worked on the recently released experimental and master patches.
I was hoping to spend this week polishing up the Antor and DartBug iterating on their behaviour and balance but I ran into problems getting the game to build properly and also suffered a local git repository corruption that left me with less time than I was planning on and things ended up a bit rushed leading to some bugs and also a bit of a performance regression there wasn’t time to properly deal with (we’ll be dealing with these issues this week).
To avoid this in the future I’ll be making a more concerted effort to get the build finished up in the week prior so we have the final week purely for testing and any emergency changes.


The master patch addressed a critical exploit where players were able to alter their send buffer size. The send buffer is memory that gets reserved by the network socket that connects to the hurtworld server. It uses this memory to send messages to the server with info like your input and position in the world. Players were lowering their buffer size so low that there wasn’t enough memory to send any of these updates allowing client and server to get totally out of sync but because the socket still retained the connection the player would never be kicked.
If you’re a server owner you may have seen the warning in your log file about the sendbuffer being full when the server gets really busy. This occurs when the server is trying to send too much data in a single frame to a player and the socket starts throwing errors when asked to send packets. Luckily this isn’t a critical problem as any important data will be sent through a reliable call meaning if the packet containing this call is dropped due to the buffer being full it will just be resent in the next frame.
This means the message is a warning and not an error, it’s an indication something is wrong not the actual problem itself (the problem is too much data being sent by something), we are planning a pass on server performance that should address this and other server issues before ItemV2’s full release.

First up this coming week will be addressing the critical issues in which seem to be mostly with the spawning system more specifically with the Antor nodes not respawning properly and town loot caches not spawning at all.
I’m also hoping to address a few long standing AI bugs that cause desyncs between client and server making creatures show up in the wrong location appearing non-responsive as well as some bugs with the new creature sounds.


Hello, this week I dived head first into a new work flow I’ve been slowly heading towards, it was a hell of a lot of work to get everything optimized and making sense, but in the end it worked out pretty good. Usually I would give myself a bit of time to sort out the best way to do something but this time round I felt like doing the task the normal way would be wasting a lot more time in the long run. I’ve been playing around with a program called Substance Designer and had specifically been working on ways to make good looking proceduraly generated rocks and cliff faces within Substance Designer, but I felt like I was at a point where I could save a lot of time by extracting what I was doing in Substance to achieve the task of new cliff rocks. First up I had to create a half decent looking cliff face height map within Substance, this allowed me to randomly generate height data over and over without having to manually change anything which is a huge step up from re-sculpting details over and over.


I then took this height data and turned it into geometry to take through the normal pipeline, this brought its own huge set of kinks that I had to work out. We decided set pieces that fit nicely together would be the best option for placing them. While I feel like there’s a lot that could be done better, I am extremely happy with how easy this work flow is going to make other big under-takings like this. Here’s the large set pieces covering an area where there’s a sudden change in the height map.


Another thing I had a go at was concepting focal points in the map and trying to imagine how it would flow together instead of just creating little scenes with no idea where exactly they would go. I’m not a great concept artist so this is extremely rough and also unfinished but it does allow me to visualize the focal points we want to add in the map. The main challenge we are facing at the moment is stopping the build biome from feeling like its a constant wave of rolling hills by filling it with interesting stuff but also leaving lots of room to build bases, to achieve this we are trying to separate patches of land with interesting ground textures and different foliage, like you see on farms. I would really like to change the warmness and over all feeling parts of the map give you my gradually moving the colour pallet at different ends of the map, but I don’t want to get ahead of myself.



I got a moon tan whilst on holiday these last 10 days. I did get some stuff done on the roads before I left for holiday town. I did a little more work today also, so the culmination you can see in the images below.

I was pleasantly surprised by CowTrix’ new road shader that uses some decal magic to blend the road edges with the terrains and additionally between biomes. This seems to be a kickass solution for the roads and I have managed to make one texture that looks good in all the biomes at the same time. We may make additional textures if this texture looks bad in future biomes but It’s nice that this suits them all for now. I am also working on the Unsealed Roads mesh and textures to bring them in line with the Asphalt Roads.


Here’s a little diagram to show the tricks used to make the road. We made the outer shoulder strip of poly’s large in World Space, but very thin in UV space. This was so we didn’t waste texture space, since the alpha specifies the outer shoulder strip to be invisible and instead inherit it’s information from the terrain underneath. The Asphalt part of the road has 100% white, to denote that it does not receive any colour & normal information from the terrain. Moving out from the edge of the Asphalt, there is a roughened gradient that starts at about 70-80% white. This helped the colour information blend with the splat underneath making it blend nicely and look like part of the scene. It’s a nice workflow, so much better results than the previous road scenario.



Heya folks. This previous week I’ve been working on the next iteration of the map , which is probably going to be my task for the coming week as well. This next iteration will include a new Red Desert biome that Spencer and Luka are working on, some new assets of Luka’s, and a tweaked layout. I reworked a lot of how the road tool works to get better results when we want to do complicated things, and finally got my head around the decal system for Unity surface shaders, that solves a lot of the road blending issues we were having.

You may remember in some previous blog posts we’ve talked about blending the roads with the terrain, and we came up with some pretty complex ways of doing it that involved things like storing a massive texture of the normal map of the terrain, and so on and so forth. However it was seeming to be a bit of a nightmare to really get this solution looking good, so I had another go at comprehending the Unity decal surface shader functions. Basically, in deferred shading, every model renders a bunch of information to something called the GBuffer. The GBuffer contains information like the albedo, occlusion, specular, etc. With decals, we can make shaders that modify the GBuffer, instead of overwriting it, which is perfect for roads! Check out Mils’ post for a screenshot of this shader in action.

I also vastly improved stamping and terrain recalculating performance, as I realised how much time we were spending getting the combined information from the layers below the currently calculating layer. A quick caching system for this data increased speeds by about 50% across the board for most operations.

I also wanted to push the road tool a bit further this iteration, and see what it can do. I experimented with a river preset, and a suspended bridge. Check it out!


Looking forward to getting this next iteration of the map out to you all, which will feature a bigger build biome, and more interesting features and landscapers. Stay tuned.


This week I’ve been working on the heat progression and designing the red desert part section that will be rolling out in mangatang next week. I know I mentioned there would be a full progression going out next week, since then we’ve decided to shrink the scope a fair bit since we had also planned a large iteration on the build biome. This would mean multiple new biomes (not just ones pulled from legacy), plus designing an entire content progression. We decided to focus on one rolling out the red desert plus updating the build biome as not to spread our selves too thin.

We’ve been iterating a lot lately on our map development tools, and focusing on workflows that allow us to author more unique elements. This iteration we’re testing a workflow of authoring complete biomes separately before integrating them into the map. This allows much more granularity over how elements of the map fit together in a cohesive way. Instead of throwing 20 stamps at Cow_Trix and leaving it up to him to throw them together in a random order, I can design the flow of the map including where roads lie, how different areas blend together and ultimately iterate over what looks like a final product without having to work in the final map scene. The final map scene is getting pretty massive and hard to work with, this lets us prototype smaller chunks without wasting work.

To start the macro look of the biome, I’ve been back into World Machine to create something of a hybrid between Utah and Darwin. These features will be much larger than our classic biomes, and will serve more as landmarks that overshadow the smaller valleys and focal points.

Pasted image at 2017_09_12 03_06 PM

From there I spent a bit of time in MapMagic running some procedural texturing tests based on heights which looks pretty cool

Pasted image at 2017_09_12 04_39 PM

With this as a canvas I am now starting to create smaller occlusion focal points within the negative space and connecting focal points with long roads.

Gameplay Flow

Without a full fledged progression in the red desert, the main focus will become vehicles. Finding vehicles has always been a sloppy mechanic and been very hard to balance. My aim with the red desert in this iteration is to give players a way to focus on building a vehicle in a reasonable amount of time.

You won’t need to progress through all theirs to reach this biome, meaning at an early stage you can choose aiming for a vehicle, or aiming for better PVP/PVE gear. Finding each vehicle will vary in difficulty and likely require first building a goat before progressing to kanga / roach.

This patch is scheduled for release on Friday the 22nd of September at 5pm Melbourne time.

Hurtworld Update #97


This week I’ve been continuing to work on the upcoming patch which we’ll be releasing this Friday, the 8th of September.

By popular demand we’ll be adding back loot to all the dangerous creatures. We had removed loot from these creatures because we thought these creatures we’re serving dual, opposing purposes. For instance if we wanted to make an area more dangerous we could spawn a lot of say Bors there but then in a lot of cases we would actually be making the player’s life easier by giving them a bunch of loot. We also liked the early game challenge of learning to hunt creatures that run away from you and didn’t want to lose this as soon as aggressive creatures became involved.
What we didn’t consider enough though was how we were essentially taking away our most interesting resource nodes. We still want to incentivise hunting non-aggressive creatures so dangerous creatures will drop different materials. For this we’re adding back in animal fat as a constant time resource (meaning your yield won’t increase as you progress) making it the equivalent of animal tendons for dangerous creatures.
It’s primary usage to start with is crafting the healing consumable that unfortunately slipped out of last patch but will definitely be in this one. There’ll also be a chance for dangerous creatures to drop raw steaks again.

The DartBug has been coming along well and now is all setup with sounds and also a cool looking particle effect thanks to TehSplatt. I ran a stress test spawning heaps of these guys which turned out pretty funny, the camera gets pretty much obliterated by all the incoming projectiles and the way they surround the player looks pretty cool with the burrowing particles. Don’t worry though, a real server couldn’t handle this load along with everything else going on so we won’t be spawning them in anything near these numbers (they won’t be randomly colored in a real server either).

As well as the DartBug the other new bug coming in this patch is the Antor who I showed a quick preview of last week. This one is going to work a bit differently to the other creatures, rather than just spawning them directly on the map we instead spawn their home, a wasp nest styled resource node. This node spawns a bunch of Antors so you’ll always be fighting them in multiples, to balance this they have low health and don’t do much damage but as you start killing them the node will spawn new Antors. You’ll have to be a quick aim to take them all out, then you can start mining the node while keeping an eye on any new spawns.


I’m going to be spending this coming week polishing and tweaking the balance numbers on the new creatures as well as trying to squeeze some more bugfixes into Friday’s patch.


Been doing a lot of different stuff this week, first up I worked on a particle trail for the dart bug, I’ve only used Unity’s particle system on a few occasions so I didn’t go too deep into it. Due to the particles needing to clearly show the path of the dart bug while underground I tried to keep the clouds tight and low to the ground, while making sure the front of the trail was obvious. I tried to represent some rocks being thrown into the air as if a creature was digging and kicking rocks up but they didn’t turn out great, however I am determined to make some decent looking particles now because they are pretty fun. We talked about adding a little dirt mound mesh under the bug when it pops out of the ground and when it first enters the ground. I would also like to create a bug splatter particle effect when I get the chance.

I made up a quick little hand held Health Pack to replace the square, sponge looking place holder we previously had. I also gave the Antor bug a colour mask and a new spec map, I think the spec map really helps it and the colour mask is a lot of fun on this one. I always try to create some basic environment themed colour schemes (obviously death isn’t usually an environment).





Lastly I’ve been gearing up to tackle some big cliff rocks, in my opinion sculpting such large rock formations manually can be a huge waste of time, especially when things aren’t finalized and need to be changed, so, I’ve been learning Substance Designer in my spare time to go down the route of proceduraly generating the rock faces I want as a height map and converting them into geometry in Zbrush. I enjoy this workflow much more as I can randomly generate new shapes and change things on the fly instead of having to go in manually and re-sculpt everything. We discussed using these large cylindrical shaped cliff rocks as they are very versatile and really good for breaking up obvious tiling.


Hey folks! This week I’ve been chipping away at our map tools, starting the other half of the map, and reworking localization a bit to make it easier for the community to translate the game via the Steam Workshop. I finished up the fixes I talked about a bit last week with the map tools. One of the big issues was with an inconsistency of array storage in the Unity Terrain that had crept it’s way into the map tools, despite initial efforts to keep it out. While the Unity Terrain gives you it’s height information in floating point format, it turns out that it stores that data in the form of a 16-bit integer. This means there are certain values that can be represented in a floating point value that cannot be stored as a 16 bit integer. For instance, on a 600m high terrain, let’s say we try to set the terrain to 30cm high (0.3 in floating point). Well, in 16 bit integer land, the closes we can get to this value is 29.2cm. While this little bit of distance isn’t an issue in the vast majority of uses of the Terrain system, when you’re writing a road tool and trying to figure out why the height isn’t what you told it to be, it can be a doozy. There was also an inconsistency in the data storage of the heightmap, where it stores the heights on an ZX axis instead of a XZ axis, which is how it stores every other map.


I’ve also been working a bit on our localization stuff. Translation of Hurtworld has always been super important, and a mainly community driven endeavour from a few awesome volunteers. However, we’ve found that we’re the slowest part of this process because we have to go through and actually put those translations in-game. I’ve been working on the ability to upload language packs to the Steam Workshop, which should hopefully be coming very soon with the release of the SDK.


Hi Folks, this week I’ve been doing a bit of planning of the next few releases. I should have a bit of a short term roadmap that we can share with you soon. What I can confirm is that we will be doing an official ItemV2 launch to the main branch in roughly 2 months, before we do that there are a few things we want to iterate on first in experimental releases.

I’ve spent a bit of this week packaging up the new Mod SDK and adding some needed features to get it to a usable state for our modding community. The main focus of this has been ways to inject custom content into the base game in an additive way. What this hopes to achieve is the ability for server owners to load lots of different mods that can work nicely together and aggregate into a solid experience without each modder needing to do a large amount of work.

For example, say you create a new weapon asset, there needs to be a way to obtain said item without console commands. To do this, you will need to either be able to craft it, or something must drop it.

The first method of injecting modification into the base game is a simple asset replacement. Any published asset you create, can be assigned to override another asset in the game (this works with other mods too, modception). With this you could for example, overwrite the recipe list asset from the Tier2 workbench with a duplicate of the real recipe list plus your item. This will work if you are the only mod trying to add to that workbench, but if multiple mods try to inject into an asset by overriding, only the last mod will get its stuff into the asset.

Additive injection is pretty simple for things like recipes, I’ve added a merge into list field on recipe list assets. When the game is loaded, if this field has a reference it in, the list will append itself to another recipe list. This means if 10 assets add a recipe to the same list, all recipes will be present. Getting a nice order is harder, for this case the basic scenario will do.

Assets with more complex structures get a lot more difficult. Say you create a new creature variant or new resource node, how do you get this into the game?

Spawning maps are painted inside maps at editor time, its a bit much to ask everyone that makes a new creature or resource node to author an entirely new map and this prevents multiple mods to add things like creatures and resources together unless the map creator is aware of the mods at creation time.

We now spawn creatures by invoking SpawnBuilder assets instead of just pointing to the GameObject that needs to be spawned, the SpawnBuilder asset can change a massive amount of details about what is spawned depending on situation or even randomness, these assets can also be overridden to do things like 50% of the time spawn your new creature instead of a T2 Boar where T2 Boars spawn. This is useful because it means your mod will work with every map that has T2 Boars painted into it, but like the scenario above, if multiple mods try to do this for the same spawn builder you will run into issues. Unlike a list of recipes, you can’t just append to the end of the list. Spawn builders are complex trees of choices, additively injecting will require choosing a node to inject into even then semantics will be unpredictable at best if multiple things try adding to the same node.

The upcoming SDK release will include the source files we use to build our DefaultContent mod. This should give you guys a good headstart in figuring out how the vanilla Hurtworld is built and make it easy to replace assets to create new behavior. Our BaseArt project is pretty massive, so we won’t be adding this to the SDK, however you can still reference any of our art assets in your mods using our proxy asset system. I will do a video on how this works sometime this week along with basic usage of the new SDK.

This will hopefully be released in the next couple of weeks. Before going ham on making injection features, I want to release the initial ItemV2 sdk, and hear from modders to see what content they are trying to build, and see if I can help them achieve that. Still very much a work in progress.

22 September Release – Heat Progression
Today I am starting work on the September 22nd experimental release which will contain our first parallel progression. What this means is instead of hopping from Noob Desert -> Forest -> Sand Dunes -> Red Desert -> Snow, you can choose to go down the forest->snow path or dunes -> red desert path from initial spawn. Each progression will have different requirements to progress and different technology perks. Taking a T5 gear from the cold progression to the hot progression won’t help you that much, you will need to start the heat progression from the start.

I still have a lot of design work to do, but at this point the heat progression will be much more focused on scavenging technology instead of creating things from raw materials. We will be working towards a mad max vibe with a larger focus on vehicles, gasoline and explosives and less on nature.

Map Changes
Obviously we will be adding multiple new biomes to mangatang, we will also be changing the flow of things a bit. Something that was always a challenge with PVE environments in a survival game was making the world interesting while leaving it as a canvas for people to make their own mark. Now that we have blocked specific biomes from being built in, we can start designing them in more traditional ways with more interesting content as we don’t need to leave space for player construction. We can also make them a fair bit smaller as trips to these gated biomes will be done as farming runs, you probably shouldn’t be doing runs longer than 30 mins due to the risk of losing what you have farmed. This will leave more space in the middle for the build biome, which will be expanding as well as hopefully getting a secondary visual skin so its not so samesy over a large distance. This should alleviate pressure on being packed into building in a small space, which will also be helped by there being biomes on both sides of the map that people want to get to, the best spot to build won’t be down in one corner of the build zone near the few gated zones.


I is gone to to Perth for a week to see my family, I also like the taste of sweaty balls.

Dev Blog