Tis

Minecraft 25w37a

This snapshot exposes many debug features that were previously developer-exclusive. See the changelog.

Copper Golem

If a copper golem is interacting with a chest and is pushed 2 blocks away from the chest (chessboard distance to its hitbox) or is pushed vertically out of range, then it will stop interacting with the chest, walk towards it, and try again.

Copper Armor

If a mob spawns with armor, the chances it will have certain armor tiers equipped has changed:

Tier Old 25w31a 25w37a
Leather 37.06% 33.54% 23.60%
Copper N/A 47.62% 32.24%
Gold 48.73% 16.30% 33.29%
Chain 12.90% 2.373% 9.731%
Iron 1.268% 0.1593% 1.096%
Diamond 0.04287% 0.004073% 0.04281%

Splashes

Changed “Now on OpenGL 3.2 core profile!” to “Now on OpenGL 3.3 core profile!”.

Debug Features

Some debug features were previously in the code but only available to modders, or not in the compiled code at all and only accessible to Mojang developers.

Some debug renders assign debug names to entities so the entities are easier to track. If an entity does not have a custom name, the game will generate a two-word debug name such as “WeirdShirt” or “SillyFist”. The generation is based on the entity’s UUID, so the name is consistent across the entity’s lifespan.

Debug names are usually but not always unique, since there are 990 possible combinations.

-DMC_DEBUG_OPEN_INCOMPATIBLE_WORLDS

All worlds are shown as compatible and can be opened without confirmation.

-DMC_DEBUG_ALLOW_LOW_SIM_DISTANCE

Allows client simulation distance to be set as low as 2 chunks. Server simulation distance is already unrestricted, so this flag has no effect on servers.

-DMC_DEBUG_HOTKEYS

Enables several debugging hotkeys:

Hotkey Description
F3 + E Toggles the chunk_section_paths debug option
F3 + O Toggles the chunk_section_octree debug option
F3 + V Toggles the chunk_section_visibility debug option
F3 + W Toggles wireframe rendering
F3 + L Toggles smart culling
F3 + U Captures the viewing frustum, showing its field of vision and culling outside sections
F3 + Shift + U Kills the viewing frustum, enabling normal rendering again
F3 + F Toggles fog

-DMC_DEBUG_UI_NARRATION

Allows narration even when the text2speech library cannot load the operating system’s narrator (marked by “Error while loading the narrator” in the logs). There will be no narrated output but the narration code will still run.

The narrator will still be completely disabled on unsupported operating systems (os.name system property does not contain either “win”, “mac”, or “linux”).

-DMC_DEBUG_SHUFFLE_UI_RENDERING_ORDER

Constantly shuffles the rendering order of many UI elements.

-DMC_DEBUG_SHUFFLE_MODELS

Constantly shuffles the model feature render order.

-DMC_DEBUG_RENDER_UI_LAYERING_RECTANGLES

Renders bounding boxes for UI elements.

-DMC_DEBUG_PATHFINDING

Enables the pathfinding debug renderer. Requires operator permissions to use on a server.

-DMC_DEBUG_WATER

Enables the water height debug renderer.

-DMC_DEBUG_HEIGHTMAP

Enables the heightmap debug renderer.

Heightmap Color
WORLD_SURFACE (S) Green
OCEAN_FLOOR (O) Blue
MOTION_BLOCKING (M) Dark Cyan
MOTION_BLOCKING_NO_LEAVES (ML) Cyan

Note that the OCEAN_FLOOR heightmap currently doesn’t display properly.

-DMC_DEBUG_COLLISION

Renders the collision boxes of nearby blocks.

-DMC_DEBUG_SHOW_LOCAL_SERVER_ENTITY_HIT_BOXES

Renders the true server-side entity hitboxes. Only works in singleplayer.

-DMC_DEBUG_SUPPORT_BLOCKS

Shows debug rendering for the main supporting block the player and nearby entities are standing on.

-DMC_DEBUG_SHAPES

Renders the shape (white), collision box (gray), occlusion shape (green), and interaction box (blue) of the block you are looking at.

-DMC_DEBUG_NEIGHBORSUPDATE

Shows the number of block updates each block received in a single tick the last time it got updated. Requires operator permissions to use on a server.

-DMC_DEBUG_EXPERIMENTAL_REDSTONEWIRE_UPDATE_ORDER

Shows the orientation of redstone wire updates when the redstone experiments are enabled. Blue is forward, yellow is the side bias, and red is “up”. Requires operator permissions to use on a server.

-DMC_DEBUG_STRUCTURES

Renders structure bounding boxes. Requires operator permissions to use on a server.

-DMC_DEBUG_LIGHT

Shows the client light engine’s state for each chunk section. “2” means empty, “1” means light only, and “0” means light and data.

-DMC_DEBUG_SKY_LIGHT_SECTIONS

Shows the client light engine’s state for each chunk section. No coloring means empty, brown means light only, and yellow means light and data.

-DMC_DEBUG_SOLID_FACE

Highlights all solid, sturdy block faces.

-DMC_DEBUG_CHUNKS

Currently crashes on world load.

-DMC_DEBUG_GAME_EVENT_LISTENERS

Highlights blocks and entities that listen to game events (sculk vibrations). Whenever a game event occurs, its origin position is shown along with the game event type. Requires operator permissions to use on a server.

-DMC_DEBUG_DUMP_TEXTURE_ATLAS

Dumps texture atlases to screenshots/debug when loading or reloading textures.

-DMC_DEBUG_DUMP_INTERPOLATED_TEXTURE_FRAMES

Dumps sprite interpolation frames to screenshots/debug when loading or reloading textures.

-DMC_DEBUG_STRUCTURE_EDIT_MODE

When loading a structure in a structure block, structure voids are preserved.

When placing a structure in the world (naturally, from structure block, or from command), containers no longer set LootTableSeed to a random value.

-DMC_DEBUG_SAVE_STRUCTURES_AS_SNBT

When saving a structure using a structure block, the structure is saved as SNBT with a .snbt extension.

-DMC_DEBUG_SYNCHRONOUS_GL_LOGS

Enables the GL_DEBUG_OUTPUT_SYNCHRONOUS OpenGL flag. If an OpenGL debug message callback is registered, it guarantees that the callback will be called synchronously.

See the OpenGL and LWJGL docs for details. Requires OpenGL 4.3 or later.

-DMC_DEBUG_VERBOSE_SERVER_EVENTS

Prints debug level logs when certain server events occur:

// When a chunk's load level changes
RES {chunkPos} {taskQueueLevel} {loadLevel}
// When a new chunk task is submitted
// (generation, light engine, player load)
SUB {chunkPos} {taskQueueLevel} {taskSchedulerName} {queueName}
// Distance Manager Updates (when the game computes chunk load levels)
DMU {numberOfChunksChecked}
// When a chunk's lighting is updated
LIT {chunkPos}
// When a chunk is sent to a client
SEN {chunkPos}
// When a chunk load ticket is added
ATI {chunkPos} {ticket}
// When a chunk load ticket is removed
RTI {chunkPos} {ticket}

See the wiki for more details on chunk load levels and ticket types.

-DMC_DEBUG_NAMED_RUNNABLES

Adds debugging names to runnables created from Util#debugRunnable or Util#debugSupplier (yarn mappings). Has no effect on the vanilla game.

-DMC_DEBUG_GOAL_SELECTOR

Renders the class names of mob AI goals above their heads. Currently running goals are highlighted green. Requires operator permissions to use on a server.

Note that not all mobs use goals. Some use brains instead.

Class names are obfuscated in the vanilla game, so a modded environment is required to show human-readable goal names.

-DMC_DEBUG_VILLAGE_SECTIONS

Highlights sections within a village’s bounds. Requires operator permissions to use on a server.

-DMC_DEBUG_BRAIN

Shows information stored in the target mob’s brain in a human-readable format:

Type Color
Memories Gray
Gossips (villager) White (about self), Orange (about others)
Anger (warden) Pink
“Wants Golem” (villager) Orange
Activities Lime
Behaviors Cyan
Inventory Pink
Health White (full), Orange (damaged)
Profession, XP (villager) White
Debug Name White

Behaviors are shown as obfuscated class names, so a modded environment is required to show human-readable behavior names.

Note that not all mobs use brains. Some use goals instead.

Requires operator permissions to use on a server.

-DMC_DEBUG_POI

Shows the POI type and number of free tickets for nearby POIs. Requires operator permissions to use on a server.

If -DMC_DEBUG_BRAIN is enabled, also lists the debug names of entities own the POI (have a job_site, home, or meeting_point memory), and villagers that are candidates for the POI (have a potential_job_site memory). If more than 3 entities are owners or candidates for a single POI, then the total count is shown instead of individual names.

-DMC_DEBUG_BEES

Renders debugging information for bees, hives and flowers. Requires operator permissions to use on a server.

Bees show their travel time in ticks, goals, target flower position, hive position, and list of blacklisted hive positions. Bee goals are shown as obfuscated class names, so a modded environment is required to show human-readable goal names.

Hives show whether they are sedated by a campfire, the honey level, debug names of bees that are inside and outside the hive, and bees that have blacklisted the hive. If a hive is broken, but a bee still has the hive’s position memorized, the block becomes a ghost hive. Ghost hives display the debug names of bees that still have the ghost hive set as their hive position.

Flowers show the debug names of bees that are pollinating them.

If more than 3 bees are tracking a single hive or flower, then the total count is shown instead of individual names.

-DMC_DEBUG_RAIDS

If set on the client, highlights the raid center location. Requires operator permissions to use on a server.

If set on the server or in a singleplayer world, shows the number of raiders, raider health, whether the wave is a bonus wave, and the raid status (ongoing, victory, loss, or stopped) in the boss bar.

-DMC_DEBUG_BLOCK_BREAK

When set on the client, prints debug level logs when certain block break events occur:

// When the client receives a block changed acknowledgement packet from the server
ACK {playerActionSequenceNumber}

// When starting to break a block in survival/adventure mode
Start break {blockPos} {blockState}
// When starting to break a block in creative mode
Creative start {blockPos} {blockState}

// When the player stops breaking a block because it started breaking a different block
Abort old break {newBlockPos} {newBlockState}
// When the player stops breaking a block because it is no longer targeting a block
Stop dest {oldBlockPos} {oldBlockState}

// When continuing to break a block in creative mode
Creative cont {blockPos} {blockState}

// When the player finishes trying to break a block
Finished breaking {blockPos} {blockState}
// When a block is actually broken on the client
client broke {blockPos} {beforeBlockState} -> {afterBlockState}

When set on the server, prints debug level logs when certain block break events occur:

// When the server acknowledges a client's block action
// The possible {event}s are in the below table
Server ACK {playerActionSequenceNumber} {blockPos} {didServerTakeAction} {event}

// When a block is actually broken on the server
server broke {blockPos} {beforeBlockState} -> {afterBlockState}
Event Description
destroyed *
insta mine *
creative destroy *
too far Block outside interaction range
too high Block above world height
may not interact Block under spawn protection or outside world border
block action restricted Cannot place blocks in current game mode
abort destroying since another started (client insta mine, server disagreed)  
actual start of destroying Player starts destroying a block
stopped destroying Player finishes destroying a block
aborted mismatched destroying Client and server disagree about which block was destroyed
aborted destroying Player stops destroying a block

* didServerTakeAction can be false if all checks pass but the server refuses to break the block for some other reason, such as a non-operator trying to break a command block.

-DMC_DEBUG_MONITOR_TICK_TIMES

Whenever a single tick takes longer than 300ms, saves profiler results to debug/Renderer (if on the client), or debug/Server (if on the server).

-DMC_DEBUG_KEEP_JIGSAW_BLOCKS_DURING_STRUCTURE_GEN

Disables replacing jigsaw blocks when generating jigsaw structures.

-DMC_DEBUG_DONT_SAVE_WORLD

Disables saving chunks, entities (excluding players), and POI. Advancements, statistics, active raids, random sequences, world borders, and everything in level.dat are still saved.

-DMC_DEBUG_LARGE_DRIPSTONE

When generating the large_dripstone feature, places a diamond block at the top of the column, a gold block at the bottom of the column, and creeper heads between the stalactites and stalagmites (with some drift due to the wind_speed parameter). All generated dripstone blocks are replaced with glass.

-DMC_DEBUG_CARVERS

Enables debug_mode for all carvers.

-DMC_DEBUG_ORE_VEINS

Only generates ore veins, fluids, and structures. Granite and tuff are replaced with oak buttons.

-DMC_DEBUG_SCULK_CATALYST

Saves additional stats to each sculk catalyst’s block entity data:

  • Integer stats.total: The sum of all sculk charge experience
  • Integer stats.count: The number of sculk charges
  • Integer stats.max: The amount of experience stored in the biggest sculk charge
  • Integer stats.avg: The average experience stored across all sculk charges

-DMC_DEBUG_BYPASS_REALMS_VERSION_CHECK

Bypasses all Realms availability checks, including version checking, authentication, and whether the user is allowed to access Realms. This only allows opening the Realms menus and cannot be used to join Realms without authentication.

-DMC_DEBUG_SOCIAL_INTERACTIONS

Allows opening the Social Interactions menu in singleplayer. Adds the current player and any blocked players to the reporting screen. Allows opening the report screen even if chat is disabled due to options, a launcher argument, or Minecraft account settings.

-DMC_DEBUG_VALIDATE_RESOURCE_PATH_CASE

Resource packs will only load files if the case matches exactly (for example, if a resource pack tries to find path/to/file.json but the file is actually at path/to/File.json, it will fail). If the file is on a different file system type than the system’s default (such as the file system for loading files bundled with the game’s JAR file), validation is skipped.

-DMC_DEBUG_UNLOCK_ALL_TRADES

Villagers will immediately choose and unlock trades for their max level.

-DMC_DEBUG_BREEZE_MOB

Renders breeze AI debugging information. Requires operator permissions to use on a server.

Draws a green circle 4 blocks away from the breeze’s target, an orange circle 8 blocks away, and a red circle 24 blocks away. A breeze must be between the green and red circles (4-24 blocks) to jump, and it will pick a jump target between the green and orange rings (4-8 blocks).

A blue line is drawn from the breeze to its current target. A breeze’s jump target is highlighted in red, and a pink line is drawn from the breeze to its jump target.

-DMC_DEBUG_TRIAL_SPAWNER_DETECTS_SHEEP_AS_PLAYERS

Trial spawners detect sheep and only sheep.

-DMC_DEBUG_VAULT_DETECTS_SHEEP_AS_PLAYERS

Vaults detect sheep and only sheep.

-DMC_DEBUG_FORCE_ONBOARDING_SCREEN

Always shows the onboarding screen at startup.

-DMC_DEBUG_CURSOR_POS

Shows the current mouse position coordinates.

-DMC_DEBUG_DEFAULT_SKIN_OVERRIDE

Causes all players to display their default skin.

-DMC_DEBUG_PANORAMA_SCREENSHOT

Allows pressing Ctrl + F2 to take a panoramic screenshot. Saved as panorama_0.png through panorama_5.png in the screenshots folder.

-DMC_DEBUG_CHASE_COMMAND

Enables the /chase command. Executing /chase lead [<bind_address>] [<port>] starts a chase server, and other game instances can connect to the chase server using /chase follow [<host>] [<port>]. The following player(s) will constantly be teleported to the leading player’s position and dimension.

The default bind address and port for the chase server is 0.0.0.0:10000. The default host and port for the chase client is localhost:10000.

If the leading player is connected to a Minecraft server with multiple players, the following players will be teleported to an arbitrary player.

-DMC_DEBUG_IGNORE_LOCAL_MOB_CAP

Mob spawns ignore local, per-player mob cap. The global mob cap is not ignored.

-DMC_DEBUG_DISABLE_LIQUID_SPREADING

Disables liquid spreading.

-DMC_DEBUG_AQUIFERS

At positive Z coordinates, places strips of slime blocks (below sea level) and honey blocks (above sea level) marking where aquifers generate.

-DMC_DEBUG_JFR_PROFILING_ENABLE_LEVEL_LOADING

Starts the profiler when loading the world, and stops it when level loading is complete.

-DMC_DEBUG_ENTITY_BLOCK_INTERSECTION

Highlights full block spaces nearby entities are intersecting with. Requires operator permissions to use on a server.

-DMC_DEBUG_GENERATE_SQUARE_TERRAIN_WITHOUT_NOISE

Currently crashes on world load.

-DMC_DEBUG_ONLY_GENERATE_HALF_THE_WORLD

Only generates the world where z ≥ 0. Features and structures may extend into negative z positions.

Liquids do not flow into negative z positions.

If -DMC_DEBUG_WORLD_RECREATE is enabled, also sets the spawn to (0, 64, -100) in all new worlds.

-DMC_DEBUG_DISABLE_FLUID_GENERATION

Disables fluid generation. Features and structures can still generate fluids.

-DMC_DEBUG_DISABLE_AQUIFERS

Disables aquifer generation.

-DMC_DEBUG_DISABLE_SURFACE

Disables surface rules, causing the overworld to generate without its surface grass and dirt layers.

-DMC_DEBUG_DISABLE_CARVERS

Disables cave carvers.

-DMC_DEBUG_DISABLE_STRUCTURES

Disables structure generation. Structures can still be placed through structure blocks or commands.

-DMC_DEBUG_DISABLE_FEATURES

Disables feature generation. Explorer maps will not try to find nearby structures.

-DMC_DEBUG_DISABLE_ORE_VEINS

Disables large copper and iron vein generation.

-DMC_DEBUG_DISABLE_BLENDING

Disables easing the transition between chunks generated in different versions, known as blending. Disables scheduling ticks for blocks in old chunks on the border of a newly generated chunk.

-DMC_DEBUG_DISABLE_BELOW_ZERO_RETROGENERATION

Disables replacing bedrock at the bottom of old worlds and generating new caves underneath.

-DMC_DEBUG_SUBTITLES

Shows <sound_id> missing in subtitles whenever an unregistered sound plays.

-DMC_DEBUG_FAKE_LATENCY_MS

When set on the server or in a singleplayer world, simulates connection latency by delaying packets set to clients.

Can be set to any integer (example: -DMC_DEBUG_FAKE_LATENCY_MS=10), but only positive numbers will add latency.

-DMC_DEBUG_FAKE_JITTER_MS

When set on the server or in a singleplayer world, simulates connection jitter by waiting a random time between 0 and jitter - 1 milliseconds, in addition to the fake latency.

Can be set to any integer (example: -DMC_DEBUG_FAKE_JITTER_MS=10). Requires -DMC_DEBUG_FAKE_LATENCY_MS to be positive.

-DMC_DEBUG_COMMAND_STACK_TRACES

Adds stack traces to CommandSyntaxException, allowing developers to investigate the code path before the exception occurred.

-DMC_DEBUG_WORLD_RECREATE

Adds a “DEBUG recreate” button to the select world screen. When clicked, it creates a world named “DEBUG world” (deleting a world with that name if it exists) with seed test1 (110251487) in spectator mode.

Changes the default values for the doDaylightCycle and doWeatherCycle game rules to false in all new worlds.

If -DMC_DEBUG_ONLY_GENERATE_HALF_THE_WORLD is enabled, also sets the spawn to (0, 64, -100) in all new worlds.

-DMC_DEBUG_SHOW_SERVER_DEBUG_VALUES

In a singleplayer world, adds the server-side biome and light levels to the debug screen, and replaces the client-side looking at block/fluid values with server-side values.

-DMC_DEBUG_FEATURE_COUNT

Keeps track of feature placement counts over time. Press L to print feature counts and other debugging information in the following order:

  • whether the dimension is “running” or “dead”
  • the dimension
  • number of times the feature was placed
  • average feature placements per chunk
  • the placed feature used for biome checking
  • the configured feature
  • the feature itself

Press R to reset feature placement counts.

-DMC_DEBUG_FORCE_TELEMETRY

Allows telemetry even if the SharedConstants.isDevelopment (yarn mappings) variable is true. Telemetry is still disabled if the user account is blocked from telemetry.

-DMC_DEBUG_DONT_SEND_TELEMETRY_TO_BACKEND

Disables sending telemetry data.