How command output is verified
MC Commander separates “the web form works” from “the generated syntax matches Minecraft’s format.” This page documents the checks and their limits.
Four layers of checking
- Page checks: required inputs, output, copy, save and share controls are present.
- Code checks: JavaScript, PHP and internal links are checked before deployment.
- Regression checks: fragile outputs such as custom Give names, Unbreakable, Summon and text components have fixed tests.
- In-game checks: a command is described as tested in game only when its exact edition and version were actually executed.
Custom item-name regression
For Java 1.20.5 and newer, MC Commander uses minecraft:custom_name rather than a generic [name=...] component. Regression cases include Japanese text, quotation marks, apostrophes and backslashes.
/give @p minecraft:diamond_sword[minecraft:custom_name={"text":"Test Sword"}] 1Why output is separated by version
| Target | Handling |
|---|---|
| Java 1.12.2 and earlier | Legacy NBT and older identifiers |
| Java 1.13–1.20.4 | Namespaced IDs and legacy NBT |
| Java 1.20.5–1.21.4 | Item Stack Components |
| Java 1.21.5 and newer | Updated text and entity-data formats |
| Bedrock Edition | Bedrock syntax only; Java NBT is not presented as compatible |
Recent fixes that became regression tests
- Give form missing when a JavaScript dependency failed.
- Invalid legacy
[name=...]item-name output. - Java 1.21.5+ changes to Unbreakable, entity attributes, equipment and text events.
- Bedrock Tellraw/Titleraw output separated from Java text syntax.
What “automatically checked” means
The label “Versioned output checked automatically” means that generator output is compared with documented formats for each supported version and covered by regression tests. It does not mean that every combination has been run inside Minecraft, and it is not a guarantee that every command works in every world. Reports of wrong output are turned into new regression tests.
How IDs are checked, and what is not checked
Item, block, entity, effect, enchantment and attribute IDs are checked against separate lists. /give only accepts item IDs, /setblock and /fill only block IDs, and /summon only entity types, so an effect ID typed into /give is never output.
These lists are built from Minecraft's own registry data (registries.json from the data generator). Versions whose official data has been imported are checked against that data only; other versions use the site's curated lists.
Command shapes are compared with the structure of the official command definitions (commands.json): the order of literals and arguments, number ranges, coordinates, target selectors and whether IDs are registered. The detailed grammar of NBT, text components and item components is covered by the site's own output tests, not by this comparison.
Java 26.3 (released September 2026) is not offered yet because its official data has not been imported. Output for 26.2 usually works in 26.3, but this has not been verified.