Captain's Log: Mod Tool Development Part 2
Attention Crew!
This log is a continuation of a series of logs that reviews the development of new modding tools for Darkest Dungeon. We highly recommend that you check out Part 1 before reading this log.
This log focuses solely on new buff stat types and buff rule types that we're developing.
Keep in mind that the mod tools are still in active development, so everything we mention here may change down the line. gibbed, the main developer of the new mod tools, was unexpectedly unavailable due to personal reasons during the turn of the month. This means that some of the changes we lay out today are more tentative than usual.
[h2]Disclaimer[/h2]
We've seen some confusion regarding the mod tools and our relationship with Red Hook. To be clear, the new mod tools we're developing are entirely unofficial. Black Reliquary will have the tools patched in by default, but base DD players will likely need to patch their game in a way similar to SKSE (Skyrim) or Repentagon (Binding of Isaac).
[h2]Buff Source Checking[/h2]
We're very pleased to announce that we've added "has_bsrc" and "target_has_bsrc" rules types. For Black Reliquary, this means that we'll finally be able to use proper conditional buffs for Amerblighted, Expiated, Frantic, Leeching, and Enraged. Previously, checking for ActorDoTs with a skill involved ADoTs applying various buffs and chains of effects on skills. Now, not only will this be simplified, but modders will also have more options. For example, the closest we could get "+ACC vs Expiated" in the previous iteration was multiple "-Dodge if attacked by skill" debuffs applied by the skill that applied the Expiate itself.
Combined with the custom buff sources that we mentioned in the last log, modders will be able to use new buff sources to create new pseudo statuses.
Here's a basic example of how a hypothetical "Armored" status could be implemented

[h2]Tag Manipulation via Buffs[/h2]
In Vanilla, Heroes and Monsters can both have "tags" defined internally. This determines a handful of minor things, such as if a hero is Religious, if a district should apply buffs to a hero, and what sound effects a hero's footsteps use.
We will be including new "has_tag" and "target_has_tag" rule types, which will allow modders to create highly specific, unit-specific conditional buffs.
For example, a trinket could give a bonus based on if the target has a helmet

We'll also be including a new "enable_tag" buff stat type that will allow modders to add tags to Heroes and Monsters via a buff. The tag is only applied as long as the buff is active. This, along with the new tag rules, will let modders use tags in plethora of useful ways.
In Vanilla Darkest Dungeon, you could make a trinket that makes its holder Religious.



There's really quite a lot that modders can do with this, especially with some of the other changes we have in this log. We've only really scratched the surface with the examples given here.
[h2]Trinket Trigger Buffs[/h2]
We think this one will be pretty exciting. We're planning to convert all trinket triggers to buffs. These buffs will work in a similar way to the "riposte" stat type, where they'll take in an effect id as a sub type. This opens the door for quirks, skills, curios, etc. to apply buffs that apply effects on attacks/kills/etc. This would ideally replace standard trinket triggers entirely. All that being said though, we're still researching this, so we want to stress that this is just a possibility at the moment.
[h2]Other Buffs/Rules[/h2]
This section goes over a handful of new buff stat types and rule types. Some of these will only be used for basic backend QoL, while others have more of an impact on gameplay:
- "extra_battle_loot" and "extra_curio_loot"
New buff stat type that takes a loot table in a sub type. On battle end or upon gaining loot from a curio interaction, the loot table is rolled. These are meant to mirror certain hero parameters and means that you don't need to use a size 0 enemy summon to have a trinket drop an item. - "in_combat"
New buff rule type that checks to see if the unit is in combat. - "difficulty" and "difficulty_min"
New buff rule type that checks what the current difficulty is. Greatly simplifies making trinkets with effects that scale with difficulty. - "target_has_quirk"
New buff rule type that checks to see if the target of an ability has a specific quirk. Useful for checking to see if a hero is Religious/Faithless/Pagan. - "skill_type"
New buff rule type that can take in a string. Checks to see if a used skill's type matches the string input. Meant to replace "meleeonly" and "rangedonly" rules. - "ignore_riposte"
This new buff stat type causes the user to ignore riposte. Meant to replace the ".can_be_riposted" skill parameter. - "ignore_stealth"
This stat type isn't new, but we're fixing a longstanding issue where it ignores rules. - "is_round" and "is_round_before"
New rules that can be used to give buffs on/before/after specific rounds. - "target_rank"
New rule that checks the target's rank. - "target_stress_above" and "target_stress_below"
New rules that check the target's stress. - "combat_stat_multiply" and "combat_stat_add"
These aren't new, but we're looking at expanding them to take in a new "crit_dmg" sub type. We may move Crit Dmg to a separate buff stat type, but this is what we're trying now.
[h2]The Future / Transparency[/h2]
Unlike last time, we don't have a solid idea as to when "Part 3" of this series will be ready. But, we do know what we want to work on next. We originally planned to look at effects next, but after realizing that trinket triggers could possibly be condensed into buffs, we're switching gears and looking at trinkets next.
We mentioned this last time, but we want to reiterate that 1.0 content development has come to a halt while the modding tools are in active development. A lot of what we're planning depends on these tools in one form or another. We're confident that taking this extra time will improve the final product greatly, but working on the mod tools is expensive, tedious, and ever-fluctuating. All that meaning we still can't give a proper timeline/deadline for the 1.0 release/mod tools.
========================================================================
Thanks again for your support and patience,
-Team Reliquary
