How do you enchant and name items with /give using command blocks?


Add this to your command

{display:{Name:"Test Name"},ench:[{id:19,lvl:1}]}

It will give you a Item with the name "Test Name" with knockback 1.

You use this:


like that for enchantments. For names, use this:

display:{Name="Name of item"}

Remember to use curly brackets and colons inbetweeen.

If you just need the template for whatever reason, here it is pieced together:

/give @p (item id or minecraft:name) 1 0 {display:{Name:"(Name of item)"}, ench:[{id:(enchant id),lvl(1-sideways 8)},[{id:(enchant id),lvl(1-sideways 8)}, repeat enchant block...]}
  • Remember to use colons? – Bergi Sep 29 '14 at 0:53
  • Enchantment 19 is Knockback, Sharpness is 16. Although I think minecraft:sharpness also works, if you don't want to remember numbers. – MrLemon Sep 29 '14 at 21:28
  • In the second text, there is no closing bracket for the ( – Mystery Oct 26 '15 at 11:10
  • I think you mean: display:{Name:"Name of item"} Note the colon. – JSideris Jan 16 '17 at 15:45
  • As of 1.13, ench is called Enchantments and ids are now strings instead of numbers. – pppery Aug 10 '18 at 0:36

To add on to 3dsboy08's answer, you can find a list that tells you which id corresponds to which enchantment here. Also, in order to add multiple enchantments at once, you need to use the following syntax inside the "ench" part:


As a "full" example, the following command would give you a stick called "Irritating Stick" with Sharpness V and Knockback II:

/give excalibur223 stick 1 0 {display:{Name:"Irritating Stick"},ench:[{id:16,lvl:5},{id:19,lvl:2}]}

If you are interested, you can find a table of other NBT tags you can add to items here.


Updated answer as of Java 1.16:

/give @p minecraft:bow{display:Name:{'[{"text":"chuck mc norris"}]'}}


/give @p minecraft:bow{display:{Name:"{\"text\":\"chuck mc norris\"}"}}

Mojang updated some of their JSON sequencing for the give command, and now the old name argument doesn't work like it used to. This is the updated command, giving you a bow whose name is "chuck mc norris".

  • In 1.14+, you can actually use single quoted strings instead of double quoted strings. So instead of: Name:"{\"text\":\"This is ExpertCoder14's computer\"}" try this instead: Name:'[{"text":"This is ExpertCoder14\'s computer."}]' – ExpertCoder14 Jul 28 '20 at 17:42
  • hmm, so strings don't work the same way in minecraft as in programming (i.e. java)? that's interesting. I had never noticed because I'm used to using double quotes. – 12 rhombi in grid w no corners Jul 28 '20 at 17:45
  • Yes, they've changed it to be more like Python, accepting both single and double quoted strings. With all NBT JSON text string tags, they are now converted into single quoted ' format, no matter how you type them. So typing Name:"\"hello world\"" would automatically be converted into Name:'"hello world"'. – ExpertCoder14 Jul 28 '20 at 17:47
  • I don't really see why though, the answer would remain completely unchanged in that value is not added with the edit. – 12 rhombi in grid w no corners Jul 28 '20 at 20:17
  • ah i see, i'll put that as the first option and the original as the second. i didn't realize that it replaces the backslashes, sorry. big brainfart. – 12 rhombi in grid w no corners Jul 28 '20 at 20:36

The following command would give the nearest player a bow called Chuck Norris' Gun with the enchantments 48 (Power), 51 (Infinity), 50 (Flame) and 34 (Unbreaking). These enchantments are all level 10000.

/give @p bow 1 0 {display:{Name:"Chuck Norris' Gun"},ench:[{id:48,lvl:10000},{id:51,lvl:10000},{id:50,lvl:10000},{id:34,lvl:10000}]}
  • Edited the question to explain the command. – nelson2tm Apr 13 '16 at 15:42

This command would give the nearest player a book called Death Note with the enchantment 16 (Sharpness) level 100.

/give @p book 1 0 {display:{Name:"Death Note"},ench:[{id:16,lvl:100}]}
  • Edited the question to explain the command. – nelson2tm Apr 13 '16 at 15:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.