Welcome to my first mod release. This post is supposed to be a replica of what it will look like when it is released for real in the mods subforum.
Please let me know what you think, what doesn't work the way you think it should, and what doesn't work at all!
The Earth Strikes Back!
A mod for Dwarf Fortress v40.08 and later.
Requirements:- Dwarf Fortress v40.08 or later
- DFHack 40.08r2 or later
This mod includes new creatures, some new high-value gems to balance the risk posed by the new creatures, new workshops to mitigate the risks, and graphics for both Stonesense and the main interface.
Background:The world is flush with life, anywhere and everywhere we witness an endless variety of living things. Not only do we see birds in the sky, beasts on the ground and fish in the sea, but ancient trees burrow into the earth itself for sustenance. Some, such as the Dwarves and Goblins, are aware that life is as boundless below the surface as above it, filling great caverns with fantastic plants and animals and peoples. Life, it seems, is everywhere.
From where does all of this life come? Doubtless the gods forged it originally, striking upon the anvil of the world with unimaginable crafts to create the infinite variety of living things we see today. To those races that have tamed even the simplest metals, it is obvious that the seas and the soil are too soft a foundation upon which to forge anything of consequence... life must have been forged on solid rock. But we do not to take this on faith... the Dwarves who mine into solid rock
know that this is true.
When the gods forged the first life, their strikes were of such incredible force that even the forgotten embers possessed power beyond mortal comprehension. These embers, buried deep within the rock, imbue the surrounding stone with the dignity and vigor of a living thing. Fresh, hot embers are surrounded by Living Stone that can be quite dangerous if awakened by careless mining. The smaller embers have cooled leaving behind Hidden Gems where they otherwise would not be expected.
Any miner knows that the surest way to prosperity is to strike the earth. Wise miners know that sometimes the earth strikes back.
Features:Hidden GemsSmall clusters of high-value gems lie hidden within the layer stones, and there is one
Hidden Gem type for each of the 24 types of standard layer stone (the 25th and 26th, obsidian and slade, are special enough already). They resemble common gems, but all are precious due to their special origins. For example,
Hidden Onyx is found within limestone and is much more valuable than common onyx.
Living StoneEven smaller clusters of stone still burn with enough animating force to react when struck by a pick. Sometimes there isn't enough force left to do anything more than scare the miner. But often an
Awakened Stone pulls itself free of the rock and attacks the miner.
Awakened StonesA bewildering hybrid of flesh and stone, an
Awakened Stone appears to be a boulder with a face and four long, clawed arms. The core of this creature is nerve and muscle and bone, but it is covered in a thick layer of stone and has mud running through its veins. Had it been left in peace, its iridescent eyes would have eventually solidified into
Hidden Gems. A single
Awakened Stone is no match for a prepared militia, but these creatures usually turn up deep in the mines where the only protection comes from the miner's pick.
TributesFortunately, Dwarves have learned how to pacify
Living Stone so that the
Awakened Stones that emerge are tame. This is accomplished by building a
Tribute workshop from three blocks of that layer stone and sacrificing a gem. Each miner that sacrifices an appropriate gem at the
Tribute will be at peace with any
Living Stone he or she awakens. An appropriate sacrifice is expensive: either a large gem or any cut gem of that layer's
Hidden Gem.
Tribute is specific to a miner and a layer stone. A miner who has made
Tribute to Limestone will be at peace with any new
Awakened Limestones he or she frees from the rock, but would still be considered an enemy by
Awakened Granite. Another miner from the same fortress would anger an
Awakened Limestone unless he or she also made an appropriate sacrifice.
Installation:This mod requires a little adjustment to match the graphics pack you are using. The version uploaded at the above link is set up for the Phoebus graphics pack because that is the default in the Starter Pack.
Installation will be easier once the
Starter Pack's mod loader matures to be able to handle Stonesense graphics.
1. Unzip the file on top of your Dwarf Fortress folder.
Ensure that you will be prompted before overwriting anything.2. You will be notified that
raw/objects/entity_default.txt already exists.
If you use no other mods, accept this overwrite.
3. You will be notified that
stonesense/index.txt already exists. Again,
if you use no other mods, accept this overwrite.
4. If you
do use other mods, copy the contents of
raw/objects/entity_default.insert and paste them into
raw/objects/entity_default.txt between the
[PERMITTED_BUILDING:SCREW_PRESS] and
[PERMITTED_REACTION:TAN_A_HIDE] lines. Then open the
stonesense/index.txt file to add the text
tesb/index.txt on its own line.
5. If you do not use the Phoebus graphics pack, you need to perform two search-and-replaces in the
raw/objects/inorganic_stone_tesb.txt file. First, replace all instances of
(Phoebus)[ with
(Phoebus) and then choose one of the following:
5a. Replace all instances of
(CLA) with
(CLA)[ 5b. Replace all instances of
(Ironhand) with
(Ironhand)[5c. Replace all instances of
(Mayday) with
(Mayday)[5d. Replace all instances of
(Spacefox) with
(Spacefox)[5e. Replace all instances of
(Vanilla) with
(Vanilla)[ 6. If you do
not want to use the creature graphics (e.g., want to use ASCII only), delete the file
raw/graphics/graphics_tesb_awakenedstone.txt (you can also delete the
tesb subfolder if desired).
Future Development Plans:1. Change something.
2. Increment the version number.
3. Go to 1.
Reference:Hidden GemsAll
Hidden Gems are precious (material value 40) and can be used normally for gemcutting and encrusting once mined. However, when they are still in the ground their unmined tiles are indistinguishable from the layer stone around them, although a notification such as "You have struck hidden amethyst!" will be generated. There are twenty-four types of
Hidden Gem, one for each of the main layer stones in the game (the 25th and 26th, obsidian and slade, are special enough on their own).
Hidden amber opal is found in sandstone.
Hidden amethyst is found in gabbro.
Hidden aquamarine is found in schist.
Hidden beryl is a golden-yellow-colored gem found in marble.
Hidden black opal is found in dolomite.
Hidden bone opal is a beige-colored gem found in siltstone.
Hidden cherry opal is a chestnut-colored gem found in rock salt.
Hidden emerald is found in granite.
Hidden fire opal is a scarlet-colored gem found in mudstone.
Hidden garnet is a blue-colored gem found in gneiss.
Hidden milk opal is a cream-colored gem found in claystone.
Hidden onyx is a blank and white gem found in limestone. Like normal onyx, it is colored "black" for game purposes.
Hidden pinfire opal is a flax-colored gem found in conglomerate.
Hidden pyrite is a silver-colored gem found in dacite.
Hidden pyrope is a dark-red-colored gem found in slate. Like normal black pyrope, it is colored "black" for game purposes.
Hidden quartz is a cream-colored gem found in andesite.
Hidden shell opal is an ivory-colored gem found in shale.
Hidden spinel is a purple-colored gem found in diorite.
Hidden sunstone is a red gem with yellow flecks found in basalt. Like normal sunstone, it is colored "pumpkin" for game purposes.
Hidden tourmaline is an indigo-colored gem found in quartzite.
Hidden turquoise is found in rhyolite.
Hidden wax opal is a flax-colored gem found in chert.
Hidden white opal is found in chalk.
Hidden zircon is a red-colored gem found in phyllite.
Note that material preferences for
Hidden Gems are unrelated to the normal gems with similar names. That is, a Dwarf with a preference for
amethyst will not be impressed by
hidden amethyst, and vice versa. This is due to the same system that makes "gold" and "native gold" unrelated preferences in the vanilla game.
All Hidden Gems have their tile attributes copied from the layer stone and their gem attributes copied from the normal gemstone. Some graphics packs change the appearance of layer stones, which is why the search-and-replace is necessary during installation.
Living StoneLiving Stone appears in single tiles within its layer and also as single tiles within clusters of
Hidden Gems. Visually, it is indistinguishable from normal layer stones (and
Hidden Gems) until the tile is mined, although you will receive a notification such as "You have struck living andesite!"
When a tile of
Living Stone is mined, the resulting boulder animates with motions that create a cloud of dust. If the ember is still hot enough, an
Awakened Stone emerges from the rock. Whether that
Awakened Stone is friendly or hostile depends on whether the miner performed a sacrifice at an appropriate
Tribute. If the ember is relatively cool, the stone collapses into loose rubble and disappears for game purposes.
The actual game mechanic is that a Living Stone boulder boils away at room temperature, producing a gas that the miner will probably inhale. Once inhaled, the gas causes a syndrome that uses DFHack to spawn an Awakened Stone creature. This syndrome is described in more detail under Tributes below. If the miner does not inhale the gas, the in-game explanation is that the ember was too cool to sustain the Awakened Stone. A single-tile cluster always produces a boulder when mined, so the only source of randomness is whether the miner inhaled the gas or not.
The tile and material attributes for Living Stone are copied from the layer stone, except that the melting/boiling points have been manipulated and craft-related tags have been removed (so no "living granite figurines"). Some graphics packs change the appearance of layer stones, which is why the search-and-replace is necessary during installation.
Awakened StonesWhen Living Stone is disturbed by mining, it attempts to tear itself free of the surrounding rock to move about on its own. You will receive an announcement like "Urist McMiner has awakened a creature of Living Limestone" if the miner previously made a sacrifice at an appropriate Tribute, and the Awakened Stone will be tame. Otherwise you will receive an announcement like "Urist McMiner has incurred the wrath of an Awakened Limestone", and the Awakened Stone will be hostile. If an Awakened Stone is hostile, it will remain hostile even if it later meets a Dwarf who made an appropriate Tribute.
An Awakened Stone appears to be a boulder with a face and four long, clawed arms. Its surface is made of rock and its blood is mud, but while still animated it has organic fleshy innards with familiar bones and organs. Upon death, an Awakened Stone reverts quickly to a normal boulder. | | Awakened Stone â Urist likes awakened stones for their chiseled features. |
In combat, an
Awakened Stone is much more likely to bite than it is to use its claws. Tame specimens can be trained for hunting or war, but they cannot breed.
Awakened Stones have a high running speed (60kph) but accelerate slowly, and they are not slowed down as much as other creatures by climbing or crawling (19kph). They are also low-level building destroyers (able to destroy archery targets, slabs, statues, windows, wooden doors, and wooden hatches), making it that much harder to slow them down.
The creature tile for an
Awakened Stone is â (although this will only be visible if the creature graphics are disabled). The tile color is brown, dark gray, gray, light gray, or white depending on the stone type.
All 24 types of Awakened Stones are castes of the same AWAKENED_STONE creature. The creature's tile color varies by caste, but unfortunately it was not possible to make all of them visually distinct. Stonesense does a better job of distinguishing Awakened Stones from one another, and it even respects castes that come in a variety of surface colors.
The AWAKENED_STONE creature has no natural biomes, so it will never spawn in worldgen nor appear randomly on the map. Unfortunately, this means that they will never appear in caravans or Legends even if the race should logically have some prior contact with them.
TributesA Tribute is a 3x3 workshop constructed from three blocks of a layer stone. The Masonry labor is required to construct a Tribute and the Mining labor is required to perform sacrifices at one. These sacrifices are very expensive, so it is recommended that a Manager be used to assign a specific miner to the workshop to ensure that the intended Dwarf performs the sacrifice.
Each Tribute allows two reactions, either of which has the same effect upon the Dwarf performing the reaction. The first reaction (shortcut lowercase-L) consumes a large gem, and the second one (shortcut lowercase-H) consumes a normal cut gem of the Hidden Gem associated with that stone. For example, the Tribute to Marble allows "Sacrifice large gem (l)" and "Sacrifice hidden beryl (h)". | | Tribute O O XXX ∩ XXX O O XXX |
The Dwarf performing the sacrifice will be permanently affected by a syndrome (e.g., "marble favor") that has two effects. The first effect is that any
Awakened Stones that the Dwarf releases will be tame rather than hostile. The second effect is that the Dwarf suffers half-damage from anything made of that stone, including falling onto a floor of that material. Repeated sacrifices do not further reduce the damage.
The actual game mechanic for Awakened Stones is that the boil-away Living Stone causes a syndrome that uses DFHack's syndrome-trigger to run a script. The script determines if the miner is affected by the appropriate "favor" syndrome and spawns the Awakened Stone as tame if the "favor" syndrome is present and hostile otherwise. The script, tesb-spawn, can be run from the DFHack console. Type tesb-spawn -help for more information.
A cloud of blue mist appears when a sacrifice is performed at a Tribute. This is entirely cosmetic; the syndrome is applied through a reaction-trigger in DFHack, so there is no dependence on the Dwarf inhaling gas to contract the "favor" syndrome.
readme.txt
raw/onload.init
raw/graphics/graphics_tesb_awakenedstone.txt
raw/graphics/tesb/awakened_stone.png
raw/objects/building_tesb.txt
raw/objects/creature_tesb.txt
raw/objects/entity_default.insert
raw/objects/entity_default.txt
raw/objects/inorganic_stone_tesb.txt
raw/objects/material_template_tesb.txt
raw/objects/reaction_tesb.txt
raw/scripts/tesb-spawn.lua
stonesense/index.txt
stonesense/tesb/index.txt
stonesense/tesb/tesb_awakened_stone.png
stonesense/tesb/tesb_awakened_stone.xml
stonesense/tesb/tesb_buildings.png
stonesense/tesb/tesb_buildings.xml
stonesense/tesb/tesb_colors.xml
stonesense/tesb/include/tesb_cirlce.xml
stonesense/tesb/include/tesb_diamond.xml
stonesense/tesb/include/tesb_flat.xml
stonesense/tesb/include/tesb_octagon.xml
stonesense/tesb/include/tesb_square.xml
Version 0.12
Corrected error with reaction-trigger registration
Version 0.11
Designated Awakened Stones as "fanciful" so they appear in artwork
Clarified readme text
Fixed .zip file so that it can be unzipped directly onto the DF folder
Version 0.1
Initial alpha release to solicit feedback
Awakened Stones appear only in artwork until they show up in the player fortress.
Up to and including DFHack 0.40.13-r1, Stonesense has a bug that draws all custom workshops identically, including the Tributes, Soapmaker's Workshop, and Screw Press. Japa pushed a fix that will ship with the next release of DFHack.