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.