Compatibility matrix

Updated 28 October 2026

Built from the capability registry the plugin itself reports (/draxgui status sums it up per client family). Each column is a shader-interface family; one representative client version per family was run (in brackets). Other versions in a family are expected to behave the same but were not run.

Legend: ✅ verified on a real client with the product build · 🧪 proven only in an early prototype · ⚠️ works with a documented limitation · ❔ implemented, not run on that family · ⏳ requested, not implemented · — not offered by design.

Server: Paper only (1.21.4-232, 1.21.8-60, 1.21.11-132, 26.1.2-74, 26.2-134, 26.3-209 tested) with PacketEvents 2.14.0. JDK 21 for 1.21.x, JDK 25 for 26.x. Clients: vanilla; Iris 1.8.8 + Sodium 0.6.13 on Fabric 0.19.5 for 1.21.4 (Complementary Reimagined r5.9, BSL v10.1.5, shaders off). Windows 11, 1280×720, GUI scale 2, loopback.

Java — Shader-Safe (HUD-layer overlay)

Feature 1.21.4-1.21.5 (ran 1.21.4) 1.21.6-1.21.8 (ran 1.21.8) 1.21.9-1.21.11 (ran 1.21.11) 26.1 (ran 26.1.2) 26.2 (ran 26.2) 26.3 (ran 26.3)
pointer ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
click ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
drag ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
wheel ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
keyboard 🧪 proof only ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
hover_appearance ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
anchoring ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
smooth_clip ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
rotation 🧪 proof only ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
animation_60fps ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
iris_active_shaders ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
tooltip ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
open_animation ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ❔ not run
animated_images ⚠️ limited ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
text_custom_font ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
player_head ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
qr_code ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
input_anvil ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
input_chat ✅ verified ⏳ not built ⏳ not built ⏳ not built ⏳ not built ⏳ not built
hud_overlay ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
popup ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified
move_scale ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
player_model ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited
shader_compile ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified

Java — Standard (world-space panels)

Feature 1.21.4-1.21.5 (ran 1.21.4) 1.21.6-1.21.8 (ran 1.21.8) 1.21.9-1.21.11 (ran 1.21.11) 26.1 (ran 26.1.2) 26.2 (ran 26.2) 26.3 (ran 26.3)
pointer ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ✅ verified
click ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ✅ verified
hover_appearance ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ✅ verified
move_scale ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
rotation 🧪 proof only ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
keyboard ✅ verified ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run
tooltip — not offered — not offered — not offered — not offered — not offered — not offered
open_animation — not offered — not offered — not offered — not offered — not offered — not offered
iris_active_shaders ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited ⚠️ limited
animated_images ❔ not run ❔ not run ❔ not run ❔ not run ❔ not run ✅ verified
player_model ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified ✅ verified

Bedrock (Geyser + Floodgate forms)

Feature State Reason
form_input ✅ verified Custom-form text field; value stored, over-long entries rejected with a banner (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
forms ✅ verified Plain native Simple/Custom forms (the fallback without the pack): clicks, pages, toggles, sliders, submit, refresh on value change (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
custom_screens ✅ verified Screens drawn as custom Bedrock screens from the build's .mcpack (JSON-UI layouts): the Java pictures and colours, positioned texts, tabs, scrolling lists, toggles, bars; sliders and inputs open a native editor; needs the .mcpack in Geyser, otherwise plain forms (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
mcpack_export ✅ verified Deterministic .mcpack loaded by Geyser and downloaded by the client; button pictures and custom screen layouts (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
hover_appearance ✅ verified Element hover and pressed looks on custom screens, drawn by the client (mouse; touch has no hover; plain forms use Bedrock's own highlight) (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
animated_images ✅ verified Animated pictures play as client-side flip books on custom screens at the asset's average frame rate (plain forms show frame 1) (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
every_x_seconds — not offered Does not run for Bedrock players (requested behaviour; seen not running on a client)
move_scale — not offered Java only (requested behaviour; refused on a client)
open_animation — not offered Not played: every refresh reopens the form (requested behaviour; not played on a client)
rotation ⚠️ limited Custom screens draw rotated pictures rotated (not checked on a client) and texts unrotated; plain forms draw everything unrotated (seen on a client)
live_values ⚠️ limited A form is a snapshot: custom screens refresh after every choice, and on value changes with reopenOnValueChange (seen on a client)
custom_font — not offered Bedrock text always uses the Minecraft font (requested behaviour)
hud_overlay ✅ verified HUDs and popups drawn by the build's .mcpack (HUD layouts): pictures, bars, changing texts through hidden boss bars, popup stacking; other plugins' titles kept; needs the .mcpack in Geyser, otherwise no HUDs (Bedrock 26.52 on Windows (mouse/keyboard) via Geyser 2.12.0 + Floodgate 2.2.5 on Paper 26.3)
popup_animation — not offered Popup enter/exit animations are not played on Bedrock (requested behaviour)

Bedrock 26.52 on Windows (mouse and keyboard) was run through Geyser and Floodgate on Paper 26.3, with custom screens, HUDs and popups and with plain forms; mobile, touch and controller input were not tested (see Bedrock players).

Build reproducibility

Packs are byte-identical for identical inputs on one JDK. Projects with imported fonts are the exception across JDKs: their glyph atlases are drawn by the JDK font engine, so another JDK build can change those pack hashes (the text looks the same). Projects without imported fonts do not depend on the JDK font engine.