Skip to content

Environment Configuration

Zones

Environment configurations define weather forecasts, spawn densities, and audio/visual settings for different world regions. Each zone and biome can have unique environmental characteristics.

  • DirectoryAssets/Server/Environments/
    • Default.json
    • DirectoryZone0/
    • DirectoryZone1/
      • Env_Zone1_Autumn.json
      • Env_Zone1_Azure.json
      • Env_Zone1_Caves.json
      • Env_Zone1_Caves_Forests.json
      • Env_Zone1_Caves_Goblins.json
      • Env_Zone1_Dungeons.json
    • DirectoryZone2/
    • DirectoryZone3/
    • DirectoryZone4/
    • DirectoryUnique/
    • DirectoryLegacy/
FieldTypeDefaultDescription
WaterTintcolorTint color applied to water in this environment
FluidParticlesmap<string, FluidParticle>{}Particle systems for fluids, keyed by FluidFX asset id
SpawnDensitydoubleNPC spawn density multiplier
BlockModificationAllowedbooleantrueWhether blocks can be placed or harvested in this environment
WeatherForecastsmap<int, WeightedMap<WeatherForecast>>Hour-keyed (0-23) weighted weather forecasts
TagsobjectEnvironment classification tags

Weather is configured per hour (0-23):

Basic weather forecast structure
{
"WeatherForecasts": {
"0": [
{ "WeatherId": "Zone1_Clear", "Weight": 60 },
{ "WeatherId": "Zone1_Cloudy_Light", "Weight": 30 },
{ "WeatherId": "Zone1_Rain_Light", "Weight": 10 }
],
"1": [
{ "WeatherId": "Zone1_Clear", "Weight": 60 },
{ "WeatherId": "Zone1_Cloudy_Light", "Weight": 40 }
]
}
}
FieldTypeDescription
WeatherIdstringReference to weather definition
WeightintProbability weight (higher = more likely)
FieldTypeDefaultDescription
SystemIdstringrequiredReference to a ParticleSystem asset id
ColorcolorFallback color if none specified in particle settings
Scalefloat1.0Scale of the particle system
FluidParticles example
{
"FluidParticles": {
"Hytale:Water": {
"SystemId": "MyPlugin_WaterSplash",
"Color": "#0A3355",
"Scale": 1.0
}
}
}

Tags categorize environments for spawning and behavior:

{
"Tags": {
"Zone1": ["Caves", "Forests"],
"Biome": ["Underground"]
}
}
EnvironmentDescription
Env_Zone1_AutumnFall-themed with warm colors
Env_Zone1_AzureBlue-tinted magical area
Env_Zone1_CavesUnderground cave system
Env_Zone1_Caves_ForestsForest cave entrances
Env_Zone1_Caves_GoblinsGoblin-inhabited caves
Env_Zone1_Caves_MountainsMountain caverns
Env_Zone1_Caves_PlainsPlains cave system
Env_Zone1_Caves_RatsRat-infested caves
Env_Zone1_Caves_SpidersSpider nest caves
Env_Zone1_Caves_SwampsSwamp caverns
Env_Zone1_Caves_Volcanic_T1-T3Volcanic caves (tiers)
Env_Zone1_DungeonsDungeon interiors
Env_Zone1_EncountersCombat encounter areas

Desert and jungle environments with heat effects.

Cold environments with snow and ice.

Extreme heat and lava environments.

Env_Zone1_Caves.json
{
"SpawnDensity": 0.5,
"Tags": {
"Zone1": ["Caves"]
},
"WeatherForecasts": {
"0": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"1": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"2": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"3": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"4": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"5": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"6": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"7": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"8": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"9": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"10": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"11": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"12": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"13": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"14": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"15": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"16": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"17": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"18": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"19": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"20": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"21": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"22": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }],
"23": [{ "WeatherId": "Cave_Shallow", "Weight": 100 }]
}
}

Key characteristics:

  • 50% spawn density - Reduced monster spawning
  • Cave_Shallow weather - Constant cave conditions (no time-of-day change)
  • Tags - Marked as Zone1 Caves for spawn rules
Example outdoor environment
{
"SpawnDensity": 1.0,
"Tags": {
"Zone1": ["Plains", "Outdoor"]
},
"WeatherForecasts": {
"0": [
{ "WeatherId": "Zone1_Clear_Night", "Weight": 70 },
{ "WeatherId": "Zone1_Cloudy_Night", "Weight": 30 }
],
"6": [
{ "WeatherId": "Zone1_Clear_Dawn", "Weight": 60 },
{ "WeatherId": "Zone1_Fog_Morning", "Weight": 40 }
],
"12": [
{ "WeatherId": "Zone1_Clear_Day", "Weight": 50 },
{ "WeatherId": "Zone1_Cloudy_Day", "Weight": 30 },
{ "WeatherId": "Zone1_Rain", "Weight": 20 }
],
"18": [
{ "WeatherId": "Zone1_Clear_Dusk", "Weight": 70 },
{ "WeatherId": "Zone1_Cloudy_Dusk", "Weight": 30 }
]
}
}

Weather definitions are stored in Assets/Server/Weathers/:

  • DirectoryAssets/Server/Weathers/
    • DirectoryZone1/
      • Zone1_Clear.json
      • Zone1_Cloudy_Light.json
      • Zone1_Cloudy_Medium.json
      • Zone1_Rain_Light.json
      • Zone1_Rain_Heavy.json
      • Zone1_Storm.json
    • DirectoryZone2/
    • DirectoryZone3/
    • DirectoryZone4/
    • Cave_Shallow.json
    • Cave_Deep.json

Weather definitions include:

  • Sky appearance
  • Fog settings
  • Particle effects (rain, snow)
  • Ambient sounds
  • Reverb preset
  • Lighting adjustments

The SpawnDensity multiplier affects NPC spawning:

ValueEffect
0.0No spawning
0.5Half normal spawning
1.0Normal spawning
1.5150% spawning
2.0Double spawning
MyPlugin_Env_Custom.json
{
"WaterTint": "#0A5533",
"SpawnDensity": 0.8,
"BlockModificationAllowed": true,
"FluidParticles": {
"Hytale:Water": {
"SystemId": "MyPlugin_WaterSplash",
"Color": "#0A5533",
"Scale": 1.0
}
},
"Tags": {
"MyPlugin": ["CustomBiome"],
"Zone1": ["Special"]
},
"WeatherForecasts": {
"0": [
{ "WeatherId": "MyPlugin_Weather_Night", "Weight": 100 }
],
"6": [
{ "WeatherId": "MyPlugin_Weather_Dawn", "Weight": 100 }
],
"12": [
{ "WeatherId": "MyPlugin_Weather_Day", "Weight": 70 },
{ "WeatherId": "MyPlugin_Weather_Special", "Weight": 30 }
],
"18": [
{ "WeatherId": "MyPlugin_Weather_Dusk", "Weight": 100 }
]
}
}

When players move between environments:

  • Weather interpolates smoothly
  • Audio crossfades between ambiences
  • Spawn rules update at boundaries
  • Visual effects blend between settings
  1. Use weights wisely - Higher weights = more common weather
  2. Match time of day - Use appropriate weather for each hour
  3. Consider spawn density - Balance difficulty with density
  4. Use meaningful tags - Enable targeted NPC spawn rules
  5. Test transitions - Ensure smooth environment boundaries