[{"data":1,"prerenderedAt":1393},["ShallowReactive",2],{"navigation_docs":3,"-docs-culttweaker-follower-forms":166,"-docs-culttweaker-follower-forms-surround":1388},[4,9,76,106,148,162],{"title":5,"path":6,"stem":7,"icon":8},"Overview","\u002Fdocs","docs\u002Findex","i-lucide-book-open",{"title":10,"path":11,"stem":12,"children":13,"icon":15},"CultTweaker","\u002Fdocs\u002Fculttweaker","docs\u002F1.culttweaker\u002F01.index",[14,16,21,26,31,36,41,46,51,56,61,66,71],{"title":5,"path":11,"stem":12,"icon":15},"i-lucide-wand",{"title":17,"path":18,"stem":19,"icon":20},"Installation","\u002Fdocs\u002Fculttweaker\u002Finstallation","docs\u002F1.culttweaker\u002F02.installation","i-lucide-download",{"title":22,"path":23,"stem":24,"icon":25},"Worldshaper","\u002Fdocs\u002Fculttweaker\u002Fworldshaper","docs\u002F1.culttweaker\u002F03.worldshaper","i-lucide-hammer",{"title":27,"path":28,"stem":29,"icon":30},"Player spines","\u002Fdocs\u002Fculttweaker\u002Fplayer-spines","docs\u002F1.culttweaker\u002F04.player-spines","i-lucide-user",{"title":32,"path":33,"stem":34,"icon":35},"Follower forms","\u002Fdocs\u002Fculttweaker\u002Ffollower-forms","docs\u002F1.culttweaker\u002F05.follower-forms","i-lucide-users",{"title":37,"path":38,"stem":39,"icon":40},"Custom structures","\u002Fdocs\u002Fculttweaker\u002Fcustom-structures","docs\u002F1.culttweaker\u002F06.custom-structures","i-lucide-home",{"title":42,"path":43,"stem":44,"icon":45},"Items and meals","\u002Fdocs\u002Fculttweaker\u002Fcustom-items-and-meals","docs\u002F1.culttweaker\u002F07.custom-items-and-meals","i-lucide-package",{"title":47,"path":48,"stem":49,"icon":50},"Tarot cards","\u002Fdocs\u002Fculttweaker\u002Fcustom-tarot-cards","docs\u002F1.culttweaker\u002F08.custom-tarot-cards","i-lucide-sparkles",{"title":52,"path":53,"stem":54,"icon":55},"Custom enemies","\u002Fdocs\u002Fculttweaker\u002Fcustom-enemies","docs\u002F1.culttweaker\u002F09.custom-enemies","i-lucide-skull",{"title":57,"path":58,"stem":59,"icon":60},"Custom weapons","\u002Fdocs\u002Fculttweaker\u002Fcustom-weapons","docs\u002F1.culttweaker\u002F10.custom-weapons","i-lucide-sword",{"title":62,"path":63,"stem":64,"icon":65},"NPC quests","\u002Fdocs\u002Fculttweaker\u002Fcustom-npc-quests","docs\u002F1.culttweaker\u002F11.custom-npc-quests","i-lucide-message-square",{"title":67,"path":68,"stem":69,"icon":70},"Modding API","\u002Fdocs\u002Fculttweaker\u002Fmodding-api","docs\u002F1.culttweaker\u002F12.modding-api","i-lucide-plug",{"title":72,"path":73,"stem":74,"icon":75},"Changelog","\u002Fdocs\u002Fculttweaker\u002Fchangelog","docs\u002F1.culttweaker\u002F13.changelog","i-lucide-history",{"title":77,"path":78,"stem":79,"children":80,"icon":82},"Supercharged","\u002Fdocs\u002Fsupercharged","docs\u002F2.supercharged\u002F1.index",[81,83,92],{"title":5,"path":78,"stem":79,"icon":82},"i-lucide-zap",{"title":84,"path":85,"stem":86,"children":87,"icon":35},"Followers","\u002Fdocs\u002Fsupercharged\u002Ffollowers","docs\u002F2.supercharged\u002Ffollowers\u002F1.index",[88,89],{"title":5,"path":85,"stem":86,"icon":35},{"title":72,"path":90,"stem":91,"icon":75},"\u002Fdocs\u002Fsupercharged\u002Ffollowers\u002Fchangelog","docs\u002F2.supercharged\u002Ffollowers\u002F2.changelog",{"title":93,"path":94,"stem":95,"children":96,"icon":50},"Tarots","\u002Fdocs\u002Fsupercharged\u002Ftarots","docs\u002F2.supercharged\u002Ftarots\u002F1.index",[97,98,103],{"title":5,"path":94,"stem":95,"icon":50},{"title":99,"path":100,"stem":101,"icon":102},"Card list","\u002Fdocs\u002Fsupercharged\u002Ftarots\u002Fcards","docs\u002F2.supercharged\u002Ftarots\u002F2.cards","i-lucide-layers",{"title":72,"path":104,"stem":105,"icon":75},"\u002Fdocs\u002Fsupercharged\u002Ftarots\u002Fchangelog","docs\u002F2.supercharged\u002Ftarots\u002F3.changelog",{"title":107,"path":108,"stem":109,"children":110,"icon":112},"MiniMods","\u002Fdocs\u002Fminimods","docs\u002F3.minimods\u002F1.index",[111,113,118,122,127,132,136,140,143],{"title":5,"path":108,"stem":109,"icon":112},"i-lucide-boxes",{"title":114,"path":115,"stem":116,"icon":117},"Trial of the Gods","\u002Fdocs\u002Fminimods\u002Ftrial-of-the-gods","docs\u002F3.minimods\u002F2.trial-of-the-gods","i-lucide-flame",{"title":119,"path":120,"stem":121,"icon":25},"Structures","\u002Fdocs\u002Fminimods\u002Fstructures","docs\u002F3.minimods\u002F3.structures",{"title":123,"path":124,"stem":125,"icon":126},"Roles","\u002Fdocs\u002Fminimods\u002Froles","docs\u002F3.minimods\u002F4.roles","i-lucide-briefcase",{"title":128,"path":129,"stem":130,"icon":131},"Rituals","\u002Fdocs\u002Fminimods\u002Frituals","docs\u002F3.minimods\u002F5.rituals","i-lucide-flame-kindling",{"title":133,"path":134,"stem":135,"icon":65},"Commands","\u002Fdocs\u002Fminimods\u002Fcommands","docs\u002F3.minimods\u002F6.commands",{"title":137,"path":138,"stem":139,"icon":45},"Items","\u002Fdocs\u002Fminimods\u002Fitems","docs\u002F3.minimods\u002F7.items",{"title":72,"path":141,"stem":142,"icon":75},"\u002Fdocs\u002Fminimods\u002Fchangelog","docs\u002F3.minimods\u002F8.changelog",{"title":144,"path":145,"stem":146,"icon":147},"Credits","\u002Fdocs\u002Fminimods\u002Fcredits","docs\u002F3.minimods\u002F9.credits","i-lucide-heart",{"title":149,"path":150,"stem":151,"children":152,"icon":35},"MP Steam","\u002Fdocs\u002Fmpsteam","docs\u002F4.mpsteam\u002F1.index",[153,154,159],{"title":5,"path":150,"stem":151,"icon":35},{"title":155,"path":156,"stem":157,"icon":158},"Hosting and joining","\u002Fdocs\u002Fmpsteam\u002Fhosting-and-joining","docs\u002F4.mpsteam\u002F2.hosting-and-joining","i-lucide-play",{"title":72,"path":160,"stem":161,"icon":75},"\u002Fdocs\u002Fmpsteam\u002Fchangelog","docs\u002F4.mpsteam\u002F3.changelog",{"title":163,"path":164,"stem":165,"icon":70},"MCP server","\u002Fdocs\u002Fmcp","docs\u002F5.mcp",{"id":167,"title":168,"body":169,"description":1381,"extension":1382,"links":1383,"meta":1384,"navigation":1385,"path":33,"seo":1386,"stem":34,"__hash__":1387},"docs\u002Fdocs\u002F1.culttweaker\u002F05.follower-forms.md","Custom follower forms",{"type":170,"value":171,"toc":1370},"minimark",[172,180,188,198,209,214,228,245,252,258,262,273,283,286,300,310,313,319,322,335,954,969,974,1031,1055,1061,1065,1230,1238,1247,1251,1257,1268,1275,1281,1292,1295,1298,1305,1309,1354,1359,1363,1366],[173,174,175],"p",{},[176,177],"img",{"alt":178,"src":179},"A custom follower form","\u002Fimages\u002Fculttweaker\u002Fcustomfollowerform.png",[173,181,182,183,187],{},"A follower form is a set of per-slot overrides layered over one of the game's own\nfollower base skins. Each override names a slot on the follower skeleton and\nsupplies an image, a placement and a list of colour choices. Forms live in\n",[184,185,186],"code",{},"BepInEx\u002Fplugins\u002FCultTweaker\u002FFollowerSkins",", one folder per skin, with a folder\nper variant inside it.",[189,190,191,192,197],"tip",{},"The site has a ",[193,194,196],"a",{"href":195},"\u002Fbuilder","follower skin builder"," that authors these forms in the\nbrowser, converts legacy COTL JSONLoader skins into the CultTweaker format, and\npreviews the result on a live Spine skeleton.",[199,200,201,202,208],"note",{},"There is also a longer walkthrough with better formatting at\n",[193,203,207],{"href":204,"rel":205},"https:\u002F\u002Fhackmd.io\u002F@InfernoDragon0\u002FHyxvdQ4wWg",[206],"nofollow","hackmd.io\u002F@InfernoDragon0\u002FHyxvdQ4wWg",".",[210,211,213],"h2",{"id":212},"preparing-followerslotsjson","Preparing followerSlots.json",[173,215,216,219,220,223,224,227],{},[184,217,218],{},"followerSlots.json"," is an important part of building skins: it provides the\n",[184,221,222],{},"SlotIndex"," and ",[184,225,226],{},"PartName"," for each part you want to override.",[173,229,230,231,234,235,238,239,241,242,208],{},"Every major update of Cult of the Lamb may change the format of follower forms,\nwhich means skins have to be updated to match the new format. To get the latest\nslot list for an update, enable the ",[184,232,233],{},"DumpFollowerSpineAtlas"," config inside\n",[184,236,237],{},"BepInEx\u002Fconfig\u002FInfernoDragon0.cotl.CustomSpineLoader.cfg",". This generates\n",[184,240,218],{}," for that particular update, written to\n",[184,243,244],{},"CultTweaker\u002FfollowerSlots.json",[246,247,248,249,251],"caution",{},"Make sure ",[184,250,218],{}," is not already present before dumping, and turn\nthe setting back off afterwards - it may impact performance while enabled.",[173,253,254,255,257],{},"Woolhaven's ",[184,256,218],{}," is provided in the template's instruction\nfolder.",[210,259,261],{"id":260},"folder-layout","Folder layout",[173,263,264,265,268,269,272],{},"The provided template folder, ",[184,266,267],{},"ruffTemplateSkin",", shows the folder structure of a\ncustom follower form, including how to set up the base and variant forms. Put the\nfolder into the CultTweaker plugin folder so that it reads\n",[184,270,271],{},"CultTweaker > FollowerSkins > ruffTemplateSkins",", and the plugin will load the\nforms into the game.",[274,275,281],"pre",{"className":276,"code":278,"language":279,"meta":280},[277],"language-text","| CultTweaker.dll\n| FollowerSkins\n    | YourSkinName\n        | base\n            | head.png\n            | config.json\n        | variant\n            | head.png\n            | config.json\n","text","",[184,282,278],{"__ignoreMap":280},[173,284,285],{},"Inside each form folder you need:",[287,288,289,297],"ul",{},[290,291,292,293,296],"li",{},"a ",[184,294,295],{},"config.json"," file",[290,298,299],{},"any number of image files for your parts",[173,301,302,303,307,308,208],{},"The image files should be separated as ",[304,305,306],"strong",{},"single sprites, not a spritesheet",".\nThey can have any name, as long as you name them in the ",[184,309,295],{},[199,311,312],{},"Variants do not have colour support and will only take their colour from the base\nskin.",[173,314,315],{},[176,316],{"alt":317,"src":318},"Variants of the same follower form","\u002Fimages\u002Fculttweaker\u002F2.png",[210,320,295],{"id":321},"configjson",[173,323,324,325,328,329,331,332,334],{},"Create a JSON file with ",[184,326,327],{},"partConfigs"," as the main key. Only ",[184,330,222],{}," and\n",[184,333,226],{}," are required; everything else is optional.",[274,336,340],{"className":337,"code":338,"language":339,"meta":280,"style":280},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"overrideBaseSkin\": \"Cat\",\n    \"partConfigs\": {\n        \"part2\": {\n            \"SlotIndex\": 89,\n            \"PartName\": \"HEAD_SKIN_BTM\",\n            \"scaleX\": 1.0,\n            \"scaleY\": 1.0,\n            \"rotation\": -90.0,\n            \"offsetX\": 0.0,\n            \"offsetY\": 0.0,\n            \"colorChoices\": [\"#FF0000\"],\n        },\n        \"part1back\": {\n            \"SlotIndex\": 89,\n            \"PartName\": \"HEAD_SKIN_BTM_BACK\",\n            \"colorChoices\": [\"#FF0000\"]\n        },\n        \"part2top\": {\n            \"SlotIndex\": 91,\n            \"PartName\": \"HEAD_SKIN_TOP\",\n            \"colorChoices\": [\"#FF0000\"]\n        },\n        \"part1backtop\": {\n            \"SlotIndex\": 91,\n            \"PartName\": \"HEAD_SKIN_TOP_BACK\",\n            \"colorChoices\": [\"#FF0000\"]\n        },\n        \"color_leg_left\": {\n            \"SlotIndex\": 48,\n            \"PartName\": \"LEG_LEFT_SKIN\",\n            \"colorChoices\": [\"#0000FF\"],\n        },\n        \"color_leg_right\": {\n            \"SlotIndex\": 49,\n            \"PartName\": \"LEG_RIGHT_SKIN\",\n            \"colorChoices\": [\"#0000FF\"]\n        }\n    }\n}\n","json",[184,341,342,351,379,393,409,427,447,464,480,497,514,530,555,561,575,590,610,632,637,651,667,687,708,713,727,742,762,783,788,802,818,838,860,865,879,895,915,936,942,948],{"__ignoreMap":280},[343,344,347],"span",{"class":345,"line":346},"line",1,[343,348,350],{"class":349},"sMK4o","{\n",[343,352,354,357,361,364,367,370,374,376],{"class":345,"line":353},2,[343,355,356],{"class":349},"    \"",[343,358,360],{"class":359},"spNyl","overrideBaseSkin",[343,362,363],{"class":349},"\"",[343,365,366],{"class":349},":",[343,368,369],{"class":349}," \"",[343,371,373],{"class":372},"sfazB","Cat",[343,375,363],{"class":349},[343,377,378],{"class":349},",\n",[343,380,382,384,386,388,390],{"class":345,"line":381},3,[343,383,356],{"class":349},[343,385,327],{"class":359},[343,387,363],{"class":349},[343,389,366],{"class":349},[343,391,392],{"class":349}," {\n",[343,394,396,399,403,405,407],{"class":345,"line":395},4,[343,397,398],{"class":349},"        \"",[343,400,402],{"class":401},"sBMFI","part2",[343,404,363],{"class":349},[343,406,366],{"class":349},[343,408,392],{"class":349},[343,410,412,415,418,420,422,425],{"class":345,"line":411},5,[343,413,414],{"class":349},"            \"",[343,416,222],{"class":417},"sbssI",[343,419,363],{"class":349},[343,421,366],{"class":349},[343,423,424],{"class":417}," 89",[343,426,378],{"class":349},[343,428,430,432,434,436,438,440,443,445],{"class":345,"line":429},6,[343,431,414],{"class":349},[343,433,226],{"class":417},[343,435,363],{"class":349},[343,437,366],{"class":349},[343,439,369],{"class":349},[343,441,442],{"class":372},"HEAD_SKIN_BTM",[343,444,363],{"class":349},[343,446,378],{"class":349},[343,448,450,452,455,457,459,462],{"class":345,"line":449},7,[343,451,414],{"class":349},[343,453,454],{"class":417},"scaleX",[343,456,363],{"class":349},[343,458,366],{"class":349},[343,460,461],{"class":417}," 1.0",[343,463,378],{"class":349},[343,465,467,469,472,474,476,478],{"class":345,"line":466},8,[343,468,414],{"class":349},[343,470,471],{"class":417},"scaleY",[343,473,363],{"class":349},[343,475,366],{"class":349},[343,477,461],{"class":417},[343,479,378],{"class":349},[343,481,483,485,488,490,492,495],{"class":345,"line":482},9,[343,484,414],{"class":349},[343,486,487],{"class":417},"rotation",[343,489,363],{"class":349},[343,491,366],{"class":349},[343,493,494],{"class":417}," -90.0",[343,496,378],{"class":349},[343,498,500,502,505,507,509,512],{"class":345,"line":499},10,[343,501,414],{"class":349},[343,503,504],{"class":417},"offsetX",[343,506,363],{"class":349},[343,508,366],{"class":349},[343,510,511],{"class":417}," 0.0",[343,513,378],{"class":349},[343,515,517,519,522,524,526,528],{"class":345,"line":516},11,[343,518,414],{"class":349},[343,520,521],{"class":417},"offsetY",[343,523,363],{"class":349},[343,525,366],{"class":349},[343,527,511],{"class":417},[343,529,378],{"class":349},[343,531,533,535,538,540,542,545,547,550,552],{"class":345,"line":532},12,[343,534,414],{"class":349},[343,536,537],{"class":417},"colorChoices",[343,539,363],{"class":349},[343,541,366],{"class":349},[343,543,544],{"class":349}," [",[343,546,363],{"class":349},[343,548,549],{"class":372},"#FF0000",[343,551,363],{"class":349},[343,553,554],{"class":349},"],\n",[343,556,558],{"class":345,"line":557},13,[343,559,560],{"class":349},"        },\n",[343,562,564,566,569,571,573],{"class":345,"line":563},14,[343,565,398],{"class":349},[343,567,568],{"class":401},"part1back",[343,570,363],{"class":349},[343,572,366],{"class":349},[343,574,392],{"class":349},[343,576,578,580,582,584,586,588],{"class":345,"line":577},15,[343,579,414],{"class":349},[343,581,222],{"class":417},[343,583,363],{"class":349},[343,585,366],{"class":349},[343,587,424],{"class":417},[343,589,378],{"class":349},[343,591,593,595,597,599,601,603,606,608],{"class":345,"line":592},16,[343,594,414],{"class":349},[343,596,226],{"class":417},[343,598,363],{"class":349},[343,600,366],{"class":349},[343,602,369],{"class":349},[343,604,605],{"class":372},"HEAD_SKIN_BTM_BACK",[343,607,363],{"class":349},[343,609,378],{"class":349},[343,611,613,615,617,619,621,623,625,627,629],{"class":345,"line":612},17,[343,614,414],{"class":349},[343,616,537],{"class":417},[343,618,363],{"class":349},[343,620,366],{"class":349},[343,622,544],{"class":349},[343,624,363],{"class":349},[343,626,549],{"class":372},[343,628,363],{"class":349},[343,630,631],{"class":349},"]\n",[343,633,635],{"class":345,"line":634},18,[343,636,560],{"class":349},[343,638,640,642,645,647,649],{"class":345,"line":639},19,[343,641,398],{"class":349},[343,643,644],{"class":401},"part2top",[343,646,363],{"class":349},[343,648,366],{"class":349},[343,650,392],{"class":349},[343,652,654,656,658,660,662,665],{"class":345,"line":653},20,[343,655,414],{"class":349},[343,657,222],{"class":417},[343,659,363],{"class":349},[343,661,366],{"class":349},[343,663,664],{"class":417}," 91",[343,666,378],{"class":349},[343,668,670,672,674,676,678,680,683,685],{"class":345,"line":669},21,[343,671,414],{"class":349},[343,673,226],{"class":417},[343,675,363],{"class":349},[343,677,366],{"class":349},[343,679,369],{"class":349},[343,681,682],{"class":372},"HEAD_SKIN_TOP",[343,684,363],{"class":349},[343,686,378],{"class":349},[343,688,690,692,694,696,698,700,702,704,706],{"class":345,"line":689},22,[343,691,414],{"class":349},[343,693,537],{"class":417},[343,695,363],{"class":349},[343,697,366],{"class":349},[343,699,544],{"class":349},[343,701,363],{"class":349},[343,703,549],{"class":372},[343,705,363],{"class":349},[343,707,631],{"class":349},[343,709,711],{"class":345,"line":710},23,[343,712,560],{"class":349},[343,714,716,718,721,723,725],{"class":345,"line":715},24,[343,717,398],{"class":349},[343,719,720],{"class":401},"part1backtop",[343,722,363],{"class":349},[343,724,366],{"class":349},[343,726,392],{"class":349},[343,728,730,732,734,736,738,740],{"class":345,"line":729},25,[343,731,414],{"class":349},[343,733,222],{"class":417},[343,735,363],{"class":349},[343,737,366],{"class":349},[343,739,664],{"class":417},[343,741,378],{"class":349},[343,743,745,747,749,751,753,755,758,760],{"class":345,"line":744},26,[343,746,414],{"class":349},[343,748,226],{"class":417},[343,750,363],{"class":349},[343,752,366],{"class":349},[343,754,369],{"class":349},[343,756,757],{"class":372},"HEAD_SKIN_TOP_BACK",[343,759,363],{"class":349},[343,761,378],{"class":349},[343,763,765,767,769,771,773,775,777,779,781],{"class":345,"line":764},27,[343,766,414],{"class":349},[343,768,537],{"class":417},[343,770,363],{"class":349},[343,772,366],{"class":349},[343,774,544],{"class":349},[343,776,363],{"class":349},[343,778,549],{"class":372},[343,780,363],{"class":349},[343,782,631],{"class":349},[343,784,786],{"class":345,"line":785},28,[343,787,560],{"class":349},[343,789,791,793,796,798,800],{"class":345,"line":790},29,[343,792,398],{"class":349},[343,794,795],{"class":401},"color_leg_left",[343,797,363],{"class":349},[343,799,366],{"class":349},[343,801,392],{"class":349},[343,803,805,807,809,811,813,816],{"class":345,"line":804},30,[343,806,414],{"class":349},[343,808,222],{"class":417},[343,810,363],{"class":349},[343,812,366],{"class":349},[343,814,815],{"class":417}," 48",[343,817,378],{"class":349},[343,819,821,823,825,827,829,831,834,836],{"class":345,"line":820},31,[343,822,414],{"class":349},[343,824,226],{"class":417},[343,826,363],{"class":349},[343,828,366],{"class":349},[343,830,369],{"class":349},[343,832,833],{"class":372},"LEG_LEFT_SKIN",[343,835,363],{"class":349},[343,837,378],{"class":349},[343,839,841,843,845,847,849,851,853,856,858],{"class":345,"line":840},32,[343,842,414],{"class":349},[343,844,537],{"class":417},[343,846,363],{"class":349},[343,848,366],{"class":349},[343,850,544],{"class":349},[343,852,363],{"class":349},[343,854,855],{"class":372},"#0000FF",[343,857,363],{"class":349},[343,859,554],{"class":349},[343,861,863],{"class":345,"line":862},33,[343,864,560],{"class":349},[343,866,868,870,873,875,877],{"class":345,"line":867},34,[343,869,398],{"class":349},[343,871,872],{"class":401},"color_leg_right",[343,874,363],{"class":349},[343,876,366],{"class":349},[343,878,392],{"class":349},[343,880,882,884,886,888,890,893],{"class":345,"line":881},35,[343,883,414],{"class":349},[343,885,222],{"class":417},[343,887,363],{"class":349},[343,889,366],{"class":349},[343,891,892],{"class":417}," 49",[343,894,378],{"class":349},[343,896,898,900,902,904,906,908,911,913],{"class":345,"line":897},36,[343,899,414],{"class":349},[343,901,226],{"class":417},[343,903,363],{"class":349},[343,905,366],{"class":349},[343,907,369],{"class":349},[343,909,910],{"class":372},"LEG_RIGHT_SKIN",[343,912,363],{"class":349},[343,914,378],{"class":349},[343,916,918,920,922,924,926,928,930,932,934],{"class":345,"line":917},37,[343,919,414],{"class":349},[343,921,537],{"class":417},[343,923,363],{"class":349},[343,925,366],{"class":349},[343,927,544],{"class":349},[343,929,363],{"class":349},[343,931,855],{"class":372},[343,933,363],{"class":349},[343,935,631],{"class":349},[343,937,939],{"class":345,"line":938},38,[343,940,941],{"class":349},"        }\n",[343,943,945],{"class":345,"line":944},39,[343,946,947],{"class":349},"    }\n",[343,949,951],{"class":345,"line":950},40,[343,952,953],{"class":349},"}\n",[173,955,956,957,960,961,963,964,960,967,208],{},"In this example ",[184,958,959],{},"part2.png"," is applied to slot 89 at ",[184,962,442],{},", and\n",[184,965,966],{},"part1back.png",[184,968,605],{},[970,971,973],"h3",{"id":972},"top-level-fields","Top-level fields",[975,976,977,996],"table",{},[978,979,980],"thead",{},[981,982,983,987,990,993],"tr",{},[984,985,986],"th",{},"Field",[984,988,989],{},"Type",[984,991,992],{},"Default",[984,994,995],{},"Description",[997,998,999,1016],"tbody",{},[981,1000,1001,1006,1009,1013],{},[1002,1003,1004],"td",{},[184,1005,360],{},[1002,1007,1008],{},"string",[1002,1010,1011],{},[184,1012,373],{},[1002,1014,1015],{},"The base skin the custom skin is applied over.",[981,1017,1018,1022,1025,1028],{},[1002,1019,1020],{},[184,1021,327],{},[1002,1023,1024],{},"object",[1002,1026,1027],{},"—",[1002,1029,1030],{},"The parts you want to override, keyed by name.",[173,1032,1033,1034,1036,1037,1039,1040,1042,1043,1045,1046,1049,1050,1052,1053,208],{},"Each key in ",[184,1035,327],{}," (such as ",[184,1038,402],{},") can be any name. If it matches an\nimage file name in the same folder, that image is used for the ",[184,1041,222],{}," \u002F\n",[184,1044,226],{}," specified in it. Each ",[184,1047,1048],{},"partConfig"," is named after the image file\nwithout the extension: ",[184,1051,959],{}," = ",[184,1054,402],{},[173,1056,1057,1058,1060],{},"The image file is optional. A key with no image lets you override just the\nslot's colours, like ",[184,1059,795],{}," above.",[970,1062,1064],{"id":1063},"part-fields","Part fields",[975,1066,1067,1079],{},[978,1068,1069],{},[981,1070,1071,1073,1075,1077],{},[984,1072,986],{},[984,1074,989],{},[984,1076,992],{},[984,1078,995],{},[997,1080,1081,1097,1112,1130,1146,1163,1180,1196,1214],{},[981,1082,1083,1087,1090,1092],{},[1002,1084,1085],{},[184,1086,222],{},[1002,1088,1089],{},"int",[1002,1091,1027],{},[1002,1093,1094,1095,208],{},"Required. Which slot to override. Found in ",[184,1096,218],{},[981,1098,1099,1103,1105,1107],{},[1002,1100,1101],{},[184,1102,226],{},[1002,1104,1008],{},[1002,1106,1027],{},[1002,1108,1109,1110,208],{},"Required. The attachment name on that slot. Found in ",[184,1111,218],{},[981,1113,1114,1119,1122,1127],{},[1002,1115,1116],{},[184,1117,1118],{},"ScaleX",[1002,1120,1121],{},"float",[1002,1123,1124],{},[184,1125,1126],{},"1",[1002,1128,1129],{},"Increases or decreases the width of that part.",[981,1131,1132,1137,1139,1143],{},[1002,1133,1134],{},[184,1135,1136],{},"ScaleY",[1002,1138,1121],{},[1002,1140,1141],{},[184,1142,1126],{},[1002,1144,1145],{},"Increases or decreases the height of that part.",[981,1147,1148,1153,1155,1160],{},[1002,1149,1150],{},[184,1151,1152],{},"Rotation",[1002,1154,1121],{},[1002,1156,1157],{},[184,1158,1159],{},"-90",[1002,1161,1162],{},"Rotates the part.",[981,1164,1165,1170,1172,1177],{},[1002,1166,1167],{},[184,1168,1169],{},"OffsetX",[1002,1171,1121],{},[1002,1173,1174],{},[184,1175,1176],{},"0",[1002,1178,1179],{},"Moves the part away from the centre point horizontally.",[981,1181,1182,1187,1189,1193],{},[1002,1183,1184],{},[184,1185,1186],{},"OffsetY",[1002,1188,1121],{},[1002,1190,1191],{},[184,1192,1176],{},[1002,1194,1195],{},"Moves the part away from the centre point vertically.",[981,1197,1198,1203,1206,1211],{},[1002,1199,1200],{},[184,1201,1202],{},"HideSlot",[1002,1204,1205],{},"bool",[1002,1207,1208],{},[184,1209,1210],{},"false",[1002,1212,1213],{},"Hides that slot entirely.",[981,1215,1216,1221,1224,1227],{},[1002,1217,1218],{},[184,1219,1220],{},"ColorChoices",[1002,1222,1223],{},"string array",[1002,1225,1226],{},"white",[1002,1228,1229],{},"The colours to choose from when indoctrinating.",[173,1231,1232,1233,1235,1236,208],{},"Field names are matched case-insensitively, which is why the example above mixes\n",[184,1234,222],{}," with ",[184,1237,454],{},[1239,1240,1241,1243,1244,1246],"warning",{},[184,1242,537],{}," must have the same length for every ",[184,1245,1048],{},". If the counts do\nnot match, the skin will not be added to the game.",[210,1248,1250],{"id":1249},"the-follower-skin-editor-f8","The follower skin editor (F8)",[173,1252,1253],{},[176,1254],{"alt":1255,"src":1256},"The follower customiser","\u002Fimages\u002Fculttweaker\u002Fcustomizer.png",[173,1258,1259,1260,1263,1264,1267],{},"Press ",[304,1261,1262],{},"F8"," anywhere in the game except the title screen. The editor edits the\nsame ",[184,1265,1266],{},"FollowerSkins\u002F"," folders the mod loads, so there is no separate project\nformat.",[173,1269,1270,1271,1274],{},"The ",[304,1272,1273],{},"left panel"," picks which skin and variant you are editing (and starts new\nones), the colour set, the base skin every layer sits on (Cat, Dog and so on), an\noutfit for the preview to wear (just for looking - it is not part of the skin),\nthe animation the preview plays, and the list of layers: pick a slot to override\nit, then click a layer to work on it.",[173,1276,1270,1277,1280],{},[304,1278,1279],{},"right panel"," is that layer - its slot, the image covering it, whether it is\nhidden, its placement, and its colour for the set you are editing.",[173,1282,1283,1284,1287,1288,1291],{},"Names are written as ",[184,1285,1286],{},"skin\u002Fvariant",", so one prompt makes either a new variant of\na skin you have or a whole new skin. ",[304,1289,1290],{},"Ctrl+S"," saves, and saving makes the skin\nwearable straight away: it rebuilds the skin for the game, which pauses for a\nmoment. Drop PNGs into the variant's folder and they show up in the image picker.",[173,1293,1294],{},"Adding a colour set is an entry at the top of the Colour set list, like new skins\nand new layers.",[199,1296,1297],{},"Custom follower skins are baked once and kept rather than rebuilt on every\nlaunch. A skin is rebuilt only when you change it, and the kept copy can be\nshipped with a skin so other players never pay for the first build either.",[173,1299,1300,1301,1304],{},"Custom follower forms can only be selected during indoctrination. For the rest of\nfollower customisation - colour (R, G, B, A) and what they wear - you must toggle\n",[304,1302,1303],{},"Enable Customization"," for the costume override to take effect.",[210,1306,1308],{"id":1307},"migrating-from-jsonloader","Migrating from JSONLoader",[287,1310,1311,1314],{},[290,1312,1313],{},"Instead of a spritesheet with all of the sprites in one image, you must\nseparate them into single sprites.",[290,1315,1316,1317],{},"The JSON config file differs in the following ways:\n",[287,1318,1319,1325,1336,1348],{},[290,1320,1321,1322,1324],{},"The JSON file should be named ",[184,1323,295],{},", and be in the folder together\nwith the skin.",[290,1326,1327,223,1330,1333,1334,208],{},[184,1328,1329],{},"colors",[184,1331,1332],{},"overrides"," are both combined as ",[184,1335,1048],{},[290,1337,1338,1341,1342,223,1345,208],{},[184,1339,1340],{},"name"," is now ",[184,1343,1344],{},"partName",[184,1346,1347],{},"slotIndex",[290,1349,1350,1353],{},[184,1351,1352],{},"rect"," is not needed; it will automatically use the sprite size.",[173,1355,1270,1356,1358],{},[193,1357,196],{"href":195}," does this conversion for you: import a\nJSONLoader skin and it produces the CultTweaker part configs, then previews them\nlive.",[210,1360,1362],{"id":1361},"known-issue","Known issue",[1239,1364,1365],{},"Custom follower forms combined with follower customisation colour may lead to an\nincorrect preview in the UI.",[1367,1368,1369],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}",{"title":280,"searchDepth":353,"depth":353,"links":1371},[1372,1373,1374,1378,1379,1380],{"id":212,"depth":353,"text":213},{"id":260,"depth":353,"text":261},{"id":321,"depth":353,"text":295,"children":1375},[1376,1377],{"id":972,"depth":381,"text":973},{"id":1063,"depth":381,"text":1064},{"id":1249,"depth":353,"text":1250},{"id":1307,"depth":353,"text":1308},{"id":1361,"depth":353,"text":1362},"Build follower forms from single sprites - slot overrides, placement, colour sets, the F8 live editor, and migrating from JSONLoader.","md",null,{},{"title":32,"icon":35},{"title":168,"description":1381},"-ArLuwjfwaxtsqY53ufp1IYL33aGArd99gY9U9I2jNY",[1389,1391],{"title":27,"path":28,"stem":29,"description":1390,"icon":30,"children":-1},"Export a Spine 3.8.99 skeleton, load it as the Lamb, configure skins, hide slots and control fleece transmog.",{"title":37,"path":38,"stem":39,"description":1392,"icon":40,"children":-1},"Add buildings as flat sprites or animated Spine skeletons, and override the art of the game's own structures.",1789208919383]