Save Our Station!

Save Our Station is a modification for Project Zomboid, a zombie survival game developed by The Indie Stone. I developed this freely available mod as a personal project. Released on the Steam Workshop, it has nearly 200k subscribers and a 5 star rating by more than 1.5k users. Source code is available on GitHub.

Repair the Emergency Broadcast System

Do you take your hourly weather updates and air traffic alerts for granted? Ever found yourself late in the game with nothing to do? Save Our Station spices up your survival experience by causing the Emergency Broadcast System to occasionally break down, requiring you to seek out the failure and fix the issue. 

Creating Save Our Station!

I chose to mod Project Zomboid because of my burning passion for systems based games. After hundreds of gameplay hours, I grew fond of the Automated Emergency Broadcast System present in the base game. It provides hourly weather updates, extreme weather warnings, and alerts for important in-game events. I developed Save Our Station with the following goals:

Extremely Tight Scope

As a first mod for Project Zomboid, I wanted to limit scope creep and create a feature I could quickly play with. I limited myself to five weather stations, each with a single nearby area that rewards further exploration. I made a small number of custom assets for the stations themselves, and use entirely vanilla assets for the nearby areas to save time. Despite the temptation to overcomplicate the repair mechanic, I kept it simple and intuitive.

I succeeded in quickly getting the core features to a testable state, establishing that the explore and repair gameplay loop was fun, and proceeded to polish Save Our Station for release.

The Automated Emergency Broadcast System Requires Maintenance

In the spirit of Project Zomboid’s dedication to realism and difficulty, I decided to take a feature I loved, and break it. I believe Project Zomboid’s lasting appeal is the highs and lows of each play through, such as the high of finding a working car, the low of blowing out its tires on a back country road, and the high again of salvaging a tire and returning the car to working order. Just like many of Zomboid’s other gameplay systems, the weather stations would need to be maintained by the player. 

Since the location of weather stations would be far apart from each other, and traveling to them would create a high amount of tension, I decided to make the weather stations themselves less zombie infested. This allows players to rest and recuperate between arrival and departure from the stations. Fixing weather stations requires key items, and I wanted to avoid players backtracking into town to search for them. To accomplish this I provided a diagnostic manual specifying the repair items, so players could plan ahead and bring them. Additionally, I made it very likely that the items needed will spawn within the stations themselves, or could be obtained from disassembling fixtures within the station. 

Vanilla-Like

I love the look and feel of Project Zomboid, the game is dripping with character. I wanted Save Our Station to fit seamlessly into the early 90’s rural Kentucky world that has been crafted by The Indie Stone team. Nothing should feel out of place, overpowered, or too complicated. A dedicated player should not have to look for guidance outside the game in order to find and repair the weather stations. 

Maps to weather stations can be found as loot across the game world, including a special one that has been marked up with the location of a secret military weather station. I crafted these assets to look as if they were ripped out of a National Weather Service manual. 

I measure my success in achieving the “vanilla” feel of Project Zomboid by the numerous comments on the matter from members of their Discord community:

Late Game Exploration Goals

The first few weeks of survival in Project Zomboid are polished to a shine, but beyond that the game starts to slow down and lose excitement. Eventually, the player creates self sufficient bases and has few excuses to go on dangerous looting runs. Tweaking difficulty and loot settings can delay this late game lull, but never remove it entirely. Cosmetic improvements to your base and vehicle collection become the main activities, but without moments of increased tension and exploration, the desire to start fresh grows strong.

To tackle the late game lull, I added five new locations to explore and loot, strategically located near existing points of interest. One of these locations was a “secret” government weather station, very close to the games existing military instillation. 

Players reactions to Save Our Station exceeded my expectations, and I’m delighted anytime I see people discussing the fun people have had with it. By far my favorite stories are from players roleplaying as National Weather Service mechanics, driving around the map to keep the system alive. Emergent gameplay features are my favorite part of systems based games, and I believe in nurturing them whenever possible. I had no expectation that people would role-play as full-time mechanics for the weather service, but to encourage these players I added themed National Weather Service vehicles, and have other uniforms and lore items in the works for a future update.

Conclusion

I consider Save Our Station a massive success, accomplishing the goals I wanted despite the limited scope I set. While there are small tweaks I’d love to make in the future, I’m happy with the current state of it. Recently I have been onboarding another member of the community to help expand on it, with fresh new ideas that they have proposed after playing with it extensively. 

Additional Zomboid Modding Projects

Airborne

The next mod I have in the works is one that simulates a toxic fallout descending on Project Zomboid’s game world. Inspired by similar mods, I’ve set out to create one that more ambitiously simulates atmospheric flow within buildings, requiring players to make their bases airtight, with air filtration systems. Exposure to the toxic air without gas masks will cause respiratory sicknesses, while exposure to the rain and fog will cause chemical burns on exposed flesh.

GitHub

Blender Tile Renderer

I use Blender for much of my custom texture creation in Project Zomboid. To facilitate the rendering of these assets to png files the game consumes, I wrote a quick script to automatically rotate and slice models for export. When the rendering process is complete, I use ImageMagick to stitch the results into a texture sheet that can be used by the map editor.

GitHub

Room Define Wiki Updater

Distributing loot in Project Zomboid is difficult, and requires a lot of knowledge of items and room ids to get perfect. To ease the process I created a Python project to analyze the Project Zomboid game files and generate a wiki article outlining default loot settings.

GitHub

Texture Sheet Unpacker

The Indie Stone provides great modding support, but as an indie team it can take awhile for them to update texture assets for map mod creators. Project Zomboid ships with tightly packed pngs and xml files that define how textures are packed, my tool uses these to recreate the original unpacked texture sheets that are consumed by the map editor. The tool provides a user friendly way to modify the texture sheets as they are getting stitched back together, and a way to detect changes between older and newer texture sheets.

GitHub

Map Mod Plotter

When creating a map mod, there is always the risk of overlapping an existing map mod, making the two mods incompatible for players. I created a tool to consume Project Zomboid workshop entries and output a file I use to illustrate conflicts.

GitHub