GlymeraFarmWater

FarmWater brings Minecraft-style automatic crop watering to Hytale. Place water within 4 blocks of your farmland and it stays watered automatically. Works with source blocks and flowing water. No configuration needed – just install and farm!

File Details

GlymeraIrrigation-1.3.1.jar

  • R
  • Mar 3, 2026
  • 8.29 KB
  • 190
  • Early Access

File Name

GlymeraIrrigation-1.3.1.jar

Supported Versions

  • Early Access

v1.3.1

Fix: Native Decay Handoff on Water Removal

  • Visual Reset - dehydrateBlock() now resets the block state to default/fertilized immediately (soil turns dry visually right away)
  • scheduleTick - A native Hytale tick is scheduled so tickSoil() performs the decay to Soil_Mud_Dry
  • Early Return - Already dehydrated blocks are skipped to avoid unnecessary work per scan cycle

v1.3.0

Complete Rewrite of Irrigation Logic

  • externalWater instead of wateredUntil - setExternalWater(true) is now the primary mechanism. This is a persistent boolean flag that survives chunk unload/reload
  • wateredUntil as Backup - The native WaterGrowthModifierAsset overrides externalWater during crop ticks (only checks 1-block radius). wateredUntil keeps the soil moist and the growth multiplier active as a fallback
  • Game-Time instead of Real-Time - Uses WorldTimeResource.getGameTime() (30x speed) instead of Instant.now(). Fixes the issue where timers expired in real time during chunk unloads
  • Decay Protection - setDecayTime() is set far into the future for unplanted farmland near water. Hytale's decay system is independent of watering!
  • Block State Variant IDs - All 4 state IDs are now registered (Base=38, Watered=3061, Fertilized=3238, Fertilized_Watered=2301). Without tracking all variants, irrigated blocks were lost after state changes
  • dehydrateBlock() - New method that removes externalWater, clears wateredUntil, and sets decayTime to the native ~58 real-time minutes

Bugfixes

  • Farmland dries out overnight - Root cause was wateredUntil using a 20s real-time timer that expired as soon as chunks were unloaded
  • Farmland disappears from tracking after irrigation - Block ID changes from 38 (Base) to 3061 (Watered) via setBlockInteractionState() but was not in the tilledSoilBlockIds set
  • Planting seeds makes wet soil dry - Native WaterGrowthModifierAsset sets externalWater=false during crop ticks (only 1-block range). Resolved by using wateredUntil as backup

v1.2.0

Optimization

  • Chunk-based discovery with direct BlockSection access
  • Block ID caching instead of string comparisons
  • Scans all loaded chunks per cycle (~2-10ms for 1000 chunks)
  • blockChunk.contains(id) as quick filter on chunk and section level

v1.1.0

Chunk-Based Discovery

  • Farmland detection is no longer player-based
  • Scans all loaded chunks regardless of player position

v1.0.0

Initial Release

  • Automatic irrigation of farmland within a 4-block radius of water
  • wateredUntil-based system with periodic refresh