KeyActions
The KeyAPI mod is required for the client to work.
Bind server-side actions to keyboard keys — fully configurable, per-permission, no client mod required to use the plugin's core features… but way better with one.
KeyActions lets server owners define custom keybind-triggered actions in a simple config file, then push those bindings straight to players' clients. Each action can run a command as the console or as the player, gated behind a permission node, with per-player cooldowns to prevent spam.
How it works
- Define actions in
config.yml — give each one a display name, a default key, an optional permission, and a command to run.
- The plugin syncs the list to connected players automatically on join (and on
/keyactions reload), so every player always sees the current action set for your server.
- Players rebind keys client-side using the companion Fabric mod — no need to touch the server config to change a personal keybind.
- Pressing the key sends a lightweight trigger packet to the server, which checks permissions and cooldowns before executing the command.
Features
- ✅ Define unlimited actions, each with its own default key, display name, permission, and command
- ✅ Run commands as console or as the player — your choice per action
- ✅ Per-player, per-action cooldowns to stop key-spam abuse
- ✅ Live reload with
/keyactions reload — no restart needed
- ✅ Permission-gated: restrict powerful actions (fly, heal, teleport, custom kits, etc.) to specific ranks
- ✅ Lightweight plugin-messaging protocol — no extra dependencies, no database
Example use cases
- Give VIPs a one-tap
/heal or /feed key
- Let staff toggle
/vanish or /fly instantly without typing commands
- Quick-teleport keybinds (
/spawn, /warp home, etc.)
- Custom kit or cosmetic toggles bound to a single keypress
- Any command you'd normally bind to a key, now configurable per-server and per-permission
Requirements
- Server: Purpur or Paper, Minecraft 1.21.1
- Client (optional but recommended): KeyActions Client — Fabric mod that lets players see and rebind their available actions in a dedicated settings screen (default key to open it:
K)
Players without the client mod simply won't receive or trigger any actions — the plugin has no effect on vanilla clients.
Configuration example
actions:
heal:
display-name: "Heal"
key: "key.keyboard.h"
permission: "keyactions.heal"
executor: CONSOLE
command: "heal %player%"
cooldown-ms: 1000
toggle-fly:
display-name: "Toggle Fly"
key: "key.keyboard.f"
permission: "keyactions.fly"
executor: PLAYER
command: "fly"
cooldown-ms: 500
Commands & Permissions
| Command |
Description |
Permission |
/keyactions reload |
Reload config and resync all online players |
keyactions.admin |
/keyactions list |
List all configured actions |
keyactions.admin |
Each action also uses its own configured permission node (e.g. keyactions.heal) — leave it blank to allow everyone.
Source
Open source — feel free to fork, extend, or request features.