- 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.
v0.31:Cheating
MOD | This page includes mods. The content is not part of normal DF as released. Changing game files can sometimes cause unexpected results, and should always be done with care and caution. |
Cheating is altering the game to make dwarf fortress easier. This is distinctly different from exploits. There are two main ways to alter the game: changing the game's raw source files (which are really just text files), and directly altering the game's memory (which requires special tools).
Raw Editing
Raw files are located in the raw/objects directory
The most common use of editing raw files is to get free items, such as gems, adamantine, or flux.
When changing the raw files, you may or may not need to create a new world in order for your changes to be reflected.
Generally speaking, modifications to an existing entry in a raw file don't require a new world. Altering existing reactions or creatures is an example of this.
However, when adding or deleting entries, you need to create a new world for the changes to take place, and when deleting, it can and probably will render your old world unplayable as attempting to play worlds generated before the deletion will cause an error.
Creature Token Modifications
Modifying creature files does not require the creation of a new world. You can modify the physical attributes of a creature, make animals tamable and trainable, make your dwarves into short little bearded terminators, and much more.
Speedy Dwarves
Getting bored with slow dwarves?
Go into the creature_standard file and add the [SPEED:1] in somewhere in the top section of the entry.(or SPEED:0 if you're up to some psychedelic light speed traveling)
This will make your dwarves do the majority of their actions super fast, including moving, digging and workshop actions.
This may, ironically, lower FPS when a high population is present, but no more than what doing many actions at once would.
No Needs Dwarves
Not wanting to care for your dwarves? simply add [NO_EAT], [NO_SLEEP], and [NO_DRINK] to your dwarves' raws and never care for them again.
As an added bonus, try adding [NOFEAR], [NOBREATHE], [NOSTUN], [NONAUSEA], [NOPAIN], [NO_DIZZINESS], [NO_FEVERS], and [NOEXERT] as well.
Pets for everyone
Ever want Cave dragons, Giant cave spiders, or even Helmet snakes for pets? Simply add [PET] and [COMMON_DOMESTIC] to the creature of your choice then generate a new world. Enjoy killing the local elephant population with your army of Giant cave spiders.
Note: Pets may be expensive. Which is why you set [PETVALUE:1]
Tinkering with the Dwarven Soul
By messing with the soul of a dwarf, you can drastically increase attributes and learning rates. Below is notes and a copy-paste section of text that you can use in the creature_standard.txt file, in which you replace the existing dwarf attributes. You can also utilize this code with the Castes, if you want to specify what parts of your society get what. The most easily adjustable portion of the castes is with the Males and Females.
Please note that in v31.03 of Dwarf Fortress, most of the mental attributes and Skill_Rate's learning speed is broken. This should change after the Merge, since Toady will be able to correct bugs and fully implement the Soul system.
ATT_RANGE dictates the level of effectiveness a being receives in an ability. 5,000 is the max. Please note that the elves get "5,000" in the memory stat, for the entire range. Humans get a default of 1,000, and presumably the same goes for any other creature that doesn't have a specified range.
Below, the ATT_RATES tag basically determines how quickly you gain and lose an attribute. The first value indicates cost. The lower it is, the better. The other values are for dictating the rate of decay, so keeping them at "NONE" basically nullifies that aspect. Don't use "0" for the first value, it crashes the game. Default for the first value is 500. If there is no number, the default will be used. I believe that you can use negative numbers, which further increases the gain of attributes, since the ceiling to the next attribute level is lowered by the negative percentage you use.
ATT_RATES (Default is 500:2:3:2]
* ATTRIBUTE Token * cost to improve * unused counter rate * rust counter rate * demotion counter rate
[PHYS_ATT_RATES:STRENGTH:-5000:NONE:NONE:NONE]
The game comes pre-stocked with several sets of attribute ranges, some better than others. The signs that come after the numeral ranges indicate what level that range represents, but has no effect in of themselves.
0:0:0:0:0:0:0] unattainable
0:100:200:300:400:450:500] ---
0:400:600:750:800:900:1100] --
150:600:800:900:1000:1100:1500] -
450:950:1150:1250:1350:1550:2250] +
700:1200:1400:1500:1600:1800:2500] ++
1250:1500:1750:2000:2500:3000:5000] +++
5000:5000:5000:5000:5000:5000:5000] max
Skill rates is a tag that grants you a % of skill improvement. The first number is the percentage, while the last three slots indicate decay. Furthermore, I believe that it is capped at 5,000%. Default is 100, but creatures with Slow Learner tag will get half of that. The skill acceleration doesn't work currently, which is believed to be a bug. The information here is a placeholder until that is corrected.
SKILL_RATE (Default is 100:8:8:16]
* % of improvement points you get * unused counter rate * rust counter rate * demotion counter rate
[SKILL_RATES:5000:NONE:NONE:NONE]
PHYS_ATT_CAP_PERC MENT_ATT_CAP_PERC
The default value is 200% of a dwarf's median+starting stats. This tag caps the amount of improvement to be had in an attribute. Below, I have cranked it up to 5,000%, hoping that it would let all dwarves achieve maximum attributes.
ex [PHYS_ATT_CAP_PERC:STRENGTH:5000] [MENT_ATT_CAP_PERC:FOCUS:5000]
Instructions for use*:
1) Open creature_standard.txt 2) Find dwarven stats, which ought to resemble the set below. 3) Delete those stats and replace with the new set. 4) Done.
- Notepad++ is recommended for altering raw files.
[SKILL_RATES:5000:NONE:NONE:NONE] [PHYS_ATT_RANGE:STRENGTH:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:STRENGTH:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:STRENGTH:5000:NONE:NONE:NONE] [PHYS_ATT_RANGE:TOUGHNESS:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:TOUGHNESS:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:TOUGHNESS:5000:NONE:NONE:NONE] [PHYS_ATT_RANGE:AGILITY:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:AGILITY:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:AGILITY:5000:NONE:NONE:NONE] [PHYS_ATT_RANGE:ENDURANCE:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:ENDURANCE:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:ENDURANCE:5000] [PHYS_ATT_RANGE:RECUPERATION:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:RECUPERATION:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:RECUPERATION:5000] [PHYS_ATT_RANGE:DISEASE_RESISTANCE:1250:1500:1750:2000:2500:3000:5000] +++ [PHYS_ATT_RATES:DISEASE_RESISTANCE:-5000:NONE:NONE:NONE] [PHYS_ATT_CAP_PERC:DISEASE_RESISTANCE:5000] [MENT_ATT_RANGE:FOCUS:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:FOCUS:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:FOCUS:5000] [MENT_ATT_RANGE:CREATIVITY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:CREATIVITY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:CREATIVITY:5000] [MENT_ATT_RANGE:PATIENCE:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:PATIENCE:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:PATIENCE:5000] [MENT_ATT_RANGE:MEMORY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:MEMORY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:MEMORY:5000] [MENT_ATT_RANGE:SPATIAL_SENSE:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:SPATIAL_SENSE:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:SPATIAL_SENSE:5000] [MENT_ATT_RANGE:EMPATHY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:EMPATHY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:EMPATHY:5000] [MENT_ATT_RANGE:MUSICALITY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:MUSICALITY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:MUSICALITY:5000] [MENT_ATT_RANGE:ANALYTICAL_ABILITY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:ANALYTICAL_ABILITY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:ANALYTICAL_ABILITY:5000] [MENT_ATT_RANGE:LINGUISTIC_ABILITY:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:LINGUISTIC_ABILITY:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:LINGUISTIC_ABILITY:5000] [MENT_ATT_RANGE:INTUITION:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:INTUITION:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:INTUITION:5000] [MENT_ATT_RANGE:WILLPOWER:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:WILLPOWER:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:WILLPOWER:5000] [MENT_ATT_RANGE:SOCIAL_AWARENESS:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:SOCIAL_AWARENESS:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:SOCIAL_AWARENESS:5000] [MENT_ATT_RANGE:KINESTHETIC_SENSE:1250:1500:1750:2000:2500:3000:5000] +++ [MENT_ATT_RATES:KINESTHETIC_SENSE:-5000:NONE:NONE:NONE] [MENT_ATT_CAP_PERC:KINESTHETIC_SENSE:5000]
Reaction Additions
There are now two reaction files: reaction_smelter and reaction_other. Additions to these lists will not take effect until you generate a new world. Note that if you edit an existing reaction entry (leaving the [REACTION:NAME] line unchanged) rather than add a new one, you will not need to generate a new world. Don't forget to add [PERMITTED_REACTION:(reaction)] under [ENTITY:MOUNTAIN] in entity_default raw.
Easy Entity Editing
Here is the edited entity_default raw entry. Just copy and paste everything underneath the existing entries.
[PERMITTED_REACTION:FREE_DIAMOND_FY] [PERMITTED_REACTION:FREE_EMERALD] [PERMITTED_REACTION:FREE_SAPPHIRE] [PERMITTED_REACTION:FREE_DIAMOND_CLEAR] [PERMITTED_REACTION:FREE_DIAMOND_RED] [PERMITTED_REACTION:FREE_DIAMOND_GREEN] [PERMITTED_REACTION:FREE_DIAMOND_BLUE] [PERMITTED_REACTION:FREE_DIAMOND_YELLOW] [PERMITTED_REACTION:FREE_DIAMOND_BLACK] [PERMITTED_REACTION:FREE_RUBY_STAR] [PERMITTED_REACTION:FREE_ADAMANTINE_THREAD] [PERMITTED_REACTION:FREE_ADAMANTINE_WAFERS] [PERMITTED_REACTION:FREE_WOOD] [PERMITTED_REACTION:(reaction)] [PERMITTED_REACTION:(reaction)]
Free Gems
Fill in the name of a gem from the inorganic_stone_gem file and paste this in the reaction_smelter file to make your smelter spew out gems.
[REACTION:FREE_(gem name here)] [NAME:make (gem name here)] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:(gem name {from raws})] [SKILL:SMELT]
Note: You can change the skill used and the workshop, but make sure to keep it in the correct reaction file. For convenience, here are all the precious gems in the game.
[REACTION:FREE_DIAMOND_LY] [NAME: make light yellow diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_LY] [SKILL:SMELT] [REACTION:FREE_DIAMOND_FY] [NAME: make faint yellow diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_FY] [SKILL:SMELT] [REACTION:FREE_EMERALD] [NAME: make emeralds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:EMERALD] [SKILL:SMELT] [REACTION:FREE_RUBY] [NAME: make rubies] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:RUBY] [SKILL:SMELT] [REACTION:FREE_SAPPHIRE] [NAME: make sapphires] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:SAPPHIRE] [SKILL:SMELT] [REACTION:FREE_DIAMOND_CLEAR] [NAME: make clear diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_CLEAR] [SKILL:SMELT] [REACTION:FREE_DIAMOND_RED] [NAME: make red diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_RED] [SKILL:SMELT] [REACTION:FREE_DIAMOND_GREEN] [NAME: make green diamond] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_GREEN] [SKILL:SMELT] [REACTION:FREE_DIAMOND_BLUE] [NAME: make blue diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_BLUE] [SKILL:SMELT] [REACTION:FREE_DIAMOND_YELLOW] [NAME: make yellow diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_YELLOW] [SKILL:SMELT] [REACTION:FREE_DIAMOND_BLACK] [NAME: make black diamonds] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:DIAMOND_BLACK] [SKILL:SMELT] [REACTION:FREE_RUBY_STAR] [NAME: make star rubies] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:RUBY_STAR] [SKILL:SMELT] [REACTION:FREE_SAPPHIRE_STAR] [NAME: make star sapphires] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:ROUGH:NO_SUBTYPE:STONE:SAPPHIRE_STAR] [SKILL:SMELT]
Easy Adamantine
To get free adamantine wafers, add this to your reaction_smelter.
[REACTION:FREE_ADAMANTINE_WAFERS] [NAME:create adamantine wafers] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:BAR:NO_SUBTYPE:METAL:ADAMANTINE][PRODUCT_DIMENSION:150] [SKILL:SMELT]
It appears that, in some cases, starting out a new world with this in the reaction file can lead to all civilizations being Forgotten Beasts; thus, it may be better to add it after world creation, since Forgotten Beasts cannot work.
For adamantine thread it would be:
[REACTION:FREE_ADAMANTINE_THREAD] [NAME:create adamantine thread] [BUILDING:SMELTER:NONE] [PRODUCT:100:1:THREAD:NO_SUBTYPE:METAL:ADAMANTINE][PRODUCT_DIMENSION:15000] [SKILL:SMELT]
Easy Flux, Sand, and Ore
Add [REACTION_CLASS:FLUX] to any stone you have to turn it into a flux. This is in inorganic_stone_mineral, or inorganic_stone_layer Or, add [METAL_ORE:{metal name}:100] to turn it into an ore. It also bears noting that the metal can easily be an alloy, like steel or brass. Likewise, open inorganic_stone_soil and add [SOIL_SAND] to any soil to turn it into sand suitable for making glass with.
None of these cheats require creating a new world. Turn peat into glass, basalt into platinum, and combine iron, diorite, and coal to make steel.
Easy Metal
Open reaction_smelter and change any reactions you like. Remove the [FUEL] tag. to make them require no fuel. Remove the line(s) headed with [REAGENT:whatever] to make them require no reagents. You can pick any metal that exists in the game, as long as you pick the right raw name. (For example: IRON, PEWTER_LAY, and NICKEL_SILVER makes iron, lay pewter, and nickle silver respectively.)
[REACTION:FREE_(metal name here)] [NAME:create (metal name here)] [BUILDING:SMELTER:NONE] [PRODUCT:100:1:BAR:NO_SUBTYPE:METAL:(metal name {from raws})][PRODUCT_DIMENSION:150] [SKILL:SMELT]
These cheats do not require a new world (because they only modify existing reactions), and allow smelters to create steel and adamantine from nothing.
Create Wood
To create wood for free, Add this to reaction_smelter. (don't forget the wood type. Like OAK, PINE, TOWER_CAP, or FUNGIWOOD.)
[REACTION:FREE_WOOD] [NAME:create wood] [BUILDING:SMELTER:NONE] [PRODUCT:100:5:WOOD:NO_SUBTYPE:PLANT_MAT:(wood name {from raws}):WOOD][PRODUCT_DIMENSION:150] [SKILL:SMELT]
Produce Food
To create food for free, add this to reaction_smelter.
[REACTION:FREE_FOOD] [NAME:produce food] [BUILDING:SMELTER:NONE] [PRODUCT:100:10:PLANT:NO_SUBTYPE:PLANT_MAT:(plant name {from raws}):PLANT] [SKILL:SMELT]
Memory Hacking
Memory Hacking is much harder than raw editing, and requires special tools. At present, tools that have been adapted to DF2010 include Reveal, which allows you to see the whole map (though be warned- it also releases Hidden Fun Stuff) and DFhack, a versatile tool which includes, among other things, a liquids hack that lets you place water or magma of a depth you choose into a square and "dfprospector," which tells you what minerals are available on the map.