KeyAllDistributor
Author: NotGamerPratham
Website:
https://notgamerpratham.com
Automatically distribute keys (or run any commands) to online players in configurable, looping cycles. Pure Java, production-ready, no Skript.
[HR]
Features
- Per-player timers — each player has their own independent countdown instead of one global timer.
- Random delays — per-phase delay-min / delay-max for variable reward intervals.
- Permission-based rewards — skip players who lack a required permission per phase.
- Reward commands — define unlimited commands per phase; supports %player_name%.
- Randomized command pools — pick: N selects N random commands from the pool per reward.
- Countdown title system — Title & Subtitle every second in the final 10 seconds before a reward.
- Reward title system — Title & Subtitle when rewards are distributed (no chat messages).
- BossBar integration — per-player BossBar showing remaining time.
- Sound & firework effects — configurable reward effects.
- Per-phase title toggles — enable/disable countdown and reward titles per individual phase.
- PlaceholderAPI support — %keyall_timer%, %keyall_phase%, %keyall_phase_index%, and more.
- MiniMessage, legacy & hex colors — <gradient:gold:yellow>, &a, and &#FFAA00 all work.
- Persistent player data — player progress saved to playerdata.yml across restarts.
- Hot reload — /keyall reload.
- Pause / Resume / Skip / Status — full cycle management.
- Java 21 • Paper 1.21+ • No Skript.
[HR]
Placeholders
Code (Text):
%keyall_timer%
|
Formatted time until next reward |
Code (Text):
%keyall_time_left_raw%
|
Raw seconds until next reward |
Code (Text):
%keyall_phase%
|
Current phase name |
Code (Text):
%keyall_phase_index%
|
Current phase number (e.g. 2) |
Code (Text):
%keyall_phases_total%
|
Total phases in cycle |
Code (Text):
%keyall_state%
|
Running or Paused |
In countdown subtitles, %seconds% is replaced with the number.
[HR]
Commands & Permissions
| /keyall reload |
keyall.admin |
Reload config without restart |
| /keyall pause |
keyall.admin |
Pause the reward cycle |
| /keyall resume |
keyall.admin |
Resume the reward cycle |
| /keyall skip |
keyall.admin |
Trigger rewards for all players now |
| /keyall status |
keyall.admin |
Show cycle state and your current phase |
[HR]
Configuration
Code (YAML):
cycle
:
- phase1
- phase2
- phase3
rewards:
phase1:
delay
: 30
delay-min
: 20
delay-max
: 40
permission
:
"keyall.rewards.vip"
pick
: 2
countdown-enabled
: true
reward-enabled
: true
commands
:
-
"crate key give %player_name% Common 1"
-
"crate key give %player_name% Common 2"
-
"crate key give %player_name% Party 1"
countdown-title:
enabled
: true
title
:
"<gradient:gold:yellow>KEYALL</gradient>"
subtitle
:
"<white>Reward in <gold>%seconds%</gold> seconds"
fade-in
: 5
stay
: 20
fade-out
: 5
reward-title:
enabled
: true
title
:
"<gradient:green:aqua><bold>REWARDS SENT!</bold></gradient>"
subtitle
:
"<white>All online players received their keys."
fade-in
: 10
stay
: 60
fade-out
: 20
bossbar:
enabled
: true
title
:
"<gradient:gold:yellow>KeyAll</gradient> <white>| <gold>%seconds%s</gold>"
color
: YELLOW
style
: SEGMENTED_12
effects:
reward-sound:
enabled
: true
sound
: ENTITY_PLAYER_LEVELUP
volume
: 1.0
pitch
: 1.0
reward-firework
: false
messages:
reload
:
"<green>[KeyAll] <white>Configuration reloaded successfully."
no-permission
:
"<red>You don't have permission to use this command."
usage
:
"<red>Usage: /keyall <reload|pause|resume|skip|status>"
- %player_name% replaced with each player's name.
- %seconds% replaced in countdown subtitle.
- Commands run as console.
- Supports MiniMessage, legacy (&a), and hex (&#RRGGBB).
- Add unlimited phases with unlimited commands each.
[HR]
Requirements
- Java 21
- Paper 1.21+ (or any fork)
- PlaceholderAPI (optional — placeholders work without it)
[HR]
Installation
- Drop
Code (Text):
KeyAllDistributor.jar
into
.
- Restart the server.
- Edit
Code (Text):
plugins/KeyAllDistributor/config.yml
.
- Run
Code (Text):
/keyall reload
.