Alright, I've got a reaction that turns meat into blood:
[REACTION:PRESS_MEAT]
[NAME:press blood from meat]
[BUILDING:SCREW_PRESS:CUSTOM_T]
[REAGENT:meat:1:MEAT:NONE:NONE:NONE][HAS_MATERIAL_REACTION_PRODUCT:EXTRACT_BLOOD]
[REAGENT:barrel:1:BARREL:NONE:NONE:NONE]
[EMPTY]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[PRODUCT:100:3:LIQUID_MISC:NONE:GET_MATERIAL_FROM_REAGENT:meat:EXTRACT_BLOOD]
[PRODUCT_TO_CONTAINER:barrel]
[SKILL:PRESSING]
The problem with this is a stack of 3 yak meat produces one barrel of blood. A stack of 19 yak meat produces one barrel of blood as well. I'd like 19 yak meat to produce a stack of 19 yak blood. Other than that, it works fine.
The second problem I'm having is with this reaction:
[REACTION:BREW_BLOOD]
[NAME:brew blood ale]
[BUILDING:STILL:CUSTOM_R]
[REAGENT:blood:5:LIQUID_MISC:NONE:NONE:NONE]
[UNROTTEN]
[REAGENT:blood container:1:NONE:NONE:NONE]
[CONTAINS:blood]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[REAGENT:barrel/pot:1:NONE:NONE:NONE:NONE]
[EMPTY]
[FOOD_STORAGE_CONTAINER] barrel or any non-absorbing tool with FOOD_STORAGE
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[PRODUCT:100:5:DRINK:NONE:GET_MATERIAL_FROM_REAGENT:blood:DRINK_MAT]
[PRODUCT_TO_CONTAINER:barrel/pot]
[PRODUCT_DIMENSION:150]
[SKILL:BREWING]
It's supposed to take an empty barrel/pot as well as a barrel of blood and spit out a barrel/pot of blood ale. Right now, the brewer grabs an empty barrel and spits out a barrel of [5] 'drinks'. What went wrong?
I think the issue with your first reaction is that each "computation" of the reaction requires an empty barrel. A stack of items seems to only ever be run through a reaction once, so it goes through one computation using up one meat, uses up your empty barrel, and then doesn't have another empty barrel to go through again, so the rest of your meat stack is lost. My gut feeling is if you take out the barrel part (and putting the product in a barrel) and try running the reaction then checking the contents of the workshop, it WILL have 3x as many bloods as meats as the product.
No idea how to get around this one and keep the barrel, sorry.
For your second, a few things.
First, your "blood" reagent doesn't contain anything that limits it to being actual blood. Any LIQUID_MISC can be used. Maybe tag a [REACTION_CLASS:BLOOD] or something on your blood template so you can limit your reagent to materials with that?
Next, your "blood container" reagent is missing something - you have NONE:NONE:NONE. I'm guessing you missed the item type in there (BARREL:NONE:NONE:NONE).
Finally, did you add a [MATERIAL_REACTION_PRODUCT:DRINK_MAT:<blah>] somewhere in your blood material template? If not, that last line isn't going to work. If you did, what does it point to? You're going to have to make a blood ale material - either attached to a "fake" plant that doesn't show up anywhere (in which case your product line is DRINK:NONE:PLANT_MAT:CUSTOM_PLANT_NAME:DRINK_MATERIAL_NAME) or you could add it to something like the default material plans in which case you'd get specifically "Yak Blood Ale" etc - this relies on using the material reaction product stuff.