Minecraft generator-settings: Complete Guide with Presets (2026)
Copy-paste generator-settings presets for superflat, void, and single-biome worlds, plus exact server.properties syntax and the mistakes that break it.
Last updated: August 19, 2026
On this page
The generator-settings line in server.properties is the least documented setting most server owners ever touch. It is empty by default, it silently does nothing if you fill it in wrong, and the format changed years ago so half the guides online are still showing the old one. This guide gives you the current syntax, presets you can paste directly, and the specific reasons it usually fails.
Quick answer:
generator-settingsis the server.properties key that customizes world generation for the world type you set inlevel-type. On modern versions it takes JSON on one line, most often a superflat layer list. It only applies when a world is first generated, never to an existing one.
What generator-settings Actually Does
generator-settings is the server.properties key that feeds configuration into the world generator chosen by level-type. On its own it does nothing: it is only read when the game creates the world folder, and only the minecraft:flat and minecraft:single_biome_surface world types read anything from it at all.
That pairing is the part people miss. generator-settings is not a switch that makes a world flat. level-type chooses the generator, and generator-settings hands that generator its parameters. Set the JSON without setting level-type=minecraft:flat and you get an ordinary world with your carefully written layer list ignored.
The two keys sit next to each other in the file and both default to something harmless:
# server.properties
level-type=minecraft:normal
generator-settings={}
If you have not built a server yet, start with our step-by-step Minecraft server setup guide and come back once you have a server.properties file to edit.
One version note worth having: from 1.19 onward level-type expects the namespaced form (minecraft:flat, minecraft:normal, minecraft:large_biomes, minecraft:amplified, minecraft:single_biome_surface) rather than the old bare keywords like default and largeBiomes.
The generator-settings JSON Format
Since Minecraft 1.16, generator-settings takes a single line of JSON. The flat generator accepts five fields: layers, biome, lakes, features, and structure_overrides. Only layers is required, and the first entry in the array is the bottom of the world, not the top.
Here is the full shape with every field present:
{
"biome": "minecraft:plains",
"layers": [
{ "block": "minecraft:bedrock", "height": 1 },
{ "block": "minecraft:dirt", "height": 2 },
{ "block": "minecraft:grass_block", "height": 1 }
],
"lakes": false,
"features": false,
"structure_overrides": []
}
What each field does:
| Field | Type | Default | Effect |
|---|---|---|---|
layers | array | required | Blocks stacked from world bottom upward, each with a block ID and a height |
biome | string | minecraft:plains | The single biome applied to the whole world |
lakes | boolean | false | Generates water and lava lakes, including in biomes that normally have none |
features | boolean | false | Generates biome features such as trees, grass, and ores |
structure_overrides | list | all structure sets | Which structure sets can generate. An empty list disables all of them |
Two details save a lot of confusion. First, height is a block count, not a Y coordinate. Second, since 1.18 the world bottom is Y=-64, so a classic four-layer flat world puts your feet at Y=-60, not the Y=64 that older tutorials show. If you want the surface near sea level, add a thick filler layer underneath.
As of August 2026 the current Java Edition release is 26.2 (Chaos Cubed, shipped June 2026) with 26.3 in snapshot testing, and this JSON format has been stable since 1.16. Anything you find written as 3;minecraft:bedrock,3*minecraft:stone;1 is the pre-1.16 preset string and will not work.
Copy-Ready generator-settings Presets
Every preset below goes into server.properties as two lines: level-type picks the generator and generator-settings configures it. Paste the JSON on one line with no spaces around the equals sign, save the file, and generate a fresh world folder so the settings are actually read.
Classic superflat
The vanilla Classic Flat preset: bedrock, two dirt, one grass, plains biome.
# server.properties
level-type=minecraft:flat
generator-settings={"biome":"minecraft:plains","layers":[{"block":"minecraft:bedrock","height":1},{"block":"minecraft:dirt","height":2},{"block":"minecraft:grass_block","height":1}]}
Build-server superflat with the surface at Y=0
Same idea, but padded with stone so the ground sits at a sane height, with lakes, features, and structures all switched off. This is the one most creative and build servers actually want.
# server.properties
level-type=minecraft:flat
generator-settings={"biome":"minecraft:plains","layers":[{"block":"minecraft:bedrock","height":1},{"block":"minecraft:stone","height":59},{"block":"minecraft:dirt","height":3},{"block":"minecraft:grass_block","height":1}],"lakes":false,"features":false,"structure_overrides":[]}
Void world
For minigames, lobbies, skyblock bases, and hub servers. One layer of air, the void biome, no structures.
# server.properties
level-type=minecraft:flat
generator-settings={"biome":"minecraft:the_void","layers":[{"block":"minecraft:air","height":1}],"structure_overrides":[]}
Vanilla spawns players on a small stone platform in a void world so they do not immediately fall out of the world, but you should still build or paste in your own spawn area before letting anyone join.
Redstone-ready sandstone flat
The vanilla Redstone Ready preset: a deep sandstone slab in the desert biome, no rain to interfere with redstone circuits.
# server.properties
level-type=minecraft:flat
generator-settings={"biome":"minecraft:desert","layers":[{"block":"minecraft:bedrock","height":1},{"block":"minecraft:stone","height":3},{"block":"minecraft:sandstone","height":116}]}
Mining and tunnel practice
The Tunnelers’ Dream idea: a deep stone world with a thin grass surface.
# server.properties
level-type=minecraft:flat
generator-settings={"biome":"minecraft:windswept_hills","layers":[{"block":"minecraft:bedrock","height":1},{"block":"minecraft:stone","height":230},{"block":"minecraft:dirt","height":5},{"block":"minecraft:grass_block","height":1}]}
A flat world is cheap to generate but not free to run once players spread out, and world type has nothing to do with how far away your players are sitting. If your build server feels sluggish for players in Indonesia, Malaysia, or the Philippines, that is latency rather than generation. CraftRift runs Minecraft hosting on low-ping SEA nodes starting from $3/month, which is the part no server.properties line can fix.
Amplified and Single Biome: What generator-settings Cannot Do
Amplified ignores generator-settings completely: it is a noise generator preset, so setting level-type=minecraft:amplified is the whole configuration. Single Biome is the awkward one, because the server route generates a plains world and the wiki notes the biome cannot be customized from server.properties alone.
Amplified is the simplest entry in this guide. Leave the JSON empty:
# server.properties
level-type=minecraft:amplified
generator-settings={}
Be aware that amplified terrain is genuinely expensive to generate. It builds far more blocks per chunk than normal terrain, so pre-generating the world before opening it to players is worth the wait.
Single Biome is where documentation disagrees with itself. The server.properties reference lists minecraft:single_biome_surface as customizable through generator-settings, while the Single Biome page states the server route defaults to plains and cannot be customized:
# server.properties
level-type=minecraft:single_biome_surface
generator-settings={"biome":"minecraft:jungle"}
Try it on your version, join, and check with F3 whether you actually got the biome you asked for. If you get plains, the reliable path is to create the world in single player using the Single Biome world type, pick your biome there, then upload the world folder to your server and point level-name at it. Advanced users can ship the same thing as a datapack world preset, but for a single world the upload takes two minutes and cannot be typo’d.
Five Mistakes That Break generator-settings
Most generator-settings failures come from five places: the world type not matching the JSON, backslashes added by a control panel, block IDs that do not exist, layer heights that misplace the surface, and expecting an existing world to change. When the JSON fails to parse, the server logs an error and falls back to the default flat preset.
1. level-type is still normal. This is the most common one by a wide margin. Your JSON is perfect and completely ignored because the flat generator was never selected. Set level-type=minecraft:flat in the same file.
2. Escaped quotes and line breaks. Some control panel editors helpfully escape your quotes into \" or wrap the value across multiple lines. Neither survives. The value must be one unbroken line of plain JSON. You do not need to escape the colons in minecraft:bedrock, because only the first = in the line separates key from value, but a stray backslash will break the file since backslash is an escape character in the properties format.
3. Block or biome IDs that do not exist. Use full namespaced block IDs. minecraft:grass_block works, grass does not, and minecraft:grass is a different block entirely. The same applies to biomes: check the exact ID before pasting.
4. Layer maths that puts the surface in the wrong place. Layer heights are counted from the world bottom, so four layers means the surface is near Y=-60. Skip the bedrock layer and players dig straight out of the bottom of the world. Stack layers past the build height and the extra blocks are simply cut off.
5. Editing an existing world. Chunks store their generated blocks on disk. Changing generator-settings on a running world affects nothing already generated, and in most cases nothing new either, because the setting was recorded in level.dat at creation time.
None of this changes across server software: Paper, Spigot, Purpur, and Fabric all read level-type and generator-settings from the same vanilla server.properties file. If you are still deciding what to run, our server software comparison covers the tradeoffs.
How to Apply generator-settings Without Wiping Your World
generator-settings is baked into level.dat when the world folder is created, so editing it later changes nothing. To keep your existing world, point level-name at a brand new folder, or create the flat world as a second world through a multi-world plugin and teleport players into it.
The level-name swap is the laziest safe method and takes about a minute:
# server.properties
level-name=flatworld
level-type=minecraft:flat
generator-settings={"biome":"minecraft:plains","layers":[{"block":"minecraft:bedrock","height":1},{"block":"minecraft:dirt","height":2},{"block":"minecraft:grass_block","height":1}]}
Stop the server, change level-name to a folder that does not exist yet, apply your world type and settings, and start it. The server generates a fresh world in the new folder and your original world sits untouched on disk. Change level-name back and restart to return to it, though player inventories and positions live per world, so anyone online during the switch lands in the new one at spawn.
If you want both worlds available at once, a multi-world plugin such as Multiverse-Core creates the flat world as an additional world you teleport into with a command, leaving the main world running normally. This is the right answer for a survival server that also wants a creative build plot or a minigame lobby.
Whichever route you take, back up the world folder before touching anything. Copying a folder costs nothing and a regenerated world cannot be undone.
Putting It Together in server.properties
generator-settings is one line in a file with dozens of others, and the rest of server.properties decides how the world actually performs. View distance, simulation distance, and spawn limits matter far more for smoothness than the layers you picked, so set them deliberately rather than leaving stock values.
A flat world is unusually kind to a server. There is no terrain noise to compute, chunks compress well, and with features and structure_overrides disabled there is almost nothing generating beyond your layer stack. That headroom is best spent on view distance for builders rather than left on the table.
If you would rather not tune the rest of the file by hand, our free Minecraft config generator produces a tuned server.properties along with matching paper-global.yml, spigot.yml, and bukkit.yml, so you can drop your generator-settings line into a config that is already sensible everywhere else.
And once the world generates exactly the way you want, the only variable left is the distance between your players and the machine. CraftRift runs Minecraft server hosting on low-ping SEA nodes from $3/month, with Paper preinstalled and full file access so you can edit server.properties directly instead of through a locked-down panel.
Frequently Asked Questions
What is generator-settings in Minecraft?
It is a key in server.properties that passes configuration to the world generator selected by level-type. On modern versions it holds one line of JSON. The flat world type uses it for a block layer list and biome, and it is read only when a world folder is first created.
How do I make a flat world on my Minecraft server?
Stop the server, set level-type=minecraft:flat and paste a layer list into generator-settings as a single line of JSON, then change level-name to a folder that does not exist yet so a fresh world generates. Start the server and join to confirm the layers match what you configured.
Why is my generator-settings not working?
The usual causes are level-type still being set to normal, a control panel escaping the quotes into backslashes, invalid block IDs missing the minecraft: prefix, or applying it to a world that already exists. Check the server console on startup, since a parse failure is logged before the world generates.
Can I change generator-settings without resetting my world?
Not for an existing world, because the settings are recorded in level.dat at creation. You can keep your world by generating the new one under a different level-name, or by adding a second world with a multi-world plugin such as Multiverse-Core and teleporting players into it on demand.
Does generator-settings work on Paper and Spigot?
Yes. Paper, Spigot, Purpur, and Fabric all read the standard vanilla server.properties, so level-type and generator-settings behave identically across them. Some plugins add their own custom world generators, and where a plugin generator is assigned to a world it takes over from the vanilla settings entirely.
CraftRift Admin
Founder of CraftRift
CraftRift Admin is a gamer based in Southeast Asia and the founder of CraftRift, writing about Minecraft server performance, hosting, and low-latency infrastructure for players across the region.
Related Articles
How Much RAM for a Minecraft Server? Chart by Player Count
RAM guide with tables for Vanilla, Paper, Forge, and Fabric servers. 1-100+ players covered. Includes Aikar's flags and signs your server needs more RAM.
guidesHow to Start a Minecraft Server (2026) - 15-Min Setup
Start a Minecraft server in under 15 minutes. Step-by-step for Java + Bedrock with port forwarding, plugins, and security basics. Free tools included.
guidesAikar's Flags Explained: Optimized JVM Flags for Minecraft Servers (2026)
Aikar's flags explained for 2026: the full copy-paste G1GC JVM args for Paper, a variant for 12GB+ RAM, and the mistakes that undo them.
Free Tools You Might Need
Need Low-Ping Hosting?
CraftRift runs on low-ping SEA nodes. Fast ping across Southeast Asia, starting at $3/mo.