You need two things: the companion app below, which installs the game mod and forwards your stats while you play, and the Twitch extension on your channel so viewers can see them.
Streaming yourself? Download it
One program. It installs the game mod, connects your Twitch account, and forwards your stats while you play.
Windows 86.0 MB · PZStreamStats-v0.5.42.exe
Linux / Steam Deck 39.9 MB · PZStreamStats-v0.5.42-linux.run
Game mod only 18 KB · PZStreamStats-mod-v0.5.42.zip
The app installs the mod for you — this is only for
updating the mod by hand. The mod changes more often than the app, so a
mod-side fix does not always need the full download. Extract into
Zomboid/mods/ and reload your save.
Running it: two ways, pick one
1. Start it yourself, before the game. Run the program, leave its window open, then launch Project Zomboid. That is all it needs — it will pick up your save as soon as you load one. Closing the window stops the stats.
2. Let Steam start it for you. If you would rather not remember, put this in Project Zomboid’s Properties → General → Launch Options:
"<path to the program>" --wrap %command%
Steam replaces %command% with the real game
command, so the program starts with the game and stops when you quit
— the same approach the Skyrim script extender uses. It works
through Proton on the Steam Deck. Keep any launch options you already
have by putting them after %command%, like
… --wrap %command% -debug.
Either way, pair once by running the program on its own first, and enable the mod on Project Zomboid’s Mods screen before loading your save.
Steam Deck & Linux notes
The .run file is an installer — run it
once from a terminal in Desktop Mode:
chmod +x PZStreamStats-v0.5.42-linux.run
./PZStreamStats-v0.5.42-linux.run
It installs ~/.local/bin/pzstreamstats, which
is the program you actually run from then on. Everything stays in your
home directory — nothing is written to the system, which on SteamOS
is read-only and is replaced by every system update.
Game Mode runs no desktop session, so if you want it there, add it to Steam as a non-Steam game or use the launch-option method above.
Verify your download
Neither build is code-signed, so Windows will warn about an unknown publisher. Check the hash first:
certutil -hashfile PZStreamStats-v0.5.42.exe SHA256
sha256sum PZStreamStats-v0.5.42-linux.run
Windowsdc059126fa07864cd217a0e9b5f24fcf7ce768380afcf6bdf465b664cbd23b4b
Linux379439559392b087eee8e1434d9d9dfcff9d2d8b9fa387151a81bb8b1f8e77c2
Mod3d08f0329f54ed7af5dbab4a2ff0384951b859888ae3bf8833b5d94f32f8ccb1
MD5 is also published at /download/MD5SUMS, but prefer SHA-256: MD5 is broken against a deliberate forgery, so it catches accidental corruption rather than tampering.
Full list: /download/SHA256SUMS
The Twitch extension
Not published yet — it is in review with Twitch. When it clears, this is where the install link will be, and adding it to your channel will be a two-click job from the Twitch extension directory.
Until then the companion app still works: your status
page at /channel/<your channel> is live as soon as you
pair and start playing, and you can put that straight into a browser
source in OBS.
Order of operations
- Run the app once on its own and pair it with your Twitch account. This only has to happen a single time.
- Enable the mod on Project Zomboid’s Mods screen before loading your save. The game only loads mods at save load, so enabling it mid-session does nothing until you reload.
- Play. Leave the app running, or use the Steam launch option above so it starts and stops with the game.
How to upgrade
The app carries the mod inside it. Downloading the app again is the upgrade — there is nothing to copy across by hand.
- Download and run the app again. It replaces the mod for you and tells you it did, in the form Mod updated 0.5.30 → 0.5.37.
- Go back to the main menu and load your save. Project Zomboid only reads mods when a save loads. Updating while you are already playing changes nothing until you reload — this is far and away the most common reason an update looks like it did not take.
- Check the version. Your stats page shows which mod version the stream is running, next to the time of the last update. If it still shows the old one, the new mod has not loaded yet.
Updating the mod on its own? Update the app as well. Apps before 0.5.37 put their own copy of the mod back every time they start, so a hand-updated mod quietly undid itself on the next launch while appearing to have worked. From 0.5.37 the app leaves a newer mod alone and tells you to update the app instead.
Revision history
What changed, and what each change needs from you: a mod change needs a save reload, an app change needs the download above, an extension change is the broadcaster's to update on Twitch, and a site change needs nothing.
0.5.42
- mod — fire kills are now remembered per character properly. A new survivor could inherit the previous one's total, because the game still reported the dead character's name for the first few seconds. Counts now follow the character themselves, and correct themselves if the game hands over the wrong identity at first.
- site — being over capacity is listed once instead of twice. It was appearing both as "Overloaded" and as the game's own "Weighed Down", and counted as two problems when it is one.
- extension — the readout on your stream now also shows the equipped weapon with its condition, carry weight, and protection per body part. Any card can be switched off by a viewer who does not want it, and the cards arrange themselves into however many columns fit the size you have set.
- extension — a second place to put it: a see-through layer across the whole stream, instead of the panel docked on the right. Twitch does not allow the docked panel to be transparent, so this is the only placement that can be. Same cards either way; you pick one when you activate the extension.
- extension — cards can be dragged anywhere again. Moving one was shoving the others on top of each other until they were all in one pile.
- extension — when nothing is being reported, a small chip says so instead of darkening the whole box over your video. "No stream detected" means the game is not reporting, which happens while you are alt-tabbed or on a break — your stream should not get a grey rectangle over it for that.
- site — the protection view now says when a streamer's mod is too old to report it, and lists the clothing it can still see. It was stating that nothing worn was protective, which is a different thing from not being told, and was wrong about survivors in full armour.
- site — clicking a body region keeps the list on screen and shows the detail underneath, rather than replacing it. The percentage columns are labelled, so the number beside a limb is not read as damage.
0.5.41
- mod, site — protection is now shown per body part, as a fourth tab on the body view. The figures are the game's own, so they match its Protection screen rather than being worked out separately. The mod has to send them, so update the mod and reload your save or the tab stays empty.
- site — a dead survivor now reads "Deceased" instead of a verdict worked out from their health. One restored to full health after dying was being described as "Doing fine".
- mod — the live burning count scans less often when there are thousands of zombies loaded, so a large horde costs less work. The number can lag by a few seconds at that size, which is well inside a normal stream delay.
0.5.40
- mod — the file that remembers fire kills per character is now capped. It keeps the 64 most recently played characters and nothing more, so it cannot grow without limit on your disk.
0.5.39
- mod — fire kills are now counted. The game does not record them at all — a zombie that burns to death never reaches its kill counter — so a survivor who fights with fire was being credited with almost nothing.
- mod — a live count of how many zombies are currently alight, shown while anything is burning.
- site — both appear under the kill count, and in the panel and component. They are listed separately rather than added to the total, because the game itself has never counted them.
0.5.38
- app — pairing no longer ends with a red error. It was finishing successfully and then throwing as the browser asked for the page icon, so a run that had actually worked looked like it had failed.
- app — the forwarder now runs as its own process. A fault in it restarts quietly instead of taking the game down with it.
- app — tells you when a newer version is out, so a stale build stops being something you find out about from wrong numbers on stream.
- extension — the panel no longer scrolls sideways. Skill levels and percentages were being clipped off the right edge once the scrollbar appeared.
0.5.37
- app — the app no longer replaces a newer mod with the older one it carries. If you update the mod by hand but keep an old app, the old app used to quietly put its own copy back on every launch — so the update looked like it had worked while the game kept running the old code. It now leaves the newer mod alone and tells you to update the app instead.
0.5.36
- app — launching through Steam could report "Not paired yet" when you were in fact paired, leaving the channel page empty with nothing to explain it. If it genuinely cannot find your pairing it now tells you every place it looked.
- mod — carry weight is reported to two decimals, so it reads the same as the number on your own inventory screen instead of differing in the last digit.
0.5.35
- site — the stats page now shows which mod version a stream is running, next to the time of the last update. A number that looks wrong is usually an out-of-date mod, and this makes that answerable at a glance.
0.5.34
- mod — the mod now reports its own version, so it is possible to tell at a glance whether a streamer is running the current build.
- mod — the worn-items list no longer includes body hair, beard stubble, bandage graphics, belts or watches. It was 13 of 23 entries on one survivor, and it was crowding out room the stats actually need.
0.5.33
- site — release notes rewritten for readers rather than for whoever wrote the code.
0.5.32
- site — the game mod is now its own small download, so a mod fix no longer means fetching the whole app.
- site — this revision history.
0.5.30
- mod — carry weight was wrong. It added up every item at full weight and ignored the reduction bags give their contents, so viewers saw "Overloaded" almost constantly while the player was carrying normally. It now matches the number on your own inventory screen.
- mod — if sandbox has carry limits switched off, carry weight is hidden rather than reported as an overload.
0.5.25 – 0.5.29
- extension — new video component: a see-through panel that sits on your stream. Your footage shows through everywhere except the readout itself, and each block — status, injuries, moodles, kills — can be dragged where you want it. Viewers can rearrange their own copy, and reset it back.
- extension — attribution moved off the video and onto the config screen, so it no longer takes up space on your stream.
0.5.22 – 0.5.24
- extension — the panel now leads with health and the worst-hit limbs instead of burying them under a list of needs reading 0%. Injuries are capped at the four worst, with a count of the rest.
- site —
/previewshows the extension at real size over a simulated stream, so you can see what viewers get before installing anything.
0.5.23
- app — fixed a packaging fault that would have broken the mod install on Steam Deck and Linux, and blanked every moodle icon in the extension.
0.5.13 – 0.5.21
- app — if your Twitch pairing stops being accepted, the app now says so clearly and tells you how to fix it, instead of going quiet.
- site — wetness is now correct for both skin and clothing, and the body view shades whichever is worse. Washing your clothes at a sink shows up.
- mod — clothing wetness is reported per body part.
- extension — the "Nasty Cold" moodle uses the game's own icon.
- site — body parts show their real names immediately instead of "Part 12".
- site — a limb hovering at 99% no longer flickers in and out of the list.
0.5.6 – 0.5.12
- site — the front page leads with the channel lookup. Downloads moved to
/install, and/aboutexplains the readout with a live sample survivor.
0.5.5 and earlier
Not itemised. Development predates this file.