Skip to content

World Configuration

Each world has its own config.json file in universe/worlds/<worldname>/.

{
"UUID": "generated-uuid-here",
"DisplayName": "My World",
"Seed": 1234567890,
"WorldGen": {
"Type": "Hytale"
},
"ChunkStorage": {
"Type": "Hytale"
},
"ChunkConfig": {
"PregenerateRegion": { "Min": [-512, -512], "Max": [512, 512] },
"KeepLoadedRegion": { "Min": [-256, -256], "Max": [256, 256] }
},
"IsTicking": true,
"IsBlockTicking": true,
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"GameTime": "1970-01-01T05:30:00Z",
"GameMode": "Adventure",
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"IsSavingPlayers": true,
"IsSavingChunks": true,
"SaveNewChunks": true,
"IsUnloadingChunks": true,
"IsCompassUpdating": true,
"IsObjectiveMarkersEnabled": true,
"GameplayConfig": "Default"
}
SettingTypeDefaultDescription
UUIDstringauto-generatedUnique identifier for this world
DisplayNamestringnullPlayer-facing name of the world
SettingTypeDefaultDescription
Seedlongcurrent timeWorld generation seed
WorldGen.Typestring"Hytale"World generator type
WorldGen.Namestring"Default"Name of the generator configuration (Hytale type only)
WorldGen.Pathstringserver defaultPath to world generation configuration (Hytale type only)
ChunkStorage.Typestring"Hytale"Chunk storage system type
  • Hytale - The default procedural world generator with configurable Name and Path options
  • Flat - Generates a flat world with defined layers
    • Tint - Color tint for chunks
    • Layers - Array of layer definitions with From, To, Environment, and BlockType
  • Void - Generates empty chunks with no blocks
    • Tint - Color tint for chunks
    • Environment - Environment to set for columns (defaults to “Default”)
  • Dummy - Places a single layer of unknown blocks (for testing)
  • Hytale - The default recommended storage system (uses IndexedStorage internally)
  • IndexedStorage - Uses indexed storage file format to store chunks (.region.bin files)
  • Empty - Discards chunks on save and never loads existing chunks (for temporary worlds)
SettingTypeDefaultDescription
ChunkConfig.PregenerateRegionBox2DnullRegion to pregenerate when world starts
ChunkConfig.KeepLoadedRegionBox2DnullRegion of chunks that will never be unloaded

The region is specified as a Box2D with Min and Max coordinates: { "Min": [x1, z1], "Max": [x2, z2] }

SettingTypeDefaultDescription
IsPvpEnabledbooleanfalseAllow player vs player combat
IsFallDamageEnabledbooleantruePlayers take fall damage
SettingTypeDefaultDescription
GameModestringinherits from serverDefault game mode for this world
GameplayConfigstring"Default"Gameplay configuration to use
DeathobjectnullInline death configuration overrides (takes precedence over GameplayConfig)
DaytimeDurationSecondsintegernullOverride for daytime duration in seconds
NighttimeDurationSecondsintegernullOverride for nighttime duration in seconds

Available game modes:

  • Adventure - Standard survival gameplay
  • Creative - Building mode with unlimited resources
SettingTypeDefaultDescription
IsGameTimePausedbooleanfalseWhether game time is paused
GameTimeISO-8601"1970-01-01T05:30:00Z"Current time of day
ForcedWeatherstringnullForce a specific weather type to be active

The GameTime setting affects the day/night cycle. Times are specified in ISO-8601 format where the time portion determines the in-game time of day. The default start time is 5:30 AM.

Visual settings that affect how the world appears to players:

SettingTypeDefaultDescription
ClientEffects.SunHeightPercentfloat100.0Sun height as a percentage
ClientEffects.SunAngleDegreesfloat0.0Sun angle in degrees
ClientEffects.BloomIntensityfloat0.3Bloom post-processing intensity
ClientEffects.BloomPowerfloat8.0Bloom post-processing power
ClientEffects.SunIntensityfloat0.25Sun light intensity
ClientEffects.SunshaftIntensityfloat0.3Sunshaft effect intensity
ClientEffects.SunshaftScaleFactorfloat4.0Sunshaft scale factor
SettingTypeDefaultDescription
IsTickingbooleantrueWhether chunks in this world tick
IsBlockTickingbooleantrueWhether blocks in this world tick
SettingTypeDefaultDescription
IsSpawningNPCbooleantrueWhether NPCs can spawn
IsSpawnMarkersEnabledbooleantrueWhether spawn markers are enabled
IsAllNPCFrozenbooleanfalseWhether all NPCs are frozen
IsObjectiveMarkersEnabledbooleantrueWhether objective markers are enabled
IsCompassUpdatingbooleantrueWhether the compass updates in this world

The SpawnProvider setting controls where players spawn in the world. Available types:

Global - A single static spawn point for all players:

{
"SpawnProvider": {
"Type": "Global",
"SpawnPoint": { "Position": [0, 100, 0], "Rotation": [0, 0, 0] }
}
}

Individual - Selects from a list of spawn points based on player UUID (consistent per player):

{
"SpawnProvider": {
"Type": "Individual",
"SpawnPoints": [
{ "Position": [0, 100, 0], "Rotation": [0, 0, 0] },
{ "Position": [100, 100, 0], "Rotation": [0, 90, 0] }
]
}
}

FitToHeightMap - Takes a spawn point from another provider and adjusts Y to terrain height:

{
"SpawnProvider": {
"Type": "FitToHeightMap",
"SpawnProvider": {
"Type": "Global",
"SpawnPoint": { "Position": [0, -1, 0], "Rotation": [0, 0, 0] }
}
}
}
SettingTypeDefaultDescription
IsSavingPlayersbooleantrueWhether player data is saved
IsSavingChunksbooleantrueWhether chunk data is saved to disk
SaveNewChunksbooleantrueWhether newly generated chunks are marked for saving
IsUnloadingChunksbooleantrueWhether chunks can be unloaded
DeleteOnUniverseStartbooleanfalseDelete this world when the universe starts
DeleteOnRemovebooleanfalseDelete this world when removed from server
ResourceStorageobjectdefaultStorage system for world resources
SettingTypeDefaultDescription
RequiredPluginsobjectemptyMap of plugin identifiers to semver version ranges
PluginobjectemptyPlugin-specific configuration data

Example with required plugins:

{
"RequiredPlugins": {
"com.example.myplugin": ">=1.0.0 <2.0.0"
},
"Plugin": {
"MyPlugin": {
"customSetting": "value"
}
}
}

To create additional worlds:

  1. Create a new directory: universe/worlds/<worldname>/
  2. Add a config.json with at minimum:
    {
    "DisplayName": "My Custom World",
    "Seed": 123456
    }
  3. Restart the server or use the world management commands

The server will generate missing settings with defaults.

Here is a complete world configuration with all available options:

{
"UUID": "550e8400-e29b-41d4-a716-446655440000",
"DisplayName": "Adventure World",
"Seed": 1234567890,
"WorldGen": {
"Type": "Hytale",
"Name": "Default"
},
"ChunkStorage": {
"Type": "Hytale"
},
"ChunkConfig": {
"PregenerateRegion": { "Min": [-512, -512], "Max": [512, 512] },
"KeepLoadedRegion": { "Min": [-128, -128], "Max": [128, 128] }
},
"SpawnProvider": {
"Type": "FitToHeightMap",
"SpawnProvider": {
"Type": "Global",
"SpawnPoint": { "Position": [0, -1, 0], "Rotation": [0, 0, 0] }
}
},
"IsTicking": true,
"IsBlockTicking": true,
"IsPvpEnabled": false,
"IsFallDamageEnabled": true,
"IsGameTimePaused": false,
"GameTime": "1970-01-01T05:30:00Z",
"GameMode": "Adventure",
"GameplayConfig": "Default",
"IsSpawningNPC": true,
"IsSpawnMarkersEnabled": true,
"IsAllNPCFrozen": false,
"IsObjectiveMarkersEnabled": true,
"IsCompassUpdating": true,
"IsSavingPlayers": true,
"IsSavingChunks": true,
"SaveNewChunks": true,
"IsUnloadingChunks": true,
"ClientEffects": {
"SunHeightPercent": 100.0,
"SunAngleDegrees": 0.0,
"BloomIntensity": 0.3,
"BloomPower": 8.0,
"SunIntensity": 0.25,
"SunshaftIntensity": 0.3,
"SunshaftScaleFactor": 4.0
}
}