How to generate /give, /summon, and /effect commands in Minecraft

The /give syntax genuinely changed as of Java 1.20.5. Commands with NBT that used to work now throw a syntax error. If you copied a command from an old video and it won't run, that's why.
The same sword, three syntaxes
Netherite sword, named "Blade of the Void" in dark purple, unbreakable, Sharpness V.
Bedrock
/give @p minecraft:netherite_sword 1
Bedrock doesn't accept a custom name, enchantment, or raw NBT inside /give — that needs a command book or a separate NBT editor.
Java 1.20.5 and later (components)
/give @p minecraft:netherite_sword[custom_name='{"text":"Blade of the Void","color":"dark_purple","italic":false}',unbreakable={},enchantments={levels:{"minecraft:sharpness":5}}] 1
Legacy Java (NBT, up to 1.20.4)
/give @p minecraft:netherite_sword{display:{Name:'{"text":"Blade of the Void","color":"dark_purple","italic":false}'},Unbreakable:1b,Enchantments:[{id:"minecraft:sharpness",lvl:5s}]} 1
Notice it's not just brackets swapped for braces. unbreakable={} and Unbreakable:1b are different concepts, a component versus an NBT tag, and neither works in place of the other.
Summoning with equipment
Summon a skeleton wearing a golden helmet, glowing, with no AI (it won't walk or attack, just stands there):
/summon minecraft:skeleton ~ ~ ~ {NoAI:1b,Glowing:1b,ArmorItems:[{},{},{},{id:"minecraft:golden_helmet",Count:1b}],HandItems:[{},{}]}
ArmorItems always follows feet, legs, chest, head. Reversing that order is the most common mistake when building this by hand.
The effect amplifier trap
This one catches everybody at least once: the "Level" you see in-game (Speed II, say) is not the number that goes in the command. The command uses amplifier, which is level minus 1.
| In-game level | Command amplifier | |---|---| | I | 0 | | II | 1 | | III | 2 | | V | 4 |
Speed II for 60 seconds:
/effect give @p minecraft:speed 60 1 false
Put 2 in there expecting Level II, and you'll get Level III without noticing.
How to use the generator
- Pick a tab: give, summon, or effect.
- Pick a version, Bedrock, current Java, or legacy Java. That choice decides the entire syntax, not a cosmetic detail.
- Fill in the fields (item, name, enchantments, gear). The finished command appears ready to copy, already formatted correctly for the version you picked.
- Paste it into the game chat or inside a command block.
The command generator builds all three syntaxes above automatically, no need to memorize where the braces, brackets, or quotes go.
Common questions
I copied a command from a tutorial and got "Incorrect argument" on /give. Almost always the wrong version's syntax: an NBT command in curly braces {} running on Java 1.20.5+, which expects components in square brackets [] instead.
I set Speed level 2 and it came out stronger than expected. That's the amplifier: in-game level minus 1. An effect at "level 2" in the command is Speed III, not II.
My summon spawned without the armor I configured. Check the order of ArmorItems — it's always feet, legs, chest, head. One item in the wrong slot equips the wrong piece, or nothing at all.
Can I combine give and summon into a single command? Not directly; they're separate commands. For a mob to spawn already holding an item, that item goes in HandItems inside the /summon itself, not through /give.
Does this work the same on a server with plugins? Vanilla syntax does. Bukkit, Spigot, and Paper servers sometimes restrict custom NBT by permission. If a command won't run even with correct syntax, that's a server limitation, not a problem with the command.