promotional bannermobile promotional banner

Turning Seasons

A standalone Hytale mod that automatically cycles through Spring, Summer, Autumn, and Winter with dynamic weather, atmosphere, lighting, and particle effects across 12 unique weather presets.

File Details

TurningSeasons-v1.1.2.zip

  • R
  • Jun 9, 2026
  • 62.27 KB
  • 80
  • 0.5

File Name

TurningSeasons-v1.1.2.zip

Supported Versions

  • 0.5

Turning Seasons — Changelog

v1.1.2 — Admin season-control + cross-version armor + runtime "black box"

A control + robustness release. Zero gameplay changes by default — same four seasons, 12 weather presets, persistence, and /season command, all open to everyone out of the box. New this version: server owners can optionally choose who may change the season. Verified by compiling against the real 0.4.0, 0.5.4, and 0.6.0-pre.2 server jars — the command + bootstrap API surface is identical on all three.

Admin-configurable season control (new)

Two new config keys decide who can change the season (/season set, skip, length); everyone can always view it:

  • "seasonControl": "everyone" (default) — any player can change it, exactly as before.
  • "seasonControl": "permission" — only players holding the "controlPermission" node (default turningseasons:control) may change it. Grant that node to whoever you want — a person, a staff rank, a group — through your server's permission system. The mod doesn't decide who has the power; you do.

The console/operator always has access. The check uses Hytale's own PermissionHolder API (verified present on 0.4 / 0.5 / 0.6) and fails closed. Upgrading servers keep their existing config file, so control stays everyone until you opt in — delete the config to regenerate it with the new keys documented, or add the two keys by hand.

Commands can no longer throw a raw error at a player

/season is now wrapped in a defensive backstop: any unexpected runtime error is logged for the admin (with the exact input typed, so it stays diagnosable — never silently swallowed) and the player sees a clean "something went wrong — it's been logged" message instead of a red stack-trace error. Every chat line also routes through a fail-safe sender, so one bad send can't abort a multi-line reply.

Startup "black box" — logs the running Hytale build

On load the mod records the live patchline + version to the server log, e.g. Hytale runtime: patchline=release, version=0.5.4, read defensively off UpdateService so it can never break startup. Any future bug report is now diagnosable at a glance — we can see exactly which Hytale build a player is on.

Messaging is now version-agnostic (capability detection)

Player messages try the modern PlayerRef.sendMessage (present on 0.4 / 0.5 / 0.6) and fall back reflectively to legacy Player.sendMessage, so chat output adapts to whatever the running engine supports and never throws.

Removed dead code surfaced by the cross-version check

The PlayerReadyEvent "legacy fallback" registration was removed. It is a keyed event on every real Hytale jar, so the old unkeyed registration never actually compiled against the engine (only against the build stub) and never fired at runtime. PlayerConnectEvent already handles the player-join bootstrap on all three versions.

Compatibility

  • ServerVersion "*". Verified to compile against 0.4.0, 0.5.4, and 0.6.0-pre.2.
  • Save-compatible — state file format unchanged. Drop the new JAR in over the old one.