Java Developer Tools
Note: Refer to the video for information, additional information may be found in the comment section or from outside of the video.
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.
Features[edit | edit source]
In the video, EightSidedSquare categorizes the developer tools into the following categories:
- Commands
- Gametesting[1] (Referred to as "Unit testing" in the video)
- F3 + 2 Key Combos
- Debug Renderers
Commands[edit | edit source]
Non-Functional Commands[edit | edit source]
- /debugpath
- Syntax:
debugpath <destination>
- Attempting to run the command
/execute as <target> run debugpath <destination>
returns the message "Made Path" in the chat, but it doesn't do anything.
- Syntax:
- /debugmobspawning
- Syntax:
debugmobspawning <spawn_group> <destination>
- Syntax:
Semi-Functional Commands[edit | edit source]
- /spawn_armor_trims
- 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.
- Syntax:
Functional Commands[edit | edit source]
- /warden_spawn_tracker
- Syntax:
/warden_spawn_tracker <set/clear>
- 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.
- Syntax:
- /raid
- Running this command allows the player to instantly start a raid.
- /test
Server Commands[edit | edit source]
- /debugconfig
- A command used for debug configurations, only visible on servers.[more information needed]
Disabled Commands[edit | edit source]
- /chase[2]
- 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.
F3 key combos[edit | edit source]
- F3 + E
- Enables the "SectionPath", which renders chunk section borders 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", which noticeably impacts the rate at which chunks load into the player's view. One can re-enable the "SmartCull" by pressing F3 + L.
- F3 + U
- Pressing this keybind enables the frustum, shifting while pressing F3 + U turns the frustum off.
- F3 + V
- Pressing this keybind enables "SectionVisibility", it is unclear what these are for but it is speculated to be used for optimization purposes.
- F3 + W
- Supposedly enables a wireframe but is non-functional as of 1.21.1.[3]
Debug Renderers[edit | edit source]
All of the debug renderers listed below can be enabled in-game via a custom menu (F3 + F6).
Videos[edit | edit source]
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[edit | edit source]
- 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.
Notes[edit | edit source]
- ↑ According to a comment posted by Mojang developer slicedlime, "unit tests" should be referred to as "game tests" because they "are way too interconnected to be considered units".
- ↑ Comment from @apollo4950 on EightSidedSquare's video: "You missed one of the more interesting developer commands: /chase. It allows you to sync two or more clients from the same or different machines and when you move on the "lead" client the "following" clients will move the same way. It was added in 1.18 to help test worldgen changes." In a reply by EightSidedSquare, he stated that he missed the command during the mod's development because the command "is still in code but never registered".
- ↑ Comment from @fx-modding on EightSidedSquare's Video: "9:27 This is not a discontinued feature. It's simply not shipped. They use ProGuard, which will strip out unused code. That code is probably controlled by a value in the constants file. ProGuard will see that this code can never run since nothing can change that variable (except someone modifying the code), so it removes it."