Minecraft Blogs / Article

Minecraft 1.17 | Technical Changes

  • 1,328 views, 9 today
  • 22
  • 15
  • 4
Bertiecrafter avatar Bertiecrafter
Site Moderator
Level 66 : High Grandmaster Stack

Minecraft 1.17 is here! Let's talk about those things nobody else is talking about =)

Some changes have been made very obvious, but you might have missed or forgotten about the technical changes. This blog is a changelog dedicated to data pack creators and map makers.


This feature will go unnoticed for most users, but it's the best feature of this update. Markers can be used to... well... mark positions. You can then target those locations using target selectors (e.g. " execute at @e[​tag=my_marker] run setblock ~ ~ ~ diamond_block"). Let's see why the new markers are so much better than their current alternatives:

Armor Stand
Area Effect CloudMarker
Extra NBT for no gravity:{NoGravity:1b}NoneNone
Extra NBT for invulnerability{Invulnerable:1b}NoneNone
Extra NBT for invisibility:{Invisible:1b}NoneNone
Extra NBT for no hitbox:{Marker:1b}NoneNone
Infinite lifetimeYesNoYes
Extra NBT for custom NBT:{ArmorItems:[{id:"minecraft:stick",Count:1b,tag:{...}}]}Impossible{data:...}
Never receives ticksNoNoYes
Never sent to clientNoNoYes
Can show nametagsYesYesNo
Amount required for <20 TPS on my computer1400
97% lower
50% lower

Markers produce so little lag, because the game never updates them and they never get transmitted to clients.

Light Block

This block can emit a custom amount of light, which is just brilliant for any map making or light summoning needs. The block is invisible, has no collision box and is water loggable as well! In a few years time we'll find old MC videos in our YouTube recommended that make us think "Pfft, can you image this game without light blocks?" in the same way we currently think "Can you image this game where sheep don't drop mutton and zombies only drop feathers?"

After these highlights, here is the full changelog for all techy people:


  • The marker entity: Receives no tick updates, are not send to the client and can contain any NBT in their "data" field.
  • Tinted glass: You can see through it, but light does not pass through.
  • Server resource packs can be made required with custom message.
  • Freezing: Like poison, but decreased damage for each armor piece.
  • Gamerules: freezeDamage and playersSleepingPercentage.
  • The /item command can be used to copy items between block and entity slots or to apply item modifier JSON files (previously integrated as loot table functions).
  • Loot tables:
    • New functions: set_banner_pattern and set_enchantments.
    • New condition: value_check condition.
    • Functions set_damage and set_count have an extra "add" parameter which allows the value to be added instead of replaced.
    • Function copy_nbt can now use storage.
    • Some number values can now also be specified as number providers, allowing more control about randomness and access to the scoreboard. This means that you can dynamically create random numbers by specifying minimum and maximum values on the scoreboard now!
  • Advancements
    • New started_riding trigger. Triggered if a player starts riding a vehicle or entity. With player condition.
    • New lightning_strike trigger. Triggered for everyone if a lightning strikes. With player, lightning and bystander conditions.
    • New using_item trigger. Triggered for every tick of using items (crossbows, spyglass, fishing rods). With player and item conditions.
    • Effects_changed trigger has new source condition.
  • Predicates
    • When an entity is expected, there are now extra passenger, stepping_on and lightning_bolt fields. The lightning_bolt field is only applicable for lightning bolt entities.
    • The lightning_bolt predicate has blocks_set_on_fire and entity_struck fields.
    • When a player is expected, there is now an extra looking_at field of which the radius might change in the future.
  • Dripstone is affected by gravity, hurts entities underneath and on top of pointed dripstone.
  • Dimension types now have parameters for min and max height.
  • Game events: A new event system that is used by Skulk sensors, not much interesting happening there right now, but might be worth keeping an eye on.
  • Tags
    • game_events tags: vibrations and ignore_vibrations_stepping_carefully can be used to modify behavior of sculk sensors.
    • Tool block tags: Blocks can be added to mineable/<tool> tags to allow them to be mined quicker with a certain tool.
    • Material block tags: Blocks that only drop when using a specific tier of tool now use needs_<material>_tool tags to specify which tier is required.
    • A lot of other tags have been added to group new items/blocks/entities. See this page for the full list.
  • Use glow ink sacs to make signs and item frames super bright
  • Drip leaves let the player fall through if they stand too long on it or a projectile hits it. Will not tilt if powered by redstone.
  • Vanilla shaders now also contain core shaders which contain buffers for specific parts of the game and also a depth buffer.
  • The light block emits a custom amount of light, without visual or physical presence.
  • Debug & Metrics
    • "/debug function" outputs all command feedback from the commands in the function to a file.
    • Use the original "/debug <start | stop>" to get a quick tps reading. (Or ALT+F3)
    • Use F3+L for zip folder with tons of files containing metrics for the client and the integrated server on single player. The shortcut will only measure client metrics if on multiplayer.
    • Use "/perf <start | stop>" for detailed server-side metrics on multiplayer. The command is unavailable in single player.
  • JSON text component now allows custom separators, replacing the default ", " when targeting multiple entities using the "selector" or "entity" keys.
  • Statistic and scoreboard objective minecraft.custom:minecraft.total_world_time was added and measures the amount of ticks the world has been opened (including paused) for.
  • Entities now have a "HasVisualFire" NBT tag to make them appear on fire, without actually being on fire.
  • Some updates have been postponed to part 2. Download the official data pack (and apply during world generation) to re-enable the following:
    • World generation: double height and cave generation.
    • Skulk sensors: Responds to "vibrations" and outputs redstone.
    • Item bundles: Contain up to one stack of mixed items.


  • Debug world type can now only be accessed by holding shift while selecting world type.
  • Data pack version is now 7.
  • Vanilla shaders in resource packs now use OpenGL Core 3.2
  • Statistic and scoreboard objective minecraft.custom:minecraft.play_one_minute has been renamed to minecraft.custom:minecraft.play_time
  • Dimension types now have parameters for min and max height. Custom dimension types without these parameters won't work anymore.
  • Grass path blocks have been renamed to dirt_path
  • Predicates/Loot Table Conditions
    • When a block is expected, the string "block" field has been replaced by a list "blocks" field (Alongside tag, nbt and state fields).
    • Similarly, when an item is expected, the string "item" field has been replaced by a list "items" field (Alongside the nbt field).


  • /replaceitem is replaced by /item replace.
  • max-build-height in server settings.
  • /debug report. Use F3+L for single player worlds or /perf <start|stop> instead.


  • Endermen will now attack endermites spawned in by eggs or /summon
  • Horse saddle can now be replaced by /item replace
  • Superflat worlds with just air can now be created without crashing.
  • "Include Entities" in structure blocks now actually does what it says instead of inversed.
  • Clients receive inventory updates while their inventory is opened.
  • Clear commands executed from books in lecterns now don't generate ghost items.
  • Clearing an item after it is crafted should not leave ghost items anymore.
  • Area effect clouds now enforce max radius.
  • End portals are no longer transparent from below.
  • Pressing CTRL+C while having nothing selected no longer copies empty text to clipboard.
  • Recipes and advancements are now granted while UIs are open.
  • The minecraft.used:minecraft.elytra objective functions now.
  • You can now teleport a player rapidly without crashing the game. (The more you know.)
  • You can now teleport entities between dimensions rapidly without duplicating the entity.
  • Barrier blocks are now visible inside Structure Block areas when "Show Invisible Blocks" is enabled.

Minecraft 1.17 | Technical Changes
Minecraft 1.17 | Technical Changes

2 Update Logs

The predicate "blocks" and "items" fields actually replaced the old fields. : by Bertiecrafter 06/19/2021 10:04:09 amJun 19th, 2021

The predicate fields that I thought were optional alternatives actually replaced the old fields. The entries in the changelog have been moved to Changed accordingly.

Create an account or sign in to comment.

06/12/2021 6:55 pm
Level 61 : High Grandmaster Sus
Misterk7_- avatar
Thank you, very useful.
06/09/2021 10:17 amhistory
Level 66 : High Grandmaster Stack
Bertiecrafter avatar
Thank you Rion_, pettyGamingHD, Luracasmus, FishStacks, Redfuzzyturtle, Chimerabot, DaniAdler, DinoDesmond, JitteryPluto, Awhikax, Vellariya, Blip_Creations, McMeddon, Miltonx534, PMC, Papa Enny, Mooniium, Zygrade, Martix12, Europe and Applecake_ for the diamonds!
06/09/2021 9:52 am
Level 54 : Grandmaster Theorist
Chimerabot avatar
This looks awesome. Not exactly looking forward to updating all my datapacks to 1.17, though...
06/09/2021 10:16 am
Level 66 : High Grandmaster Stack
Bertiecrafter avatar
Oh boy do I have the thing for you my friend. PMC blog with further instructions coming soon.
Planet Minecraft


© 2010 - 2022