Darkest Dungeon®

Darkest Dungeon®

Not enough ratings
Roster Bonus Start - Adding Heroes
By gWorldz
I get asked about adding additional heroes from authors I wasn't able to obtain permission to add to my "Roster Bonus Start" or "Full Roster Start" mods quite often so I thought I should just try to explain how to add new heroes to the starting roster as simply as possible.

This guide will walk you through how to add other developers custom heroes to your starting roster. I'll give a brief explanation of the hero entry listed in the roster and what needs to be modified to get these heroes added to the list.

Please note this does not include how to mod basics or explain uploading your mod to the workshop it only details the required edits to add a hero to your starting roster.
   
Award
Favorite
Favorited
Unfavorite
Getting Started
Getting started is pretty straight forward pick a custom class mod that you have installed from the Steam Workshop.

This guide, will be using the "The Librarian: Community Project" mod by Balgin Stondraeg and Holiday Slime to explain this process since it is the most recent class I was asked about adding.

Note: It is possible to add one of the 15 core classes from Darkest Dungeon to your roster but will require creating a couple additional files to compensate for the additional hero on your roster. For more information about this see the "Add DD Class" section of this guide.

Reference Files
This guide uses files from Darkest Dungeon, as well as, files located in the custom class mod as references to determine the details needed for edits. The Darkest Dungeon files used are the "names.string_table.xml" file located in the "localization\" directory, the "quirk_library.json" file found in the "shared\quirk\" directory, and if adding Darkest Dungeon default classes the "CLASS_NAME.info.darkest" file found in the "heroes\CLASS_NAME\" directory and the "default.camping_skills.json" file located in the "raid\camping\" directory of your Darkest Dungeon installation.
  • The "names.string_table.xml" file is used to reference available names that are already translated for use in Darkest Dungeon.
  • The "quirk_library.json" file list all quirks available in a default installation of Darkest Dungeon.
  • The "CLASS_NAME.info.darkest" file for default classes is not addressed in this guide but can be used to add heroes of the 15 default classes.
  • The "default.camping_skills.json" file list camping skills available to the 15 default classes.
Note: Flagellant, Musketeer and Shieldbreaker "CLASS_NAME.info.darkest" files are located in their respective folders found in the "DLC\" directory of your Darkest Dungeon installation.

We will also be referencing a couple files from the custom class we plan to add to our roster. The easiest way to locate Workshop mods is to get the mod id number from the url displayed in your browser's address bar and navigate to the Workshop folder with that as its name. Using "Librarian" as an example ...
... we will need to navigate to the ...
Steam\steamapps\workshop\content\262060\1185211485
... directory of our Steam installation. If you installed to default location this should be on your "C:\" drive within the "Program Files (x86)" directory.

We will need to find the "CLASS_NAME.info.darkest" file inside the "heroes\CLASS_NAME" directory and the "CLASS_NAME.camping_skills.json" file from the "raid\camping\" directory of your selected custom class mod.

For this guide I'll be using the following files the "librarian.info.darkest" from the "1185211485\heroes\librarian\" directory and the "librarian.camping_skills.json"from the "1185211485\raid\camping\" directory of the Workshop mod.
  • The "CLASS_NAME.info.darkest" is used to determine HP as well as what active combat skills are available.
  • The "CLASS_NAME.camping_skills.json" file is used to determine what camping skills the class has available.
Add DD Class
This may or may not pertain to your mod and is completely optional unless you are adding one of the 15 core classes as the roster bonus!

In order to add one of the 15 core classes from Darkest Dungeon to your roster you will need to create a couple additional files to add room for the hero on your roster. Most custom class files will include a file similar to the one we need to create but if the custom class you are adding doesn't have a "CLASS_NAME.roster.additional_variables.json" file in its "campaign\roster\" directory you may also need to create your own "MOD_NAME.roster.additional_variables.json" file to compensate.

After creating the "campaign\roster\" directory in your mod, add a new file named "MOD_NAME.roster.additional_variables.json", make sure "MOD_NAME" is unique and matches the name of your mod for simplicity, then open the file and paste the following ...
{ "additional": { "roster_size": 1 } }
... to add 1 extra spot on the roster, then save and close the file. Now create the "modes\radiant\campaign\roster\" directory and place a copy of that file into the directory.

Note: The "roster_size" number should be changed to match the number of bonus spots required to account for the additional core class (or custom classes without their own file) roster entries being added.
Roster Entries
We only need to copy and then edit 1 file to add the custom hero to your starting roster. In your mod create a "scripts" directory with a "starting_save" folder and copy over "persist.roster.json" from the "scripts\starting_save\" directory of your Darkest Dungeon installation folder to your mods "scripts\starting_save\" directory.

OPEN
YOUR_MOD\scripts\starting_save\persist.roster.json with Notepad++[notepad-plus-plus.org]

FIND
"2": { "roster.status": 1, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_dismas", "current_hp": 23, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "highwayman", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "hard_noggin": { "is_new": false, "is_locked": false, "mission_count": 0 }, "known_cheat": { "is_new": false, "is_locked": false, "mission_count": 0 }, "quick_reflexes": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "opened_vein": 0, "pistol_shot": 0, "grape_shot_blast": 0, "take_aim": 0 }, "selected_camping_skills": { "first_aid": 0, "clean_guns": 0, "bandits_sense": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } }
This is the roster entry for Dismas, we will just be duplicating this and editing the second Dismas entry to add the custom hero. Highlight the entry and copy it (ctrl+c) then paste (ctrl+v) add a comma "," then paste (ctrl+v) again so that there are 2 entries for Dismas. You can clean up the comma placement if you really want to but its not necessary.

Overview of Roster Entry Edits
  1. Roster ID - This number is an unique identifier and should be different than all other entries listed in this file.
  2. Status - Refers to whether or not the hero is part of the adventuring party as far as I can tell.
  3. Name - These should come from the "names.string_table.xml" file located in the "localization" directory of your Darkest Dungeon game installation for simplicity.
  4. Health - Should be the max health for a level 1 hero of the class you are adding.
  5. Class - Uses the internal name for the class of the hero being added, usually just the name in lowercase with underscores in place of spaces.
  6. Quirks - Altering listed quirks is optional but you should make sure they are compatible with selected class and do not violate class restrictions.
  7. Skills - This section list the skills that the hero will have when added to the roster.
  8. Combat - This is for listing the 4 active combat skills the hero will have already equipped.
  9. Camping - This is for listing 3-4 of the classes available camping skills the hero will have.
Other modifications can be made to the hero being added but this is the minimum, the other edits you can make to roster entries, I leave figuring out to you through trial and error (best way to learn anyway).
Edits - Basics
Modifications
  1. Roster ID can be changed to any number that hasn't already been used by the other roster entries. I like choosing high 3 digit numbers for roster entries I add but you can choose whatever makes you happy. For the rest of this guide the custom hero being added will use "123" as its Roster ID.
  2. Status should be changed from "1" (active adventuring party) to "0" since this hero will not be available until we get to the Hamlet.
  3. For simplicity we will be selecting a name from those available in the "names.string_table.xml" file located in the "localization" directory of your Darkest Dungeon installation. There are hundreds of names listed and the name displayed will match the name listed for your Darkest Dungeon installations language.

    Random names for heroes displayed in your Stage Coach range from "hero_name_0" and "hero_name_558" and I suggest randomly selecting one rather than adding a custom name unless you know what you are doing. I'm just going to use "hero_name_123" for the rest of the guide.
  4. To discover what your custom heroes class health should be we will need to reference the "CLASS_NAME.info.darkest" file located in the custom class mod's workshop folder. Find the custom classes folder listed in the "heroes" directory of the mod and open the "CLASS_NAME.info.darkest" file located within.

    Once the file is open look for the first line that starts with "armour" and scan for the "hp." entry. The number shown after "hp." is the maximum health available for that class and recommended number to use ...
    armour: .name "librarian_armour_0" .def 12% .prot 0 .hp 16 .spd 0
    ... so we will be using "16" for the Librarian. Keep this file handy it will be needed later.
  5. Hero class name should be the same as the name of the folder listed in the custom class mod's "heroes" directory. So we will be using "librarian" for the rest of this guide
Now that I have the information needed for the first 5 edits of my second "Dismas" this is what the entry looks like ...
}, "123": { "roster.status": 0, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_123", "current_hp": 16, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "librarian",
... now lets move on to Quirks options.
Edits - Quirks
Adding and/or altering quirks is completely optional and not required for most entries. If you want to alter this heroes default quirks, open the "quirk_library.json" file located in the "shared\quirk\" directory of your Darkest Dungeon installation folder to use for reference.

Then add or delete listed quirks to your liking by using the ID listed in the "quirk_library.json" file. Some custom class mod's may also have unique quirks available to them in their own "quirk_library.json" files and will be located in the mods "shared\quirk\" directory if available.

Regardless of where your quirks come from, make sure you don't add quirks that conflict. For this guide I have decided to use "quickdraw", "lazy_eye" and "evasive" for this librarians quirks and this is the new entry for Quirks ...
"quirks": { "quickdraw": { "is_new": false, "is_locked": false, "mission_count": 0 }, "lazy_eye": { "is_new": false, "is_locked": false, "mission_count": 0 }, "evasive": { "is_new": false, "is_locked": false, "mission_count": 0 } },
... and now we can move on class skills.
Edits - Skills
Class skills must me edited to match those available to the custom class and consist of Combat skills obtained from the "CLASS_NAME.info.darkest" file we used earlier or camping skills listed in the "librarian.camping_skills.json" file located the custom class mod's "raid\camping" directory. All roster entries need exactly 4 active combat skills and 3 (or 4) camping skills listed.

Reference the "CLASS_NAME.info.darkest" file located in the custom class mod's workshop folder and locate the first line that starts with "combat_skill: .id", the name listed in parenthesis after ".id" is the name of the combat skill. You will notice that every 5 lines a this changes, each entry is another skill option to choose from.

For the librarian available combat skills are ...
  • "beat_back"
  • "mark_skill"
  • "forbidden_chant"
  • "stress_heal"
  • "quick_plan"
  • "six"
  • "lib_protect_me"
... I will be using "beat_back", "forbidden_chant", "stress_heal", and "lib_protect_me" as the 4 combat skills available for my hero.

Camping skills can be the generic skills listed in the "default.camping_skills.json" file located in the "raid\camping" directory of your Darkest Dungeon installation folder if you are adding a default Darkest Dungeon hero class or come from the "CLASS_NAME.camping_skills.json" file located in the "raid\camping" directory of your custom class mod's workshop folder.

For the Librarian class the available options for generic skills are ...
  • "first_aid"
  • "pep_talk"
  • "encourage"
... with the following being the available class specific options ...
  • "bedtime"
  • "power"
  • "soothing"
  • "riddle"
... I will be using "pep_talk", "bedtime", and "riddle" as the camping skills of this hero.

"skills": { "selected_combat_skills": { "beat_back": 0, "forbidden_chant": 0, "stress_heal": 0, "lib_protect_me": 0 }, "selected_camping_skills": { "pep_talk": 0, "bedtime": 0, "riddle": 0 } }
... will be the remaining changes made to the second "Dismas" entry.

The full entry for the Librarian Custom Class Roster Entry will look like this ...
}, "123": { "roster.status": 0, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_123", "current_hp": 16, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "librarian", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "quickdraw": { "is_new": false, "is_locked": false, "mission_count": 0 }, "lazy_eye": { "is_new": false, "is_locked": false, "mission_count": 0 }, "evasive": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "beat_back": 0, "forbidden_chant": 0, "stress_heal": 0, "lib_protect_me": 0 }, "selected_camping_skills": { "pep_talk": 0, "bedtime": 0, "riddle": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } }
... when completed and will be available as soon as you arrive in the Hamlet.

Final Thoughts
After making these changes we can save the file and see the results by starting a new game with the class mod and the mod we just made both active. Once we complete the Old Road and arrive in the Hamlet we will have our very own Librarian as part of our initial roster.

I added the "Roster Bonus Start (Guide Mod)" mod to my workshop if you want to see what this mod would look like completed just in case I didn't explain things well enough for everyone. The mod also includes the skeleton key I add to all my other "Roster Bonus Start" mods even though I didn't explain that edit in this guide. I didn't think it would complicate things and figured no one would mind having that as a bonus.
1 Comments
Alucard 1 Sep, 2019 @ 2:52pm 
hello would you help me with this mod
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1744414212
i try a lot time make it work but i cant
pls