Skill Tree Connections
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.
Properties
material
Minecraft material (e.g., ARROW, FLINT).
customModelData — Int
Custom model ID for the arrowhead.
scale — Double
Visual scale of the head.
layerOffset — Double
Pushes the arrow slightly forward or backward relative to the line (default: 0).
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
"> The condition required to display the arrowhead entity.