JamOnToast's Hunger Games
PluginLicenseRef-All-Rights-Reserved

JamOnToast's Hunger Games

This plugin enables users to turn any map into a fully playable Hunger Games arena, complete with customisable game events, refills, and more!

5
Downloads
0
Followers
2 months ago
Updated
📦
2
Versions

📖About JamOnToast's Hunger Games

dono-badge

⚔️ JamOnToast's Hunger Games ⚔️

gameTimer

Survival games with your friends for the modern era! This plugin gives you the tools to, with a just little bit of prep, turn any hunger games map you can imagine into a fully playable arena.

Features

Customisable Arenas

Tweak and tailor your arena's dimensions, loot, refills, endgame, and more! Make almost any map you want fully playable.

Full Spectator Implementation

spectator menu
Spectators have the ability to teleport to alive players, and an optional shop where they can spend money earned through playing to "sponsor" remaining players and give them helpful items!

The Fallen

The Fallen
Dead Player
Optional nightly display of the players that have died each day!

In-Game Events with "Segment Groups"

lightning
Bring scenes from a certain movie ;) to your games with segment effects that can be set to activate in a circuit or individually!

NOTE: currently HIGHLY unoptimised, and certain effects may crash your server. Use at your own peril, until future updates bring more stability!

Getting Started

Once you have an arena set up, you can modify it in arenas.yml. Before that, you have to create one.

Command Description
/hgarena create Creates an arena

This command requires some basic info: /hgarena create <name> <type> <radius> <height> <maximum number of players>. "Type" refers to either circle or square, the two accepted shapes for arenas. In the case of square arenas, the arena radius is calculated on a straight line, not a diagonal. The arena's center will be logged as your current coordinates.

If you make a mistake, use /hgarena delete <name>. Use /hgarena list to see if your arena was created!

Once your arena has been created, there's still some work to do before you can start playing.

Inside arenas.yml, start by entering the information for the arena's lobby. This is the location that players will need to be in in order to be able to join a game. The information is generally the same as for the arena itself: coordiantes for the center, a distinction between whether the lobby is a circle or a square, and the lobby's radius and height.

Next, fill out the spawnpoints for players in this format: '1': 0.5,0,0.5, from 1 until whatever your maximum number of players for that arena is. It is recommended to set a distinct spawnpoint for each potential player, and depending on the map they may already be designated locations you just need to get the coordinates of.

The chest locations section should be located near the bottom. Though it is possible to manually add coordinates here as well following this format: '1': 565,58,510, it is easier to use the following command.

Command Description
/hgarena chest add Adds a chest location to an arena

The add command requires some info too: /hgarena chest add <type> <arena name> [x] [y] [z]. Here, "type" refers to whether the chest is a "normal", "center", or "prime" chest, the only real distinction being which loot table and which refill times the chest will use.

With the plugin default loot tables, normal chests have generally lower quality items but a small chance of good items, center chests have low-to-mid-range items with no chance of rare items, and prime chests have better, rare items. The quality for all chests increases proportionally in the refill loot tables.

The coordinates for the chest are optional, depending on if you are inside the arena you are adding a chest to. If you prefer not to type in coordinates, and are inside the arena in question, leaving out the coordinates from the command will cause the chest's location to be at your coordinates.

If you make a mistake, /hgarena chest remove works in the exact same way. You can use /hgarena chest list <type> <arena name> to see all chests of a certain type in an arena. Click on the coordinates to teleport to the chest!

Customisation

Almost everything can be customised! Here's how you can make your arenas and games your own:

Loot Tables

JoT Hunger Games has three main types of chests you can scatter throughout your maps: normal, center, and prime.

Default loot tables for both initial fills and refills are coded in, but you can easily replace them with your own! Either edit the loot tables found in the loot_table folder located in the plugin folder, or replace them entirely. Just make sure the file name is exactly the same!

If you make a mistake, or simply want the default loot table back, delete the loot table. It will be replaced on a restart.

ATTENTION! Currently, you must restart your server TWICE for any loot table changes to be recognised by the plugin, due to how datapack and plugin load orders interact.

Arenas and Game Events

All arena data can be edited from the arenas.yml file, found within your plugin's folder.

Time and Weather

To change the time a game starts at, simply input the time of day in ticks. The default is 6000, which is about noon. The three options for weather inputs are "clear", "rain", and "storm".

Grace period

If you would like your games to have a grace period, where no violence is possible, you can tweak how long you want that to be. To have no grace period, set the length to 0.

Endgame and Other Events

World border, highlight players, and locator bar are all endgame events that you can enable or disable, as well as being able to set the activation time.

For the world border event, where the border shrinks, you can set the start time, how long it will take to shrink, how big the final border radius will be, and if that radius will be centred on your arena's center or a random point within the arena.

The highlight players and locator bar event both help players locate each other to speed up the endgame, and are more helpful on larger maps. Highlight players will apply glowing to all players, while locator bar will enable the locator bar, which the plugin turns off by default whenever a game starts.

You can also change when chest refills will occur, as well as how many of each there will be, if any.

You can choose whether these events will be broadcast to the player, either through action bar announcements or through the sidebar timer. Be default both methods are set to be enabled.

Segment effects can be triggered as game events as well! If there isnt a "linked segment group:" field in your arena config, add it, and type in the name of the segment group you want to be linked with your arena. It is recommended to have the segment effect group be the same dimensions and location as your arena, making this not work quite as well with square arenas.

All Commands

Command Arguments Description
/hgarena start [player count] Starts a game in an arena. If a player count is not specified, and there is at least one player in the arena lobby, a game will be created by randomly selecting all players within the lobby bounds up until the arena's player limit.
/hgarena stop Stops the game running in the specified arena.
/hgarena create Creates an arena with the provided information. The only accepted "types" of arena are "circle" and "square".
/hgarena delete Deletes the indicated arena.
/hgarena list Lists all arenas.
/hgarena chest add [x] [y] [z] Creates a chest of the specified type in an arena. If coordinates are not specified and the player using the command is inside an arena, the player's coordinates are used instead.
/hgarena chest remove [x] [y] [z] Deletes a chest of the specified type an arena. If coordinates are not specified and the player using the command is inside an arena, the player's coordinates are used instead.
/hgarena chest refill [arena name] Refills all chests of the specified type in an arena. If an arena is not specified, and the player using the command is inside an arena, that arena will be used instead.
/hgarena chest list Lists all chests of the specified type in an arena. If an arena is not specified, and the player using the command is inside an arena, that arena will be used instead.
/hgsegmentgroup create [inner radius] Creates a segment group with the provided information. "Inner radius" is optional, and used to create a group with a donut shape, as opposed to a whole circle.
/hgsegmentgroup delete Deletes the specified segment group.
/hgsegmentgroup list Lists all segment groups.
/hgsegmentgroup clearCache Clears all data stored by a segment group, such as entitites and blocks, in case of issues or server lag. Emergency command.
/hgsegmentfill [layer] Fills all of a segment (or a single layer) in a segment group with a block. Figuring out which segment number is correct may require some trial and error.
/hgsegmenteffect start Starts running the specified effect in a segment.
/hgsegmenteffect stop Cancels the specified effect in a segment.
/hgsegmenteffect list [active] Lists all possible segment effects. If specified, lists all effects that are active instead.