Skip to main content
replaced http://minecraft.gamepedia.com/ with https://minecraft.wiki/w/
Source Link

Default items have no data of which to detect in order to separate them from custom items. Unfortunately this greatly restricts methods of replacing default items since, for example, /clear would not be able to differentiate your custom torches with default ones.

One work-around is to detect each individual slot in the player's inventory and use /replaceitem, but that requires 64 command blocks for each of the 36 slots just for detection alone.

As a quick run-down:

  1. Find 1 torch in slot 0.

     /scoreboard players set @a TorchSlot0 1 {Inventory:[{id:"minecraft:torch",Count:1b,Slot:0b}]}
    
  2. Replace that torch with 1 custom torch.

     /replaceitem entity @a[score_TorchSlot0_min=1,score_TorchSlot0=1] slot.container.0 minecraft:torch 1 0 {ench:[{id:20s,lvl:1s}]}
    

Which would need to be repeated for every number of torches possible in every slot possible.


If using 1.9, you can customize the loot tablesloot tables so that the torches that are at least found in chests will have the desired enchantment.

For example, the chests/abandoned_mineshaft.json loot table has the following entry:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        }
    ],
    "weight": 15
}

If you want it to be enchanted with fire aspect, you'd add the enchant_randomly function while only specifying minecraft:fire_aspect:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        },
        {
            "function": "enchant_randomly",
            "enchantments":[
                "minecraft:fire_aspect"
            ]
        }
    ],
    "weight": 15
}

Default items have no data of which to detect in order to separate them from custom items. Unfortunately this greatly restricts methods of replacing default items since, for example, /clear would not be able to differentiate your custom torches with default ones.

One work-around is to detect each individual slot in the player's inventory and use /replaceitem, but that requires 64 command blocks for each of the 36 slots just for detection alone.

As a quick run-down:

  1. Find 1 torch in slot 0.

     /scoreboard players set @a TorchSlot0 1 {Inventory:[{id:"minecraft:torch",Count:1b,Slot:0b}]}
    
  2. Replace that torch with 1 custom torch.

     /replaceitem entity @a[score_TorchSlot0_min=1,score_TorchSlot0=1] slot.container.0 minecraft:torch 1 0 {ench:[{id:20s,lvl:1s}]}
    

Which would need to be repeated for every number of torches possible in every slot possible.


If using 1.9, you can customize the loot tables so that the torches that are at least found in chests will have the desired enchantment.

For example, the chests/abandoned_mineshaft.json loot table has the following entry:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        }
    ],
    "weight": 15
}

If you want it to be enchanted with fire aspect, you'd add the enchant_randomly function while only specifying minecraft:fire_aspect:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        },
        {
            "function": "enchant_randomly",
            "enchantments":[
                "minecraft:fire_aspect"
            ]
        }
    ],
    "weight": 15
}

Default items have no data of which to detect in order to separate them from custom items. Unfortunately this greatly restricts methods of replacing default items since, for example, /clear would not be able to differentiate your custom torches with default ones.

One work-around is to detect each individual slot in the player's inventory and use /replaceitem, but that requires 64 command blocks for each of the 36 slots just for detection alone.

As a quick run-down:

  1. Find 1 torch in slot 0.

     /scoreboard players set @a TorchSlot0 1 {Inventory:[{id:"minecraft:torch",Count:1b,Slot:0b}]}
    
  2. Replace that torch with 1 custom torch.

     /replaceitem entity @a[score_TorchSlot0_min=1,score_TorchSlot0=1] slot.container.0 minecraft:torch 1 0 {ench:[{id:20s,lvl:1s}]}
    

Which would need to be repeated for every number of torches possible in every slot possible.


If using 1.9, you can customize the loot tables so that the torches that are at least found in chests will have the desired enchantment.

For example, the chests/abandoned_mineshaft.json loot table has the following entry:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        }
    ],
    "weight": 15
}

If you want it to be enchanted with fire aspect, you'd add the enchant_randomly function while only specifying minecraft:fire_aspect:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        },
        {
            "function": "enchant_randomly",
            "enchantments":[
                "minecraft:fire_aspect"
            ]
        }
    ],
    "weight": 15
}
Source Link
Skylinerw
  • 12.7k
  • 1
  • 23
  • 36

Default items have no data of which to detect in order to separate them from custom items. Unfortunately this greatly restricts methods of replacing default items since, for example, /clear would not be able to differentiate your custom torches with default ones.

One work-around is to detect each individual slot in the player's inventory and use /replaceitem, but that requires 64 command blocks for each of the 36 slots just for detection alone.

As a quick run-down:

  1. Find 1 torch in slot 0.

     /scoreboard players set @a TorchSlot0 1 {Inventory:[{id:"minecraft:torch",Count:1b,Slot:0b}]}
    
  2. Replace that torch with 1 custom torch.

     /replaceitem entity @a[score_TorchSlot0_min=1,score_TorchSlot0=1] slot.container.0 minecraft:torch 1 0 {ench:[{id:20s,lvl:1s}]}
    

Which would need to be repeated for every number of torches possible in every slot possible.


If using 1.9, you can customize the loot tables so that the torches that are at least found in chests will have the desired enchantment.

For example, the chests/abandoned_mineshaft.json loot table has the following entry:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        }
    ],
    "weight": 15
}

If you want it to be enchanted with fire aspect, you'd add the enchant_randomly function while only specifying minecraft:fire_aspect:

{
    "type": "item",
    "name": "minecraft:torch",
    "functions": [
        {
            "function": "set_count",
            "count": {
                "min": 1,
                "max": 16
            }
        },
        {
            "function": "enchant_randomly",
            "enchantments":[
                "minecraft:fire_aspect"
            ]
        }
    ],
    "weight": 15
}