Difference between revisions of "Modding"

From UnReal World Wiki
Jump to: navigation, search
(Quick and Dirty Tutorials)
([assist] tag added)
 
(39 intermediate revisions by 12 users not shown)
Line 1: Line 1:
2010 and patch 3.13 brought an exciting new change to the game, the ability to start adding in our own modifications to the game. The overall ability to mod started out very rudimentary and was largely undocumented, but as time has gone by we have seen steady improvements and additions. As of September 2014, there still wasn't very complete information about modding, and what there was was sometimes vague, and oftentimes contradictory in it's nature. This is an attempt to create a complete, readable piece of documentation on modding and how it can be applied, and is intended to be a growing body of work as this amazing aspect of the game continues to grow and be developed.
+
2010 and patch 3.13 brought an exciting new change to the game: the ability to start adding in our own modifications. The overall ability to mod started out very rudimentary and was largely undocumented, but as time has gone by we have seen steady improvements and additions. This is an attempt to create a complete, readable piece of documentation on modding and how it can be applied, and is intended to be a growing body of work as this amazing aspect of the game continues to grow and be developed.
  
 +
=='''Moddable Files'''==
  
 +
: Modding in UnReal World is done in a simple text-based format. Moddable text files are saved in the main directory of the game.  They are dynamically loaded in by the game, and so can be edited in real time with the game running.  This allows you to modify and immediately test your mods without having to restart the game.  The syntax is simple and easy to learn.  There is no documentation of the syntax in the file itself, but using this guide you will  quickly become accustomed to it and become able to write new mods in no time.
 +
:
  
 +
====='''<u>What tools do I need to start modding?</u>'''=====
  
[[User:Modding#Quick_and_Dirty_Tutorials|Just Want To Jump Right In?]]
+
: As all of the files you'll be modifying are text files, any simple text editor will do the job.
 
+
: For Windows machines, Notepad++ comes highly recommended, as it has some additional tools to make editing files simpler.  On OSX Textedit or Textmate both work well and vim or emacs will work fine on Unix-based systems.
The section below is intended as an in-depth examination of all of the elements involved in creating a Mod.  Slip to the end for a quick and dirty hands-on introduction to modding if you just want to dive in.  That section will reference this one extensively, so don't worry about getting lost!
+
 
+
 
+
 
+
 
+
 
+
=='''The Elements of Modding'''==
+
 
+
 
+
: Modding in UnReal World is done in a remarkably simple and approachable format. Each of the files is saved in the main directory of the game, and are so low impact that you can edit them in real time, giving you the ability to modify them and immediately test them without having to reboot or make any major changes. This makes everything incredibly simple to test, alter, tweak, and check for balance as you move along.
+
: Additionally, the files are named in a very obvious and approachable fashion, leaving little question as to what goes where or how to go about fiddling with it. The syntax is also incredibly approachable and easy to learn, though there are no obvious indicators telling you what the syntax does in the file itself, but with this guide you'll quickly become accustomed to it and writing quickly in no time.
+
 
+
 
:
 
:
  
==='''<u>What tools do I need to start modding?</u>'''===
+
===== <u>'''What files will I be working with?'''</u> =====
  
: As all of the files you'll be modifying are textfiles, any text editor will do the job.  This is just one of the things that makes modding so incredibly approachable.  You don't need to be a programmer to make it work, you just need to be able to follow some fairly basic instructions and you'll be creating your own UnRealWorld experience in no time at all.
+
: There are two ways to modify UnrealWorld.  First, you can modify the pre-existing files in the game directory however you like.  Second, you can add new files to the game directory with appropriate names that will be loaded by the game as well as the pre-existing files. When possible, it is best to create new files for a mod, as that helps prevent conflict between different mods being used.
: If you're looking for something paricularly well suited to more involved mods, I might suggest Notepad++, it's ability to maintain files in a single window, separated by tabs, makes it my personal favorite.
+
: Open up the game directory for UnrealWorld.  On Windows, simply open the folder containing the executable file.  On OSX, right-click the App icon and select "Show Package Contents", then click on the "Contents" and "Resources" subdirectories.
:
+
=== <u>'''What files will I be working with?'''</u> ===
+
  
: Let's start with talking about what files you can actually change.  To begin with the ones we'll be primarily concerning ourselves with are located in the main UnRealWorld directory.  Within this directory are the only files you'll need for a basic Mod, (More advanced or in-depth mods will be approached later, including how to change the UnrealWorld Encyclopedia available in game).
+
==='''Root Files:'''===
: ''Important:  You won't actually be changing any of the files I'm about to introduce.''
+
: Within the root directory several text-editable files are found that contain much of the information for the game.  Not all of the game's crafting, cooking, and activities are available in these mod files (some is hard-coded), but quite a lot is.
: You'll be creating entirely new text files that can be inserted and removed from the core directory at will, all without changing the basic files the game came with.  This is one of the things that makes all mods essentially compatible, able to be added and removed at will, even while the game is running, without damaging anything.
+
  
===='''Root Files:'''====
 
: Within the core directory are located a collection of files that contain some of the basic vanilla information for the games items.  Not all the items you can make or cook within the game are to be found in these, and there are two distinctly different types of files within.
 
<p style="margin-left:24px;">
 
</p>
 
 
=====<u>'''Core Crafting Recipes'''</u>=====
 
=====<u>'''Core Crafting Recipes'''</u>=====
  
  diy_glossary.*               - Vanilla do-it-yourself recipes    (items)
+
  diy_glossary.txt               - Vanilla do-it-yourself recipes    (items)
 
   
 
   
  biy_glossary.*               - Vanilla build-it-yourself          (constructions)
+
  biy_glossary.txt               - Vanilla build-it-yourself          (constructions)  
 
   
 
   
  cookery_glossary.*           - Vanilla cooking recipes            (food)
+
  cookery_glossary.txt           - Vanilla cooking recipes            (food)
 +
 +
menudef_additional.txt          - Empty file for submenu definitions (menus)
 +
 
 +
: Within the above files are found the moddable vanilla recipes for crafting, building, and cooking food of all types.  You'll note that some actions like smoking meat or peeling bark from a tree, are not found within these files.  Anything not found here is hardcoded in the game and not available for modding.  These files will be quite useful as references when you're making your own mods.
  
: Within the above three files are contained the accessible vanilla recipes for creating new items, buildings, and cooking food of all types.  You'll note that things like cuts of meat, raw, smoked, or otherwise, are not contained within these files.  These files are the base recipes of each type for URW, and we won't actually be modifying these files, though they'll be exceptionally useful for reference.
+
: Any new text files with the diy_ biy_ cookery_ or menudef_ prefixes placed in the root directory will be loaded in by the game as mods. We'll get into how to create and structure these files later.
  
 
=====<u>'''Core Plant Files'''</u>=====
 
=====<u>'''Core Plant Files'''</u>=====
  
: For completeness, and a slightly more advanced form of modding, find these files below.  Adding plants is a bit more complex than adding simple recipes and new items.  While they're still text files, there are a lot more parameters to consider and tweak along the way, and it's not nearly as easy to test the results of your modded plants as it is to test your new stone knife, for instance.
+
: The definitions of plants within the game are defined in flora_* files, as described below.
  
  flora_berries.*               - Vanilla Berries
+
  flora_berries.txt               - Vanilla berries
 
   
 
   
  flora_cultivated.*           - Vanilla Crops
+
  flora_cultivated.txt           - Vanilla crops
 
   
 
   
  flora_herbs.*                 - Vanilla herbs
+
  flora_herbs.txt                 - Vanilla herbs
 
   
 
   
  flora_mushroom.*             - Vanilla mushrooms
+
  flora_mushroom.txt             - Vanilla mushrooms
 
   
 
   
  flora_newherbs.*             - More vanilla herbs
+
  flora_newherbs.txt             - More vanilla herbs
  
: We'll address these and others later, for now merely be aware they're there, and where to find them.
+
: As with crafting recipes, new plants can be added to the game by adding a new text file with the flora_ prefix to the game directory.  This will make the plant available to the game but not necessarily spawn it within pre-existing game worlds.  Full modding and testing of plant files can be more complex than adding simple recipes and new items.  For more details, see [[Modding Plants]].
  
 
=====<u>'''Encyclopaedia File'''</u>=====
 
=====<u>'''Encyclopaedia File'''</u>=====
: The ingame encyclopaedia can be edited (check [[Modding Encyclopaedia]]). All text is contained in one file:
+
: The ingame encyclopaedia can be edited. All text is contained in one file:
 
   
 
   
 
   GAME.NFO
 
   GAME.NFO
  
 +
For more details, see [[Modding Encyclopaedia]].  It may be a good idea to add encyclopaedia entries for new and unusual items your mod may be adding to the game to make it easier to use for players.
  
 
<center>[[File:seperatoricon.png]]</center>
 
<center>[[File:seperatoricon.png]]</center>
  
== '''Basic Syntax''' ==
+
== '''Modding Syntax''' ==
  
: In this section we're going to open the files mentioned above, take an example from each, and talk about the component parts and what they mean.  This section will be incredibly useful down the road, and will ultimately comprise it's own section on the wiki, but for now a basic approach is all we really need.
+
: In this section we'll discuss the syntax for mods and how it's used across the crafting, building, and cooking files.
  
 
==='''<u>Basic Crafting Parameters</u>'''===
 
==='''<u>Basic Crafting Parameters</u>'''===
  
: First, open up diy_glossary in a text file, and let's take a look at the first item listed:
+
: First, open up diy_glossary in a text file, and take a look at the first item listed:
  
 
  [SUBMENU_START:weapon]
 
  [SUBMENU_START:weapon]
  .Stone-axe. [effort:2] [phys:arms]<span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span>/3h/
+
  .Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/
  {Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>[remove]
+
  {Stone} [remove]
 
  {Slender trunk} [remove]
 
  {Slender trunk} [remove]
 
  {Rope} [remove]
 
  {Rope} [remove]
Line 86: Line 76:
 
  [SUBMENU_END:weapon]
 
  [SUBMENU_END:weapon]
  
 +
====='''<u>[SUBMENU]</u>'''=====
  
 +
: Every crafting option in the game is accessible through a menu.  The [SUBMENU] parameter tells the game where you want this particular set of crafting options to appear.  Multiple items can appear in a single submenu.  In this case, the stone axe should show up in the weapon submenu.
  
: Now before you start panicking, the '''... '''isn't actually in that file, it just means 'there's other stuff here'. Much further down the page you'll find the next part listed, the [SUBMENU_END:weapon].  We're going to talk about those first.
+
: Defining which submenu a crafting option appears in is done with the [SUBMENU_START:"Name"] and [SUBMENU_END:"Name"] flags. Start the submenu, add in all the items you wish to appear in that submenu, then end the submenu. Items can be easily added on to the default submenus: lumber, trapping, transport, utility article, weapon, etc.
 
+
[[File:URW_MAKEMENU_WPN.png|thumb|'M' will get you here, where we find the Weapons menu.]]
+
 
+
====='''<u>[SUBMENU]</u>'''=====
+
 
+
: Every crafting option in the game is accessible through a menu.  The [SUBMENU] parameter merely tells the game where you want this particular list of options to show up.  You can include multiple items in this list, which is why there is a [SUBMENU_START] and [SUBMENU_END] parameter.  In this case, we're talking about this showing up in the weapon menu, which surely you're familiar with.  But here's an image to refresh your memory.
+
: The Stone-Ax, as you know, is found within this menu, and the above chunk of code is why. The syntax for the SUBMENU parameter is pretty simple.  
+
  
 
  [SUBMENU_START:''MenuName'']
 
  [SUBMENU_START:''MenuName'']
  <Items to add to this list>
+
  <Modded items>
 
  [SUBMENU_END:''MenuName'']
 
  [SUBMENU_END:''MenuName'']
  
 
====='''<u>Custom Menus</u>'''=====
 
====='''<u>Custom Menus</u>'''=====
: Creating menudef_<anyname>.txt files it's possible to add sub-menus to MAKE items and COOKERY menus.
+
: By creating a new menudef_<anyname>.txt file it's possible to add sub-menus to the MAKE and COOKERY menus. Just make a list of submenu headers to create in the new file:
Just make a list of submenu headers You want to create:
+
  
 
  .foundry.      -A- *MAKE*
 
  .foundry.      -A- *MAKE*
  .my linen.     -D- *MAKE*
+
  .linen.         -D- *MAKE*
.my wool.      -E- *MAKE*
+
.my nettle.    -F- *MAKE*
+
.my bark.      -G- *MAKE*
+
.my ring.      -H- *MAKE*
+
.my mail.      -J- *MAKE*
+
.my irons.      -I- *MAKE*
+
 
+
use lower case name for your submenu
+
-A- is the menu key, it must be specified and be any upper case key that doesn't exist in the target menu yet.
+
 
+
<nowiki>*parent menu* defines the parent menu.</nowiki>
+
Possible options are: *MAKE* and *COOKERY*
+
  
 +
: The name of the new submenu starts the line, beginning and ending with a period '.' 
 +
: The menu key "-A-" starts and ends with a dash, must be specified, and can be any upper case key that does not conflict with a previously defined submenu.
 +
: Finally, the parent menu can be defined as *MAKE* or *COOKERY*, to determine where the new submenu shows up.
 
   
 
   
 
Then just place the craftable items in your diy_ or cookery_ files between
 
Then just place the craftable items in your diy_ or cookery_ files between
Line 129: Line 104:
  
 
===='''<u>First Line Parameters</u>'''====
 
===='''<u>First Line Parameters</u>'''====
 +
 +
The first line of each item looks something like
 +
.Stone-axe. [effort:2] [phys:arms] *COMMON*  /3h/
  
 
====='''<u>.ItemName.</u>'''=====
 
====='''<u>.ItemName.</u>'''=====
  
: The next thing you'll notice on the list is:
+
: The first element of the first line determines both the default name of the crafted object and how the crafting option appears in the crafting submenu.
  .stone-axe.
+
  .Stone-axe.
: This represents two things, the way the item will appear on the list in the menu you've selected, and the default name of the object you'll be making.  Under specific circumstances there are way to make the name of the object be different from this, but by default, the name of the item produced will be the same as the name of the item on the menu.
+
: The name needs to begin and end with a period and start the line.  If you wish to use a different name for the entry in the crafting submenu and the item name, use the submenu entry name here and the name can be redefined elsewhere.
: What is contained between the leading and ending .'s seems to be able to be about anything, including spaces and punctuation, so don't be afraid to put what you like in there.  Shorter is generally better, of course.
+
  
 
====='''<u>"Base Item"</u>'''=====
 
====='''<u>"Base Item"</u>'''=====
  
: This isn't actually listed in the diy_glossary file, but it's worth mentioning here. If the item you're creating isn't using the name of a vanilla item like the stone-ax, then this will determine what item it uses for it's base information.  This allows you create a Stone Knife, for instance, that is based upon the basic knife.  That would like like so:
+
: This property isn't actually used in the diy_glossary file, but is required for mods. If the item you wish to craft isn't a vanilla item like the Stone-axe, then this will determine what item it inherits all of its item properties from (like weight, price, armor, attack, etc.).  This allows you create a Stone Knife, for instance, that is based upon the basic knife.
 
+
 
  .Stone Knife. "Knife"
 
  .Stone Knife. "Knife"
: What this says is that the item will appear on the menu as Stone Knife, and will use the vanilla item Knife for it's base attributes like weight, skill to use, damage, and how it is treated for various crafting recipes.  Any vanilla item can appear in " " at this point and be used as the source for this base attributes.
+
: Any vanilla item can be used, and it needs to begin and end with a double quotation mark ".
 +
: Be warned that your new item will appear to the game as both the original base item and the new item.  So if you create a .Lump of Iron. item that inherits from "Stone" then that item can be used as both a Lump of Iron or as a Stone --- including, for example, when crafting a Cellar or a Stone-Axe.  It's wise to use base items that aren't likely to be used as crafting ingredients.  Hunting Horn is a commonly used base item, for example.
  
 
=====<u>'''[effort: ]'''</u>=====
 
=====<u>'''[effort: ]'''</u>=====
  
<span style="line-height:14px;">.Stone-axe. [effort:2] [phys:arms] </span>
+
: When performing any task in the game, from felling a tree to fishing, there is a section labeled "Effort" under your progress meter. This determines how difficult a task is and how much fatigue you gain while performing it.
COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span><span style="line-height:14px;">/3h/</span>
+
: There are 6 levels of effort:
  
: '''''This parameter Must Be In All Lowercase or It Will Not Work'''''
+
  '''0:''' Easy (Not fatiguing at all)
 
+
[[File:URW_EffortDisplay.png|thumb|Felling a Tree is a Heavy Effort]]
+
: Next on the list is the [effort: ] parameter.  You've probably noticed when performing any task in the game, from felling a tree to fishing at a lake, that there is section labelled "effort" under your progress meter. This determines how difficult a task is to accomplish, and how much fatigue you gain in the time it takes to do it.
+
: '''There are 6 levels of effort:'''
+
 
+
  '''0:''' Easy
+
 
  '''1:''' Light
 
  '''1:''' Light
 
  '''2:''' Moderate
 
  '''2:''' Moderate
  3:''' Hard'''
+
  '''3:''' Hard
 
  '''4:''' Heavy
 
  '''4:''' Heavy
 
  '''5: '''Very Heavy
 
  '''5: '''Very Heavy
  
The [effort: ] parameter is optional, with the effort defaulting to easy if it is excluded.
+
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/
  
 +
: This parameter must be in lowercase.  Simply add [effort:X] to the first line of your item to describe how difficult it is to craft.  This parameter is optional, and defaults to easy (no fatigue) if not included.
 +
 +
=====<u>'''[phys:]'''</u>=====
  
 +
: Some crafting tasks have specific physical requirements of the character.  Some must be done standing, or require two hands, etc., and may not be able to be done if the character is injured.
 +
: Possible tags for this parameter are:
  
=====<u>'''[phys:]'''</u>=====
+
  stance              - be standing
This parameter defines what the physical requirements of the recipe are.  Some recipes must be completed standing up, others may require only one hand to be free, while another requires both hands and arms to be available to accomplish the task.  These can become important as game-play goes on, especially since injuries can lead to a character no longer being entirely sound of body. The format of the parameter is [phys:parameters separated by commas], and can include any number of requirements.
+
Defines physical condition requirements.
+
+
Possible tags are:
+
  stance              - you need to be standing
+
 
  arm                - one arm from shoulder to hand in usable condition
 
  arm                - one arm from shoulder to hand in usable condition
  arms                - boths arms from shoulder to hand in usable condition
+
  arms                - both arms from shoulder to hand in usable condition
 
  hand                - one hand (plus forearm and elbow) in usable condition
 
  hand                - one hand (plus forearm and elbow) in usable condition
  hands              - both hands (plus forearms and elbows) in usable
+
  hands              - both hands (plus forearms and elbows) in usable condition
  one-armed          - it's possible to perform the task also with one arm/hand, but it will be slow and difficult.
+
  one-armed          - possible to perform the task with only one arm/hand, but it will be slow and difficult.
 
+
  
Note that in every case but one, the tags are describing the requirements for the task.  one-armed is a special case, stating that regardless of the other requirements, the task CAN be done one-armed, but will incur a penalty if the character is forced to perform it in this way.
+
: In all but the last case, the tag describes the requirements for the task.  
 +
: To use the parameter, add [phys:X] to the first line of your item, where X is a comma-separated list of appropriate tags.
 +
: For example, below is a diy version of a javelin recipe:
  
For example, below is a diy version of a javelin recipe:
 
 
  .Javelin. [effort:1] [phys:hands,one-armed] *COMMON* /30/ [patch]
 
  .Javelin. [effort:1] [phys:hands,one-armed] *COMMON* /30/ [patch]
  
 +
This recipe states that ideally both hands will be available for the work, but if necessary the task can be performed one-handed.  It will take longer and have lower chance of success in these instances, but it can be done.
  
This recipe states that ideally both hands will be available for the work, but if necessary can be performed one-handed.  It will take longer and have lower chance of success in these instances, but it can be done.
+
=====<u>'''*SKILL*'''</u>=====
  
 +
: This parameter indicates what skill is used during the crafting task.  This affects the quality of the items produced, the time taken, and allows for training of the skill with this task.
 +
: All available skills can be used here, as well as *COMMON*.  *COMMON* is simply a default skill that is always at skill 50% and can never be increased.  This can make it a good reference skill if other skills don't fit well.
  
 +
.Stone-axe. '''[effort:2]''' [phys:arms] *COMMON* /3h/
  
 +
: To use, add the name of the skill you wish to use in all uppercase, beginning and ending with an asterisk *.
 +
: The largest impact of skill is on item quality, where the character skill determines the minimum and maximum quality item it is possible to produce with good quality ingredients and tools.  Below 20%, no decent items can be made.  Below 40%, no fine items can be made.  Below 70%, no masterwork items can be made.  At 40% no crude items will be made.
  
  
<u>'''*SKILL*'''</u>
+
=====<u>'''/TimeToMake/'''</u>=====
  
<span style="line-height:14px;">.Stone-axe. '''[effort:2]''' [phys:arms]<span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span>/3h/</span>
+
: This parameter determines how long it takes to complete a particular recipe.  It can take longer than this if your fatigue level is high, your skill is poor, or your tools are poor.
  
: This indicates what skill is used as the base in the crafting of this item.  While including it is optional, it will default to *COMMON* if left-unmarked ''(verification needed).  ''*COMMON* isn't listed as one of the available skills, it is a default that every character has that starts and ends at 50%, nothing can be done to increase it.
+
.Stone-axe. [effort:2] [phys:arms] *COMMON* '''/3h/'''
: Being set at 50% makes it a useful skill to reference if nothing else seems to quite fit. In the event that you want something more difficult than *COMMON* as a base, *RITUAL* is often the next go to, as it is rarely about 40% on most characters.  Outside of these two instances, all other skills advance with use and time, and are often more appropriate for many tasks.
+
  
 +
: This is optional component, and defaults to 15 minutes if not included.  The number is normally read in minutes, but h or d after the number can be included to read in hours or days.
  
<center>[[File:seperatoricon.png]]</center>
+
=====<u>\'''TimeToComplete\'''</u>=====
<br/>
+
<center>'''Available Skills:'''</center>
+
  
{| border="0" cellpadding="1" cellspacing="1" class="article-table" style="width: 500px;" align="center"
+
: While /5/ determines how long it takes to actually create the item, \ \ determines how long it must sit after crafting has finished to be ready.  So in the below example, it takes 2 hours to create Charcoal, and another 4 hours after that (during which my character can go do other things) for the item to be ready.  
|-
+
! scope="col" style="width:30%;"|
+
Lore/Craft Skills
+
  
! scope="col" style="width:30%;"|
+
.Charcoal. [effort:2] [phys:stance,arms] *TIMBERCRAFT* '''/2h/ \4h\'''
  
Physical Skills
+
: By including this value the item will sit on the ground where the recipe was completed until it is done.  This is often included in *COOKERY* recipes, but is also familiar from tanning hides.
  
! scope="col" style="width:30%;"|
+
=====<u>'''|Skill Advance|'''</u>=====
Combat
+
|-
+
|
+
  
Agriculture
+
: This parameter indicates how likely a skill increase check is made for the skill used when crafting the item.  The lower the number, the less likely you are to be able to increase your skill with this recipe.
  
|
+
.Birch-bark box. [effort:2] [phys:arms] *TIMBERCRAFT* /3h/ '''|-2|'''
Climbing
+
  
|
+
: This parameter defaults to 0, but can range over -2, -1, 0, 1, and 2.  Commonly used for simple items to make it difficult to use them to grind up skills.
Axe
+
|-
+
|
+
Building
+
  
|
+
=====<u>'''%SkillModifier%'''</u>=====
Skiing
+
  
|
+
: This value impacts how likely you are to get high quality results from crafting.  This can be anywhere between -100 and 100 and acts as a modifier to the skill in question when the recipe is used. 
Bow
+
|-
+
|
+
Carpentry
+
  
|
+
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/ '''%20%'''
Stealth
+
  
|
+
: In this case, COMMON is always 50%, so the modified skill value is 70%.  This then increases the likelihood of getting the best possible results (i.e., fine).
Club
+
: It is important to note that the skill modifier is only one part of a recipe, and even a recipe that reduces the modified skill to 0% can still regularly get decent or fine quality items if the materials are good and the character's base skill is high.
|-
+
|
+
Cookery
+
  
|
 
Swimming
 
  
|
+
=====<u>'''(NumberProduced)'''</u>=====
Crossbow
+
|-
+
|
+
Herblore
+
  
|
+
: A number in parentheses in this section indicates how many of the item will be produced per completed recipe. This means that with the resources listed in the recipe, you will wind up with this many items.  This is one of two ways to use a recipe to produce multiple objects, the other is [patch:]
  
|
+
.Stone-axe. '''(2)''' *COMMON* /3h/  '''%20%'''
Dagger
+
|-
+
|
+
Fishing
+
  
|
 
  
|
+
=====<u>'''[patch:]'''</u>=====
Dodge
+
|-
+
|
+
Hideworking
+
  
|
+
: This parameter gives you the ability to make a varying amount of the recipe in a single go, and defines the maximum number of items which can be created at one time. The first place many encounter this is in *COOKERY*, where you can set up to 10 items to roast at once over a fire. Unlike with (NumberProduced), the number used for [patch:] acts as a multiplier to both the items used for the recipe (if marked as [patchwise]) and the /TimeToMake/.  If included without a number as [patch], it defaults to 10.
  
|
 
Flail
 
|-
 
|
 
Physician
 
  
|
+
=====<u>'''[noquality]'''</u>=====
  
|
+
: With the [noquality] parameter in the first line of the recipe, all items produced by this recipe will be of decent or unnamed quality, regardless of skill or skill modifier.
Shield
+
|-
+
|
+
Ritual
+
  
|
 
  
|
+
=====<u>'''[assist:value]'''</u>=====
Spear
+
|-
+
|
+
Survival
+
  
|
+
: This tag defines maximum number of companions whose labor input can help to shorten the working time. The value can be 1, 2 or 3. Companions shorten the working time by 10-20% for the first companion and 5-10% per additional effective companion.
 +
<center>[[File:seperatoricon.png]]</center>
  
|
+
===='''<u>Ingredients and Related Modifiers</u>'''====
Sword
+
|-
+
|
+
Timbercraft
+
  
|
+
: Now that you've finished all the first line parameters, describing the item and the parameters of making it, it's time to move on to describing the ingredients, and how they're handled in the recipe.  This section will describe what tools and resources are required, and what happens to them during crafting.  It is important to note that both tools and resources are treated as ingredients and can, if you choose, be consumed in the process.
  
|
+
=====<u>'''{item}'''</u>=====
Unarmed
+
|-
+
|
+
Tracking
+
  
|
+
: This parameter can occur multiple times following the first line of the recipe, and indicates an ingredient, tool, or other requirement for the recipe.
 +
: Let's refer back to our example.
  
|
+
{Stone} [remove]
|-
+
{Slender trunk} [remove]
|
+
{Rope} [remove]
Trapping
+
{Knife} <Broad Knife>
  
|
+
: Each of these lines describes an item required in the creation of our modded object. In this case, the vanilla stone-axe. The first line says we need a stone, and that that stone will be consumed by the recipe.  The first three lines are essentially the same, indicating that a stone, a slender trunk, and a rope will all be required, and all of them will be consumed.  The last line indicates that you must also have any knife available, with the broad knife preferred. As it doesn't have the [remove] parameter, the knife will remain after you finish crafting your new axe.
  
|
+
: Any item name in the game can be used here --- including the names of new items you have modded into the game.  There are also several special general names that can be found in the Reference section at the bottom of this document.
|-
+
|
+
Weatherlore
+
  
|
+
: '''<u>Wildcards</u>'''
  
|
+
: Sometimes you want to allow multiple types of items to be used in a recipe but there's no predefined general name for what you want. To do this, you can use a wildcard *, such as in the following example:
|}
+
{* leather} [remove] #2.0#
  
<center>[[File:seperatoricon.png]]</center>
 
  
=====<u>'''/TimeToMake/'''</u>=====
+
: The * will permit any item whose name ends in "leather" to be used in the recipe.  As this requires 2.0 lbs of leather, multiple different leather items can be combined as ingredients here.
  
: This bit of the description describes how long it takes to complete a particular recipe.  As a note, it can take longer than this if your fatigue level is high, along with other factors including using the wrong tool to accomplish a task (We'll get to that in a bit).  But as a default, this is what it is.
+
=====<u>'''<Preferred Item>'''</u>=====
  
.Stone-axe. [effort:2] [phys:arms]<span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span>'''/3h/'''
+
: Sometimes you may want to allow a job to be performed with many types of tools, but to prefer a particular type.  In the event that the proper tool isn't available, another tool will stand in, but it will take longer to accomplish.
 +
: Referencing our example again, the last item listed is the tool knife.
  
: Like most parts of the recipe, it's an optional component, and defaults to 15 minutes if not included.  The number in the / / is in minutes, though the h or d modifier can be included to extend the duration to hours or days.
+
{Knife} <Broad Knife>
  
 +
: In this example any knife would be able to get the job done, but a broad knife would make the job go faster. Using a different type of knife may also lower the quality of the item.
 +
: There are only a couple of places where this can be done; wildcards cannot be used to define this.  In particular, cutting weapons, axes, knives, and shovels can all have a preferred tool set for them.
  
 +
=====<u>'''[remove]'''</u>=====
  
=====<u>\'''TimeToComplete\'''</u>=====
+
{Stone} '''[remove]'''
  
: While /5/ tells the recipe how long it takes to actually create the item, / / tells the recipe how long it must sit after the fact to be ready.  So in the below example, it takes 3 hours to create the stone axe, and another 5 minutes after it's done for the item to be complete.  
+
: This parameter indicates that the resource in question will be removed from your inventory upon completion of the recipe. That's pretty much all there is to it. Remember that {item} can be a tool as well as a resource, so it isn't always appropriate to remove an ingredient in your recipe.
  
.Stone-axe. [effort:2] [phys:arms]<span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span>'''/3h/ \5\'''
+
=====<u>'''(NumberRequired)'''</u>=====
  
: By including this value you also say that the item will sit on the ground where the recipe was completed until it is done.  This is often included in *COOKERY* recipes, but is also familiar to the average player during tanning hides.
+
: When included in the ingredient section after an item, a number in ()'s indicates the number of this item required to perform the task.  For instance:
  
 +
{Stone} '''(2)''' [remove]
  
 +
: Will require two stones in your inventory, both of which will be removed, to complete the recipe.  This is one of the main ways to indicate multiple items being required in a recipe.
  
=====<u>'''|Skill Advance|'''</u>=====
 
  
: This is another value that doesn't appear in our default example, but is mentioned here for completeness.  If it isn't included, it defaults to a value of 0, but can range from -2 to 2 in whole integers.  What this number indicates is how likely often a skill increase check is made. The lower the number, the less often an opportunity will arise to have your skill increase when performing this recipe. Useful when you expect a skill to be used frequently, and don't want to have it be an easy grind to increase your skill.
+
<center>[[File:seperatoricon.png]]</center>
: In a recipe it would look as follows
+
  
.Stone-axe. [effort:2] [phys:arms]<span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span>/3h/ '''|1|'''
+
=====<u>'''#weight#'''</u>=====
  
 +
: This parameter contains a numerical value that can be either a whole number, or a decimal.  (%5% vs %.05%)  While it appears that any number of decimal places can be used, it will round up or down to two decimal places.
 +
: It is possible to require a certain amount of a resource WITHOUT it being consumed, so the below example would require .5 pounds of rock to use the recipe, but the rock would remain after.
  
=====<u>'''%SkillModifier%'''</u>=====
+
{Rock} #.5#
  
: This value helps determine the difficulty of the recipe, and can make it more difficult, or easier, to get good results from your materials.  At the time of this writing, it can be assumed that this number can be any value, though it is most commonly seen to range from %-30% to %30%, and defaults to %0%. The number acts as a positive or negative modifier to the skill in question when this recipe is used.
+
: While the below would remove .5 pounds of rock from your inventory.
.<span style="font-family:Helvetica,Arial,sans-serif;">Stone-axe. [effort:2] [phys:arms]</span><span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span><span style="font-family:Helvetica,Arial,sans-serif;">/3h/ |1|</span>''' %20%'''
+
: It is important to note that the skill % is only one part of a recipe, and even a recipe that essentially reduces the skill to 0% can still regularly get decent or fine quality items if the materials are good.
+
  
 +
{Rock} #.5# [remove]
  
 +
:As a rock object weights 1 pound by default, the following would be seen in your inventory after having done this.
 +
: [[File:URW_WeightExample.png|frame|left|Consuming part of a full object will leave this meter showing.]] <div style="clear: both"></div>
  
=====<u>'''(NumberProduced)'''</u>=====
+
=====<u>'''=length='''</u>=====
  
: A number in brackets in this section indicates how many of the item will be produced per completed recipe. This means that with the resources listed in the recipe, you will wind up with this many items.  This is one of two ways to use a recipe to produce multiple objects, the other is [patch:]  (numberproduced) would look like the following in a recipe:
+
:Required length of raw material for crafting can be indicated with a numerical value between equals signs (=). The length unit is foot and value has to be whole number. The tag can be naturally applied only to items that have a length property. For example:
  
  .<span style="font-family:Helvetica,Arial,sans-serif;">Stone-axe. '''(2) *'''</span>COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span><span style="font-family:Helvetica,Arial,sans-serif;">/3h/ |1|</span>''' %20%'''
+
  {Birch-bark strip} =5= [remove] 
  
 +
:This means that 5 feet of birch-bark strips are required, which are then removed in the process.
  
=====<u>'''[patch:]'''</u>=====
+
=====<u>'''[patchwise]'''</u>=====
  
: This parameter gives you the ability to make multiples of the recipe in a single go. The first place many encounter this is in *COOKERY*, where you can set up to 10 items to roast at once over a fire. The number in patch can arguably be set to just about anything, but remember that it acts as a multiplier on the /TimeToMake/.  Without being included, it defaults to one.  If included without another parameter, [patch], it defaults to 10.
+
: Patchwise on ingredients is used when patch is set in the first line of the recipe.  It flags an ingredient as being required for each output item produced, rather than only once for the recipe as a whole. Thus if you have a [patch:10] recipe that takes .5 lbs of rock, without [patchwise] it will always take .5 lbs of rock.  With [patchwise] it will take .5 lbs for every item you make, up to the max of 5 lbs when you make 10 items.
  
  .<span style="font-family:Helvetica,Arial,sans-serif;">Stone-axe. [effort:2] [phys:arms]</span><span class="Apple-tab-span" style="white-space:pre"> </span>*COMMON* <span class="Apple-tab-span" style="white-space:pre"> </span><span style="font-family:Helvetica,Arial,sans-serif;">/3h/ |1| %20%</span>'' '''''[patch:5]'''
+
  {Rock} #.5# [remove] [patchwise]
: In the above recipe, you could make up to 5 stone axes in a sitting, but it would take /3h/*5, or 15 hours, to do so.  This parameter is almost always seen in connection with [patchwise]
+
:
+
===='''<u>The Ingredients and Related Modifiers</u>'''====
+
  
: Now that you've finished all the first line parameters, describing the item and the parameters of making it, it's time to move on to describing the ingredients, and how they're handled in the recipe.  This section will describe what tools and resources are required, and what happens to them during crafting.  It is important to note that both tools and resources are treated as ingredients and can, if you choose, be consumed in the process.
+
=====<u>'''[yield:num]'''</u>=====
 +
:The [yield:num] tag is used to specify for how many produced items the single raw material entry is enough for, i.e. how many finished items it can yield. The tag is used for making blunt arrows as follows:
  
=====<u>'''{item}'''</u>=====
+
{Slender trunk} [yield:3]
  
: This parameter occurs multiple times in the next section, and indicates an item required in the recipe.  It can describe a tool like an axe or knife, or a resource like wood or leather, to the recipe, it's all essentially treated the same way.
+
:This means one slender tree trunk can yield three produced items ie. blunt arrows. So, for example to craft six blunt arrows you would need 2 trunks. Crafting 7-9 blunt arrows you would need 3 trunks, and so on.
: Let's refer back to our example.
+
  
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>[remove]
+
 
  {Slender trunk} [remove]
+
=====<u>'''[optional]'''</u>=====
  {Rope} [remove]
+
 
 +
: This parameter describes ingredients that may or may not be used when crafting the item.  Most commonly used in cooking recipes, where ingredients may be optionally used that increase the nutritiousness of the produced dish.  In the below example, the seasoning doesn't have to be included in the mix, but will add its nutrition if it is.
 +
 
 +
.Flatbread. (5) *COOKERY* /45/ %30% |-1|
 +
{Flour}    #0.5#  [remove] [roast] [name]
 +
  {Water}     #0.25#  [remove]  
 +
  {Seasoning} #0.15#  [remove] [roast] [optional]
 +
 
 +
=====<u>'''[noquality]'''</u>=====
 +
 
 +
: The [noquality] parameter can also be used with ingredients, where it prevents the ingredients from affecting the quality of the item being produced.  For example in the vanilla arrow recipe
 +
 
 +
.Arrow. [effort:1] [phys:hands,one-armed]  *CARPENTRY*        /30/    [patch:5]
 +
{Branch}  [remove] [patchwise] [noquality]
 
  {Knife}
 
  {Knife}
 +
{Feather} (3) [remove] [patchwise] [noquality]
 +
{Tying equipment} [remove] [patchwise]
 +
{Rock} [remove] [patchwise] [noquality]
  
: Each of these lines describes an item required in the creation of our modded object. In this case, the vanilla stone-axe. The first line says we need a stone, and that that stone will be consumed by the recipe.  The first three lines are essentially the same, indicating that a stone, a trunk, and a rope will all be required, and all of them will be consumed.  The last line indicates that you must also have any knife on you or in an adjacent square. but since it doesn't have the [remove] parameter, the knife will remain after you finish crafting your new axe. 
+
: We can see that {Branch}, {Feather}, and {Rock} all have the [noquality] tag, because none of them have qualities in the normal game. This means that the final quality of the arrow produced is based only on carpentry skill, the tying equipment quality, and the knife quality.
: A list of valid values for {item} will be covered in the Reference Section below.
+
: '''<u>Wildcards</u>'''
+
  
: Sometimes you want to permit one of a variety of items to be used in a recipe, such as leather. If you want to allow a recipe to do this, you need merely include a wildcard *, such as in the following example:
+
=====<u>'''[wearpct:num]''' and '''[nowear]'''</u>=====
{* leather}<span class="Apple-tab-span" style="white-space:pre"> </span>[remove]
+
  
 +
: The [wearpct:num] and [nowear] parameters were added in v3.83 and are used to describe the wear on the tools' haft durability used for a crafting operation. [wearpct:num] specifies custom wear out percentage rate (1-100) in relation to the highest rate (100) where tool is used intensely during the whole task, while the [nowear] tag means that the used tool doesn't wear out at all. These modifiers apply to all haftable items: Axes, Spears and Iron shovels, as of 3.84. See these examples:
 +
{Axe} <Carving axe> [nowear]
 +
:Here an axe is needed, preferably a carving axe, and it doesn't wear out at all in the said crafting/building task.
  
: The * will permit any leather to be used in the recipe (but NOT any Fur, for example).  There are a lot of options here that will be covered in the Advanced Syntax section.
+
{Cutting_weapon} <Axe> [wearpct:25]
 +
:Here a cutting weapon, preferably an axe, is needed. It wears out in 25% rate compared to the continuous intense axe work. Maybe the axe is needed only 25% of the time in this crafting/building task.
  
=====<u>'''<Preferred Item>'''</u>=====
+
====='''<u>[ground]</u>'''=====
  
: Sometimes you may want a job to be performed with any variation of a particular tool, but to prefer a particular type.  In the event that the proper tool isn't available, another tool will stand in, but it will take longer to accomplish.
+
: This parameter indicates that an ingredient or a tool may be used for the recipe when it's on the ground next to the character rather than only in the character's inventory. Commonly used for heavy items (like logs and tree trunks) or tools.  For example:
: Referencing our example again, the last item listed is the tool knife.  If you want to require that while a knife would do, a hunting knife would be better, you would add the following:
+
  
  {Knife} <hunting knife>
+
.Bow Stave. "Board" *CARPENTRY* %-10% /3h/
: In this example any knife would do to get the job done, but the hunting knife would make the job go faster.
+
  {Log} [remove] [ground]
: '''''(it is unknown to the author if there is also a quality penalty for using the wrong tool... Will ask Sami)'''''
+
{Axe} <Woodsman's Axe>
:
+
  
=====<u>'''[remove]'''</u>=====
+
: In this case, a log must be nearby to craft this recipe but need not be carried.
  
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>'''[remove]'''
+
=====<u>'''[nominlen]'''</u>=====
  
::: This purpose of this parameter was described above.  It indicates that the resource in question will be removed from your inventory upon completion of the recipe. That's pretty much all there is to it. Remember that {item} can be a tool as well as a resource, so it isn't always appropriate to remove an ingredient in your recipe.
+
:This tag, which stands for "no minimum length", can be used to indicate that length-based material requirement can be composed of several shorter pieces. For example:
  
: '''It is essential to note that if you wish to use the [name:] parameter, you MUST use remove as part of your recipe.  More on this later.'''
+
{Cord} =5= [nominlen] [remove]
  
 +
:This means that 5 feet of cord is required but you can come up with the total length using several shorter pieces. If [nominlen] tag wasn't used here the selected cord would need to be at least 5 feet long.
  
=====<u>'''(NumberRequired)'''</u>=====
 
<p style="font-size:14px;margin-left:24px;">When included in the ingredient section, after an item, a number in ()'s indicates the number of this item required to perform the task.  For instance:</p>
 
  
{Stone} '''(2)'''<span class="Apple-tab-span" style="white-space:pre"> </span>[remove]
+
=====<u>'''[name: %s]'''</u>=====
  
: Will require two stones in your inventory, both of which will be removed, to complete the recipe.  This is one of the main ways to indicate multiple items being required in a recipe, you can also dictate amounts with #weight#.
+
: This parameter overrides the default name given, allowing you to produce custom-named items based on the ingredients used to craft the item. In the below recipe, if you use cranberries as the berry ingredient, the result will be called 'Cranberry porridge', rather than 'berry porridge'
  
 +
.Berry porridge. *COOKERY* /15/  \90\  %50% |-1|
 +
{Berries}  #1#    [remove] [boil] [name:%s porridge]
 +
{Water} #0.5#  [remove]
 +
{Flour}  #0.1#  [remove] [boil] [optional]
  
=====<u>'''#weight#'''</u>=====
+
: The %s can appear anywhere in the name, and it will produce the same results. So 
  
:This parameter contains a numerical value that can be either a whole number, or a decimal.  (%5% vs %.05%)  While it appears that any number of decimal places can be used, it will round up or down.  So %0.554% will appear as .55 pounds, while %.555% will appear as 0.56 pounds.
+
[name: This %s Thing] = This Cranberry Thing
 +
[name: Thing %s]      = Thing Cranberry
 +
[name: %s Thing]      = Cranberry Thing
  
It is important to note that it is possible to require a certain amount of a resource WITHOUT it being consumed, so the below example would require .5 pounds of rock to use the recipe, but the rock would remain after.
+
: This takes the name of the item used, such as "Cranberry" above, and plugs it in for the %s. Note that %s can be only used once.
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>#.5#
+
: If multiple ingredients are used as input, then "Mixed" becomes the name used.
  
:While the below would remove .5 pounds of rock from your inventory.
+
=====<u>'''[naming: ]'''</u>=====
  
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>#.5# [remove]
+
: This parameter can only be used with the [name] parameter, and affects how the final item name is determined.  There are two options for this parameter:
  
:As a rock object weights 1 pound by default, the following would be seen in your inventory after having done this.
+
[naming:last word] - %s will get value of the last word of selected material/item name
: [[File:URW_WeightExample.png|frame|left|Consuming part of a full object will leave this meter showing.]]
+
[naming:original] - %s will get value of original and complete selected material/item name
  
 +
: For example,
  
 +
{* leggings} [name:Modded %s] [naming:last word]
  
 +
: will produce an item called "Modded leggings", while
  
 +
{* leggings} [name:Modded %s] [naming:original]
  
 +
: will produce an item such as "Modded leather leggings" if crafted with leather leggings.  Similarly,
  
 +
{Leather *} [name:Modded %s] [naming:last word]
  
<u style="font-style:inherit;font-weight:inherit;font-size:12px;">'''[patchwise]'''</u>
+
: if crafted using a leather shirt, would create an item called "Modded shirt".
  
: Patchwise is essential in any recipe that you wish to consume an appropriate amount of a resource to the number of items being made.  Returning to our example:
+
===='''<u>Terrain and Tile Requirements</u>'''====
  
 +
It's possible to add requirements about the kind of terrain and nearby tiles that would make sense for a particular recipe.
  
 +
=====<u>'''{[TERRAIN: ]}'''</u>=====
  
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>#.5#
+
: Sometimes you want a particular recipe to only be applicable when the character is in a particular kind terrain.  In the example below, quartz is only available from river beds.
: Would require you to have .5 pounds of rock available to perform this task, but would not require more than .5 pounds of rock, no matter how many you are making at once.  It would only require that one .5 pound of rock.
+
  
 +
.Quartz. "Rock" *COMMON* /30/ %-30% 
 +
{[TERRAIN:river]}
  
 +
: With the {[TERRAIN: } parameter, this recipe will only be able to be used if the character is in a river terrain.  Trying it anywhere else will give the message "The setting you are at now doesn't meet the requirements!"
 +
: Multiple TERRAINS can be specified in this parameter, separated by spaces.  In the following example Quartz can be found in both river and mountain terrain.
  
<p style="margin-left:24px;">
+
.Quartz. "Rock" *COMMON* /30/ %-30%
</p>
+
  {[TERRAIN:river mountain]}
  {Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>#.5# [remove]
+
: This on the other hand would still require .5 pounds of rock, but would consume it in the process of the recipe.  Again, no matter how many you're making at once, this would only require .5 pounds of stone.
+
  
 +
: This includes the terrain as a necessary 'ingredient' in the recipe.  But it will show up in your list of ingredients as [TERRAIN: river mountain] which isn't very attractive.  We'll address this further in +'descriptive text'.
 +
: A list of possible terrain types can be found in the Reference section of this document.
  
 +
=====<u>'''{[NEARBY_TILE]}'''</u>=====
  
<p style="margin-left:24px;">
+
: Not every tile in a local map is a river tile; it includes the shore and some of the surrounding terrain as well.  If you want to ensure that the character is both in a river terrain and next to water, you'll need to add the {[NEARBY_TILE]} parameter.
</p>
+
{Stone}<span class="Apple-tab-span" style="white-space:pre"> </span>#.5# [remove] [patchwise]
+
: In this case, the recipe would require .5 pounds of stone for *each* item you wished to make.  So if you selected to make a batch of 5, it would require 2.5 pounds of rock, and would remove all 2.5 from your inventory.
+
  
: So when would you not use patchwise?  When you're including a tool.  Remember, [[User:Modding#.7Bitem.7D|{item}]] can be a tool as well as a resource, so you may not always want it to be removed as part of the process, or multiplied as part of a batch of items with [patchwise].
+
.Quartz. "Rock" *COMMON* /30/ %-30%
 +
{[TERRAIN:river]}
 +
{[NEARBY_TILE:water]}
  
<center>[[File:seperatoricon.png]]</center>
+
: Now the character needs to be in a river terrain and standing next to or in a water tile to use the recipe.  There are many times when this may be appropriate, such as when you want to specify that a character must be next to a natural water tile to soak leather or sticks for some purpose, or if you need to be near a particular kind of tree for some timbercraft purpose.
  
==='''<u>Cookery Specific Parameters</u>'''===
+
=====<u>'''{[TILE]}'''</u>=====
  
: One of the primary differences between crafting recipes and cookery recipes, is that the items produced by the cooking recipe can spoil.  Some of the above parameters have slight differences in meaning, but are essentially applied the same way.
+
: {[TILE]} is used just like {[NEARBY_TILE]} except that it requires the character to be directly on the tile in question instead of only nearby. Make sure you don't use it with tiles that the character can't enter!
:
+
(This section heavily influenced by Blaze's Basic Modding Instructions Post on the forum, in some cases taken whole cloth)
+
  
=====<u>\'''TimeToCook\'''</u>=====
+
====='''<u>+'descriptive text'</u>'''=====
: This parameter functions exactly like \TimeToComplete\ listed above, with one important exception.  If the time indicated passes, the object will continue to cook.  This will result in the item burning, and the quality of the item progressively getting worse until it becomes 'spoiled'.  Not all recipes have a \TimeToCook\, and are complete as soon as the /TimeToMake/ is up, such as with the .Flatbread. recipe listed below.
+
  
====<u>'''Cooking Parameters'''</u>====
+
[[File:URW_NoDesciptTag.png|thumb|264px|The TERRAIN: and NEARBY_TERRAIN: parameters seen without +'descriptive text']]
: <span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;font-size:12px;line-height:19.200000762939453px;">Any item not marked with a [roast], [boil], or [bake] tag will </span>'''NOT'''<span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;font-size:12px;line-height:19.200000762939453px;"> contribute their weight/nutrition to the final product. So in the meat stew recipe above; the water will be removed, but will not contribute any weight to the final product.</span>
+
  
 +
: When putting together a recipe, such as the above one involving quartz, you may want to change the description of the components to add immersion or make it less ugly.
 +
: The +'descriptive text' parameter allows you to set alternative descriptions of a particular requirement or ingredient in the crafting screen.
  
=====<span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">'''[roast]'''</span>=====
+
.Quartz. "Rock" *COMMON* /30/ %-30%
: <span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">If any item is marked with this tag, you need to be next to a fire.  </span>
+
{[TERRAIN:river]}
 +
{[NEARBY_TILE:water]}
  
=====<u>'''[optional]'''</u>=====
 
  
: <span style="font-size:14px;">This parameter primarily appears in cooking recipes, where certain ingredients can be added or omitted, having an end result on the nutritiousness of the produced dish.  In the below example, the seasoning doesn't have to be included in the mix, but will give an added benefit if it is.</span>
+
: In this example, [TERRAIN:river] will show up as one of the requirements for the recipe, as will [NEARBY_TILE:water], as seen in the image above.  To prevent this, we can use the +'descriptive text' parameter.
  
.Flatbread. (5)<span class="Apple-tab-span" style="white-space:pre"> </span>    *COOKERY*<span class="Apple-tab-span" style="white-space:pre"> </span>/45/ <span class="Apple-tab-span" style="white-space:pre"> </span>%30%<span class="Apple-tab-span" style="white-space:pre"> </span>|-1|<span class="Apple-tab-span" style="white-space:pre"> </span>:148: 
+
[[File:URW_DesciptTag.png|thumb|263px|With +'descriptive text']]
{Flour}    #0.5#  [remove] [roast] [name]
+
{Water}    #0.25#  [remove]
+
{Seasoning} #0.15#  [remove] [roast] [optional]
+
  
 +
.Quartz. "Rock" *COMMON* /30/ %-30%
 +
{[TERRAIN:river]} +'Be near a river'
 +
{[NEARBY_TILE:water]} +'Be by the water'
  
=====<span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">'''[boil]'''</span>=====
+
: This parameter can also be used with regular ingredients to add more of a description.
: <span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">Requires a fire and pot the final product will be stored in the pot.  </span><span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">Any item marked with [boil] or [bake] is limited to the amount the pot can hold. So adding 20lb's of ingredients all marked with the appropriate tags will still result in having a 6lb pot of food.</span>
+
: If the plus is inside the quotes, as in '+descriptive text', the text will be added right after the ingredient text. Otherwise, it will substitute the entire ingredient entry (except for the quantity) as in the example above.
  
<p style="margin-left:24px;">
+
===='''<u>Item Property Parameters</u>'''====
</p>
+
  
====='''[bake]'''=====
+
: Several parameters can be used not just to define the recipe, but instead to adjust the properties of the crafted item.  The default properties are inherited from the base item used for the recipe.
: <span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;line-height:19.200000762939453px;">Requires a pot and a "heated room". i.e. a fireplace with embers. The final product will be stored in the pot.</span>
+
: These parameters are all used one per line after the ingredients list.
  
=====<span style="color:rgb(0,0,0);font-family:Verdana,Tahoma,Arial,sans-serif;font-size:12px;line-height:19.200000762939453px;"><u>'''[name: %s]'''</u></span>=====
+
====='''<u>General Parameters</u>'''=====
  
: This is essentially a more intelligent version of [name: ], and marks the end result with name of the ingredient used to make it. In the below recipe, if you use cranberries as the berry ingredient, the result will be called 'Cranberry porridge', rather than 'berry porridge'
+
'''[NAME: ]'''
  
.Berry porridge.<span class="Apple-tab-span" style="white-space:pre"> </span>*COOKERY*<span class="Apple-tab-span" style="white-space:pre"> </span>/15/ <span class="Apple-tab-span" style="white-space:pre"> </span>\90\ <span class="Apple-tab-span" style="white-space:pre"> </span>%50%<span class="Apple-tab-span" style="white-space:pre"> </span>|-1|<span class="Apple-tab-span" style="white-space:pre"> </span>:148: 
+
: This parameter allows redefining the name of the item producedPreferable to the [name: ] parameter on an ingredient because it's less buggyFor example:
{Berries} <span class="Apple-tab-span" style="white-space:pre"> </span>#1#    [remove] [boil] [name:%s porridge]
+
{Water}<span class="Apple-tab-span" style="white-space:pre"> </span>  <span class="Apple-tab-span" style="white-space:pre"> </span>#0.5# <span class="Apple-tab-span" style="white-space:pre"> </span>[remove]
+
{Flour} <span class="Apple-tab-span" style="white-space:pre"> </span>#0.1#  <span class="Apple-tab-span" style="white-space:pre"> </span>[remove] [boil] [optional]
+
<p style="margin-left:24px;">
+
</p>
+
  
 +
.Mine stone. 'Stone' *COMMON* /15/
 +
{[NEARBY_TILE:Big rock]} +'A rock to quarry'
 +
[NAME:Stone]
  
: The %s can appear anywhere in the name, and it will produce the same results. So 
+
'''[TILEGFX:]'''
  
[name: This %s Thing] = This cranberry thing
+
: Use a new tile for the item. Should be the name of the graphic file without the filename extension. File must be in the truetile folder.  For more information, see [[Modding Graphics]].
  [name: Thing %s]      = Thing Cranberry
+
  [name: %s Thing]     = Cranberry Thing
+
:
+
  
Essentially this takes the name of the item used, such as the cranberrys above, and plugs it in for the %s. Note that:
+
'''[TYPE:]'''
  
[name: This %s %s thing] = This cranberry thingThe second %s is ignored.
+
: Define the type of the itemMostly determines what section of inventory it can be found in. Can be any of
  
: Finally, if you use the %s on multiple ingredients, and both ingredients are used, such as in the following:
+
weapon / armour / tool / container / skin / food / timber / vehicle / plant / valuable
  
.Berry porridge. *COOKERY* /15/  \90\  %50% |-1| :148: 
+
'''[WEIGHT:]'''
{Berries}  #1#      [remove] [boil] [name:%s porridge]
+
{Meat}    #1#      [remove] [boil] [name:%s porridge]
+
{Water}    #0.5#    [remove]
+
{Flour}    #0.1#    [remove] [boil] [optional]
+
<p style="margin-left:24px;">
+
</p>
+
  
 +
: The weight of the item in pounds (by default), or in grams if the value is followed by a g abbreviation.
  
: The result will be: Mixed Porridge.
+
'''[LENGTH:]'''
  
=====<u>''':IconNumber:'''</u>=====
+
: The item length in feet. It's usage is intended for specifying length for modded ropes and cords so be sure to use it within proper item type context. Must be an integer (no fractions allowed).
 +
'''[PRICE:]'''
  
<p style="margin-top:0.4em;margin-bottom:0.5em;">This is a position of of item's icon (or serie of icons for flora) in a bigsprite.png file. If the end result is made in a pot, then this number is ignored.</p>
+
: The trading value of the item in squirrel hides per item (default) or per lb if the value is followed by 'per lb'.
  
<p style="margin-top:0.4em;margin-bottom:0.5em;">
+
'''[MATERIAL:]'''
</p>
+
  
<center>[[File:seperatoricon.png]]</center>
+
: The raw material the item is made of. Can be any of
==='''<u>Building Specific Parameters</u>'''===
+
  
 +
wood / iron / leather / fur / birch-bark / cloth / wool / rock / bone / antler
  
 +
'''[CONT_CAPACITY:]'''
  
 +
: For containers, the capacity of the container in pounds.
  
<center>[[File:seperatoricon.png]]</center>
+
====='''<u>Weapon Parameters</u>'''=====
==='''<u>Floral Specific Parameters</u>'''===
+
  
 +
'''[SKILL:]'''
  
 +
: The skill associated with the weapon.  Can be any of the weapon skills:
  
<center>[[File:seperatoricon.png]]</center>
+
unarmed / knife / sword / axe / spear / club / bow / crossbow / flail / shield
===<u>'''Advanced Syntax'''</u>===
+
: The above syntax will help you get started in modding.  These parameters below are intended to refine your recipes further, limiting where they can be done, changing the name of your results, adding in descriptive text to your recipe, and more.
+
  
 +
'''[*_ATTACK:]'''
  
 +
: There are three damage parameters that can be set for a weapon, each on its own line:  [POINT_ATTACK:], [EDGE_ATTACK:], and [BLUNT_ATTACK:].  They can be any integer between 0 and 9, or a dash -, in which case that type of attack is not allowed with the weapon. 
  
=====<u>'''{[TERRAIN: ]}'''</u>=====
+
'''[1H_PENALTY:]'''
: Sometimes you want a particular recipe to only be applicable when the character is in particular terrain.  In the example below, quartz is only available from river beds.
+
  
 +
: The skill penalty associated with using this weapon one-handed.  Can be any integer between 0 and 50.
  
<p style="margin-left:24px;">
+
'''[AD_CLASS:]'''
</p>
+
  
.Quartz. "Rock" *COMMON* /30/ |-2| %-30%
+
: The attack and defense bonuses for the weapon. Two values between 0 and 6, separated by a /. First value is the attack bonus, second is the defense bonus. Default is 0/0 (i.e., no bonuses).
   
+
  {[TERRAIN:river]}
+
  
 +
====='''<u>Armour Parameters</u>'''=====
  
: With the {[TERRAIN: } parameter set thusly, this recipe will only be able to be used if the character is in a river terrain.  Anywhere else will send the message "The setting you are at now doesn't meet the requirements!"
+
'''[ARMOUR_MATERIAL:]'''
: Multiple TERRAINS can be specified in this parameter.  In the following example Quartz can be found in both river and mountain terrain.
+
  
.Quartz. "Rock" *COMMON* /30/ |-2| %-30%
+
: The material the armour is made of.  This defines the protection values for the armour. Can be any of:
  {[TERRAIN:river mountain]}
+
: This essentially includes the terrain as a necessary 'ingredient' in the recipe.  But it will show up in your list of ingredients as [TERRAIN: river mountain] which isn't very attractive.  We'll address this further in +'descriptive text'.
+
:
+
  
=====<u>'''{[NEARBY_TILE]}'''</u>=====
+
lamellar / iron / mail / leather / fur / cloth / wool / birch-bark
  
: Not every tile in a local map is a river tile, it includes the shore and some of the surrounding terrain as well.  If you want to insure that the character is both in a river terrain, and next to water, you'll need to create a further specification.  You can do this with the {[NEARBY_TILE]} parameter.
+
'''[ARMOUR_COVERAGE:]'''
  
.Quartz. "Rock" *COMMON* /30/ |-2| %-30%
+
: The parts of the body the armour protects. Can be defined either using some predefined coverage categories:
{[TERRAIN:river]}
+
{[NEARBY_TILE:water]}
+
: Will indicate that not only does the character need to be in a river terrain, but standing next to (or in) a water tile to use the recipe.  There are many times when this may be appropriate, such as when you want to specify that a character must be next to a natural water tile to soak leather or sticks for some purpose.
+
:
+
  
=====<u>'''{* Wildcards}'''</u>=====
+
cloak / hauberk / long_hauberk / habergeon / cuirass / overcoat /
 +
greaves / rerebraces / vambraces / shirt / short_shirt / long_shirt / trousers / tunic
  
: The wildcard parameter is useful when you want to make an item able to be made out of any example of a certain class of materials, such as leather.  The below example will require 3 pounds of any kind of leather to create a new item called a 'leather pot', which has all the properties of 'pot'.  Any type, or indeed multiple types, of leather can be used to fill this 3 pound requirement.
+
: Or with a space-separated list of bodypart values:
  
  .Leather Pot. "Pot" *COMMON* /30/ |-2| %-30%
+
  skull / face / neck / shoulder / upper_arm / elbow / forearm / hand /  
  {* leather} #3# [remove]
+
  thorax / abdomen / hip / groin / thigh / knee / calf / foot
  
<p style="margin-left:24px;">
+
==='''<u>Cookery Specific Parameters</u>'''===
</p>
+
====='''<u>[Name: ]</u>'''=====
+
  
: Sometimes you want the name of a recipe in the list to be different than the name of the object it produces.  An excellent example exists as part of Endives Self Sufficiency Mod, where you can take branches and soak them to create soaked branches, which can then be processed into primitive cord.
+
: One of the primary differences between crafting recipes and cookery recipes, is that the items produced by the cooking recipe can spoil.  Some of the above parameters have slight differences in meaning, but are essentially applied the same way.
  
.Soak Branches. "Firewood"  *COMMON*  /5/    \1d\  %-30%  [patch:5] |-2|
+
=====<u>\'''TimeToCook\'''</u>=====
+
{Branch} (20) [remove] [patchwise] [name:Soaked Branches]
+
+
{Water} #1# [remove] [patchwise]
+
: In the above recipe, it appears in the crafting menu as 'Soak Branches', but the item it produces is 'Soaked Branches'.  A couple things to keep in mind when doing this, the [remove] tag '''must '''be included in the line with [name: ] or it won't function.  It's unknown if this is functioning as intended, but it has been proven to be the case in our current modding situation.
+
:
+
====='''<u>+'descriptive text'</u>'''=====
+
  
[[File:URW_NoDesciptTag.png|thumb|264px|The TERRAIN: and NEARBY_TERRAIN: parameters seen without +'descriptive text']]
+
: This parameter functions exactly like \TimeToComplete\ listed above, with one important exception.  If the time indicated passes, the object will continue to cook.  This will result in the item burning, and the quality of the item progressively getting worse until it becomes 'spoiled'.  Not all recipes have a \TimeToCook\, and are complete as soon as the /TimeToMake/ is up, such as with the .Flatbread. recipe listed below.
: When putting together a recipe, such as the above one involving quartz, you may want to make it do something to explain what the components are for to add immersion, or hide an ugly {[TERRAIN: } tag in your recipe.  This is where +'descriptive text' comes in.  Let's reference the quartz recipe again:
+
  
.Quartz. "Rock" *COMMON* /30/ |-2| %-30%
+
====<u>'''Cooking Parameters'''</u>====
{[TERRAIN:river]}
+
{[NEARBY_TILE:water]}
+
  
<p style="margin-left:24px;">
+
: Note that any item not marked with a [roast], [boil], or [bake] tag will '''NOT''' contribute their weight and nutrition to the final product. All food ingredients need to be marked with one of these three tags.
</p>
+
  
 +
=====<u>'''[roast]'''</u>=====
  
: In this example, [TERRAIN:river] will show up as one of the requirements for the recipe, as will [NEARBY_TILE:water], as seen in the image above.  To prevent this, a modification to the recipe must be made.
+
: If any ingredient is marked with this tag, you need to be next to a fire or fireplace with embers.
  
[[File:URW_DesciptTag.png|thumb|263px|With +'descriptive text']]
+
=====<u>'''[bake]'''</u>=====
  
.Quartz. "Rock" *COMMON* /30/ |-2| %-30%
+
: Requires a pot and a "heated room". i.e. a fireplace with embers. The final product will be stored in the pot as a liquid.
{[TERRAIN:river]} +'Be near a river'
+
{[NEARBY_TILE:water]} +'Be by the water'
+
  
: With the +'descriptive text' parameter added, it instead will show like the image on the right.  
+
=====<u>'''[boil]'''</u>=====
  
 +
: Requires a pot and a fire. The final product will be stored in the pot as a liquid.  Any item marked with [boil] or [bake] is limited to the amount the pot can hold. So adding 20lbs of ingredients all marked with the appropriate tags will still result in having a 6lb pot of food.
  
 +
=====<u>'''[ember-roast]'''</u>=====
 +
: Using this tag the associated food item is prepared by the ember-roast method. Glowing embers automatically becomes a requirement when using the tag.
  
 +
====<u>'''Food Parameters'''</u>====
  
 +
Default food parameters can be overridden as described above (e.g., [NAME:] and [TILEGFX:]) but there are some additional parameters which apply only to food.
  
====='''<u>[Ground]</u>'''=====
+
'''[COOK_WEIGHT_DIV:]'''
  
When an item must be on the ground next to a character rather than in it's inventory, you'll add this parameter to the ingredient line it's on.  Stealing another item from the self-sufficiency mod, we have an example of an item that must be on the ground or in the characters inventory to use this recipe.  In this case, a log.
+
: The total weight of the finished food is divided by this number. Used for drying or compressing food into a smaller quantity.
  
.Bow Stave. "Board" *CARPENTRY* %-10% /3h/
+
'''[SPOILAGE_DAYS:]'''
{Log} [remove] [ground]
+
{Axe} <Woodsman's Axe>
+
  
 +
: The number of days until the food spoils.  If set to 0, the food never spoils.  Maximum value 253.
 +
 +
'''[CARB:]'''
 +
'''[FAT:]'''
 +
'''[PROTEIN:]'''
 +
'''[WATER:]'''
 +
 +
: The nutritional content of the produced food.  Each is given as the percent of the total weight for carbohydrates (~4 calories per gram), fat (~9 calories per gram), protein (~4 calories per gram) and water (no calories, but quenches thirst).  Maximum of any is 99, make sure their sum doesn't go over 100.
  
=====<u>'''[NoQuality]'''</u>=====
 
:When you don't want an ingredient, {item} to affect the quality of the .item. being produced make use of the [noquality] tag.
 
For the example below: .Shortbow. quality is affected by; carpentry skill, board quality, axe quality, knife quality and tying equipment quality.
 
.Shortbow. [effort:2] [phys:stance,arms] *CARPENTRY* /320/ |2|
 
{Board} [remove]
 
{Axe} <Carving axe>
 
{Knife}
 
{Tying equipment} [remove]
 
As all the ingredients have quality, all contribute to final shortbow quality.
 
:When ingredients shouldn't contribute to the final product quality use the [noquality] tag.
 
For the example below: .Arrow. The {Branch} and the {Rock} are the type of base items which you may want to remove from the quality calculation of the product made.
 
.Arrow. [effort:1] [phys:hands,one-armed]  *CARPENTRY*        /30/    [patch:5]
 
{Branch} [remove] [patchwise] [noquality]
 
{Knife}
 
{Tying equipment} [remove] [patchwise]
 
{Rock} [remove] [patchwise] [noquality]
 
:The .Arrow. quality is affected by; carpentry skill, knife quality and tying equipment quality.
 
 
<center>[[File:seperatoricon.png]]</center>
 
<center>[[File:seperatoricon.png]]</center>
  
Line 741: Line 654:
 
|Tanning material
 
|Tanning material
 
|Heated Fireplace
 
|Heated Fireplace
|
+
|Hammering tool
 +
|-
 +
|Axe or carving knife
 +
|Strong cordage
 +
|Thin cordage
 
|}
 
|}
  
Line 927: Line 844:
 
  .mining. -A- *MAKE*
 
  .mining. -A- *MAKE*
 
:Where .mining. is the new menu to add to the Make menu.
 
:Where .mining. is the new menu to add to the Make menu.
:-A- or any letter that is not in use on the Make menu.
+
:-A- or any letter that is not in use on the Make menu, this is the quick key for the menu.
 
:This sets *MAKE* to be the parent menu.
 
:This sets *MAKE* to be the parent menu.
  
Line 933: Line 850:
 
  [SUBMENU_START:mining]
 
  [SUBMENU_START:mining]
 
  .Miner Pick. "Wooden shovel" [effort:2] *COMMON* /30/
 
  .Miner Pick. "Wooden shovel" [effort:2] *COMMON* /30/
  .Mine Ore. "Stone" [effort:3] [phys:stance,arms,hands] *COMMON* /2h/ |1| %20%
+
  .Mine Ore. "Stone" [effort:3] [phys:stance,arms,hands] *COMMON* /2h/
 
  {[TERRAIN:cave]} 'You need find a cave'
 
  {[TERRAIN:cave]} 'You need find a cave'
 
  {[NEARBY_TILE:Cave floor]} 'Get underground to dig'
 
  {[NEARBY_TILE:Cave floor]} 'Get underground to dig'
Line 939: Line 856:
 
  {Miner Pick} <Miner pick> 'A miner pick for digging'
 
  {Miner Pick} <Miner pick> 'A miner pick for digging'
 
  [SUBMENU_END:mining]
 
  [SUBMENU_END:mining]
:[SUBMENU_START:mining] creates the menu name on Make menu.
+
:[SUBMENU_START:mining] marks the start of the items that will appear on the "mining" menu.
:.Miner Pick. creates an item type of "Wooden shovel", for this I have not filled in needed items or tools.
+
:.Miner Pick. creates an item named "Miner pick" with an item type of "Wooden shovel" (appears as shovel on ground).
:You need to dig with something which is why I have included the pick.(Item is created from thin air in this quick example).
+
:The effort is moderate (2) to make the pick. *the skill applied to make the pick is Common.
:.Mine Ore. creates an item type of "Stone"(which is a 14 lb item)
+
:The pick will take 30 minutes to make. I have not filled in needed items or tools to make the pick.  
:Effort is hard :3.  
+
:.Mine Ore. creates an item named "Mine Ore" with an item type of "Stone" (appears as stone on ground).
:Needs standing position and both arms and hands to do without penalty.
+
:The effort to mine one ore hard (3). Physical [phys:] needs standing position and both arms and hands to do without penalty.  
:COMMON is the skill applied for the task
+
:The skill applied to the task is Common. The task will take 2 hrs.
 
:The Terrain and nearby tile tags mean you must be in cave terrain, inside the actual cave and against a wall to mine.
 
:The Terrain and nearby tile tags mean you must be in cave terrain, inside the actual cave and against a wall to mine.
  
===Do-It-Yourself Crafting Mods===
+
[[Category:Modding]]
 
+
==Armor Crafting==
+
For v3.19 The list of craftable armor is:
+
'''Linen'''
+
Linen undershirt
+
Linen undergarment
+
Linen shirt
+
Linen tunic
+
Linen dress
+
Linen trousers
+
Linen apron
+
Linen footrags
+
Linen veil
+
Linen cowl
+
 
+
'''Woollen'''
+
Woollen undershirt
+
Woollen undergarment
+
Woollen shirt
+
Woollen tunic
+
Woollen overcoat
+
Woollen dress
+
Woollen trousers
+
Woollen leggings
+
Woollen apron
+
Woollen socks
+
Woollen footrags
+
Woollen veil
+
Woollen cowl
+
Woollen cloak
+
Woollen mittens
+
 
+
'''Leather'''
+
Leather cap
+
Leather belt
+
Leather shirt
+
Leather leggings
+
Leather shoes
+
Laced leather shoes
+
 
+
'''Fur'''
+
Fur cap
+
Fur shirt
+
Fur mittens
+
Fur leggings
+
Fur hood
+
Fur footwear
+
Fur cloak
+
 
+
'''Birch-bark'''
+
Birch-bark necklace
+
Birch-bark shoes
+
Birch-bark cap
+
 
+
'''Ring'''
+
Ring Halfhelm
+
Short Ring Cowl
+
Long Ring Cowl
+
Ring Shirt
+
Short Ring Hauberk
+
Long Ring Hauberk
+
Ring Leggings
+
Ring Gauntlets
+
 
+
'''Mail'''
+
Short Mail Cowl
+
Long Mail Cowl
+
Mail Habergeon
+
Short Mail Hauberk
+
Long Mail Hauberk
+
Mail Leggings
+
Mail Mittens
+
 
+
'''Iron'''
+
Iron Halfhelm
+
Iron Great Helm
+
Iron Breastplate
+
Iron Cuirass
+
Iron Rerebraces
+
Iron Coudes
+
Iron Vambraces
+
Iron Kneecops
+
Iron Greaves
+
 
+
==Weapon Crafting==
+
For v3.19 The list of craftable weapons are:
+
'''Shield'''
+
Roundshield
+
Buckler
+
 
+
'''Knife'''
+
Dagger
+
Knife
+
Throwing knife
+
Small knife
+
Broad knife
+
Hunting knife
+
Fisher's knife
+
Kaumolais knife
+
Northern knife
+
Skramasaksi
+
 
+
'''Sword'''
+
Shortsword
+
Scimitar
+
Broadsword
+
Njerpeziläis Scimitar
+
Bastard Sword
+
Battlesword
+
 
+
'''Club'''
+
Club
+
Mace
+
Maul
+
 
+
'''Flail'''
+
Small flail
+
Ball & chain
+
Warflail
+
 
+
'''Spear'''
+
Spear
+
Kaumolais spear
+
Trident
+
Small trident
+
Wide trident
+
Hard staff
+
Northern spear
+
Ango
+
Light spear
+
Javelin
+
Staff
+
 
+
'''Bow'''
+
Shortbow
+
Longbow
+
Crossbow
+
Heavy Crossbow
+
Juniper bow
+
Northern bow
+
Hunting bow
+
Arrow
+
Blunt arrow
+
Broadhead arrow
+
 
+
'''Axe'''
+
Throwing axe
+
Handaxe
+
Warhammer
+
Battleaxe
+
Broad axe
+
Carving axe
+
Splitting axe
+
Woodsman's axe
+
Sickle
+
 
+
'''Stone'''
+
Stone
+
Rock
+
Stone-axe
+
 
+
===Build-It-Yourself Building Mods===
+
 
+
===Cookery Cooking Mods===
+
 
+
===Flora Plant Mods===
+

Latest revision as of 17:00, 4 August 2024

2010 and patch 3.13 brought an exciting new change to the game: the ability to start adding in our own modifications. The overall ability to mod started out very rudimentary and was largely undocumented, but as time has gone by we have seen steady improvements and additions. This is an attempt to create a complete, readable piece of documentation on modding and how it can be applied, and is intended to be a growing body of work as this amazing aspect of the game continues to grow and be developed.

Moddable Files

Modding in UnReal World is done in a simple text-based format. Moddable text files are saved in the main directory of the game. They are dynamically loaded in by the game, and so can be edited in real time with the game running. This allows you to modify and immediately test your mods without having to restart the game. The syntax is simple and easy to learn. There is no documentation of the syntax in the file itself, but using this guide you will quickly become accustomed to it and become able to write new mods in no time.
What tools do I need to start modding?
As all of the files you'll be modifying are text files, any simple text editor will do the job.
For Windows machines, Notepad++ comes highly recommended, as it has some additional tools to make editing files simpler. On OSX Textedit or Textmate both work well and vim or emacs will work fine on Unix-based systems.
What files will I be working with?
There are two ways to modify UnrealWorld. First, you can modify the pre-existing files in the game directory however you like. Second, you can add new files to the game directory with appropriate names that will be loaded by the game as well as the pre-existing files. When possible, it is best to create new files for a mod, as that helps prevent conflict between different mods being used.
Open up the game directory for UnrealWorld. On Windows, simply open the folder containing the executable file. On OSX, right-click the App icon and select "Show Package Contents", then click on the "Contents" and "Resources" subdirectories.

Root Files:

Within the root directory several text-editable files are found that contain much of the information for the game.  Not all of the game's crafting, cooking, and activities are available in these mod files (some is hard-coded), but quite a lot is.
Core Crafting Recipes
diy_glossary.txt                - Vanilla do-it-yourself recipes     (items)

biy_glossary.txt                - Vanilla build-it-yourself          (constructions) 

cookery_glossary.txt            - Vanilla cooking recipes            (food)

menudef_additional.txt          - Empty file for submenu definitions (menus)
Within the above files are found the moddable vanilla recipes for crafting, building, and cooking food of all types.  You'll note that some actions like smoking meat or peeling bark from a tree, are not found within these files.  Anything not found here is hardcoded in the game and not available for modding. These files will be quite useful as references when you're making your own mods.
Any new text files with the diy_ biy_ cookery_ or menudef_ prefixes placed in the root directory will be loaded in by the game as mods. We'll get into how to create and structure these files later.
Core Plant Files
The definitions of plants within the game are defined in flora_* files, as described below.
flora_berries.txt               - Vanilla berries

flora_cultivated.txt            - Vanilla crops

flora_herbs.txt                 - Vanilla herbs

flora_mushroom.txt              - Vanilla mushrooms

flora_newherbs.txt              - More vanilla herbs
As with crafting recipes, new plants can be added to the game by adding a new text file with the flora_ prefix to the game directory. This will make the plant available to the game but not necessarily spawn it within pre-existing game worlds. Full modding and testing of plant files can be more complex than adding simple recipes and new items. For more details, see Modding Plants.
Encyclopaedia File
The ingame encyclopaedia can be edited. All text is contained in one file:
 GAME.NFO

For more details, see Modding Encyclopaedia. It may be a good idea to add encyclopaedia entries for new and unusual items your mod may be adding to the game to make it easier to use for players.

Seperatoricon.png

Modding Syntax

In this section we'll discuss the syntax for mods and how it's used across the crafting, building, and cooking files.

Basic Crafting Parameters

First, open up diy_glossary in a text file, and take a look at the first item listed:
[SUBMENU_START:weapon]
.Stone-axe. [effort:2] [phys:arms] *COMMON*  /3h/
{Stone} [remove]
{Slender trunk} [remove]
{Rope} [remove]
{Knife}
...
[SUBMENU_END:weapon]
[SUBMENU]
Every crafting option in the game is accessible through a menu.  The [SUBMENU] parameter tells the game where you want this particular set of crafting options to appear.  Multiple items can appear in a single submenu.  In this case, the stone axe should show up in the weapon submenu.
Defining which submenu a crafting option appears in is done with the [SUBMENU_START:"Name"] and [SUBMENU_END:"Name"] flags. Start the submenu, add in all the items you wish to appear in that submenu, then end the submenu. Items can be easily added on to the default submenus: lumber, trapping, transport, utility article, weapon, etc.
[SUBMENU_START:MenuName]
<Modded items>
[SUBMENU_END:MenuName]
Custom Menus
By creating a new menudef_<anyname>.txt file it's possible to add sub-menus to the MAKE and COOKERY menus. Just make a list of submenu headers to create in the new file:
.foundry.       -A- *MAKE*
.linen.         -D- *MAKE*
The name of the new submenu starts the line, beginning and ending with a period '.'
The menu key "-A-" starts and ends with a dash, must be specified, and can be any upper case key that does not conflict with a previously defined submenu.
Finally, the parent menu can be defined as *MAKE* or *COOKERY*, to determine where the new submenu shows up.

Then just place the craftable items in your diy_ or cookery_ files between submenu start and end tags for the according submenuname

[SUBMENU_START:submenuname]
[SUBMENU_END:submenuname]
Seperatoricon.png

First Line Parameters

The first line of each item looks something like

.Stone-axe. [effort:2] [phys:arms] *COMMON*  /3h/
.ItemName.
The first element of the first line determines both the default name of the crafted object and how the crafting option appears in the crafting submenu.
.Stone-axe.
The name needs to begin and end with a period and start the line. If you wish to use a different name for the entry in the crafting submenu and the item name, use the submenu entry name here and the name can be redefined elsewhere.
"Base Item"
This property isn't actually used in the diy_glossary file, but is required for mods. If the item you wish to craft isn't a vanilla item like the Stone-axe, then this will determine what item it inherits all of its item properties from (like weight, price, armor, attack, etc.).  This allows you create a Stone Knife, for instance, that is based upon the basic knife.
.Stone Knife. "Knife"
Any vanilla item can be used, and it needs to begin and end with a double quotation mark ".
Be warned that your new item will appear to the game as both the original base item and the new item. So if you create a .Lump of Iron. item that inherits from "Stone" then that item can be used as both a Lump of Iron or as a Stone --- including, for example, when crafting a Cellar or a Stone-Axe. It's wise to use base items that aren't likely to be used as crafting ingredients. Hunting Horn is a commonly used base item, for example.
[effort: ]
When performing any task in the game, from felling a tree to fishing, there is a section labeled "Effort" under your progress meter. This determines how difficult a task is and how much fatigue you gain while performing it.
There are 6 levels of effort:
0: Easy (Not fatiguing at all)
1: Light
2: Moderate
3: Hard
4: Heavy
5: Very Heavy
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/
This parameter must be in lowercase. Simply add [effort:X] to the first line of your item to describe how difficult it is to craft. This parameter is optional, and defaults to easy (no fatigue) if not included.
[phys:]
Some crafting tasks have specific physical requirements of the character. Some must be done standing, or require two hands, etc., and may not be able to be done if the character is injured.
Possible tags for this parameter are:
stance              - be standing
arm                 - one arm from shoulder to hand in usable condition
arms                - both arms from shoulder to hand in usable condition
hand                - one hand (plus forearm and elbow) in usable condition
hands               - both hands (plus forearms and elbows) in usable condition
one-armed           - possible to perform the task with only one arm/hand, but it will be slow and difficult.
In all but the last case, the tag describes the requirements for the task.
To use the parameter, add [phys:X] to the first line of your item, where X is a comma-separated list of appropriate tags.
For example, below is a diy version of a javelin recipe:
.Javelin. [effort:1] [phys:hands,one-armed] *COMMON* /30/ [patch]

This recipe states that ideally both hands will be available for the work, but if necessary the task can be performed one-handed.  It will take longer and have lower chance of success in these instances, but it can be done.

*SKILL*
This parameter indicates what skill is used during the crafting task. This affects the quality of the items produced, the time taken, and allows for training of the skill with this task.
All available skills can be used here, as well as *COMMON*. *COMMON* is simply a default skill that is always at skill 50% and can never be increased. This can make it a good reference skill if other skills don't fit well.
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/
To use, add the name of the skill you wish to use in all uppercase, beginning and ending with an asterisk *.
The largest impact of skill is on item quality, where the character skill determines the minimum and maximum quality item it is possible to produce with good quality ingredients and tools. Below 20%, no decent items can be made. Below 40%, no fine items can be made. Below 70%, no masterwork items can be made. At 40% no crude items will be made.


/TimeToMake/
This parameter determines how long it takes to complete a particular recipe.  It can take longer than this if your fatigue level is high, your skill is poor, or your tools are poor.
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/
This is optional component, and defaults to 15 minutes if not included.  The number is normally read in minutes, but h or d after the number can be included to read in hours or days.
\TimeToComplete\
While /5/ determines how long it takes to actually create the item, \ \ determines how long it must sit after crafting has finished to be ready.  So in the below example, it takes 2 hours to create Charcoal, and another 4 hours after that (during which my character can go do other things) for the item to be ready.  
.Charcoal. [effort:2] [phys:stance,arms] *TIMBERCRAFT* /2h/ \4h\
By including this value the item will sit on the ground where the recipe was completed until it is done.  This is often included in *COOKERY* recipes, but is also familiar from tanning hides.
|Skill Advance|
This parameter indicates how likely a skill increase check is made for the skill used when crafting the item. The lower the number, the less likely you are to be able to increase your skill with this recipe.
.Birch-bark box. [effort:2] [phys:arms] *TIMBERCRAFT* /3h/ |-2|
This parameter defaults to 0, but can range over -2, -1, 0, 1, and 2. Commonly used for simple items to make it difficult to use them to grind up skills.
%SkillModifier%
This value impacts how likely you are to get high quality results from crafting. This can be anywhere between -100 and 100 and acts as a modifier to the skill in question when the recipe is used.
.Stone-axe. [effort:2] [phys:arms] *COMMON* /3h/ %20%
In this case, COMMON is always 50%, so the modified skill value is 70%. This then increases the likelihood of getting the best possible results (i.e., fine).
It is important to note that the skill modifier is only one part of a recipe, and even a recipe that reduces the modified skill to 0% can still regularly get decent or fine quality items if the materials are good and the character's base skill is high.


(NumberProduced)
A number in parentheses in this section indicates how many of the item will be produced per completed recipe. This means that with the resources listed in the recipe, you will wind up with this many items.  This is one of two ways to use a recipe to produce multiple objects, the other is [patch:]
.Stone-axe. (2) *COMMON* /3h/  %20%


[patch:]
This parameter gives you the ability to make a varying amount of the recipe in a single go, and defines the maximum number of items which can be created at one time. The first place many encounter this is in *COOKERY*, where you can set up to 10 items to roast at once over a fire. Unlike with (NumberProduced), the number used for [patch:] acts as a multiplier to both the items used for the recipe (if marked as [patchwise]) and the /TimeToMake/.  If included without a number as [patch], it defaults to 10.


[noquality]
With the [noquality] parameter in the first line of the recipe, all items produced by this recipe will be of decent or unnamed quality, regardless of skill or skill modifier.


[assist:value]
This tag defines maximum number of companions whose labor input can help to shorten the working time. The value can be 1, 2 or 3. Companions shorten the working time by 10-20% for the first companion and 5-10% per additional effective companion.
Seperatoricon.png

Ingredients and Related Modifiers

Now that you've finished all the first line parameters, describing the item and the parameters of making it, it's time to move on to describing the ingredients, and how they're handled in the recipe.  This section will describe what tools and resources are required, and what happens to them during crafting.  It is important to note that both tools and resources are treated as ingredients and can, if you choose, be consumed in the process.
{item}
This parameter can occur multiple times following the first line of the recipe, and indicates an ingredient, tool, or other requirement for the recipe.
Let's refer back to our example.
{Stone} [remove]
{Slender trunk} [remove]
{Rope} [remove]
{Knife} <Broad Knife>
Each of these lines describes an item required in the creation of our modded object. In this case, the vanilla stone-axe. The first line says we need a stone, and that that stone will be consumed by the recipe.  The first three lines are essentially the same, indicating that a stone, a slender trunk, and a rope will all be required, and all of them will be consumed.  The last line indicates that you must also have any knife available, with the broad knife preferred. As it doesn't have the [remove] parameter, the knife will remain after you finish crafting your new axe.
Any item name in the game can be used here --- including the names of new items you have modded into the game. There are also several special general names that can be found in the Reference section at the bottom of this document.
Wildcards
Sometimes you want to allow multiple types of items to be used in a recipe but there's no predefined general name for what you want. To do this, you can use a wildcard *, such as in the following example:
{* leather} [remove] #2.0#


The * will permit any item whose name ends in "leather" to be used in the recipe.  As this requires 2.0 lbs of leather, multiple different leather items can be combined as ingredients here.
<Preferred Item>
Sometimes you may want to allow a job to be performed with many types of tools, but to prefer a particular type.  In the event that the proper tool isn't available, another tool will stand in, but it will take longer to accomplish.
Referencing our example again, the last item listed is the tool knife.
{Knife} <Broad Knife>
In this example any knife would be able to get the job done, but a broad knife would make the job go faster. Using a different type of knife may also lower the quality of the item.
There are only a couple of places where this can be done; wildcards cannot be used to define this. In particular, cutting weapons, axes, knives, and shovels can all have a preferred tool set for them.
[remove]
{Stone} [remove]
This parameter indicates that the resource in question will be removed from your inventory upon completion of the recipe. That's pretty much all there is to it. Remember that {item} can be a tool as well as a resource, so it isn't always appropriate to remove an ingredient in your recipe.
(NumberRequired)
When included in the ingredient section after an item, a number in ()'s indicates the number of this item required to perform the task.  For instance:
{Stone} (2) [remove]
Will require two stones in your inventory, both of which will be removed, to complete the recipe.  This is one of the main ways to indicate multiple items being required in a recipe.


Seperatoricon.png
#weight#
This parameter contains a numerical value that can be either a whole number, or a decimal.  (%5% vs %.05%)  While it appears that any number of decimal places can be used, it will round up or down to two decimal places.
It is possible to require a certain amount of a resource WITHOUT it being consumed, so the below example would require .5 pounds of rock to use the recipe, but the rock would remain after.
{Rock} #.5#
While the below would remove .5 pounds of rock from your inventory.
{Rock} #.5# [remove]
As a rock object weights 1 pound by default, the following would be seen in your inventory after having done this.
Consuming part of a full object will leave this meter showing.
=length=
Required length of raw material for crafting can be indicated with a numerical value between equals signs (=). The length unit is foot and value has to be whole number. The tag can be naturally applied only to items that have a length property. For example:
{Birch-bark strip} =5= [remove]  
This means that 5 feet of birch-bark strips are required, which are then removed in the process.
[patchwise]
Patchwise on ingredients is used when patch is set in the first line of the recipe.  It flags an ingredient as being required for each output item produced, rather than only once for the recipe as a whole. Thus if you have a [patch:10] recipe that takes .5 lbs of rock, without [patchwise] it will always take .5 lbs of rock. With [patchwise] it will take .5 lbs for every item you make, up to the max of 5 lbs when you make 10 items.
{Rock} #.5# [remove] [patchwise]
[yield:num]
The [yield:num] tag is used to specify for how many produced items the single raw material entry is enough for, i.e. how many finished items it can yield. The tag is used for making blunt arrows as follows:
{Slender trunk} [yield:3] 
This means one slender tree trunk can yield three produced items ie. blunt arrows. So, for example to craft six blunt arrows you would need 2 trunks. Crafting 7-9 blunt arrows you would need 3 trunks, and so on.


[optional]
This parameter describes ingredients that may or may not be used when crafting the item. Most commonly used in cooking recipes, where ingredients may be optionally used that increase the nutritiousness of the produced dish.  In the below example, the seasoning doesn't have to be included in the mix, but will add its nutrition if it is.
.Flatbread. (5) *COOKERY* /45/ %30% |-1|
{Flour}     #0.5#   [remove] [roast] [name]
{Water}     #0.25#  [remove] 
{Seasoning} #0.15#  [remove] [roast] [optional]
[noquality]
The [noquality] parameter can also be used with ingredients, where it prevents the ingredients from affecting the quality of the item being produced. For example in the vanilla arrow recipe
.Arrow. [effort:1] [phys:hands,one-armed]  	*CARPENTRY*        /30/    [patch:5]
{Branch}   [remove] [patchwise] [noquality]
{Knife}
{Feather} (3) [remove] [patchwise] [noquality]
{Tying equipment} [remove] [patchwise] 
{Rock} [remove] [patchwise] [noquality]
We can see that {Branch}, {Feather}, and {Rock} all have the [noquality] tag, because none of them have qualities in the normal game. This means that the final quality of the arrow produced is based only on carpentry skill, the tying equipment quality, and the knife quality.
[wearpct:num] and [nowear]
The [wearpct:num] and [nowear] parameters were added in v3.83 and are used to describe the wear on the tools' haft durability used for a crafting operation. [wearpct:num] specifies custom wear out percentage rate (1-100) in relation to the highest rate (100) where tool is used intensely during the whole task, while the [nowear] tag means that the used tool doesn't wear out at all. These modifiers apply to all haftable items: Axes, Spears and Iron shovels, as of 3.84. See these examples:
{Axe} <Carving axe> [nowear] 
Here an axe is needed, preferably a carving axe, and it doesn't wear out at all in the said crafting/building task.
{Cutting_weapon} <Axe> [wearpct:25]
Here a cutting weapon, preferably an axe, is needed. It wears out in 25% rate compared to the continuous intense axe work. Maybe the axe is needed only 25% of the time in this crafting/building task.
[ground]
This parameter indicates that an ingredient or a tool may be used for the recipe when it's on the ground next to the character rather than only in the character's inventory. Commonly used for heavy items (like logs and tree trunks) or tools. For example:
.Bow Stave. "Board" *CARPENTRY* %-10% /3h/ 
{Log} [remove] [ground]
{Axe} <Woodsman's Axe>
In this case, a log must be nearby to craft this recipe but need not be carried.
[nominlen]
This tag, which stands for "no minimum length", can be used to indicate that length-based material requirement can be composed of several shorter pieces. For example:
{Cord} =5= [nominlen] [remove] 
This means that 5 feet of cord is required but you can come up with the total length using several shorter pieces. If [nominlen] tag wasn't used here the selected cord would need to be at least 5 feet long.


[name: %s]
This parameter overrides the default name given, allowing you to produce custom-named items based on the ingredients used to craft the item. In the below recipe, if you use cranberries as the berry ingredient, the result will be called 'Cranberry porridge', rather than 'berry porridge'
.Berry porridge. *COOKERY* /15/   \90\  %50% |-1|
{Berries}  #1#     [remove] [boil] [name:%s porridge]
{Water} #0.5#   [remove] 
{Flour}  #0.1#   [remove] [boil] [optional]
The %s can appear anywhere in the name, and it will produce the same results. So 
[name: This %s Thing] = This Cranberry Thing
[name: Thing %s]      = Thing Cranberry
[name: %s Thing]      = Cranberry Thing
This takes the name of the item used, such as "Cranberry" above, and plugs it in for the %s. Note that %s can be only used once.
If multiple ingredients are used as input, then "Mixed" becomes the name used.
[naming: ]
This parameter can only be used with the [name] parameter, and affects how the final item name is determined. There are two options for this parameter:
[naming:last word] - %s will get value of the last word of selected material/item name 
[naming:original]  - %s will get value of original and complete selected material/item name
For example,
{* leggings} [name:Modded %s] [naming:last word]
will produce an item called "Modded leggings", while
{* leggings} [name:Modded %s] [naming:original]
will produce an item such as "Modded leather leggings" if crafted with leather leggings. Similarly,
{Leather *} [name:Modded %s] [naming:last word]
if crafted using a leather shirt, would create an item called "Modded shirt".

Terrain and Tile Requirements

It's possible to add requirements about the kind of terrain and nearby tiles that would make sense for a particular recipe.

{[TERRAIN: ]}
Sometimes you want a particular recipe to only be applicable when the character is in a particular kind terrain.  In the example below, quartz is only available from river beds.
.Quartz. "Rock" *COMMON* /30/ %-30%  
{[TERRAIN:river]}
With the {[TERRAIN: } parameter, this recipe will only be able to be used if the character is in a river terrain.  Trying it anywhere else will give the message "The setting you are at now doesn't meet the requirements!"
Multiple TERRAINS can be specified in this parameter, separated by spaces.  In the following example Quartz can be found in both river and mountain terrain.
.Quartz. "Rock" *COMMON* /30/ %-30% 
{[TERRAIN:river mountain]}
This includes the terrain as a necessary 'ingredient' in the recipe.  But it will show up in your list of ingredients as [TERRAIN: river mountain] which isn't very attractive.  We'll address this further in +'descriptive text'.
A list of possible terrain types can be found in the Reference section of this document.
{[NEARBY_TILE]}
Not every tile in a local map is a river tile; it includes the shore and some of the surrounding terrain as well.  If you want to ensure that the character is both in a river terrain and next to water, you'll need to add the {[NEARBY_TILE]} parameter.
.Quartz. "Rock" *COMMON* /30/ %-30% 
{[TERRAIN:river]}
{[NEARBY_TILE:water]}
Now the character needs to be in a river terrain and standing next to or in a water tile to use the recipe. There are many times when this may be appropriate, such as when you want to specify that a character must be next to a natural water tile to soak leather or sticks for some purpose, or if you need to be near a particular kind of tree for some timbercraft purpose.
{[TILE]}
{[TILE]} is used just like {[NEARBY_TILE]} except that it requires the character to be directly on the tile in question instead of only nearby. Make sure you don't use it with tiles that the character can't enter!
+'descriptive text'
The TERRAIN: and NEARBY_TERRAIN: parameters seen without +'descriptive text'
When putting together a recipe, such as the above one involving quartz, you may want to change the description of the components to add immersion or make it less ugly.
The +'descriptive text' parameter allows you to set alternative descriptions of a particular requirement or ingredient in the crafting screen.
.Quartz. "Rock" *COMMON* /30/ %-30% 
{[TERRAIN:river]}
{[NEARBY_TILE:water]}


In this example, [TERRAIN:river] will show up as one of the requirements for the recipe, as will [NEARBY_TILE:water], as seen in the image above.  To prevent this, we can use the +'descriptive text' parameter.
With +'descriptive text'
.Quartz. "Rock" *COMMON* /30/ %-30% 
{[TERRAIN:river]} +'Be near a river'
{[NEARBY_TILE:water]} +'Be by the water'
This parameter can also be used with regular ingredients to add more of a description.
If the plus is inside the quotes, as in '+descriptive text', the text will be added right after the ingredient text. Otherwise, it will substitute the entire ingredient entry (except for the quantity) as in the example above.

Item Property Parameters

Several parameters can be used not just to define the recipe, but instead to adjust the properties of the crafted item. The default properties are inherited from the base item used for the recipe.
These parameters are all used one per line after the ingredients list.
General Parameters

[NAME: ]

This parameter allows redefining the name of the item produced. Preferable to the [name: ] parameter on an ingredient because it's less buggy. For example:
.Mine stone. 'Stone' *COMMON* /15/
{[NEARBY_TILE:Big rock]} +'A rock to quarry'
[NAME:Stone]

[TILEGFX:]

Use a new tile for the item. Should be the name of the graphic file without the filename extension. File must be in the truetile folder. For more information, see Modding Graphics.

[TYPE:]

Define the type of the item. Mostly determines what section of inventory it can be found in. Can be any of
weapon / armour / tool / container / skin / food / timber / vehicle / plant / valuable

[WEIGHT:]

The weight of the item in pounds (by default), or in grams if the value is followed by a g abbreviation.

[LENGTH:]

The item length in feet. It's usage is intended for specifying length for modded ropes and cords so be sure to use it within proper item type context. Must be an integer (no fractions allowed).

[PRICE:]

The trading value of the item in squirrel hides per item (default) or per lb if the value is followed by 'per lb'.

[MATERIAL:]

The raw material the item is made of. Can be any of
wood / iron / leather / fur / birch-bark / cloth / wool / rock / bone / antler

[CONT_CAPACITY:]

For containers, the capacity of the container in pounds.
Weapon Parameters

[SKILL:]

The skill associated with the weapon. Can be any of the weapon skills:
unarmed / knife / sword / axe / spear / club / bow / crossbow / flail / shield

[*_ATTACK:]

There are three damage parameters that can be set for a weapon, each on its own line: [POINT_ATTACK:], [EDGE_ATTACK:], and [BLUNT_ATTACK:]. They can be any integer between 0 and 9, or a dash -, in which case that type of attack is not allowed with the weapon.

[1H_PENALTY:]

The skill penalty associated with using this weapon one-handed. Can be any integer between 0 and 50.

[AD_CLASS:]

The attack and defense bonuses for the weapon. Two values between 0 and 6, separated by a /. First value is the attack bonus, second is the defense bonus. Default is 0/0 (i.e., no bonuses).
Armour Parameters

[ARMOUR_MATERIAL:]

The material the armour is made of. This defines the protection values for the armour. Can be any of:
lamellar / iron / mail / leather / fur / cloth / wool / birch-bark

[ARMOUR_COVERAGE:]

The parts of the body the armour protects. Can be defined either using some predefined coverage categories:
cloak / hauberk / long_hauberk / habergeon / cuirass / overcoat / 
greaves / rerebraces / vambraces / shirt / short_shirt / long_shirt / trousers / tunic
Or with a space-separated list of bodypart values:
skull / face / neck / shoulder / upper_arm / elbow / forearm / hand / 
thorax / abdomen / hip / groin / thigh / knee / calf / foot

Cookery Specific Parameters

One of the primary differences between crafting recipes and cookery recipes, is that the items produced by the cooking recipe can spoil.  Some of the above parameters have slight differences in meaning, but are essentially applied the same way.
\TimeToCook\
This parameter functions exactly like \TimeToComplete\ listed above, with one important exception.  If the time indicated passes, the object will continue to cook.  This will result in the item burning, and the quality of the item progressively getting worse until it becomes 'spoiled'.  Not all recipes have a \TimeToCook\, and are complete as soon as the /TimeToMake/ is up, such as with the .Flatbread. recipe listed below.

Cooking Parameters

Note that any item not marked with a [roast], [boil], or [bake] tag will NOT contribute their weight and nutrition to the final product. All food ingredients need to be marked with one of these three tags.
[roast]
If any ingredient is marked with this tag, you need to be next to a fire or fireplace with embers.
[bake]
Requires a pot and a "heated room". i.e. a fireplace with embers. The final product will be stored in the pot as a liquid.
[boil]
Requires a pot and a fire. The final product will be stored in the pot as a liquid.  Any item marked with [boil] or [bake] is limited to the amount the pot can hold. So adding 20lbs of ingredients all marked with the appropriate tags will still result in having a 6lb pot of food.
[ember-roast]
Using this tag the associated food item is prepared by the ember-roast method. Glowing embers automatically becomes a requirement when using the tag.

Food Parameters

Default food parameters can be overridden as described above (e.g., [NAME:] and [TILEGFX:]) but there are some additional parameters which apply only to food.

[COOK_WEIGHT_DIV:]

The total weight of the finished food is divided by this number. Used for drying or compressing food into a smaller quantity.

[SPOILAGE_DAYS:]

The number of days until the food spoils. If set to 0, the food never spoils. Maximum value 253.

[CARB:] [FAT:] [PROTEIN:] [WATER:]

The nutritional content of the produced food. Each is given as the percent of the total weight for carbohydrates (~4 calories per gram), fat (~9 calories per gram), protein (~4 calories per gram) and water (no calories, but quenches thirst). Maximum of any is 99, make sure their sum doesn't go over 100.
Seperatoricon.png

Reference

Menu List

Seperatoricon.png

Item List

This is a starting list of items that can be used as parts of a recipe.  It is definitely incomplete, but it is relatively safe to assume that any object in the game can be used as part of a recipe, though it may yield unexpected results.  This list will be expanded as appropriate.


List of Items usable in {item} (Likely Incomplete)

Animal Hide Leather Raw meat or fish
Cooking pot Heated Fireplace Threshing Tool
Flail Beater Root vegetables
Vegetables Grinding Stone Berries
Seeds Grains Container
Water Raw ingredients Flour
Raw meat Raw Fish Fire
Cutting Weapon or by hand Tying Equipment Axe
Knife Cutting Weapon Cloth
Mushrooms Flowers Herbs
Seasoning Shovel Cover for kota
Tanning material Heated Fireplace Hammering tool
Axe or carving knife Strong cordage Thin cordage
Seperatoricon.png

Tile List

A rather comprehensive list of valid values for use in the {[TILE:]} and {[NEARBY_TILE:]} parameters. 

List of Valid Values for {[TILE:]} or {[NEARBY_TILE:]}

Water Ground Ford Lichenous Pine Forest
River Rapids Sea Grove
Shutter Big Rock Fence Heathland
Road Cave Fireplace Young Pine
Sleeping Bunk Open door Bench Pine
Camp Shelter Spruce Spruce mire
Birch Inside of a Kota Framework Thicket
Kota doorway Rowan Alder Cellar
Hole in the Ground Young Spruce Coniferous Forest Prepared Soil
Settlement Armory Weaponsmith Food Storehouse
Fish Storehouse Fishing Shed Bowyer Hideworker
Granary Goods Shed Metalsmith North-west corner of a Kota
Mountain Southern Wall Northern Wall North-east corner of a kota
Hill Pine mire South-west corner South-west corner of a kota
Open mire Bushes North-west corner South-east corner of a kota
Village Fortified Village Eastern wall Northern wall of a kota
Table Field Western Wall Southern wall of a kota
Pasture Door North-east corner Eastern wall of a kota
Surface of the Earth Inside of a building South-east corner Western wall of a kota
Cave Floor High Cliff
Seperatoricon.png

Terrain List

This is a list of values that are valid in the {[TERRAIN: ]} parameter.  Some of the types apply to multiple terrains, and we have incomplete information on those.  The values on the left are word of Sami Please check {[TERRAIN:cave]} seems to work properly in v3.19.

Valid {[TERRAIN: ]} Values Applies to Terrain types
barren
lake
pond
river
dryish
dry
fresh
grove
open_mire
spruce_mire

pine_mire

wetland
settlement

meadow

clearing
field
cliff
mountain
Seperatoricon.png

Quick and Dirty Tutorials

A simple mining widget.

Open or create menudef_name.txt file and add:

.mining. -A- *MAKE*
Where .mining. is the new menu to add to the Make menu.
-A- or any letter that is not in use on the Make menu, this is the quick key for the menu.
This sets *MAKE* to be the parent menu.

Open or edit diy_name.txt and add:

[SUBMENU_START:mining]
.Miner Pick. "Wooden shovel" [effort:2] *COMMON* /30/
.Mine Ore. "Stone" [effort:3] [phys:stance,arms,hands] *COMMON* /2h/
{[TERRAIN:cave]} 'You need find a cave'
{[NEARBY_TILE:Cave floor]} 'Get underground to dig'
{[NEARBY_TILE:High cliff]} 'Find vein in cave wall'
{Miner Pick} <Miner pick> 'A miner pick for digging'
[SUBMENU_END:mining]
[SUBMENU_START:mining] marks the start of the items that will appear on the "mining" menu.
.Miner Pick. creates an item named "Miner pick" with an item type of "Wooden shovel" (appears as shovel on ground).
The effort is moderate (2) to make the pick. *the skill applied to make the pick is Common.
The pick will take 30 minutes to make. I have not filled in needed items or tools to make the pick.
.Mine Ore. creates an item named "Mine Ore" with an item type of "Stone" (appears as stone on ground).
The effort to mine one ore hard (3). Physical [phys:] needs standing position and both arms and hands to do without penalty.
The skill applied to the task is Common. The task will take 2 hrs.
The Terrain and nearby tile tags mean you must be in cave terrain, inside the actual cave and against a wall to mine.