Mod Support
Hey everyone, we hope you're all doing well! Before delving into this month's update, we'd like to welcome you to join our Discord server if you haven't already done so. We're always active in there and it's the best way to stay up to date with the game's development!

We've still been hard at work on the game these past few months, and we wanted to take a some time to talk about our plans are for mod support in The Iron Oath. It's something that has come up recently in our Discord and we felt it would be best covered in a big update!
Mods
The Iron Oath will support a variety of things you can tweak and modify fairly easily. At your disposal will be the ability to make both big and small changes to quests, simulation variables, or custom artwork. For things like quests and in game events we're using modified version of the Yarn tool you can find here. While our version of the tool is pretty custom, quite a bit of the syntax and general tool use is the same so if you want to familiarize yourself with it then I recommend checking it out!
Here is a small sampling of the things you will have easy access to mod when the game is released.
The above list is the broad overview of what you'll be able to modify and add to the game through mods but there are plenty of other things to tweak. I hope by the time we launch or shortly after we'll have a wiki setup that details everything but for now I'm going to walk through a couple examples of quests and events.
Sample Quest
-The basic layout of our quest editor with various quests and event nodes
Here is what the quest editor looks like. On the left hand are a list of categories which contains groupings of quests and/or events. On the right hand side of the editor are a group of nodes that contain all the scripting for different quests and events in the selected category. Each node has either details on the quest itself, various events and traps, or scripted encounters associated with it.
-A simple quest can be set up with very few lines of code and then fleshed out with more event node
After selecting a node you can modify any scripts contained inside. From here you can set various rewards, description text, which tileset is associated with the quest, etc. There are dozens of other variables you can configure when creating a quest like making it only appear if there is a plague active in a region or only during times of war. Certain quests can be given to the player through another scripted encounter so it doesn't require quite as many variables to set up since it will be assigned directly to the player from another event. The one above is a repeatable quest you could take when the conditions for it to show in a region occur. It could potentially be found in a city hub given out by one of the town citizens.
When making your own quests you could make a one off repeatable quest that is added to the pool of other quests to be potentially selected by the game for the player to take on or make a multi quest campaign that spans a generation!
Sample Event
Next I wanted to show you how to create a simple event that can be added to a pool of random events you might encounter during a playthrough. This one I'll break it down a little more so you can get a better understanding on what's going on in the script.
-An event you might encounter while traveling through the world
The trigger is what shows the event. This particular one is triggered by traveling on the world map. This could also be something like when entering a town, or an inn, or when a character dies, or when camping, etc.
There are loads of regional events that can be active at any given time like a plague, blizzard, civilian revolts, town festivals, or (in this particular event's case) high bandit activity. There are dozens of these states to check with various effects on the region.
This variable tells the game to not repeat this encounter more often than once ever X number of days. This can also be set to -1 and it will never repeat after being seen once.
This is a function that creates a temporary NPC to be used in this event. These can also be used to create NPCs that persist for as long as needed in game.
This is some flavor text that will be shown to the player for the event. Any text like ** text ** will let the game know this is descriptive text and will do some extra formatting when displayed to the user. There are also some variables in the text that can be parsed so we can modify the text dynamically. In the above text [FNameP0] stands for First Name Player 0. This event will select a player at random from the company to be inserted into the text. There are also ways to grab specific players by different characteristics or tags as well.
The above is used when we want to have a particular character talk. The game will know to display their character portrait and name.
The above script will check if we have any characters that have the honorable trait and if we do then show some extra text. We could use checks like this to branch the event in an entirely different direction so that even if you see the same event multiple times it might play out differently.
These lines are how we handle choices being made by the player. Adding -> before a line lets the game know we are about to add a choice for the player to make. Inside the brackets you can see various tags (like [Honorable,Brave]). These tags let the game know this choice is considered to be an action that is honorable and brave. Conversely, the dialogue option farther down is considered cowardly. Depending on who is in your company, making choices can effect how they feel about you as a leader and can have ramifications down the road.
One last line I wanted to touch on is the above. This is what tells the game we're about to get into a fight and will start the flow of going into combat. The SE.WorldEventBanditAmbushEncounter is another node in yarn that contains the details on the enemies involved in this encounter.
I hope you'll see there's plenty of potential for players to continue adding a ton of content after launch and I honestly can't wait to see what people come up with!
https://www.youtube.com/watch?v=_A2n55Wu48k
Lastly, we've uploaded another design timelapse, this one is for the Imitator enemy. It is capable of taking on the form of your characters and using their attacks against you!
Thanks for reading and for your continued support! As mentioned earlier, we'd love to have you join our Discord, and if you haven't wishlisted the game yet, we'd appreciate that too :) Stay tuned for more exciting updates in the future!

We've still been hard at work on the game these past few months, and we wanted to take a some time to talk about our plans are for mod support in The Iron Oath. It's something that has come up recently in our Discord and we felt it would be best covered in a big update!
Mods
The Iron Oath will support a variety of things you can tweak and modify fairly easily. At your disposal will be the ability to make both big and small changes to quests, simulation variables, or custom artwork. For things like quests and in game events we're using modified version of the Yarn tool you can find here. While our version of the tool is pretty custom, quite a bit of the syntax and general tool use is the same so if you want to familiarize yourself with it then I recommend checking it out!
Here is a small sampling of the things you will have easy access to mod when the game is released.
- Create new quests or entirely new campaigns that span decades of in game time
- Modify basic stats and damage values for player & enemy classes and their abilities
- Create custom dungeon layouts and set traps and enemy encounters as you see fit
- Create new weapons, gear, consumables, etc (along with your own art) to be set up in the generic loot pool or make something unique to be given as a quest reward
- Custom Company & House banner flags as well as custom character portraits
- Add new player and enemy color templates
- Create custom events for the player to stumble across in the overworld or in a dungeon where you can add your own character interactions, sound effects, and music
- Access to most of the variables used for controlling how the game simulation works
- Create custom backstories for generated characters and what traits are associated with them
- Tons more with other variables you can tweak or icons you can manipulate
The above list is the broad overview of what you'll be able to modify and add to the game through mods but there are plenty of other things to tweak. I hope by the time we launch or shortly after we'll have a wiki setup that details everything but for now I'm going to walk through a couple examples of quests and events.
Sample Quest

Here is what the quest editor looks like. On the left hand are a list of categories which contains groupings of quests and/or events. On the right hand side of the editor are a group of nodes that contain all the scripting for different quests and events in the selected category. Each node has either details on the quest itself, various events and traps, or scripted encounters associated with it.

After selecting a node you can modify any scripts contained inside. From here you can set various rewards, description text, which tileset is associated with the quest, etc. There are dozens of other variables you can configure when creating a quest like making it only appear if there is a plague active in a region or only during times of war. Certain quests can be given to the player through another scripted encounter so it doesn't require quite as many variables to set up since it will be assigned directly to the player from another event. The one above is a repeatable quest you could take when the conditions for it to show in a region occur. It could potentially be found in a city hub given out by one of the town citizens.
When making your own quests you could make a one off repeatable quest that is added to the pool of other quests to be potentially selected by the game for the player to take on or make a multi quest campaign that spans a generation!
Sample Event
Next I wanted to show you how to create a simple event that can be added to a pool of random events you might encounter during a playthrough. This one I'll break it down a little more so you can get a better understanding on what's going on in the script.

<>
The trigger is what shows the event. This particular one is triggered by traveling on the world map. This could also be something like when entering a town, or an inn, or when a character dies, or when camping, etc.
<>
There are loads of regional events that can be active at any given time like a plague, blizzard, civilian revolts, town festivals, or (in this particular event's case) high bandit activity. There are dozens of these states to check with various effects on the region.
<>
This variable tells the game to not repeat this encounter more often than once ever X number of days. This can also be set to -1 and it will never repeat after being seen once.
<>
This is a function that creates a temporary NPC to be used in this event. These can also be used to create NPCs that persist for as long as needed in game.
**Up ahead, one of your outriders is returning to the caravan with great haste. They stop at the front of the column just ahead of you, and begin to relay something to [FNameP0], pointing down the road while they do so. With a nod of affirmation, [FNameP0] turns about on their mount and heads in your direction.**
This is some flavor text that will be shown to the player for the event. Any text like ** text ** will let the game know this is descriptive text and will do some extra formatting when displayed to the user. There are also some variables in the text that can be parsed so we can modify the text dynamically. In the above text [FNameP0] stands for First Name Player 0. This event will select a player at random from the company to be inserted into the text. There are also ways to grab specific players by different characteristics or tags as well.
{player:0}Sir, scouts report a bandit blockade up ahead. We could try and go around, but it will slow us down. What would you like to do?
The above is used when we want to have a particular character talk. The game will know to display their character portrait and name.
<>
{
{player:$CharacterWithTrait}I say we take 'em head-on, boss. We know they're there, I'd rather not leave them for some unfortunate traveler to happen upon.
}
<>
The above script will check if we have any characters that have the honorable trait and if we do then show some extra text. We could use checks like this to branch the event in an entirely different direction so that even if you see the same event multiple times it might play out differently.
->[Honorable,Brave]Make ready to attack!
<>
->**Attack**
<>
<>
<>
->[Cowardly,SelfPreserving]Let's go around. **Continue**
<>
These lines are how we handle choices being made by the player. Adding -> before a line lets the game know we are about to add a choice for the player to make. Inside the brackets you can see various tags (like [Honorable,Brave]). These tags let the game know this choice is considered to be an action that is honorable and brave. Conversely, the dialogue option farther down is considered cowardly. Depending on who is in your company, making choices can effect how they feel about you as a leader and can have ramifications down the road.
<>
One last line I wanted to touch on is the above. This is what tells the game we're about to get into a fight and will start the flow of going into combat. The SE.WorldEventBanditAmbushEncounter is another node in yarn that contains the details on the enemies involved in this encounter.
I hope you'll see there's plenty of potential for players to continue adding a ton of content after launch and I honestly can't wait to see what people come up with!
https://www.youtube.com/watch?v=_A2n55Wu48k
Lastly, we've uploaded another design timelapse, this one is for the Imitator enemy. It is capable of taking on the form of your characters and using their attacks against you!
Thanks for reading and for your continued support! As mentioned earlier, we'd love to have you join our Discord, and if you haven't wishlisted the game yet, we'd appreciate that too :) Stay tuned for more exciting updates in the future!