From f5247983f8aec0f9a33957d8d9c312fc72228978 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Fri, 16 Oct 2026 14:35:36 +0000 Subject: [PATCH 1/2] docs: describe friendly duel banners and result feedback --- .../RPCharacters/docs/character-controls.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/projects/RPCharacters/docs/character-controls.md b/projects/RPCharacters/docs/character-controls.md index 4ae1029..22b2ab0 100644 --- a/projects/RPCharacters/docs/character-controls.md +++ b/projects/RPCharacters/docs/character-controls.md @@ -50,6 +50,38 @@ character its own saved class level. A class capped below the saved level, such as a base class, shows its cap without lowering the level available to that character's other classes. Legacy accounts start from MMOCore's saved level. +## Friendly duels + +Look at another player and run `/duel`, or use `/duel `. They accept or +decline from chat. `/duel cancel` withdraws a challenge and `/duel yield` gives up +an accepted duel. Both players need an active character and must be in survival +or adventure mode; duels follow WorldGuard's PvP flag. + +A blue and gold banner marks the challenge and stays through the fight. It is a +temporary item display: players can walk and hit through it, it cannot be picked +up, and it changes no blocks. Declining, withdrawing, replacing or expiring a +challenge removes its banner, as does returning to character selection. Every +duel ending removes it too, including disconnects and shutdown; it is never saved +with the world. + +Both players hear the countdown and start cue. A win shows **VICTORY** to the +winner with a fanfare and **DEFEAT** to the loser with a quieter cue. Yielding +shows **DUEL YIELDED** to the player giving up. Draws show **DUEL ENDED** with the +reason, and outside combat shows **DUEL INTERRUPTED**. Chat keeps the result and +the names captured when the duel began. + +An opponent's lethal hit ends the duel without a death, knockout, grave or +strike. Each player gets back the health their opponent took; hunger, mana, +stamina and effects return to their starting state. Existing damage and debuffs +stay. Combat with a third player or mob interrupts the duel and returns only the +duel's own health damage. Moving too far apart, logging out or starting a real +fight ends it as a draw. + +Defaults in `duel.yml` are a 16-block challenge range, 30-second invitation, +three-second countdown, 32-block separation limit, ten-minute maximum and +24-block result announcement radius. The same file contains chat and title text; +existing configurations use bundled defaults for missing message keys. + ## Nonlethal knockouts GSit holds downed players in a crawl pose for the knockout duration, alongside freeze and blindness. The pose uses GSit's API, bypasses command restrictions, respects other plugins' crawl vetoes, and releases only knockout-created crawls on recovery. GSit is optional for the rest of RPCharacters; without it, knockouts retain freeze and blindness only. @@ -77,6 +109,7 @@ Putting armour on takes a while (by default 1 second for a helmet, 20 for a ches - [Character commands](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/java/net/tfminecraft/rpcharacters/command/CharCommand.java) - [Class selection and paid changes](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/resources/config.yml) and [creation stages](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/resources/stages.yml) - [PvP and armour configuration](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/resources/pvp.yml) +- [Duel configuration](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/resources/duel.yml) - [Focus configuration](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/resources/focus.yml) - [Codex population service](https://github.com/TF-Minecraft/RPCharacters/blob/main/src/main/java/net/tfminecraft/rpcharacters/placeholder/CodexPopulationService.java) From 0225cf1b62f702813fd9e3697d01fecda803aad9 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Fri, 16 Oct 2026 15:08:07 +0000 Subject: [PATCH 2/2] docs: clarify private duel notices and character names --- projects/RPCharacters/docs/character-controls.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/projects/RPCharacters/docs/character-controls.md b/projects/RPCharacters/docs/character-controls.md index 22b2ab0..5884acd 100644 --- a/projects/RPCharacters/docs/character-controls.md +++ b/projects/RPCharacters/docs/character-controls.md @@ -78,8 +78,11 @@ duel's own health damage. Moving too far apart, logging out or starting a real fight ends it as a draw. Defaults in `duel.yml` are a 16-block challenge range, 30-second invitation, -three-second countdown, 32-block separation limit, ten-minute maximum and -24-block result announcement radius. The same file contains chat and title text; +three-second countdown, 32-block separation limit and ten-minute maximum. +Nearby chat announcements are disabled by default (`announce-radius: 0`); only +the duellists receive duel messages. A positive radius opts in to nearby notices. +Names in duel messages and titles use character display names, respecting aliases +and masks. The same file contains chat and title text; existing configurations use bundled defaults for missing message keys. ## Nonlethal knockouts