KeyAll
Scheduled command automation that players actually watch for.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Multi-Event ◆ Weighted Rewards ◆ Discord + Telegram + Slack ◆ 4 Languages ◆ Paper 1.21
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What KeyAll Solves
Your server runs crate key giveaways every hour. Rewards fire in the background. Players miss them. Those who catch the command see no visual feedback that anything special happened. Your scheduled event lands with the same impact as a console restart notice.
KeyAll fixes that. Every scheduled command becomes a full-spectrum event. A 60-second countdown appears on the boss bar with dynamic color transitions. Titles flash at 10, 5, 3, 2, 1 seconds. Sounds build. A particle tornado spirals around every online player. Discord, Telegram, and Slack all fire notifications before and after execution. Players who are offline see the ping and log in.
Events without buildup are not events. They are cron jobs. KeyAll makes your scheduled rewards impossible to ignore.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Reward Systems
Six reward delivery methods. Mix and match per event.
· · · SIMPLE · · ·
Reward Systems
Six reward delivery methods. Mix and match per event.
· · · SIMPLE · · ·
- Single Command One console command executes when the event fires. Works with every plugin on your server. One line in config.
- Vault Economy Give money to all online players. Fixed amount or random range with min and max values. Works with any Vault-compatible economy plugin.
· · · ADVANCED · · ·
- Weighted Reward Pool Define a pool of commands with individual weights. Legendary keys at weight 10, common keys at weight 60. Weighted random draw picks one reward per execution. The math works exactly as expected.
- Command Queue Sequence of commands with configurable tick delays between each. Use for multi-step events: announce, wait, reward, wait, close broadcast. No external task scheduler needed.
- Per-World Rewards Override the main reward pool for specific worlds. Nether players get nether keys. End players get end rewards. Each world has its own independent weighted pool. Falls back to global rewards for unlisted worlds.
- Participation Claims Players must run /keyall claim to receive their reward. Configurable time window after event fires. Set a maximum claim count for scarcity. Set to -1 for unlimited. Broadcasts who claimed. Auto-expiration message when window closes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Core Systems
Core Systems
◆ Multi-Event Engine
- Drop a .yml file into /events/ and it loads as a completely independent event
- Each event has its own schedule, rewards, display settings, conditions, and webhooks
- No limit on event count. Events run separately without interfering with each other
- Hot reload via /keyall reload applies all changes without server restart
◆ Dual Scheduling
- INTERVAL mode: fires every X minutes. Configure once, runs forever
- TIMES mode: fires at specific times of day in 24-hour format (12:00, 18:00, 22:00)
- Optional execute-on-startup flag fires the event immediately when the server starts
- Smart countdown auto-adjusts for short intervals to prevent overlap
◆ Countdown Experience
- BossBar with configurable color and overlay style. Dynamic transitions: original to YELLOW at 50%, to RED at 17%
- ActionBar for lightweight display above the hotbar
- NONE mode for silent background automation
- Title announcements at configurable second thresholds with full hex color support
- Chat broadcasts at separate configurable intervals with %time% and %event% placeholders
◆ Visual Effects
- Particle tornado: gold-to-yellow-to-white spiral animation around all online players
- Tornado spirals tighten as countdown approaches zero, concludes with reward explosion
- Particle ring: customizable type, radius, count, and duration at countdown completion
- All visual timing is configurable per event
◆ Audio System
- Countdown tick sound plays at each chat announcement threshold
- Reward sound plays when command executes
- Configurable volume and pitch per sound. Any Bukkit sound key is valid
◆ Conditions System
- Minimum players requirement prevents rewarding empty servers
- World restrictions: execute only when players are in specified worlds
- Optional skip announcements broadcast when conditions are not met
- Checked before every execution
◆ Web Notifications
- Discord webhook with embed support: customizable username, avatar, and color
- Telegram bot notifications via Telegram API
- Slack webhook with markdown formatting
- Independent toggle for countdown and execution notifications per service
- All webhook requests are async and non-blocking
◆ PlaceholderAPI Integration
- 12+ placeholders for scoreboards, holograms, and displays
- Per-event variants: %keyall_event_EVENTNAME_FIELD%
- Covers next execution time, countdown status, mode, interval, and player counts
◆ Statistics and Logging
- SQLite database records every execution: event name, timestamp, player count, reward
- Query via /keyall stats [event] [limit]
- Can be disabled entirely if not needed
◆ Administration
- Status GUI: /keyall gui opens an inventory interface showing all events, status indicators, and next execution times
- Pause, resume, skip, and trigger any event individually
- Debug mode with verbose console logging for troubleshooting
- Hot reload applies config changes without server restart
◆ Multi-Language Support
- 4 built-in languages: English, Polish, Spanish, German
- Missing keys in non-English files automatically fall back to English
- All messages use MiniMessage with full hex color and gradient support
- Language switch is a single line in config.yml
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How KeyAll Compares
How KeyAll Compares
| Feature | KeyAll | Typical Scheduling Plugin |
| Events | Unlimited independent events, each with own config file | One global event or limited slots |
| Scheduling | INTERVAL + TIMES, execute-on-startup flag | Interval only or times only |
| Countdown display | BossBar with color transitions, ActionBar, titles, chat | Basic chat message or none |
| Particle effects | Tornado spiral + ring effect, fully configurable | None or a single burst |
| Reward types | Weighted pools, queues, per-world, Vault, participation claims | Single static command |
| Webhooks | Discord + Telegram + Slack, independent toggles | Discord only or none |
| PlaceholderAPI | 12+ placeholders with per-event variants | Few or no placeholders |
| Conditions | Min players, world restrictions, skip announcements | Not available |
| Reload | Full hot reload, no restart needed | Requires restart or partial reload |
| GUI | Status GUI with real-time event overview | Console only |
| Multi-language | 4 languages, auto fallback, MiniMessage support | Hardcoded English |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Who This Is For
Who This Is For
- Crate and economy servers Hourly key drops with dramatic countdowns. Weighted reward pools make rare keys actually rare. Players watch the boss bar and show up.
- Survival and SMP Daily supply drops, scheduled restarts with warning countdowns, world boss spawn announcements. Per-world rewards for different dimensions.
- Prison, Skyblock, and grind servers Boosts, resets, buffs on exact schedules. Participation claims let players opt in. Conditions prevent rewarding an empty server at 4 AM.
- Multi-game networks Hub events, mode-specific events, all managed from one plugin. Status GUI gives staff a single-pane view of every scheduled event across the network.
- Discord-integrated communities Three webhook services. Notifications fire before and after events. Offline players see the ping and log in. Your event reaches everyone, not just whoever happens to be online.
- Server owners who value polish Drop KeyAll into any game mode running Paper 1.21. Single jar, no hard dependencies. Full reload support. No restarts needed for config changes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Technical Specs
Technical Specs
| Server | Paper 1.21.4+, Java 21 |
| Dependencies | None required. PlaceholderAPI and Vault are optional soft-depends |
| Storage | YAML flat-file for events and config. SQLite for execution statistics |
| Languages | en_US, pl_PL, es_ES, de_DE |
| API | KeyAllExecuteEvent for third-party plugin integration |
◆ Commands
| Command | Description | Permission |
| /keyall reload | Reload all configs and restart schedulers live | keyall.admin |
| /keyall info | View schedule mode, next execution, current settings | keyall.admin |
| /keyall list | List all loaded events with status and next execution | keyall.admin |
| /keyall trigger [event] | Manually start countdown and execute an event | keyall.admin |
| /keyall skip [event] | Skip current countdown without executing | keyall.admin |
| /keyall pause [event] | Pause a specific event scheduler | keyall.admin |
| /keyall resume [event] | Resume a paused event scheduler | keyall.admin |
| /keyall stats [event] [limit] | View execution history from SQLite database | keyall.admin |
| /keyall gui | Open status GUI with all events and indicators | keyall.gui |
| /keyall claim [event] | Claim a participation reward during the open window | keyall.claim |
| /keyall countdown | Start countdown demo without executing any command | keyall.admin |
◆ Permissions
| Permission | Description | Default |
| keyall.admin | Full administrative access to all commands | op |
| keyall.gui | Access to the status GUI | op |
| keyall.use | General plugin usage | true |
| keyall.claim | Claim participation rewards via /keyall claim | true |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Get KeyAll
Your scheduled rewards fire every hour. Nobody cares.
Make them care.
Unlimited events. Every reward type. One plugin.
Download and have your first event running in under 5 minutes.
Questions? Open a discussion or ticket. Feature requests are reviewed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Get KeyAll
Your scheduled rewards fire every hour. Nobody cares.
Make them care.
Unlimited events. Every reward type. One plugin.
Download and have your first event running in under 5 minutes.
Questions? Open a discussion or ticket. Feature requests are reviewed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
