u/Pingotumbo

What if Project Zomboid had real save slots?

Would it make sense for Project Zomboid to have a "real" save slot system? The kind most single-player games have, with multiple separate saves per character/world, swappable from inside the game, no file manager required.

I got tired of manually backing up the saves folder every time I wanted to try something risky, so I built it as a mod: https://steamcommunity.com/sharedfiles/filedetails/?id=3721602150

But I'm more curious what the community thinks about the concept itself:

- Is this something you'd actually use, or do you prefer the current "one life, one save" philosophy as part of PZ's identity?

- What features would you want? (I've already included quite a few, feel free to check the Workshop page or just ask here)

- It works the same across all game modes (Apocalypse, Sandbox, etc.) and should be compatible with pretty much everything. MP support isn't in yet but it's something I'd absolutely consider for the future. Would that be a priority for you?

Reason I'm opening this up for discussion: after the first week interest has clearly cooled off, and before I keep pouring time into it I'd rather understand whether the concept actually resonates with people or if I'm solving a problem only I have. Honest reactions welcome, including "nah, not for me".

Side note: I feel like this kind of system would be even more useful in games like ARK, where the mod itself basically requires you to do manual backups to survive long-term play. PZ at least has the hardcore-permadeath argument going for the current system. ARK doesn't really have that excuse.

u/Pingotumbo — 1 day ago

What is this? Project Zomboid's single-save system can be punishing, especially with Build 42 glitches. This mod introduces a complete Save/Load system, allowing you to create, rename, and manage multiple named save slots for each world.

The new Main Load Panel: easily browse and manage all your custom save slots with automatic thumbnails

The \"More Info\" view: detailed save stats and the new \"Flags\" system.

Quick Save confirmation: creating a checkpoint in-game before things get too dangerous.

Key Features:

  • Multiple Named Slots: Create checkpoints whenever you want.
  • Quick Save: Instant backup while playing.
  • Full Save: Reliable, complete backup via the main menu.
  • Management UI: Rename, Clone, or Delete saves with automatic thumbnails.
  • Emergency Tools: A "Strip Mods" feature to recover saves broken by mod updates.

How to Install & Use (The Watcher): Because PZ locks its database while running, a standard Lua mod cannot safely copy files. I engineered a "bridge" script that handles the file manipulation at the OS level.

  1. Subscribe to the mod on Steam.
  2. Navigate to the mod folder: ...\Steam\steamapps\workshop\content\108600\3721602150\mods\ManualSaveMod\
  3. Run ManualSave_Watcher.cmd and keep it minimized while you play.

The ManualSave_Watcher.cmd located in the mod folder. Note: The file path shown in this screenshot is my local dev path; for most users, it will be under the Steam Workshop directory mentioned above.

  1. Tip: Create a desktop shortcut for the .cmd file for easy access.

DevLog - Architecture and Background:

Exactly a year ago, I posted here (https://www.reddit.com/r/projectzomboid/comments/1k62k5t/need\_help\_with\_my\_first\_project\_zomboid\_mod\_build/) asking for help to create a manual save mod. I had zero modding experience, didn't know Lua, and nobody reached out to help. I couldn't even figure out how to get a basic print() working in the logs. I figured out how PZ saved files manually, but writing a public mod was out of my league, so I dropped it.

A few weeks ago, I picked it up again. Thanks to my university studies (i am a computer science student), I had learned a lot about software engineering, design patterns, and managing complex codebases. I also decided to test Claude as a coding assistant.

Let me be clear: AI does not just write a complex mod for you. If left alone, AI generates terrible, verbose, hardcoded spaghetti code, an absolute abomination for any programmer. I had to act as the software architect, guiding it step-by-step, enforcing generic functions, and constantly fighting its tendency to write unscalable, hardcoded UI layouts. Even so, the current codebase still requires significant manual review and refactoring. The structure is functional but not yet as clean or modular as I’d like it to be, and I plan to keep working on its internal architecture to move away from the AI's immediate, "quick-fix" approach.

The biggest obstacle is that PZ wasn't designed for manual saves. It uses an SQL database that is in constant read/write access during gameplay. Chunks, zombies, and states aren't fully committed to disk until you actually exit the game. Furthermore, the Lua API only provides a basic rename function, which isn't enough.

I had two choices:

  1. Write Java files and recompile the core game (terrible for mod compatibility).
  2. Create an external OS-level script.

I chose the latter. The mod uses a ManualSave_Watcher.cmd running in the background. The Lua UI talks to this watcher, which then safely handles the OS-level file manipulation (copying/reading) without crashing the active SQL database.

Vanilla PZ only provides tiny 250x250 thumbnails saved in specific native paths. I wanted proper, large screenshots for the save slots. Since PZ lacks this function, I needed an external tool.

This led to a massive bug: if you take an OS-level screenshot while PZ is in Fullscreen, you capture random, old frames (the GPU buffer doesn't update correctly). I tried everything: PowerShell, hooking DLLs, DirectX, and even writing a custom C# executable using SharpDX to make the capture under 0.5s. Nothing fixed the Fullscreen buffer issue.

The current workaround: The mod briefly forces Windowed mode, takes the screen using a very lightweight .ps1 (PowerShell) script, and switches back. It’s still a bit janky and needs fixing, but it works for now.

Once I had the layout prototyped (using Claude Design artifacts), I had to translate it into Lua. To fix the AI's messy code, I did a total refactoring. I built a strict directory design:

  • A Toolkit for basic logic operations.
  • Screens (pure assembly) that call the toolkit.
  • Factories for wrapping elements. I also applied JavaDoc-style documentation to my Lua code to keep everything readable for future updates.

Current State & How to Use It The mod is fully functional but still a work in progress. Code isn't as perfectly clean as I want yet, and there are bugs I'm tracking down.

  • Features: Multiple save slots, Quick Saves, Full Saves, Slot Cloning/Renaming, and custom thumbnails.
  • Requirement: You must run the ManualSave_Watcher.cmd in the background for the OS file bridge to work. Everything is explained in the in-game Help Screen. Go to your Steam library folder, usually: ...\Steam\steamapps\workshop\content\108600\3721602150\mods\ManualSaveMod\

If you are a modder or a dev, I'd love to hear your feedback on the architecture!

Feedback & Future Updates: I'm looking for:

  • Bug Reports: Especially regarding the screenshot logic in Fullscreen mode.
  • Feature Ideas: What else should the toolkit include?
  • Code Review: If you're a veteran Lua modder, I'd love to hear your thoughts on the architecture.

Links:

reddit.com
u/Pingotumbo — 14 days ago