Documentation In Progress
main@81c5a21
Hytale Modding
Established InformationServerInterface

UI Customization

Information about UI customization in Hytale.

UI can be customized via server-side modding. Many of the UI pages shown to players are available to be modified by server owners through mods.

UI Customization in Hytale

Hytale provides extensive UI customization capabilities through server-side modding, allowing server owners to modify many of the UI pages that players interact with.

Control Flow

The UI system in Hytale follows a specific control flow pattern:

  1. Server sends UI data to the client
  2. Client renders the UI
  3. User interacts with the UI (e.g., pressing a button)
  4. Client sends the interaction event to the server
  5. Server executes the callback logic for the event

This architecture means:

  • The client is responsible for rendering UI and sending user interactions to the server
  • The server handles all the actual logic behind user interactions
Possible Performance Implications

Because the server processes all UI logic, there is an inherent latency impact on UI responsiveness. Button clicks and other interactions must travel to the server before taking effect, meaning network ping directly affects UI responsiveness.

Additionally, since client-side modding is not supported, no modded values persist on the client.

UI Layout Assets

Hytale's UI customization system works through the following structure:

  • UI Layout: Sent to the client as an asset
  • UI Behavior: Defined in Java code
  • Custom Layouts: Enables creation of bespoke UI layouts rather than repurposing existing ones (unlike inventory menu modifications in Minecraft)

UI Framework Implementations

Hytale currently supports multiple UI implementations, with plans to consolidate on NoesisGUI:

Legacy Implementation

  • Serves as an example of server modding capabilities
  • Uses a combination of in-game elements, UI Markup Assets, and Java mod code
  • Utilizes a legacy custom markup language
  • Will be deprecated in favor of NoesisGUI

NoesisGUI (Primary Framework)

  • Uses XAML Markup Language for UI definition
  • Supports multiple languages for internationalization
  • Runs on C# bindings on the client side (not C++)
  • Represents the future direction of Hytale's UI system

Third Framework

  • Currently being phased out
  • Will be replaced by NoesisGUI as part of the consolidation effort

Performance Considerations

Due to the server-side nature of UI processing, there are inherent performance characteristics to consider:

  • Latency Impact: Button clicks and UI interactions must travel to the server before taking effect, meaning network ping directly affects UI responsiveness
  • No Client Persistence: Since client-side modding is not supported, no modded values persist on the client
  • Optimized Architecture: Hytale's system is designed to minimize latency through efficient communication protocols and optimized server performance, ensuring smooth interactions despite server-side processing requirements

The architecture prioritizes security and consistency by centralizing UI logic on the server while maintaining responsive user experiences