Skilltree Willow
Based on game build 714014 | Last updated: 2026-03-07
Overview
skilltree_willow.lua is a data-defining module that constructs the Willow character's skill tree via the BuildSkillsData function. It does not implement a component or instantiate an entity directly; instead, it returns a structured table (SKILLS and ORDERS) consumed by the skill tree system. Each skill includes metadata (title, description, icon), position, groupings, activation tags (onactivate), conditional locking logic (lock_open), and connection relationships (connects, locks). Activation effects modify the player's tags and interact with damagetyperesist and damagetypebonus components to apply resistances and bonuses for shadow or lunar alignment.
Usage example
local BuildSkillsData = require("prefabs/skilltree_willow")
local skilltree_data = BuildSkillsData(SkillTreeFns)
-- Access the defined skills
local skill_list = skilltree_data.SKILLS
local ordered_groups = skilltree_data.ORDERS
-- Example: get a specific skill definition
local controlled_burn_1 = skill_list.willow_controlled_burn_1
Dependencies & tags
Components used: damagetyperesist, damagetypebonus, skilltreeupdater
Tags added on activation: controlled_burner, ember_master, player_shadow_aligned, player_lunar_aligned, lock, lighter, bernie, bernie4, bernie8, allegiance, shadow_favor, lunar_favor
Properties
No public properties; this module exports only a single function (BuildSkillsData) which returns a static table.
Main functions
BuildSkillsData(SkillTreeFns)
- Description: Constructs and returns the complete Willow skill tree data, including all skill definitions, group ordering, and positioning.
SkillTreeFnsis a module containing helper functions such asCountTagsused inlock_openchecks. - Parameters:
SkillTreeFns(table) – Module providing utility functions, notablySkillTreeFns.CountTags(prefabname, tag, activatedskills). - Returns: Table with two keys:
SKILLS: Dictionary mapping skill IDs (e.g.,"willow_controlled_burn_1") to skill definitions.ORDERS: Array of{"group_name", {x, y}}pairs defining rendering order/position for skill groups.
- Error states: Returns
nilvalues for missing skill definitions; no runtime validation beyond Lua syntax.
Events & listeners
None — this file defines static data only; no events are listened to or pushed.