[server.properties](https://gist.githubusercontent.com/NeunEinser/dac27cc76dbc83bdd1ea22a99cff3967/raw/5.3-pre1.properties)
## Changelog
- It is now supported to update old Fetchr installations to the current release
- Updating version 5.0.1 and prior is not supported and will print error
messages
- It is now always supported to change the Minecraft version without
re-downloading Fetchr
- Added Quick Actions dialog
- Credits for people that do not have a player head block now have a profile
icon next to their name on the sign if their Minecraft in-game name is known.
- It is now fully supported for extension packs to alter or add to the lobby.
- Images in the resourcepack are saved more efficiently now and have metadata
stripped
- The topmost item pool display chest is no longer forced to be a double chest,
and may be a single chest depending on the item pool now
- Compatibility warning spam will show in all past and future versions now, even
if the future version has changes that would normally prevent the datapack
from loading
- Most of the data and resource pack are now disabled when playing in an
unsupported version
- The only exception to this is the languages from the resource pack, and the
ticking function which is responsible for posting the error message
- The HUD now updates after every reload and applies changes to selected
components of players. New components are currently not automatically added.
to existing player's HUDs
## Updating a previous installation
Always do a backup of your world before updating! There is a chance of
corruption
- Download the world download
- Unzip the zip file
- Copy and replace all files from the world download in your save file
When updating, player-placed blocks are preserved if possible, and dropped if
the original block has changed compared to the new lobby version. If the part of
the lobby has been entirely removed (like the machinery), blocks are dropped at
the lobby spawn, otherwise they are dropped were they used to be placed.
For Fetchr versions that still had the machinery, the lobby will be moved
slightly. In case there is a player-placed structure that partially intersects
with the bounding box of a lobby section, the lobby section including that part
of the player-placed structure will be moved, slicing the player-placed
structure.
If you create a backup, you can safely test how the lobby update treats your
lobby.
Entities that were changed will have their changed data updated, while
preserving any changes that may have been made by the player (like switching the
armor of an armor stand)
## Quick Actions Dialog
A static quick actions dialog can now be accessed when pressing `G` by default
(see “Quick Actions” keybind in the Miscellenaeous section).
The Quick Actions dialog is only available when playing in Minecraft version
1.21.6 or later.
Quick actions allow:
- Genreate a random card
- A confirmation dialog to end the game will be shown if the player is
currently in a game
- Genreate a card from seed
- A confirmation dialog to end the game will be shown if the player is
currently in a game
- Return to Lobby or Join Game
- If the player is in the lobby, attempts to join a game, otherwise returns to
the lobby
- Enter Spectator Mode
- During the game, allows to enter spectator mode
- Move Players to Lobby or Spawn Preview
- During an active game, moves all players to the lobby
- When the spawn preview is ready, moves all players to the spawn preview
- Reveal Bingo Card
- During a Concealed Card run, reveals the Bingo Card.
Since there is no way to make the Quick Actions screen dynamic, all options will
always be shown, even if they are not releveant.
You can also access the Quick Actions from the Pause Screen, after clicking
“Fetchr Options”. The Quick Actions screen navigated to from this screen behaves
differently and is dynamically generated with only relevant actions visible.
## Profile pictures in the credits room
All signs mentioning player names now display a profile picture if the in-game
name of the creditee is known, and they don't already have a player head
associated with them.
[<img src="/images/5.3/new_translator_credits.png" width="500">](/images/5.3/new_translator_credits.png)
[<img src="/images/5.3/new_special_thanks.png" width="500">](/images/5.3/new_special_thanks.png)
## Technical Changes
- During a lobby update, all marker entities inside a lobby structure may be
deleted.
- Everything in the build datapack and resoucepack is now part of an overlay and
no longer inside the root `data` and `assets` directories, with the exception
of language files.
### Registering a lobby structure
- Use fetchr:registries structures
- `id` - (namespaced id) The id of your structure file
- `override_id` (optional, namespaced id) Should be left empty for structures
you define. Can be used to override a structure from a foreign pack (e.g.
vanilla Fetchr) with a different structure file you define.
- `version` (int) The numeric version of the structure. Should be changed
when your structure file is updated, so that the lobby can be updated.
This should be unique for the combination of `id` and `override_id`.
- `entrance_position` int array of length 3. Indicates the position of this
structure's entrance. If the x position is set higher than 1, it is currently
not supported to have any blocks in front of the entrance.
- `after_structure` (optional, namespaced id) The id of the structure to place
this structure after. This can be used to insert a structure after another
known structure. If set, this structure will be placed after the existing
structure, or a structure that has set the same `after_structure`.
This should _not_ be set to a structure of your own pack. The order of your
structures will be preserved. If you want to insert a structure after one of
your own structures, simply set it to the same `after_structure` as the other
structure and register it later.
Removing a structure after it has been added is fully supported (e.g. if your
pack is uninstalled).
### `#fetchr:lobby_update/manipulate_special_block` & `#fetchr:has_special_lobby_update_behavior` tags
During a lobby update, if a block was changed in your structure, this change
will be applied to the existing structure. In case this block has been altered
by the player, it will be dropped. This will do a strict comparision, including
nbt data and block states.
In some cases this can be too strict. For example, vanilla fetchr handles doors
and player heads specially, and makes sure doors that were only opened or
closed, and player heads that have additional data from a previous minecraft
version when profile data was still resolved and saved on the block are treated
equally.
You can add blocks you want to handle specially to the
`#fetchr:has_special_lobby_update_behavior` block tag. If you do this, in case
this block is detected altered, functions in the function tag
`#fetchr:lobby_update/manipulate_special_block` will be called.
`#fetchr:lobby_update/manipulate_special_block` context:
- location: This function will be executed at the location of the old block that
has changed and will be dropped if there is a difference between this block
and the previous unaltered structure
- macro arguments:
- `reference_x`: The x location of the reference. The reference is an
unaltered version of the lobby. This location will contain the unaltered
block
You may alter either the block at the reference or the block that is compared
against to make them equal, preventing the block in the lobby from being
dropped.
You should check whether both the block in the reference and the old block are
a block you want to handle.
### `#fetchr:lobby_update/manipulate_updated_entity`
This function tag can be used to do additional changes to an entity after it
has been updated.
Context:
- current entity (@s): The entity that has been updated
- location: The location of the entity
- `@e[tag=fetchr.current_new]`: The unaltered new entity as it is defined in
your structure
### `#fetchr:lobby_update/add_legacy_structures`
This function tag can be used to update a lobby of an older version of fetchr.
You do not need this for updating structures when using this version of Fetchr
or beyond. This is only for updating lobbies from 5.1-beta1 - 5.3-beta5.
Add the structures that would have been there in your version configured
correctly to storage `io.fetchr:structures structures`.
`id` should be the namespaced id of the structure which matches the structure
file of the new structure.
`entrance_position` should be the entrance position according to the old
structure
`legacy_id` should be the id of the structure file which produces the structure
as it has been part of the old lobby
### `#fetchr:lobby/generated`
This function tag is called after the lobby has been genreated either for the
first time, or a lobby update has been completed.
Use this to e.g. spawn marker entities. Make sure your marker entity doesn't
exist already from a previous generation.
You should also run this function when your datapack is loaded for the first
time and the score `$lobby_genreated` in `fetchr.state` equals 4.
### Other new function tags
- `#fetchr:goal_and_item_detection/achieved_goal`: Any goal has been achieved
- `@s`: Player who got the last item
- `@a[tag=fetchr.in_current_team]`: Players who are in the team achieving the
goal
- `#fetchr:goal_and_item_detection/achieved_20_no_bingo`
- `@s`: Player who got the last item
- `@a[tag=fetchr.in_current_team]`: Players who are in the team achieving the
20 no bingo
- `#fetchr:goal_and_item_detection/achieved_bingo`
- `@s`: Player who got the last item
- `@a[tag=fetchr.in_current_team]`: Players who are in the team achieving the
bingo
- `#fetchr:goal_and_item_detection/achieved_blackout`
- `@s`: Player who got the last item
- `@a[tag=fetchr.in_current_team]`: Players who are in the team achieving the
blackout
- `#fetchr:goal_and_item_detection/achieved_lockout`
- `@s`: Player who got the last item
- `@a[tag=fetchr.in_current_team]`: Players who are in a team winning the
lockout race. Maybe players of multiple teams in case of a tie.
- `#fetchr:goal_and_item_detection/finished_points_race`: The points race ended.
- `@a[tag=fetchr.in_current_team]`: All players who were in a winning team
- `#fetchr:goal_and_item_detection/item_gotten`: A player got an item that is on
the card
- `@s`: The player who got the item
- `@a[tag=fetchr.in_current_team]`: All players who are in `@s`' team
- Macro parameter `color`: The color of the team
- `#fetchr:goal_and_item_detection/item_gotten_and_card_updated`: Player @s got
an item that is on the card. Will be called after the card has been updated,
and potentially a goal has been detected and announced.
- `@s`: The player who got the item
- `@a[tag=fetchr.in_current_team]`: All players who are in `@s`' team
- Macro parameter `color`: The color of the team
- `#fetchr:game/tick` Ticking function that is called while a game is in
progress
- `#fetchr:lobby/tick`: Ticking function that is called while the lobby is
loaded by at least one player
- `#fetchr:spawn_preview/tick`: Ticking function that is called while the spawn
preview is available
- `#fetchr:lobby/tick`: Ticking function that is called while the lobby is
loaded by at least one player
- `#fetchr:player_tick`: Ticking function that is called for every player
- `@s`: The current player who is in the lobby
- Position: Function is executed at the player's location
- `#fetchr:game/player_tick`: Ticking function that is called for every player
in a running game
- `@s`: The current player who is playing in the game
- Position: Function is executed at the player's location
- `#fetchr:lobby/player_tick`: Ticking function that is called for every player
- `@s`: The current player
- Position: Function is executed at the player's location
- `#fetchr:spawn_preview/player_tick`: Ticking function that is called for every
player in the spawn preview
- `@s`: The current player who is in the spawn preview
- `#fetchr:spawn_preview/created`: The spawn preview area has been created
- `#fetchr:spawn_preview/player_entered`: Player `@s` entered the spawn preview
area
- `#fetchr:spawn_preview/teleported_all_players`: All players have been
forcefully teleported to the spawn preview area
- `#fetchr:spawn_preview/joined_team`: During the spawn preview phase, a player
has joined a team.
- `#fetchr:start_sequence/start_sequence`: The “start game” sign has just been
activated, and the spawn sequence starts
- `#fetchr:start_sequence/players_start_falling`: Players start falling as part
of the spawn sequence
- `#fetchr:start_sequence/all_players_landed`: Players landed as part of the
start sequence
- `#fetchr:start_sequence/advance_countdown`: Countdown before a game starts
decreases
- `#fetchr:start_sequence/countdown_ended`: The countdown ended and the game
starts
- `#fetchr:game/ended`: A card generation was requested, and the current game
has ended (players returned to lobby, game state changed, etc). The card
generation will take place after this tag has been called.
- `#fetchr:game/revealed_concealed_card`: While the concealed card setting is
active, player `@s` has revealed the card.
- `#fetchr:game/joined_as_spectator`: Player `@s` has entered a running game as
a spectator
- `#fetchr:dialog/add_to_quick_actions`: The dynamic Quick Actions dialog
acessible from the pause menu under Fetchr Options is about to be generated.
Use this tag to add your own Quick Actions.
Note that this is not related to the Quick Actions dialog accessible from the
`G` hotkey
- storage `io.fetchr:dialog dialog`: The dialog to show to the user. This is
always a type `multi_action` dialog.
- `#fetchr:lobby/player_returned`: Player `@s` has returned to the lobby
- `#fetchr:lobby/teleported_all_players`: All players have been forcefully
teleported to the lobby
- `#fetchr:confirmed_operator_status`: Player `@s` has successfully confirmed
their operator status
- `#fetchr:lobby/before_item_pool_chest_incremented`: During item pool chest
generation, a new chest is about to be added
- `#fetchr:lobby/item_pool_chest_incremented`: During item pool chest
generation, a new chest has been added
- `#fetchr:lobby/item_pool_chests_generated`: The item pool chest generation has
completed
- `#fetchr:hud_component_updated`: A HUD component has been updated after a
reload. You can do custom updates for your components here to support older
versions of your pack being updated
- `#fetchr:item_pool_changed`: The item pool has changed.
## Bug Fixes
- Fixed compass player position icon showing colors that are slightly off (due
to the image using an outdated palette)
- Fixed “This setting will only take affect after generating a new card” hint
showing an incorrect non-existing translation key.
([#302](<https://github.com/NeunEinser/bingo/issues/302>))
- Fixed scaffoldings dropping when reloading (or regenerating the item pool
display) if the item pool exceeds a certain size
([#301](<https://github.com/NeunEinser/bingo/issues/301>))
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }