- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
Shaostoul's Guide
Welcome to my guide, within this page I hope to teach you how to mod... anything! But for starters... Let's go with what I've got in the forum thread so far.
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.txt
[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!