Java Developer Tools

This feature is exclusive to Java Edition.
 
This article needs cleanup to comply with the style guide.
 [discuss]
Please help improve this page. The talk page may contain suggestions.
Reason: Too much focus on the third party video.
This article is a work in progress.
 
Please help expand and improve it. The talk page may contain suggestions.
Note: * Refer to the video for information, additional information may be found in the comment section, outside of the video or within the mod itself.
  • How much of this is accessible in-game as of 25w03a?

Java Developer Tools are tools used by Mojang Developers to develop new features and debug glitches. The existence of these developer tools was revealed to the public after Minecraft modder and Youtuber EightSidedSquare published a video titled "What Minecraft Looks Like for a Mojang Dev", which showcases most of the developer tools hidden from the general public. The developer tools shown in the video can be enabled and accessed via a mod made by Eight himself.

Most likely as a result of Eight's video, game tests and the /test command were released to the public in 25w03a alongside a few extra blocks to make its functionality more accessible to an average player.

Features

In the video, EightSidedSquare categorizes the developer tools into the following categories:

  • Commands
  • Gametesting[1] (Referred to as "Unit testing" in the video)
  • F3 Key Combos
  • Debug Renderers

Although not shown in the video, debug mode enables a lot of logs as well.

Commands

Semi-Functional Commands

  • /spawn_armor_trims
    • Syntax: /spawn_armor_trims <pattern/*_lag_my_game>
    • Running this command spawns armor stands with every single armor trim combination.
    • There are also armor stands with wolf armor, but the armor doesn't render as wolf armor only works on wolves, not players or armor stands.
  • /serverpack
    • Syntax: /serverpack <pop/push> <url> [<uuid>]
    • Running this command allows the player to either push (enable) or pop (disable) a server resource pack from a given url.
  • /debugpath
    • Syntax: /debugpath <destination>
    • Attempting to run the command /execute as <target> run debugpath <destination> returns the message "Made path" in the chat. The results of the command can be seen using the pathfinding debug renderer.[2]
  • /debugmobspawning
    • Syntax: /debugmobspawning <spawn_group> <destination>
    • This command can be used to trigger the events which cause mobs to spawn automatically. The mobs will only spawn if all players are a certain distance away from where the command is executed (this can be done using a Command Block).[3]

Functional Commands

  • /warden_spawn_tracker
    • Syntax: /warden_spawn_tracker <set/clear> <warning_level>
    • Running this command changes the warning level of a sculk shrieker. One can either clear or set the value of their warning level.
    • This command was already accessible to the general public from Deep Dark Experimental Snapshot 1 to 22w11a.
  • /raid
    • Running this command allows the player to instantly start/stop a raid and use many other debugging functions.
    • Syntax: /raid <start/stop/check/sound/spawnleader/setomen/glow> <omenlvl/type/level>
  • /test
    • This command was added to vanilla Minecraft in 25w03a alongside a few new blocks to aid modders and mapmakers.
    • The export subcommands are still limited to developers

Server Commands

  • /debugconfig
    • Syntax: /debugconfig <config/unconfig> <target>
    • A command used for debug configurations, only visible on servers.​

Disabled Commands

  • /chase[4]
    • Syntax: /chase <follow/lead/stop> [<host>/<bind_address>]
    • Allows the player to sync two or more clients from the same or different devices. Movements on the main client will be mimiced on the other connected clients.[5]

F3 key combos

  • F3 + E
    • Shows the "SectionPath", which renders the middles of sections with red outlines near the player. The chunk section borders get more green the farther away the player is, and from extremely far distances, they become blue.
  • F3 + L
    • Disables the "SmartCull" that culls individual chunk sections (16x16x16 areas). This gets disabled as well when inside a block in spectator or using F3 + U.
  • F3 + O
    • Shows the "Frustum culling Octree", a fast way for minecraft to check if a section is in your frustum. The number in every section shows the sections index in the octree. The color stands for the the size of the node with it being more transparent if the visibility check can be skipped because the parent is fully in the frustum.
  • F3 + F
    • Toggles the fog.
  • F3 + U
    • Pressing this keybind locks the frustum used for culling in place and makes it visible, shifting while pressing F3 + U turns this off.
  • F3 + V
    • Pressing this keybind enables "SectionVisibility" aka the "Section Occlusion Graph", this shows how sections are visible from others. This is used for SmartCull.
  • F3 + W
    • Supposedly enables a wireframe but is non-functional as of 1.21.1.[6]

Debug Renderers

The image used in the blog post for 16w14a, 16w15a and 16w15b, showcasing the pathfinding debug renderer rendering the paths of a group of zombie pigmen in the Nether.

All of the debug renderers listed below can be enabled in-game via a custom menu (F3 + F6).

Test Worlds

The "Create Test World" button on the title screen can be used to generate a superflat world that is designed to be used for testing.​ The world is set to allow commands and uses Creative as the default gamemode. It also disables the generation of structures.

  • Superflat Preset: minecraft:bedrock,3*minecraft:stone,116*minecraft:sandstone;minecraft:desert

Game Rules

When creating test worlds, some game rules uses different values as the default setting.

  • doDaylightCycle: false
  • doMobSpawning: false
  • doWeatherCycle: false

Videos

In the video below, EightSidedSquare goes through most of the developer tools not accessible in vanilla Minecraft.

Henrik Kniberg explaining the integration testing system in Minecraft.

Trivia

  • Despite not being an actual developer tool, EightSidedSquare added the ability to recolor any block while holding any dye when enabling the "World Gen Attempt" debug renderer.
  • Bedrock Edition also has hidden developer features hidden from the general public, including Java Edition's pathfinding renderer and a plethora of hidden developer commands. (The original article regarding Bedrock's developer tools can be found here)

Gallery

This section of the article is empty.
 
You can help by expanding it.

References

Navigation