Skip to main content

Overview

World settings allow you to customize world-level properties during conversion. This includes game rules, difficulty, spawn points, and other world metadata that gets embedded in the level.dat or equivalent file.

Configuration File

World settings are defined in world_settings.chunker.json or passed via the -s flag (CLI.java:163-182).

File Structure

World settings are stored as a JSON object containing key-value pairs (CLI.java:177):
world_settings.chunker.json
{
  "LevelName": "My Converted World",
  "Difficulty": 2,
  "hardcore": false,
  "GameType": 0
}
World settings are applied directly to the world data structure. The available fields depend on the output edition and version.

Common Settings

While the exact fields available depend on the target edition, here are commonly used settings:

World Name

{
  "LevelName": "My Custom World Name"
}
Sets the world’s display name.

Difficulty

{
  "Difficulty": 2
}
Values:
  • 0: Peaceful
  • 1: Easy
  • 2: Normal
  • 3: Hard

Game Mode

{
  "GameType": 1
}
Values:
  • 0: Survival
  • 1: Creative
  • 2: Adventure
  • 3: Spectator

Hardcore Mode (Java)

{
  "hardcore": true
}
Enables hardcore mode (Java Edition only).

Spawn Position

{
  "SpawnX": 0,
  "SpawnY": 64,
  "SpawnZ": 0
}
Sets the world spawn point coordinates.

Time

{
  "Time": 0,
  "DayTime": 0
}
Sets the world time:
  • 0: Dawn
  • 6000: Noon
  • 12000: Dusk
  • 18000: Midnight

Game Rules

Game rules can also be configured:
{
  "GameRules": {
    "doDaylightCycle": "true",
    "doMobSpawning": "true",
    "keepInventory": "true",
    "mobGriefing": "false"
  }
}
Game rule values must be strings ("true" or "false"), not booleans.

Complete Examples

Peaceful Creative World

world_settings.chunker.json
{
  "LevelName": "Creative Build World",
  "Difficulty": 0,
  "GameType": 1,
  "GameRules": {
    "doDaylightCycle": "false",
    "doWeatherCycle": "false",
    "doMobSpawning": "false"
  },
  "Time": 6000,
  "DayTime": 6000
}

Hardcore Survival

world_settings.chunker.json
{
  "LevelName": "Hardcore Challenge",
  "Difficulty": 3,
  "GameType": 0,
  "hardcore": true,
  "GameRules": {
    "naturalRegeneration": "true",
    "keepInventory": "false"
  }
}

Adventure Map

world_settings.chunker.json
{
  "LevelName": "Adventure Map",
  "GameType": 2,
  "Difficulty": 2,
  "GameRules": {
    "commandBlockOutput": "false",
    "mobGriefing": "false",
    "doTileDrops": "false",
    "naturalRegeneration": "false"
  },
  "SpawnX": 100,
  "SpawnY": 64,
  "SpawnZ": 200
}

Skyblock Setup

world_settings.chunker.json
{
  "LevelName": "Skyblock",
  "GameType": 0,
  "Difficulty": 2,
  "SpawnX": 0,
  "SpawnY": 100,
  "SpawnZ": 0,
  "GameRules": {
    "keepInventory": "true",
    "mobGriefing": "false"
  }
}

Usage

# Place in world directory
my_world/world_settings.chunker.json

# Run conversion
java -jar chunker-cli.jar -i my_world -f BEDROCK_1_20_80 -o output

Java vs Bedrock Differences

Java Edition Specific

{
  "hardcore": true,
  "allowCommands": true,
  "DataVersion": 3465
}

Bedrock Edition Specific

{
  "Generator": 1,
  "NetherScale": 8,
  "bonusChestEnabled": false,
  "bonusChestSpawned": false
}

Universal Settings

{
  "LevelName": "World",
  "Difficulty": 2,
  "GameType": 0,
  "SpawnX": 0,
  "SpawnY": 64,
  "SpawnZ": 0,
  "Time": 0
}

Field Format

World settings use the underlying NBT format field names:
  • Field names are case-sensitive
  • Integer values: Use numbers (2, not "2")
  • Boolean values: Use booleans (true, not "true")
  • Game rules: Use strings ("true", not true)
Incorrect field names or types may be silently ignored or cause conversion errors.

Common Game Rules

RuleDescriptionDefault
keepInventoryKeep items on deathfalse
doDaylightCycleSun and moon movetrue
doWeatherCycleWeather changestrue
doMobSpawningMobs spawn naturallytrue
mobGriefingMobs can destroy blockstrue
naturalRegenerationHealth regeneratestrue
commandBlockOutputShow command block outputtrue
doFireTickFire spreadstrue
showDeathMessagesShow death messagestrue
announceAdvancementsAnnounce advancementstrue
Game rule availability varies by edition and version. Some rules only exist in Java or Bedrock.

Validation

Chunker applies world settings during conversion (CLI.java:175-181):
  • Valid settings are applied to the output world
  • Invalid or unknown fields are typically ignored
  • Type mismatches may cause errors
Always test your world settings on a copy before using them on important worlds.

Discovering Available Settings

To find available settings for your target version:
  1. Create a world in the target edition/version
  2. Use NBT editors like NBTExplorer or Amulet
  3. Examine the level.dat file structure
  4. Use those field names in your world_settings.chunker.json

Exporting Settings

Generate world settings from the web UI:
  1. Visit chunker.app
  2. Go to Advanced SettingsConverter Settings
  3. Configure world properties
  4. Export the world_settings.chunker.json file

Partial Updates

You only need to specify settings you want to change:
{
  "Difficulty": 0
}
This changes only the difficulty and leaves all other settings unchanged.

Overriding Original Settings

World settings override values from the input world:
  • Input world has Difficulty: 2
  • Settings file has Difficulty: 0
  • Output world will have Difficulty: 0

Best Practices

  1. Test on copies before applying to production worlds
  2. Use minimal settings - only change what you need
  3. Document your settings for future reference
  4. Check edition compatibility - some settings are edition-specific
  5. Validate field names using NBT editors

Common Use Cases

Reset Difficulty

Change world difficulty after conversion

Fix Spawn Point

Set correct spawn coordinates

Rename World

Give converted world a new name

Configure Rules

Set game rules for maps or servers

Troubleshooting

  • Check JSON syntax is valid
  • Verify field names are spelled correctly (case-sensitive)
  • Ensure value types match expected format
  • Check that the setting is supported by target edition
  • Validate JSON structure
  • Remove invalid or unknown fields
  • Check for type mismatches (number vs string)
  • Test with minimal settings first
  • Ensure game rule values are strings: "true" not true
  • Check game rule name spelling
  • Verify the rule exists in target edition/version
  • Ensure using LevelName not levelName (case matters)
  • Check file is being loaded (use -s flag to verify)
  • Try setting in web UI and exporting configuration

Advanced Settings

World Generation

{
  "generatorName": "default",
  "generatorVersion": 1,
  "generatorOptions": ""
}

World Border

{
  "BorderCenterX": 0.0,
  "BorderCenterZ": 0.0,
  "BorderSize": 60000000.0
}

Version Info

{
  "Version": {
    "Name": "1.20.4"
  }
}
Advanced settings should be used with caution. Incorrect values can cause world corruption or loading issues.

Configuration Overview

Learn about all configuration options

Converter Settings

Control conversion behavior

Dimension Mapping

Map dimensions between editions

Build docs developers (and LLMs) love