Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ProfessorFichte/More-RPG-Classes/llms.txt

Use this file to discover all available pages before exploring further.

More RPG Library adds seven new spell schools that extend the Spell Engine framework, organized into three archetypes: Magic, Ranged, and Melee.

Magic Spell Schools

These schools use the standard magic archetype and scale with spell power attributes.

Earth Magic

Earth-based spells dealing crushing and stone damage.Color: 0xbd8b00 (Brown/Gold)Identifier: spell_power:earth

Water Magic

Water-based spells with fluid mechanics.Color: 0x4dd9ff (Cyan)Identifier: spell_power:water

Air Magic

Air and wind-based spells with mobility focus.Color: 0xd4e3fe (Light Blue)Identifier: spell_power:air

Nature Magic

Nature-based spells with healing and growth themes.Color: 0x43bf4b (Green)Identifier: spell_power:nature

Registration Code

public static final SpellSchool EARTH = SpellSchools.register(
    SpellSchools.createMagic("earth", 0xbd8b00)
);
public static final SpellSchool WATER = SpellSchools.register(
    SpellSchools.createMagic("water", 0x4dd9ff)
);
public static final SpellSchool AIR = SpellSchools.register(
    SpellSchools.createMagic("air", 0xd4e3fe)
);
public static final SpellSchool NATURE = SpellSchools.register(
    SpellSchools.createMagic("nature", 0x43bf4b)
);

Ranged Spell Schools

Ranged schools combine archery mechanics with elemental damage. They scale with both ranged damage and their corresponding magic school power.

Frost Ranged

Frost-infused ranged attacks combining archery and ice magic.Color: 0xccffff (Ice Blue)Damage Type: minecraft:arrowPower Scaling: Ranged Damage + Frost Power

Fire Ranged

Fire-infused ranged attacks combining archery and fire magic.Color: 0xff3300 (Flame Red)Damage Type: minecraft:arrowPower Scaling: Ranged Damage + Fire Power
Ranged schools integrate with the Ranged Weapon API mod when available, otherwise they fall back to generic attack damage.

Power Calculation Example

FROST_RANGED.addSource(SpellSchool.Trait.POWER, SpellSchool.Apply.ADD, query -> {
    var second_power = query.entity().getAttributeValue(SpellSchools.FROST.attributeEntry);
    return query.entity().getAttributeValue(rangedDamageAttribute()) + second_power;
});

Melee Spell School

Rage Melee

Rage-based melee combat that increases in power as health decreases.Color: 0xb3b3b3 (Gray)Damage Type: minecraft:player_attackPower Formula: Base Attack Damage + ((Rage Attribute - 100) / 10)

Rage Scaling Mechanic

The Rage Melee school gains additional power based on the Rage Modifier attribute:
RAGE_MELEE.addSource(SpellSchool.Trait.POWER, SpellSchool.Apply.ADD, query -> {
    return query.entity().getAttributeValue(EntityAttributes.GENERIC_ATTACK_DAMAGE) +
            ((query.entity().getAttributeValue(MRPGCEntityAttributes.RAGE_MODIFIER)-100) / 10);
});
The Rage system is designed for berserker-style gameplay where players become more dangerous as they take damage. See Entity Attributes for more details.

Critical Strike Integration

When the Critical Strike mod is installed, all ranged and melee schools automatically gain critical strike support:
  • Critical Chance - Scales from the Critical Strike Chance attribute
  • Critical Damage - Scales from the Critical Strike Damage attribute
if (FabricLoader.getInstance().isModLoaded("critical_strike")) {
    FROST_RANGED.addSource(SpellSchool.Trait.CRIT_CHANCE, SpellSchool.Apply.ADD, query ->  {
        var value = query.entity().getAttributeValue(CriticalStrikeAttributes.CHANCE.attributeEntry);
        return (double) CriticalStrikeAttributes.CHANCE.asChance(value);
    });
    // ... similar configuration for other schools
}

Usage in Spells

Reference these schools in your spell JSON files:
{
  "school": "spell_power:earth",
  "cost": 30,
  "cast": {
    "duration": 20
  },
  "impact": [
    {
      "action": "DAMAGE",
      "damage": 10
    }
  ]
}
All spell schools are registered in MoreSpellSchools.java:117 and are available immediately after mod initialization.

Build docs developers (and LLMs) love