HexaKoth

HexaKoth

Configurable King of the Hill plugin for Paper: custom zones, capture system, rewards, scheduling and PlaceholderAPI support.

4 downloads 0 followers

πŸ‘‘ HexaKoth: King of the Hill for Paper servers

HexaKoth is a King of the Hill (KoTH) plugin. Create zones, let players stand in them to capture the hill, and reward whoever holds it uninterrupted. Several KoTHs can run at once, and WorldEdit is not required. βš”οΈ

✨ Features

  • πŸͺ„ Built-in zone selection: mark two corners with a selection wand, no external plugin needed.
  • πŸ—ΊοΈ Multiple KoTHs at once: each zone has its own capture time, rewards and state.
  • ⏱️ Capture rules:
    • Only one player can capture at a time. The default time is 180 seconds and can be set per zone.
    • If a second player enters the zone, the capture is paused.
    • The capture is interrupted and reset if the capturer leaves the zone, dies, logs out, or gets into PvP (the PvP rule can be turned off in the config).
  • πŸ“£ Live feedback:
    • Actionbar with the remaining time and the capturer's name
    • Bossbar showing capture progress
    • Titles when a KoTH starts and when someone wins
    • Sound effects for start, interruption and victory
    • Particles on the zone border or center (only drawn when players are nearby)
  • 🎁 Rewards: any number of console commands run for the winner, e.g. give %player% diamond 16.
  • πŸ•™ Scheduling: configurable start times (default: 10:00, 15:00, 20:00) with optional auto-start and a countdown to the next event.
  • 🧩 PlaceholderAPI support: global %hexakoth_...% placeholders you can use in any hologram, scoreboard or chat plugin that supports PlaceholderAPI.
  • 🎨 Fully customizable text: messages, sounds and particles live in config.yml, with color codes (&a) and hex colors (&#ff8800).

πŸ“‹ Requirements

  • Server: Paper (1.21.11 – 26.3)
  • Java: 21
  • Optional: PlaceholderAPI (for the %hexakoth_...% placeholders). The plugin works without it.

HexaKoth only uses the Paper API, with no NMS.

πŸ“¦ Installation

  1. Download the jar and drop it into your server's plugins folder.
  2. Restart the server (using /reload is not recommended).
  3. Edit plugins/HexaKoth/config.yml and koths.yml to your liking.

πŸš€ Quick start

  1. /koth wand gives you the selection wand.
  2. Left-click one corner and right-click the opposite corner. The vertical range counts too, so select from the ground up to at least head height.
  3. /koth create <name> creates the zone.
  4. /koth addreward <name> give %player% diamond 16 adds a reward.
  5. /koth start <name> starts the KoTH.

⌨️ Commands

All commands require the hexakoth.admin permission (OPs have it by default). Alias: /hexakoth.

Command Description
/koth wand Get the selection wand
/koth create <name> Create a zone from your selection
/koth delete <name> Delete a zone
/koth start <name> Start a KoTH
/koth stop <name> Stop a KoTH
/koth list List all zones
/koth settime <name> <seconds> Set the capture time
/koth setreward <name> <command> Set the reward (replaces existing ones)
/koth addreward <name> <command> Add another reward command
/koth reload Reload the configuration

Reward commands support these variables: %player%, %uuid%, %koth%.

🧩 Placeholders (PlaceholderAPI)

Registered automatically when PlaceholderAPI is installed.

Placeholder Value
%hexakoth_display% One-line status: the "ACTIVE" text when a KoTH runs, otherwise the countdown (text is configurable)
%hexakoth_status% Active / inactive text
%hexakoth_active% true or false
%hexakoth_active_count% Number of running KoTHs
%hexakoth_active_koth% Names of the running KoTHs
%hexakoth_capturer% Name of the player capturing
%hexakoth_time_left% Capture time remaining (m:ss)
%hexakoth_seconds_left% Same, in seconds
%hexakoth_progress% Capture progress in percent
%hexakoth_next_time% Next scheduled start (HH:mm)
%hexakoth_countdown% Countdown to the next start (HH:MM:SS)
%hexakoth_countdown_seconds% Same, in seconds

Per-zone placeholders are available too: %hexakoth_<name>_status%, _active, _capturer, _time_left, _seconds_left, _progress, _capture_time, _world, _paused.

Hologram example (in any hologram plugin that supports PlaceholderAPI):

KOTH EVENT
%hexakoth_display%

ℹ️ The plugin does not create holograms itself. You build the hologram with the hologram plugin of your choice. How often the text refreshes is controlled by that plugin's own settings.

βš™οΈ Configuration

  • πŸ“„ config.yml: messages, sounds, particles, bossbar and actionbar, the schedule (schedule) and placeholder texts.
  • πŸ“„ koths.yml: your zones, capture times and reward commands. You can edit it by hand, then run /koth reload.

Auto-start can be turned on or off in the schedule section. By default, a random idle KoTH starts at each scheduled time, but you can list specific zones instead.

πŸ›‘οΈ Stability and performance

  • The capture loop runs once per second, and only while a KoTH is active.
  • Particles are only drawn when players are nearby, with a capped number of points.
  • Saving koths.yml is safe (temporary file, then replace). If the file becomes unreadable, the plugin backs it up.
  • Logouts, unloaded worlds and shutdowns are handled. The plugin loads data on startup and saves on shutdown.

πŸ“ Notes

  • πŸ‡­πŸ‡Ί The default messages are written in Hungarian, but every text can be changed in config.yml.
  • Capture zones are block-based cuboids.

🐞 Bug reports

If you find a bug, please include your server software and version, the plugin version, and the relevant part of the console log.

Version Minecraft Loader Download

HexaKoth 1.0.0

1.0.0

1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
paper
Download