Talents

Talent Trees let players spend Points on different upgrades and unlocks. They can be attached to an archetype, or defined independently and shared between archetypes.

Where Talent Trees Live

There are two ways to define a talent tree:

  1. Inline on an archetype — under a TalentTree: block. The tree's id is the archetype's id, and it's automatically associated with that archetype.
  2. Standalone in talents.yml — placed in any Mythic pack folder. Each top-level key is a tree id. Use AssociatedArchetypes: to link the tree to one or more archetypes.

Both forms accept the same options.

Talent Tree Options

Option Description Default
Display The talent tree's display name tree id / archetype name
Description The talent tree's description (multi-line list)
Icon Icon options for menus
PointType The point type the tree spends required
Menu Menu opened by the openTalentMenu command function
TalentsForgettable Whether players can refund individual talents to recover their points false
AssociatedArchetypes List of archetype ids this tree applies to. Only valid for standalone trees in talents.yml
Talents A map of talents this tree provides required
DefaultInvestmentButton Icon template (lore/tooltip) applied to this tree's talent buttons in menus. Aliases: InvestmentButton, TalentButton, IconTemplate, Tooltip. Tooltip may instead be a plain lore list default talent icon

Talent Options

Option Description Default
Display The talent's display name id
DisplayOrder Display order when auto-filling a menu 0
Description The talent's description (multi-line list)
Icon Icon options. Spell-component talents inherit the spell icon by default
MaxPoints The maximum number of points that can be invested in this talent 1
Cost The point cost per rank. A plain number is a fixed cost; a placeholder (e.g. <caster.level>) is resolved per player. See Dynamic cost 1
RequiredPoints This many points must already be invested elsewhere in the tree before this talent can be taken 0
Parent A single parent talent required for this one. May include a number after the id to require that many points in the parent (HeavyArmor 2)
Parents List form of Parent. Each entry is <talentId> or <talentId> <pointsRequired>. See Parent requirements
ExclusiveWith List of other talents mutually exclusive with this one. If any are taken (any rank), this one cannot be taken
Components List of component blocks defining what this talent actually does []
Modifiers Named rank-scaling values read by the <talent.mod...> placeholder. See Talent Modifiers

Parent requirements

Every entry under Parents must be satisfied before the talent can be taken. Within a single entry, | separates alternatives and only one of them has to be satisfied.

      Cleave:
        Parents:
        - HeavyArmor 3
        - Whirlwind|Rend 2

Cleave here needs 3 points in HeavyArmor, plus either 1 point in Whirlwind or 2 points in Rend.

A single entry may also be written inline, which is the shortest way to express a pure OR:

        Parents: Whirlwind|Rend

Dynamic cost

Cost is resolved as a placeholder against the player, so it can vary between players or change over time.

  • A plain number (e.g. 2) is a fixed cost. A placeholder (e.g. <caster.level>) is resolved per player.
  • It is re-resolved on every invest, divest, and reconcile. Spent totals are recomputed from the current cost, so a cost that changes over time changes future refunds.
  • If investing itself changes the cost (for example a Cost that reads a stat this talent grants through a STATS component), all invested ranks are repriced at the new cost. When that repricing would push the total spent past the player's earned points, the invest is rolled back and fails instead of charging more than the player has. Avoid costs that reference stats the same talent grants.
  • Placeholder and math values require MythicMobs Premium. On non-premium MythicMobs the value degrades to a constant 1 at load. Plain numbers and ranges work on all versions.
  • Avoid random ranges: the cost is re-evaluated on each operation, so invest and divest can disagree.
  • A computed cost below 1 is clamped to 1. Each rank always costs at least one point.

Components

What a talent does is defined by one or more entries in its Components: list. Each entry has a Type: plus type-specific options. A talent without any components loads but has no effect.

Talents:
  HeavyArmor:
    Display: 'Heavy Armor Training'
    MaxPoints: 5
    Components:
      - Type: STATS
        Stats:
          - ARMOR 2
          - MAX_HEALTH 1
Component Description
SPELL Teaches the player a spell. Subsequent points raise the spell level.
STATS Adds stat modifiers to the player.
SPELLSTATS Applies stat modifiers to the caster while they cast the listed spell(s).

SPELL Component

Option Description
Spell The id of the spell to teach
Level The spell level to teach. Placeholder-supported. Falls back to the invested points. Alias: SpellLevel
Cleave:
  Display: 'Cleave'
  MaxPoints: 5
  Components:
    - Type: SPELL
      Spell: warrior_cleave

STATS Component

Option Description
Stats List of stat modifier lines: <STAT_KEY> <amount> [Operation]. Operation defaults to ADDITIVE.
HeavyArmor:
  Display: 'Heavy Armor Training'
  MaxPoints: 5
  Components:
    - Type: STATS
      Stats:
        - ARMOR 2
        - MAX_HEALTH 1
        - DAMAGE 0.05 ADDITIVE_MULTIPLIER

SPELLSTATS Component

While the player casts one of the listed spells, the listed stat modifiers are applied to the caster for that cast, then removed. Requires at least one spell and at least one stat, otherwise the component is skipped.

Option Description
Spell / Skill A single spell id the stats apply to
Spells / Skills List form: multiple spell ids the stats apply to
Stats List of stat modifier lines: <STAT_KEY> <amount> [Operation]. Operation defaults to ADDITIVE.

Amounts scale with the invested rank per operation, unless the amount uses a <talent.mod...> placeholder (then it is used as-is).

Frenzy:
  Display: 'Frenzy'
  MaxPoints: 5
  Components:
    - Type: SPELLSTATS
      Spell: warrior_cleave
      Stats:
        - DAMAGE 0.1 ADDITIVE_MULTIPLIER

Talent Modifiers

Modifiers: defines named values that scale with the talent's current rank. They are read by the <talent.mod.KEY> placeholder (alias <talent.modifier...>) wherever the talent is in context: the talent's Description, STATS and SPELLSTATS stat amounts, the SPELL Level, and talent menu tooltips. Append |<default> for a fallback, e.g. <talent.mod.Damage|0>.

Use the section form, where each key is one modifier:

Option Description Default
Base Value at rank 1 1
PerLevel Amount added per rank above the first 0
Min Lower clamp on the result ~0
Max Upper clamp on the result unbounded

The value at rank n is Base + (n - 1) * PerLevel, clamped to [Min, Max]. By default the result is clamped to at least ~0, so set Min to a negative value if you need negative results.

Cleave:
  Display: 'Cleave'
  MaxPoints: 5
  Modifiers:
    Damage:
      Base: 2
      PerLevel: 1.5
  Description:
    - 'Deals <talent.mod.Damage> bonus damage'

Or the line form, where each entry is <key> <formula> and level is the talent's current rank:

Cleave:
  Display: 'Cleave'
  MaxPoints: 5
  Modifiers:
    - Damage 2+(level*1.5)

The formula may contain spaces, and the usual math functions and operators are available, including ^, min, max, clamp(value,min,max), round, floor, ceil, abs, sqrt, log, and pow. Unlike the section form there is no implicit clamping. A malformed line logs an error on reload and resolves to 0.

Examples

Inline on an archetype

WARRIOR:
  Leveling:
    MinLevel: 1
    MaxLevel: 50
    ExperienceCurve: STANDARD
    ExperienceSource: COMBAT
  PointRewards:
    - Type: TALENT_POINTS
      PerLevel: 1
  TalentTree:
    PointType: TALENT_POINTS
    Menu: warrior_talents
    TalentsForgettable: true
    Talents:
      HeavyArmor:
        Display: 'Heavy Armor'
        MaxPoints: 5
        Components:
          - Type: STATS
            Stats:
              - ARMOR 2
      Cleave:
        Display: 'Cleave'
        MaxPoints: 3
        RequiredPoints: 5
        Parent: HeavyArmor 3
        Components:
          - Type: SPELL
            Spell: warrior_cleave

Standalone in talents.yml

SharedDefenseTree:
  Display: '&cDefense Talents'
  PointType: TALENT_POINTS
  Menu: defense_talents
  AssociatedArchetypes:
    - WARRIOR
    - PALADIN
  Talents:
    Toughness:
      Display: 'Toughness'
      MaxPoints: 5
      Components:
        - Type: STATS
          Stats:
            - MAX_HEALTH 2

Talent Menu Function

Mythic custom menus can use the talent icon function to make icons that allow the player to invest talent points.

warrior_talents:
  Icons:
    TALENT_1:
      Mapping: 1
      Function:
        Type: talent
        Archetype: WARRIOR
        Talent: HeavyArmor

The function type may also be skill_tree. The Archetype option accepts the alias TalentTree; use the tree id to target a standalone tree from talents.yml.

Talent Command Functions

Open Talent Menu

You can make a custom command to open the player's talent tree by using the openTalentMenu command function.

Create a custom command in a Mythic skill file:

command_talent_trees:
  Command:
    Id: talenttree
    Function:
      Type: opentalentmenu
      Group: CLASS
  Skills:
  - sound{s=block.note_block.pling} @self

This will create a /talenttree command that opens the menu for the archetype the player currently has in the CLASS archetype group. The archetype must have a Menu defined on its talent tree for it to work.

To open a specific tree directly, set TalentTree (alias Archetype) to the tree id. When set, that tree's Menu is opened and Group is ignored:

command_shared_defense:
  Command:
    Id: defensetalents
    Function:
      Type: opentalentmenu
      TalentTree: SharedDefenseTree

Talent Tree Hooks

You can run skills whenever any talent is invested or refunded by setting hooks under Configuration.Talents.OnInvest / OnDivest in talent-trees.yml. The skills run with these variables set:

Variable Description
talent The talent's id
talenttree The tree's id
point-type The point type the tree uses
archetype The associated archetype id (when applicable)
talent-ranks The current rank the player has in the talent after the action
talent-point-cost The configured per-rank cost of the talent
Updated Aug 19, 2026