SkillTrees are an implicit feature of Mythic and, while they cannot directly invoked like [Metaskills] or otherfeatures, play just as an important of a role.
SkillTrees are **created each time a mechanic is fired by a trigger**, and it is the place where skill scoped [variables] are stored and inside which [metaskills] exist
# SkillTree Structure
```mermaid
stateDiagram-v2
state SkillTree {
SkillScopedVariables
EventData
state MetaSkills {
state MetaSkill {
MetaSkillInfo: MetaSkill Info
state MetaSkillInfo {
Caster
Targers
Trigger
}
state Mechanics {
Mechanic1 Mechanic2 Mechanic3
}
}
}
}
```
## Skill Scoped Variables
Since they exist in the skilltree itself, skill-scoped variables can be accessed by any [metaskill] in the skilltree from the moment they are created, regardless of which [metaskill] created them
## MetaSkills
Each [Metaskill] that is being called in the SkillTree has their own set of data regarding who the caster, target and trigger is:
- The Target is whoever has been targeted or inherited when calling the [Metaskill], and inside the metaskill itself it is the Inherited Target(s)
```yaml
Skills:
-skill{s=ExampleSkill} @PIR{r=10} ~onInteract
```
> The ExampleSkill metaskill that is being executed will have every player in a 10 blocks radius as the inherited target.
- The Trigger is first set as the entity that triggered the SkillTree initially. Each time a new metaskill is called, it inherits the trigger of the calling metaskill, unless it has been overridden by the [sudoskill]'s mechanic `casterastrigger` attribute, in which case the trigger from that metaskill forth will become the caster of the sudoskill mechanic