EDIT: After some discussion on the Discord, my current set of reaction is this:
[REACTION:MAKE_FLUTE_WOOD_TZ]
[NAME:make wood flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:WOOD:1:WOOD:NONE:NONE:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:WOOD:NONE]
[SKILL:WOODCRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_METAL_TZ]
[NAME:make metal flute]
[BUILDING:METALSMITH:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:METAL:1:BAR:NONE:METAL:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:METAL:NONE]
[FUEL]
[SKILL:METALCRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_STONE_TZ]
[NAME:make stone flute]
[BUILDING:MASON:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:STONE:1:BOULDER:NONE:NONE:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:STONE:NONE]
[SKILL:STONECRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_BONE_TZ]
[NAME:make bone flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:BONE:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_BONE_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:BONE:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_HORN_TZ]
[NAME:make horn flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:HORN:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_HORN_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:HORN:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_SHELL_TZ]
[NAME:make shell flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:SHELL:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_SHELL_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:SHELL:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_LEATHER_TZ]
[NAME:make leather flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:LEATHER:1:SKIN_TANNED:NONE:NONE:NONE][ANY_LEATHER_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:LEATHER:NONE]
[SKILL:LEATHERWORK]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_THREAD_TZ]
[NAME:make thread flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:THREAD:15000:THREAD:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][NOT_WEB][ANY_STRAND_TISSUE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:THREAD:NONE]
[SKILL:SPINNING]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_YARN_TZ]
[NAME:make yarn flute]
[BUILDING:CRAFTSMAN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:YARN:15000:THREAD:NONE:NONE:NONE][ANY_YARN_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:YARN:NONE]
[SKILL:SPINNING]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_CERAMIC_TZ]
[NAME:make ceramic flute]
[BUILDING:KILN:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:CERAMIC:1:BOULDER:NONE:NONE:NONE][HAS_MATERIAL_REACTION_PRODUCT:FIRED_MAT]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:CERAMIC:FIRED_MAT]
[FUEL]
[SKILL:POTTERY]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_GREEN_GLASS_TZ]
[NAME:make green glass flute]
[BUILDING:GLASS:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:GREEN_GLASS:1:POWDER_MISC:NONE:NONE:NONE][IS_SAND_MATERIAL]
[REAGENT:GREEN_GLASS_BAG:1:NONE:NONE:NONE:NONE]
[CONTAINS:GREEN_GLASS]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GLASS_GREEN:NONE]
[FUEL]
[SKILL:GLASSMAKER]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_CLEAR_GLASS_TZ]
[NAME:make clear glass flute]
[BUILDING:GLASS:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:CLEAR_GLASS:1:POWDER_MISC:NONE:NONE:NONE][IS_SAND_MATERIAL]
[REAGENT:CLEAR_GLASS_BAG:1:NONE:NONE:NONE:NONE]
[CONTAINS:CLEAR_GLASS]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[REAGENT:CLEAR_GLASS_PEARLASH:150:BAR:NONE:PEARLASH:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GLASS_CLEAR:NONE]
[FUEL]
[SKILL:GLASSMAKER]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_CRYSTAL_GLASS_TZ]
[NAME:make crystal glass flute]
[BUILDING:GLASS:NONE]
[MAX_MULTIPLIER:1]
[REAGENT:CRYSTAL_GLASS:1:BOULDER:NONE:INORGANIC:CRYSTAL_ROCK][IS_SAND_MATERIAL]
[REAGENT:CRYSTAL_GLASS_PEARLASH:150:BAR:NONE:PEARLASH:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GLASS_CRYSTAL:NONE]
[FUEL]
[SKILL:GLASSMAKER]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
This fixes my issues with the glass instruments, those are working correctly now. Adding the
[MAX_MULTIPLIER:1] tag helped prevent the reaction from taking up the entire stack, as well.
For the rest, testing is ongoing.
I'm developing some reactions, but I'm having trouble figuring out what the correct form is for some of the reagents.
This is what I have currently:
[REACTION:MAKE_FLUTE_WOOD_TZ]
[NAME:make wood flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:wood:1:WOOD:NONE:NONE:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:wood:NONE]
[SKILL:WOODCRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_METAL_TZ]
[NAME:make metal flute]
[BUILDING:METALSMITH:NONE]
[REAGENT:metal:1:BAR:NONE:METAL:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:metal:NONE]
[FUEL]
[SKILL:METALCRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_STONE_TZ]
[NAME:make stone flute]
[BUILDING:MASON:NONE]
[REAGENT:stone:1:BOULDER:NONE:NONE:NONE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:stone:NONE]
[SKILL:STONECRAFT]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_BONE_TZ]
[NAME:make bone flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:bone:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_BONE_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:bone:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_HORN_TZ]
[NAME:make horn flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:horn:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_HORN_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:horn:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_SHELL_TZ]
[NAME:make shell flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:shell:1:NONE:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_SHELL_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:shell:NONE]
[SKILL:BONECARVE]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_LEATHER_TZ]
[NAME:make leather flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:leather:1:SKIN_TANNED:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][ANY_LEATHER_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:leather:NONE]
[SKILL:LEATHERWORK]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_THREAD_TZ]
[NAME:make thread flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:thread:15000:THREAD:NONE:NONE:NONE][USE_BODY_COMPONENT][UNROTTEN][NOT_WEB][ANY_STRAND_TISSUE]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:thread:NONE]
[SKILL:SPINNING]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_YARN_TZ]
[NAME:make yarn flute]
[BUILDING:CRAFTSMAN:NONE]
[REAGENT:yarn:15000:THREAD:NONE:NONE:NONE][ANY_YARN_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:yarn:NONE]
[SKILL:SPINNING]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_CERAMIC_TZ]
[NAME:make ceramic flute]
[BUILDING:KILN:NONE]
[REAGENT:ceramic:1:BOULDER:NONE:NONE:NONE][HAS_MATERIAL_REACTION_PRODUCT:FIRED_MAT]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:ceramic:FIRED_MAT]
[FUEL]
[SKILL:POTTERY]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
[REACTION:MAKE_FLUTE_GLASS_TZ]
[NAME:make glass flute]
[BUILDING:GLASS:NONE]
[REAGENT:glass:1:POWDER_MISC:NONE:NONE:NONE][IS_SAND_MATERIAL]
[PRODUCT:100:1:INSTRUMENT:FLUTE_TZ:GET_MATERIAL_FROM_REAGENT:glass:]
[FUEL]
[SKILL:GLASSMAKER]
[DESCRIPTION:USE_INSTRUMENT:FLUTE_TZ]
[CATEGORY:INSTRUMENT]
The wood, stone, bone, and ceramic seem to work correctly (though I think the bone one is making too many). The horn, shell, leather, and glass aren't working correctly. Horn made hoof flutes, and the rest didn't recognize the reagents even though they existed in the fort (vanilla work orders with those materials were fine), which makes me suspect I'm not defining the reagents correctly for those. Is there anyone who can shed some light on this situation, or point me to some good examples?