In this short guide I'm going to show you how to create a custom reaction and guide.
***********************************
It seems many people don't realize the new method of save handling and reaction handling. There are multiple places that have to be altered in order for your custom reaction/building to show up to be used. For example...
If you add a smelting reaction, you have to add the reaction to the "reaction_smelter.txt", you then have to make your reaction permitted on the "entity_default.txt". When you add a reaction to the "entity_default.txt" it will be under the [ENTITY:MOUNTAIN] listing. Your permitted reaction should look like...
[PERMITTED_REACTION:XXXCUSTOM_REACTION_NAMEXXX]
When you add your custom building to the "entity_default.txt" it should look something like... [PERMITTED_BUILDING:XXXCUSTOM_BUILDING_NAMEXXX]
YOU WILL CHANGE "XXXCUSTOM_REACTION_NAMEXXX" and "XXXCUSTOM_BUILDING_NAMEXXX" TO WHATEVER YOU HAVE IT LISTED AS.
Now that, that is out of the way.
***********************************
You may not see the .txt, but don't worry, they should still be text files.
This is the guide to make a custom reaction and custom building.
-To start open up your dwarf fortress folder.
-Next go to the raw folder.
-Next go to the objects folder.
-We'll make a custom reaction that doesn't go into the smelter and has it's own custom building. So find the "reaction_other.txt" file and open it.
-We'll start with a very simple reaction to give us one free granite stone.
[REACTION:CHEAT_REACTION]
[NAME:Free Granite Stone]
[BUILDING:CHEAT_WORKSHOP:NONE]
[PRODUCT:100:1:STONE:NO_SUBTYPE:STONE:GRANITE]
[SKILL:SMELT]
-Now save and close the file and look for the file named "building_custom.txt".
-You should see something along the lines of a Soap Maker Workshop entry. Go ahead and select and copy everything from "[BUILDING_WORKSHOP:SOAP_MAKER]" to "[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]".
-Paste this entry right below the Soap Maker entry, make sure there is a space between them, so you should now have two entries separated by a line break. You should have the following...
building_custom
[OBJECT:BUILDING]
[BUILDING_WORKSHOP:SOAP_MAKER]
[NAME:Soap Maker's Workshop]
[NAME_COLOR:7:0:1]
[DIM:3:3]
[WORK_LOCATION:2:2]
[BUILD_LABOR:SOAP_MAKER]
[BUILD_KEY:CUSTOM_SHIFT_S]
[BLOCK:1:0:0:0]
[BLOCK:2:0:0:0]
[BLOCK:3:0:0:0]
[TILE:0:1:' ':' ':150]
[TILE:0:2:' ':' ':'/']
[TILE:0:3:'-':' ':' ']
[COLOR:0:1:0:0:0:0:0:0:6:0:0]
[COLOR:0:2:0:0:0:0:0:0:6:0:0]
[COLOR:0:3:6:0:0:0:0:0:0:0:0]
[TILE:1:1:' ':' ':'=']
[TILE:1:2:'-':' ':8]
[TILE:1:3:' ':' ':150]
[COLOR:1:1:0:0:0:0:0:0:6:0:0]
[COLOR:1:2:6:0:0:0:0:0:6:0:0]
[COLOR:1:3:0:0:0:0:0:0:6:0:0]
[TILE:2:1:'-':' ':8]
[TILE:2:2:' ':' ':8]
[TILE:2:3:' ':150:' ']
[COLOR:2:1:6:0:0:0:0:0:6:0:0]
[COLOR:2:2:0:0:0:0:0:0:6:0:0]
[COLOR:2:3:0:0:0:6:0:0:0:0:0]
[TILE:3:1:150:' ':8]
[TILE:3:2:' ':' ':8]
[TILE:3:3:' ':240:' ']
[COLOR:3:1:6:0:0:0:0:0:6:7:0]
[COLOR:3:2:0:0:0:0:0:0:6:7:0]
[COLOR:3:3:0:0:0:7:0:1:0:0:0]
[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]
[BUILDING_WORKSHOP:SOAP_MAKER]
[NAME:Soap Maker's Workshop]
[NAME_COLOR:7:0:1]
[DIM:3:3]
[WORK_LOCATION:2:2]
[BUILD_LABOR:SOAP_MAKER]
[BUILD_KEY:CUSTOM_SHIFT_S]
[BLOCK:1:0:0:0]
[BLOCK:2:0:0:0]
[BLOCK:3:0:0:0]
[TILE:0:1:' ':' ':150]
[TILE:0:2:' ':' ':'/']
[TILE:0:3:'-':' ':' ']
[COLOR:0:1:0:0:0:0:0:0:6:0:0]
[COLOR:0:2:0:0:0:0:0:0:6:0:0]
[COLOR:0:3:6:0:0:0:0:0:0:0:0]
[TILE:1:1:' ':' ':'=']
[TILE:1:2:'-':' ':8]
[TILE:1:3:' ':' ':150]
[COLOR:1:1:0:0:0:0:0:0:6:0:0]
[COLOR:1:2:6:0:0:0:0:0:6:0:0]
[COLOR:1:3:0:0:0:0:0:0:6:0:0]
[TILE:2:1:'-':' ':8]
[TILE:2:2:' ':' ':8]
[TILE:2:3:' ':150:' ']
[COLOR:2:1:6:0:0:0:0:0:6:0:0]
[COLOR:2:2:0:0:0:0:0:0:6:0:0]
[COLOR:2:3:0:0:0:6:0:0:0:0:0]
[TILE:3:1:150:' ':8]
[TILE:3:2:' ':' ':8]
[TILE:3:3:' ':240:' ']
[COLOR:3:1:6:0:0:0:0:0:6:7:0]
[COLOR:3:2:0:0:0:0:0:0:6:7:0]
[COLOR:3:3:0:0:0:7:0:1:0:0:0]
[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY][CAN_USE_ARTIFACT]
[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]
-Now you want to change the second entry to following.
[BUILDING_WORKSHOP:CHEAT_WORKSHOP]
[NAME:Cheat Workshop]
[NAME_COLOR:7:0:1]
[DIM:3:3]
[WORK_LOCATION:2:2]
[BUILD_LABOR:SMELT]
[BUILD_KEY:CUSTOM_SHIFT_C]
[BLOCK:1:0:0:0]
[BLOCK:2:0:0:0]
[BLOCK:3:0:0:0]
[TILE:0:1:' ':' ':150]
[TILE:0:2:' ':' ':'/']
[TILE:0:3:'-':' ':' ']
[COLOR:0:1:0:0:0:0:0:0:6:0:0]
[COLOR:0:2:0:0:0:0:0:0:6:0:0]
[COLOR:0:3:6:0:0:0:0:0:0:0:0]
[TILE:1:1:' ':' ':'=']
[TILE:1:2:'-':' ':8]
[TILE:1:3:' ':' ':150]
[COLOR:1:1:0:0:0:0:0:0:6:0:0]
[COLOR:1:2:6:0:0:0:0:0:6:0:0]
[COLOR:1:3:0:0:0:0:0:0:6:0:0]
[TILE:2:1:'-':' ':8]
[TILE:2:2:' ':' ':8]
[TILE:2:3:' ':150:' ']
[COLOR:2:1:6:0:0:0:0:0:6:0:0]
[COLOR:2:2:0:0:0:0:0:0:6:0:0]
[COLOR:2:3:0:0:0:6:0:0:0:0:0]
[TILE:3:1:150:' ':8]
[TILE:3:2:' ':' ':8]
[TILE:3:3:' ':240:' ']
[COLOR:3:1:6:0:0:0:0:0:6:7:0]
[COLOR:3:2:0:0:0:0:0:0:6:7:0]
[COLOR:3:3:0:0:0:7:0:1:0:0:0]
[BUILD_ITEM:1:NONE:NONE:NONE:NONE][BUILDMAT][WORTHLESS_STONE_ONLY][CAN_USE_ARTIFACT]
-Now save this file and close it and look for the final file called "entity_default"
-The beginning entry should say "[ENTITY:MOUNTAIN]"
If you scroll down a bit you should eventually come to a part in the list that looks like the following.
[PERMITTED_JOB:BONE_SETTER]
[PERMITTED_JOB:SUTURER]
[PERMITTED_JOB:SURGEON]
[PERMITTED_BUILDING:SOAP_MAKER]
[PERMITTED_REACTION:TAN_A_HIDE]
[PERMITTED_REACTION:RENDER_FAT]
[PERMITTED_REACTION:MAKE_SOAP]
-Now for simplicity sake and for keeping it a little organized go ahead and add the following between the "[PERMITTED_BUILDING:SOAP_MAKER]" and "[PERMITTED_REACTION:TAN_A_HIDE]"
[PERMITTED_BUILDING:CHEAT_WORKSHOP]
[PERMITTED_REACTION:CHEAT_REACTION]
You should now have...
[PERMITTED_JOB:BONE_SETTER]
[PERMITTED_JOB:SUTURER]
[PERMITTED_JOB:SURGEON]
[PERMITTED_BUILDING:SOAP_MAKER]
[PERMITTED_BUILDING:CHEAT_WORKSHOP]
[PERMITTED_REACTION:CHEAT_REACTION]
[PERMITTED_REACTION:TAN_A_HIDE]
[PERMITTED_REACTION:RENDER_FAT]
[PERMITTED_REACTION:MAKE_SOAP]
-Now save and close this file.
-You have now successfully created your first custom reaction, custom building and you've added it to the entity file!
-Generate a new world and test it! Your custom building should be under the workshop menu at the bottom most likely. You could also press Shift+c to hotkey build it. It's going to use the furnace operating skill to build the workshop and use the custom reaction.
-After all is said and done you should have one workshop named "Cheat Workshop" and one extra Granite!
-Mind you this workshop is going to look like a soap makers workshop, but we want to keep things easy!
CURRENT VANILLA REACTIONS FOR VARIOUS ITEMS!!!
PLANTS (These should be JUST PICKED plants more or less)
[PRODUCT:100:1:PLANT:NO_SUBTYPE:PLANT_MAT:XXXXXXXXX:PLANT]
CHANGE THE XXXXXXXXX'S IN THE ABOVE EXAMPLE TO ONE OF THE PLANTS BELOW!
MUSHROOM_HELMET_PLUMP
GRASS_TAIL_PIG
GRASS_WHEAT_CAVE
POD_SWEET
BUSH_QUARRY
ROOT_MUCK
TUBER_BLOATED
BULB_KOBOLD
BERRIES_PRICKLE
BERRIES_STRAW_WILD
GRASS_LONGLAND
HERB_VALLEY
WEED_RAT
BERRIES_FISHER
REED_ROPE
MUSHROOM_CUP_DIMPLE
WEED_BLADE
ROOT_HIDE
SLIVER_BARB
BERRY_SUN
VINE_WHIP
TREES/WOOD (These should come out as wood logs)
[PRODUCT:100:1:WOOD:NO_SUBTYPE:PLANT_MAT:XXXXXXXXX:WOOD]
CHANGE THE XXXXXXXXX'S IN THE ABOVE EXAMPLE TO ONE OF THE TREES BELOW!
MANGROVE
SAGUARO
PINE
CEDAR
OAK
MAHOGANY
ACACIA
KAPOK
MAPLE
WILLOW
TOWER_CAP
BLACK_CAP
NETHER_CAP
GOBLIN_CAP
FUNGIWOOD
TUNNEL_TUBE
SPORE_TREE
BLOOD_THORN
GLUMPRONG
FEATHER
HIGHWOOD
LARCH
CHESTNUT
ALDER
BIRCH
ASH
CANDLENUT
MANGO
RUBBER
CACAO
PALM
Below is a list of all currently known vanilla dwarf fortress skills. I've tested every single one to make sure it increases and these all work.
--Important Note - Please Read--
All skills in this list are trainable, please keep in mind for the dwarf to use the workshop to train the skill he MUST have that skill enabled, military skills are the exception and "passive" skills like conversation. PLEASE PLEASE PLEASE!!! Remember this, I don't want to hear "Why won't my dwarf use the workshop to train so and so." Thanks.
--End Important Note--
Please read this just in case.
The below codes were tested and DO increase a skill and it DOES go on the list of trained skills to the dwarf. However I don't know if you should bother training them, seeing as I'm not quite too sure whether they'd be of use to vanilla dwarfs or not.
[SKILL:MAGIC_NATURE] (Made the dwarf train "Druid" skill)
[SKILL:GRASP_STRIKE] (Made the dwarf train "Striker" skill)
[SKILL:STANCE_STRIKE] (Made the dwarf train "Kicker" skill)
[SKILL:MELEE_COMBAT] (Made the dwarf train "Fighter" skill)
[SKILL:RANGED_COMBAT] (Made the dwarf train "Fighter" skill)
The skills below are a little iffy IMO, but I believe they do indeed have a use. To train "Sneak" you have to enable hunting.
[SKILL:SNEAK] (Made the dwarf train "Ambusher" skill)
[SKILL:KNOWLEDGE_ACQUISITION] (Made the dwarf train "Student" skill)
[SKILL:PROSE] (Made the dwarf train "Writer" skill)
Skills to added below a custom reaction (Good for "training" dwarfs in whatever)
[SKILL:SMELT]
[SKILL:GLASSMAKER]
[SKILL:DYER]
[SKILL:SOAP_MAKER]
[SKILL:COOK]
[SKILL:BUTCHER]
[SKILL:TANNER]
[SKILL:BOWYER]
[SKILL:ANIMALTRAIN]
[SKILL:ANIMALCARE]
[SKILL:DIAGNOSE]
[SKILL:SURGERY]
[SKILL:DISSECT_VERMIN]
[SKILL:MILK]
[SKILL:DISSECT_FISH]
[SKILL:FORGE_WEAPON]
[SKILL:FORGE_ARMOR]
[SKILL:FORGE_FURNITURE]
[SKILL:EXTRACT_STRAND]
[SKILL:SIEGECRAFT]
[SKILL:SIEGEOPERATE]
[SKILL:POTASH_MAKING]
[SKILL:LYE_MAKING]
[SKILL:OPERATE_PUMP]
[SKILL:MINING]
[SKILL:WOODCUTTING]
[SKILL:CARPENTRY]
[SKILL:DETAILSTONE]
[SKILL:MASONRY]
[SKILL:PROCESSFISH]
[SKILL:TRAPPING]
[SKILL:WEAVING]
[SKILL:BREWING]
[SKILL:ALCHEMY]
[SKILL:CLOTHESMAKING]
[SKILL:MILLING]
[SKILL:PROCESSPLANTS]
[SKILL:CHEESEMAKING]
[SKILL:HERBALISM]
[SKILL:CUTGEM]
[SKILL:ENCRUSTGEM]
[SKILL:WOODCRAFT]
[SKILL:STONECRAFT]
[SKILL:METALCRAFT]
[SKILL:LEATHERWORK]
[SKILL:BONECARVE]
[SKILL:MECHANICS]
[SKILL:DESIGNBUILDING]
[SKILL:DRESS_WOUNDS]
[SKILL:SET_BONE]
[SKILL:SUTURE]
[SKILL:CRUTCH_WALK]
[SKILL:WOOD_BURNING]
[SKILL:SOAP_MAKING]
[SKILL:SWIMMING]
[SKILL:NEGOTIATION]
[SKILL:JUDGING_INTENT]
[SKILL:APPRAISAL]
[SKILL:ORGANIZATION]
[SKILL:RECORD_KEEPING]
[SKILL:INTIMIDATION]
[SKILL:CONVERSATION]
[SKILL:COMEDY]
[SKILL:FLATTERY]
[SKILL:CONSOLE]
[SKILL:PACIFY]
[SKILL:AXE]
[SKILL:SWORD]
[SKILL:MISC_WEAPON]
[SKILL:DAGGER]
[SKILL:MACE]
[SKILL:HAMMER]
[SKILL:SPEAR]
[SKILL:CROSSBOW]
[SKILL:SHIELD]
[SKILL:ARMOR]
[SKILL:PIKE]
[SKILL:WHIP]
[SKILL:BOW]
[SKILL:BLOWGUN]
[SKILL:THROW]
[SKILL:TRACKING]
[SKILL:CONCENTRATION]
[SKILL:SITUATIONAL_AWARENESS]
[SKILL:READING]
[SKILL:SPEAKING]
[SKILL:COORDINATION]
[SKILL:LEADERSHIP]
[SKILL:TEACHING]
[SKILL:WRESTLING]
[SKILL:BITE]
[SKILL:DODGING]
[SKILL:MAGIC_NATURE] (Made the dwarf train "Druid" skill)
[SKILL:SNEAK] (Made the dwarf train "Ambusher" skill)
[SKILL:KNOWLEDGE_ACQUISITION] (Made the dwarf train "Student" skill)
[SKILL:PROSE] (Made the dwarf train "Writer" skill)
[SKILL:GRASP_STRIKE] (Made the dwarf train "Striker" skill)
[SKILL:STANCE_STRIKE] (Made the dwarf train "Kicker" skill)
[SKILL:MELEE_COMBAT] (Made the dwarf train "Fighter" skill)
[SKILL:RANGED_COMBAT](Made the dwarf train "Archer" skill)
If people comment and ask and vote, I'll continue to expand on the list. Next to come would be any available item your dwarf can use.