Radial Keys — Minecraft 1.21.1 / Fabric
A client-side radial selector for actions that share the same key. Each shared key becomes a saved group: choose one action on its wheel, then use that action with the shared key.
1. Install Minecraft Java Edition 1.21.1,Fabric Loader 0.16.10 or newer, and Java 21.
2. Put `radial-keys-1.0.0+1.21.1.jar` and Fabric API for Minecraft 1.21.1 in that instance's `mods` folder.
3. Launch the Fabric instance. This mod is client-only; it does not need to be on the server.
Fabric installer: https://fabricmc.net/use/installer/
Fabric API: https://modrinth.com/mod/fabric-api/versions?g=1.21.1&l=fabric
Actions that require holding a key
Use the center's opening-rule button to cycle through:
| Rule | Perform selected action | Open wheel |
|---|---|---|
| Hold to open | Short tap; fires on release | Hold past the delay |
| Alt + key | Press immediately; keep holding as needed | Hold Alt before pressing the shared key |
| Shift + key | Press immediately; keep holding as needed | Hold Shift before pressing the shared key |
| Ctrl + key | Press immediately; keep holding as needed | Hold Ctrl before pressing the shared key |
The modifier must already be down when the shared key is pressed. Changing the modifier during a held action will not interrupt it or open a wheel. Opening rules changed while a wheel is open apply to the next press. The center delay button changes the hold threshold. Use modifier mode for blocking, charging, channeling, or movement actions.
Saved categories / groups
Press F8 during gameplay to open group settings. Rename groups to Combat, Traversal, Magic, and so on; change their opening rule or disable an individual group. The settings key can be reassigned under the Radial Keys* category in Controls. The Assign keys in Controls button opens Minecraft's binding editor.
Groups are organized by physical key, with one named group per shared key. The actions come from the currently installed mods' actual key bindings; no action names are hard-coded. Each group stores its selected action, name, opening rule, delay, and enabled state in `config/radialkeys.json`. Removing a mod does not delete its stored selection; while that action is missing, the group falls back to its first available action. Changing an action to another key moves it to that key's group.
Compatibility and behavior
- Designed for actions using Minecraft's standard `KeyBinding.isPressed()` or `wasPressed()` APIs, including Fabric key bindings. Only the selected binding receives the managed input.
- Mods that read GLFW/raw input directly or replace the key-binding system may bypass this mod. Compatibility with a particular combat mod needs an in-game check with that mod installed.
- Standard controls retain their behavior when their keys are not shared. Disabling a group restores normal conflict behavior.
- Input is cleared when focus is lost, a different screen opens, or a world is exited, to prevent stuck actions. Repeated OS key events do not enqueue repeated action presses.
- Hold mode intentionally delays short-tap actions until release. Modifier mode dispatches on press and supports sustained holds. It is a physical hold, not a sticky/toggle latch.
- The wheel does not pause the world. No server-side combat actions are implemented by this mod; it selects among bindings provided by your other mods.
MIT licensed. Not affiliated with Mojang or Microsoft.

