promotional bannermobile promotional banner

HyperFactions

Factions reimagined for Hytale: visual GUIs, strategic power systems, and territory warfare done right.

File Details

HyperFactions-0.13.0.jar

  • R
  • Mar 28, 2026
  • 4.81 MB
  • 42
  • Early Access

File Name

HyperFactions-0.13.0.jar

Supported Versions

  • Early Access

Summary

HyperFactions 0.13.0 brings full compatibility with the latest Hytale Server API changes (palette-indexed MapImage, updated StateData), fixes several crash scenarios, and reduces Sentry noise from transient/environmental errors.


Changed

World Map Rendering — Palette-Indexed MapImage Adaptation

The Hytale Server API replaced the direct-pixel MapImage(width, height, int[] data) constructor and public data field with a palette-indexed system using palette, packedIndices, and bitsPerIndex. This release adapts all world map rendering:

  • ClaimImageBuilder now builds raw RGBA pixels in an internal buffer during chunk rendering, then encodes to palette-indexed format (unique color extraction → bit-width calculation → packed index encoding) when getImage() is called. Supports 4/8/12/16 bits-per-index depending on palette size, matching Hytale's native ImageBuilder thresholds.
  • ChunkMapAsset (faction GUI chunk map) now decodes palette-indexed MapImage data back to raw RGBA pixels for BufferedImage composition, handling variable bit-width unpacking across byte boundaries.

Block State API Update

  • BlockUseProtectionSystem updated to use StateData.getStateForBlock(blockType.getId()) in place of the removed StateData.getId() method. This preserves door/gate/container detection for zone flag enforcement.

Build Tooling

  • Gradle wrapper upgraded from 8.12 to 9.4.1 for Java 25 (class file major version 69) compatibility.

Fixed

Admin GUI

  • Fix crash on Admin Zone Integration Flags page — missing Flag5 (essentials_back) UI element caused #Flag5Name.Text selector not found error when opening the integration flags configuration page.

Error Handling & Sentry Noise Reduction

  • StorageUtils.writeAtomic — downgrade .bak copy failure from Sentry error to warn log. Backup file creation is best-effort and file contention during concurrent writes is transient.
  • BackupManager.createBackup — fix crash when backups/ directory is deleted after plugin init. The directory is now re-created before each backup operation.
  • ConfigFile.save — fix crash-safety by using atomic write (write to temp file, then rename) to prevent truncated config files on server crash or unexpected shutdown.
  • ConfigFile.load — fix Sentry spam on corrupt JSON config files. Corrupt files are now auto-renamed to .corrupt, defaults are recreated, and a warning is logged instead of sending to Sentry.
  • UpdateChecker — fix Sentry noise for DNS/network failures. UnknownHostException, ConnectException, and SocketTimeoutException are now caught separately and logged as info-level messages instead of Sentry errors.

Upgrade Notes

  • This release requires the latest Hytale Server build with the palette-indexed MapImage API.
  • No config migration needed — all changes are code-level API adaptations.
  • The Gradle wrapper was upgraded to 9.4.1 — developers building from source on Java 25 should pull the updated wrapper.

Full Changelog: https://github.com/HyperSystems-Development/HyperFactions/compare/0.12.0...0.13.0