File Listing: Uristmod - Mod Installer, Raw modifier | Windows | ||||||||||||||||||||||||
Last Updated: Apr 09, 2010, 11:49:08 pm First Created: Apr 05, 2010, 10:32:49 am Author: Shadowlord
Download Now |
||||||||||||||||||||||||
Description
Uristmod is a mod management program for Dwarf Fortress which provides additional capabilities for mod authors to allow them to write their mods to include changes files which are read and applied to the raws, insulating the mods against fixes and changes made to DF's raws as DF moves from version to version. One idea behind Uristmod is that instead of having to check your modified raws against the DF raws every time DF updates, and try to find everything you may have changed, you instead can write out your changes and to what they apply, and Uristmod will apply them to DF's raws. They're likely to be applicable directly without being modified again. Another is that it can find things and change them en masse for you, such as setting impact fracture to make all stone unmineable, but not soil or sand, and you could even exclude specific individual stone types such as obsidian if you wanted to. (It can also install tilesets and graphics sets, if they're placed in a folder so it sees them as a mod, and can update saved games when you update raws) Furthermore, it can update the raws inside your save game folders for you. It has a simple method for replacing characters in language files (for removing accents), can copy files without changing them if you desire (for new raw files, graphics files, fonts, the init file, etc), but its most sophisticated capabilities focus on finding existing blocks in raw files by matching [stuff] to regexes, removing [stuff] from them, adding [stuff] to them, or modifying [stuff] in them (you can also remove entire blocks). (SLTileset is a separate download now) The Linux version is released now as of 1.1, also a separate download. A bunch of bugs are fixed in 1.1, and some new features are added (which were tested and bugfixed prior to this being uploaded). 1.2 fixed another bug. 1.3 added the ability to use []s like in normal regexes by preceding them with \s, and allowed access to things like \d (their nonfunctionality was actually a mistake). The source code is included with Uristmod now (starting with 1.1). Examples from a .changes file: Code:
=== Make all rock unmineable except obsidian - won't affect sand, soil, or gems ===
?[INORGANIC:.*?]
?[IS_STONE]
![STATE_NAME_ADJ:ALL_SOLID:obsidian]
[IMPACT_FRACTURE:5000000]
=== Make a bunch of changes to kobolds (from Kobold Camp) ===
?[CREATURE:KOBOLD]
= This will add CAN_SPEAK if it doesn't exist already
[CAN_SPEAK]
[INTELLIGENT]
= These - lines remove an existing line in the raws
-[BONECARN]
= Note that it probably isn't going to place the new body size line with the others, but will place it near the end of the creature:kobold block, along with other things that it is adding to it - like can_speak, intelligent, and the kobold_materials body detail plan.
-[BODY_SIZE:12:0:20000]
= This adds the line instead of replacing another BODY_SIZE line.
+[BODY_SIZE:4:0:20000]
[CHILD:4]
-[MULTIPLE_LITTER_RARE]
== Swap out the STANDARD_MATERIALS plan for our replacement one which has fur ==
-[BODY_DETAIL_PLAN:STANDARD_MATERIALS]
== We have to use a + here because there are other [BODY_DETAIL_PLAN:.*?] lines in the kobold definition ==
+[BODY_DETAIL_PLAN:KOBOLD_MATERIALS]
= Change all INORGANIC metal ore (EXCEPT iron!) to tile 154
?[INORGANIC:.*?]
?[METAL_ORE:.*?]
= This looks for iron, and makes this block not apply to it
![METAL_ORE:IRON:.*?]
[TILE:154]
= Change all magma-safe stone to tile 199. The melting point line is basically looking for any numbers between 12000 and 19999. If we wanted even higher temperatures (Raw adamantine is the only inorganic with a higher melting point) we could change the 1 to a range as well.
?[INORGANIC:.*?]
?[MELTING_POINT:1\[2-9\]\d\d\d]
[TILE:199]
?[INORGANIC:.*?]
?[IS_STONE]
== Look for ENVIRONMENT OR ENVIRONMENT_SPEC with CLUSTER_SMALL
?[ENVIRONMENT.*?:CLUSTER_SMALL:.*?]
[TILE:7]
= Feather trees (this changes or adds the tree_tag, sapling_tile, tree_color, and sapling_color tags, depending on whether they already exist or not)
?[PLANT:FEATHER]
[TREE_TILE:245]
[SAPLING_TILE:141]
[TREE_COLOR:2:6:1]
[SAPLING_COLOR:2:6:1]
= Quarry bushes. Should change the leaf art to 166, if it was still tile 6 before.
?[PLANT:BUSH_QUARRY]
[LEAVES:quarry bush leaf:quarry bush leaves:166:7:0:0:0:1:6:LOCAL_PLANT_MAT:LEAF]
= Cave wheat
?[PLANT:GRASS_WHEAT_CAVE]
[PICKED_TILE:159]
[PICKED_COLOR:7:0:1]
Your raws at the first time that Uristmod does anything to them are backed up to DF/originalRaws, and that folder is what Uristmod bases everything on when it installs mods. If you uninstall a mod, it'll reinstall all the others in case they overrode each other. The manual explains the syntax of everything for modders, and how to make graphics sets into a mod (it's easy, you put the raw\graphics into a folder (ideally named SomethingG so it's clear it's a graphics set) and add an empty graphics_example.txt), how to install it, how to use it, and so on and so forth. Uristmod is coded in Haskell, which made it easily portable to Linux. If I had a Mac with OS X, I'd make a Mac port too, but I don't. (I have a Mac with OS 6 or 7 or something with a broken keyboard sitting in a basement, but it's quite useless.) It is open source, though, so if anyone with Mac OS X wants to use it, they can still compile it themselves if they want to. Uristmod is actually also compatible with 40d, except you wouldn't want to use the "Update saved games' raws" feature. Of course, most mods for DF2010 won't be compatible with 40d and vice versa. |
||||||||||||||||||||||||
Checksum / Hash | ||||||||||||||||||||||||
SHA-256: fee641a468440a16946d1b96c99d083425a09e94d0ad4a992dc42884d79268a2 | ||||||||||||||||||||||||
IP: logged Commands |
||||||||||||||||||||||||
More From This Author |