Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
HungerGamesSSS
A full-featured Hunger Games survival plugin for Paper 1.21+
v4.6.4 โ Architecture & Gameplay Bug-Fix Patch released 2026-06-04. 11 structural bugs fixed: contradictory
ArenaEndEventcomments, duplicateLootTableManagerandCornucopiaBuilderinstances causing config-reload drift,startMatch()bypassing the FSMtransition()contract, spawn cages placed inside terrain at Y=100, players falling through piston floors due to async physics, deadcheckCompatibility()method, emptyMatchSessionclass, stale nested language directory, and disconnected players holding matches open indefinitely (now auto-expired after configurablegame.reconnect-timeoutseconds, default 60). No database migrations โ drop-in replacement for 4.6.3. Upgrade strongly recommended. See CHANGELOG.md for the full list.
45 legendary weapons. Procedural dungeons. Last player standing.
๐ Table of Contents
- โจ Features
- ๐ฆ Requirements
- ๐ Installation
- ๐๏ธ Arena System
- โฑ๏ธ Match Lifecycle
- ๐ฎ Game Modes
- โก Legendary Weapons
- ๐ฐ Dungeons
- ๐ฝ Cornucopia Builder
- ๐ Feast Event
- ๐ฅ Teams
- ๐พ Persistence
- ๐ Localisation
- โจ๏ธ Commands & Permissions
- ๐ Developer API
- ๐ Troubleshooting
- ๐ Credits
โจ Features
๐๏ธ Arena System
- Multi-arena support โ run unlimited concurrent arenas in separate worlds
- Per-arena toggles โ PvP, lifesteal, hardcore, veinminer, nether, end
- Glass cage countdown โ players locked in cages at spawn until the match begins
- Auto-reset โ arena world and all blocks fully restored after each match
- Legendary spawn points โ holograms float above each marked item location
โก 45 Legendary Weapons
| Category | Count | Examples |
|---|---|---|
| Swords & Melee | 15 | Cloud Sword, Excalibur, Dragon Katana |
| Bows & Ranged | 8 | Artemis Bow, Phantom Longbow, Warden Crossbow |
| Staves & Magic | 8 | Void Staff, Lich Staff, Hypnosis Staff |
| Tridents & Special | 9 | Aiglos, Mjolnir, Ravager Horn |
| Armor | 3 | Hades' Helm, Hermes Boots, Reinforced Elytra |
| Utility / Healing | 2 | Fountain of Youth, Warpick |
โ๏ธ Each weapon has unique active + passive abilities
โ๏ธ All stats tunable in legend-items/<id>.yml
โ๏ธ Hot-reload with /perf reload โ no restart needed
๐ฐ Procedural Dungeons
| Type | Terrain |
|---|---|
| ๐ท๏ธ Spider Nest | Cobweb cave |
| ๐ Crypt | Stone brick chamber |
| โ๏ธ Gold Mine | Mineshaft tunnels |
| ๐ฅ Lava Temple | Nether-brick structure |
| ๐ง Ice Temple | Packed-ice biome |
| ๐๏ธ Surface Temple | Sandstone ruin |
| ๐ผ Surface Outpost | Watchtower |
| ๐ค๏ธ Sky Island | Floating grass |
| ๐ฏ Floating Castle | Castle 30 blocks up |
โ๏ธ No external schematics required โ๏ธ Loot configurable per dungeon type โ๏ธ All blocks restored after match ends
๐ Match Lifecycle
WAITING โ STARTING โ PLAYING โ DEATHMATCH โ ENDED
| Phase | Description |
|---|---|
| โณ Waiting | Players queue in lobby |
| ๐ข Starting | Countdown; players teleport into cages |
| โ๏ธ Playing | Grace period โ main phase โ feast โ border shrink |
| ๐ฅ Deathmatch | Border closes; final players fight |
| ๐ Ended | Winner announced; arena fully reset |
โ๏ธ Disconnect/reconnect mid-match restores last location, inventory, and scoreboard
๐ฎ Game Modes
โค๏ธ Lifesteal
Kill a player โ they drop a heart item. Pick it up to raise your max HP. Convert hearts back with /withdraw <amount>.
๐ Hardcore
Eliminated players are kicked instead of moved to spectator mode.
โ๏ธ Veinminer
Sneak + break an ore โ chain-mines the entire vein. Max vein size is hot-configurable.
๐ฝ Cornucopia Themes
13 procedural themes for the arena centrepiece:
classic ยท ultimate ยท speedsilver ยท ancient ยท void ยท royal ยท industrial ยท modern ยท crystal ยท jungle ยท end ยท nether ยท grand
๐ Localisation
10 built-in language files:
๐ฌ๐ง en ยท ๐ป๐ณ vi ยท ๐ท๐บ ru ยท ๐ฉ๐ช de ยท ๐ซ๐ท fr ยท ๐ช๐ธ es ยท ๐ต๐น pt ยท ๐ฏ๐ต ja ยท ๐ฐ๐ท ko ยท ๐จ๐ณ zh
Players change language in-game with /hg lang <code>.
๐พ Persistence โ SQLite / MySQL
All arena state, player stats, team data, and match history persist across restarts. Switch backends in config.yml:
database:
type: sqlite # or "mysql"
sqlite-file: database.db
mysql:
host: localhost
port: 3306
database: hungergames
username: root
password: password
โ๏ธ All writes are async โ๏ธ Auto schema migration on startup โ no data loss
๐ฆ Requirements
| Component | Version |
|---|---|
| Java | 21+ |
| Paper | 1.21+ |
| PlaceholderAPI | Optional |
| Vault | Optional |
| ProtocolLib | Optional |
| FastAsyncWorldEdit | Optional (.nbt / .schem support) |
๐ Installation
- Download the
.jar - Drop it into
plugins/ - Start the server โ configs generate automatically
- Stand at the centre of your arena โ
/hg create <name> /hg setcornucopia <name> classic- Walk to each spawn point โ
/hg addspawn <name>(repeat 2โ24ร) - Stand in your lobby โ
/hg setlobby /hg start <name>
Players join with /hg join <name>.
๐๏ธ Arena System
Per-arena toggles (changed live with /hg setuparena <name> <flag>):
| Flag | Default | What it does |
|---|---|---|
pvp |
on | Enable / disable PvP damage |
lifesteal |
off | Players drop heart items on death |
hardcore |
off | Eliminated players are kicked |
veinminer |
off | Sneak + break to chain-mine ores |
nether |
on | Isolated Nether world per arena |
theend |
on | Access to The End dimension |
Legendary spawn points:
/hg setlegendary <arena> <itemId> โ mark spawn at your feet
/hg deletelegendary <arena> โ remove nearest spawn (within 5 blocks)
โก Legendary Weapons
๐ก๏ธ Swords & Melee
| Item | Ability |
|---|---|
| โ๏ธ Cloud Sword | Walk on clouds; fall immunity; armor shred on hit |
| ๐ Midas Sword | +1 damage per kill (stacks); golden particle on kill |
| ๐ Emerald Blade | Deposit emeralds to upgrade damage; sneak+click GUI |
| ๐ Shadow Blade | Sneak: teleport behind target; click: invisibility + Speed III |
| ๐ Reaper Scythe | On hit: steal buffs and heal; right-click: AOE sweep |
| ๐ Dragon Katana | Passive Speed I; right-click: Dragon Fireball dash |
| โจ Excalibur | 5s true invincibility (all damage cancelled); 50% reflect |
| ๐ชจ Golem Hammer | Leap + shockwave on landing; passive knockback resistance |
| ๐ Magma Club | Lava pillar AOE; sneak+click: volcanic eruption |
| โ๏ธ Warpick | On-hit 3ร3 explosion; on critical hit: armor durability shred |
| ๐ค Obsidian Dagger | Sneak+click: Resistance V shield; click: meteor strike |
| ๐ด Crimson Chainsword | Shred stacks passive; right-click: Chainsaw Rampage burst |
| ๐ป Soul Gauntlet | Collect souls on hit; right-click: Soul Blast; sneak: Ground Slam |
| ๐ช Harpoon Launcher | Fires a harpoon that hooks and pulls the target toward you |
๐น Bows & Ranged
| Item | Ability |
|---|---|
| ๐ Artemis Bow | 5 homing arrows; lightning proc; Sky Strike sneak ability |
| ๐๏ธ Phantom Longbow | Invisible arrow; caster invisible on fire; target gets Darkness |
| ๐ Ender Bow | Sneak: Void Dash; arrow hit: swap positions with target |
| ๐งช Toxic Crossbow | High-velocity bolt; poison cloud on impact |
| ๐ฆพ Warden Crossbow | Sonic Boom projectile; converts blocks to Sculk on hit |
| ๐ Corrupted Crossbow | Tick-based poison cloud bolt; Multishot enchant support |
| ๐ฑ Guardian Cannon | Passive Dolphins Grace in water; continuous stasis laser |
| ๐ก Pufferfish Cannon | Bouncing pufferfish; explodes with Poison + Nausea |
๐ฎ Staves & Magic
| Item | Ability |
|---|---|
| ๐ง Lich Staff | 4 ammo ice balls; 30s reload; passive Frost Walker |
| ๐ Void Staff | Toggle Portal / Shulker Mode; independent cooldowns per mode |
| ๐ Hypnosis Staff | Hypnotise up to 5 mobs; minions target your enemies |
| ๐ฅ Villager Wand | Aim at block โ explosive slime bomb detonates |
| ๐ Death Note | /dn <player>: instant kill (3 uses, per-target cooldown 25s) |
| ๐ Sculkweaver's Lantern | Sculk bomb: Darkness + Slowness lingering zone |
| โ๏ธ Horn of Winter | Blizzard: continuous Freeze + Slowness in large radius |
| ๐ Ghastly Whistle | Rideable Ghast companion; auto-fireball every 2s; 20s duration |
๐ Tridents, Launchers & Special
| Item | Ability |
|---|---|
| ๐ฑ Aiglos | Trident: explosive throw + AOE freeze; melee stats via attributes |
| ๐ Wither Sickles | Auto dual-wield offhand; throw (CD 7s); AOE Wither + lifesteal on hit |
| โก Mjolnir | Throw (returns); melee hit: lightning strike |
| ๐ฆ Ravager Horn | Mount a Ravager; sneak+click: Stampede wave |
| ๐ฌ Shrink Ray | Left-click: shrink target; right-click: enlarge target |
| ๐ด Armadillo Detonator | Shoot up to 3 armadillos; left-click: detonate all |
| ๐ Beehive Blaster | Launches 4 angry bees that auto-target nearest enemy |
| ๐ฟ Ribbit Reel | Hit block: pull yourself; hit entity: pull them to you |
| ๐ง Fountain of Youth | Passive +1 HP/s while held; right-click: 30s healing zone for allies |
๐ก๏ธ Armor
| Item | Slot | Ability |
|---|---|---|
| ๐ช Hades' Helm | Head | Night Vision; invisibility while sneaking; fire aura; Wither attacker on hit received |
| ๐ Hermes Boots | Feet | Speed II + Jump Boost; Hermes Dash; full fall immunity |
| ๐ช Reinforced Elytra | Chest | Particle trail while gliding; Sonic Boom boost; landing explosion |
๐ฐ Dungeons
Dungeons spawn procedurally during a match โ no schematic files needed.
dungeons:
mob-hp: 60.0
boss-hp: 100.0
spawn-chance: 0.1
lava-temple:
enabled: true
mob-hp: 40.0
fire-ticks: 100
๐ Feast Event
High-tier chests spawn at the Cornucopia after a configurable timer.
arena:
feast:
enabled: true
time-minutes: 20
chest-count: 8
announce-minutes: [15, 10, 5, 3, 2, 1]
๐ฅ Teams
| Command | Description |
|---|---|
/team create <name> |
Create a team (you become leader) |
/team invite <player> |
Send an invite (expires 60s) |
/team join <name> |
Join an open team |
/team leave |
Leave your team |
/team open |
Toggle open / invite-only |
/team disband |
Disband team (leader only) |
/tc <message> |
Team chat |
โจ๏ธ Commands
/hg โ Main Command
| Sub-command | Permission | Description |
|---|---|---|
join <arena> |
hoplitebr.hg |
Join an arena lobby |
leave |
hoplitebr.hg |
Leave the current arena |
lang <code> |
hoplitebr.hg |
Change your language |
create <name> |
hoplitebr.admin |
Create a new arena |
start <arena> |
hoplitebr.admin |
Force-start a match |
setcornucopia <arena> <theme> |
hoplitebr.admin |
Set and build the Cornucopia |
addspawn <arena> |
hoplitebr.admin |
Add player spawn at your feet |
setuparena <arena> <flag> |
hoplitebr.admin |
Toggle per-arena flags |
setlegendary <arena> <id> |
hoplitebr.admin |
Mark legendary spawn |
setlobby |
hoplitebr.admin |
Set post-match lobby location |
admin give <player> <item> |
hoplitebr.admin |
Give a legendary item |
reload |
hoplitebr.admin |
Reload all config files |
Other Commands
| Command | Permission | Description |
|---|---|---|
/withdraw <amount> |
hoplitebr.withdraw |
Convert lifesteal hearts to items |
/perf <stats|optimize|reload|gc|chunks> |
hoplitebr.admin |
Performance tools |
/structure <reset|stats> |
hoplitebr.admin |
Structure management |
/locate <name> |
hoplitebr.hg |
Locate a placed structure |
/migrate |
hoplitebr.admin |
Migrate legacy legendary PDC tags |
/debug |
hoplitebr.admin |
Dump debug info to console |
/dn <player> |
hoplitebr.dn |
Death Note kill command |
๐ Permissions
| Permission | Default | Description |
|---|---|---|
hoplitebr.hg |
true |
Basic game commands |
hoplitebr.team |
true |
Team commands |
hoplitebr.tc |
true |
Team chat |
hoplitebr.withdraw |
true |
Lifesteal heart withdrawal |
hoplitebr.dn |
true |
Death Note kill command |
hoplitebr.admin |
op |
All admin / setup commands |
๐ง Configuration
Config files:
config.ymlโ global settings, arena defaults, database, performanceloot.ymlโ chest loot tiers (common / uncommon / rare)scoreboard.ymlโ scoreboard layout and update intervallegend-items/<id>.ymlโ per-weapon stats, recipe, lore, enchantmentsdungeons.ymlโ dungeon type toggles and mob HPcornucopia.ymlโ Cornucopia build presetslanguages/<code>.ymlโ message translations
๐ Developer API
// Get the arena a player is in (null if not in any)
Arena arena = HopliteAPI.getPlayerArena(player);
// Access the plugin instance
Main plugin = HopliteAPI.getPlugin();
Custom Events:
| Event | Fired when |
|---|---|
ArenaStartEvent |
Match transitions STARTING โ PLAYING |
ArenaEndEvent |
Match ends (winner declared) |
PlayerEliminatedEvent |
A player is eliminated |
DungeonSpawnEvent |
A dungeon is generated |
๐ Troubleshooting
Legendary abilities not working
- Confirm the player is in an active arena (
PLAYINGorDEATHMATCH) - Check
hoplitebr.adminpermission โ OP always bypasses ability checks - Run
/debugand check console for[Ability]log lines withdebug: true
Countdown cancels immediately on start
- Fixed in 4.5.5 (BUG-CD-01)
- Update to latest version
Feast never spawns in second match
- Fixed in 4.5.5 (BUG-FM-01)
- Update to latest version
Stats reset to zero on every join
- Fixed in 4.5.7 (BUG-JOIN-02)
- Update to latest version
Ability listeners fire twice
- Fixed in 4.5.7 (BUG-REG-01)
- Was caused by
registerEvents()in ability constructors
Italic text on legendary item names
- Fixed in 4.5.4 (BUG-FONT-01)
- Paper 1.20.5+ changed the default rendering style for custom item names
Players not teleported to centre at Deathmatch start
- Fixed in 4.6.2 (BUG-1 / GameTask FSM bypass)
GameTaskwas callingarena.setState(DEATHMATCH)directly, bypassingMatchService.transition(). The teleport and border-collapse logic insidescheduleDeathmatchTask()never ran.
World border ignores my config values โ always uses 1000 blocks
- Fixed in 4.6.2 (BUG-2 / mismatched config keys)
GameTaskwas readinggame.initial-border-sizeandgame.border.initial-size(wrong keys). The canonical key isgame.border-initial-size. The game-loop always fell back to the hardcoded default of 1000.
Border flickers / jumps every second during PLAYING phase
- Fixed in 4.6.2 (BUG-4 / dual border control)
MatchService.scheduleBorderTask()andGameTask.handleWorldBorder()both wrote to the WorldBorder simultaneously. The per-tick recalculation overrode the smooth periodic animation every second.scheduleBorderTask()has been removed;GameTaskis now the sole border authority.
Legendary item hologram shows material name (e.g. "WOODEN_SWORD") instead of weapon name
- Fixed in 4.6.2 (BUG-5 / legacy display-name API)
Arena.getActiveLegendaryLocations()calledmeta.getDisplayName()(legacy API) which always returns""for items using the Adventure Component API. The fallback ofrecipe.getType().name()was always reached.
Game doesn't end when a full team is the last survivor
- Fixed in 4.6.2 (BUG-6 / checkWin team logic)
checkWin()only ended the game whenaliveCount == 1. If the last 2+ survivors were all on the same team, the game continued and forced teammates to kill each other. Now checks if all alive players share a team.
Arena doesn't reset properly after double `/hg start`
- Fixed in 4.6.2 (BUG-3 / BUG-8 โ countdown tasks not tracked)
- Both
startMatch(Arena, int)andstartCountdown()created countdownBukkitRunnables without storing the task reference.cancelAllTasksFor()could not cancel them, leading to two countdown timers running concurrently andstartArena()being called twice.
/reload breaks the plugin
- Always restart the server โ never use
/reload
โ FAQ
Can I run multiple arenas at once?
Yes โ each arena is fully isolated in its own world instance.
Do I need FastAsyncWorldEdit?
No. It is only required if you want to paste custom .nbt / .schem structures.
Can players on the same team damage each other?
No โ all legendary weapons include friendly-fire checks.
How do I add a custom language?
Create languages/<code>.yml โ copy en.yml as a base and translate. Players switch with /hg lang <code>.
Does it support Spigot?
No โ Paper 1.21+ is required.
๐ Credits
Author: Duong2012G โ Modrinth
Several weapon mechanics were inspired by DemoRaLegendary Weapons by Demora (Apache 2.0 licence). No source code was copied โ only gameplay concepts were referenced.
๐ DemoRaLegendary Weapons: https://modrinth.com/plugin/demoralegendaryweapons
Open source โ contributions welcome.


