It’s been quite the trek, but we’re here. At the summit. The Caves & Cliffs Update: Part II is out today, completing the much anticipated cave update. What better way to celebrate than by climbing to the top of a higher than ever mountain. Let’s take a moment and just take in that view. Wait. What’s that sound. Don’t tell me that goat is back.
AAAAARGH.
Ouff! Ouch! Ow!
Where am I? It’s dark down here! It’s almost as if I fell a greater distance than I would have before today. Figures. While I try to get out of this dripstone cave, I hope you enjoy all of the new features that 1.18 brings. Could you pass me a candle before you leave? It really is dark down here.
This update can also be found on minecraft.net.
Features
- Added an "Allow Server Listings" option to opt out of having your name displayed in server listings
- Added an Online options screen where you can now find the Realms Notifications option
- Added new Overworld biomes
- Added noise caves and aquifers
- Added world autosave indicator for single-player worlds
- Axolotls now have their own, separate, mob cap
- Axolotls now only spawn in Lush Caves when in water that is above Clay Blocks
- Badlands Mineshafts now generate higher up
- Buried Treasure Chests may contain a Potion of Water Breathing
- Changed default brightness to 50
- Cod, Salmon, Pufferfish, Tropical Fish, Squid, and Dolphins now only spawn in water from height 50 to height 64
- Glow Squids now only spawn in water blocks under height 30
- If it is raining, sleeping will stop the rain and reset the weather cycle (in 1.17 sleeping would always reset the weather cycle)
- Illagers (Vindicator, Pillager, Evoker) no longer attack baby villagers
- New music has been added to the game
- New ore distribution and large ore veins
- Overworld build and generation limits have been expanded
- Raised the cloud level from 128 to 192
- Redesigned how effects look in the inventory screen, to allow them to show even with recipe book open
- Removed world types "Caves" and "Floating islands" from the world creation screen
- Sprinting is no longer reduced to walking when gently brushing your sleeve against a wall
- Tropical Fish now also spawn in Lush Caves at any height
- Villages are slightly more spread out
- World spawn selection algorithm has been reworked, now spawns player according to climate parameters
Advancements
- Added "Caves & Cliffs" for falling from top to bottom of the Overworld
- Added "Feels like home" for riding strider on lava for 50 blocks in the Overworld
- Added "Star Trader" for trading with a villager at the build height limit
- Added "Sound of Music" for playing music with a jukebox in a Meadow biome
Blocks
- Enchanting Tables now emit a low amount of light
- Using Shears on the tip of a Cave Vine, Twisting Vine, Weeping Wine, and Kelp will stop them from further growing
- Copper Ore now drops 2-5 (from 2-3) Raw Copper items
- In the Stonecutter, a Block of Copper can be converted to 4 Cut Copper
- Restricted Big Dripleaf placement to Clay, Grass, Dirt, Farmland, Moss, Rooted Dirt, Podzol, and Mycelium
Effects
- Your list of effects are now shown to the right of your inventory, instead of the left side
- When the inventory effects list is visible, it will be hidden from the game view to reduce screen clutter
- There's now two modes of seeing the effect list: Compact and Classic
- Classic is the pre-existing list of effects, one after another
- Compact is a single icon for each effect, suitable for small screen estate
- The game will automatically switch between the two modes to suit the available screen estate (including having the recipe book open)
Large ore veins
- Ore Veins are large, rare, snake-like underground ore formations
- Copper Ore Veins form between heights 0 and 50 and are mixed with Granite
- Iron Ore Veins form between heights -60 and -8 and are mixed with Tuff
Mob Spawning
- Monsters now only spawn in places where the light from blocks is 0 (sky light still prevents spawning like before)
Music
- Added new music by Lena Raine and Kumi Tanioka to the Overworld (when playing in Survival Mode) and the main menu
- Added a new music disc from Lena Raine titled 'Otherside'. This can be found rarely in Stronghold Corridor Chests or much more rarely in Dungeon Chests.
New Overworld Biomes
Dripstone Caves
- Contains plenty of Pointed Dripstone and Dripstone Block on the floors and ceilings, as well as within small pools of water
- In some places, you'll find larger stalagmites, stalactites, and columns built from Dripstone Blocks
- Contains extra Copper Ore
- Drowned can spawn in aquifers inside Dripstone Caves
Frozen Peaks
- Smooth mountain peaks with ice and snow
- Spawns Goats and Yeti. Wait, no, actually it's just Goats.
Grove
- Snowy terrain with big Spruce Trees and Powder Snow traps. You might want to wear leather boots!
- Tends to generate on high-altitude terrain beneath mountain peaks or on hilltops
- Spawns Wolves, Rabbits, and Foxes
Jagged Peaks
- Dramatic jagged mountain peaks with Snow and Stone blocks
- Spawns Goats
Lush Caves
- Moss covers the floors and ceilings
- Spore Blossoms grow from the ceiling and drip particles
- Contains Clay pools with Dripleaf plants growing out of them
- Contains Azalea Bushes and Flowering Azalea Bushes
- The Azalea Tree loves to have its roots in Lush Caves, so if you find an Azalea Tree (either overground or in a cave) you know there is a Lush Cave beneath you
- Cave Vines with Glow Berries grow from the ceiling and light up the caves
Meadow
- Large grassy and flowery biome that tends to generate high up on plateaus or next to large mountain ranges
- Sometimes contains a lone, tall Oak or Birch Tree with a Bee Nest
- Think Sound of Music!
- Spawns Donkeys, Rabbits, and Sheep
Snowy Slopes
- Very snowy terrain that can hide Powder Snow traps. I hope you kept those leather boots!
- Tends to generate on high-altitude terrain beneath mountain peaks or on hilltops
- Spawns Rabbits and Goats
Stony Peaks
- Stony mountain peaks that may be jagged or smooth
- These sometimes have large strips of Calcite running through them
New ore distribution
- Changed ore generation to match the new world height, and to add more strategy to mining. There is no longer a single height level that is best for all ores – you need to make tradeoffs!
- Iron Ore generates below height 72, with a strong bias towards height 16. Iron Ore also generates above 80, with more Iron Ore as you go higher.
- Copper Ore generates between height 0 and 96, with a strong bias towards height 48. Copper Ore generates in larger amounts in Dripstone Caves Biome.
- Lapis Lazuli Ore generates below height 64, with a strong bias towards height 0. However, Lapis Lazuli Ore below height -32 or above height 32 cannot generate exposed to air. It will either be buried or inside water.
- Coal Ore generates above height 0, with a strong bias towards height 96 and above. Coal Ore has reduced air exposure, so you will find more Coal Ore buried or underwater than exposed to air.
- Gold Ore generates below height 32, with a strong bias towards height -16. Extra Gold Ore generates below height -48. Extra Gold Ore can be found in Badlands biomes above height 32.
- Redstone Ore generates below height 16. Redstone Ore generation gradually increases as you go below height -32 and further down.
- Diamond Ore generates below height 16, with more Diamond Ore the lower you go. Diamond Ore have reduced air exposure, so you will find more Diamond Ore buried or underwater than exposed to air.
- Emerald Ore generates above height -16 in mountainous biomes, with more Emerald Ore the higher you go. Emerald Ore below height 0 is very rare!
Noise caves and Aquifers
- Noise caves are a new way of generating caves, providing more natural variety. They can get really huge sometimes! Noise caves come in three flavors:
- Cheese caves: Like the holes in swiss cheese. These often form caverns of various size.
- Spaghetti caves: Long squiggly tunnels, sometimes wide like tagliatelle
- Noodle caves: Thinner, squigglier, and more claustrophobic variant of spaghetti caves
- No, they aren't loud. The "noise" part of noise caves is a technical term and has nothing to do with sound.
- The old cave carvers and canyons still generate, combining with the noise caves to form interesting cave systems
- As with carvers, noise caves form cave entrances where they intersect the surface
- An aquifer is an area with local water level, independent of sea level
- Aquifers are used during world generation to generate bodies of water inside noise caves
- This sometimes results in large underground lakes
- They can also form inside mountains and on the surface
- Aquifers below y0 will sometimes be lava aquifers instead of water aquifers
- Magma Blocks sometimes generates at the bottom of underground bodies of water
- Underwater cave carvers and underwater canyons have been removed, since aquifers are used to generate water in caves instead
Sprinting
- Previously, any collision with a block would reduce sprinting to walking. Now, for very minor angles of collision with a block, players retain their sprint. For larger angles of collision, the old behavior is retained.
Upgrading of old worlds
- The transition between new and old terrain is less "cliffy"
- Will surface height blend? Yes.
- Will biomes blend? Yes.
- Will caves blend? Your mileage may vary.
- In old chunks, if there is any Bedrock at y=0, the sections below non-air blocks will be filled with new generation
- The old Bedrock between y=0 and y=4 in old chunks gets replaced with Deepslate
- A new Bedrock layer is placed at y=-64
World generation
- Generation range and build limits have been expanded by 64 blocks up and 64 blocks down, to a total range of 384 blocks
- Underground features, structures, and caves generate all the way down to y-64
- Exception: Diorite, Granite, Andesite, and Dirt will not generate below y0
- Tweaked size and positioning of Diorite, Andesite, and Granite generation
- Dripstone clusters can no longer be found in normal caves, only in Dripstone Caves biomes
- Starting from y8 and below, Deepslate gradually replaces all Stone
- Deepslate blobs no longer generate above y0
- The terrain shape and elevation varies dramatically, indepedently from biomes
- For example, forests and deserts could form up on a hill without needing a special biome just for that
- Less Diorite, Granite, and Andesite generates above y 60
- Strips of Gravel can generate in stony shores
- Swamp trees can grow in water 2 blocks deep (instead of just 1 block deep)
- Removed water lake features, aquifers provide local water levels
- A bunch of biome variants with simular features but different shapes have been merged into one, since the shape is controlled independently now
- Renamed some biomes
- Geodes now only generate up to height 30
Technical
- Added an accessibility option to stop the sky from flashing during thunderstorms
- Added
fall_from_height
andride_entity_distance
advancement triggers - Changed
nether_travel
to match other similar triggers - Added an option to specify the audio device used by the game
- Replaced
light
andbarrier
particles withblock_marker
- Replaced the clientbound chunk update network packet with another one that additionally contains light update data
- The separate light update packet still exists and is sent when a light update happens without a chunk update
- New video setting called "Chunk Builder"
- Changed the prioritization order of the chunk rendering pipeline
- Unrendered chunk holes in the world should not appear anymore while flying fast with high render distance
- View distance now causes chunks to load cylindrically around players instead of in a square
- Added "Toggle Sprint" and "Toggle Sneak" to the Controls settings
- Moved Keybinds out to their own settings screen, accessible from Controls
- Information about the world generation noise is now displayed on the debug screen
- Added
illageralt
, rune-like font from Minecraft Dungeons (currently only usable via commands) - Added startup option
--jfrProfile
and commandjfr
to start profiling with Java Flight Recorder as well as a few custom events - Loot table functions
set_contents
andset_loot_table
now require atype
field with a valid block entity type - Added new loot table function
set_potion
- The maximum amount of background threads are increased
- Worlds last saved before Minecraft 1.2 (pre "Anvil") can no longer be opened directly
- Data pack format has been increased to 8
- Resource pack format has been increased to 8
-
--report
option in data generator now creates reference files for the entirety of the worldgen, instead of just the biomes - Removed length limits for scoreboard, score holder, and team names
- Standalone
server.jar
now bundles contains individual libraries instead of being flat archive - Size limit for server resource packs has been increased to 250 MB
- Servers can now set property
hide-online-players
totrue
in order to not send a player list on status requests - New setting called "Simulation Distance"
- Mob spawners can now override light checks for spawning
- Added telemetry for world loading
Advancements
Changed triggers
nether_travel
-
entered
condition is renamed tostart_position
-
exited
has been removed since it was identical toplayer.location
New triggers
fall_from_height
- Triggered when a player lands after falling
- Conditions:
-
player
- a player for which this trigger runs -
start_position
- a location predicate for the last position before the falling started -
distance
- a predicate for the distance betweenstart_position
and the player
-
ride_entity_in_lava
- Triggered for every tick when a player rides in lava
- Conditions
-
player
- a player for which this trigger runs -
start_position
- a position where the riding started (first tick on lava) -
distance
- a predicate for the distance betweenstart_position
and the player
-
Chunk Builder Setting
- This setting determines if chunk sections are updated immediately during a single frame, or asynchronously using threads
- "Fully Blocking" corresponds to the previous way chunks were updated, which prevents potential visual gaps when blocks are destroyed
- "Threaded" will significantly reduce stutters when blocks are placed or destroyed (especially with light sources), however brief visual gaps may rarely occur
- "Semi Blocking" is the middle-option, and will only immediately update chunks that are deemed important, otherwise updates occur asynchronously using threads
Java 17
Minecraft now uses Java version 17. If you are using a default setup, the Launcher will download and install the correct version. If you are using a custom Java setup, or a third-party launcher, you will need to ensure that your Java installation is version 17 or above.
JFR Profiling
Custom events
All events are enabled when starting the profiling using either jfr start
command or --jfrProfile
startup flag.
If profiling is started through any other means for monitoring purposes, only the ServerTickTime
, LoadWorld
and NetworkSummary
are included by default.
-
minecraft.ServerTickTime
: periodic event (1 second intervals) exposing average server tick times -
minecraft.NetworkSummary
: periodic event (10 second intervals) reporting total packet sizes and counts per connection -
minecraft.PacketReceived | minecraft.PacketSent
: network traffic -
minecraft.ChunkGeneration
: time taken to generate individual chunk stages -
minecraft.LoadWorld
: initial world loading duration
Overview
Java Flight Recorder (https://openjdk.java.net/jeps/328) is the internal JVM profiling tool bundled with the Java Runtime to analyze performance and runtime characteristics.
It's a useful tool for exposing internal JVM performance metrics as well as custom metrics that can be monitored or analyzed using any stock Java profiler or monitoring agents.
Profiling lifecycle
A profiling run can be started using any of the following alternatives:
The run will then be stopped either by:
-
--jfrProfile
startup flag when starting a Minecraft server or client -
jfr start
in-game command - Regular Java CLI tools such as
jcmd
- shutting down the JVM
-
jfr stop
in-game command -
jcmd
CLI tool
Reports
A summary JSON report is written both to the log file and in the debug folder accompanied by a .jfr
recording ready to be analyzed in i.e JMC https://github.com/openjdk/jmc or any other profiler tool supporting the format.
Loot tables
Changed functions
set_contents
, set_loot_table
Added new mandatory field type
. This type will be written into BlockEntityTag.id
, to make sure that this tag can be correctly migrated between versions.
New functions
set_potion
- Sets the
Potion
tag on any item
Parameters:
-
id
- potion id
Maximum amount of background threads increased
- Various background tasks including worldgen are executed on a background thread pool
- The default thread pool size equals the amount of available CPU threads, minus one
- The upper thread pool limit has been raised from 7 to 255, which should help higher-end machines with improved world-gen performance
- The upper limit can be overridden via the
max.bg.threads
Java system property, for example when running multiple servers on a single machine
Mob spawning
- Monster spawning limits are now per-player, rather than global for each dimension
Old world conversion
- Worlds last saved before Minecraft 1.2 (pre "Anvil") now require conversion in a previous version of the game to be able to be opened
- We recommend that you upgrade your old version, 1.2 (pre "Anvil") or older, to version 1.6.4 - worlds opened for the first time in later versions will have incorrect biome information
Particles
block_marker
- Renders with a texture declared in the
particle
slot for a model assigned to the configured block state - Is summoned with same syntax as the
block
particle (i.e.block_marker wheat[age=2]
)
Resource Pack format
-
minecraft/textures/gui/container/inventory.png
now contains an extra sprite for a thin-layout version of the effect list in the inventory
Server bundling
-
server.jar
now bundles individual libraries instead of merging all the files into a single archive - This change is meant to solve certain problems related to Java modules
- On startup,
server.jar
will unpack libraries into a directory configured bybundlerRepoDir
(default: working directory) - To run a different main class other than the server, use the
bundlerMainClass
property (for examplejava -DbundlerMainClass=net.minecraft.data.Main -jar server.jar --reports
) or unpack the jar manually and use the contents ofMETA-INF/classpath-joined
for command line - If
bundlerMainClass
is empty, the program will just validate and extract files, and will then exit - Server classes are now signed
Simulation Distance Setting
- A new slider which is available under video settings
- Entities, blocks, and fluids will not be updated outside of simulation distance
- Allows higher render distance with less CPU load
- There's also a new
simulation-distance
property in the dedicated server properties
Spawner data changes
Example:
SpawnData: {
entity: {
id: "minecraft:cow"
},
custom_spawn_rules: {
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
}
SpawnPotentials: [
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 0, max_inclusive: 15}
},
entity: {id: "minecraft:pig"},
},
weight: 2
},
{
data: {
custom_spawn_rules: {
block_light_limit: {min_inclusive: 5, max_inclusive: 10},
sky_light_limit: {min_inclusive: 10, max_inclusive: 15}
},
entity: {id: "minecraft:panda"}
},
weight: 1
}
]
- Spawners now support the
custom_spawn_rules
NBT in theSpawnData
field and theSpawnPotentials
list -
custom_spawn_rules
currently may contain fieldsblock_light_limit
andsky_light_limit
- both are integer ranges with fieldsmin_inclusive
andmax_inclusive
- To make
SpawnPotentials
format similar to other weighted lists, structure was changed to{weight: , data: }
- To accomodate that change, previous contents of
SpawnData
were moved toSpawnData.entity
(making format of that field same as elements ofSpawnPotentials.data
)
Telemetry
In this release, we are re-introducing diagnostic tracking, which was part of Minecraft: Java Edition until 2018. We are bringing it back to better understand our players and to improve their experience. Specifically this information will help us prioritise various aspects of development and identify pain points. All data is treated according to GDPR and CCPA best practices and is used to develop a better-performing and generally more enjoyable Minecraft: Java Edition.
- At this point, the only implemented event is world load
World Load event
- Sent when loading singleplayer world or connecting to multiplayer server
- Contains following information:
- launcher identifier
- user identitifer (XUID)
- client session id (changes on restart)
- world session id (changes per world load, to be reused for later events)
- game version
- operating system name and version
- Java runtime version
- if client or server is modded (same information as on crash logs)
- server type (single player, Realms or other)
- game mode
World Data: Chunk Format
- Removed chunk's
Level
and moved everything it contained up - Chunk's
Level.Entities
has moved toentities
- Chunk's
Level.TileEntities
has moved toblock_entities
- Chunk's
Level.TileTicks
andLevel.ToBeTicked
have moved toblock_ticks
- Chunk's
Level.LiquidTicks
andLevel.LiquidsToBeTicked
have moved tofluid_ticks
- Chunk's
Level.Sections
has moved tosections
- Chunk's
Level.Structures
has moved tostructures
- Chunk's
Level.Structures.Starts
has moved tostructures.starts
- Chunk's
Level.Sections[].BlockStates
andLevel.Sections[].Palette
have moved to a container structure insections[].block_states
- Chunk's
Level.Biomes
are now paletted and live in a similar container structure insections[].biomes
- Chunk's
Level.CarvingMasks[]
is nowlong[]
instead ofbyte[]
- Added
yPos
the minimum section y position in the chunk - Added
below_zero_retrogen
containing data to support below zero generation - Added
blending_data
containing data to support blending new world generation with existing chunks
World Generation
- Bedrock layers now generate dependent on the world seed
- New random number generator for overworld generation
Fixed Bugs in 1.18
- About 250 bugs were fixed in this release. View the entire list on the issue tracker.
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: - Minecraft server jar
Report bugs here: - Minecraft issue tracker!
Want to give feedback? - Head over to our feedback website or come chat with us about it on the official Minecraft Discord.
External link →