Skip to content

Datapacks and Tags

Drehverschluss edited this page Nov 6, 2026 · 1 revision

Datapacks and tags

Everything RunelessRPG decides from data can be changed with a datapack. Tags are merged with the bundled ones unless a file sets "replace": true. /reload applies changes; clients get the new tags and costs right away.

Spell tags (cost categories)

Spell tags live in data/<namespace>/tags/spell/ (Spell Engine's spell registry). See Spell costs for the order in which they are checked.

Tag Category Bundled content
#runelessrpg:cost/spells spell empty (spells with rune costs are found automatically)
#runelessrpg:cost/class_skills class skill Rogues & Warriors, Archers, Archers Expansion, Bards RPG, Berserker RPG, Forcemaster RPG, lne_archers, lne_rogues
#runelessrpg:cost/weapon_skills weapon skill Spell Engine weapon skills (rpg_series:cleave, fan_of_knives, flurry, ground_slam, impale, smash, swift_strikes, swipe, thrust, whirlwind), More RPG Library (mrpg_lib:burstcrack, decapitate, puncture)
#runelessrpg:cost/item_abilities item ability Relics (relics_rpgs:*), More Relics (more_relics:*)
#runelessrpg:cost/free free empty

All bundled entries are written with "required": false, so missing mods do no harm. Follow-up effects of other spells (explosions, clouds, helper spells) are deliberately not listed: only what the player casts himself can cost mana.

Example: make Fire Breath a class skill and Heal free.

data/runelessrpg/tags/spell/cost/class_skills.json

{
  "values": [ { "id": "wizards:fire_breath", "required": false } ]
}

data/runelessrpg/tags/spell/cost/free.json

{
  "values": [ "paladins:heal" ]
}

A spell that is in two category tags uses the first match (item abilities, weapon skills, class skills, spells).

Per-spell costs

A datapack can give single spells a fixed base cost. It replaces the tier table and the category multiplier and applies even if the spell's category is switched off; player attributes (Mana Cost, Overcharge) still apply.

  • Path: data/<namespace>/runelessrpg/spell_costs/<any name>.json
  • Format: an object costs with spell id → base cost (a number ≥ 0)
{
  "costs": {
    "wizards:fireball": 6,
    "wizards:frostbolt": 3.5,
    "archers:power_shot": 0
  }
}
  • Files are applied in datapack order; a later pack overrides the value of an earlier one.
  • Entries for spells that are not installed are skipped without a message, so one file can cover optional mods.
  • Invalid entries (negative values, invalid ids) are skipped with a warning in the log.
  • A cost of 0 keeps the spell handled by RunelessRPG (no runes) without costing mana.

Other mod authors can ship such a file with their mod to give their spells a mana cost.

Item tags

Tag Bundled content Used by
#runelessrpg:enchantable/armor #minecraft:enchantable/armor (optional) Armor enchantments
#runelessrpg:enchantable/magic_weapon #spell_power:enchantable/haste (optional) Spell weapon enchantments, spell weapon affixes (and excluded from the Mana Leech affix)

Damage type tags

Tag Bundled content Used by
#runelessrpg:mana_leech/weapon_damage minecraft:player_attack, minecraft:arrow, minecraft:trident Damage types that count for Mana Leech (spell damage in #spell_power:all never does)

The damage type runelessrpg:mana_backlash (Borrowed Power) is added to #minecraft:bypasses_armor, #minecraft:bypasses_enchantments and #minecraft:bypasses_cooldown.

Entity type tags

Tag Bundled content Used by
#runelessrpg:no_mana_leech minecraft:armor_stand Entities that never give mana through leech; add training dummies here

Enchantment tags

All seven enchantments are in #minecraft:non_treasure, see Enchantments.

Other data

Path Content
data/runelessrpg/enchantment/*.json The seven enchantments (vanilla format)
data/runelessrpg/affixes/**/*.json The six Apotheosis affixes, only loaded with Apotheosis, see Apotheosis affixes
data/runelessrpg/damage_type/mana_backlash.json Damage type of the Borrowed Power backlash

Cost report

config/runelessrpg/spell_costs_report.json lists every spell of the spell registry with its resolved category and base cost. It is written when the server starts, after every /reload and with /runelessrpg report.

{
  "note": "Base costs without player attributes (mana_cost, overcharge). Generated by RunelessRPG.",
  "spells": [
    {
      "id": "wizards:arcane_beam",
      "mod": "wizards",
      "type": "ACTIVE",
      "category": "SPELL",
      "source": "RUNE",
      "tier": 3,
      "cast": "CHANNEL",
      "channelTicks": 25,
      "baseCost": 10.0,
      "baseCostPerTick": 0.4
    }
  ]
}
Field Meaning
type ACTIVE or PASSIVE
category NONE, FREE, SPELL, CLASS_SKILL, WEAPON_SKILL, ITEM_ABILITY
source Where the decision came from: TAG, RUNE (rune cost item), DATAPACK, FREE, NONE
cast INSTANT, CASTING, CHANNEL, CHARGED, or PASSIVE
channelTicks Number of channel ticks (0 for other spells)
baseCost Base cost before player attributes
baseCostPerTick Only for channeled spells: base cost per channel tick

Clone this wiki locally