Minecraft
Give Command Builder
Building a /give command by hand is fine until you want an enchantment on it, and then it is a small exercise in JSON with no error messages. This assembles the whole thing, in whichever of the two syntaxes your server speaks.
1.20.5 replaced item NBT with item components. The two syntaxes are not interchangeable — a server rejects the wrong one outright.
Any item id works, not only the suggestions. Leave off the minecraft: prefix if you like — it is added for you.
Left blank for none. Custom names are italic by default; the generated command turns that off.
Enchantments
Lore lines
Your command
Paste into the server console without the leading slash, or into chat with it.
/give @p minecraft:netherite_sword[enchantments={"minecraft:sharpness":5}] 1How this works
The command is item id, then a block of modifiers, then a count. What changed in 1.20.5 is that block: it used to be NBT in curly braces after the item, and it is now components in square brackets. Enchantments moved from a list of objects to a flat map, custom names moved out of a display compound, and Unbreakable:1b became unbreakable={}. Everything else about the command is the same, which is exactly why the failure is confusing — it looks right.
What people get wrong
Two things this handles that hand-written commands usually do not. Custom names are italic by default in Minecraft, so the name is emitted as a JSON text component with italic explicitly off, which is why the output looks more complicated than a bare string. And enchantment levels above the vanilla maximum do work through commands — Sharpness 255 is a real item — but no anvil will ever produce or repair one, so the builder flags it rather than silently clamping.