Darkest Dungeon®

Darkest Dungeon®

43 ratings
How to test your mod
By Sherin
Tired of loading up your savegame over and over again? You wanted to quickly test some small changes? Then this guide might be for you. With my instructions you can setup your own seperate directory where you can test out your mods with ease!
   
Award
Favorite
Favorited
Unfavorite
Introduction
I was so tired of loading up my game, loading up my save game and then loading into a mission to test whatever small change I made to one of my mods. So I went looking for alternatives and I found one. I stumbled upon the developer script that is already included in the game directory and came up with ways to use it for mod testing.
This method needs a bit of preparation to be done before you can start testing. Be careful and keep track of what you do with your files, otherwise it might get messy. We don't want that, do we?
Setting up your own Test Directory
Locate your Darkest Dungeon game directory.
  • Steam
  • steamapps⠀
  • common⠀
  • DarkestDungeon⠀<- Copy this!

Copy the folder to any space on your hard drive.

DarkestDungeon <- You may rename your copy to anything you'd like

For example:

Darkest Dungeon Test Directory

Skip to Using the Test Script, if you don't want to have DLC content available for testing.
WARNING: Non-Steam users beware!
If you use the GoG or Epic game version read this carefully please!

Due to the workings of the scripts you will need to backup your save files located in:

C:\Users\Username\Documents\Darkest

profile_0 might get overwritten by some testing scripts (I could confirm for those that load into town). profile_0 is the first save ingame.

Steam users don't have to worry, since their save game location is in the steam folders.
Optional: Adding Class DLC content
Installing Musketeer, Flagellant and/or Shieldbreaker

Locate and copy/move the following folders into your Darkest Dungeon Test Directory:

For Musketeer
  • Darkest Dungeon Test Directory⠀
  • dlc
  • 445700_musketeer
    Copy this -> audio
    Copy this -> campaign
    Copy this -> heroes
    Copy this -> modes
    Copy this -> trinkets
    Copy this -> upgrades


For Flagellant
  • Darkest Dungeon Test Directory⠀
  • dlc
  • 580100_crimson_court
    Copy this -> audio
    Copy this -> localization

    And

  • Darkest Dungeon Test Directory⠀
  • dlc
  • 580100_crimson_court
  • features
  • flagellant
    ㅤㅤㅤㅤCopy this -> effects
    ㅤㅤㅤㅤCopy this -> heroes
    ㅤㅤㅤㅤCopy this -> modes
    ㅤㅤㅤㅤCopy this -> panels
    ㅤㅤㅤㅤCopy this -> raid
    ㅤㅤㅤㅤCopy this -> shared
    ㅤㅤㅤㅤCopy this -> trinkets
    ㅤㅤㅤㅤCopy this -> upgrades


For Shieldbreaker
  • Darkest Dungeon Test Directory⠀
  • dlc
  • 702540_shieldbreaker
    Copy this -> audio
    Copy this -> colours
    Copy this -> dungeons
    Copy this -> effects
    Copy this -> fx
    Copy this -> heroes
    Copy this -> inventory
    Copy this -> localization
    Copy this -> loot
    Copy this -> modes
    Copy this -> monsters
    Copy this -> overlays
    Copy this -> panels
    Copy this -> raid
    You can copy this, BUT DO NOT OVERRIDE pre-existing raid_settings.json -> scripts
    Copy this -> shared
    Copy this -> trinkets
    Copy this -> upgrades

Optional: Adding Crimson Court DLC content
Installing Crimson Court content (Monsters, Trinkets, Quirks and etc)

This might increase loading times.

  • Darkest Dungeon Test Directory⠀
  • dlc
  • 580100_crimson_court
    Copy this -> audio
    Copy this -> campaign
    Copy this -> colours
    Copy this -> curios
    Copy this -> localization
    Copy this -> overlays
    Copy this -> shared

    And

  • Darkest Dungeon Test Directory⠀
  • dlc
  • 580100_crimson_court
  • features
  • crimson_court
    ㅤㅤㅤㅤCopy this -> campaign
    ㅤㅤㅤㅤCopy this -> colours
    ㅤㅤㅤㅤCopy this -> dungeons
    ㅤㅤㅤㅤCopy this -> effects
    ㅤㅤㅤㅤCopy this -> fx
    ㅤㅤㅤㅤCopy this -> inventory
    ㅤㅤㅤㅤCopy this -> loading_screen
    ㅤㅤㅤㅤCopy this -> loot
    ㅤㅤㅤㅤCopy this -> maps
    ㅤㅤㅤㅤCopy this -> modes
    ㅤㅤㅤㅤCopy this -> monsters
    ㅤㅤㅤㅤCopy this -> overlays
    ㅤㅤㅤㅤCopy this -> panels
    ㅤㅤㅤㅤCopy this -> props
    ㅤㅤㅤㅤCopy this -> raid
    You can copy this, BUT DO NOT OVERRIDE pre-existing raid_settings.json -> scripts
    ㅤㅤㅤㅤCopy this -> shared
    ㅤㅤㅤㅤCopy this -> trinkets
    ㅤㅤㅤㅤCopy this -> video
Optional: Adding Colour of Madness DLC content
Installing Colour of Madness content (Monsters, Trinkets, Quirks and etc)

This might increase loading times.

  • Darkest Dungeon Test Directory⠀
  • dlc
  • 735730_color_of_madness
    Copy this -> audio
    Copy this -> campaign
    Copy this -> colours
    Copy this -> curios
    Copy this -> dungeons
    Copy this -> effects
    Copy this -> fx
    Copy this -> inventory
    Copy this -> loading_screen
    Copy this -> localization
    Copy this -> loot
    Copy this -> maps
    Copy this -> modes
    Copy this -> monsters
    Copy this -> overlays
    Copy this -> panels
    Copy this -> props
    Copy this -> raid
    Copy this -> raid_results
    You can copy this, BUT DO NOT OVERRIDE pre-existing raid_settings.json -> scripts
    Copy this -> shared
    Copy this -> trinkets
    Copy this -> video
Optional: Merged raid_settings.json
If you want to load DLC dungeons you will need this modified file. In the normal case the game would merge this file itself, but since we need to hard install the DLC it needed to be merged manually.

raid_settings json[drive.google.com]

To be put here:
  • Darkest Dungeon Test Directory⠀
  • scripts
Using the Test Script
The Create Monster Script is what we will use for testing. You can find it here:

  • Darkest Dungeon Test Directory⠀
  • _windowsnosteam
    ㅤㅤ Darkest_create_monster.vbs

    Doube-click Darkest_create_monster.vbs!

    A window will open:


    Input any monster IDs you want! Quick example:


    Click OK and the game will load up!


    Find more possible monster IDs by browsing through the files. Example on how to find them:

  • Darkest Dungeon Test Directory⠀
  • monsters
  • skeleton_common
    ㅤㅤㅤㅤㅤ skeleton_common_A
    ㅤㅤㅤㅤㅤ skeleton_common_B
    ㅤㅤㅤㅤㅤ skeleton_common_B


    Great, now we know how to spawn critters! But what about the heroes?
    To setup your team you need to locate this file and open it:

  • Darkest Dungeon Test Directory⠀
  • scripts
    ㅤㅤㅤ starting_roster.darkest


    The first four entries are the heroes that will show up when using the script.
    Configure them however you like!
Extra Scripts
For ease of use I created a bunch of extra scripts that allow you to test various things.
  • Spawing a curio in the first room. (Darkest_create_curio.vbs)
  • Camping in the first room. (Darkest_camping.vbs)
  • Directly loading into the hamlet/town. Dummy save. (Darkest_start_town.vbs)
  • Directly load up a save from the Documents/Darkest folder. (Darkest_load_save.vbs)
  • Starting nightmares/flashbacks. (Darkest_start_flashback.vbs)
  • Starting quests. (Darkest_start_quest.vbs)
  • Starting plot quests. (Darkest_start_plotquest.vbs)
  • Starting town events. (Darkest_start_townevent.vbs)
  • Testing effects. (Darkest_test_effects.vbs)
  • Testing items. (Darkest_test_item.vbs)
  • Testing quirks (by pressing F4). (Darkest_test_quirk.vbs)
  • Testing virtues or afflictions. (Darkest_test_resolve.vbs)
  • Testing trinkets. (Darkest_test_trinkets.vbs)
Extra Scripts[drive.google.com]

All you need to do is downloading the zip and extract it to:

  • Darkest Dungeon Test Directory⠀
  • _windowsnosteam



    Double click the script you need and follow the instruction of the prompts.
Additional parameters
Right-click the script and open it with a text editor.
  • Darkest Dungeon Test Directory⠀
  • _windowsnosteam
    ㅤㅤ Darkest_create_monster.vbs

    You will be faced with this:
    set wshs = WScript.CreateObject( "WScript.Shell" ) regentry = "HKCU\SOFTWARE\Red Hook Studios\Darkest Dungeon\firstroombattle" On Error Resume Next default = wshs.RegRead( regentry ) On Error Goto 0 monster = InputBox( "Enter name of monster to place in first room:", "Create Monster", default ) wshs.RegWrite regentry, monster, "REG_SZ" commandline = "Darkest -size 1600 900 -firstroombattle " + monster wshs.Run( commandline )

    To add additional parameters we need go to this line:
    commandline = "Darkest -size 1600 900 -firstroombattle " + monster wshs.Run( commandline )

    Below is a list of start parameters you can use with the script and descriptions of what they do.
    This is currently a work-in-progress.

    ㅤㅤㅤㅤㅤㅤㅤㅤParameterㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤArgumentsㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤDescriptionㅤㅤㅤㅤㅤㅤ
    -skiptutorial
    Disables tutorial popups.
    -autolevelupheroes
    1-6
    Levels up your heroes and upgrades their equipment/skills to the given level.
    -start_language
    french
    german
    spanish
    italian
    ...
    Switches game language.
    -starttrinket
    trinket_id
    Gives a trinket to your hero in rank 1. Find Trinket IDs in the entry files contained in the trinkets folder.
    -startquirk
    quirk_id
    Gives quirks to all of your heroes. Find Quirk IDs in the quirk library files contained in the shared\quirk folder.
    -stressed
    stalwart
    courageous
    focused
    powerful
    vigorous
    custom_virtue
    fearful
    paranoid
    selfish
    masochistic
    abusive
    depressed
    irrational
    custom_affliction
    Starts the battle with all of your heroes at stress level 99. Pass a turn to start a resolve check. You can force a virtue or affliction by using one of the listed arguments. If you don't use an argument the resolve check will be done normally.
    -startvirtued
    stalwart
    courageous
    focused
    powerful
    vigorous
    custom_virtue
    Starts the battle with all of your heroes virtued.
    -startafflicted
    fearful
    paranoid
    selfish
    masochistic
    abusive
    depressed
    irrational
    custom_affliction
    Starts the battle with all of your heroes afflicted.
    -startatbeforedeathsdoor
    Starts the battle with all of your heroes at 1 HP.
    -starteffects
    Stealth2
    kill_self
    Stress 1
    Bleed 1
    Blight 1
    Stun 1
    ...
    Applies effects to your heroes. Examples:
    -starteffects Stealth2
    Will apply stealth to hero in rank 1.

    -starteffects Stealth2 Stealth2
    Will apply stealth to heroes in rank 1 and 2.

    -starteffects none Stealth2
    Will apply stealth to your hero in rank 2.

    -starteffects none none none Stealth2
    Will apply stealth to your hero in rank 4.

    You can use any effect you want - checkout the effects file.
    -startmode
    radiant
    bloodmoon
    Starts the battle with mode scaling.
    -startplotquest
    plot_kill_hag_1
    plot_kill_swine_prince_1
    plot_kill_drowned_crew_1
    plot_town_invasion_0
    plot_darkest_dungeon_1
    Calls a specified plot quest. You can use this to force a different dungeon entrance room for your test battle. It can be used to test plot quests aswell - just be sure to leave the create monster window empty or else every encounter will be replaced with whatever you typed in.
    -startsupply
    Starts the battle with all possible supplies in your inventory.

    This is how it might look like if you decide to turn off tooltips and add quirks to your heroes:
    commandline = "Darkest -size 1600 900 -skiptutorial -startquirk hard_skinned -firstroombattle " + monster wshs.Run( commandline )
Testing your own mod
Copy the contents of your mod folder into the Darkest Dungeon Test Directory.


If it's a class mod - replace one (or all?!) of the first four entries with your class ID and run the script!
  • Darkest Dungeon Test Directory⠀
  • scripts
    ㅤㅤㅤ starting_roster.darkest

Since you cannot choose your skills during the Test Battle I recommend subscribing to a mod like this: https://steamcommunity.com/sharedfiles/filedetails/?id=2188081793
Copy its contents from Steam\steamapps\workshop\content\262060\2188081793 into your Darkest Dungeon Test Directory

After doing that - adjust these two parameter in your hero.info.darkest file:
skill_selection: .number_of_selected_combat_skills_max 7 generation: .number_of_random_combat_skills 7



If it's a monster mod - use the script to spawn your lovely critters (or baddies) by typing in their IDs.



If it's quirk or trinket - adjust the script with the parameters mentioned in the Additional Parameters guide section OR use my new extra scripts.




To test changes, locate your mod files in the Darkest Dungeon Test Directory and edit them. Test them until you see the results you wanted and then copy your edited files back to your original mod folder.
Closing Words
I will keep updating this guide - I'm happy about any feedback and input. It hasn't been that long since I figured out this way of testing mods and I hope it will be plenty useful to other modders, no matter if beginners or experts!

Happy modding and testing!
2 Comments
Sherin  [author] Oct 21, 2023 @ 3:51am 
That's a weird issue - because what you input into the prompt window should basically do the same as what you did. Maybe something on your computer prevents the prompt from making a registry entry. Try running the script as administrator or check if an antivirus progam is blocking it.
<Rin>铃 Oct 21, 2023 @ 3:43am 
Nice guidance!But there lies a problem that creating a monster is not work.I found the solution:you need to open the "Darkest_create_monster" files and write the monsters' id after the"firstroombattle" so that the program could read what monsters you want to create.