|
| 1 | +# UI-Utils 26x CevAPI |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +- 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](https://github.com/cev-api/Wurst7-CevAPI) and then bumped to **Minecraft 26.1 PR2** and put into a standalone mod. |
| 8 | +- On top of classic UI-Utils quality-of-life features, this build adds advanced packet tooling, command scanning and expanded UI controls. |
| 9 | +- 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](https://github.com/ui-utils/docs/blob/main/OverlayOverview.md). |
| 10 | +- If you are looking for a **1.21.11** version you can find that [here](https://github.com/cev-api/UI-Utils-CevAPI). |
| 11 | + |
| 12 | +## Build |
| 13 | + |
| 14 | +Build with Gradle (Java 25+): |
| 15 | + |
| 16 | +```powershell |
| 17 | +./gradlew clean build |
| 18 | +``` |
| 19 | + |
| 20 | +Artifacts land in `build/libs/`. |
| 21 | + |
| 22 | +## Getting Started |
| 23 | + |
| 24 | +1. Install Fabric Loader and Fabric API for your Minecraft 26.1 installation. |
| 25 | +2. Drop the built jar from `build/libs/` into your `mods/` folder. |
| 26 | +3. Launch Minecraft. Open any container — the UI‑Utils toolbox appears on the left. |
| 27 | + |
| 28 | +## Highlights |
| 29 | + |
| 30 | +- Simple, always‑available in‑GUI toolbox for handled screens |
| 31 | + - Close GUI without sending a packet |
| 32 | + - De‑sync tricks (close packet only) |
| 33 | + - Send/Delay queue for UI packets, with flush on demand |
| 34 | + - Copy GUI title JSON |
| 35 | +- Command (and Plugin) Scanner |
| 36 | + - Enumerate server side commands that are typically unavailable to the player by sending specialised packets |
| 37 | + - Optionally elicit only 'unknown' commands. Scans via packets then compares via client commands, whichever isn't available to the user is shown. |
| 38 | + - Your command list probing won't appear in server side logs |
| 39 | + - Can also run each command, run specific commands via packets or enumerate via client side commands |
| 40 | + - Great replacement for when the UI-Utils plugin scanner fails |
| 41 | +- Packet fabrication helpers (ClickSlot, ButtonClick) |
| 42 | + - In-game popup that is repositionable. |
| 43 | +- Added extra tools from [FrannnnDev's fork](https://github.com/FrannnnDev/ui-utils-advanced/) of UI-Utils |
| 44 | + - Leave & send, Disconnect & send, Save/Load GUI, Clear Queue, Queue, Resync Inv, Disconnect, Spam +/-, Send One, Pop Last |
| 45 | + - Queue helper and counter |
| 46 | + - ```.uiutils``` commands |
| 47 | + - Named GUI slot maps |
| 48 | + - Plugin scanner |
| 49 | +- Advanced Packet Tool (APT) |
| 50 | + - Lets you manage packet behavior per packet type (S2C & C2S) |
| 51 | + - Supports 3 independent modes: Log, Deny and Delay |
| 52 | + - Modes can overlap (Log & Deny Packet A but also Log & Delay Packet B) |
| 53 | + - Toggles for enabling modes as well as cycling through packet edit list |
| 54 | + - Delay is tick based |
| 55 | + - Searchable dual-list UI with select all/none controls |
| 56 | + - Optional ```Show Unknown Packets``` feature to allow ```class_####``` packets |
| 57 | + - Inspired by [HelixCraft's Packet Logger](https://github.com/HelixCraft/Fabric-Packet-Logger) |
| 58 | + - Runs in an external desktop window for now (Swing) |
| 59 | + - Open from the UI‑Utils overlay or by keybind (configurable in Settings) |
| 60 | +- Expanded Settings screen |
| 61 | + - Tri‑state Slot Overlay: OFF / HOVER / ALWAYS |
| 62 | + - Unified HSV color picker with target selector: |
| 63 | + - Button background color |
| 64 | + - Button text color |
| 65 | + - Overlay number color |
| 66 | + - Packet HUD text color |
| 67 | + - Overlay alpha and XY offsets |
| 68 | + - Resource‑pack bypass/deny toggles |
| 69 | + - Keybinds: restore GUI, delay toggle and open Advanced Packet Tool |
| 70 | + - Disconnect method selector (used by UI‑Utils “Disconnect” buttons) |
| 71 | + - Includes QUIT, packet-based kick styles and lag styles |
| 72 | + - Includes TIMEOUT mode (KeepAlive wait + block + delayed action) |
| 73 | +- Packet HUD |
| 74 | + - In-game HUD rendering of packet flow. |
| 75 | + - Format: |
| 76 | + - `888 IN / 999 OUT` |
| 77 | + - ` 20 QUEUED` (only shown when queue > 0) |
| 78 | + - HUD color is configurable in Settings |
| 79 | +- Themed UI‑Utils buttons |
| 80 | + - Colored button renderer is used across UI‑Utils screens and injected buttons |
| 81 | + - Removes mixed vanilla/colored button look |
| 82 | + |
| 83 | +#### Log Example |
| 84 | +``` |
| 85 | +[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=[]]] |
| 86 | +[12:52:54]: Fabricate ClickSlot: menu.containerId=6, syncIdMatch=true, diffDetail=[2: minecraft:oak_slabx11 -> empty] |
| 87 | +[12:52:54]: UiUtilsConnectionMixin: attempting to send UI packet class_2813 (sendUiPackets=true, delayUiPackets=false) |
| 88 | +``` |
| 89 | + |
| 90 | +#### UI‑Utils Commands |
| 91 | + |
| 92 | +Supported roots: |
| 93 | +- `.uiutils` |
| 94 | +- `uiutils` |
| 95 | + |
| 96 | +Main commands: |
| 97 | +- `help` |
| 98 | +- `enable` / `disable` |
| 99 | +- `close` |
| 100 | +- `desync` |
| 101 | +- `apt` (aliases: `advancedpacketscanner`, `advancedpackettool`) |
| 102 | +- `chat <message>` |
| 103 | +- `screen <save|load|list|info> [slot]` |
| 104 | +- `plugins` |
| 105 | +- `commands` |
| 106 | +- `queue <list|clear|sendone|poplast|spam [times]>` |
| 107 | +- `packethud <on|off|toggle>` |
| 108 | +- `delay <on|off|toggle>` |
| 109 | +- `sendpackets <on|off|toggle>` |
| 110 | +- `disconnectmethod <list|current|METHOD>` |
| 111 | +- `timeout <seconds>` |
| 112 | +- `lagmethod <list|current|METHOD>` |
| 113 | +- `settings` |
| 114 | + |
| 115 | +## Settings List |
| 116 | + |
| 117 | +- Slot overlay mode: `OFF` / `HOVER` / `ALWAYS` |
| 118 | +- Packet HUD toggle |
| 119 | +- Log to chat toggle |
| 120 | +- Bypass resource-pack toggle |
| 121 | +- Force-deny resource-pack toggle |
| 122 | +- Disconnect method selector |
| 123 | +- Timeout seconds selector (for `TIMEOUT` disconnect mode) |
| 124 | +- Timeout lag method selector (for `TIMEOUT` disconnect mode) |
| 125 | +- Color target selector |
| 126 | + - Button background color |
| 127 | + - Button text color |
| 128 | + - Overlay number color |
| 129 | + - Packet HUD text color |
| 130 | +- HSV color picker for selected target |
| 131 | +- Selected color hex field (`#RRGGBB`) |
| 132 | +- Slot overlay alpha |
| 133 | +- Slot overlay X offset |
| 134 | +- Slot overlay Y offset |
| 135 | +- Fabricate overlay background alpha |
| 136 | +- Restore GUI key field |
| 137 | +- Packet tool key field |
| 138 | +- Delay toggle key field |
| 139 | + |
| 140 | +## Notes on the Mojmap Migration |
| 141 | + |
| 142 | +- Entire codebase uses Mojang mappings for clarity and forward‑compat. |
| 143 | +- Mixins target 26.1 RC client internals; packet types are discovered at runtime with a reflective catalog for resilience across dot‑releases. |
| 144 | +- 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. |
| 145 | + |
| 146 | +## Credits |
| 147 | + |
| 148 | +- Original concept: [UI‑Utils](https://github.com/cev-api/UI-Utils-CevAPI) ([MrBreakNFix](https://github.com/MrBreakNFix) and [contributors](https://github.com/cev-api/UI-Utils-CevAPI/graphs/contributors)) |
| 149 | +- Modernization + new features: CevAPI |
| 150 | +- Advanced Packet Tool inspired by [HelixCraft's Packet Logger](https://github.com/HelixCraft/Fabric-Packet-Logger) |
| 151 | +- Extra UI-Utils options inspired by [FrannnnDev's fork](https://github.com/FrannnnDev/ui-utils-advanced/) |
| 152 | +- Published **with approval** from [MrBreakNFix](https://github.com/MrBreakNFix) |
| 153 | + |
| 154 | +## License |
| 155 | + |
| 156 | +This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See [LICENSE](./LICENSE). |
| 157 | + |
| 158 | +## Disclaimer |
| 159 | + |
| 160 | +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. |
0 commit comments