- This is a rewrite of the original UI-Utils 2.4.0, migrated to Mojang mappings (mojmap) which was ported out of Wurst-7-CevAPI and then bumped to Minecraft 26.x and put into a standalone mod.
- On top of classic UI-Utils quality-of-life features, this build adds advanced packet tooling, command scanning, macros, auto-duping and expanded UI controls.
- This application is designed and presented for people already familiar with UI-Utils. There will be no explanations or guide on how to use it in-game, you can instead find that here.
- If you are looking for a 1.21.11 version you can find that here but it will not have the majority of features in this project.
Build with Gradle (Java 25+):
./gradlew clean buildArtifacts land in build/libs/.
The default artifact version label is 26.1-26.2 to reflect the shared jar support range.
Default build target is Minecraft 26.2, and the runtime compatibility layer keeps the jar working across 26.1.x and 26.2.x.
If you want to compile specifically against 26.1.2, you can still override the versions at build time:
./gradlew build -Pminecraft_version=26.1.2 -Pfabric_version=0.145.4+26.1.2 -Ploader_version=0.18.4- Install Fabric Loader and Fabric API for your Minecraft
26.1.xor26.2.xinstallation. - Drop the built jar from
build/libs/into yourmods/folder. - Launch Minecraft. Open any container — the UI‑Utils toolbox appears on the left.
- Close GUI without sending a packet
- De‑sync tricks (close packet only)
- Send/Delay queue for UI packets, with flush on demand
- Copy GUI title JSON
- Enumerate server side commands that are typically unavailable to the player by sending specialised packets
- Optionally elicit only 'unknown' commands. Scans via packets then compares via client commands, whichever isn't available to the user is shown.
- Your command list probing won't appear in server side logs
- Can also run each command, run specific commands via packets or enumerate via client side commands
- Great replacement for when the UI-Utils plugin scanner fails
- Supports parsing commands for each plugin
- Supports parsing each plugin for vulnerabilities pursuant to the latest cache of DupeDB
- Reads packets on server join to determine the current AntiCheat, if any.
- Disable/Enable in settings.
- In-game popup that is repositionable.
Added Extra Tools From FrannnnDev's fork of UI-Utils
- Leave & send, Disconnect & send, Save/Load GUI, Clear Queue, Queue, Resync Inv, Disconnect, Spam +/-, Send One, Pop Last
- Queue helper and counter
.uiutilscommands- Named GUI slot maps
- Plugin scanner
- Lets you manage packet behavior per packet type (S2C & C2S)
- Supports 3 independent modes: Log, Deny and Delay
- Modes can overlap (Log & Deny Packet A but also Log & Delay Packet B)
- Toggles for enabling modes as well as cycling through packet edit list
- Delay is tick based
- Searchable dual-list UI with select all/none controls
- Optional
Show Unknown Packetsfeature to allowclass_####packets - Inspired by HelixCraft's Packet Logger
- Runs in an external desktop window for now (Swing)
- Open from the UI‑Utils overlay or by keybind (configurable in Settings)
- A macro is a named automation script made of ordered steps (actions and wait conditions).
- Macros can be saved, edited, duplicated, reordered, deleted, exported and imported.
- The macro editor supports:
- Add Action and Add Conditional pickers
- Per-step controls: move up/down, duplicate, edit, delete
- Scrollable step list with draggable scrollbar
- Undo/redo for editor changes
- Run Once (temporary) and Run (saved macro)
- Optional keybind assignment per macro
- The step options screen supports:
- Context-aware fields per action type
- Compact layout for simple actions
- Multi-value list fields (comma-separated input + Add/Clear)
- No empty editor for actions with no configurable options (for example
STOP_MACRO)
- Runtime behavior:
- Macros execute steps in order
WAIT_*conditions pause progression until matched (or timeout depending on the condition)STOP_MACROterminates execution immediately
- Import/export:
- Import reads
.nbtmacro files - Export accepts a folder path and writes
<macro-name>.nbt - Native pickers are available from
...buttons - Default directories are auto-created:
<gameDir>/config/ui-utils/macro_import<gameDir>/config/ui-utils/macro_export
- Import reads
- Uses a strategy matrix built from 218+ different methodologies inspired by DupeDB
- Accepts a plugin GUI open command plus an optional prepare command, so it can work with plugin inventory GUIs such as
/pv 1,/ec,/ah, or/shop - Player-inventory target slots are treated as seed items for plugin GUI lifecycles, not as a vanilla inventory dupe scan
- Per-category toggles let you narrow the run instead of running everything:
- Movement methods
- Close methods
- Reopen methods
- Packet-delay variants
- Validation
- Start from the main UI-Utils overlay or from the Autoduper options screen while a container is open
- Includes exact attempt replay, a visible abort overlay and a hold-to-abort key
- Success messages report the exact attempt number for easy replay
- Verbose mode toggle to find niche dupes even when similar attempts failed
- Tri‑state Slot Overlay: OFF / HOVER / ALWAYS
- Unified HSV color picker with target selector:
- Button background color
- Button text color
- Overlay number color
- Packet HUD text color
- Overlay alpha and XY offsets
- Resource‑pack bypass/deny toggles
- Close Delay and Command Delay sliders (tick based)
- Dedicated Keybinds screen for rebinding UI-Utils actions
- Legacy direct key fields still present: restore GUI and delay toggle
- Disconnect method selector (used by UI‑Utils “Disconnect” buttons)
- Includes QUIT, packet-based kick styles and lag styles
- Includes TIMEOUT mode (KeepAlive wait + block + delayed action)
- In-game HUD rendering of packet flow.
- Format:
888 IN / 999 OUT20 QUEUED(only shown when queue > 0)
- HUD color is configurable in Settings
- Positionable to all four corners
- Colored button renderer is used across UI‑Utils screens and injected buttons
- Removes mixed vanilla/colored button look
[12:52:54]: Fabricate ClickSlot: syncId=6, revision=1, slot=2, button=0, action=PICKUP, times=1, diffSlots=1, carriedBefore=<empty>, carriedAfter=class_10939[item=Reference{ResourceKey[minecraft:item / minecraft:oak_slab]=minecraft:oak_slab}, count=11, components=class_10936[addedComponents={}, removedComponents=[]]]
[12:52:54]: Fabricate ClickSlot: menu.containerId=6, syncIdMatch=true, diffDetail=[2: minecraft:oak_slabx11 -> empty]
[12:52:54]: UiUtilsConnectionMixin: attempting to send UI packet class_2813 (sendUiPackets=true, delayUiPackets=false)
Supported roots:
.uiutilsuiutils
Main commands:
helpenable/disableclosedesyncapt(aliases:advancedpacketscanner,advancedpackettool)chat <message>screen <save|load|list|info> [slot]pluginscommandsqueue <list|clear|sendone|poplast|spam [times]>packethud <on|off|toggle>delay <on|off|toggle>closedelay <ticks>commanddelay <ticks>(alias:cmddelay)sendpackets <on|off|toggle>disconnectmethod <list|current|METHOD>timeout <seconds>lagmethod <list|current|METHOD>settingsautoduper <open|start|stop|status|slot|command|attempt|hybrid [openCommand]>
- Slot overlay mode:
OFF/HOVER/ALWAYS - Packet HUD toggle
- Log to chat toggle
- Bypass resource-pack toggle
- Force-deny resource-pack toggle
- AntiCheat detector toggle
- Disconnect method selector
- Timeout seconds selector (for
TIMEOUTdisconnect mode) - Timeout lag method selector (for
TIMEOUTdisconnect mode) - Color target selector
- Button background color
- Button text color
- Overlay number color
- Packet HUD text color
- HSV color picker for selected target
- Selected color hex field (
#RRGGBB) - Slot overlay alpha
- Slot overlay X offset
- Slot overlay Y offset
- Fabricate overlay background alpha
- Restore GUI key field
- Packet tool key field
- Delay toggle key field
- Keybinds page: configurable bindings for restore, packet tool, scanners, autoduper start, packet queue controls, disconnect flows and chat field send
- UI close delay ticks
- UI command/chat delay ticks
- Autoduper: plugin GUI open command, prepare command, target slot, max attempts, step delay, verbose mode, drop validation, single-attempt replay, abort key, hold-to-abort toggle and category filters
- Autoduper category filters include hybrid command+interact reopen and finish actions (leave+send / disconnect+send)
Open Macros from the overlay to use the Macro Library.
Workflow:
- Create or edit a macro, then save it.
- To export, select the macro and choose an export folder (
...opens folder picker). - To import, choose a
.nbtfile (...opens file picker) and import it.
Path behavior:
- Import field points to:
<gameDir>/config/ui-utils/macro_import - Export field points to:
<gameDir>/config/ui-utils/macro_export - Both folders are created automatically if they do not exist.
- Entire codebase uses Mojang mappings for clarity and forward‑compat.
- The current jar is built against 26.2 and includes runtime shims for 26.1.x screen/chat API differences.
- Packet types are discovered at runtime with a reflective catalog for resilience across dot‑releases.
- APT’s UI is intentionally external for now to avoid churn in the in‑game widget APIs and keep the dual‑list UX snappy. May become internalised in the future.
- Original concept: UI‑Utils (MrBreakNFix and contributors)
- Modernization + new features: CevAPI
- Advanced Packet Tool inspired by HelixCraft's Packet Logger
- Extra UI-Utils options inspired by FrannnnDev's fork
- Published with approval from MrBreakNFix
- DupeDB for their dupe list. Will eventually add API access for live updates.
This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See LICENSE.
UI‑Utils is a debugging and testing toolkit. Be nice, follow server rules and local laws. You are responsible for how you use these tools.


