promotional bannermobile promotional banner

HG KeyRadial

Resolve Minecraft keybinding conflicts with a radial wheel — press a conflicted key and pick which action should fire.
Back to Files

[HG]KeyRadial-1.0.1.jar

File name[HG]KeyRadial-1.0.1.jar
Uploaded
Sep 22, 2026
Downloads
13
Size
38.3 KB
Mod Loaders
Forge
File ID
8946599
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:hg-keyradial-1684179:8946599")

Learn more about Curse Maven

What's new

### English

**New**

- Config screen: the intercepted-key list now supports 3 sort modes, cycled with a button — **Default** / **By conflict count** / **By key code**.
- Config screen: added an **Only enabled** filter button that lists only the keys whose interception is currently turned on (the panel header then shows `shown/total`).
- Default order: modifier keys (Shift / Ctrl / Alt / Super, left and right) at the top, WASD + Space at the bottom, everything else sorted by key code.

**Fixed**

- Rows no longer overflow the panel border when many conflicting keys are listed (only complete rows are drawn).
- Fixed a wheel selection triggering the wrong action when that action opens a GUI. Opening a screen while the conflict key was still physically held made the mod stop managing that key, so the still-held key leaked to other mods (for example an unrelated crawl / crouch action fired).
- Fixed leftover "pressed" state on the other actions bound to the same key. Closing the wheel makes Minecraft re-sync every keybinding from the physical keyboard state (`KeyMapping.setAll()`), which marked unselected actions as held — a non-selected action could then fire (e.g. a crawl keybind), and an event-driven panel keybind could open its GUI on the next key press. KeyRadial now keeps **only the selected action** pressed while it owns the key.

**Notes**

- Diagnostic debug logging is disabled in release builds.
- Known limitation: mods that poll the raw physical key (`InputConstants.isKeyDown`) instead of KeyMapping state cannot be isolated per selection. Their input is still suppressed, but a wheel selection cannot be routed to them.

---

### 中文

**新增**

- 冲突按键面板:左侧拦截键列表新增 3 种排序方式,用按钮循环切换 —— **默认排序** / **按冲突按键数量排序** / **按 key code(ASCII 码)排序**。
- 冲突按键面板:新增 **仅已启用** 过滤按钮,只显示当前已开启拦截的按键(面板标题会显示 `已显示/总数`)。
- 默认排序:修饰键(Shift / Ctrl / Alt / Super,左右均含)排在最前,WASD 与空格排在最后,其余按键按 key code 排序。

**修复**

- 冲突按键过多时列表行会超出面板边框(现在只绘制完整行)。
- 修复「轮盘选中的功能会打开界面时,却触发了错误功能」:界面打开时物理键仍被按住,旧逻辑会因此放弃管理该键,导致仍按住的按键泄漏给其它模组(例如误触发无关的爬行/下蹲动作)。
- 修复同键上其它功能的「按下状态」残留:关闭轮盘时,Minecraft 会按物理键盘状态重新同步所有按键绑定(`KeyMapping.setAll()`),把**未选中**的功能也标记为按下 —— 于是未选中的功能会被触发(例如爬行键位),而事件型的面板键位会在下一次按键时打开它的界面。现在 KeyRadial 在接管某个键期间,**只保留选中功能**处于按下状态。

**说明**

- 正式版已关闭诊断调试日志(不再写入 `logs/keyradial-debug.log`)。
- 已知限制:直接轮询物理按键(`InputConstants.isKeyDown`)而不读 KeyMapping 状态的模组,无法做到「按选择隔离」;它们的输入仍会被拦截吞掉,但轮盘无法把功能路由给它们。

This mod has no additional files