Format: Numeric list
Font: Font Face
Colors: limegreen, teal, orange, red, blue
1.2 Formula Config
1.3 Item Parameters
2.0 Blacksmith Integration
2.2 Adding the recipe
This part of the tutorial will scope with how to set up a new recipe for the blacksmith. To do this, we will first look at the formular config which contains the most important part of recipes and afterwards the Item Parameters which determine some more important properties.
First, we need to make either a new recipe record or copy an existing one. For now, we’ll copy an existing one as that’s way less work to do.
For instance, I’ll use this record:
First you need to either load your mod or create a new one (Mod -> New…)
Then go to Database -> Import Record in the menu bar and select the recipe you want to copy (or simple copy paste the path above) and press ok.
You should have imported your database record now.
Navigate to it and right click it -> Rename
and give it a different name. For me that’ll be sample_recipe.
Now doubleclick the .dbr file (or right click -> edit)
This window should open:
Now you’re ready to begin working on your new recipe.
1.2 Formula Config
Now that you opened your recipe record, we first want to have a look at the “Formula Config”. To do this, select it in the treeview on the left of the DBR Editor:
You’ll notice that there are quiet a lot entries. I’ll explain these now:
artifactFormulaBitmapName is an entry of the type “tex” which means that it’s value is usually a path that leads to a texture file from the game’s resources. In this case, it is a bitmap as it’s the icon that will be shown in the inventory of the player when picking it up from the ground. We will let it as it is for now.
artifactName is the entry that determines which item (or items) will be crafted. This can either be an item or an itemtable. In our case it’s an item as this is the blueprint for the aether elixir. We will change it to something else to see it’s effect ingame later. For now, I’ll change it to an enchantment:
To do this, double click the value. A button should appear on the right of the value:
if you now click this button, the same window as from Import Record will open. Now navigate to the item you want to craft (or use copy & paste if you want to use the same enchantment as me) and click ok.
It should look like this now:
forcedRandomArtifactName is the entry that determines which item will be shown in the blacksmith’s item preview which is pretty usefull if you’re using an item table as the game otherwise wouldn’t know which of the items in the item table to show. If you let this blank, it will be the item you put for artifactName. To show you the effect of this, we will now change this, too, but to a different item. I’ll change it to the fabric quest item to make the effect significant:
forcedRelicCompletion determines whether a component will be entirely crafted or only one part of it if the crafted item is a component.
artifactCreateQuantity is the amount of items you craft in one turn.
ArtifactCreationCost is the amount of iron you need to spent to craft this item
reagentBaseBaseName is a .dbr path to the “great” item that is required to craft this item, for example scrap, blood etc. This entry must have an item assigned in order to make the recipe work.
reagentBaseQuantity is the amount of items from reagentBaseBaseName that is required to craft this item. It has to at least be 1 in order to make the recipe work.
reagent#BaseName is a .dbr path to the #. component that is required to craft this item. Optional.
reagent#Quantity is the amount of items from reagent#Basename that is required to craft this item. Optional.
If you feel like changing anything here, do as you wish but keep in mind that a recipe without reagentBaseBaseName and quantity will not show up in the blacksmith even if you learned it. I’ve removed the reagent1BaseName and quantity so that my recipe only requires a tainted brain matter to be crafted. Also I’ve set the creation cost to 0 to be able to test the recipe without needing to spent iron on it. Nevertheless it will always cost at least 1 iron, even if you put 0 as cost.
Why are all these named something with artifact?
Since Grim Dawn uses the engine of tq, these are entries related to it. In tq, relics used to be artifacts and artifacts were the only type of item that could be crafted, so this is why the entries are named artifact. If the devs would have renamed everything from tq fitting for Grim Dawn it would have taken even longer until we get the tools, not to speak of having to change half the engine.
1.3 Item Parameters
If you now select “Item Parameters” on the right side of the record editor, the entries on the right will change to look like this:
itemText is a tagbased string that will display as the item’s name ingame.
Tagbased strings are strings that are sort of a placeholder as they’ll be replaced by a preset text. I’ll make another tutorial for that later on.
itemClassification this is a picklist of strings which indicates the classification of the item resulting in the color of the item name getting changed to the one from this type of item. For example legendary means a purple name, epic will be blue etc.
dropSound this is the sound the item will cause when dropping from your inventory or an enemy or whatever else.
dropSound3D is the sound that will be played when the item is dropped somewhere where it would cause a sound related to the physics engine.
dropSoundWater is the sound the item will cause when it falls into water.
itemCost is the amount of iron this item will cost when you buy / sell it to the vendor.
itemCostScalePercent is a percentage based value that will influence the itemCost value ingame.
itemLevel is the item’s virtual level used to calculate things like level requirement and attribute requirement. In case of recipes this is not used.
cannotPickUpMultiple prevents the player from picking up multiple items of this type, this recipe in our case if set to true.
cannotPickUp disallows picking up this item when set to true.
itemHooks not exactly sure what this is about. Couldn’t test it yet, sorry.
soulbound determines whether this item is soulbound
untradeable determines whether this item is tradeable
maxStackSize determines how many times this item can be stacked. Only works for oneshot / scroll items. Does not work for recipes.
preventEasyDrops probably determines whether the player recives a warning when attempting to drop an item. Not tested though.
If you did all changes you wanted to do, select File -> save in the menu bar of the records editor to save your changes.