{"id":3843,"date":"2026-10-27T17:12:52","date_gmt":"2026-10-27T14:12:52","guid":{"rendered":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/"},"modified":"2026-10-27T17:12:52","modified_gmt":"2026-10-27T14:12:52","slug":"vintage-story-server-settings","status":"publish","type":"post","link":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/","title":{"rendered":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained"},"content":{"rendered":"<p><strong>The Vintage Story server config is one file, <code>serverconfig.json<\/code>, in the server&#8217;s data folder.<\/strong> It holds the server name, port, player cap, password, whitelist mode, roles and PvP rules, plus a <code>WorldConfig<\/code> block with the seed and world-generation settings for a new world. Change it by editing the file with the server stopped, or live with <code>\/serverconfig<\/code>. World rules on an existing world change with <code>\/worldconfig<\/code> instead. Here is where the file is, what each setting does and the defaults in 1.22.<\/p>\n<h2 id=\"where-is-the-vintage-story-server-config-file\">Where is the Vintage Story server config file?<\/h2>\n<p>The <code>serverconfig.json<\/code> file sits in the server&#8217;s data folder, next to the <code>Saves<\/code>, <code>Mods<\/code> and <code>Logs<\/code> folders. If you started the server with <code>--dataPath<\/code>, it is in that folder. Otherwise it uses the game&#8217;s normal data folder, so the Vintage Story server config location depends on the OS. The server creates the file with default values the first time it starts.<\/p>\n<table>\n<thead>\n<tr>\n<th>How the server runs<\/th>\n<th>Config location<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Windows, default<\/td>\n<td><code>C:\\Users\\YourName\\AppData\\Roaming\\VintagestoryData\\serverconfig.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>Linux, default<\/td>\n<td><code>~\/.config\/VintagestoryData\/serverconfig.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>Linux with the bundled <code>server.sh<\/code><\/td>\n<td>The script&#8217;s <code>DATAPATH<\/code>, <code>\/var\/vintagestory\/data<\/code> unless you changed it<\/td>\n<\/tr>\n<tr>\n<td>Any server started with <code>--dataPath<\/code><\/td>\n<td>Inside that folder<\/td>\n<\/tr>\n<tr>\n<td>A hosted server<\/td>\n<td>The data folder in your host&#8217;s file manager (on <a href=\"https:\/\/gameteam.io\/vintage-story-server-hosting\">Vintage Story server hosting<\/a>, the panel&#8217;s file manager)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Looking for <code>server.properties<\/code>? That&#8217;s Minecraft. Vintage Story server properties all live in this JSON file. One warning from the file itself: it is also loaded when you start a singleplayer world from the same data folder. That&#8217;s why the <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-dedicated-server-guide\/\">Vintage Story dedicated server guide<\/a> gives the server its own data folder.<\/p>\n<h2 id=\"how-to-change-server-settings-safely\">How to change server settings safely<\/h2>\n<p>There are two safe ways to change Vintage Story server settings. Stop the server, edit <code>serverconfig.json<\/code>, and start it again. Or leave it running and use <code>\/serverconfig<\/code> in the console, which writes the change into the file for you. Don&#8217;t edit the file while the server runs. A single JSON typo stops the server on the next boot.<\/p>\n<ul>\n<li><strong>JSON rules:<\/strong> text in double quotes, a comma after every line except the last in a block, <code>true<\/code>\/<code>false<\/code> without quotes, <code>null<\/code> for empty.<\/li>\n<li><strong>If it breaks:<\/strong> the console says &#8220;Failed to read serverconfig.json. Did you modify it? See server-main.log for the affected line. Will stop the server.&#8221; The log names the line to fix.<\/li>\n<li><strong>Wrong value type with <code>\/serverconfig<\/code>:<\/strong> &#8220;Failed saving config, you are likely suppling an incorrect value type&#8221; means a number went where a true\/false belongs, or the other way round.<\/li>\n<li><strong>From the command line:<\/strong> <code>--setconfig=\"{ MaxClients: 20 }\"<\/code> writes a value and exits, <code>--withconfig<\/code> overrides values for one launch, and <code>--genconfig<\/code> writes a fresh default file. <code>--genconfig<\/code> deletes your existing config, so copy it first.<\/li>\n<\/ul>\n<h2 id=\"server-settings-in-serverconfig-json\">Server settings in serverconfig.json<\/h2>\n<p>These are the server settings most owners change in the Vintage Story server config JSON, with their defaults from a fresh 1.22 file. Names are case-sensitive and must stay exactly as written. Everything not listed can usually stay at its default. The list of matching live commands is in <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-commands\/\">Vintage Story server commands<\/a>.<\/p>\n<table>\n<thead>\n<tr>\n<th>Key<\/th>\n<th>Default<\/th>\n<th>What it does<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>ServerName<\/code><\/td>\n<td>&#8220;Vintage Story Server&#8221;<\/td>\n<td>Name in the public list, 4 to 80 characters<\/td>\n<\/tr>\n<tr>\n<td><code>ServerDescription<\/code><\/td>\n<td>null<\/td>\n<td>Longer text for the public list<\/td>\n<\/tr>\n<tr>\n<td><code>WelcomeMessage<\/code><\/td>\n<td>&#8220;Welcome {0}, may you survive well and prosper&#8221;<\/td>\n<td>Join message; <code>{0}<\/code> is the player name. Use <code>\"\"<\/code> to turn it off, never <code>null<\/code> (clients crash)<\/td>\n<\/tr>\n<tr>\n<td><code>Port<\/code><\/td>\n<td>42420<\/td>\n<td>Port the server listens on<\/td>\n<\/tr>\n<tr>\n<td><code>Ip<\/code><\/td>\n<td>null<\/td>\n<td>Network interface to bind; null means all<\/td>\n<\/tr>\n<tr>\n<td><code>MaxClients<\/code><\/td>\n<td>16<\/td>\n<td>Player cap. More players need more RAM and CPU<\/td>\n<\/tr>\n<tr>\n<td><code>MaxClientsInQueue<\/code><\/td>\n<td>0<\/td>\n<td>How many can wait in a queue when the server is full<\/td>\n<\/tr>\n<tr>\n<td><code>Password<\/code><\/td>\n<td>null<\/td>\n<td>Join password, or null for none<\/td>\n<\/tr>\n<tr>\n<td><code>WhitelistMode<\/code><\/td>\n<td>0<\/td>\n<td>0 = default (on for dedicated servers), 1 = off, 2 = on<\/td>\n<\/tr>\n<tr>\n<td><code>AdvertiseServer<\/code><\/td>\n<td>false<\/td>\n<td>Show the server in the public list<\/td>\n<\/tr>\n<tr>\n<td><code>VerifyPlayerAuth<\/code><\/td>\n<td>true<\/td>\n<td>Checks every player owns the game and is logged in<\/td>\n<\/tr>\n<tr>\n<td><code>AllowPvP<\/code><\/td>\n<td>true<\/td>\n<td>Players can damage each other<\/td>\n<\/tr>\n<tr>\n<td><code>AllowFireSpread<\/code><\/td>\n<td>true<\/td>\n<td>Fire spreads to flammable blocks<\/td>\n<\/tr>\n<tr>\n<td><code>AllowFallingBlocks<\/code><\/td>\n<td>true<\/td>\n<td>Sand and gravel fall<\/td>\n<\/tr>\n<tr>\n<td><code>PassTimeWhenEmpty<\/code><\/td>\n<td>false<\/td>\n<td>Keep the calendar running with nobody online<\/td>\n<\/tr>\n<tr>\n<td><code>MaxChunkRadius<\/code><\/td>\n<td>12<\/td>\n<td>Highest view distance a player may use, in chunks. Higher needs more RAM<\/td>\n<\/tr>\n<tr>\n<td><code>DefaultRoleCode<\/code><\/td>\n<td>&#8220;suplayer&#8221;<\/td>\n<td>Role new players get<\/td>\n<\/tr>\n<tr>\n<td><code>StartupCommands<\/code><\/td>\n<td>null<\/td>\n<td>Commands run on every start, one per line<\/td>\n<\/tr>\n<tr>\n<td><code>KickClientsAfterAfkSeconds<\/code><\/td>\n<td>0<\/td>\n<td>Kick idle players after this long; 0 is off<\/td>\n<\/tr>\n<tr>\n<td><code>ServerLanguage<\/code><\/td>\n<td>&#8220;en&#8221;<\/td>\n<td>Language of server messages<\/td>\n<\/tr>\n<tr>\n<td><code>ModPaths<\/code><\/td>\n<td>&#8220;Mods&#8221; plus the data folder&#8217;s Mods<\/td>\n<td>Where the server looks for mods<\/td>\n<\/tr>\n<tr>\n<td><code>ModIdBlackList<\/code><\/td>\n<td>null<\/td>\n<td>Players running any of these mod IDs can&#8217;t join<\/td>\n<\/tr>\n<tr>\n<td><code>DieBelowDiskSpaceMb<\/code><\/td>\n<td>400<\/td>\n<td>Shuts the server down when free disk space drops this low<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A config for a small private group usually only touches a few lines:<\/p>\n<pre><code>\"ServerName\": \"Riverbend\",\n\"WelcomeMessage\": \"Welcome {0}. Winter is coming.\",\n\"MaxClients\": 8,\n\"Password\": null,\n\"WhitelistMode\": 0,\n\"AllowPvP\": false,\n\"PassTimeWhenEmpty\": false,\n\"StartupCommands\": \"\/op YourName\",<\/code><\/pre>\n<p>If you change <code>MaxClients<\/code> and the server keeps another value, it was started with <code>--maxclients<\/code>, which overrides the file. Hosted servers in &#8220;hosted mode&#8221; lock <code>MaxClients<\/code>, <code>MaxChunkRadius<\/code>, <code>Upnp<\/code> and the tick settings, and the server answers &#8220;Can&#8217;t access this feature, this server is in hosted mode.&#8221;<\/p>\n<h2 id=\"vintage-story-server-whitelist-on-off-and-adding-players\">Vintage Story server whitelist: on, off and adding players<\/h2>\n<p>A Vintage Story dedicated server has its whitelist on by default since 1.20, so only players you add can join. Add them with <code>\/whitelist add Name<\/code>. To turn the whitelist off, set <code>\"WhitelistMode\": 1<\/code> in the file, or run <code>\/serverconfig whitelistmode off<\/code> on a running server. After that, anyone with the address (and the password, if you set one) can join.<\/p>\n<table>\n<thead>\n<tr>\n<th>WhitelistMode<\/th>\n<th>Command<\/th>\n<th>Effect<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0<\/td>\n<td><code>\/serverconfig whitelistmode default<\/code><\/td>\n<td>On for dedicated servers, off for a singleplayer world opened to LAN<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td><code>\/serverconfig whitelistmode off<\/code><\/td>\n<td>Disabled: anyone can join<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td><code>\/serverconfig whitelistmode on<\/code><\/td>\n<td>Always on<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You may still see <code>\"OnlyWhitelisted\"<\/code> in older guides and files. It is obsolete and no longer does anything; <code>WhitelistMode<\/code> is the setting that counts. If you want to disable the whitelist but keep strangers out, add a password, or set <code>DefaultRoleCode<\/code> to <code>suvisitor<\/code> so newcomers can only look and chat until you promote them.<\/p>\n<h2 id=\"vintage-story-server-password-how-to-set-one\">Vintage Story server password: how to set one<\/h2>\n<p>To set a Vintage Story server password, put it in the <code>Password<\/code> key, for example <code>\"Password\": \"hearthfire\"<\/code>, and restart. Or run <code>\/serverconfig password hearthfire<\/code> on a live server. Passwords can&#8217;t contain spaces. Remove it with <code>\/serverconfig nopassword<\/code>, or set the key back to <code>null<\/code>. Players type the password into the server&#8217;s entry in their Multiplayer list.<\/p>\n<p>The wiki rates the whitelist as significantly more secure than a password. Many groups use both.<\/p>\n<h2 id=\"roles-and-privileges\">Roles and privileges<\/h2>\n<p>The <code>Roles<\/code> list in <code>serverconfig.json<\/code> defines what each kind of player may do. A fresh file has nine: <code>suvisitor<\/code>, <code>crvisitor<\/code>, <code>limitedsuplayer<\/code>, <code>limitedcrplayer<\/code>, <code>suplayer<\/code>, <code>crplayer<\/code>, <code>sumod<\/code>, <code>crmod<\/code> and <code>admin<\/code>. Each role has a privilege level, a list of privileges, a default game mode and land-claim limits.<\/p>\n<ul>\n<li><strong>Land claims:<\/strong> <code>suplayer<\/code> may claim up to 8 chunks&#8217; worth (<code>LandClaimAllowance<\/code> 262144) in at most 3 areas. Raise these for builders.<\/li>\n<li><strong>Spawn points:<\/strong> <code>DefaultSpawn<\/code> or <code>ForcedSpawn<\/code> per role, for example a visitor area.<\/li>\n<li><strong>Assigning roles:<\/strong> with commands, <code>\/player Name role sumod<\/code>, not by editing the file.<\/li>\n<\/ul>\n<h2 id=\"vintage-story-server-world-config\">Vintage Story server world config<\/h2>\n<p>The <code>WorldConfig<\/code> block in <code>serverconfig.json<\/code> describes the world the server creates: <code>Seed<\/code>, <code>WorldName<\/code>, <code>SaveFileLocation<\/code>, <code>PlayStyle<\/code>, <code>WorldType<\/code> and a <code>WorldConfiguration<\/code> list of rules. It is only read when a new world is made. Once the save exists, changes here do nothing; use <code>\/worldconfig<\/code> on the running world.<\/p>\n<pre><code>\"WorldConfig\": {\n  \"Seed\": \"123456789\",\n  \"SaveFileLocation\": \"\/home\/vintagestory\/data\/Saves\/default.vcdbs\",\n  \"WorldName\": \"Riverbend\",\n  \"PlayStyle\": \"surviveandbuild\",\n  \"WorldType\": \"standard\",\n  \"WorldConfiguration\": {\n    \"deathPunishment\": \"keep\",\n    \"temporalStorms\": \"rare\",\n    \"creatureHostility\": \"aggressive\",\n    \"daysPerMonth\": \"12\",\n    \"graceTimer\": \"3\"\n  }\n}<\/code><\/pre>\n<ul>\n<li><strong><code>PlayStyle<\/code>:<\/strong> <code>surviveandbuild<\/code> (standard), <code>exploration<\/code>, <code>wildernesssurvival<\/code>, <code>homosapiens<\/code> or <code>creativebuilding<\/code>.<\/li>\n<li><strong><code>WorldType<\/code>:<\/strong> <code>standard<\/code> or <code>superflat<\/code>.<\/li>\n<li><strong><code>SaveFileLocation<\/code>:<\/strong> which save to load. If the file doesn&#8217;t exist, the server creates a new world there.<\/li>\n<li><strong><code>Seed<\/code>:<\/strong> even the same seed doesn&#8217;t guarantee exactly the same world every time.<\/li>\n<\/ul>\n<p>Common rules and their defaults: <code>deathPunishment<\/code> drop (or keep), <code>playerlives<\/code> -1 (unlimited), <code>temporalStorms<\/code> sometimes, <code>creatureHostility<\/code> aggressive, <code>daysPerMonth<\/code> 9, <code>harshWinters<\/code> true, <code>caveIns<\/code> off.<\/p>\n<h3 id=\"vintage-story-server-world-gen-settings-that-only-work-at-creation\">Vintage Story server world gen settings that only work at creation<\/h3>\n<p>Several world gen settings can only be set before the world exists: <code>startingClimate<\/code>, <code>graceTimer<\/code>, <code>worldClimate<\/code>, <code>worldWidth<\/code> and <code>worldLength<\/code> (default 1024000), <code>polarEquatorDistance<\/code>, <code>landcover<\/code>, <code>oceanscale<\/code>, <code>upheavelCommonness<\/code> and <code>landformScale<\/code>. Others, such as <code>globalTemperature<\/code>, <code>globalPrecipitation<\/code> and <code>globalForestation<\/code>, can change later but only affect chunks that haven&#8217;t been generated yet.<\/p>\n<p>The wiki&#8217;s own advice for custom world generation on a server: create the world in singleplayer with the <em>Customize<\/em> screen, then copy the <code>.vcdbs<\/code> save into the server&#8217;s <code>Saves<\/code> folder and point <code>SaveFileLocation<\/code> at it. You get sliders instead of typing JSON keys.<\/p>\n<h3 id=\"changing-world-config-on-an-existing-world\">Changing world config on an existing world<\/h3>\n<p>On a world that already exists, run <code>\/worldconfig &lt;key&gt; &lt;value&gt;<\/code>, for example <code>\/worldconfig deathPunishment keep<\/code>, then restart. If the key was never stored in that save, create it with <code>\/worldconfigcreate bool &lt;key&gt; true<\/code>. Keys are case-sensitive.<\/p>\n<h2 id=\"other-config-files-servermagicnumbers-json\">Other config files: servermagicnumbers.json<\/h2>\n<p>Next to <code>serverconfig.json<\/code> sits <code>servermagicnumbers.json<\/code>, with engine tuning values. Most owners never open it. The ones worth knowing: <code>ServerAutoSave<\/code> (300 seconds between autosaves) and <code>MaxWorldgenThreads<\/code> \/ <code>MaxPhysicsThreads<\/code> (1 each by default). The autosave interval can also be changed live with <code>\/serverconfig autosaveintervall<\/code>.<\/p>\n<h2 id=\"when-server-config-changes-dont-apply\">When server config changes don&#8217;t apply<\/h2>\n<p>When a Vintage Story server config change doesn&#8217;t seem to apply, check four things in order: was the world already created (then use <code>\/worldconfig<\/code>), was the file edited while the server ran, is a launch option or hosted mode overriding the value, and did the server actually restart. The log usually shows which.<\/p>\n<table>\n<thead>\n<tr>\n<th>Symptom<\/th>\n<th>Cause and fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>World rules in <code>WorldConfiguration<\/code> ignored<\/td>\n<td>The world exists already. Use <code>\/worldconfig<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>Server stops on boot after an edit<\/td>\n<td>JSON error. Fix the line named in <code>server-main.log<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>Edits don&#8217;t load<\/td>\n<td>The server read the file before your edit. Stop it, edit, start it again, or use <code>\/serverconfig<\/code> live.<\/td>\n<\/tr>\n<tr>\n<td>MaxClients won&#8217;t change<\/td>\n<td><code>--maxclients<\/code> on the command line, or the host&#8217;s hosted mode.<\/td>\n<\/tr>\n<tr>\n<td>Players crash on join after a welcome-message change<\/td>\n<td><code>WelcomeMessage<\/code> set to <code>null<\/code>. Use <code>\"\"<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>Singleplayer settings changed too<\/td>\n<td>The server and your game share a data folder. Give the server its own with <code>--dataPath<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"skip-the-setup-change-settings-by-asking\">Skip the setup: change settings by asking<\/h2>\n<p>If JSON commas aren&#8217;t how you want to spend a game night, GameTeam&#8217;s <a href=\"https:\/\/gameteam.io\/vintage-story-server-hosting\">Vintage Story server hosting<\/a> lets the built-in AI copilot handle the config. Tell it &#8220;set the password to hearthfire, turn PvP off, cap it at 8 players and make deaths keep inventory&#8221; and it edits <code>serverconfig.json<\/code>, runs <code>\/worldconfig deathPunishment keep<\/code>, restarts the server and reads the values back to confirm. The file stays open to you in the file manager too. You pay per GB of RAM, from $0.49\/GB a week (or $1.99\/GB billed monthly), with unlimited slots.<\/p>\n<h2 id=\"faq\">FAQ<\/h2>\n<h3 id=\"where-is-serverconfig-json-on-a-vintage-story-server\">Where is serverconfig.json on a Vintage Story server?<\/h3>\n<p>In the server&#8217;s data folder: <code>%AppData%\\VintagestoryData<\/code> on Windows, <code>~\/.config\/VintagestoryData<\/code> on Linux, or whatever folder <code>--dataPath<\/code> points to.<\/p>\n<h3 id=\"how-do-i-disable-the-whitelist-on-a-vintage-story-server\">How do I disable the whitelist on a Vintage Story server?<\/h3>\n<p>Run <code>\/serverconfig whitelistmode off<\/code>, or set <code>\"WhitelistMode\": 1<\/code> with the server stopped. Consider a password if the address is shared widely.<\/p>\n<h3 id=\"why-didnt-my-worldconfig-changes-do-anything\">Why didn&#8217;t my WorldConfig changes do anything?<\/h3>\n<p>The <code>WorldConfig<\/code> block is only read when a world is created. For an existing world, use <code>\/worldconfig<\/code> and restart.<\/p>\n<h3 id=\"can-i-reset-serverconfig-json-to-defaults\">Can I reset serverconfig.json to defaults?<\/h3>\n<p>Yes. Stop the server, move the file somewhere safe and start the server: it writes a fresh default file. <code>--genconfig<\/code> does the same and exits.<\/p>\n<h3 id=\"how-do-i-change-world-gen-settings-on-an-existing-server\">How do I change world gen settings on an existing server?<\/h3>\n<p>Most terrain settings are fixed at creation. Either start a new world with a new <code>SaveFileLocation<\/code>, or create the world in singleplayer with <em>Customize<\/em> and upload it.<\/p>\n<h3 id=\"do-mods-add-their-own-config-files\">Do mods add their own config files?<\/h3>\n<p>Many do, usually in a <code>ModConfig<\/code> folder in the data folder after the first start. Their keys depend on the mod; see <a href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-mods\/\">how to add mods to a Vintage Story server<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"The Vintage Story server config is one file, serverconfig.json, in the server&#8217;s data folder. It holds the server&hellip;\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[185],"tags":[],"class_list":["post-3843","post","type-post","status-publish","format-standard","category-vintage-story-tutorials","vision-entry","vision-video-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog<\/title>\n<meta name=\"description\" content=\"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog\" \/>\n<meta property=\"og:description\" content=\"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/\" \/>\n<meta property=\"og:site_name\" content=\"GameTeam - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-27T14:12:52+00:00\" \/>\n<meta name=\"author\" content=\"gameteam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gameteam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/\"},\"author\":{\"name\":\"gameteam\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/person\\\/0cc694e709c1805f635ede3a5e1dbf83\"},\"headline\":\"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained\",\"datePublished\":\"2026-10-27T14:12:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/\"},\"wordCount\":1705,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\"},\"articleSection\":[\"Vintage Story Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/\",\"name\":\"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-27T14:12:52+00:00\",\"description\":\"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/vintage-story-server-settings\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Minecraft Tutorials\",\"item\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/category\\\/minecraft-tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\",\"name\":\"GameTeam - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#organization\",\"name\":\"GameTeam - Blog\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1\",\"width\":837,\"height\":167,\"caption\":\"GameTeam - Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/#\\\/schema\\\/person\\\/0cc694e709c1805f635ede3a5e1dbf83\",\"name\":\"gameteam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"contentUrl\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image_2023-11-17_210836342-96x96.png\",\"caption\":\"gameteam\"},\"sameAs\":[\"https:\\\/\\\/gameteam.io\\\/blog\"],\"url\":\"https:\\\/\\\/gameteam.io\\\/blog\\\/author\\\/gameteam\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog","description":"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/","og_locale":"en_US","og_type":"article","og_title":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog","og_description":"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.","og_url":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/","og_site_name":"GameTeam - Blog","article_published_time":"2026-10-27T14:12:52+00:00","author":"gameteam","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gameteam","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/#article","isPartOf":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/"},"author":{"name":"gameteam","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/person\/0cc694e709c1805f635ede3a5e1dbf83"},"headline":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained","datePublished":"2026-10-27T14:12:52+00:00","mainEntityOfPage":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/"},"wordCount":1705,"commentCount":0,"publisher":{"@id":"https:\/\/gameteam.io\/blog\/#organization"},"articleSection":["Vintage Story Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/","url":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/","name":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained - GameTeam - Blog","isPartOf":{"@id":"https:\/\/gameteam.io\/blog\/#website"},"datePublished":"2026-10-27T14:12:52+00:00","description":"Vintage Story server config explained: where serverconfig.json lives, every key worth changing, whitelist and password, and world config.","breadcrumb":{"@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gameteam.io\/blog\/vintage-story-server-settings\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gameteam.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Minecraft Tutorials","item":"https:\/\/gameteam.io\/blog\/category\/minecraft-tutorials\/"},{"@type":"ListItem","position":3,"name":"Vintage Story Server Config: serverconfig.json Settings, Whitelist, Password and World Config Explained"}]},{"@type":"WebSite","@id":"https:\/\/gameteam.io\/blog\/#website","url":"https:\/\/gameteam.io\/blog\/","name":"GameTeam - Blog","description":"","publisher":{"@id":"https:\/\/gameteam.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gameteam.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/gameteam.io\/blog\/#organization","name":"GameTeam - Blog","url":"https:\/\/gameteam.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1","contentUrl":"https:\/\/i0.wp.com\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-04_031100865.png?fit=837%2C167&ssl=1","width":837,"height":167,"caption":"GameTeam - Blog"},"image":{"@id":"https:\/\/gameteam.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/gameteam.io\/blog\/#\/schema\/person\/0cc694e709c1805f635ede3a5e1dbf83","name":"gameteam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","url":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","contentUrl":"https:\/\/gameteam.io\/blog\/wp-content\/uploads\/2023\/11\/image_2023-11-17_210836342-96x96.png","caption":"gameteam"},"sameAs":["https:\/\/gameteam.io\/blog"],"url":"https:\/\/gameteam.io\/blog\/author\/gameteam\/"}]}},"_links":{"self":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts\/3843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/comments?post=3843"}],"version-history":[{"count":0,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/posts\/3843\/revisions"}],"wp:attachment":[{"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/media?parent=3843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/categories?post=3843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gameteam.io\/blog\/wp-json\/wp\/v2\/tags?post=3843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}