hKeyAll
A lightweight Paper and Purpur plugin that gives each player key rewards on their own independent online timer.
What does it do?
hKeyAll automatically awards configurable key rewards to players as they accumulate online time. Every player has their own timer, and progress is saved across logouts and server restarts.
| Feature | Description |
|---|---|
| Individual Timers | Each player has an independent reward timer |
| Online Time | Timers advance only while players are online |
| Persistent Progress | Timer progress survives logouts and server restarts |
| Randomized Intervals | Reward intervals are randomized between configured minimum and maximum durations |
| Configurable Rewards | Reward names and commands can be customized in config.yml |
| Command Aliases | Configure additional command aliases |
| Custom Permissions | Configure the permission nodes for player and admin commands |
Set both timer values to 3600 for a fixed one-hour reward interval.
Commands
| Command | Permission | Description |
|---|---|---|
/hkeyall time |
hkeyall.time |
Shows your remaining time until the next reward |
/keyall time |
hkeyall.time |
Alias for /hkeyall time |
/hkeyall reload |
hkeyall.admin |
Reloads configuration, aliases, and saved timers |
/keyall reload |
hkeyall.admin |
Alias for /hkeyall reload |
The base command /hkeyall is always registered. By default, /keyall and /hka are also registered as aliases.
Permissions
| Permission | Default | Description |
|---|---|---|
hkeyall.time |
OP | Allows checking the next key timer |
hkeyall.admin |
OP | Allows reloading hKeyAll |
Permission nodes are configurable in config.yml:
permissions:
time-command: "hkeyall.time"
reload-command: "hkeyall.admin"
Features
- Independent reward timers for every player
- Online-time tracking, excluding offline time
- Persistent timer progress across logout and server restarts
- Randomized reward intervals
- Configurable reward names and console commands
- Configurable command aliases
- Configurable command permission nodes
- Player command to check remaining reward time
- Admin reload command
- Placeholder replacement in reward commands
- Lightweight standalone implementation
Requirements
| Requirement | Version |
|---|---|
| Minecraft | 1.19–26.3 |
| Server Software | Paper or Purpur |
| Java | 17 |
hKeyAll uses one universal JAR compiled against the Paper 1.19 API to maintain compatibility with the supported server versions without relying on newer-only APIs.
Installation
- Download the latest hKeyAll JAR.
- Place the JAR in your server's
pluginsfolder. - Start or restart your server.
- Edit the generated
plugins/hKeyAll/config.ymlfile. - Configure your reward intervals, reward commands, permissions, and aliases.
- Run
/hkeyall reloadafter making configuration changes.
Configuration
Timer intervals
The minimum and maximum reward intervals are configured in seconds.
timer:
minimum-seconds: 1800
maximum-seconds: 7200
With these example values, each reward interval is randomized between 30 minutes and 2 hours of online time.
For a fixed one-hour interval:
timer:
minimum-seconds: 3600
maximum-seconds: 3600
Command aliases
Configure aliases in config.yml:
command:
aliases:
- keyall
- hka
/hkeyall is always registered as the base command. Aliases are registered on startup and refreshed by /hkeyall reload.
If another plugin already owns an alias, hKeyAll skips that alias and logs a warning.
Permissions
Configure the permission nodes used by commands:
permissions:
time-command: "hkeyall.time"
reload-command: "hkeyall.admin"
Rewards
Rewards define a name, whether the reward is enabled, and the command to execute.
rewards:
- name: vote
enabled: true
command: "crate key give %player% vote 1"
Reward commands should be valid console commands for the plugins installed on your server.
Placeholders
Reward commands support the following placeholders:
| Placeholder | Description |
|---|---|
%player% |
Player's Minecraft username |
%uuid% |
Player's UUID |
%reward% |
Name of the selected reward |
These placeholders are replaced when the configured reward command executes.
Building from Source
Build hKeyAll using the included Gradle wrapper.
.\gradlew build
The compiled JAR is written to:
build/libs/
Targeting older servers
The build intentionally targets the Paper 1.19 API to support the documented Minecraft versions.
Do not increase paperApiVersion unless you are dropping older server support or preparing separate JARs for different server versions.
Important Notes
- Each player has an independent timer.
- Timers count online time only, not offline time.
- Timer progress persists across logout and server restarts.
- Reward intervals are randomized between
timer.minimum-secondsandtimer.maximum-seconds. - Set both interval values to
3600for a fixed one-hour interval. - Reward names, commands, permissions, messages, and aliases are configurable in
config.yml. /hkeyallis always registered as the base command.- Conflicting aliases are skipped, and a warning is logged.
- hKeyAll does not award offline time.
Author
- HBOJ
License
See the repository's license file for the applicable license terms.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
Timed KeyAll 1.0.0 1.0.0 |
1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
|
paper, purpur
|
Download |