HungerGames – Feature-Rich Survival Games Plugin
Built for competitive events, streamable game shows, and large-scale battles.
Paper 1.21.4 |
Java 17+
Author:
Quttor
Soft Dependencies:
PlaceholderAPI
Description
HungerGames is a highly-configurable Survival Games plugin built for events of any size — whether you're running a 100-player livestream tournament or a casual community game night. Packed with event-driven mechanics, dynamic loot, configurable world borders, and team systems, this plugin is designed for scale, stability, and full control.
Features
Game Control
- /startgame – Begins the match (requires tributes)
- /stopgame – Ends the match, resets spectators and players
- /respawntribute <player> – Manually revive a tribute
- Automatic spectator mode on:
- Death
- Rejoin (if already dead)
- Mid-game join
- Pregame freeze until game starts
World Border
- Multi-stage shrinking system (borders.yml)
- Configure:
- Initial size & center
- Shrink delay and duration
- Live border control: /border commands
⛏️ Grace Periods (config.yml)
Toggle and configure:
- PvP Grace
- Block Break Grace
- Player Invincibility Grace
Each with separate timers.
Team System
- /team invite|join|kick|leave|list
- /tmsg or use ! prefix for team chat
- Team size limits configurable
- Death Match for last team standing
- Chat formatting fully configurable in chat.yml
Spectator System
- Spectator on death, late join, or disconnect
- /stopgame revives tributes back to survival
- Elimination timer on mid-game disconnects before elimination (configurable)
- Prevents exploitation or respawn glitches
️ Dynamic Event System (config.yml)
- Supports reusable named events with parameters
- Multi-stage schedules with delay & duration
- Looping support
- /event and /forcenextevent for live control
Event Types:
- ☣ Acid Rain
- ☄ Meteor Showers
- Player Swap
- Nether Lock/Unlock
- ✨ Effect Waves
- More to come
Loot Systems
Loot Chests (lootchest.yml)
- Set any container as a loot chest
- Chests auto-refill using schedules.yml
- Configure which loot table applies
- Supports /lootchest refill|set|unset
Loot Drops (lootdrop.yml)
- Define rectangular drop zones
- Schedule or manually trigger drops
- Broadcasts with PlaceholderAPI support
- Controlled via /lootdrop commands
️ Loot Tables (loottables.yml)
- Per-item chance, enchantments, durability
- Supports nested/inherited loot tables
- Compatible with both chests and drops
Messaging & Chat
Language System (lang.yml)
- Fully customizable plugin messages
- Placeholders: {player}, {team}, {kills}, {event}, {seconds}, {plural}, etc.
- More editable messages coming soon
✏️ Chat Formatting (chat.yml)
- Permission-based formats
- Use %player%, %message%, Minecraft color codes
- Integrates with LuckPerms placeholders
- External chat plugin compatibility not recommended
Example config.yml
Code (YAML):
# HungerGames plugin configuration
# By Quttor
# Built initially for auevents (https://discord.gg/uetNEYfZFn)
# If you encounter a bug or would like to request a feature, please dm me on discord (braqua2006)
use-placeholderapi
: true
countdown:
duration
: 30
# How many seconds the countdown lasts before the game starts
nether:
unlockedByDefault
: false
disconnectGraceSeconds
: 60
# how many seconds a tribute has to reconnect after a disconnect before being eliminated
maxPlayers
: 100
crafting:
blacklist
:
- MACE
- ENCHANTING_TABLE
borders
:
# border schedule system
overworld:
enabled
: true
# should this schedule system be enabled for this world
world
: world
# what world should this border schedule occur
centerX
: 0.0
# where should the border center around (x-axis)
centerZ
: 0.0
# where should the border center around (z-axis)
initialSize
: 500.0
# initial size of border at start of game
stages:
- size
: 250.0
duration
: 300
wait
: 10
# shrink to 250 over 300 seconds, then wait 10 seconds before proceeding with the next stage
- size
: 100.0
duration
: 300
wait
: 10
# more stages can be added as required
nether:
enabled
: true
world
: world_nether
centerX
: 0.0
centerZ
: 0.0
initialSize
: 300.0
stages:
- size
: 150.0
duration
: 200
wait
: 10
grace:
invincibility:
enabled
: true
duration
: 60
# seconds of invulnerability at game start
pvp:
enabled
: true
duration
: 120
# seconds until PvP (player damage) is enabled
block-break:
enabled
: false
duration
: 0
# seconds until block breaking is enabled (0 = immediately allowed)
teams:
enabled
: true
max-teams
: 4
# Number of total teams allowed
max-team-size
: 3
# Number of players per team
events:
eventTypes
:
[
"NetherUnlock",
"AcidRain",
"EffectEvent",
"MeteorShower",
"NetherLock",
"PlayerSwap"
]
Acid_Rain
:
# identifier for scheduling. Allows for same events with different parameters (e.g damage or duration)
eventType
: AcidRain
# event type
damage
: 2.0
# how much damage should the acid rain do per interval
damageInterval
: 5
# how frequent in seconds damage should be taken
duration
: 10
# how long the event should last for
Player_Swap:
eventType
: PlayerSwap
# can be resource intensive
Meteor_Shower:
eventType
: MeteorShower
spawnInterval
: 5
# how often in seconds a fireball should spawn on a player
explosionPower
: 2
# how powerful the explosion should be
duration
: 5
Effect_Event:
eventType
: EffectEvent
effects
:
# effects given when event occurs. More than one can be listed
- BLINDNESS
: 1
# Blindness 1
- SLOWNESS
: 3
noMilk
: true
# whether the effects can be removed by drinking milk
duration
: 10
Nether_Unlock:
eventType
: NetherUnlock
Nether_Lock:
eventType
: NetherLock
Acid_Rain_1:
eventType
: AcidRain
damage
: 1.0
damageInterval
: 5
duration
: 10
Meteor_Shower_1:
eventType
: MeteorShower
spawnInterval
: 2
explosionPower
: 4
duration
: 10
Blindness_Effect_Event:
eventType
: EffectEvent
effects:
- BLINDNESS
: 1
noMilk
: true
duration
: 10
Good_Effect_Event:
eventType
: EffectEvent
effects:
- SPEED
: 1
- REGENERATION
: 1
noMilk
: false
duration
: 10
eventSchedule:
initialDelay
: 30
# seconds before first event starts after /startgame
loopStages
: true
# should events start back at the beginning and continue after all event stages are exhausted?
stages:
1:
name
: Acid_Rain
# event identifier. Case-sensitive. If incorrect identifier is placed, nothing will occur.
delay
: 60
# delay in seconds in which the plugin should wait before starting the next stage
2:
name
: Nether_Unlock
# upon /startgame, nether is on default locked. Option to toggle this will be in a future update
delay
: 30
skipOnLoop
: true
# Currently not working. Please ignore
3:
name
: Good_Effect_Event
delay
: 90
4:
name
: Effect_Event
delay
: 120
5:
name
: Meteor_Shower
delay
: 300
6:
name
: Nether_Lock
delay
: 30
PlaceholderAPI Support
- %hungergames_team.name% – Player’s team number
- %hungergames_team.members% – Team members
- %hungergames_team.active% – Active teams
- %hungergames_border.size% – Current border size
- %hungergames_border.nextshift% – Time to next shift
- %hungergames_event.current% – Current event name
- %hungergames_event.next% – Next event name
- %hungergames_event.next_in% – Time to next event
- %hungergames_player.kills% – Player kill count
- %hungergames_player.status% – Pregame / Alive / Spectator
- %hungergames_players.alive% – Alive tributes
- %hungergames_players.total% – Total players
- %hungergames_times.elapsed% – Elapsed game time
- %hungergames_grace.pvp_remaining% – PvP grace remaining
- %hungergames_invincibility_remaining% – Invincibility time left
- %hungergames_block_break_remaining% – Block break grace time left
⚙ Configuration Files
- config.yml – Global settings & grace periods
- borders.yml – Border shrinking schedule
- events.yml – Event schedule system
- spawns.yml – Up to 30 tribute spawns
- chat.yml – Chat format per permission
- lang.yml – Plugin messages
- lootdrop.yml, lootchest.yml, loottables.yml – Loot systems
Getting Started
- Drop the .jar in /plugins
- Restart your server
- Set tribute spawns with /setspawn <1–30>
- Configure your files (config.yml, lang.yml, loot)
- Run /startgame and enjoy!
✅ Requirements
- Minecraft: Paper 1.21.4
- Java: 17 or higher
- Optional: PlaceholderAPI
Support
For help, feature requests, or bug reports:
DM me directly on Discord: braqua2006