Skip to main content
Advanced Menus now features a powerful Skill Tree engine. This system allows you to create hierarchical menus where nodes are automatically connected by lines (rods) and directional arrows.

Automatic Linking

Instead of manually defining every link in a links array, you can now use the parent property on any element.
parent
String
The unique ID of another element (Button or Decoration) to link from. A line will automatically be drawn from the parent to this element.
{
  "id": "skill_node_2",
  "parent": "skill_node_1",
  ...
}

Advanced Connection Styling

When defining links (either via the global links array or through the style field of an auto-link template), you have access to new precision controls.

Edge Snapping & Margins

To prevent lines from overlapping your icons or text, the engine calculates the exact intersection with the node’s edge.
margin
Double
The empty space (in menu units) between the node edge and the start/end of the link. Higher values create a “small gap” effect.

Directional Arrowheads

You can add stylized arrowheads to indicate the flow of a skill tree.
arrowhead
Object
Configuration for the arrowhead display.

3D Orientation

All links and arrowheads are rendered in a Flat-to-Menu orientation. This means they are aligned with the menu plane (X-Y) rather than constantly facing the player’s camera. This ensures that perspective shifts during movement look professional and integrated.

Conditional Visibility

You can hide arrowheads specifically based on criteria (e.g., only show the arrow if the parent is unlocked).
arrowCriteria
Ref<FactEntry>
The condition required to display the arrowhead entity.