Skip to content
Lyof429 edited this page Oct 10, 2025 · 7 revisions

< Back to homepage


Staffs are a new tiered tool type added to the game. They serve as a middle ground between full on melee (swords) and ranged (bows and crossbows) combat, by shooting an instantaneous, gravityless ray inflicting magic damage.

They have a limited range and the higher tier ones can pierce through multiple foes, but go on a cooldown after they are used.

Depending on the configuration used, staffs can be set to require and use experience when shot. This can be enabled on a per staff basis or for all of them.

Sortilege adds several enchantments that can be applied to staffs. Look at this page to learn more.

Cosmetic

Staffs can be died in a crafting table, just like leather armor. Dyed staffs will display a small colored socket on their handle, and their beam will be colored.

This color overrides any color enchantments would provide.

Staffs tagged as sortilege:staffs/no_dye_overlay will not have their texture altered.

Overcharge

As said above, staffs consume durability and/or experience when used. As a player, if you do not want to pay this way, you can use a feature called overcharging.

In your inventory, right clicking with lapis lazuli on a staff (like how you would put items in a bundle) will add charges to it. When a staff is used, if it has any charge left, it will first consume it, negating other types of costs.

  • equipment.staffs.overcharge.max_overcharge

Positive integer. How many charges any staff can hold at once. Further overcharging will be prevented.

Set to 0 to disable overcharging as a whole.

  • equipment.staffs.overcharge.bar_color

Hexadecimal formatted number, representing an rgb color. Which color the bar showing overcharge should be.

This bar is visible below the durability bar.

  • equipment.staffs.overcharge.free_durability

Boolean. If true, overcharged staffs will not be damaged on use.

  • equipment.staffs.overcharge.free_experience

Boolean. If true, overcharged staffs will not consume nor require xp to use.

By setting this to true and giving staffs a ridiculously high experience cost, you can get overcharging to act as a mana bar, since staffs won't be usable without it.

  • equipment.staffs.overcharge.ingredients

Map of item ids to integers. Items whose id is in this will be usable to overcharge staffs, and the associated number is how much overcharge they give.

Configuration

1. Config file

With the default configs, you will have access to staffs made of wood, stone, iron, gold, diamond and netherite. You can add or remove any staff by using the configuration file, with this format (such an object must be added to the equipment.staffs.entries * option):

{
  // Main key of the staff. Will be used as its item id in game
  // Must be a valid minecraft id (only lowercase letters and _). Be wary of duplicate entries
  "example_staff": {
    // Sets the repair material and the durability if not set
    // Must be one of WOOD, STONE, IRON, GOLD, DIAMOND, NETHERITE
    "tier": "GOLD",
    // Staff's enchantability on the Enchanting Table. Defaults to the tier's
    "enchantability": 22,
    // Half hearts of damage the staff deals
    "damage": 5,
    // Maximal number of targets the staff can pierce through
    "pierce": 2,
    // Range of the staff, in half blocks
    "range": 10,
    // Durability of the staff. Defaults to tier's
    "durability": 512,
    // Item to be used to repair the staff. Defaults to the tier's
    "repair_item": "minecraft:obsidian",
    // Amount of ticks to wait for between each shots
    "cooldown": 20,
    // Amount of ticks of casting to shoot. Defaults to default_charge_time
    "charge_time": 1,
    // Amount of xp points needed to shoot. Defaults to default_xp_cost
    "xp_cost": 0,
    // Custom RGB colors to be used for the staff's beam. If unset, the beam will be white unless the staff has enchantments
    // Must be a list of triples, with values ranging from 0 to 1
    "beam_color": [
      [0.5, 0, 0],
      [0, 0.5, 0],
      [0, 0, 0.5]
    ],
    // Whether the staff is resistant to fire like Netherite items. Defaults to false
    "fire_res": true,
    // Mod needed to be loaded for the staff to appear in game. Defaults to minecraft
    "dependency": "nah",
    // Commands to be run when using the staff
    "on_shoot": "/give @s minecraft:lapis_lazuli",
    "on_hit_self": "/effect give @s minecraft:regeneration",
    "on_hit_target": "/tp @s ~ ~2 ~"
  }
}

This allows you to add, edit or remove any staffs you want. Staffs will be added to creative tabs in the same order they are put in this list. Please feel absolutely free to obliterate the default staffs to make your own. They are how I personally play, but I am aware some people would want staffs made of amethyst, lapis and emerald, for instance.

All the entries are optional, and have a default value if they are not set.

"on_shoot" is called when the staff is used, no matter if it hits or not "on_hit_self" is called everytime an entity is hit, from the user "on_hit_target" is called everytime an entity is hit, from the hit entity


Here is an example of equipment.staff.entries keeping the netherite staff, changing the beam color of the diamond one to be blue, and adding one made of amethyst:

"entries": [
  {
    "amethyst_staff": {
      "tier": "IRON",
      "damage": 5,
      "pierce": 2,
      "range": 10,
      "cooldown": 20
    }
  },
  {
    "diamond_staff": {
      "tier": "DIAMOND",
      "damage": 5,
      "pierce": 2,
      "range": 12,
      "cooldown": 15,
      "beam_color": [
        [0.5, 0.5, 1]
      ],
    }
  },
  {
    "netherite_staff": {
      "tier": "NETHERITE",
      "damage": 6,
      "pierce": 3,
      "range": 16,
      "fire_resistant": true,
      "cooldown": 20
    }
  }
]

2. Assets

From version 1.7 and upwards, you only need to provide Sortilege with the texture of your staffs. Models and translations will be handled automatically, but you can make custom ones if you want your staffs to look or read differently from the defaults.


To give your staff a texture, create a new resource pack, and then add the following file at the specified location. Replace instances of example_staff with your staff's id (as defined in the configs):

assets/sortilege/textures/item/example_staff.png

Here goes the texture for your staff. It can be any size you want, but should stay a power of 2. Minecraft uses 16x16 for its textures, so I recommend using the same size.

You are allowed to take the texture of one of the base staffs and edit it, including in a public modpack, as long as you do not claim the texture your own.


Optional:

assets/sortilege/models/item/example_staff.json

Here goes the item model. The following will make it look the same way as the default staffs, and is what is used if you do not make such a file:

{
  "parent": "item/handheld",
  "textures": {
    "layer0": "sortilege:item/example_staff"
  }
}

assets/sortilege/lang/en_us.json

In case you want to give your staff a custom name. If not precised, this will simply default to the staff's id, but properly capitalized.

{
  "item.sortilege.example_staff": "Example Staff"
}

If you have several staffs, all the translations go in the same file. Just add more entries like the one above.

3. Data

This is required only if you want to make your staff obtainable in survival. Any implementation goes, so do whatever you prefer for this one. Here is a basic recipe like the ones used by the default staffs, with obsidian as the material.

data/sortilege/recipes/example_staff.json

{
  "type": "minecraft:crafting_shaped",
  "group": "staff/example",
  "pattern": [
    " SM",
    " SS",
    "M  "
  ],
  "key": {
    "M": {
      "item": "minecraft:obsidian"
    },
    "S": {
      "item": "minecraft:stick"
    }
  },
  "result": {
    "item": "sortilege:example_staff"
  }
}

Clone this wiki locally