Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
Platforms
Tags
Creators
Details
Licensed ARR
Published 4 months ago
KeyAll is an advanced per-player timed key distribution system for Minecraft servers. It tracks individual player playtime and automatically distributes keys or executes commands at specified intervals for each player independently.
Features
- ✅ Per-Player Tracking: Each player has their own independent timer based on their actual playtime
- ✅ Multiple KeyAll Events: Create unlimited key distribution events with different intervals
- ✅ Permission-Based: Optionally require permissions for specific KeyAll events
- ✅ Multiple Commands: Execute multiple commands in sequence for each KeyAll event
- ✅ Pause/Resume: Temporarily pause and resume KeyAll events
- ✅ PlaceholderAPI Support: Display time remaining until next key with placeholders
- ✅ Persistent Data: Player data is saved and persists across server restarts
- ✅ Optimized Performance: Async checking with efficient data management
Installation
- Download the KeyAll plugin JAR file
- Place it in your server's
pluginsfolder - (Optional) Install PlaceholderAPI for placeholder support
- Restart your server
- Configure the plugin in
plugins/KeyAll/config.yml
Commands
| Command | Description | Permission |
|---|---|---|
/keyall create <name> <interval> "<command>" [permission] |
Create a new KeyAll event | keyall.admin |
/keyall delete <name> |
Delete a KeyAll event | keyall.admin |
/keyall pause <name> |
Pause a KeyAll event | keyall.admin |
/keyall resume <name> |
Resume a paused KeyAll event | keyall.admin |
/keyall list |
List all KeyAll events | keyall.admin |
/keyall info <name> |
View detailed info about a KeyAll event | keyall.admin |
/keyall reload |
Reload the plugin configuration | keyall.admin |
Command Examples
# Create a common key that gives every hour
/keyall create common_key 60m "crates give key %playername% 1 commonkey"
# Create a rare key for VIP players every 3 hours
/keyall create rare_key 3h "crates give key %playername% 1 rarekey" keyall.vip
# Create a daily reward with multiple commands
/keyall create daily_reward 24h "eco give %playername% 5000" none
/keyall create daily_bonus 24h "give %playername% diamond 5" none
# Delete a KeyAll event
/keyall delete common_key
# Pause and resume
/keyall pause rare_key
/keyall resume rare_key
Time Format
Use these suffixes for time intervals:
s= seconds (e.g.,30s= 30 seconds)m= minutes (e.g.,60m= 60 minutes)h= hours (e.g.,2h= 2 hours)d= days (e.g.,1d= 1 day)
Placeholders
Requires PlaceholderAPI to be installed.
| Placeholder | Description | Example Output |
|---|---|---|
%keyall_time_<name>% |
Time remaining in formatted text | 1h 30m |
%keyall_seconds_<name>% |
Seconds remaining | 5400 |
%keyall_minutes_<name>% |
Minutes remaining | 90 |
%keyall_hours_<name>% |
Hours remaining | 1 |
Example Usage:
%keyall_time_common_key% → "45m 30s"
%keyall_time_rare_key% → "2h 15m"
%keyall_minutes_daily_reward% → "120"
Configuration Example
keyalls:
keyall:
interval: 10s
commands:
- "crates give key %playername% 1 keyall"
- '[click] /warp Crates'
- '[message] &7You got a key! &5&lClick Here&r &7 to warp to crates area'
permission: none
paused: false
vip_key:
interval: "2h"
commands:
- "crates give key %playername% 1 vipkey"
- "broadcast &e%playername% &areceived a VIP key!"
permission: "keyall.vip"
paused: false
How It Works
- Playtime Tracking: The plugin tracks each player's total playtime in seconds
- Independent Timers: Each player has their own timer for each KeyAll event
- Interval Checking: Every second, the plugin checks if any player has reached their interval
- Command Execution: When a player reaches the interval, all commands are executed in sequence
- Timer Reset: The player's timer for that specific KeyAll resets after receiving the reward
Example Scenario
- Player A joins and plays for 2 hours
common_keyinterval is 1 hour- Player A receives the key at 1 hour and 2 hours of playtime
- If Player A leaves and rejoins, their playtime continues from 2 hours
- Player A will receive the next key at 3 hours of total playtime
Permissions
keyall.admin- Access to all KeyAll commands (default: op)- Custom permissions can be set per KeyAll event in the config
Player Data
Player data is stored in plugins/KeyAll/playerdata/<uuid>.yml and includes:
- Total playtime
- Last received time for each KeyAll event
- Session information
Data is automatically saved when players leave and persists across server restarts.
Performance
- Async checking every second to minimize server lag
- Efficient data structures using ConcurrentHashMap
- Minimal file I/O with cached player data
- Optimized for servers with hundreds of players
🤝 Support
For issues, suggestions, or contributions:
- Contact SOULESS STUDIOS
KeyAll - Making key distribution fair and per-player! 🔑


