
We're back in action with another Snapshot! In this week's release we're making it possible to access game rules from the in-game pause screen, through the new world options button. On the data pack side of things, we're introducing a new concept of world clocks, which is an expansion of the work we did on timelines last year. For more information about world clocks and more, browse the full changelog below.
Happy mining!
day_count debug entry has been split from local_difficultyThe difficulty button in the pause menu has been replaced with a button leading to a new screen - World Options.
time command to work with World Clocks and Timelinestime_check condition to specify a World ClockWorld Clocks contain an internal time that increases every tick. They can be defined in data packs under the world_clock registry (i.e. found under data/<namespace>/world_clock/<id>.json)
time commandclock field: a World Clock ID, specifies which World Clock the timeline is tied tominecraft:overworld clock can be usedtime_markers field, an optional map between namespaced Time Marker IDs and either an int or a Time Marker object,ticks: int between 0 and period_ticks, the tick that the time marker marksshow_in_commands: optional boolean, specifies whether the Time Marker will show up in command suggestionsfalseTime Markers assign a particular name to a specific (optionally repeating) point in time for a specific World Clock. Time Markers replace the previously predetermined names that could be used by /time set, for example day or night.
Time Markers will exist within the context of a specific World Clock. This means that even though the different Time Markers are defined by different Timelines, only one Time Marker can exist with a particular id for a particular World Clock. It also means that two World Clocks can have a Time Marker with the same name.
Some Time Markers are used to drive Vanilla game behavior. Usually, they are configured to not show up in /time commands.
minecraft:wake_up_from_sleep - the time to advance the dimension's default clock to when players in that dimension wake up after sleepingminecraft:roll_village_siege - the time of the dimension's default clock at which the random chance for a Zombie Village siege to occur should be evaluatedswing#@s if omittedmainhand if omittedtime#time command is now based on World Clockstime of <clock> .../time ... as before), the default clock for the dimension is used/execute store) from the set and add subcommands is now the total elapsed ticks of the clock instead of the current time of daySyntax:
time [of <clock>] set <time> - sets the total elapsed ticks of the clocktime [of <clock>] set <timemarker> - advances the clock forward to the next occurrence of the time markerminecraft:overworld clock, the available time markers are: day, noon, night, and midnighttime [of <clock>] add <time> - adds ticks to the clock, can be a negative or a positive numbertime [of <clock>] pause - pauses the clocktime [of <clock>] resume - resumes the clocktime [of <clock>] query <timeline> - displays and returns the current number of ticks within the timeline's periodtime [of <clock>] query <timeline> repetitions - displays and returns the number of times the timeline's period has repeatedtime [of <clock>] query time - displays and returns the total elapsed ticks of the clocktime query gametime - as before, the total elapsed ticks within the world (unaffected by changes made to clocks using /time)time_of_day with clock_time#clock: World Clock ID, the clock within which to set time (from the existing time field)minecraft:time_check Loot Predicate#clock field: a World Clock ID, specifies which World Clock the time check should be done forresult field should now be more consistent across all recipe types that contain it"minecraft:foo", which is equivalent to {"id":"minecraft:foo", "count": 1})smelting, blasting, smoking and campfire_cooking this field now also accepts count fielddefault_clock: optional World Clock IDtime command.time command will require an explicit clock argumentminecraft:wake_up_from_sleep and minecraft:roll_village_siege time markers apply#supports_vegetation which provides support to the following blocks:#supports_crops which provides support to the following crops at all growth stages:#supports_stem_crops#supports_pumpkin_stem#supports_melon_stem#supports_sugar_cane#supports_sugar_cane_adjacently#supports_cactus#supports_chorus_plant#supports_chorus_flower#supports_nether_sprouts#supports_azalea#supports_warped_fungus#supports_crimson_fungus#supports_mangrove_propagule#supports_hanging_mangrove_propagule#supports_nether_wart#supports_warped_roots#supports_crimson_roots#supports_wither_rose#supports_cocoa#supports_lily_pad#supports_frogspawn#support_override_cactus_flower#cannot_support_seagrass#cannot_support_kelp#dry_vegetation_may_place_on -> #supports_dry_vegetation#bamboo_plantable_on -> #supports_bamboo#small_dripleaf_placeable -> #supports_small_dripleaf#big_dripleaf_placeable -> #supports_big_dripleaf#mushroom_grow_block -> #overrides_mushroom_light_requirement#snow_layer_can_survive_on -> #support_override_snow_layer#snow_layer_cannot_survive_on -> #cannot_support_snow_layer#grows_crops which defines which blocks beneath allow the following crops to grow:#enables_bubble_column_drag_down#enables_bubble_column_push_up#supports_lily_pad#supports_frogspawn#supports_sugar_cane_adjacently#bubble_columns_can_occupy fluid tag to define which fluids a bubble column can occupy with water as default