{#- Project Zomboid server config -- Sophie 42 preset. Vendored verbatim from https://github.com/GerDeathstar/sophie-pz ("Sophie 42 Files.zip", uploaded 2026-07-31 == the `b42` release tag), file Server/sophie-server-42-1.ini. Only the keys this deployment actually owns are templated -- credentials, RCON, Discord, backup cadence, and the mod lists. Every gameplay setting (PVP, safety system, safehouses, sleep, MaxPlayers, PauseEmpty, ResetID, the welcome message) is a literal, and was the preset author's value until the live-config sync below. Seeded once, then left alone: the deploy task uses force=false so the server and admins can hand-edit this file between world regenerations. Re-push it deliberately with -e zomboid_config_force=true. Synced from the running debbzoid server on 2026-08-31, so a deliberate force-push cannot silently revert what the admins set in-game. Eight keys had drifted from the preset and now carry the live values: PlayerSafehouse false -> true SafehouseAllowNonResidential false -> true (the diner/gas-station case) SafehouseAllowRespawn false -> true SafehouseAllowLoot true -> false SafehouseAllowFire true -> false TrashDeleteAll false -> true MapRemotePlayerVisibility 1 -> 4 ResetID 6953472 -> 826046 ResetID is in that list on purpose. It is the world's soft-reset token: if the file's value ever differs from the one the live world was created with, every connected client is told to roll a new character. Carrying the live value means a force-push is a no-op instead of a server-wide wipe prompt. -#} {% set rename_map = {} %} {% for r in zomboid_mods_renamed %}{% set _ = rename_map.update({r.old: r.new}) %}{% endfor %} {% set resolved_mod_ids = [] %} {% for m in zomboid_sophie_mod_ids %}{% set _ = resolved_mod_ids.append(rename_map.get(m, m)) %}{% endfor %} {% set excluded_mod_ids = zomboid_mods_excluded | map(attribute='mod_id') | list %} {% set excluded_workshop_ids = zomboid_mods_excluded | map(attribute='workshop_id') | list %} # Players can hurt and kill other players PVP=true # PVP is logged to admin chat PVPLogToolChat=true # PVP is logged to file PVPLogToolFile=true # Game time stops when there are no players online PauseEmpty=true # Toggles global chat on or off. GlobalChat=true ChatStreams=s,r,a,w,y,sh,f,all # Clients may join without already having an account in the whitelist. If set to false, administrators must manually create username/password combos. Open=true # The first welcome message visible in the chat panel. This will be displayed immediately after player login. you can use RGB colours to chance the colour of the welcome message. You can also use < LINE>, without the space, to create a separate lines within your text. Use: \ This message will show up red! ServerWelcomeMessage=Welcome to Project Zomboid Multiplayer! To interact with the Chat panel: press Tab, T, or Enter. The Tab key will change the target stream of the message. Global Streams: /all Local Streams: /say, /yell Special Steams: /whisper, /safehouse, /faction. Press the Up arrow to cycle through your message history. Click the Gear icon to customize chat. Happy surviving! # Display usernames above player's heads in-game. DisplayUserName=true # Display first & last name above player's heads. ShowFirstAndLastName=false UsernameDisguises=false HideDisguisedUserName=false SwitchZombiesOwnershipEachUpdate=false # Force every new player to spawn at these set x,y,z world coordinates. Find desired coordinates at map.projectzomboid.com. (Ignored when 0,0,0) SpawnPoint=0,0,0 # Players can enter and leave PVP on an individual basis. A player can only hurt another player when at least one of them is in PVP mode - as shown by the unobscured skull and crossbones on the left of the screen. When SafetySystem=false, players are free to hurt each other at any time if PVP is enabled. SafetySystem=true # Display a skull icon over the head of players who have entered PVP mode ShowSafety=true # The time it takes for a player to enter and leave PVP mode Min: 0 Max: 1000 Default: 2 SafetyToggleTimer=2 # The delay before a player can enter or leave PVP mode again, having recently done so Min: 0 Max: 1000 Default: 3 SafetyCooldownTimer=3 # Min: 0 Max: 60 Default: 60 SafetyDisconnectDelay=60 # Item types new players spawn with. Separate multiple item types with commas. Example: Base.Axe,Base.Bag_BigHikingBag SpawnItems= # Default starting port for player data. If UDP, this is this one of two ports used. Min: 0 Max: 65535 Default: 16261 DefaultPort=16261 # Min: 0 Max: 65535 Default: 16262 UDPPort=16262 # Reset ID determines if the server has undergone a soft-reset. If this number does match the client, the client must create a new character. Used in conjunction with PlayerServerID. It is strongly advised that you backup these IDs somewhere Min: 0 Max: 2147483647 Default: 985847558 ResetID=826046 # Enter the mod loading ID here. It can be found in \Steam\steamapps\workshop\modID\mods\modName\info.txt Mods={{ resolved_mod_ids | reject('in', excluded_mod_ids) | join(';') }} # Enter the foldername of the mod found in \Steam\steamapps\workshop\modID\mods\modName\media\maps\ Map={{ zomboid_map }} # Kick clients whose game files don't match the server's. DoLuaChecksum=false DenyLoginOnOverloadedServer=true # Shows the server on the in-game browser. (Note: Steam-enabled servers are always visible in the Steam server browser) Public=false # Name of the server displayed in the in-game browser and, if applicable, the Steam browser PublicName={{ zomboid_public_name }} # Description displayed in the in-game public server browser. Typing will create a new line in your description PublicDescription= # Maximum number of players that can be on the server at one time. This excludes admins. # WARNING: Server player counts above 32 will potentially result in poor map streaming and desync. Please advance with caution. Min: 1 Max: 100 Default: 32 MaxPlayers=32 # Ping limit, in milliseconds, before a player is kicked from the server. (Set to 0 to disable) Min: 0 Max: 2147483647 Default: 0 PingLimit=0 # Items will not respawn in buildings that players have claimed as a safehouse SafehousePreventsLootRespawn=true # Remove player accounts from the whitelist after death. This prevents players creating a new character after death on Open=false servers DropOffWhiteListAfterDeath=false # All forms of fire are disabled - except for campfires NoFire=false # If checked, every time a player dies a global message will be displayed in the chat AnnounceDeath=true # If checked, every time an animal dies a global message will be displayed in the chat AnnounceAnimalDeath=false # Loaded parts of the map are saved after this set number of real-world minutes have passed. (The map is usually saved only after clients leave a loaded area) Min: 0 Max: 2147483647 Default: 0 SaveWorldEveryMinutes=10 # Both admins and players can claim safehouses PlayerSafehouse=true # Only admins can claim safehouses AdminSafehouse=false # Allow non-members to enter a safehouse without being invited SafehouseAllowTrepass=true # Allow fire to damage safehouses SafehouseAllowFire=false # Allow non-members to take items from safehouses SafehouseAllowLoot=false # Players will respawn in a safehouse that they were a member of before they died SafehouseAllowRespawn=true # Players must have survived this number of in-game days before they are allowed to claim a safehouse Min: 0 Max: 2147483647 Default: 0 SafehouseDaySurvivedToClaim=0 # Players are automatically removed from a safehouse they have not visited for this many real-world hours Min: 0 Max: 2147483647 Default: 144 SafeHouseRemovalTime=144 # Governs whether players can claim non-residential buildings. SafehouseAllowNonResidential=true SafehouseDisableDisguises=true # Min: 0 Max: 2147483647 Default: 20000 MaxSafezoneSize=20000 # Allow players to destroy world objects with sledgehammers AllowDestructionBySledgehammer=true # Allow players to destroy world objects only in their safehouse (require AllowDestructionBySledgehammer to true). SledgehammerOnlyInSafehouse=false War=false # Time in seconds before the war starts. Min: 60 Max: 2147483647 Default: 600 WarStartDelay=600 # War duration in seconds. Min: 60 Max: 2147483647 Default: 3600 WarDuration=3600 # Safehouse hit points limit. Min: 0 Max: 2147483647 Default: 3 WarSafehouseHitPoints=3 # ServerPlayerID determines if a character is from another server, or single player. This value may be changed by soft resets. If this number does match the client, the client must create a new character. This is used in conjunction with ResetID. It is strongly advised that you backup these IDs somewhere ServerPlayerID= # The port for the RCON (Remote Console) Min: 0 Max: 65535 Default: 27015 RCONPort={{ zomboid_rcon_port }} # RCON password (Pick a strong password) RCONPassword={{ zomboid_admin_password }} # Enables global text chat integration with a Discord channel DiscordEnable=true # Discord bot access token DiscordToken={{ zomboid_discord_token }} # The Discord chat channel name DiscordChatChannel={{ zomboid_discord_chat_channel }} # The Discord logs channel name DiscordLogChannel= # The Discord commands channel name DiscordCommandChannel= # The Slack incoming webhook URL WebhookAddress= # Clients must know this password to join the server. (Ignored when hosting a server via the Host button) Password={{ zomboid_password }} # Limits the number of different accounts a single Steam user may create on this server. Ignored when using the Hosts button. Min: 0 Max: 2147483647 Default: 0 MaxAccountsPerUser=0 # Allow co-op/splitscreen players AllowCoop=true # Players are allowed to sleep when their survivor becomes tired, but they do not NEED to sleep SleepAllowed=false # Players get tired and need to sleep. (Ignored if SleepAllowed=false) SleepNeeded=false # WIP: Activating this setting may cause visual desynchronization of player positions. KnockedDownAllowed=false SneakModeHideFromOtherPlayers=true UltraSpeedDoesnotAffectToAnimals=false # List Workshop Mod IDs for the server to download. Each must be separated by a semicolon. Example: WorkshopItems=514427485;513111049 WorkshopItems={{ zomboid_sophie_workshop_items | reject('in', excluded_workshop_ids) | join(';') }} # Show Steam usernames and avatars in the Players list. SteamScoreboard=false # Enable the Steam VAC system SteamVAC=true # Attempt to configure a UPnP-enabled internet gateway to automatically setup port forwarding rules. The server will fall back to default ports if this fails UPnP=true # VOIP is enabled when checked VoiceEnable=true # The minimum tile distance over which VOIP sounds can be heard. Min: 0.00 Max: 100000.00 Default: 10.00 VoiceMinDistance=10.0 # The maximum tile distance over which VOIP sounds can be heard. Min: 0.00 Max: 100000.00 Default: 100.00 VoiceMaxDistance=100.0 # Toggle directional audio for VOIP Voice3D=true # Min: 10.00 Max: 150.00 Default: 70.00 SpeedLimit=70.0 LoginQueueEnabled=false # Min: 20 Max: 1200 Default: 60 LoginQueueConnectTimeout=60 # Set the IP from which the server is broadcast. This is for network configurations with multiple IP addresses, such as server farms server_browser_announced_ip= # Players can respawn in-game at the coordinates where they died PlayerRespawnWithSelf=false # Players can respawn in-game at a split screen / Remote Play player's location PlayerRespawnWithOther=false # Governs how fast time passes while players sleep. Value multiplies the speed of the time that passes during sleeping. Min: 1.00 Max: 100.00 Default: 40.00 FastForwardMultiplier=40.0 # Safehouse acts like a normal house if an owner of the safehouse is connected (so secure when the owner is offline) DisableSafehouseWhenOwnerConnected=false # Players can create factions when true Faction=true # Players must survive this number of in-game days before being allowed to create a faction Min: 0 Max: 2147483647 Default: 0 FactionDaySurvivedToCreate=0 # Number of players required as faction members before the faction owner can create a group tag Min: 1 Max: 2147483647 Default: 1 FactionPlayersRequiredForTag=1 # Disables radio transmissions from players with an access level DisableRadioStaff=false # Disables radio transmissions from players with 'admin' access level DisableRadioAdmin=true # Disables radio transmissions from players with 'gm' access level DisableRadioGM=true # Disables radio transmissions from players with 'overseer' access level DisableRadioOverseer=false # Disables radio transmissions from players with 'moderator' access level DisableRadioModerator=false # Disables radio transmissions from invisible players DisableRadioInvisible=true # Semicolon-separated list of commands that will not be written to the cmd.txt server log. For example: -vehicle. Inputting * means do NOT write any vehicle command. Inputting: +vehicle.installPart means DO write that command ClientCommandFilter=-vehicle.*;+vehicle.damageWindow;+vehicle.fixPart;+vehicle.installPart;+vehicle.uninstallPart # Semicolon-separated list of actions that will be written to the ClientActionLogs.txt server log. ClientActionLogs=ISEnterVehicle;ISExitVehicle;ISTakeEngineParts; # Track changes in player perk levels in PerkLog.txt server log PerkLogs=true # Maximum number of items that can be placed in a container. Zero means there is no limit. (PLEASE NOTE: This includes individual small items such as nails. A limit of 50 will mean only 50 nails can be stored.) Min: 0 Max: 9000 Default: 0 ItemNumbersLimitPerContainer=0 # Number of days before old blood splats are removed. # Removal happens when map chunks are loaded. # Zero means they will never disappear Min: 0 Max: 365 Default: 0 BloodSplatLifespanDays=0 # Allow use of non-ASCII (cyrillic etc) characters in usernames AllowNonAsciiUsername=false BanKickGlobalSound=true # If enabled, when HoursForCorpseRemoval triggers, it will also remove player's corpses from the ground. RemovePlayerCorpsesOnCorpseRemoval=false # If true, player can use the "delete all" button on bins. TrashDeleteAll=true # If true, player can hit again when struck by another player. PVPMeleeWhileHitReaction=false # If true, players will have to mouse over someone to see their display name. MouseOverToSeeDisplayName=true # If true, automatically hide the player you can't see (like zombies). HidePlayersBehindYou=true # Damage multiplier for PVP melee attacks. Min: 0.00 Max: 500.00 Default: 30.00 PVPMeleeDamageModifier=30.0 # Damage multiplier for PVP ranged attacks. Min: 0.00 Max: 500.00 Default: 50.00 PVPFirearmDamageModifier=50.0 # Modify the range of zombie attraction to cars. (Lower values can help with lag.) Min: 0.00 Max: 10.00 Default: 0.50 CarEngineAttractionModifier=0.5 # Governs whether players bump (and knock over) other players when running through them. PlayerBumpPlayer=false # Controls display of remote players on the in-game map. 1=Hidden 2=Friends 3=Friends and nearby players 4=Everyone Min: 1 Max: 4 Default: 1 MapRemotePlayerVisibility=4 # Min: 1 Max: 300 Default: 5 BackupsCount=10 BackupsOnStart=true BackupsOnVersionChange=true # Min: 0 Max: 1500 Default: 0 BackupsPeriod=30 # Disables vehicle towing DisableVehicleTowing=false # Disables trailer towing DisableTrailerTowing=false # Disables burnt vehicle towing DisableBurntTowing=false # Path to the file with the list of words to be prohibited. Each word must be on a separate line BadWordListFile= # Path to the file with the list of words that should be allowed, even if they contain bad word. Each word should be on a separate line. GoodWordListFile= # What to do with the sender of a bad word in the chat: 1 - ban, 2 - kick, 3 - record the violation in the database, 4 - mute BadWordPolicy=3 # The symbol or piece of text that will replace the bad word BadWordReplacement=[HIDDEN] # Disables safety system anti-cheat protection. AntiCheatSafety=2 # Disables character speed anti-cheat protection. AntiCheatSpeed=2 # Disables character no-clipping anti-cheat protection. AntiCheatNoClip=4 # Disables character hit anti-cheat protection. AntiCheatHit=2 # Disables packet exception checks anti-cheat protection. AntiCheatPacketException=4 # Disables player permissions anti-cheat protection. AntiCheatPermission=2 # Disables player XP anti-cheat protection. AntiCheatXP=2 # Disables safehouse anti-cheat protection. AntiCheatSafeHouse=2 # Disables player anti-cheat protection. AntiCheatPlayer=2 # Disables checksum anti-cheat protection. AntiCheatChecksum=2 # Sets the multiplayer update period in seconds. Statistics is disabled if value is 0. Min: 0 Max: 10 Default: 1 MultiplayerStatisticsPeriod=1 # Disables scoreboard. DisableScoreboard=false # Hides admins in the player list. HideAdminsInPlayerList=false # Sets the limit for processing network packets from each client on the server. Min: 100 Max: 1000 Default: 300 MaxPacketsPerSecond=300 # Shows player character coordinates in the lower right corner. ShowCoordinates=false # The worldgen seed used to generate the world. # If you want to change this, put a new value in and delete map_worldgen.bin in your save directory. Seed=DMCERZSTKtuzgukR UsePhysicsHitReaction=false # Min: 64 Max: 1024 Default: 200 ChatMessageCharacterLimit=200 # Min: 1 Max: 30 Default: 3 ChatMessageSlowModeTime=3