HOSH Duels

Modern duel system with temporary worlds and zero map damage.

28

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.

ADS