HOSH Duels
A fully-featured 1v1 duel system for Spigot servers with kit management, WorldEdit-powered arenas, isolated temporary worlds, rematches, and persistent fight stats — all driven through an intuitive GUI and a single /hoshd command.
Requirements
- Paper (or compatible) — 1.19.x / 1.20.x / 1.21.x
- Java 17+
- Hosh Loader (mandatory) — This plugin will not stay enabled without it. If
HoshLoader.jar is missing, HOSH Duels disables itself and server operators get a message on join.
- WorldEdit (mandatory) — Required for arena selection and copying. If WorldEdit is missing, the plugin disables and ops are notified on join.
- Use
/hosh duels reload (via Hosh Loader) to reload this plugin after config changes.
- Use
/hosh update all (via Hosh Loader) to prepare newest compatible HOSH updates for next restart.
Downloads
Features
- Temporary isolated worlds — Every duel spawns in its own void world. The arena layout is copied from your WorldEdit selection, and the world is automatically deleted after the fight ends
- Kit system — Save, edit, and delete kits from your current inventory via GUI or commands. Full armor + inventory support with a visual editor
- Arena system — Define arenas using WorldEdit selections and player spawn points. Arenas are persisted to YAML and loaded on startup
- Countdown & invulnerability — Players are invulnerable during the configurable countdown. Once the fight goes live, damage is tracked
- Rematch system — After a fight ends, either player can request a rematch. Both players must request within 60 seconds for the rematch to start
- Fight statistics — Wins and total damage dealt are tracked per player and saved to
stats.yml
- State restoration — Player location, gamemode, inventory, and armor are saved before the fight and fully restored afterward
- Disconnect handling — If a player leaves mid-fight, the fight is aborted and the temp world is cleaned up
- Full GUI — Main menu, kit list, arena list, and kit editor inventories with intuitive click actions
- Chat-based naming — Create kits and arenas by clicking a GUI button and typing the name in chat
- Tab completion — All subcommands support tab-completing kit names, arena names, and online players
Commands
All commands are subcommands of /hoshd (alias: /hoshduels).
| Command |
Permission |
Description |
/hoshd |
— |
Show all available commands |
/hoshd gui |
— |
Open the main duel GUI |
/hoshd kit create <name> |
— |
Create a kit from your current inventory |
/hoshd kit delete <name> |
— |
Delete a saved kit |
/hoshd arena create <name> |
hoshd.arena.create |
Start an arena setup session |
/hoshd arena setarea |
hoshd.arena.setarea |
Use your WorldEdit selection as the arena area |
/hoshd arena setpos1 |
hoshd.arena.setpos1 |
Set player 1 spawn at your current location |
/hoshd arena setpos2 |
hoshd.arena.setpos2 |
Set player 2 spawn at your current location |
/hoshd arena confirm |
hoshd.arena.confirm |
Finalize and save the arena |
/hoshd arena delete <name> |
hoshd.arena.delete |
Delete a saved arena |
/hoshd cancel |
hoshd.cancel |
Cancel your current arena setup session |
/hoshd fight <kit> <arena> <p1> <p2> |
hoshd.fight |
Start a duel between two players |
/hoshd rematch <player> |
hoshd.fight |
Request a rematch with a previous opponent |
Arena Setup Guide
Setting up an arena takes four steps:
- Create — Run
/hoshd arena create <name> to start a setup session
- Set area — Make a WorldEdit selection, then run
/hoshd arena setarea
- Set spawns — Stand where each player should spawn and run
/hoshd arena setpos1 and /hoshd arena setpos2
- Confirm — Run
/hoshd arena confirm to save the arena
You can cancel at any time with /hoshd cancel.
Configuration
All settings live in the default config.yml generated on first run.
prefix: "&8[&bHOSH Duels&8] "
defaults:
max-name-length: 24
duel-countdown-seconds: 5
features:
delete-temp-worlds: true
restore-player-inventory-after-fight: true
auto-set-survival-in-duel: true
rematch-enabled: true
fight-stats-enabled: true
Config Options
| Option |
Default |
Description |
max-name-length |
24 |
Maximum characters for kit and arena names |
duel-countdown-seconds |
5 |
Countdown before players become vulnerable (0 = instant) |
delete-temp-worlds |
true |
Delete temporary duel worlds after fights end |
restore-player-inventory-after-fight |
true |
Restore player inventory and armor after a fight |
auto-set-survival-in-duel |
true |
Force players into Survival gamemode during duels |
rematch-enabled |
true |
Allow rematch requests after fights |
fight-stats-enabled |
true |
Track wins and damage dealt per player |
Data Files
| File |
Purpose |
kits.yml |
Persistent storage for all saved kits |
arenas.yml |
Persistent storage for all arena definitions |
stats.yml |
Per-player win count and total damage dealt |
Dependencies
| Plugin |
Required |
Why |
| WorldEdit |
Yes |
Arena area selection and copying arenas to temporary worlds |
Permissions
| Permission |
Default |
Description |
hoshd.arena.create |
None |
Create new arenas |
hoshd.arena.setarea |
None |
Set arena area from WorldEdit selection |
hoshd.arena.setpos1 |
None |
Set player 1 spawn point |
hoshd.arena.setpos2 |
None |
Set player 2 spawn point |
hoshd.arena.confirm |
None |
Confirm and save an arena |
hoshd.arena.delete |
None |
Delete arenas |
hoshd.cancel |
None |
Cancel arena setup sessions |
hoshd.fight |
None |
Start fights and request rematches |
Installation
- Download and install Hosh Loader in
plugins/ (required).
- Install WorldEdit on your server (required).
- Download HOSH Duels and place
hosh-duels-<version>.jar in plugins/.
- Restart the server (full restart recommended after first install).
- Edit
plugins/HOSH_Duels/config.yml to your liking.
- Start creating kits and arenas with
/hoshd gui. Use /hosh duels reload when you change config files.