Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

134 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HoloUI Editor

Visual web editor for HoloUI menu configurations. Build holographic menus on a calibrated canvas, edit every field the plugin actually parses, and export menus/<id>.json files (plus an images.zip) that drop straight into plugins/holoui/.

Version 3.0.0 — a from-scratch rewrite in arcane_jaspr (Dart, compiled to a fully static site). Replaces the retired Next.js editor.

Features

  • Visual canvas in block space: zoom/pan, grid + snapping, drag components, selection, keyboard nudge. Renders text (legacy & codes and MiniMessage, in the Minecraft font), item sprites, pixel-art image icons and animated icons at the exact in-game metrics (0.21875 blocks per text line, uiScale semantics, hitbox overlays matching the plugin's debugHitbox).
  • Full format coverage as the plugin's Gson actually reads it — all three component types (button / decoration / toggle), all four authorable icon types (text / textImage / animatedTextImage / item), both actions (command / sound with all 10 sound categories), toggle conditions, maxDistance, closeOnDeath, closeOnTeleport, customModelValue (the real key — not the customModelData the old schema documented).
  • Code view with two-way sync, plus split view.
  • Validation engine encoding the plugin's real parsing rules (lowercase registry keys, required action sources, silent-zero pitfalls like volume: 0, the &n/&k legacy-code trap, hitbox overlap warnings).
  • Image library: upload pixel art, preview exactly as the plugin rasterizes it, export images.zip laid out for plugins/holoui/images/.
  • Workspace: multiple menus, autosave to browser storage, undo/redo, templates, searchable item/sound catalogs.

Everything runs client-side. No server, no accounts, no network calls beyond loading the static assets.

Development

Requires Dart ≥ 3.10 and a checkout of arcane_jaspr at .deps/arcane_jaspr (a symlink to a local clone works):

git clone https://github.com/ArcaneArts/arcane_jaspr .deps/arcane_jaspr   # or: ln -s /path/to/arcane_jaspr .deps/arcane_jaspr
dart pub get
dart run jaspr_cli:jaspr serve      # dev server on :8080
dart test                           # core-logic test suite
dart run jaspr_cli:jaspr build      # static output in build/jaspr/

Releasing

HoloUI self-hosts this editor: /holoui builder start downloads the latest GitHub release asset named exactly builder_static.zip (with index.html at the ZIP root) and serves it from the game server. The release tag must be bare semver (3.0.0, never v3.0.0 — the plugin's semver parser rejects a v prefix).

  • Locally: tool/package_builder_static.sh builds and packages the ZIP.
  • CI: pushing a bare-semver tag runs .github/workflows/release.yml, which builds, attaches builder_static.zip to the release, and deploys GitHub Pages (https://holoui.volmit.com/). The workflow needs an ARCANE_JASPR_TOKEN repository secret with read access to ArcaneArts/arcane_jaspr.

Architecture

lib/model/        HoloUI JSON data model + codec (parser-truth, round-trip lossless)
lib/logic/        validation rules, Minecraft text parser, viewport math, hitbox geometry
lib/services/     localStorage, image library, catalogs, file transfer, clipboard
lib/state/        EditorStore (undo/redo, autosave), multi-doc workspace
lib/components/   shell (top bar, shortcuts, palette), canvas, inspector, panels, dialogs
web/assets/       fonts (Geist, lucide, Minecraft), item/sound catalogs, backdrop, brand
tool/             builder_static.zip packaging

The format contract was derived from the plugin's Java parsing code (art.arcane.holoui.config.* via VolmLib's Gson setup), not from the shipped JSON schema, which has drifted. Where the two disagree, this editor follows the code.

About

Web builder for creating and previewing HUI configs.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages