Project icon Patchly
Patchly

The Perfect Pure Patching Plugin

55 downloads
10 days agoUpdated June 7 at 03:53 AM
Game MechanicsTechnologyLibraryOptimizationUtility

Quality Override

Updated Jun 2, 2026

Change Block or Armor Quality

Every item asset carries a top-level "Quality" string that sets its rarity tier and name color. Bumping it is the simplest kind of patch: a single scalar replace.

Goal

Promote the iron sword and the iron helmet from Uncommon to Epic so they show the Epic rarity color, without touching their model, recipe, stats, or interactions.

The Asset

Two files, the same one-line change.

Server/Item/Items/Weapon/Sword/Weapon_Sword_Iron.json

{
  "Parent": "Template_Weapon_Sword",
  "TranslationProperties": {
    "Name": "server.items.Weapon_Sword_Iron.name"
  },
  "Model": "Items/Weapons/Sword/Iron.blockymodel",
  "Texture": "Items/Weapons/Sword/Iron_Texture.png",
  "Quality": "Uncommon", // the ONLY thing you wanted to change (-> "Epic")
  "Icon": "Icons/ItemsGenerated/Weapon_Sword_Iron.png",
  "ItemLevel": 20,
  "Recipe": {
    "TimeSeconds": 3.5,
    "KnowledgeRequired": false,
    "Input": [
      {
        "ItemId": "Ingredient_Bar_Iron",
        "Quantity": 6
      },
      {
        "ItemId": "Ingredient_Leather_Light",
        "Quantity": 3
      },
      {
        "ItemId": "Ingredient_Fabric_Scrap_Linen",
        "Quantity": 3
      }
    ],
    "BenchRequirement": [
      {
        "Type": "Crafting",
        "Categories": [
          "Weapon_Sword"
        ],
        "Id": "Weapon_Bench"
      }
    ]
  },
  "InteractionVars": {
    "Swing_Left_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Primary_Swing_Left_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 10
            }
          },
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Swing_Right_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Primary_Swing_Right_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 10
            }
          },
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Swing_Down_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Primary_Swing_Down_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 18
            }
          },
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Thrust_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Primary_Thrust_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 26
            }
          },
          "EntityStatsOnHit": [
            {
              "EntityStatId": "SignatureEnergy",
              "Amount": 3
            }
          ],
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Vortexstrike_Spin_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Signature_Vortexstrike_Spin_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 19
            }
          },
          "EntityStatsOnHit": [],
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Vortexstrike_Stab_Damage": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Signature_Vortexstrike_Stab_Damage",
          "DamageCalculator": {
            "BaseDamage": {
              "Physical": 56
            }
          },
          "EntityStatsOnHit": [],
          "DamageEffects": {
            "WorldSoundEventId": "SFX_Sword_T2_Impact",
            "LocalSoundEventId": "SFX_Sword_T2_Impact"
          }
        }
      ]
    },
    "Guard_Wield": {
      "Interactions": [
        {
          "Parent": "Weapon_Sword_Secondary_Guard_Wield",
          "StaminaCost": {
            "Value": 10,
            "CostType": "Damage"
          }
        }
      ]
    }
  },
  "MaxDurability": 120,
  "DurabilityLossOnHit": 0.21
}

Server/Item/Items/Armor/Iron/Armor_Iron_Head.json

{
  "TranslationProperties": {
    "Name": "server.items.Armor_Iron_Head.name"
  },
  "Quality": "Uncommon", // the ONLY thing you wanted to change (-> "Epic")
  "ItemLevel": 20,
  "PlayerAnimationsId": "Block",
  "ItemSoundSetId": "ISS_Armor_Heavy",
  "Categories": [
    "Items.Armors"
  ],
  "Icon": "Icons/ItemsGenerated/Armor_Iron_Head.png",
  "IconProperties": {
    "Rotation": [
      22.5,
      45,
      22.5
    ],
    "Scale": 0.5,
    "Translation": [
      0,
      -15
    ]
  },
  "Model": "Items/Armors/Iron/Head.blockymodel",
  "Texture": "Items/Armors/Iron/Head_Texture.png",
  "Recipe": {
    "Input": [
      {
        "ItemId": "Ingredient_Bar_Iron",
        "Quantity": 9
      },
      {
        "ItemId": "Ingredient_Leather_Light",
        "Quantity": 4
      },
      {
        "ItemId": "Ingredient_Fabric_Scrap_Linen",
        "Quantity": 3
      }
    ],
    "BenchRequirement": [
      {
        "Id": "Armor_Bench",
        "Type": "Crafting",
        "Categories": [
          "Armor_Head"
        ]
      }
    ],
    "KnowledgeRequired": false,
    "TimeSeconds": 3
  },
  "Interactions": {
    "Primary": {
      "Interactions": [
        {
          "Type": "EquipItem"
        }
      ]
    },
    "Secondary": {
      "Interactions": [
        {
          "Type": "EquipItem"
        }
      ]
    }
  },
  "Armor": {
    "ArmorSlot": "Head",
    "BaseDamageResistance": 0,
    "CosmeticsToHide": [
      "EarAccessory",
      "Ear",
      "Haircut",
      "HeadAccessory"
    ],
    "DamageResistance": {
      "Physical": [
        {
          "Amount": 0.05,
          "CalculationType": "Multiplicative"
        }
      ],
      "Projectile": [
        {
          "Amount": 0.05,
          "CalculationType": "Multiplicative"
        }
      ]
    },
    "StatModifiers": {
      "Health": [
        {
          "Amount": 9,
          "CalculationType": "Additive"
        }
      ]
    }
  },
  "MaxDurability": 100,
  "DurabilityLossOnHit": 0.5,
  "Tags": {
    "Type": [
      "Armor"
    ],
    "Family": [
      "Iron"
    ]
  }
}

The patch

Two patches, one per target. Each path mirrors the target with .json swapped for .patch.

Server/Item/Items/Weapon/Sword/Weapon_Sword_Iron.patch:

{
  "Quality": "Epic"
}

Server/Item/Items/Armor/Iron/Armor_Iron_Head.patch:

{
  "Quality": "Epic"
}

After

  • Quality is now "Epic" on both items.
  • Everything else on each item is untouched: model, recipe, stats, and interactions all survive, because the merge only sees the one key you wrote.

Notes

  • Quality is a plain string. Use one of the values that stock assets use: Common, Uncommon, Rare, Epic, Legendary, Junk, Tool, Template, Technical, Developer, Debug.
  • Placeable blocks are item assets too and carry "Quality" at the same top level, so the exact same pattern works on a block item.
  • Because this is a scalar replace, there is no + (array append) or null (delete) involved. See Removing-Values for those.
  • If two packs both set Quality on the same item, the one with the higher $Priority wins. See the syntax reference and the Pack Developers guide.
  • This is actually the reason why I added Patchly. I had to override the quality on ~20 armor pieces and gave up. So I made patchly instead
Powered byHytaleModding