Minecraft 1.19.4 is a huge update for all the map makers, pack makers and command blockers out there. If you’re looking for the gameplay changes, check those out in my other video – in this one we’re going to get into all the technical changes. My name is slicedlime – let’s dive in. To begin with, the data pack version is now 12. Several new entity types specifically made for pack and map makers have been added in this version. Let’s start with Display entities. They are entities for displaying blocks, items and text, and all share a number of properties. Like marker entities they are pretty efficient for the game in that they do not tick and have no collisions or physics at all. This means they are vastly higher perfomance to use for displaying things than armor stands, for instance. The display is rendered at the entity position and rotation but also has an arbitrary model transform which means you can apply transformations that are normally not available like scaling. This is done with some new data types for rotation and transformation that also have Several possible input forms, although the game will always save the data in the same format – the details are on screen. Display entities also support interpolation for many fields, which means they will animate smoothly from one state to the next regardless of client frame rate. This is controlled using the interpolation_duration data field and any interpolated field that is changed will then interpolate over that duration in ticks from its current data value. Keep in mind that updates to these values can be synchronized at most once per tick. There is also a start_interpolation value which is the delay in ticks to the time the interpolation starts from when the client receives the update. This field is then dropped – it is never written back to the data. Set this to 0 to start immediately. Another property all the display entities have is called billboard and controls how the entity is rendered relative to the camera. On the default value “fixed”, they render as any other entity in the world. The other options make the display entity turn either partially or fully towards the camera. “center” makes the entity fully turned to the camera, whereas vertical and horizontal lets the entity turn towards the camera rotating around one axis, like if it was stuck to a pole or hanging on a string, respectively. You can also set the display entity’s brightness to simulate it being in a different brightness Than it is in the world – this is done using an object with sky and block fields both ranging from 0 to 15. The view_range field controls how far away the entity can be seen, although the final view distance depends on the user’s settings for render distance and entity distance scaling. Higher values mean visible from further away and the default value 1.0 gives around the same view distance as a ghast fireball. You can control the shadow rendering using the shadow_radius and shadow_strength fields and the size of the bounding box using the width and height fields – if either of those Are 0 then culling is entirely disabled. The glow_color_override field controls which color the entity glows in, which by default is controlled by which team it is on. So how do you get them to, you know, actually display stuff? The item_display entity has a field called item which describes an item in the same format as in any inventory in the game. You can also change this using the item command by setting the slot inventory.0. There’s also an item_display field that describes the item model transformation as if rendered in an entity’s context. The block_display entity has a field called block_state which defines a block to show, in the same format as a block held by an enderman. A caveat here is that it will not display some block entities. And finally text_display entities display a text component defined in the text field like other text component data. You can also use the line_width field to control linebreaks, although n can also be used in the text itself. The default line width is 200. Various elements of text styling can also be controlled using the text_opacity, shadow, see_through and alignment options. The background can also be controlled using the background field to define a color or the default_background boolean field which makes the background have the default chat background according to the user’s settings. These display backgrounds also use a few new shader types, in case you like tinkering with those. There’s also a new entity type in this version called interaction. It is an invisible entity of a custom size that records attacks and interactions. The fields of the interaction entity are a width and height setting as well as a response boolean that toggles whether arm swings and interaction sounds play. There are two more fields – attack and interaction, which get filled with data about the player interacting with the entity. When set, they have two fields – a player field with the UUID of the player and a timestamp. In addition to this data, you can also use advancement triggers to react to interactions, Which has the benefit that if more than one interaction happens in the same frame, both are captured. Interacting with an Interaction entity triggers player_interacted_with_entity and attacking an Interaction entity triggers player_hurt_entity Interactions also work with a new execute on subcommand we’ll get to a in a little bit, Where execute on attacker executes on the player who last attacked the entity, and execute on target executes on the player who last interacted with it. Hey if you’ve made it this far, please interact with the like button as a display of your approval for this video. It does help and these videos take quite a lot of effort to make, out so I’d really appreciate it. Thanks. Now let’s talk about pain. This version of the game introduces data-driven damage types through data packs. A Damage Type determines how damage is handled by the game. This includes which attributes the damage has as well as which death message is used when an entity dies due to that type of damage. A damage type can set the message and any special message handling, whether that damage scales with difficulty and how it is displayed to the player in sound effects. A number of new damage type tags also control many aspects of how damage from different sources are interpreted by the game – you can see them all on screen now. In command news, there is a related command called damage. The syntax is damage followed by an entity target and the amount of damage. Then the id of a damage type can be specified, or minecraft:generic is used if none is specified. This can be followed by either at and a position or by and an entity – which can also optionally be followed by from and a cause, allowing you to specify both the entity which directly Caused the damage, like an arrow entity, and the original cause of it, like a skeleton. The at position form can be used when the source of damage has a position but no related entity, mimicing for instance the damage from an exploding bed in the nether. There is also a new command in this version called ride. This command can force an entity to mount or dismount another entitiy. The syntax is ride followed by target and then either mount or dismount. In the case of “mount”, this is followed by the new vehicle. This only works if the target is not already riding something and it would be possible to ride that entity. It is also not possible to make anything ride a player. This version also contains quite a few improvements for the execute command. Let’s start with execute if and unless, which have two new options. The first one is execue if or unless loaded followed by a position. This continues the execution if or unless that area is fully loaded – that is it has both blocks and entities fully present. The second one is execute if or unless dimension followed by a dimension id. This continues the execution only if or unless the dimension id matches the current dimension. There is also an entirely new execute sub-command: execute on, followed by a relationship specification. This lets you execute on a related entity of the currently executing one. There are 8 avaialable relations. Vehicle lets you execute on the vehicle the current entity is riding. passengers lets you execute on all the passengers riding the current entity. controller lets you execute on the passenger steering a vehicle, such as the first player in a boat. owner lets you execute on the owner of a tamed animal. Leasher lets you execute on the entity holding the leash of a leashed entity – which might be a leash knot entity if the leash is tied to a fence. target lets you execute on the selected target for a mob attacking something. Attacker lets you execute on the entity that last damaged the executing entity, within the latest 5 seconds. and origin lets you trace an entity back to its source, so for projectiles it’s the entity that fired the projectile – this also includes throwables like potions. For items, it’s the entity that threw it. If the executing entity is an area effect cloud, the origin is the source of the effect – which could be whoever threw a lingering potion, or the ender dragon. If the entity is a primed tnt, the origin is the entity who lit the fuse. And in case the executing entity is a vex or evoker fangs, the origin is the entity who summoned it. Another new sub-command that has been added for execute is execute summon. The syntax is summon followed by an entity type id and then more execute sub-commands. This summons an entity, then immediately runs the following execute clause on it with the new entity as @s, as if you had immediately ran execute as with the new entity. And finally a new way to reposition excution has been added as execute positioned over. This takes one parameter which is the name of a heightmap, and moves the current execution position to be on top of that heightmap. A heightmap details the highest block in a column of blocks according to some criteria, which differs from type to type. The four available options are world_surface, ocean_floor, motion_blocking and motion_blocking_no_leaves. World_surface is the highest non-air block. motion_blocking is the highest block that has a hitbox that impairs movement. That is, it ignores things like flowers and tall grass. motion_blocking_no_leaves is the same thing, but it also ignores any leaf blocks. and ocean_floor is the same as motion_blocking but it also ignores any fluid blocks. The clone command can now clone between different dimensions. This is done by adding “from” followed by the dimension id before the source coordinates, or “to” followed by the dimension id before the destination coordinates. Just like before, the source and target areas must be loaded for the command to work. The data command has a new source available. It’s called string and has the same source and path specification as the “from” source – however, instead of loading the value as-is, it will convert that value to a string and then load it. It also has two optional arguments at the end for a starting and ending index, allowing only a sub-string to be copied. A new option is available for the effect command. Instead of a number, you can now use infinite as the effect duration. This makes the effect last forever and shows an infinity symbol instead of remaining time in the user interface. There are also changes to time parameters – all the arguments to title times are now time durations which means they now work with t, s and d suffixes. The times specified in the weather command are now also time parameters which means they default to ticks rather than seconds, and t, s and d can be used to specify. This means that to retain your old functionality, you’ll need to add an s to the end of your weather times. The lowest possible duration is now 1 tick – and if the time is not specified, the weather will now last as long as it normally would if it switched to that weather state through the normal course of gameplay. Let’s wrap up this humongous command section with some more fixes. Commands in command blocks now point the right way when using local coordinates. And the spectate and spreadplayers commands have been fixed to work properly when crossing into other dimensions. And finally the size of the data transmitted over the network when using the fillbiome command has been optimized. Let’s talk about data. You can now make a potion effect on an item or projectile be infinite duration by setting its duration value in data to -1. Some data changes related to the update_1_20 pack as well. A new flag value has been added to the HideFlags NBT field of items – setting the bit valued 128 will hide armor trim information from tooltips. The suspcious sand is a new block entity which can hold a loot table id and seed, or alternatively an item. Note that the keys for this data is using the newer, lower-case snake_case style naming. The decorated pot is also a block entity, with a shards array holding the four items used to make it. There are two new game rules in this version. Let’s start with commandModificationBlockLimit. This game rule controls the maximum number of blocks that can be affected by one execution Of the clone, fill and fillbiome commands. The other new game rule is called doVinesSpread. The default value is true and turning it off means classical vines no longer spread to nearby blocks. This has no effect on cave vines or the nether type of vines. Let’s talk about predicates. Damage type predicates have been changed – they no longer have the following fields: is_projectile, is_explosion, bypasses_armor, bypasses_invulnerability, bypasses_magic, is_fire, is_magic, and is_lightning. Instead, a new array has been added called tags. Each entry has two fields: id, which is the ID of a damage type tag and expected, which Is a boolean specifying whether the damage is expected to have or not to have the tag for the predicate to match. In tags, there are a number of added biome tags: increased_fire_burnout controls which biomes fires burn out faster in. Yes, that’s a thing. The only_allows_snow_and_gold_rabbits tag has been removed and instead there are now spawns_white_rabbits and spawns_gold_rabbits tags. The spawning of white foxes is now controlled by the spawns_snow_foxes biome tag. And snow golems melting is now controlled by the snow_golem_melts biome tag. In item tags, there are new tags for tools, swords, shovels, pickaxes, hoes and axes, As well as a new smelts_to_glass tag used in that recipe. smelts_to_glass also exists as a block tag. Two new entity type tags have been added in this version: fall_damage_immune controlling which entities are immune to fall damage and dismounts_underwater controlling which types of entities will refuse to be ridden when underwater. The update_1_20 armor trims also introduce a few new data types. There are two new recipe types for the new armor trim recipes. They are smithing_transform and smithing_trim, both with base, addition and template fields. There are also two new registries which lets you add new armor trims in data packs – trim_matrial and trim_pattern. Let’s start with trim_pattern. Each file has an asset_id field which is a namespaced id used to find the asset to draw the trim. This means that if you add a trim type in a data pack, there also needs to be a corresponding resource pack with these assets. Trim_pattern files also have a template_item field and a description field, which is a text component that is used to display the text when hovering over a trimmed item. trim_materials can also be added – each file has an asset_name field which is used as a suffix for armor trim texture locations. They also have a description component for hovered items and an item_model_index used to change the visuals for that material. They also have an ingredient field defining the ingredient material and optionally can also have an override_armor_materials field which is a mapping from material type to an Alternative material, which is used in vanilla to provide darker versions of patterns for trims applied with the same material as the armor. In news for text components, a bug has been fixed where out of bounds arguments would be silently ignored. This bug was previously abused to implement fallback-like functionality, which is now Instead supported by an optional “fallback” field, which is used if there is no translation available. If there’s neither a translation nor a fallback, the translation key itself is displayed just like before. New particles in this version: dripping_cherry_leaves, falling_cherry_leaves and landing_cherry_leaves. In resource pack news, the resource pack version is now 13. There’s a new atlas configuration source called paletted_permutations. It’s used to dynamically generate new textures based on a set of color palettes. Paletted permutations allow you to swap out the colors of a texture without having to supply all files for the variants of a texture in a resource pack, which is useful for things Like armor trims, where you want to be able to change the color of parts of the armor without having to create a new texture for each color The paletted_permutations source has a textures field which is a list of namespaced locations of base textures to generate variants for There’s also a palette_key field which is an id of the color palette file, which defines the colors to swap for new ones. permutations is a map of permutations from suffix to a namespaced location of a color palette file. Once you’ve defined a paletted_permutations source, you can then reference those namespaced Output textures in other resources in your resource pack. The enchantment glint now has two separate texture files – one for entities and one for items. An old bug has been fixed where the ambientocclusion flag didn’t work in model files with a parent file set. If you want to debug your atlases, there’s now also a new debug function: holding F3 and pressing S now creates a dump of all the dynamic texture contents in the game like atlases, maps and so on, and places it in a new debug folder under the screenshots folder. In custom world news, the biome definition field for precipitation type has been removed and is now instead a has_precipitation boolean field and there’s a new multi_noise_biome_source_parameter_list type that only has a single field called preset. Alright – let’s wrap it up with a server-related change. There is a new command line option caled –pidFile which makes the server print its process id to a file, so the process can be managed later. And that is it for the technical changes in Minecraft 1.19.4. My name is slicedlime – thank you for watching. I’ll see you next time. Video Information
This video, titled ‘Technical News in Minecraft 1.19.4 – Displays, Interactions, So Many Command News!’, was uploaded by slicedlime on 2023-03-14 17:00:04. It has garnered 19351 views and 1469 likes. The duration of the video is 00:18:01 or 1081 seconds.
Minecraft 1.19.4 brings us display entities, interaction entities, damage types, many new commands and much more! Here is my guide to all the technical changes in this version! #minecraftemployee
slicedlime works as a Tech Lead for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that aims to be the most comprehensive guide possible. Official announcement: https://www.minecraft.net/en-us/article/minecraft-java-edition-1-19-4
Gameplay updates: https://youtu.be/8yhaYKMnjNk
Introduction: 0:00 Data Packs: 0:15 Display Entities: 0:22 Interaction Entities: 4:07 Damage Types: 5:18 Commands: 5:51 Data: 11:39 Game Rules: 12:20 Predicates: 12:45 Tags: 13:16 Armor Trims: 14:10 Text Components: 15:27 Particles: 15:49 Resource Packs: 16:01 Debug: 17:09 Custom Worlds: 17:24 Servers: 17:39 Thank You: 17:51
Thank you to the helper crew! Fabian, JochCool, Octojen, ThomasToSpace, Vegguid & Violine
Some camera sequences rendered using the ReplayMod: https://replaymod.com
Music by Victor Lundberg (https://spoti.fi/42dqYZd): – Down by the Creek – Tell Me Should I’ve Known – In Bloom – Just One Of Those Things – First Glimpse Of You
—
Main channel: https://www.youtube.com/slicedlime Second channel: https://www.youtube.com/limeuncut Outdoors channel: https://youtube.com/@limeoutdoors Twitch: http://www.twitch.tv/slicedlime TikTok: https://tiktok.com/@slicedlime Twitter: http://twitter.com/slicedlime Fediverse: https://octodon.social/@slicedlime Facebook: https://www.facebook.com/SlicedlimeYT Patreon: https://www.patreon.com/slicedlime Discord: https://discord.gg/aFAnsdv
#minecraft #news