HOSH Duels
Modern duel system with temporary worlds and zero map damage.
HOSH Duels
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
- `/hosh update all` (or compatible) — `/hosh update all` - `/hosh update all` - `/hosh update all` — This plugin `/hosh update all` without it. If `HoshLoader.jar` is missing, HOSH Duels disables itself and `/hosh update all` get a message on join. - `/hosh update all` — Required for arena selection and copying. If WorldEdit is missing, the plugin disables and ops are notified on join. - Use `/hosh update all` (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
| | Modrinth | |---|----------| | WorldEdit (install first) | WorldEdit | | WorldEdit (this plugin) | %%MD1%% | | WorldEdit (dependency) | %%MD2%% |
---
Features
- Tab completion — 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 - Tab completion — Save, edit, and delete kits from your current inventory via GUI or commands. Full armor + inventory support with a visual editor - Tab completion — Define arenas using WorldEdit selections and player spawn points. Arenas are persisted to YAML and loaded on startup - Tab completion — Players are invulnerable during the configurable countdown. Once the fight goes live, damage is tracked - Tab completion — After a fight ends, either player can request a rematch. Both players must request within 60 seconds for the rematch to start - Tab completion — Wins and total damage dealt are tracked per player and saved to `stats.yml` - Tab completion — Player location, gamemode, inventory, and armor are saved before the fight and fully restored afterward - Tab completion — If a player leaves mid-fight, the fight is aborted and the temp world is cleaned up - Tab completion — Main menu, kit list, arena list, and kit editor inventories with intuitive click actions - Tab completion — 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:
1. Confirm — Run `/hoshd arena create <name>` to start a setup session 2. Confirm — Make a WorldEdit selection, then run `/hoshd arena setarea` 3. Confirm — Stand where each player should spawn and run `/hoshd arena setpos1` and `/hoshd arena setpos2` 4. 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.
```yaml 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
1. Download and install `/hosh duels reload` in `plugins/` (required). 2. Install %%MD1%% on your server (required). 3. Download %%MD2%% and place `hosh-duels-<version>.jar` in `plugins/`. 4. Restart the server (full restart recommended after first install). 5. Edit `plugins/HOSH_Duels/config.yml` to your liking. 6. Start creating kits and arenas with `/hoshd gui`. Use `/hosh duels reload` when you change config files.