NapNodes

← Project Zomboid guides

Project Zomboid · updated 25 October 2026

Kicked by Anti-Cheat in Project Zomboid: What Triggered It and How to Fix It

Since 42.20, Project Zomboid has its own multiplayer anti-cheat again, and sometimes it kicks (or bans) people who did nothing wrong: almost always because of a mod that moves the character, touches the inventory or the XP in a way the game doesn't expect. You don't need to switch it all off. The server's .ini has one setting per check and a number that decides what happens when it fires; with that you find which one it is, set it to “log only” and look for the mod.

Why it kicks players who aren't cheating

The anti-cheat compares what each player reports with what the server thinks is possible: how fast they run, who they hit and from where, whether they walk through walls, how much XP they gain, what they do in safehouses. 42.20 switched it back on, rebuilt, and 42.21 added checks (also against safehouse exploits), so a server that was fine can start kicking people after an update.

False positives mostly come from mods: one that adds a sprint or a “dash” (speed), vehicle and physics mods, mods that sort or move the inventory all at once, or mods that hand out XP on their own. Heavy lag too: if a player is rubber-banding, the server may see an impossible movement. Until you know which one it is, it's no reason to take the anti-cheat away from the whole server.

Rather not set it up yourself? Project Zomboid servers from €12 a month, no contract and a full refund within 72 hours. Or create a free Project Zomboid server, no card needed.

The AntiCheat settings in the .ini and what each number means

In Build 42 each check is a line in the server's .ini (<name>.ini, in the Server folder; servertest.ini if nobody changed it) and takes a number: 1 bans the player, 2 kicks them (they can join again), 3 only writes it to the log and warns admins, without kicking anyone, and 4 turns that check off. This is how they come on a freshly created 42.21 server: all at 2, except walking through walls and malformed packets, which come at 4.

What each one watches: AntiCheatSpeed, character speed; AntiCheatNoClip, walking through walls; AntiCheatHit, hits; AntiCheatXP, experience; AntiCheatSafeHouse, safehouses; AntiCheatSafety, the PvP safety system; AntiCheatPermission, that nobody does admin things without being one; AntiCheatPlayer, the player's state; AntiCheatChecksum, that files match; and AntiCheatPacketException, malformed network packets.

servertest.ini (defaults on 42.21)
AntiCheatSafety=2
AntiCheatSpeed=2
AntiCheatNoClip=4
AntiCheatHit=2
AntiCheatPacketException=4
AntiCheatPermission=2
AntiCheatXP=2
AntiCheatSafeHouse=2
AntiCheatPlayer=2
AntiCheatChecksum=2

Finding out which one fired

Before you change anything, find out which one it is. When the anti-cheat kicks someone, the server logs it in its console, and the line usually says which check fired; it's also kept in server-console.txt, in the Zomboid folder of the user running the server. Search for “anticheat” or the player's name right at the time they were kicked.

Also ask what they were doing: if it happened while sprinting, getting into a car, sorting their backpack or levelling up, you have the check and very nearly the mod. If it kicks everyone at once when they join, it's usually not the anti-cheat but the files or the version (see below).

Fixing it without leaving the door open

  1. Stop the server and make a copy

    With the server stopped (the game rewrites the .ini when it shuts down), copy the .ini just in case.

  2. Set only that one to 3

    Change the check that fires to 3, for example AntiCheatSpeed=3, and leave the rest as they were. That way nobody else gets kicked, but it's still logged and admins see it.

  3. Start it and watch the log

    Play normally for a while. If the warnings come from just one player that nobody else triggers, or with advantages that don't add up, it may really be cheating: that's what the commands to kick and ban are for.

  4. Find the mod

    If the warnings come from everyone doing the same thing (sprinting, driving, sorting), it's a mod. Check its Workshop page to see if it's for Build 42 and whether its author mentions the anti-cheat; remove it or find another one (how to add and remove mods).

  5. Put it back to 2 when you can

    Once the mod is updated or you replace it, set the check back to 2. Setting it to 4 only makes sense if the server is private, with a password or whitelist (how to lock it to your group): on a public one, removing the anti-cheat is an invitation to cheaters.

Other kicks that aren't the anti-cheat

DoLuaChecksum (on by default) kicks anyone whose game or mod files differ from the server's. If it kicks everyone when they join, that's usually it: a mod that was updated on the Workshop and the server hasn't caught up, or the other way round, or a player on another version of the game. Restart the server so it downloads the mods and make sure everyone is on the same version (updating the server and the players).

PingLimit kicks anyone above that ping in milliseconds; it comes at 0, which turns it off. MaxPacketsPerSecond is how many packets per second the server handles from each player (300 by default, from 100 to 1000): if a mod sends a lot, raise it a little before touching the anti-cheat. SteamVAC is Steam's anti-cheat, separate from all this: leave it on.

If nobody manages to join at all, it isn't a kick: why you can't join your server.

If a guide talks about “AntiCheatProtectionType”

That's Build 41. There the anti-cheat was a score of numbered AntiCheatProtectionType lines, each set to true or false, and lots of guides and forums tell you to turn off “type 12” or “type 21”. In Build 42 those lines no longer exist (they aren't in a 42.21 server's .ini): they're the named settings above, with their number from 1 to 4. If your server runs on the legacy41 branch, then yes, it's those (Build 42 or 41).

With NapNodes

You don't need to open the .ini: in the panel's “Settings” they're all in the “Anti-cheat and logs” block, and the search box also finds them by their name in the file (type “AntiCheatSpeed” or “anticheat”). They save on their own and apply when you click “Restart”. In the “Console” you see live why someone was kicked.

Mods are added and removed in the “Mods” tab, which warns you about the ones that are Build 41 only. If you can't find what's firing, open a ticket in “Help” with the time and the player's name.

Frequently asked questions

What do the AntiCheat numbers mean in Project Zomboid?

In Build 42, 1 bans the player, 2 kicks them, 3 only writes it to the log and warns admins, and 4 turns that check off. By default almost all of them are at 2.

How do I turn off Project Zomboid's anti-cheat?

By setting the AntiCheat lines in the server's .ini to 4, with the server stopped. Better not to do it with all of them: set only the one that fires to 3, which stops kicking anyone but still logs it.

Why does the anti-cheat kick me when I sprint or drive?

Almost always because of a movement or vehicle mod doing something the game doesn't expect, or because of heavy lag. Set AntiCheatSpeed to 3 while you look for the mod.

Does AntiCheatProtectionType12 work in Build 42?

No: the AntiCheatProtectionType lines were Build 41. In 42 they're named settings (AntiCheatSpeed, AntiCheatHit…) that take 1 to 4.

It kicks everyone when they join. Is it the anti-cheat?

Usually not: it's usually DoLuaChecksum, because some mod or the game version doesn't match between the server and the players. Restart the server so it downloads the mods and check that you're all on the same version.

Shall we set it up for you?

Project Zomboid servers from €12 a month, never oversold: your RAM is yours alone. And if you'd rather start without paying, there's a free Project Zomboid server, no card needed.

Not sure whether your server is online? Check it in a second with the Project Zomboid server status checker: players, version and password, free.

Keep reading

All Project Zomboid guides, sorted →