Wednesday, November 6, 2024 at 2:59 PM

Minecraft Snapshot 24w45a

With the spooky season behind us, we are entering November with the release of Snapshot 24w45a. This update comes with a bunch of bug fixes, changes to how mobs interact with equipable items on the ground, improvements to item models by adding more functionality and much more. It's a hefty update for resource packs! Enjoy!

Changes

  • Baby Cats and Wolves now get a collar with the color that is a mix between the parents collar color if possible
  • Aligned durations of the Suspicious Stew effects with Bedrock Edition:
    • Saturation: 0.35 seconds (unchanged)
    • Night Vision: 5 seconds (unchanged)
    • Fire Resistance: 3 seconds
    • Blindness: 11 seconds
    • Weakness: 7 seconds
    • Regeneration: 7 seconds
    • Jump Boost: 5 seconds
    • Wither: 7 seconds
    • Poison: 11 seconds

Developer's Note: Yay! They are all now prime numbers! (not really)

Mobs picking up items

Some changes have been made to how mobs decide to replace their equipped items with items on the ground

  • If the item belongs in an armor slot, replace the item if any of the following conditions apply
    • The new item has a higher base armor value
    • The new item has a higher base armor toughness value
    • The new item has more enchantments
    • The new item is less damaged
    • The new item has a custom name while the old one doesn't
  • If the item belongs in the main hand slot, replace the item if any of the following conditions apply
    • The new item is a preferred weapon while the old one isn't
      • If the old item is a preferred weapon while the new item isn't, do not replace the item
    • The new item has a higher base damage value
    • The new item has more enchantments
    • The new item is less damaged
    • The new item has a custom name while the old one doesn't

Preferred weapons

The following mobs now have a preferred weapon type to pick up:

  • Skeleton variants all prefer Bows
  • Piglins and Pillagers prefer Crossbows
  • Drowned prefer Tridents

Eyeblossoms

  • Bees don't interact at all with Closed Eyeblossoms
  • Bees don't get poisoned when they touch Closed Eyeblossoms
  • Bees will not be tempted by Closed Eyeblossoms

Creaking mob

  • An activated Creaking will not move if a survival or adventure player is looking at it
    • Creaking will also have full knockback resistance in that state

Resin Brick

  • Resin Brick is now used as the material for armor trimming instead of Resin Clump

Technical Changes

  • The Data Pack Version is now 59
  • The Resource Pack version is now 44
  • Data generator in server jar (net.minecraft.data.Main) no longer generates assets directory
    • --client option has been removed from command line for this entry point
  • New entry point net.minecraft.client.data.Main is present in client jar, with similar command line structure as data generator in server jar
    • Available options: --client - generates assets directory

Network Protocol

  • Client will now send the minecraft:player_loaded packet once the loading terrain screen has closed after initially loading into the world, and after closing the loading screen when respawning

Data Pack Version 59

  • The tooltip warning on item blocks with the minecraft:block_entity_data component can no longer be hidden by any other component
  • Field model in minecraft:equippable component has been renamed to asset_id
  • Field item_model_index in trim_material registry has been removed (no longer needed for model rendering)
  • Component minecraft:custom_model_data has been expanded, together with minecraft:set_custom_model_data modifier

Tags

Block Tags

  • Added #bee_attractive - denotes all blocks that Bees may pollinate
  • Removed #tall_flowers

Item Tags

  • Removed #flowers and #tall_flowers
  • Added skeleton_preferred_weapon, piglin_preferred_weapon, pillager_preferred_weapon and drowned_preferred_weapon tags for specifying preferred weapons types for these mobs when picking up items

Components

minecraft:custom_model_data

  • Component has now more fields to accomodate new uses by various model property getters
  • Fields:
    • floats - list of floats
    • flags - list of booleans
    • strings - list of strings
    • colors - list of RGB color values

Item Modifiers

minecraft:set_custom_model_data

  • Component has now more fields to accomodate more complex component structure
  • Fields:
    • floats - optional list operation of number providers
    • flags - optional list operation of boolean values
    • strings - optional list operation of string values
    • colors - optional list operation of RGB values or number providers
  • List operation uses same format as explosions field in set_fireworks modifier
  • For example {function:"set_custom_model_data",floats:{values:[2],mode:replace_all}} sets replaces floats with value 2

Resource Pack Version 44

  • Invalid minecaft:filled_map items in an Item Frame (map item without the map_id component) no longer change the size of the frame
  • New format for data-driving item models

Renames

  • equipment directory has been moved one level up, i.e. models/equipment/ becomes equipment/
  • broken_elytra model and texture has been renamed to elytra_broken

Item models

  • New format has been introduced for describing item models
  • Item models are selected based on minecraft:item_model component
    • Model for item with item_model=foo:bar is stored in /assets/foo/items/bar.json
  • Format of file is { "model": {"type": <item model type>, <item model type specific fields> } } (see below for exact types)
  • overrides section has been removed from existing block models
  • There are no longer any hardcoded paths in models directory - models will be now only used if referenced by definitions in items or blockstates directories
  • Models in models/item that only redirect to a block model have been removed
    • In such cases, the item model will refer to the models/block model directly

minecraft:model item model type

  • Renders a plain model from models directory
  • Fields:
    • model: namespaced ID of model in models (like minecraft:block/yellow_glazed_terracotta)
    • tints: a list of tint sources to apply to elements of rendered model (first entry applies to tintindex 0, second one - 1, etc.)
      • Format:
        • type: type of tint source (see below)
        • <type-specific> - additional fields depending on tint source type

minecraft:constant tint source type

  • Returns a constant RGB color
  • Fields:
    • value - A packed integer RGB value (e.g. -1) or an array of RGB values (e.g. [ 1, 1, 1 ])

minecraft:dye tint source type

  • Returns value from minecraft:dyed_color component or default if not present
  • Fields:
    • default - RGB value

minecraft:grass tint source type

  • Returns grass color at specific climate parameters, based on textures/colormap/grass.png
  • Same colors as ones selected by downfall and temperature in biome configuration
  • Fields:
    • temperature - float in 0..1 (inclusive) range
    • downfall - float in 0..1 (inclusive) range

minecraft:firework tint source type

  • Returns average of colors from minecraft:firework_explosion component or default color if there are none
  • Fields:
    • default: RGB value

minecraft:potion tint source type

  • Returns color from minecraft:potion_contents component:
    • if component is present:
      • custom color, if there is one present in component
      • default color, if effect list is empty
      • average of effect colors, otherwise
    • default color, otherwise
  • Fields:
    • default: RGB value

minecraft:map_color tint source type

  • Return value from minecraft:map_color component or default color if component is not present
  • Fields:
    • default: RGB value

minecraft:custom_model_data tint source type

  • Returns value from colors list in minecraft:custom_model_data component
  • Fields:
    • index - index for field in colors, default: 0

minecraft:special item model type

  • Renders a special (not data-driven) model
  • Fields:
    • model: special model instance
      • Format:
        • type - type of special model (see below)
        • <type-specific> - additional fields depending on tint source type
    • base: namespaced ID of model in models, providing transformations, particle texture and GUI light

minecraft:bed special model type

  • Renders a whole bed
  • Fields:
    • texture - namespaced ID for texture, without textures/entity/bed/ prefix and .png suffix

minecraft:banner special model type

  • Renders a banner with patterns from minecraft:banner_patterns component
  • Fields:
    • color - color of banner base, one of 16 predefined colors

minecraft:conduit special model type

  • Renders conduit
  • No fields

minecraft:chest special model type

  • Renders a single chest
  • Fields:
    • texture - namespaced ID for texture, without textures/entity/chest/ prefix and .png suffix
    • openness - float, 0.0 (default) - fully closed, 1.0 - fully open

minecraft:head special model type

  • Renders a head
  • Uses profile from minecraft:profile component when applicable
  • Fields:
    • kind - one of skeleton, wither_skeleton, player, zombie, creeper, piglin, dragon

minecraft:shulker_box special model type

  • Renders a shulker box
  • Fields:
    • texture - namespaced ID for texture, without textures/entity/shulker/ prefix and .png suffix
    • openness - float, 0.0 (default) - fully closed, 1.0 - fully open
    • orientation - orientation for rendering, default: up

minecraft:shield special model type

  • Renders a shield
  • Uses patterns from minecraft:banner_patterns component and color from minecraft:base_color component
  • No fields

minecraft:trident special model type

  • Renders a trident
  • No fields

minecraft:decorated_pot special model type

  • Renders a decorated pot
  • Uses values from minecraft:pot_decorations component
  • No fields

minecraft:composite item model type

  • Renders multiple sub-models
  • All models are rendered in the same space
  • Fields:
    • models: a list of item models to render

minecraft:condition item model type

  • Renders an item model depending on boolean property
  • Fields:
    • property: type of property (see below)
    • <property-specific> - additional fields depending on property type, added inline
    • on_true - item model to render when property is true
    • on_false - item model to render when property is false

minecraft:using_item boolean property

  • Returns true if player is currently using this item
  • No fields

minecraft:broken boolean property

  • Returns true if the item is damageable and has only one use remaining before breaking
  • No fields

minecraft:damaged boolean property

  • Returns true if the item is damageable and has been used at least once
  • No fields

minecraft:has_component boolean property

  • Returns true if the given component is present on the item
  • Fields:
    • component - component type

minecraft:fishing_rod/cast boolean property

  • Returns true if there is a fishing bobber attached to currently used fishing rod
  • No fields

minecraft:bundle/has_selected_item boolean property

  • Returns true if bundle is "open", i.e. it has selected item visible in GUI
  • No fields

minecraft:xmas boolean property

  • Returns true if current date is between December 24th and December 26th (inclusive)
  • No fields

minecraft:selected boolean property

  • Returns true if item is selected on a hotbar
  • No fields

minecraft:carried boolean property

  • Returns true if item is carried between slots in GUI
  • No fields

minecraft:shift_down boolean property

  • Returns true if player currently holding shift key down
  • No fields

minecraft:custom_model_data boolean property

  • Returns value from flags list in minecraft:custom_model_data component
  • Fields:
    • index - index for field in flags, default: 0

minecraft:select item model type

  • Renders an item model based on discrete property
  • Fields:
    • property: type of property (see below)
    • <property-specific> - additional fields depending on property type, added inline
    • cases - list of cases to match in format:
      • when - value to match against property, type depends on property
        • could be a single value or a list of values
      • model - item model to render when case is selected
    • fallback - item model to render if none of the cases matched the value
      • if not present, placeholder "missing" model will be rendered instead

minecraft:main_hand property

  • Returns main hand of holding player
  • No fields
  • Values: left, right

minecraft:charge_type property

  • Returns charge type stored in minecraft:charged_projectiles component
  • No fields
  • Values:
    • none - if there are no projectiles or component is not present
    • rocket - if there is at least one firework rocket
    • arrow - any other case

minecraft:trim_material property

  • Returns value of material field from minecraft:trim component, if present
  • No fields
  • Values: namespaced ID

minecraft:block_state property

  • Returns value for some property from minecraft:block_state component
  • Fields:
    • block_state_property - string key to select from component
  • Values: any string

minecraft:display_context property

  • Returns context this item is rendered in
  • No fields
  • Values:
    • none
    • thirdperson_lefthand
    • thirdperson_righthand
    • firstperson_lefthand
    • firstperson_righthand
    • head
    • gui
    • ground
    • fixed

minecraft:custom_model_data property

  • Returns value from strings list in minecraft:custom_model_data component
  • Fields:
    • index - index for field in strings, default: 0
  • Values: any string

minecraft:range_dispatch item model type

  • Renders an item model based on numeric property
  • Replacement for old overrides section from block models
  • Will select last entry with threshold less or equal to property value
  • Fields:
    • property: type of property (see below)
    • <property-specific> - additional fields depending on property type
    • scale - factor to multiply property value with, default: 1.0
    • entries - list of entries in format:
      • threshold - float value
      • model - item model to render when entry is selected
      • Note: order of fields does not matter, list will be sorted by threshold in ascending order before use
    • fallback - item model to render if no entries were less or equal to property value
      • if not present, placeholder "missing" model will be rendered instead

minecraft:custom_model_data numeric property

  • Returns value from floats list in minecraft:custom_model_data component
  • Fields:
    • index - index for field in floats, default: 0

minecraft:bundle/fullness numeric property

  • Returns weight of bundle_contents component or 0 if not present
  • No fields

minecraft:damage numeric property

  • Returns value for damage component
  • Fields:
    • normalize: boolean, default: true
      • if true, returns value of damage divided by max_damage component, clamped to 0..1
      • if false, returns value of damage, clamped to 0..max_damage

minecraft:count numeric property

  • Returns stack size
  • Fields:
    • normalize: boolean, default: true
      • if true, returns count divided by max_stack_size component, clamped to 0..1
      • if false, returns count clamped to 0..max_stack_size

minecraft:cooldown numeric property

  • Returns remaining cooldown for item, scaled to 0..1
  • No fields

minecraft:time numeric property

  • Returns value of day time (used for clock), scaled to 0..1
  • Fields:
    • wobble - if true, value will oscillate for some time around target before settling, default: true
    • natural_only - if true, value will be random in dimensions with natural=false, default: true

minecraft:compass numeric property

  • Returns angle, scaled to 0..1 in x-z plane between holder position and target
  • If target is not valid (not present, in other dimension or to close to holder position) random value will be returned
  • Fields:
    • target - one of:
      • spawn - points at world spawn
      • lodestone - points at location stored in lodestone_tracker component
      • recovery - points at last player death location
    • wobble - if true, value will oscillate for some time around target before settling, default: true

crossbow/pull numeric property

  • Returns crossbow-specific use time
  • No fields

use_duration numeric property

  • Returns item use ticks
  • Fields:
    • remaining - if true, returned value will be remaining use ticks, if false - ticks so far, default: false

use_cycle numeric property

  • Returns remaining use ticks modulo period
  • Fields:
    • period - positive float, default 1.0

minecraft:bundle/selected_item item model type

  • Renders selected stack in minecraft:bundle_contents component, if present, otherwise does nothing

Fixed bugs in 24w45a

  • MC-212 Fall damage is ignored for a couple of seconds when reloading into LAN or singleplayer worlds
  • MC-99848 Sprinting isn't canceled upon receiving the blindness effect
  • MC-158872 Models use model of last matched predicate, not closest match
  • MC-159508 Ctrl + Pick block on beehives and nests does not copy their honey levels
  • MC-166072 Custom Trident model ignores "layer0" and "elements" section
  • MC-186341 Command autocomplete doesn't consider parts after a slash
  • MC-193176 Most mobs with CanPickUpLoot prefer swords over axes and will downgrade their weapon
  • MC-193336 Heads/skulls don't render when held by an enderman or as block display entities
  • MC-201940 After dying, Ender Dragon body part hitboxes do not move upwards with the main hitbox
  • MC-206684 Spyglass particles have no associated texture
  • MC-229142 Spyglass texture doesn't allow override through resource pack
  • MC-249079 Sculk veins are not mirrored correctly from behind
  • MC-260216 Decorated pots aren't rendered when held by endermen or as block display entities
  • MC-267343 Sprinting isn't canceled upon riding entities
  • MC-269616 Telemetry Data scroll bar does not have a background
  • MC-270136 Thrown projectiles with custom_model_data do not maintain proper particles when breaking
  • MC-271786 Empty block states in noise_provider does not cause validation to fail, causing crash
  • MC-272994 Allays assigned to a player can be set on fire with sweeping and fire aspect
  • MC-273450 Mobs with CanPickUpLoot:1b behave inconsistently with the mace / trident
  • MC-273522 Mobs with CanPickUpLoot no longer pick up enchanted items after picking up an unenchanted item
  • MC-273635 Trial spawners forget their designated mob when placed by player out of creative mode, assigned by spawn eggs
  • MC-274268 Trial Spawner keeps flashing after cooldown ends
  • MC-275011 Instant mine does not work when standing inside of cobwebs
  • MC-275215 Experiments warning goes off the screen if viewed at low window size
  • MC-276110 honey_level model predicate range is 1 for level 5 and 0 for levels 1-4
  • MC-276115 New Bee Nest and Beehive item models don't use the block parent
  • MC-276412 Custom item models set to a shield and various other items all create invisible items
  • MC-276654 item_model item component breaks on trident
  • MC-276728 Tridents and spyglasses appear dark in the inventory if given a custom item model for a block
  • MC-276730 Bundles appear dark in the inventory if given a custom item model for a block and then scrolled through
  • MC-276731 Items which use entity models will not render another entity model if specified via item model component
  • MC-276732 Colors will carry over from item ID to target model
  • MC-276771 Missing texture when a damageable item with one of several template models is destroyed
  • MC-276828 Minecraft no longer prints an error to the game log when a model fails to define a texture
  • MC-276847 Bundles given the model of a different bundle will not preserve their color when scrolled through
  • MC-277082 Creakings take knockback from wind charges
  • MC-277092 The eyes of creakings aren't visible when creakings have the invisibility effect
  • MC-277149 Creakings are affected by knockback from mace smash attacks
  • MC-277243 Creakings take knockback from Punch bows
  • MC-277264 The Creaking can be knocked back by zoglins
  • MC-277916 Containers are locked when upgrading a world from certain versions
  • MC-277925 Resin Brick Stairs are not part of the #stairs block and item tags
  • MC-277926 Resin Brick Slab is not part of the #slab block and item tags
  • MC-277929 The game crashes when attempting to use the void preset
  • MC-277930 Eyeblossom subtitles are inverted
  • MC-277931 Incorrect display on the map of the flower Closed and Open Eyeblossom
  • MC-277932 Resin Clump is not part of the #replaceable block tag
  • MC-277933 Smithing Table doesn't show a Clump icon for ingredient slot
  • MC-277939 Programmer Art's empty slot icons may not have been correctly updated for 24w44a
  • MC-277941 resin_clump is not mirrored correctly from behind
  • MC-277945 Incorrect verb form in "Elytra swooshes" subtitle
  • MC-277948 Suspicious stew gives different durations of Blindness for Eyeblossom and Azure Bluet
  • MC-277950 Open potted eyeblossom is shaded (flower_pot_cross_emissive)
  • MC-277951 Eyeblossom is placed in an unexpected position in the Creative inventory
  • MC-277952 Sprinting isn't canceled upon flying with elytra
  • MC-277954 Creaking Heart underwater plays spawning sounds in a loop
  • MC-277955 Using a loom crashes the game
  • MC-277961 Experience orbs incorrectly bounce up
  • MC-277964 Resin is not generated when a creaking is attacked by a wolf owned by a player
  • MC-277966 Creaking does not generate resin from player-caused explosions
  • MC-277967 The game crashes when certain explosions occur near a creaking in its death animation
  • MC-277970 Hanging signs don't display chains when attached to the side of a block
  • MC-277972 You can no longer swim when crouched under a slab
  • MC-277983 Naturally-spawned creaking hearts drop experience when broken in Creative mode
  • MC-277994 Picking a decorated pot or a shulker box always keeps its container data
  • MC-278002 Sculk sensors are not activated upon resin clumps spawning from creaking hearts
  • MC-278004 Hitting a creaking heart with a wind charge kills the creaking
  • MC-278028 Using items underwater can force you to exit swimming mode
  • MC-278071 "minecraft.used:minecraft.trident" doesn't increase when throwing a trident