Talents are defined in the talents.ini file. You can create your very own talents by placing the talents.ini file in the scripts_add folder to add/replace the main game talents or in the scripts folder to create your own tree from scratch.
Talents are usualy unlocked by leveling up. See the levels.ini file to define which talents you unlock at which levels.
Here is an example of a talent in the mainmod talent.ini file :
[whirl] name=Whirlwind desc=Apprentice: A whirling attack that strikes all enemies around you.\n\nAdvanced: Damage 115%.\n\nMaster: Damage 130%. initializeScript=giveSkill("attackarea") x=0 y=1 requirement= icon=attack_swirl.png hideWhenHas=true skillLevel=1
Talents are defined by a name between brakets "whirl" in this example that the games uses to identify them.
They have a visual name and description (desc). In this case, the description has line breaks "\n" that makes the text go to the next line. Just like using
in html or pressing enter in a text editor.
initializeScript : either give you the coresponding skill to be used or replace a skill with a new one (see below for the replace example).
X and Y respectively define the position of the talent in the tree where X is the horizontal slot and Y the vertical slot. Driftmoon has an empty slot at X=0 and Y=0 so creating a skill with those values will fill that hole.
requirement allows you to define links between talents (the black lines in the talent tree) which will show you what talent you need to unlock this one. See below for an example.
icon : The picture used to illustrate the talent
hideWhenHas : not sure if it hides the talent from the window of makes it unclickable. It's used for the low level talents that eventualy get repalced by advanced ones. Some hightest level talents have this set to false.
skillLevel : the level of the talent. All first skills have the level 1.
Here is a high level talent :
[whirlMaster] name=Master Whirlwind desc=Apprentice: A whirling attack that strikes all enemies around you.\n\nAdvanced: Damage 115%.\n\nMaster: Damage 130%. initializeScript=replaceSkill("attackarea2","attackarea3") x=0 y=1 requirement=whirlAdvanced icon=attack_swirl.png hiddenUntilRequirementFilled=true skillLevel=3
hiddenUntilRequirementFilled : The skill will be hidden untill you got the requirement fulfiled. In this case, the talent whirlAdvanced.