When installing popular Steam Workshop community maps (such as Raven Creek, Bedford Falls, Grapeseed, or Blackwood), Project Zomboid server administrators frequently encounter a perplexing problem: the mod downloads cleanly, terrain chunks render properly in-game, and players can drive to the new city from Muldraugh, yet the custom territory never appears in the initial spawn location selection menu during character creation or post-death respawn.
In this practical guide, we examine the structural separation between world chunk rendering and spawn selection menus in Project Zomboid, locate spawnpoints.lua files inside Workshop mods, and integrate them with the server's spawnregions.lua configuration.
Separating World Chunk Loading from Spawn Menu Definitions#
In Project Zomboid, world geography loading and the client-side spawn menu are governed by two distinct routines:
- World Cell Streaming: Managed by the
Map=directive inside~/Zomboid/Server/<ServerName>.ini. For example,Map=RavenCreek;Muldraugh, KYinstructs the engine to load modded structures over vanilla wilderness cells. - Spawn Menu Picker: Controlled exclusively by a separate Lua configuration script at
~/Zomboid/Server/<ServerName>_spawnregions.lua.
Inspect your active map loading string in the .ini configuration:
grep -E "^Map=" ~/Zomboid/Server/servertest.ini
If your configuration lists Map=RavenCreek;Muldraugh, KY, the world terrain loads, but because spawnregions.lua defaults only to vanilla towns (Rosewood, West Point, Muldraugh, Riverside), the engine displays no spawn selector entry for the modded territory.
Locating spawnpoints.lua Files Inside Workshop Mods#
Every well-authored community map includes a bundled spawnpoints.lua file specifying interior coordinates (such as bedrooms, hotels, and apartments) for initial player placement.
Locate the file within your server mod cache:
find ~/Zomboid/mods/ ~/Zomboid/SteamApps/workshop/content/108600/ \
-type f -name "spawnpoints.lua" 2>/dev/null
The output returns paths such as: .../Raven Creek/media/maps/Raven Creek/spawnpoints.lua.
The engine expects the internal relative path: media/maps/Raven Creek/spawnpoints.lua.
Configuring the spawnregions.lua Table for the Server#
Open ~/Zomboid/Server/servertest_spawnregions.lua (if the file is absent, create it based on the standard table template):
cat << 'EOF' > ~/Zomboid/Server/servertest_spawnregions.lua
function SpawnRegions()
return {
{ name = "Muldraugh, KY", file = "media/maps/Muldraugh, KY/spawnpoints.lua" },
{ name = "West Point, KY", file = "media/maps/West Point, KY/spawnpoints.lua" },
{ name = "Rosewood, KY", file = "media/maps/Rosewood, KY/spawnpoints.lua" },
{ name = "Riverside, KY", file = "media/maps/Riverside, KY/spawnpoints.lua" },
{ name = "Raven Creek", file = "media/maps/Raven Creek/spawnpoints.lua" },
}
end
EOF
cat ~/Zomboid/Server/servertest_spawnregions.lua
The name parameter specifies the display label rendered in the client spawn picker, while file points to the coordinate script.
Applying Configuration and Testing Character Creation#
Ensure SpawnRegionsFile is not overridden in the main .ini file, and restart the server daemon:
sudo systemctl restart zomboid && sudo journalctl -u zomboid -n 25 --no-pager
Join the server with a new character or initiate a suicide on a test survivor profile: the spawn selection screen will now present «Raven Creek», allowing players to spawn directly into the custom map's interior rooms.
If you are looking to run complex Project Zomboid setups featuring multiple Workshop maps, automated spawn point resolution, and safehouse zone protection, high-performance Project Zomboid dedicated server hosting provides an intuitive control panel for seamless mod and spawn management.




