Skip to content
RitomasssCommunity
Product documentation

ManhuntX Documentation

ManhuntX is a Minecraft manhunt game plugin with queues, private games, hunter/runner gameplay, stats, team chat and spectator tools.

17Java target
Paper/Folia 1.21Server target
MySQL/YAMLStorage mode
PlaceholderAPIHook posture

Overview#

Product purpose, target audience, main systems, dependencies and quick links.

Quick links: Installation, First Setup, Commands, Permissions, Configuration, GUI, Storage, Integrations, Common Setups, Troubleshooting, Changelog and Support.

What is ManhuntX?#

A configurable manhunt game system for public queues and private player-created sessions.

Who is it for?#

SMP, event and PvP servers that run manhunt events or recurring hunter-versus-runner games.

Supported server types#

SMP, event, minigame and PvP servers.

Main features#

  • Public manhunt queue
  • Private game creation
  • Invites and start flow
  • Stats and spectating
  • Team chat
  • Scoreboard support

Dependencies#

  • Java 17
  • Paper-compatible 1.21 server
  • PlaceholderAPI optional
  • MySQL connector runtime library

Installation#

Installation gets the plugin to boot. First Setup prepares it for production use.

Do not replace plugin jars while the server is running. Always make a backup before updating.
Download the latest ManhuntX jar from the official buyer/download source.
Stop the server before replacing the jar.
Upload the jar to /plugins.
Start the server once and confirm the plugin folder was generated.
Configure license, storage and core files listed in the Configuration section.
Restart the server and run the main status/admin command.

First Setup#

Recommended first configuration pass after the plugin has generated its files.

Make one change at a time, reload or restart, then test the player workflow with a real account.

Setup checklist#

  1. Set the lobby
  2. Configure messages and scoreboard
  3. Choose queue and game limits
  4. Give player permissions
  5. Test a private game
  6. Test admin force end

Production notes#

  • Give permissions through LuckPerms or your permission manager.
  • Keep backups of YAML files and database tables.
  • Use a staging server before large updates.
  • Do not claim Folia or network support unless the full setup has been tested.

Commands#

Commands, permissions, and usage examples.

Command entries are read from this product's plugin.yml.
/manhuntCommand
Description

Command exposed by plugin.yml.

Permission

Not declared in plugin.yml

Example

/manhunt

/manhuntadminCommand
Description

Command exposed by plugin.yml.

Permission

Not declared in plugin.yml

Example

/manhuntadmin

Permissions#

Permission nodes are based on plugin.yml. Assign admin and bypass permissions carefully.

/lp group admin permission set manhuntx.admin.reload true
/lp group default permission set manhuntx.player.use true
manhuntx.player.use

Allows player to open the manhunt menu

Default: truePlayers
manhuntx.player.join

Allows player to join the queue

Default: truePlayers
manhuntx.player.leave

Allows player to leave the queue or game

Default: truePlayers
manhuntx.player.create

Allows player to create a private game

Default: truePlayers
manhuntx.player.invite

Allows player to invite others to private games

Default: truePlayers
manhuntx.player.start

Allows player to start their private game

Default: truePlayers
manhuntx.player.stats

Allows player to view statistics

Default: truePlayers
manhuntx.player.teamchat

Allows player to use team chat

Default: truePlayers
manhuntx.player.spectate

Allows player to spectate games

Default: truePlayers
manhuntx.admin.reload

Allows admin to reload plugin

Default: opOwner/Admin
manhuntx.admin.setlobby

Allows admin to set lobby spawn

Default: opOwner/Admin
manhuntx.admin.forceend

Allows admin to force end a game

Default: opOwner/Admin
manhuntx.admin.help

Shows admin commands

Default: opOwner/Admin

Configuration#

Configuration YAML files below contain short bundled default excerpts, not full files. Message YAML is documented only in Messages & Language.

Validate YAML indentation before restarting the server.
config.yml short excerpt, not full file

Main runtime settings, license, modules, limits, storage and feature behavior.

Short YAML preview only. This block shows selected lines from config.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from config.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
license-key: contact the author
color-format: "legacy" # Options: "legacy" (& codes) or "minimessage" (<color> tags)

database:
  method: "SQLite" # Options: SQLite, MySQL
  data:
    host: "localhost"
    port: 3306
    database: "manhuntx"
    username: "root"
    password: ""
    ssl: false

# Queue settings
queue:
  required-runners: 1
  required-hunters: 2
  max-runners: 3
  max-hunters: 5
  auto-assign-role: true # Assign role if player didn't choose

# Game settings
game:
  countdown-seconds: 10
  headstart-seconds: 30
  delay-before-end: 5
  compass-tracking: true
  compass-update-interval: 20 # ticks
  runner-glow: false # Runners glow for hunters
  death-spectate: true # Dead runners spectate
  allow-hunter-pvp: false
  allow-runner-pvp: false

# Lobby
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/config.yml to review every setting.
# ...
Top-level keys

license-key, color-format, database, queue, game, lobby-spawn

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

scoreboard.yml short excerpt, not full file

Live display text, update intervals and PlaceholderAPI-rendered lines.

Short YAML preview only. This block shows selected lines from scoreboard.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from scoreboard.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
scoreboard:
  update-time: 20 #ticks
  enabled: true
  color-format: "legacy" # Options: "legacy" (& codes) or "minimessage" (<color> tags)

  lobby:
    title: "&c&lManhuntX"
    lines:
      - ""
      - "&c&l%player_name%:"
      - "&7• &f⚔ Kills: &e<kills>"
      - "&7• &f☠ Deaths: &e<deaths>"
      - "&7• &f🏆 Wins: &e<wins>"
      - ""
      - "&c&lServer:"
      - "&7• &f🌐 Online: &e%server_online%"
      - ""
      - "&cplay.manhuntx.com"

  queue:
    title: "&c&lQueue"
    lines:
      - ""
      - "&fRole: &e<role>"
      - "&fTime: &e<time>"
      - ""
      - "&cplay.manhuntx.com"

  in-game:
    title: "&c&lManhuntX"
    lines:
      - ""
      - "&7• &eRole: &f<role>"
      - "&7• &aRunners: &f<alive_runners>"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/scoreboard.yml to review every setting.
# ...
Top-level keys

scoreboard

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

Messages & Language#

Translation and formatting guidance based on the product's bundled resources.

Message reload follows the product's reload command. Restart after jar, storage or license changes.

How to edit messages#

This product ships messages.yml. Edit the generated copy in the plugin folder, keep placeholders intact, then reload the plugin command or restart for startup-level changes.

Formatting#

<red>Error message</red>
&cLegacy color message
{player} {amount} {reason}
messages.yml short excerpt, not full file
Short YAML preview only. This block shows selected lines from messages.yml. The generated file contains more message keys than this docs excerpt.
# ...
# Short documentation excerpt from messages.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
prefix: "&7[&cManhunt&7] &r"

# Role names
role-runner: "&aRunner"
role-hunter: "&cHunter"
role-spectator: "&7Spectator"

# Queue messages
joined-queue: "&aYou joined the queue as <role>."
left-queue: "&cYou left the queue."
already-in-queue: "&cYou are already in the queue!"
already-in-game: "&cYou are already in a game!"
match-found: "&aMatch found! Preparing world..."
actionbar-queue: "&aYou are in queue! &7Type &b/manhunt leave &7to leave."

# Game messages
game-starting-countdown: "&eGame starts in &c<countdown>&e seconds!"
game-started-runners: "&aYou have &e<headstart>&a seconds of head start! RUN!"
game-started-hunters: "&cHunters will be released in &e<headstart>&c seconds!"
hunters-released: "&c&lHunters have been released!"
game-ended-runner-win: "&a&lRunners won! The Ender Dragon has been defeated!"
game-ended-hunter-win: "&c&lHunters won! All runners have been eliminated!"

# Death messages
runner-death: "&c<victim> &7has been eliminated by &e<killer>&7!"
runner-death-natural: "&c<victim> &7has been eliminated!"
runners-remaining: "&7Runners remaining: &a<alive_runners>"
hunter-death: "&e<victim> &7was killed but will respawn!"

# Private game
private-game-created: "&aPrivate game created!"
player-invited: "&aYou invited &e<player>&a to your game."
invite-received:
  - "&aYou have been invited to &e<player>&a's manhunt!"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/messages.yml to review every setting.
# ...

GUI / Menus#

GUI cards describe the actual menus available in this product build.

Each card shows the configured menu title, inventory size, item count and detected actions when those values exist.

Private Game#

Private game setup menu for configuring a custom Manhunt session before launch.

  • Configured title: Private Game
  • Size: 45 slots
  • Configured items: 8

Private Game Players#

Private game player selector for inviting, adding or reviewing participants.

  • Configured title: Game Players
  • Size: 54 slots
  • Configured items: 3

Profile#

Profile menu for Manhunt player information, preferences and progression display.

  • Configured title: Profile
  • Size: 27 slots
  • Configured items: 4

Queue#

Play menu for joining configured Manhunt queues or starting the public game flow.

  • Configured title: Play Manhunt
  • Size: 27 slots
  • Configured items: 2

Active Games#

Active games view for browsing running Manhunt sessions and available spectate or staff actions.

Private Game Confirm#

Confirmation screen for starting or applying private Manhunt game settings.

Storage#

Storage docs explain YAML, SQLite, MySQL, MariaDB and backup expectations when supported.

Always back up before changing storage type or updating a production server.

Storage recommendation#

Use default file-based storage for small event servers. Use MySQL for persistent stats and game history deployments.

Backup checklist#

  • Stop the server before copying live flat files.
  • Export SQL databases before updates.
  • Keep plugin version and server version in backup notes.
  • Test migration on a copy first.

Integrations#

Each integration explains purpose, required/optional status, setup steps and troubleshooting.

Soft hooks load after the dependency is available through Bukkit's plugin manager.
PlaceholderAPI Optional hook

Purpose: Registers or consumes PlaceholderAPI values for scoreboards, formats and external displays.

Troubleshooting: If values stay blank, reload expansions and verify the identifier exactly matches the placeholder shown in this docs page.

  1. Install PlaceholderAPI or the listed placeholder provider.
  2. Install required expansions when the provider uses external expansions.
  3. Use the exact placeholder identifiers documented in this page.
  4. Reload the display plugin after changing scoreboard, tablist, menu or chat format files.
MySQL Runtime library

Purpose: Provides persistent storage for player data, stats, transactions, vaults or network state.

Troubleshooting: If storage fails, copy the first SQL error, then verify credentials, database permissions, driver availability and firewall access.

  1. Create the database and user before enabling SQL storage.
  2. Enter host, port, database, username and password in the storage config.
  3. Restart and confirm the connection pool opens without authentication errors.
  4. Run one write action, then verify the table or database file was updated.

Quick Start#

Prepare a valid queue before opening ManhuntX publicly.

Use a staging world and two test accounts; queue visibility does not prove role/world settings are valid.
Set the baselineConfigure game world, runner/hunter counts, countdown and head-start in config.yml. Start with one runner and two hunters.
Open /manhuntTest public/private options as a normal player and verify permission gates.
Run a disposable matchVerify role assignment, tracking, spectator flow, end condition and cleanup after a disconnect.

Player & Queue Setup#

Configure the player-facing queue and match lifecycle as a repeatable flow.

Players should know whether they are waiting, a runner, a hunter or a spectator.

Public queue#

  1. Set minimum players and role balance.
  2. Confirm the selected world is writable/resettable.
  3. Test runner head-start before hunter tracking.
  4. Verify death, spectator and winning messages.
  5. Reconnect and confirm state is cleared.

Private/event queue#

  1. Open the private flow from /manhunt.
  2. Invite players and review roles before confirmation.
  3. Use a dedicated/resettable world for streamer sessions.
  4. Keep a moderator ready for recovery.

Admin & Event Setup#

Turn a basic match into a repeatable staff-operated event.

Force-start/end permissions belong to event staff; keep recovery auditable.
Before opening event checklist
  1. Prepare world, spawns and protection.
  2. Separate player, host and moderator permissions.
  3. Configure announcements in messages.yml.
  4. Run one dry match and record expected cleanup.
Stuck match recovery staff flow
  1. Check active state and affected players.
  2. Use the configured admin recovery/end action.
  3. Confirm lobby return and tracking cleanup before reopening queue.

Production Rollout#

Move from a working test match to a reliable public deployment.

Back up YAML/match data and repeat queue, spectator, reload and cleanup tests after changes.

Baseline#

queue: enabled: true minimum-players: 3 game: runner-head-start-seconds: 30 spectator-on-death: true world: reset-after-match: true

Go-live checklist#

  • Use LuckPerms groups for player, host and moderator access.
  • Document event-world reset.
  • Test disconnect, reload, force-end and restart recovery.
  • Watch world/role/cleanup warnings.

Operational Reference#

A complete player-hosted manhunt loop, from queue entry to post-game review.

The main /manhunt screen is the player entry point. Keep role counts and arena/world settings valid before opening the queue.

Public queue workflow#

  1. Players open /manhunt and choose the public queue.
  2. Wait for the configured runner/hunter counts; do not force roles unless the lobby rules allow it.
  3. Confirm the selected world, countdown and runner head-start in config.yml.
  4. During the match, use compass tracking, team chat and the scoreboard to understand state.
  5. Dead runners enter the configured spectator flow; the game ends through the winning condition.

Private or streamer event#

  1. Open the private-game flow from /manhunt and add the intended players.
  2. Review runner/hunter assignment before confirming the game.
  3. Use a dedicated world or resettable arena for repeat events.
  4. Keep spectator and death behavior enabled for viewers, then verify the end screen and stats.
queue:
  required-runners: 1
  required-hunters: 2
  auto-assign-role: true
game:
  countdown-seconds: 10
  headstart-seconds: 30
  compass-tracking: true
  death-spectate: true

After the match#

Open the profile/statistics view, inspect the result and confirm the world was returned to the lobby state. For a season reset, back up the database first; do not delete player data while a match is active.

When debugging, record queue size, assigned roles, world name, countdown state and the first console error.

Common Setups#

Ready-to-follow scenarios reduce support tickets and make the product easier to configure.

Tune durations, limits, prices and permissions with the YAML files above.

Public Queue Setup#

Apply this setup by editing the related config files, assigning permissions and testing the full player workflow.

Private Manhunt Setup#

Apply this setup by editing the related config files, assigning permissions and testing the full player workflow.

Streamer Event Setup#

Apply this setup by editing the related config files, assigning permissions and testing the full player workflow.

Stats Season Setup#

Map permissions to progression tiers, test upgrades, then document reset or season migration behavior.

Troubleshooting#

Start with console logs, config diffs, plugin version and reproduction steps.

The first error in console is usually more useful than repeated follow-up errors.
Players cannot join queue issue

Verify queue permissions, required player count, match mode name and available arena category. Also confirm players are not already in another match or queue.

Lobby is not set issue

Reproduce this issue on a clean test server, compare changed YAML files and include the first console error in the support report.

Game does not start issue

Reproduce this issue on a clean test server, compare changed YAML files and include the first console error in the support report.

Spectate does not work issue

Reproduce this issue on a clean test server, compare changed YAML files and include the first console error in the support report.

Stats do not update issue

Check storage connection, write permissions and whether the match ends through the normal cleanup flow. Forced stops may skip stat writes.

FAQ#

Short answers for common buyer and staff questions.

Does ManhuntX support Folia?#

Yes. The product descriptor or docs metadata marks this product as Folia-oriented; keep third-party hook thread-safety in mind during production testing.

Does it support old Minecraft versions?#

This page targets Paper/Folia 1.21 with Java 17. Legacy 1.8 support is not part of this docs page.

Does it require MySQL?#

Use default file-based storage for small event servers. Use MySQL for persistent stats and game history deployments.

Can I disable modules?#

This product has a small runtime surface; use the listed YAML files and commands rather than a module system.

Can I edit all messages?#

Yes. Edit messages.yml and reload or restart according to the setting changed.

Does it support PlaceholderAPI?#

ManhuntX can consume PlaceholderAPI values in supported format or display files.

Changelog#

Product release notes grouped by version. Major public changes are written for buyers and server owners, not as raw commit logs.

v1.0.0#

Released 2026-02-22.

Added
  • Added build, dependency or obfuscation setup.
  • Added command handling in ManhuntAdminCommand.java.
  • Added command handling in ManhuntCommand.java.
  • Added command handling in ManhuntTabCompleter.java.
  • Added GameState.java.
Changed
  • first commit
  • Updated build, dependency or obfuscation setup.
  • Updated ManhuntX.java.

Support#

Send enough information to reproduce the issue.

Join Discorddiscord.gg/fANhQcyA7XInclude logs, config snippets and exact steps. Screenshots alone are not enough for config or database issues.

Before asking for support#

  • Test on the latest available plugin version.
  • Check server version and Java version.
  • Temporarily remove unrelated plugins when debugging conflicts.
  • Attach changed YAML files when config is involved.
Plugin: ManhuntX
Plugin version:
Server version:
Java version:
Server software:
Database type:
Installed hooks:
Error log:
Steps to reproduce:
Expected behavior:
Screenshots/video: