
KeyAllZ – Automated Key Distribution
Automate server-wide rewards with flexible timers, commands, and fully customizable effects.
Features
- Create multiple KeyAll types such as vote keys, donor keys, event rewards, or any custom reward
- Run timed events that execute commands for all online players
- Use fixed or randomized intervals for consistent or dynamic rewards
- Execute commands per player or globally from the console
- Fully customizable chat messages, action bars, titles, sounds, and particle effects
- Built-in repeating reminders for players
- PlaceholderAPI integration with live countdown placeholders
- Optional Redis support for multi-server synced timers
- Optimized and lightweight with minimal performance impact, even on large networks
Recommended Dependency
PlaceholderAPI https://www.spigotmc.org/resources/placeholderapi.6245/
PlaceholderAPI is required for countdown and time-based placeholders.
Documentation is available on the Wiki: https://zentari-studio.gitbook.io/keyallz
Installation
- Download
KeyAllZ.jar(v3.x.x) - Place the jar file into the
/pluginsdirectory - Restart the server
- Edit
config.ymlto your needs - Run
/keyallz reloadto apply changes
Redis (Optional Multi-Server Support)
KeyAllZ can sync timers across multiple servers using Redis.
When enabled:
- Timers stay in sync across your entire network
- Players cannot claim rewards multiple times by switching servers
- Each server handles its own online players without duplication
- Timers recover automatically after restarts or server failures
Configuration
redis:
enabled: false
host: "localhost"
port: 6379
password: ""
database: 0
# Key prefix for all Redis keys. Change this if you share Redis with other plugins.
key-prefix: "keyallz"
# Unique ID for this server in the cluster. Leave empty to auto-generate.
server-id: ""
Set enabled to true and configure your Redis connection.
All servers must use:
- The same Redis connection
- The same KeyAll definition names
Rewards can differ per server.
Configuration Example
keyalls:
example:
title: "<green>You received a KeyAll reward!"
actionbar: "<yellow>Enjoy your free key!"
chat: "<gray>[KeyAll] <aqua>Congrats %player%, you got a reward!"
sound: "minecraft:entity.player.levelup"
sound-volume: 1.0
sound-pitch: 1.0
player-commands:
- "warp crates"
- "say I just got a key!"
console-commands:
- "PLAYER: crate key give %player% test 1"
permission: "keyall.receive.example"
reminders:
enabled: true
interval: 600
message: "<yellow>Don't forget to claim your KeyAll! Time left: %remaining-time%"
PlaceholderAPI Placeholders
%keyallz_timer_<name>%shows the full remaining time (for example:1d 2h 10m 5s)%keyallz_days_<name>%shows remaining days%keyallz_hours_<name>%shows remaining hours%keyallz_minutes_<name>%shows remaining minutes%keyallz_secs_<name>%or%keyallz_seconds_<name>%shows remaining seconds%keyallz_time_short_<name>%shows time inHH:mm:ssformat%keyallz_remaining_<name>%shows a condensed remaining time such as10m 30s
Commands
/keyallz start <definition> <seconds> [loop]starts a timer and optionally enables looping/keyallz stop <definition>stops a running timer/keyallz loop <definition> <true|false>enables or disables looping/keyallz remind <definition> <intervalSeconds>sets a repeating reminder interval/keyallz listshows all active timers with remaining time/keyallz reloadreloads the configuration and stops all timers
Usage Examples
/keyallz start votekey 300 truestarts the votekey timer for 5 minutes and loops it/keyallz stop votekeystops the votekey timer/keyallz loop donorkey falsedisables looping for donorkey/keyallz remind example 30sends reminders every 30 seconds/keyallz listdisplays all active timers/keyallz reloadreloads the plugin configuration
Notes
- Console commands with the
PLAYER:prefix are executed individually for each online player - Both player commands and console commands are executed when a timer finishes
- Looping timers automatically restart after completion
- Reminders notify players at the configured interval
- Use
/keyallz listto monitor running timers
Permissions
keyallz.admingrants access to all KeyAllZ commands
Support and Feedback
Join the Discord server for support and updates: https://discord.gg/e6uXVjp4MX
Ченджлог
3.3.1Релиз1.21.9, 1.21.10, 1.21.11 · 19 мая 2026 г.
KeyAllZ v3.3.1
Customization update focused on titles and localization.
What's New
Added fully customizable title messages
- Supports fade in, stay duration, and fade out timing
- Allows better control over announcement presentation
Added subtitle support
- Send secondary messages alongside titles
- Useful for extra context, rewards, or branding
Added configurable language file
- Users can now edit messages according to their server needs
- Makes localization and customization much easier
Improvements
- Better flexibility for server owners configuring broadcasts and announcements
- Cleaner overall title handling system
3.3.0Релиз1.21.9, 1.21.10, 1.21.11 · 18 мая 2026 г.
KeyAllZ v3.3.0 is out!
This is one of the biggest KeyAllZ updates yet! Redis sync is now fully stable and the entire system has been heavily optimized for large Minecraft networks.
Servers can now handle thousands of players across multiple servers with smooth Redis synchronization and better overall performance.
What's New
- Production-ready Redis synchronization
- Non-destructive
/keyallz reload - Major performance improvements
- Better timer accuracy across servers
- Improved async reward processing
- New Redis tuning options
Reloads No Longer Reset Timers
Running /keyallz reload will now reload configs, rewards, and messages without restarting active timers.
Everything continues seamlessly while applying the new changes live.
Improved Network Sync
- Better drift correction between servers
- More accurate timer syncing
- Fixed looping timer desync issues
- Rewards now execute more reliably on high-latency networks
Fixes
- Fixed timers resetting on reload
- Fixed rewards occasionally missing on follower servers
- Improved Redis cleanup after timers end
- Fixed duplicate command execution during leadership changes
3.3.0-betaБета1.21.10, 1.21.11, 26.1.2 · 28 апреля 2026 г.
KeyAllZ v3.3.0-beta is out
This update focuses on multi-server support. If you're running a network, timers now stay synced across all servers using Redis. No more separate timers or players switching servers to claim rewards twice.
Multi-server sync
Timers are synced across your entire network in real time. Start it on one server and it shows up everywhere with the same countdown and timing.
When a timer fires, each server handles its own online players so nobody gets missed.
If a server restarts mid-timer, it catches up automatically. If the server that started the timer goes down, another one takes over.
Redis is required for this, but optional. Without it, the plugin works the same as before for single-server setups.
No double claiming (Redis)
Players can no longer switch servers to claim the same KeyAll multiple times. Once processed on one server, the reward is locked across the network for that cycle.
Fixes
- Console commands (non-player) running once per server instead of once per network
- PLAYER console commands only running on one server
- Finished timers showing as ghost entries in /keyallz
- Timer recovery after restart being off
- /keyallz reload not clearing state properly
All fixed.
Performance
KeyAll processing has been optimized a lot for larger player counts.
Setup
redis:
enabled: false
host: "localhost"
port: 6379
password: ""
database: 0
# Key prefix for all Redis keys. Change this if you share Redis with other plugins.
key-prefix: "keyallz"
# Unique ID for this server in the cluster. Leave empty to auto-generate.
server-id: ""
Set enabled to true and fill in your Redis details.
All servers need the same Redis connection and the same KeyAll names. Rewards can differ per server.
Notes
This is a beta build bugs with redis are expected to be reported if faced.
3.2.1Релиз1.21.10, 1.21.11, 26.1.2 · 18 апреля 2026 г.
Changelog
[3.2.1]
Added
- Periodic timer autosave (every 30 seconds) to reduce data loss on crashes/restarts.
- Immediate timer persistence on admin actions:
/keyallz start/keyallz stop/keyallz loop/keyallz remind/keyallz reload- Saved timer timestamp (
savedAtEpochMillis) for accurate restart recovery.
Fixed
- Fixed timers becoming
Inactiveafter restart in common restart/crash scenarios. - Fixed looped timers restoring with wrong timing after downtime.
- Fixed expired non-loop timers incorrectly restoring after long downtime.
- Fixed reminder interval updates not being respected by runtime timer ticks.
- Fixed reward dedupe reset edge case caused by key-name casing differences.
- Fixed locale-sensitive lowercasing issues by using
Locale.ROOTfor key normalization.
Changed
- Timer restore now compensates for offline time:
- Non-loop timers that expired while offline are skipped.
- Loop timers resume at the correct point in the current cycle.
- Saved timer file is no longer deleted on load; stale files are removed only when no active timers remain.
- Added stronger command input validation:
- Timer duration must be greater than
0. - Reminder interval cannot be negative.
Performance
- Reduced allocation/object churn in reward batch command execution.
- Removed repeated
RewardExecutor/FoliaLibconstruction inside player-batch command paths. - Optimized placeholder timer lookup from map scan to direct normalized lookup.
- Reduced repeated
Bukkit.getOnlinePlayers()calls within the same timer tick/end cycle.
Internal Refactor
- Cleaned up timer persistence flow with explicit persistence entrypoint.
- Refactored player batch console command handling into instance-level execution for reuse and lower overhead.
Notes
- No config format migration required.
- Existing commands and placeholders remain compatible.
3.1.3Релиз1.21.9, 1.21.10, 1.21.11 · 26 января 2026 г.
Changes
The placeholder now returns "Inactive" if the timer is not running.
3.1.2Релиз1.21.9, 1.21.10, 1.21.11 · 23 января 2026 г.
Add KeyAllZ to Modrinth.
Комментарии
Загружаем…