How zed-0xff/zombiebuddy works
ZombieBuddy is a Java agent framework for Project Zomboid modding. The main workflow is to start the agent with the game, discover and load Java mods, interpret their declarative patches, and transform game classes at runtime; it also exposes Java functionality to Lua. The README documents mod signing, installation, runtime retransformation, and logging as additional capabilities. Internal edges below rely on README-level descriptions where excerpts do not show the full call chain; experimental HTTP/Lua tooling is shown separately, with its wiring evidenced by the sampled sources.
Main entry points: Loader.java Mod loader · PatchEngine.java Patch engine · ModApprovalsStore.java Mod approval · Agent.java Java agent
Components 19
Startup and mods
- Java agent
java/src/main/java/me/zed_0xff/zombie_buddy/Agent.java - Mod loader
java/src/main/java/me/zed_0xff/zombie_buddy/Loader.java - Mod approval
java/src/main/java/me/zed_0xff/zombie_buddy/ModApprovalsStore.java - Approval frontends
java/src/main/java/me/zed_0xff/zombie_buddy/frontend - Author trust
java/src/main/java/me/zed_0xff/zombie_buddy/KnownAuthors.java
Runtime patching
- Patch annotations
java/src/main/java/me/zed_0xff/zombie_buddy/annotations/Patch.java - Patch engine
java/src/main/java/me/zed_0xff/zombie_buddy/PatchEngine.java - Patch transformer
java/src/main/java/me/zed_0xff/zombie_buddy/PatchTransformer.java - Transform pipeline
java/src/main/java/me/zed_0xff/zombie_buddy/transformers/Pipeline.java - Class context
java/src/main/java/me/zed_0xff/zombie_buddy/transformers/JarContext.java
Lua integration
- Lua exposure
java/src/main/java/me/zed_0xff/zombie_buddy/Exposer.java - Lua API
java/src/main/java/me/zed_0xff/zombie_buddy/ZombieBuddy.java - Experimental HTTP
java/src/main/java/me/zed_0xff/zombie_buddy/patches/experimental/HttpServer.java - Lua request handler
java/src/main/java/me/zed_0xff/zombie_buddy/patches/experimental/http/LuaHandler.java
Support capabilities
- Logging
java/src/main/java/me/zed_0xff/zombie_buddy/Logger.java - JAR inspection
java/src/main/java/me/zed_0xff/zombie_buddy/jardump/Main.java - Windows installer
installer/installer.go
Other components
- Modder
- Project Zomboid
Connections 17
- Modder → Patch annotations: declares patches
README.md - Java agent → Mod loader: loads mods
README.md - Mod loader → Mod approval: checks trust
- Mod approval → Approval frontends: prompts user
- Author trust → Mod approval: informs trust
- Mod loader → Patch engine: discovers patches
README.md - Patch engine → Patch annotations: interprets annotations
java/src/main/java/me/zed_0xff/zombie_buddy/PatchEngine.java - Patch engine → Patch transformer: installs patches
java/src/main/java/me/zed_0xff/zombie_buddy/PatchEngine.java - Patch transformer → Project Zomboid: transforms classes
README.md - Transform pipeline → Class context: uses class context
java/src/main/java/me/zed_0xff/zombie_buddy/transformers/Pipeline.java - Modder → Lua exposure: exposes Java
README.md - Lua exposure → Lua API: provides Lua API
java/src/main/java/me/zed_0xff/zombie_buddy/ZombieBuddy.java - Experimental HTTP → Lua request handler: routes requests
java/src/main/java/me/zed_0xff/zombie_buddy/patches/experimental/HttpServer.java - Lua request handler → Project Zomboid: executes Lua
java/src/main/java/me/zed_0xff/zombie_buddy/patches/experimental/http/LuaHandler.java - Java agent → Logging: configures verbosity
java/src/main/java/me/zed_0xff/zombie_buddy/Agent.java - Modder → JAR inspection: inspects bytecode
java/src/main/java/me/zed_0xff/zombie_buddy/jardump/Main.java - Modder → Windows installer: installs on Windows
README.md