The /enchant command and max-level enchantments (Sharpness 1000)
7 min read
There are two ways to enchant an item with commands, and they behave differently. The /enchant command applies an enchantment to a held item but enforces vanilla level caps and compatibility rules. The /give command writes enchantment data directly, which is how players create effects like Sharpness 1000 that the enchanting table can never produce.
指南结果
A clear rule for when to use /enchant and when to use /give, plus the exact way to write over-max enchantment levels.
推荐路径
- Decide whether you need a legal enchantment (/enchant) or an over-max one (/give).
- For /enchant, hold the item and run /enchant @p sharpness 5 with the target, enchantment id, and level.
- For over-max levels, switch to the Give module and add the enchantment there instead.
- Set the version so the enchantment data uses the right component or NBT shape.
- Copy the command and confirm the item shows the enchantment in the tooltip.
How the /enchant command works
The syntax is /enchant <targets> <enchantment> [level], for example /enchant @p minecraft:sharpness 5. It applies to the item currently held by the target. Because it validates input, it refuses levels above the vanilla maximum, enchantments the item cannot receive, and pairs that conflict, such as Sharpness with Smite.
This makes /enchant the safe choice for normal, survival-legal gear. If you see "That enchantment cannot be applied", the item, level, or a conflicting enchantment is the reason — not a typo.
- Format: /enchant <target> <enchantment> [level].
- It only affects the item the target is holding.
- It rejects over-max levels and incompatible enchantments.
Writing over-max levels with /give
Unlike /enchant, the /give command does not validate enchantment levels, so it can write any number. On Java 1.20.5+ a Sharpness 1000 sword is /give @p diamond_sword[enchantments={levels:{sharpness:1000}}], and on 1.21.5+ it is /give @p diamond_sword[enchantments={sharpness:1000}].
On Java 1.20.4 and older the same item uses NBT: /give @p diamond_sword{Enchantments:[{id:"sharpness",lvl:1000}]}. These extreme levels are a Java-only trick; Bedrock will not accept a level-1000 enchantment through commands.
- Use /give, not /enchant, for any level above the vanilla cap.
- 1.20.5+ uses the enchantments component; 1.20.4 and older use the Enchantments NBT list.
- Over-max enchantments are Java-only.
Combine enchantments and hide them
A give item can carry many enchantments at once, including combinations the anvil would never allow. Add them as separate entries in the enchantments component or NBT list.
If you want the shimmer without a visible enchantment list, 1.20.5+ can hide the tooltip lines or force the glint with enchantment_glint_override=true. This is handy for admin tools and prize items that should look special without spelling out the stats.
Ship the copied artifact
Use this guide to produce the artifact a player or map maker will actually run: a copied command, ordered Project pack, or datapack resource. The final review should happen on that copied output, not only on the editable builder state.
When the workflow is version-sensitive, label the target version beside the command. When it uses selectors, scoreboards, bossbars, tags, loot tables, or project order, test those dependencies in a clean world before publishing the setup.
- Copy from Output for one command and from Project for ordered packs.
- Keep Java, Bedrock, and snapshot variants separate.
- Test destructive selectors with harmless output first.
- Update related presets when the guide becomes the canonical workflow.
相关指南与预设
常见问题
What is the difference between /enchant and /give for enchanting?
/enchant applies to a held item and enforces vanilla limits and compatibility. /give writes enchantment data directly, so it can exceed the level cap and combine enchantments that normally conflict.
How do I get Sharpness 1000?
Use /give with the enchantment data set to level 1000, for example /give @p diamond_sword[enchantments={levels:{sharpness:1000}}] on 1.20.5-1.21.4. It is a Java-only trick and cannot be done with /enchant.
Why does /enchant say the enchantment cannot be applied?
The level is above the vanilla maximum, the item cannot hold that enchantment, or it conflicts with one already present. Lower the level, change the item, or use /give to bypass the check.
Can I put multiple enchantments on one item?
Yes. Add each enchantment as a separate entry in the enchantments component (1.20.5+) or the Enchantments NBT list (1.20.4 and older). /give can combine enchantments an anvil would refuse.
Does over-leveling work on Bedrock?
No. Extreme levels such as Sharpness 1000 are a Java Edition behavior. Bedrock command enchanting does not accept those levels.
When should this guide become a Project pack?
Use Project when the workflow needs more than one command, has setup and cleanup order, or must be edited again after testing. One-off commands can stay in Output.