This repository contains a Minecraft world that is inspired by the 74th Hunger Games arena. The world has custom developed data packs for extended vanilla functionallity, such as working tribute tubes, no GUI loot items and more.
The original world makes up the exterior terrain for the arena, which was made by Flashness1. I extended the world with the underground catacombs and launch rooms for tributes to enter the arena from as seen in the following images.
Hallway in the catacombs leading to the launch room of tribute 1
Launch room with door looking at a table that has a tribute token item placed upon it
A full experience is created by combining data pack features that utilize vanilla game elements. Throughout a game experience the following features may be noticed.
For dramatic effect tributes can be lifted into the arena using the tribute tube. The arena elevator data pack is used to lift players. In the launch room players can enter the elevator as seen in the following image.
Entrance of the tribute tube viewed from within the launch room
After starting the game players will be held back on the platforms until the countdown ends. The countdown is displayed visually in the world as seen in the following image. Both the start positions and the countdown can be setup using the arena world data pack.
Platforms bend around the cornucopia center that has a countdown display upon it
Spread throughout the arena are loot items that can be picked up by players, as seen in the following image.
Looking out from within the cornucopia to the loot items layed out on the ground before the platforms
These items can be picked up by interacting with the entity. The default Minecraft control for interacting is right click. The functionality for the special items is found in the arena item data pack.
All items in the arena are picked based on the same loot table, which is stored in the arena world data pack. The items are placed at loot markers on the reset trigger.
At any moment the arena can be reset to allow for a new match to ready itself. During the reset arena entities are removed, sweet berry bushes are grown to be pluckable and campfires are unlit.
Note
Only sweet berry bushes and campfires that are set with the data pack are reset, see the placing world objects section for how to setup new objects in the arena.
Outer area of the arena with a campfire next to a creek
Four data packs are combined for the use in the arena. The arena elevator and arena item data pack could be used separately for their functionality. Some functionality of the data packs can be altered by adjusting data in game.
The arena action data pack manages player related functionality for the arena. The data pack allows players to be given a tribute or gamemaker role. Gamemakers are able to trigger actions for the arena to take. Lastly gamemakers can manage sponsering for the tributes.
The arena elevator data pack provides an elevator for the arena. An elevator can be created and removed. Of course an elevator can also lift players inside.
/execute positioned ~ ~ ~ arena_world:create {block:$block_name%, height:%height%}
/execute as @n[predicate=arena_elevator:arena_elevator] run function arena_elevator:remove
/execute as @n[predicate=arena_elevator:arena_elevator] run function arena_elevator:lift
The arena item data pack provides visible items for the arena. Items can be created and removed. For each created item an item display can have its item be replaced to change what item can be picked up by a player.
/function arena_item:create
/execute as @n[predicate=arena_item:arena_item] run function arena_item:remove
/execute as @n[predicate=arena_item:arena_item_display] run loot replace entity @s contents loot arena_world:arena_loot
The arena world data pack contains functionality for controlling the world for the arena. Most importantly this data pack can be used to place world objects.
Various function of the data packs can be used to setup and manage the arena.
The arena action includes functions to manage players for the arena.
In order to differentiate between players and moderators there are two roles. The tribute and gamemaker role can both be altered for a player by executing the tribute add, tribute remove, gamemaker add or gamemaker remove function.
/function arena_action:tribute/add
/function arena_action:tribute/remove
/function arena_action:gamemaker/add
/function arena_action:gamemaker/remove
For making sponsering of players easier during a physical local server event some function are available. The select function can be used to select the currently held item as the item to sponsor, which can be followed by the receive function to give the player executing the function the currently selected item. As a one command option the give function allows a gamemaker to give the currently held item to the player with the specified name.
/function arena_action:sponsor/select
/function arena_action:sponsor/receive
/function arena_action:sponsor/give {name:%player_name%}
In order to ease the control of the arena the following triggers are made for gamemakers to use. The arena action will take care to update the state of the arena accordingly.
Restores the arena to a 'clean' state that is prepared to be made ready for a game. An ideal state to adjust data before starting the game.
Starts the arena by launching tributes inside a tribute tube into the arena. After the tributes have been lifted and the countdown finished the games have begun.
Starts the arena by teleporting tributes to the start position markers in the arena. Then a countdown starts, after which the games have begun.
Announces the winner of the games by checking for alive tributes. Additionally the spectating tributes are teleported to spectate the victor.
Special objects can be placed in the arena using the arena world data pack. The objects, berry_bush
, campfire
, countdown
, elevator
, loot
, start_position
and token
can be made using the following function by replacing the respective name.
/function arena_world:name/make
Further more animal spawn location can be marked by using the following command for either a land
or water
spawn position.
/function arena_world:animal/land
/function arena_world:animal/water
The data packs set default data that can be adjusted manually. Changing data is completly optional, but allows modification of behavior without having to modify the data pack files. Data that can be adjusted can be inspected by running the /data get storage
command.
Other functions that can be used from the data packs include a function to spawn an angry wolf as a threat to the players.
/function arena_world:threat/wolf/spawn
Footnotes
-
I would be pleased to hear better references to the originial world author Flashness or the original upload for the world used. ↩