SmitherZ

SmitherZ

3.5k Downloads

SmitherZ

SmitherZ is a minecraft mod which adds the ability to upgrade armor, tools and weapons with gems.

Installation

SmitherZ is a mod built for the Fabric Loader. It requires Fabric API and Cloth Config API to be installed separately; all other dependencies are installed with the mod.

License

SmitherZ is licensed under MIT.

Datapack

Gems can be created, gem drops can be set (mainly for RpgDifficulty compat) and item socket count can be set (mainly for TieredZ compat).
If you don't know how to create a datapack check out Data Pack Wiki website and try to create your first one for the vanilla game.
If you know how to create one, the folder path has to be data\modid\FOLDER\YOURFILE.json.
The FOLDER is gems for new gems, gem_drops for adding gem drops and gem_upgrades for item socket count.
For creating new gems you have to put the datapack under .minecraft\global_packs\required_datapacks\YOURDATAPACK.
If you created new gems via the global datapack, you will want to texture and translate them by creating a resource pack. To load resource packs globally, it will require a global datapack loader.

Example for a new gem json:

{
    "new_gem_name": {
        "link_chance": 0.1, // chance to link gem to item
        "break_chance": 0.1, // chance to break whole item on link fail
        "unlink_chance": 0.1, // chance to unlink gem
        "attributes": [
            {
                "type": "generic.max_health",
                "modifier": {
                    "operation": "ADD_VALUE",
                    "amount": 2
                }
            }
        ],
        "tag": "minecraft:swords"
    }
}

Example for a gem drop json:

{
    "rarity_0": {
        "items": [
            "smitherz:strength_1_gem",
            "smitherz:strength_2_gem"
        ],
        "drop_chance": 0.01, // chance for droping a random item of the item list
        "mob_types": [
            "minecraft:spider" // only mobentity types
        ],
        "rarity_group": 0, // for general rarity
        "difficulty_multiplier": 1.1 // rpg difficulty compat
    }
}

Example for a socket count json:

{
    "2": [ // socket count
        "tiered:common_armor_1", // nbt string of an item
        "tiered:common_armor_2",
    ]
}

Commands

/smither slots playername add integer

  • Increase the gem slot count of the mainhand item by the integer value

/smither slots playername remove integer

  • Decrease the gem slot count of the mainhand item by the integer value

/smither slots playername set integer

  • Set the gem slot count of the mainhand item by the integer value. This specific command clears all linked gems of the item.

/smither gems playername add item

  • Adds the gem to the mainhand item if possible

/smither gems playername remove item

  • Removes the gem from the mainhand item if possible