Перейти к содержимому
Mineforgian

KeyAllZ

A keyall plugin to keep players engaged with timed rewards

Загрузки
2K
Подписчики
2
Обновлён
19 мая 2026 г.
Лицензия
MIT

Опубликован 23 января 2026 г.

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

  1. Download KeyAllZ.jar (v3.x.x)
  2. Place the jar file into the /plugins directory
  3. Restart the server
  4. Edit config.yml to your needs
  5. Run /keyallz reload to 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 in HH:mm:ss format
  • %keyallz_remaining_<name>% shows a condensed remaining time such as 10m 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 list shows all active timers with remaining time
  • /keyallz reload reloads the configuration and stops all timers

Usage Examples

  • /keyallz start votekey 300 true starts the votekey timer for 5 minutes and loops it
  • /keyallz stop votekey stops the votekey timer
  • /keyallz loop donorkey false disables looping for donorkey
  • /keyallz remind example 30 sends reminders every 30 seconds
  • /keyallz list displays all active timers
  • /keyallz reload reloads 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 list to monitor running timers

Permissions

  • keyallz.admin grants 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 Inactive after 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.ROOT for 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/FoliaLib construction 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.

Комментарии

Загружаем…