Dialog Description Format
- Dialogs are stored in minecraft:dialog registry that can be provided by a datapack
Fields:
- type - one of dialog types from minecraft:dialog_type registry
- <type-specific> - see below
Common Dialog Fields
- Most dialog types share some fields. To avoid duplication, they are listed in this section
Fields:
- title - screen title, text component
- Should be always visible on screen, no matter the specific type
- external_title - name to be used for a button leading to this dialog (for example from Pause screen), optional text component
- If not present, title will be used instead
- body - optional list of body elements or a single element, see below
- inputs - optional list of inputs, see below
- can_close_with_escape - can dialog be dismissed with Escape key, default true
- pause - should the dialog screen pause the game in single-player mode, default: true
- after_action - additional operation performed on dialog after click or submit actions, default: close
- close - closes dialog and returns to previous non-dialog screen (if any)
- none - do nothing, i.e., keep the current screen open
- only available if pause is false to avoid locking the game in single-player mode
- wait_for_response - replace the current dialog with a "Waiting for Response" screen
- this option is intended to prevent users from sending multiple actions on laggy connections
- servers are expected to eventually replace this screen with a new dialog
- to avoid accidental locking, a "Back" button will become active after 5 seconds
- clicking this button will continue as if the dialog was closed (i.e., game returns to the previous non-dialog screen, if any)
- "Waiting for Response" screen will unpause the game in single-player mode to avoid locking the game
Dialog Types
minecraft:notice
- A simple screen with one action in footer
- Exit action: same as action
Fields:
- Common dialog fields (see above)
- action - main action (see below), defaults to a button with gui.ok label and no action or tooltip
minecraft:confirmation
- A simple screen with two actions in footer
- Exit action: same as no action
Fields:
- Common dialog fields (see above)
- yes - action (see below) for positive outcome
- no - action (see below) for negative outcome
minecraft:multi_action
- A scrollable list of actions arranged in columns
- Screen can have optional exit action that will appear in footer
- Exit action: same as exit_action, if present
Fields:
- Common dialog fields (see above)
- actions - non-empty list of actions (see below)
- exit_action - optional action (see below) in footer
- columns - positive integer describing number of columns, default: 2
minecraft:server_links
- A scrollable list of links received from server in minecraft:server_links packet, arranged in columns
- Note: this is a replacement for the previous Server Links screen, but now with an additional body
- Exit action: same as exit_action, if present
Fields:
- Common dialog fields (see above)
- exit_action - optional action (see below) in footer
- columns - positive integer describing number of columns, default: 2
- button_width - width of buttons in the list, integer from 1 to 1024 (inclusive) with default 150
minecraft:dialog_list
- A scrollable list of buttons leading directly to other dialogs, arranged in columns
- Titles of those buttons will be taken from external_title fields of targeted dialogs
- Exit action: same as exit_action, if present
Fields:
- Common dialog fields (see above)
- dialogs - dialog, a list of dialogs or a dialog tag
- exit_action - optional action (see below) in footer
- columns - positive integer describing number of columns, default: 2
- button_width - width of buttons in the list, integer from 1 to 1024 (inclusive) with default 150
Dialog Body Types
- All dialogs have a list of body elements describing contents between title and actions or inputs
- Hover and click events on text components within bodies function as expected
- Click events are handled by dialog screen like any other action - that means it will also run after_action
Fields:
- type - one of dialog body types from minecraft:dialog_body_type registry
- <type-specific> - see below
minecraft:plain_message
Fields:
- contents - text component
- width - maximum width of message, integer from 1 to 1024 (inclusive) with default 200
minecraft:item
- Item with optional description
- If a description is present, it will be rendered to the right of item
- The Item will be rendered as if it was in inventory slot
- The Item is not scaled even if width and height are set to values other than default
Fields:
- item - item stack with count
- description - optional object with fields:
- contents - text component
- width - maximum width of contents, integer from 1 to 1024 with default 200
- Can also just be text component
- show_decorations - if true, count and damage bar will be rendered over the item, default: true
- show_tooltip - if true, item tooltip will show up when item is hovered, default: true
- width - horizontal size of element, integer from 1 to 256 (inclusive) with default: 16
- height - vertical size of element, integer from 1 to 256 (inclusive) with default: 16
Input Control Types
- Dialog can contain a set of controls that accept user input
- When submitted, the current value of the input will be used to build response to the server according to action selected by user (see below)
- When a value is inserted into a macro, template substitution form is used
- When a value is sent as a tag, tag form is used
Fields:
- type - one of input control types from minecraft:input_control_type registry
- key - string identifier of value used when submitting data, must be a valid template argument (letters, digits and _)
- <type-specific> - see below
minecraft:text
- A simple text input
- Output values:
- As template substitution: contents with special characters escaped to fit in a SNBT literal (note: both ' and " are escaped)
- As tag: a string tag with contents without modification
Fields:
- width - width of the text input, integer from 1 to 1024 (inclusive) with default: 200
- label - a text component to be displayed to the left of control
- label_visible - controls label visibility, default: true
- initial - initial contents, default: "" (empty)
- max_length - maximum length of the text input, positive integer with default of 32
- multiline - if present, allows users to input multiple lines, optional object with fields:
- max_lines - if present, limits maximum lines, optional positive integer
- height - height of input, optional integer in range 1 to 512
- If this field is omitted, but max_lines is present, the height will be chosen to fit the maximum number of lines (but can't exceed 512)
- If this and max_lines are both omitted, it will default to a height that fits 4 lines
minecraft:boolean
- A plain checkbox with a label
- Output values:
- As template substitution: on_true when checked, on_false when unchecked
- As tag: 1b when checked, 0b when unchecked
Fields:
- label - a text component to be displayed to the right of control
- initial - an initial value, default: false (i.e., unchecked)
- on_true - a string value to send when control is checked, default: true
- on_false - a string value to send when control is unchecked, default: false
minecraft:single_option
- A button that cycles between a set of options when clicked
- Output values:
- As template substitution: contents of id field of currently selected option
- As tag: a string tag with contents of id field of currently selected option
Fields:
- label - a text component to be displayed on the button
- label_visible - if true, label will be incorporated into button text, default: true
- width - width of the button, integer from 1 to 1024 (inclusive) with default: 200
- options - a list of objects with fields:
- id - a string value to send on submit
- display - a text component to display on button, optional (if not present, id is used)
- initial - an optional boolean flag that selects initial option (only one option can have this be set to true)
- Additionally, the list might also contain a plain string - in that case it's equivalent to a single entry with field id set to that string and other fields set to default
minecraft:number_range
- A slider for picking a numeric value out of some range
- Sends currently selected value
- Output values:
- As template substitution: text representation of current value
- Whole numbers will be sent without decimal point
- As tag: a float tag with current value
Fields:
- label - a text component to be used as a slider label
- label_format - a translation key to be used for building label (first argument is contents of label field, second argument is current value), default: options.generic_value
- width - width of input, integer from 1 to 1024 (inclusive) with default: 200
- start - start value (when slider is in leftmost position) (inclusive), float
- end - end value (when slider is in rightmost position) (inclusive), float
- initial - initial value of the slider, float, defaults to the middle of slider range
- step - step size, optional positive float
- If present, only values of initial + <any integer> * step will be allowed
- If absent, any value from range the is allowed
Actions
Dialogs have at least one action, presented to the user as a button. After every action dialog will always evaluate contents of after_action field (see above).
Fields:
- label - a button label, text component
- tooltip - an optional text component to display when the button is hovered or focused
- width - the width of the button, integer from 1 to 1024 (inclusive) with default 150
- action - an action to perform when the button is clicked, optional object with fields:
- type - value from minecraft:dialog_action_type registry
- <type-specific> - see below, depends on type
Static Dialog Action Types
All existing click_event actions (except for open_file) are included as dialog action types.
Uses same format as click_event on text components (but with action replaced with type) For example, when using show_dialog, the entry for action button will look like this:
{
"label": "some label",
"action": {
"type": "show_dialog",
"dialog": "some:id"
}
}
minecraft:dynamic/run_command Action Type
- This action will build a run_command event using a provided macro template
- The macro will be expanded with string values from inputs
- For example, if the macro template is some_command $(some_input), the string value from input with key of some_input parameter will be used for the template expansion
- Inputs not used in macro will be ignored, while macro parameters not matching any inputs will be replaced with an empty string
Fields:
- template - a string with a macro template to be interpreted as a command
minecraft:dynamic/custom Action Type
- This method will build a minecraft:custom event using all input values
- All input contents will be sent together inside a compound tag, with tag value of each input put under id from key field of that input
- Additional static fields can be added to payload
Fields:
- additions - fields to be added to payload, optional compound tag
- id - namespaced ID
Built-in Dialogs
The built-in datapack contains some custom dialogs to provide customization of specific screens used by the client.
minecraft:server_links
- Replacement for the previously existing "Server Links" screen
- Meant to simplify migration for servers that previously used this feature
minecraft:custom_options
- Shows contents of minecraft:pause_screen_additions tag (see below)
- Allows the user to select a specific dialog if this tag contains multiple entries
- Note: Since this tag is meant for interoperability, any content that replaces this dialog should be careful not to hide other dialog providers
Dialog Command
- New command has been added to show dialog to clients
Syntax:
- dialog show <targets> <dialog> - show dialog to player(s)
- <targets> - player name, UUID or a player selector
- <dialog> - a namespaced ID from minecraft:dialog registry or inline dialog value as described above
- Returns the number of players in targets argument
- dialog clear <targets> - clean dialog for player(s), if they have any visible
- <targets> - player name, UUID or a player selector
- Returns the number of players in targets argument
Pause Screen Configuration
- A data pack can request some of the available dialogs to be accessible from Pause screen
- This feature replaces the "Server Links" button and is placed on Pause screen according to the same rules
- Buttons leading to dialogs exposed in this way will use label described in external_title field
- This feature is configured by minecraft:pause_screen_additions dialog tag:
- If this tag is not specified or is empty but the server has sent server_links packet, the tag will be handled as if it contained minecraft:server_links dialog
- Note: this matches previous Server Links feature behavior
- If this dialog is removed, the tag remains empty
- If this tag is still empty, the button will not be visible ("Send Feedback" and "Report Bugs" buttons are visible instead)
- If this tag has a single element, the pause screen button will lead directly to that dialog
- If this tag has multiple elements, the pause screen button will lead to a minecraft:custom_options dialog which (by default) lets user select one of the tag elements
- If this dialog is removed, the button is will not be visible
Quick Actions Key Bind
- A new key bind has been added that allows users to access a set of dialogs
- Default key: G
- This feature is configured by minecraft:quick_actions dialog tag
- If this tag is empty, the key bind will do nothing
- If this tag has a single element, the key bind will open that dialog
- If this tag has multiple elements, the key bind will lead to minecraft:quick_actions dialog which (by default) lets user select one of the tag elements
- If this dialog is removed, the key bind will do nothing
- This option is intended for use in custom content and by servers, so this tag is empty in the Vanilla pack
Text Components
Click Events
- Users will now be prompted for confirmation before executing a command from the run_command click action in books and chat if the command can't be parsed or requires elevated permissions (i.e., higher than 0)
Added minecraft:custom
- A new click action called minecraft:custom has been added
- When user clicks a component with this click action, the client will send a dedicated packet minecraft:custom_click_action to a server
- The intended use is as an alternative for run_command to be used by modded servers without worrying about having to add custom commands
- This packet has no functionality on Vanilla servers
- Fields:
- id - namespaced ID
- payload - optional tag field
Added minecraft:show_dialog
- A new action called show_dialog has been added
- When user clicks this component, a dialog will be opened for them
- Fields:
- dialog - a namespaced ID from minecraft:dialog registry or inline dialog value as described above
Game Rules
Added locatorBar
- Default is true: enabling the Locator Bar
- Changing to false will remove all existing Waypoints from all players
Attributes
Added camera_distance
- Default value: 4.0
- Modifies the distance at which the camera is placed away from the player or spectated entity when in a third-person view
- If the entity being ridden has a larger camera_distance attribute, that distance will be used
- This distance is multiplied by the scale attribute to get a final target camera distance
Added waypoint_transmit_range and waypoint_receive_range
Default: 0.0, Minimum: 0.0, Maximum: 60000000.0
Players have a default transmission and reception range of 60,000,000
Mobs with a transmission range above zero will send waypoint packets to nearby receivers that are within that range
Similarly, receivers only receive waypoints that are inside their reception range (and receive nothing if that range is zero) Examples:
/attribute @s minecraft:waypoint_transmit_range base set 0 will prevent a player from transmitting (hiding them)
/attribute @s minecraft:waypoint_transmit_range base set 80 will only let a player transmit up to 80 blocks (hiding them from players further than that)
/attribute @s minecraft:waypoint_receive_range base set 0 will prevent a player from receiving (turns off their Locator Bar)
/attribute @s minecraft:waypoint_receive_range base set 120 will only let a player see Locator Bar dots that are within 120 blocks (hiding all players further than that)
Changed flying_speed
- The flying_speed attribute now also applies to Ghasts and Happy Ghasts
Data Components
equippable Item Component
- Added a new optional field: can_be_sheared (boolean)
- If true, players can use Shears to remove this equippable item from a target mob by right-clicking, provided all other shearing conditions are satisfied
- If not specified, it defaults to false
- Added a new optional field: shearing_sound (sound event)
- It's a sound event that plays when the equippable item is sheared
- If not specified, it defaults to the item.shears.snip sound event
attribute_modifiers Item Component
- Added an optional display field to attribute_modifiers entries
- There are 3 display types:
- default - Current behavior of showing the calculated attribute modifier values on the tooltip
- hidden - Does not show the attribute modifier entry
- override - Replaces the shown attribute modifier text
- Contains a single field value for the text contents to show for this attribute modifier entry
painting/variant Item Component
- No longer accepts inline variants
Entity Data
- Added the home_pos and home_radius fields to all mobs
- Mobs with set home position will limit their pathfinding to stay within the indicated area
- Some mobs, such as Bats, Slimes, Magma Cubes, Phantoms and Ender Dragons may ignore it
- Interacting with leashes or riding may change the home position of the mob
area_effect_cloud
- The Particle field has been renamed to custom_particle, and now always functions as an exact override for the default colored entity_effect particle
- The field will not be written if no override is specified
- The color will no longer be inherited from the potion contents when specifying the entity_effect or tinted_leaves particle types
tnt
- The entity that primed the TNT is now stored in an optional owner field (UUID of Living entity)
vex
- The owner of a Vex is now stored in an optional owner field (UUID of mob)
Advancements
Added minecraft:player_sheared_equipment trigger
- Can Trigger when a player shears off a shearable equipment from an Entity
- Conditions:
- item - Item that is sheared
- entity - The entity that was sheared
Tags
Block Tags
- Added #triggers_ambient_desert_dry_vegetation_block_sounds - blocks that can trigger ambient desert dry vegetation sounds to play from blocks above
- Added #happy_ghast_avoids - blocks that Happy Ghasts avoid getting close to
- #plays_ambient_desert_block_sounds has been renamed to #triggers_ambient_desert_sand_block_sounds
- Added triggers_ambient_dried_ghast_block_sounds - blocks that can trigger ambient Dried Ghast sounds to play when a Dried Ghast block is placed on them
Item Tags
- Added #happy_ghast_food - items that can be used to feed Happy Ghasts
- Added #happy_ghast_tempt_items - items that can be used to tempt Happy Ghasts
Entity Tags
- Added #can_equip_harness - entities that can equip the Harness items
- Added #followable_friendly_mobs - non-baby entities that will be followed by Baby Happy Ghasts
Resource Pack Versions 56 Through 63
- The game will now consistently respect the blur texture parameter in .png.mcmeta files
- All core shader uniforms are now uniform blocks
- The cloud texture (clouds.png) can no longer be colored
- Cube rotations in block models are no longer limited to multiples of 22.5 degrees
- Updated Unifont to 16.0.03
- Panorama textures must now all be the same size, and square
- Added oversized_in_gui item model field
- Added new player head special model type
Waypoint Styles
These define custom icons to be displayed on the Locator Bar and are within the waypoint_style/ asset directory.
- near_distance and far_distance are optional and default to the values 128 and 332 respectively
- far_distance distance must be greater than near_distance
- sprites is a list of at least one sprite IDs within the prefix of hud/locator_bar_dot/ (the directory textures/gui/sprites/hud/locator_bar_dot)
- An example "bowtie" waypoint style is provided and accessible via the command:
- /waypoint modify <entity-selector> style set bowtie
- When the distance to the waypoint is less than near_distance, the first sprite in the list will be selected
- When the distance to the waypoint is greater than far_distance, the last sprite in the list will be selected
- Between this range, sprites will be selected based on the linear progress between the near and far distances
Sounds
- Changed location on the sounds for Glow Squid, Squid, Guardian, Horse, Rabbit and Pufferfish from entity folder to the mob folder
- Added entity/leashknot/break for when a Lead snaps
- The following sounds have been renamed:
- entity/leashknot/break1 -> entity/leashknot/unleash1
- entity/leashknot/break2 -> entity/leashknot/unleash2
- entity/leashknot/break3 -> entity/leashknot/unleash3
- entity/leashknot/place1 -> entity/leashknot/leash1
- entity/leashknot/place2 -> entity/leashknot/leash2
- entity/leashknot/place3 -> entity/leashknot/leash3
- The following sounds have been added for shearing Saddles, Horse Armor, and Carpets
- mob/horse/armor_unequip
- mob/horse/saddle_unequip
- mob/llama/unequip
Sound Events
- block.sand.wind has been renamed to block.dry_grass.ambient
- entity.leash_knot.break had been replaced with item.lead.break and item.lead.untied
- entity.leash_knot.place has been renamed to item.lead.tied
- The following sound events have been added:
- block.dried_ghast.break
- block.dried_ghast.step
- block.dried_ghast.fall
- block.dried_ghast.ambient
- block.dried_ghast.ambient_water
- block.dried_ghast.place
- block.dried_ghast.place_in_water
- block.dried_ghast.transition
- entity.ghastling.ambient
- entity.ghastling.death
- entity.ghastling.hurt
- entity.ghastling.spawn
- entity.happy_ghast.ambient
- entity.happy_ghast.death
- entity.happy_ghast.hurt
- entity.happy_ghast.riding
- entity.happy_ghast.equip
- entity.happy_ghast.unequip
- entity.happy_ghast.harness_goggles_up
- entity.happy_ghast.harness_goggles_down
- item.horse_armor.unequip
- item.llama_carpet.unequip
- item.shears.snip
- item.saddle.unequip
UI Sprites
- The mob effect atlas has been removed, and sprites in the textures/mob_effect/ folder are now included within the GUI atlas
- This means mob effect sprites now support GUI sprite scaling properties
- Added icon/music_notes and toast/now_playing sprites
Font
Unifont
- Updated Unifont to 16.0.03
- Added previously omitted Unifont glyphs for Private Use Areas
- Those glyphs are loaded as a separate sub-font minecraft:include/unifont_pua and are not included in any normally used font
- Characters in those areas are managed by Under-CSUR (Under-ConScript Unicode Registry), which adds various scripts not present in official Unicode set, like Tengwar or Sitelen Pona
unihex Font Provider
- The size_overrides field is now optional (defaults to empty list)
Equipment Assets
- Added new happy_ghast_body layer type, rendering in the body slot of the Happy Ghast
Item Models
- Item model definitions now have a boolean field oversized_in_gui which is false by default
- If true, the item model will be allowed to be bigger than its item slot
- If false, the item model will be clipped to the item slot size when being rendered in gui
- This ability of items being rendered outside their slots should not be considered officially supported, it was temporarily restored as an exception since many servers are relying on it
- At some point in the future we hope to replace it with an officially supported way of achieving similar functionality
- Introduced new item model minecraft:player_head to handle player profile texture loading and rendering
- Removed support for minecraft:profile from minecraft:head
minecraft:player_head Special Model Type
- Renders a player head
- Uses profile from minecraft:profile component to load a texture. Renders a default texture until the profile texture is fully loaded
- No fields
minecraft:head Special Model Type
- No longer supports profile from minecraft:profile component to load a player texture
- Renders a default player texture when kind is player and no texture override is supplied
- Fields remain unchanged
Block Models
- elements[].rotation.angle value in block models is no longer limited to multiplies of 22.5 degrees and can now be any angle from -45 to +45
Shaders & Post-process Effects
Developer's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.
- All built-in uniforms are now uniform blocks instead of opaque loose uniforms
- Custom uniforms provided to post-process shaders are now uniform blocks
- Uniform definitions inside json files are now per-block
Post-process Effect Definitions
- Entries in the targets map have been expanded to support new properties
- New optional boolean field: persistent (default: false)
- If true, this render target will be persistent across frames
- The contents of the target will be cleared when the screen is resized
- New optional field: clear_color (default: [0, 0, 0, 0])
- Format: integer ARGB value, or float array in order [R, G, B, A]
- When this target is created or cleared, it will be filled with this color
- The uniforms values is now a list-per-block, instead of a global list
- e.g. uniforms: { "UniformBlockName": [ { "type": "vec2", "value": [...] } ] }
- The order of uniforms in a block must match the order in the shader
- name as part of a uniform definition is no longer used
- We encourage setting it to help keep the json file organized/readable, but the game won't use it
- value as part of a uniform definition replaces the old values, and the type depends on the type field
- This field is required
- "type": "int" needs "value": 123 (a single int)
- "type": "float" needs "value": 123.4 (a single float)
- "type": "vec2" needs "value": [1.2, 3.4] (two floats)
- "type": "vec3" needs "value": [1.2, 3.4, 5.6] (three floats)
- "type": "ivec3" needs "value": [1, 2, 3] (three ints)
- "type": "vec4" needs "value": [1.2, 3.4, 5.6, 7.8] (four floats)
- "type": "matrix4x4" needs "value": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0] (four rows of four columns of floats)
- We do not validate that the uniform block is valid for a given shader, giving incorrect information will cause undefined and funky behavior
Post-process Effect Shaders
- Instead of every uniform being an individual opaque type, they are now grouped in uniform blocks
- They will be set according to the pass definition in the json file, and may be shared across both vertex and fragment shaders
- The list of sizes (all vec2 *Size uniforms) are now replaced with a single SamplerInfo uniform block
- This contains, in order, the size of the output texture followed by the size of every input texture
- The order of textures in the definition file will dictate the order of samplers in this uniform
- For most post chains this is just OutSize and InSize as before
- All sizes are vec2
post/bits.fsh
- Expects a BitsConfig of float Resolution and float MosaicSize
post/blit.fsh
- Expects a BlitConfig of vec4 ColorModulate
post/blur.vsh and post/box_blur.fsh
- Expects a BlurConfig of vec2 BlurDir and float Radius
post/color_convolve.fsh
- Expects a ColorConfig of vec3 RedMatrix, vec3 GreenMatrix and vec3 BlueMatrix
post/invert.fsh
- Expects a InvertConfig of float InverseAmount
post/rotscale.vsh
- Expects a RotScaleConfig of vec2 InScale, vec2 InOffset and float InRotation
post/spiderclip.fsh
- Expects a SpiderConfig of vec4 Scissor and vec4 Vignette
Shader Fog Changes
- The fog is now split into environmental and render-distance-based fog
- Previously both those concepts were mixed in the same uniforms
- Environmental fog is supposed to represent the "fogginess" of the environment the player is in
- e.g. lava, water, and now also atmosphere
- Render distance fog is supposed to obscure the border of visible terrain
- Environmental fog uses spherical distance to determine its intensity, render distance fog uses cylindrical distance
- The resulting fog value for any given vertex is the maximum of both
Globals Uniform Block
- Available through #moj_import <minecraft:globals.glsl> for convenience
- Most shaders are able to receive this uniform block, even if they don't normally use it
- Contains ScreenSize, GlintAlpha, GameTime and MenuBlurRadius (new)
- MenuBlurRadius is the blur radius of the background when a menu is open
Fog Uniform Block
- Available through #moj_import <minecraft:fog.glsl> for convenience
- Most shaders are able to receive this uniform block, even if they don't normally use it
- Contains FogColor, FogEnvironmentalStart (new), FogEnvironmentalEnd (new), FogRenderDistanceStart (renamed from FogStart), FogRenderDistanceEnd (renamed from FogEnd), FogSkyEnd (new) and FogCloudsEnd (new)
- FogSkyEnd is new and represents where the fog should end when drawing for the sky
- FogCloudsEnd is new and represents where the fog should end when drawing the clouds
- FogRenderDistanceStart is the render distance fog start
- FogRenderDistanceEnd is the render distance fog end
- FogEnvironmentalStart is new and represents the start of environment-based fog
- FogEnvironmentalEnd is new and represents the end of environment-based fog
- FogShape was removed. Render distance fog is now cylindrical and environmental fog is spherical
Projection Uniform Block
- Available through #moj_import <minecraft:projection.glsl> for convenience
- Most shaders are able to receive this uniform block, even if they don't normally use it
- Contains ProjMat with no changes
DynamicTransforms Uniform Block
- Available through #moj_import <minecraft:dynamictransforms.glsl> for convenience
- Is no longer available to shaders that do not normally use it
- Contains ModelViewMat, ColorModulator, ModelOffset, TextureMat, LineWidth
- These are very likely to change in the near future
- The values of some of these are often hard coded and may not make sense for a given shader, i.e., LineWidth in any non-line based pipeline
Lighting Uniform Block
- Available through #moj_import <minecraft:light.glsl> for convenience
- Most shaders are able to receive this uniform block, even if they don't normally use it
- The values may not make sense if the shader wouldn't normally expect it, however
- Contains Light0_Direction and Light1_Direction
CloudInfo Uniform Block
- Only available to the cloud shaders (rendertype_clouds.vsh/rendertype_clouds.fsh)
- Contains CloudColor, CloudOffset and CellSize (new)
- CellSize contains the size of an individual cloud cell
LightmapInfo Uniform Block
- Only available to the lightmap shader (lightmap.fsh)
- Contains AmbientLightFactor, SkyFactor, BlockFactor, UseBrightLightmap, NightVisionFactor, DarknessScale, DarkenWorldFactor, BrightnessFactor, SkyLightColor with no change in behavior
Fixed bugs in 1.21.6
- MC-36696 - Clicking on the statistics button on the menu screen advances the game by 1 tick
- MC-69821 - TNT "forgets" the player that ignited it when the world is reloaded
- MC-94800 - URL shown in open URL dialog is not shortened
- MC-97423 - Horse temporarily stuck in jump animation if dismounted
- MC-103511 - Sound/Song stops playing after adjusting the volume
- MC-104231 - Loading a custom structure doesn't load rails correctly
- MC-112730 - Beacon beam and structure block render twice per frame
- MC-118081 - Sounds don't pause when game is paused on some UI screens
- MC-118430 - Vex summoner is not stored in NBT despite being used for AI task
- MC-118432 - Vex summoner is not reset once it is dead
- MC-140819 - Lectern model extends past inventory slot
- MC-147260 - Map icons are not displayed in the cartography table
- MC-148278 - You can select multiple buttons at once in the book editing GUI by repeatedly pressing Tab
- MC-189246 - Unable to copy and paste on title page of a Book & Quill
- MC-191306 - Sounds played using /playsound are played in all dimensions
- MC-200092 - /setworldspawn seems to ignore the 'angle' parameter
- MC-200925 - Ghasts are not affected by potions thrown on their head
- MC-217887 - Unsigned books written in 1.9-pre1 or earlier don't upgrade properly
- MC-224704 - Block cracks are not affected by the fog from powder snow or lava
- MC-228451 - You cannot move the cursor around on the title page of a book and quill
- MC-229483 - Withers are not affected by instant harming and healing splash potions thrown above their heads
- MC-230902 - Black shapes sometimes appear in the end sky at low render distance
- MC-236464 - Beacon beams emitted from below the player are invisible after reloading chunks
- MC-237015 - The cursor in the book signing GUI doesn't turn fully invisible when blinking
- MC-238931 - Clouds stop rendering before they are hidden by fog
- MC-239701 - Rendering issue when breaking ice and flying with "Chunk Builder" set to Threaded
- MC-240121 - "1x1_b5.nbt" piece does not generate in woodland mansions
- MC-248682 - Translucent blocks moved by pistons aren't affected by fog correctly
- MC-248688 - Falling translucent blocks aren't affected by fog correctly
- MC-256411 - Clouds not fully rendered depending on angle
- MC-257532 - Clouds don't fill the sky after 1.18 height change
- MC-258336 - Frost Walker causes frequent visual corruption near chunk borders on Threaded and Semi-Blocking Chunk Builder
- MC-262268 - Keyboard navigation does not work in the book and quill GUI
- MC-264431 - #minecraft:sand tag has two minecraft:suspicious_sand
- MC-266318 - Trapdoors and doors have inconsistent subtitles for being opened and closed
- MC-269744 - Out of memory crash when using a preset with a large layer
- MC-270279 - Disabled item cooldown overlay renders incorrectly over stack size number
- MC-272825 - Custom filled maps from 23w31a and earlier do not upgrade properly in later versions
- MC-275374 - Drowneds with CanBreakDoors:1b don't break doors
- MC-276264 - Advancement screen shadow renders below item icons
- MC-276665 - Music is never turning on when it's toggled in the menu
- MC-277369 - The draft report icon isn't initially visible when saving a report as a draft
- MC-277370 - The draft report icon doesn't initially disappear when a report is discarded
- MC-277486 - Mob effect icons ignore "scaling" parameter in mcmeta files
- MC-277903 - Creative inventory tab icons can display item cooldown overlay
- MC-277991 - The 2 brightest pixel colors on pale oak boat items are still switched
- MC-277992 - 1 color in the pale chest boat item is incorrect
- MC-278231 - Space characters at the end of a line in book and quill are invisible even if given a texture
- MC-278459 - unifont.json contains trailing comma
- MC-278466 - Bundle experiment data pack related strings are not in deprecated.json
- MC-278873 - The data fixer regenerates chunks containing items obtained from flower pots using Ctrl + Pick Block before version 1.13, or it crashes the game if the item is in the player's inventory
- MC-279284 - Experience orbs from thrown bottles o' enchanting are very prone to getting stuck inside blocks
- MC-279417 - Luring mobs onto blocks at Y=-64 will instead make them pathfind to the highest elevation
- MC-279515 - The game stalls when running the "/test clearall" command with large radiuses
- MC-279875 - Cannot diagonally climb slab through suspended scaffolding
- MC-280047 - Temperate cows use their 1.14 texture with the Programmer Art resource pack enabled
- MC-280266 - Firefly bushes don't produce as many, or as constant, amounts of particles as on Bedrock Edition
- MC-280268 - Blazes and breezes use "large" spawn eggs despite mobs of a similar size using "medium"
- MC-280276 - Some item models can still clip into the block below when hovering on the ground
- MC-280281 - Fishing bobbers rapidly jitter when attached to entities that are moving
- MC-280297 - The volume level between grass and dirt is inconsistent
- MC-280471 - The Particle.color field in area effect clouds is read-only
- MC-280502 - Translation key snbt.parser.undescore_not_allowed has a typo
- MC-293619 - The chicken spawn egg texture in Programmer Art is missing pixels that match the inventory slot background color
- MC-293754 - Minecraft causes OpenGL errors occasionally
- MC-295395 - Entities interact differently with nether portals
- MC-295677 - Title screen fades in from black after closing the "Welcome to Minecraft" screen
- MC-295681 - Leaf litter can generate inside of woodland mansions
- MC-295690 - Players stay on fire for a while after barely touching fire
- MC-295850 - Done and Cancel buttons on the world creation Edit Game Rules screen do the same thing
- MC-295866 - The /setblock and /fill commands no longer update redstone power in some situations
- MC-295867 - Structures from previous versions fail with DataFixerUpper
- MC-295879 - Sprint-hitting boats and then getting in them causes the boat to fall through the block underneath
- MC-295895 - 1.21.5 breaks minecart behavior when travelling through nether portals
- MC-295914 - Loot table files accept invalid JSON
- MC-295944 - Reloading a professionless zombie villager causes it to gain random profession clothing
- MC-296035 - Two pixels from "mooshroom_spawn_egg" are the same as "cow_spawn_egg"
- MC-296099 - Nether portal collision is or isn't working depending on the cardinal direction
- MC-296121 - ClientboundLevelChunkPacketData buffer size is too big
- MC-296311 - TNT touching water will destroy blocks and damage entities but will ignore decorative entities
- MC-296337 - Minecarts cause memory usage increases and crashes
- MC-296348 - NoAI:1b mobs cannot be ridden in 1.21.5+
- MC-296624 - Old Brown Mooshroom texture is missing from Programmer Art
- MC-296638 - Clocks, compasses, and lodestone compasses do not render enchantment glint in certain display contexts when using Fabulous! graphics
- MC-296701 - Transformed entities do not retain their custom_data component
- MC-296709 - All non-default jukebox_playable components are deleted from existing items when updating past 1.21.4
- MC-296784 - The "Welcome to Minecraft" screen is missing its fade out
- MC-296866 - Predicates of particular namespaces failed to be accessed on /execute
- MC-297264 - Cat breeds are not seed based anymore
- MC-297347 - Tamed animals no longer sit when their owner changes dimension
- MC-297461 - Equipment and sleeping pos data cannot be loaded in 1.21.4, but can be loaded in 1.21.5 to bees spawned from bee nest and bee hive
- MC-297524 - Connection with realm gives weird HTML text
- MC-297537 - Extra "entity.wolf_whine.whine" sound event exists in sounds.json
- MC-297591 - Ender pearls can unexpectedly come to a halt
- MC-297614 - Area effect clouds with duration greater than or equal to 2147483628 disappear after a tick
- MC-297868 - Items in the armor.body and saddle slots are not kept when dying while the game rule keepInventory is set to true
- MC-297893 - prevent_equipment_drop enchantment effect does not work with armor.body and saddle slots
- MC-297894 - /clear command does not clear armor.body and saddle slots
Get the Release
To install the Release, open up the Minecraft Launcher and click play! Make sure your Launcher is set to the "Latest Release” option.
Cross-platform server jar:
Report bugs here:
Want to give feedback?
Share this story