Updated:

1. A stick that looks like a sword

/give @s minecraft:stick[item_model="minecraft:diamond_sword"]

It looks like a diamond sword but is still a stick, with the same damage and durability. Great for props and puzzle items.

2. A custom coin

/give @s minecraft:paper[item_model="minecraft:emerald",custom_name="Village Coin"]

Paper that looks like an emerald never mixes with real emeralds, so it works as minigame money.

3. Change look and stats

/give @s minecraft:diamond_sword[item_model="minecraft:blaze_rod",custom_name="Fire Wand",enchantments={fire_aspect:2}]

Separate components with commas inside the same [ ].

4. custom_model_data for resource packs

/give @s minecraft:stick[custom_model_data={floats:[1]}]

This is a marker a resource pack can match to swap the model. Without a pack the item looks normal. Use {floats:[1]} on 1.21.4+, custom_model_data=1 on 1.20.5 to 1.21.3 and {CustomModelData:1} on 1.20.4 and older (NBT vs components).

5. Look like a block

/give @s minecraft:stick[item_model="minecraft:tnt"]

A block ID gives the item a block icon. Hand out a stick that looks like TNT as a bomb and run the effect with commands. It cannot be placed, so nobody builds with it by mistake.

6. Change the item in your hand

/item modify entity @s weapon.mainhand {function:"minecraft:set_components",components:{"minecraft:item_model":"minecraft:golden_apple"}}

This changes only the look of the item you hold. Name and enchantments stay. Run it again with the original ID to undo.

Version notes

item_model needs Java 1.21.2+. The plain custom_name="Village Coin" form needs 1.21.5+; on 1.21.2 to 1.21.4 write custom_name='"Village Coin"'.

Troubleshooting

Check your command

The Command Error Doctor checks common syntax mistakes in your browser.