PerfectHolograms v2.0.2
2026-05-26
Hytale Update 5 compatibility update.
Changes:
- Updated for Hytale Update 5 (Pre-Release 5).
- Recompiled against the latest server API (JOML vectors, new permission and HUD APIs).
- Fixed the red "Target Version" warning shown in the mod manager.
- No feature changes. Your existing configs, data and saved files are kept as is.
How to update:
- Stop your server.
- Replace the old PerfectHolograms jar with this one.
- Start your server. Nothing else to do.
PerfectHolograms v2.0.2
- Fix default font rendering conflict with other mods (BetterNamePlate, mysticnametags, etc.)
- Renamed all default font assets to unique prefixed names (GlyphBase_default, Glyph_default_*)
- Default font textures moved to dedicated subfolder
- Fixed image asset pack manifest server version
PerfectHolograms v2.0.1
- Fix hologram duplication after server restart (ghost white entities)
- Added GlyphComponent marker on all hologram entities for reliable identification
- Added GlyphCleanupSystem that automatically removes orphan/ghost entities on startup
- Added spawn cooldown (10s) to prevent rapid respawn loops from visibility scheduler
- Added stale UUID cleanup for entities from previous sessions
- Added shutdown entity cleanup via world thread
- Fixed image asset pack manifest using outdated server version
- Added missing glyph asset logging for font debugging
- Added font validation on hologram load
PerfectHolograms v2.0 - Patch Notes
Full UI Redesign
New Features
- New unified admin interface (/ph menu) with sidebar + 5 tabs
- Properties tab: position display, adjust dX/dY/dZ, rotation, line spacing, scale, image scale, font dropdown, SAVE button
- Lines tab: paginated list (10 lines), reorder up/down, edit, delete, quick add, clear all, 4 templates (Welcome, Rules, Shop Info, Event)
- Rich Editor tab: 10 color presets, custom hex, gradient, bold/italic/underline/rainbow, live preview
- Images tab: add from file or URL, placeholders reference
- Settings tab: language dropdown, rich text syntax reference, about
- Sidebar: instant search, "Near Me" filter (50 blocks), 8 holograms per page with pagination
![]()
v1.5 Features (included)
- Rename hologram directly from the UI header
- Duplicate button with auto-generated name
- Position adjust with dX/dY/dZ offset fields
- Image loading from URL (HTTP/HTTPS)
- Clear All Lines button
- 4 ready-made templates applied from the Lines tab
Bug Fixes
- 8 fonts: default, sans, serif, thin, cursive, impact, comic, mono (32x32 glyphs)
- 33 accented characters (1032 total glyphs across 8 fonts)
- Animated GIF support with sprite sheet extraction (up to 32 frames)
- URL image support with auto-download
- Proportional character spacing with per-character width maps
- Font dropdown selector
Cleanup
- Fixed hologram duplication on server restart -- restored UUID-based entity tracking from v1.4
- Fixed entity cleanup using proper removeEntity(ref, RemoveReason.REMOVE) via UUID lookup
- Entity UUIDs now saved in holograms.json for reliable cross-restart despawn
- Entities properly cleaned up -- no more ghost holograms
- Removed billboard mode (fixed holograms only)
- Removed 6 legacy files (PHListPage, PHCreatePage, PHEditorPage, PHLineEditorPage, HologramPacketFilter, HologramViewerComponent)
- Single .ui file instead of 3
- Streamlined codebase
Full GUI Localization
The entire admin GUI (/ph menu) is now fully translated when switching language with /ph setlang.
Bug Fix:
What's translated now:
- Fixed /ph setlang <lang> not translating the GUI — all UI text was hardcoded in English and ignored the language setting.
Supported languages: English, French, German, Spanish, Italian, Portuguese (/ph setlang EN|FR|DE|ES|IT|PT)
- Sidebar: Sections title, + New, Move Here, Face Me, Delete, Close buttons
- Editor panel: All section headers (Position, Rotation, Line Spacing, Scale, Image Scale, Font, Lines, Image, Actions, Templates), all action buttons (Set Yaw, Set Spacing, Set Scale, Add, Rich Editor, Add Image, Copy), hints and descriptions
- Line Editor panel: Save Line, Clear, Back buttons, Preview/Format Helper titles, color names (Red, Orange, Yellow, Green, Cyan, Blue, Purple, Pink, White, Gold), format buttons (Bold, Italic, Underline, Rainbow), Hex/Gradient labels and Apply buttons
- Status messages: All error and confirmation messages (invalid values, copy success, template applied, etc.)
+82 new translation keys added across all 6 languages.
PerfectHolograms v1.3 — Patch Notes
Bug Fixes
- Fixed holograms not rendering after returning from a distant area. When a player traveled far away from a hologram, the chunk would unload and Hytale would destroy the hologram entities. Upon returning, the entities were never re-created — requiring a full server reload to see them again. A new background visibility checker now runs every 5 seconds, automatically detecting destroyed hologram entities and respawning them as soon as the player returns within render distance.
Technical Details
- Added verifyEntityVisibility scheduler (5s interval) to HologramManager
- For each world with online players, checks if the first entity of each hologram is still alive via getRefFromUUID + isValid
- If dead (chunk was unloaded then reloaded), clears stale UUID tracking and respawns the hologram
- Minimal performance impact: only 1 UUID lookup per hologram, runs on game thread via world.execute()
PerfectHolograms v1.2 — Patch Notes
Fixed: Holograms Despawning on Relog
Holograms would disappear when a player disconnected while standing near them. Reconnecting did not bring them back — a manual /ph reload was required every time.
Root cause: When the last player leaves a chunk area, Hytale automatically unloads the chunk and destroys all ECS entities in it — including hologram glyph entities. The plugin only spawned holograms on the very first player join per world session, so it assumed they were still alive on reconnect and never respawned them.
Fix: The plugin now verifies hologram entity integrity on every player join. If Hytale has cleaned up the entities (chunk unload, server GC), they are automatically respawned. No more /ph reload needed after relogging.
Technical
- New verifyAndRespawnIfNeeded() method checks the ECS store for each hologram's tracked entity UUIDs
- PHJoinSystem now runs this check on every player join, not just the first one per world
- Only affected holograms are respawned — holograms in other chunks that are still alive are left untouched
- Server log now prints "Hologram 'xxx' entities were cleaned up — respawning..." for visibility
PerfectHolograms v1.1 — Patch Notes
New: Unified Admin UI with Sidebar
The entire admin interface has been redesigned into a single window with sidebar navigation, replacing the previous 4 separate pages.
- Left sidebar displays the hologram list (4 rows, paginated) with quick actions
- Click any hologram to open the editor — no more jumping between windows
- Section tabs: Editor and Lines (rich text editor)
- Quick actions in sidebar: Move Here, Face Me, Delete, Close
- + NEW button creates a hologram at your position instantly
New: Line Reordering (UP/DOWN)
Each line in the editor now has UP and DOWN buttons to reorder lines without deleting and recreating them. The hologram respawns automatically after reordering.
New: Templates
4 preset template buttons at the bottom of the editor that insert pre-formatted hologram content with one click:
- Welcome — Server welcome message with gradient colors
- Rules — Formatted server rules list
- Shop Info — Shop location indicator
- Event — Rainbow event announcement
New: Rich Text Preview
The line editor now shows a live preview of the formatted text, stripping tags to show the plain text result as you build your line.
Improvements
- Switched from @DecoratedContainer to Container for a cleaner UI without the bottom diamond decoration
- Line list in editor is paginated (10 per page) with zebra striping for readability
- Font selection buttons always visible in the editor section
- Image hint text displayed below the Add Image field
Bug Fixes
- Fixed holograms not spawning in multi-world setups — Holograms in world A were failing to spawn when triggered from world B's thread. Each hologram now spawns on the correct world thread via targetWorld.execute().
- Added public respawnByName() method to HologramManager for reliable line reordering
Technical
- Version: 1.1
- New files: PHAdminPage.java, PHAdminNone.ui, PHAdminEditor.ui, PHAdminLines.ui
- Old pages (PHListPage, PHCreatePage, PHEditorPage, PHLineEditorPage) still included for backward compatibility but no longer used by the menu command
