[{"data":1,"prerenderedAt":1320},["ShallowReactive",2],{"doc-global_essentials\u002Fcharacters\u002Fskills":3},{"id":4,"title":5,"body":6,"description":1311,"extension":1312,"meta":1313,"navigation":660,"path":1316,"seo":1317,"stem":1318,"__hash__":1319},"docs\u002Fdocs\u002Fglobal_essentials\u002Fcharacters\u002Fskills.md","Skills",{"type":7,"value":8,"toc":1280},"minimark",[9,14,23,26,31,34,50,53,55,59,66,71,74,175,178,181,284,288,294,378,380,384,395,397,401,407,460,464,471,481,485,491,497,500,511,513,517,520,541,545,551,557,610,614,725,727,733,738,779,827,829,833,839,851,853,857,861,866,871,889,894,907,911,916,946,950,959,961,965,969,1098,1102,1225,1229,1235,1241,1243,1247,1276],[10,11,13],"h1",{"id":12},"skill-trees","Skill Trees",[15,16,17,18,22],"p",{},"Skill trees let characters learn and upgrade abilities over time. Like items and statuses, skills are ",[19,20,21],"strong",{},"status layers"," - they can modify stats, grant abilities, add skin layers, and more.",[24,25],"hr",{},[27,28,30],"h2",{"id":29},"how-skills-work","How Skills Work",[15,32,33],{},"When a character learns a skill, a status effect is applied to them. This status can:",[35,36,37,41,44,47],"ul",{},[38,39,40],"li",{},"Add stats (e.g., +10 Strength)",[38,42,43],{},"Grant abilities",[38,45,46],{},"Add skin layers (visual changes)",[38,48,49],{},"Set traits or attributes",[15,51,52],{},"Skills can be upgraded multiple times. Each upgrade level adds another stack to the status effect, multiplying its bonuses.",[24,54],{},[27,56,58],{"id":57},"editor-forms","Editor Forms",[15,60,61,62,65],{},"Skills are defined using two forms in ",[19,63,64],{},"Characters → Skills",":",[67,68,70],"h3",{"id":69},"skill-slots","Skill Slots",[15,72,73],{},"Individual skill definitions. Each slot describes what a skill does.",[75,76,77,90],"table",{},[78,79,80],"thead",{},[81,82,83,87],"tr",{},[84,85,86],"th",{},"Field",[84,88,89],{},"Description",[91,92,93,105,115,125,135,145,155,165],"tbody",{},[81,94,95,102],{},[96,97,98],"td",{},[99,100,101],"code",{},"id",[96,103,104],{},"Unique identifier for the skill",[81,106,107,112],{},[96,108,109],{},[99,110,111],{},"name",[96,113,114],{},"Display name",[81,116,117,122],{},[96,118,119],{},[99,120,121],{},"description",[96,123,124],{},"Rich text description shown in tooltips",[81,126,127,132],{},[96,128,129],{},[99,130,131],{},"image",[96,133,134],{},"Icon displayed in the skill tree",[81,136,137,142],{},[96,138,139],{},[99,140,141],{},"size",[96,143,144],{},"Size of the skill node in pixels",[81,146,147,152],{},[96,148,149],{},[99,150,151],{},"shape",[96,153,154],{},"Node shape: circle, square, triangle, diamond, hexagon, octagon",[81,156,157,162],{},[96,158,159],{},[99,160,161],{},"status",[96,163,164],{},"The status effect applied when learned (stats, abilities, skin layers, etc.)",[81,166,167,172],{},[96,168,169],{},[99,170,171],{},"tags",[96,173,174],{},"For categorizing and filtering",[67,176,13],{"id":177},"skill-trees-1",[15,179,180],{},"The visual layout that organizes skills into learnable progression paths.",[75,182,183,191],{},[78,184,185],{},[81,186,187,189],{},[84,188,86],{},[84,190,89],{},[91,192,193,202,211,220,234,244,254,264,274],{},[81,194,195,199],{},[96,196,197],{},[99,198,101],{},[96,200,201],{},"Unique identifier for the tree",[81,203,204,208],{},[96,205,206],{},[99,207,111],{},[96,209,210],{},"Display name shown in the tree selector",[81,212,213,217],{},[96,214,215],{},[99,216,121],{},[96,218,219],{},"Rich text description shown on hover",[81,221,222,231],{},[96,223,224,227,228],{},[99,225,226],{},"width"," \u002F ",[99,229,230],{},"height",[96,232,233],{},"Canvas dimensions in pixels",[81,235,236,241],{},[96,237,238],{},[99,239,240],{},"background_asset",[96,242,243],{},"Optional background image",[81,245,246,251],{},[96,247,248],{},[99,249,250],{},"arrow_style",[96,252,253],{},"Connection style: straight, curved, or dashed",[81,255,256,261],{},[96,257,258],{},[99,259,260],{},"is_private",[96,262,263],{},"If true, uses character's private inventory for costs; otherwise uses party inventory",[81,265,266,271],{},[96,267,268],{},[99,269,270],{},"refund_factor",[96,272,273],{},"0-1 value for refund percentage (0 = non-refundable)",[81,275,276,281],{},[96,277,278],{},[99,279,280],{},"skills",[96,282,283],{},"Array of skill placements (see below)",[67,285,287],{"id":286},"skill-placements","Skill Placements",[15,289,290,291,293],{},"Each entry in a tree's ",[99,292,280],{}," array places a skill slot on the canvas:",[75,295,296,304],{},[78,297,298],{},[81,299,300,302],{},[84,301,86],{},[84,303,89],{},[91,305,306,315,325,338,348,358,368],{},[81,307,308,312],{},[96,309,310],{},[99,311,101],{},[96,313,314],{},"Unique slot instance ID (different from skill slot ID)",[81,316,317,322],{},[96,318,319],{},[99,320,321],{},"skill",[96,323,324],{},"Reference to a skill slot",[81,326,327,335],{},[96,328,329,227,332],{},[99,330,331],{},"x",[99,333,334],{},"y",[96,336,337],{},"Position on the canvas",[81,339,340,345],{},[96,341,342],{},[99,343,344],{},"max_upgrade_level",[96,346,347],{},"How many times the skill can be upgraded (each upgrade = +1 status stack)",[81,349,350,355],{},[96,351,352],{},[99,353,354],{},"price",[96,356,357],{},"Currency cost to learn (uses item currencies)",[81,359,360,365],{},[96,361,362],{},[99,363,364],{},"parent_skills",[96,366,367],{},"Array of slot instance IDs that must be learned first",[81,369,370,375],{},[96,371,372],{},[99,373,374],{},"params",[96,376,377],{},"Optional actions and conditions (if, active, scene triggers, etc.)",[24,379],{},[27,381,383],{"id":382},"assigning-trees-to-characters","Assigning Trees to Characters",[15,385,386,387,390,391,394],{},"In ",[19,388,389],{},"Characters → Character Templates",", add skill tree IDs to the ",[99,392,393],{},"skill_trees"," field. A character can have multiple skill trees available.",[24,396],{},[27,398,400],{"id":399},"public-vs-private-skill-trees","Public vs Private Skill Trees",[15,402,403,404,406],{},"Skills cost currency items to learn, similar to trading. The ",[99,405,260],{}," field determines which inventory pays for skills:",[75,408,409,426],{},[78,410,411],{},[81,412,413,416,420,423],{},[84,414,415],{},"Mode",[84,417,418],{},[99,419,260],{},[84,421,422],{},"Currency Source",[84,424,425],{},"Use Case",[91,427,428,444],{},[81,429,430,433,438,441],{},[96,431,432],{},"Public",[96,434,435],{},[99,436,437],{},"false",[96,439,440],{},"Party inventory",[96,442,443],{},"Shared currencies like gold coins",[81,445,446,449,454,457],{},[96,447,448],{},"Private",[96,450,451],{},[99,452,453],{},"true",[96,455,456],{},"Character's private inventory",[96,458,459],{},"Character-specific points (e.g., skill points, experience)",[67,461,463],{"id":462},"public-trees-default","Public Trees (Default)",[15,465,466,467,470],{},"Currency is deducted from the ",[19,468,469],{},"party inventory",". All party members share the same currency pool.",[472,473,478],"pre",{"className":474,"code":476,"language":477},[475],"language-text","Skill Tree: \"combat_skills\"\nis_private: false\nSkill price: { gold: 100 }\n→ 100 gold deducted from party inventory\n","text",[99,479,476],{"__ignoreMap":480},"",[67,482,484],{"id":483},"private-trees","Private Trees",[15,486,466,487,490],{},[19,488,489],{},"character's private inventory",". Each character has their own separate currency pool.",[472,492,495],{"className":493,"code":494,"language":477},[475],"Skill Tree: \"personal_talents\"\nis_private: true\nSkill price: { skill_points: 1 }\n→ 1 skill_point deducted from this character's private inventory\n",[99,496,494],{"__ignoreMap":480},[15,498,499],{},"This is useful for:",[35,501,502,505,508],{},[38,503,504],{},"Level-up skill points that each character earns individually",[38,506,507],{},"Class-specific currencies",[38,509,510],{},"Per-character progression systems",[24,512],{},[27,514,516],{"id":515},"learning-skills","Learning Skills",[15,518,519],{},"Skills are learned through the in-game skill tree UI. Requirements:",[521,522,523,529,535],"ol",{},[38,524,525,528],{},[19,526,527],{},"Parent skills"," - At least one parent must be learned (if any are defined)",[38,530,531,534],{},[19,532,533],{},"Currency"," - Character must afford the price",[38,536,537,540],{},[19,538,539],{},"Not maxed"," - Current level must be below max_upgrade_level",[67,542,544],{"id":543},"action-learning","Action Learning",[15,546,547,548,550],{},"Use the ",[99,549,321],{}," action in scenes to grant skills directly (bypasses currency costs):",[472,552,555],{"className":553,"code":554,"language":477},[475],"{skill: \"alice.fire_magic.fireball\"}\n",[99,556,554],{"__ignoreMap":480},[75,558,559,568],{},[78,560,561],{},[81,562,563,566],{},[84,564,565],{},"Format",[84,567,89],{},[91,569,570,580,590,600],{},[81,571,572,577],{},[96,573,574],{},[99,575,576],{},"\"treeId.slotId\"",[96,578,579],{},"Learn for selected character",[81,581,582,587],{},[96,583,584],{},[99,585,586],{},"\"characterId.treeId.slotId\"",[96,588,589],{},"Learn for specific character",[81,591,592,597],{},[96,593,594],{},[99,595,596],{},"\"alice.fire_magic.fireball#3\"",[96,598,599],{},"Learn 3 levels at once",[81,601,602,607],{},[96,603,604],{},[99,605,606],{},"\"alice.fire_magic.fireball, bob.ice_magic.freeze\"",[96,608,609],{},"Learn multiple skills",[67,611,613],{"id":612},"programmatic-learning","Programmatic Learning",[472,615,619],{"className":616,"code":617,"language":618,"meta":480,"style":480},"language-js shiki shiki-themes github-light github-dark","const character = game.getCharacter(\"mc\");\n\n\u002F\u002F Learn a skill (1 level)\ncharacter.learnSkill(\"combat_tree\", \"fireball_slot\", 1);\n\n\u002F\u002F Unlearn a skill (triggers refund if refund_factor > 0)\ncharacter.unlearnSkill(\"combat_tree\", \"fireball_slot\");\n","js",[99,620,621,655,662,669,696,701,707],{"__ignoreMap":480},[622,623,626,630,634,637,641,645,648,652],"span",{"class":624,"line":625},"line",1,[622,627,629],{"class":628},"szBVR","const",[622,631,633],{"class":632},"sj4cs"," character",[622,635,636],{"class":628}," =",[622,638,640],{"class":639},"sVt8B"," game.",[622,642,644],{"class":643},"sScJk","getCharacter",[622,646,647],{"class":639},"(",[622,649,651],{"class":650},"sZZnC","\"mc\"",[622,653,654],{"class":639},");\n",[622,656,658],{"class":624,"line":657},2,[622,659,661],{"emptyLinePlaceholder":660},true,"\n",[622,663,665],{"class":624,"line":664},3,[622,666,668],{"class":667},"sJ8bj","\u002F\u002F Learn a skill (1 level)\n",[622,670,672,675,678,680,683,686,689,691,694],{"class":624,"line":671},4,[622,673,674],{"class":639},"character.",[622,676,677],{"class":643},"learnSkill",[622,679,647],{"class":639},[622,681,682],{"class":650},"\"combat_tree\"",[622,684,685],{"class":639},", ",[622,687,688],{"class":650},"\"fireball_slot\"",[622,690,685],{"class":639},[622,692,693],{"class":632},"1",[622,695,654],{"class":639},[622,697,699],{"class":624,"line":698},5,[622,700,661],{"emptyLinePlaceholder":660},[622,702,704],{"class":624,"line":703},6,[622,705,706],{"class":667},"\u002F\u002F Unlearn a skill (triggers refund if refund_factor > 0)\n",[622,708,710,712,715,717,719,721,723],{"class":624,"line":709},7,[622,711,674],{"class":639},[622,713,714],{"class":643},"unlearnSkill",[622,716,647],{"class":639},[622,718,682],{"class":650},[622,720,685],{"class":639},[622,722,688],{"class":650},[622,724,654],{"class":639},[24,726],{},[27,728,730,731],{"id":729},"skill-requirements-with-params","Skill Requirements with ",[99,732,374],{},[15,734,547,735,737],{},[99,736,374],{}," field when adding Skill Slot to a Skill Tree to have conditions or trigger actions:",[472,739,743],{"className":740,"code":741,"language":742,"meta":480,"style":480},"language-json shiki shiki-themes github-light github-dark","{\n  \"if\": \"player_level >= 10\",\n  \"scene\": \"unlock_celebration\"\n}\n","json",[99,744,745,750,764,774],{"__ignoreMap":480},[622,746,747],{"class":624,"line":625},[622,748,749],{"class":639},"{\n",[622,751,752,755,758,761],{"class":624,"line":657},[622,753,754],{"class":632},"  \"if\"",[622,756,757],{"class":639},": ",[622,759,760],{"class":650},"\"player_level >= 10\"",[622,762,763],{"class":639},",\n",[622,765,766,769,771],{"class":624,"line":664},[622,767,768],{"class":632},"  \"scene\"",[622,770,757],{"class":639},[622,772,773],{"class":650},"\"unlock_celebration\"\n",[622,775,776],{"class":624,"line":671},[622,777,778],{"class":639},"}\n",[75,780,781,791],{},[78,782,783],{},[81,784,785,788],{},[84,786,787],{},"Param",[84,789,790],{},"Effect",[91,792,793,806,819],{},[81,794,795,803],{},[96,796,797,227,800],{},[99,798,799],{},"if",[99,801,802],{},"ifOr",[96,804,805],{},"Hide the skill until condition is true",[81,807,808,816],{},[96,809,810,227,813],{},[99,811,812],{},"active",[99,814,815],{},"activeOr",[96,817,818],{},"Show but disable the skill until condition is true",[81,820,821,824],{},[96,822,823],{},"Any action",[96,825,826],{},"Execute when skill is learned",[24,828],{},[27,830,832],{"id":831},"refunding-skills","Refunding Skills",[15,834,835,836,838],{},"If ",[99,837,270],{}," is set on the tree (e.g., 0.5 for 50%), players can refund learned skills:",[35,840,841,848],{},[38,842,843,844,847],{},"Refund amount = ",[99,845,846],{},"price × skill_level × refund_factor"," (rounded up)",[38,849,850],{},"A skill cannot be refunded if it's the only learned parent of another learned skill",[24,852],{},[27,854,856],{"id":855},"example-setup","Example Setup",[67,858,860],{"id":859},"_1-create-skill-slots","1. Create Skill Slots",[15,862,386,863,65],{},[19,864,865],{},"Characters → Skill Slots",[15,867,868],{},[19,869,870],{},"Fireball",[35,872,873,879,882],{},[38,874,875,876],{},"id: ",[99,877,878],{},"fireball",[38,880,881],{},"name: \"Fireball\"",[38,883,884,885,888],{},"status: { stats: { magic_damage: 10 }, abilities: ",[622,886,887],{},"\"fireball_ability\""," }",[15,890,891],{},[19,892,893],{},"Inferno",[35,895,896,901,904],{},[38,897,875,898],{},[99,899,900],{},"inferno",[38,902,903],{},"name: \"Inferno\"",[38,905,906],{},"status: { stats: { magic_damage: 25 } }",[67,908,910],{"id":909},"_2-create-a-skill-tree","2. Create a Skill Tree",[15,912,386,913,65],{},[19,914,915],{},"Characters → Skill Trees",[35,917,918,923,926,929,932],{},[38,919,875,920],{},[99,921,922],{},"fire_magic",[38,924,925],{},"name: \"Fire Magic\"",[38,927,928],{},"width: 400, height: 300",[38,930,931],{},"refund_factor: 0.5",[38,933,934,935],{},"skills:\n",[35,936,937,940],{},[38,938,939],{},"{ id: \"slot_fireball\", skill: \"fireball\", x: 200, y: 50, price: { gold: 100 } }",[38,941,942,943,888],{},"{ id: \"slot_inferno\", skill: \"inferno\", x: 200, y: 150, price: { gold: 250 }, parent_skills: ",[622,944,945],{},"\"slot_fireball\"",[67,947,949],{"id":948},"_3-assign-to-character","3. Assign to Character",[15,951,952,953,955,956,958],{},"In the character template, add ",[99,954,922],{}," to the ",[99,957,393],{}," field.",[24,960],{},[27,962,964],{"id":963},"api-reference","API Reference",[67,966,968],{"id":967},"character-methods","Character Methods",[472,970,972],{"className":616,"code":971,"language":618,"meta":480,"style":480},"\u002F\u002F Add a skill tree to character\ncharacter.addSkillTree(\"fire_magic\");\n\n\u002F\u002F Remove a skill tree\ncharacter.removeSkillTree(\"fire_magic\");\n\n\u002F\u002F Learn a skill (level = number of levels to add)\ncharacter.learnSkill(treeId, slotId, level);\n\n\u002F\u002F Unlearn a skill (refunds if tree has refund_factor)\ncharacter.unlearnSkill(treeId, slotId);\n\n\u002F\u002F Get skill status ID (for checking if learned)\nconst statusId = character.getSkillStatusId(\"fire_magic\", \"slot_fireball\");\n\u002F\u002F Returns: \"_skill_fire_magic_slot_fireball\"\n",[99,973,974,979,993,997,1002,1015,1019,1024,1034,1039,1045,1055,1060,1066,1092],{"__ignoreMap":480},[622,975,976],{"class":624,"line":625},[622,977,978],{"class":667},"\u002F\u002F Add a skill tree to character\n",[622,980,981,983,986,988,991],{"class":624,"line":657},[622,982,674],{"class":639},[622,984,985],{"class":643},"addSkillTree",[622,987,647],{"class":639},[622,989,990],{"class":650},"\"fire_magic\"",[622,992,654],{"class":639},[622,994,995],{"class":624,"line":664},[622,996,661],{"emptyLinePlaceholder":660},[622,998,999],{"class":624,"line":671},[622,1000,1001],{"class":667},"\u002F\u002F Remove a skill tree\n",[622,1003,1004,1006,1009,1011,1013],{"class":624,"line":698},[622,1005,674],{"class":639},[622,1007,1008],{"class":643},"removeSkillTree",[622,1010,647],{"class":639},[622,1012,990],{"class":650},[622,1014,654],{"class":639},[622,1016,1017],{"class":624,"line":703},[622,1018,661],{"emptyLinePlaceholder":660},[622,1020,1021],{"class":624,"line":709},[622,1022,1023],{"class":667},"\u002F\u002F Learn a skill (level = number of levels to add)\n",[622,1025,1027,1029,1031],{"class":624,"line":1026},8,[622,1028,674],{"class":639},[622,1030,677],{"class":643},[622,1032,1033],{"class":639},"(treeId, slotId, level);\n",[622,1035,1037],{"class":624,"line":1036},9,[622,1038,661],{"emptyLinePlaceholder":660},[622,1040,1042],{"class":624,"line":1041},10,[622,1043,1044],{"class":667},"\u002F\u002F Unlearn a skill (refunds if tree has refund_factor)\n",[622,1046,1048,1050,1052],{"class":624,"line":1047},11,[622,1049,674],{"class":639},[622,1051,714],{"class":643},[622,1053,1054],{"class":639},"(treeId, slotId);\n",[622,1056,1058],{"class":624,"line":1057},12,[622,1059,661],{"emptyLinePlaceholder":660},[622,1061,1063],{"class":624,"line":1062},13,[622,1064,1065],{"class":667},"\u002F\u002F Get skill status ID (for checking if learned)\n",[622,1067,1069,1071,1074,1076,1079,1082,1084,1086,1088,1090],{"class":624,"line":1068},14,[622,1070,629],{"class":628},[622,1072,1073],{"class":632}," statusId",[622,1075,636],{"class":628},[622,1077,1078],{"class":639}," character.",[622,1080,1081],{"class":643},"getSkillStatusId",[622,1083,647],{"class":639},[622,1085,990],{"class":650},[622,1087,685],{"class":639},[622,1089,945],{"class":650},[622,1091,654],{"class":639},[622,1093,1095],{"class":624,"line":1094},15,[622,1096,1097],{"class":667},"\u002F\u002F Returns: \"_skill_fire_magic_slot_fireball\"\n",[67,1099,1101],{"id":1100},"events","Events",[472,1103,1105],{"className":616,"code":1104,"language":618,"meta":480,"style":480},"\u002F\u002F Triggered when a skill is learned\ngame.on(\"skill_learned\", (treeId, skillId, level) => {\n  game.showNotification(\"Learned a new skill!\");\n});\n\n\u002F\u002F Triggered when a skill is unlearned\ngame.on(\"skill_unlearned\", (treeId, skillId) => {\n  console.log(\"Refunded:\", skillId);\n});\n",[99,1106,1107,1112,1151,1166,1171,1175,1180,1205,1221],{"__ignoreMap":480},[622,1108,1109],{"class":624,"line":625},[622,1110,1111],{"class":667},"\u002F\u002F Triggered when a skill is learned\n",[622,1113,1114,1117,1120,1122,1125,1128,1132,1134,1137,1139,1142,1145,1148],{"class":624,"line":657},[622,1115,1116],{"class":639},"game.",[622,1118,1119],{"class":643},"on",[622,1121,647],{"class":639},[622,1123,1124],{"class":650},"\"skill_learned\"",[622,1126,1127],{"class":639},", (",[622,1129,1131],{"class":1130},"s4XuR","treeId",[622,1133,685],{"class":639},[622,1135,1136],{"class":1130},"skillId",[622,1138,685],{"class":639},[622,1140,1141],{"class":1130},"level",[622,1143,1144],{"class":639},") ",[622,1146,1147],{"class":628},"=>",[622,1149,1150],{"class":639}," {\n",[622,1152,1153,1156,1159,1161,1164],{"class":624,"line":664},[622,1154,1155],{"class":639},"  game.",[622,1157,1158],{"class":643},"showNotification",[622,1160,647],{"class":639},[622,1162,1163],{"class":650},"\"Learned a new skill!\"",[622,1165,654],{"class":639},[622,1167,1168],{"class":624,"line":671},[622,1169,1170],{"class":639},"});\n",[622,1172,1173],{"class":624,"line":698},[622,1174,661],{"emptyLinePlaceholder":660},[622,1176,1177],{"class":624,"line":703},[622,1178,1179],{"class":667},"\u002F\u002F Triggered when a skill is unlearned\n",[622,1181,1182,1184,1186,1188,1191,1193,1195,1197,1199,1201,1203],{"class":624,"line":709},[622,1183,1116],{"class":639},[622,1185,1119],{"class":643},[622,1187,647],{"class":639},[622,1189,1190],{"class":650},"\"skill_unlearned\"",[622,1192,1127],{"class":639},[622,1194,1131],{"class":1130},[622,1196,685],{"class":639},[622,1198,1136],{"class":1130},[622,1200,1144],{"class":639},[622,1202,1147],{"class":628},[622,1204,1150],{"class":639},[622,1206,1207,1210,1213,1215,1218],{"class":624,"line":1026},[622,1208,1209],{"class":639},"  console.",[622,1211,1212],{"class":643},"log",[622,1214,647],{"class":639},[622,1216,1217],{"class":650},"\"Refunded:\"",[622,1219,1220],{"class":639},", skillId);\n",[622,1222,1223],{"class":624,"line":1036},[622,1224,1170],{"class":639},[67,1226,1228],{"id":1227},"checking-skills","Checking Skills",[15,1230,547,1231,1234],{},[99,1232,1233],{},"_skill"," condition to check if a character has learned a skill:",[472,1236,1239],{"className":1237,"code":1238,"language":477},[475],"_skill(alice.fire_magic.fireball) > 0   \u002F\u002F check if learned\n_skill(fire_magic.fireball) >= 3        \u002F\u002F check level (selected character)\n",[99,1240,1238],{"__ignoreMap":480},[24,1242],{},[27,1244,1246],{"id":1245},"tips","Tips",[35,1248,1249,1255,1261,1267,1273],{},[38,1250,1251,1252,1254],{},"Use ",[99,1253,364],{}," to create progression paths (skill A → skill B → skill C)",[38,1256,1257,1258,1260],{},"Set ",[99,1259,344],{}," > 1 for skills that can be upgraded multiple times",[38,1262,1251,1263,1266],{},[99,1264,1265],{},"is_private: true"," for character-specific currencies",[38,1268,1269,1270,1272],{},"The ",[99,1271,374],{}," field supports the same conditions as scene choices",[38,1274,1275],{},"Skill status effects stack with equipment and other status sources",[1277,1278,1279],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":480,"searchDepth":657,"depth":657,"links":1281},[1282,1283,1288,1289,1293,1297,1299,1300,1305,1310],{"id":29,"depth":657,"text":30},{"id":57,"depth":657,"text":58,"children":1284},[1285,1286,1287],{"id":69,"depth":664,"text":70},{"id":177,"depth":664,"text":13},{"id":286,"depth":664,"text":287},{"id":382,"depth":657,"text":383},{"id":399,"depth":657,"text":400,"children":1290},[1291,1292],{"id":462,"depth":664,"text":463},{"id":483,"depth":664,"text":484},{"id":515,"depth":657,"text":516,"children":1294},[1295,1296],{"id":543,"depth":664,"text":544},{"id":612,"depth":664,"text":613},{"id":729,"depth":657,"text":1298},"Skill Requirements with params",{"id":831,"depth":657,"text":832},{"id":855,"depth":657,"text":856,"children":1301},[1302,1303,1304],{"id":859,"depth":664,"text":860},{"id":909,"depth":664,"text":910},{"id":948,"depth":664,"text":949},{"id":963,"depth":657,"text":964,"children":1306},[1307,1308,1309],{"id":967,"depth":664,"text":968},{"id":1100,"depth":664,"text":1101},{"id":1227,"depth":664,"text":1228},{"id":1245,"depth":657,"text":1246},"Skill trees let characters learn and upgrade abilities over time. Like items and statuses, skills are status layers - they can modify stats, grant abilities, add skin layers, and more.","md",{"plugin":1314,"category":1315,"page":280},"global_essentials","characters","\u002Fdocs\u002Fglobal_essentials\u002Fcharacters\u002Fskills",{"title":5,"description":1311},"docs\u002Fglobal_essentials\u002Fcharacters\u002Fskills","GzkT1SJ3mWAfbI1OStWyze3jBjSnj6GXVx9FqtNKzpU",1779582261122]