Darkest Dungeon®

Darkest Dungeon®

Zbyt mało ocen
How to Guide: Add New Heroes to the Old Road
Autorstwa: gWorldz
This guide will show you how to alter the Old Road tutorial and add in a couple extra heroes and could also be used to completely remove Reynauld and Dismas from it in favor of 1-4 other heroes but Reynauld and Dismas really should remain in your roster so I don't recommend removing them completely.
   
Przyznaj nagrodę
Ulubione
Ulubione
Usuń z ulubionych
Introduction
This is just a quick guide showing how to add additional existing hero classes or those from new class mods to the Old Road tutorial with additional notes to explain what the changes are accomplishing.
Getting Started
Follow the standard method of creating your own mod and once you have the mod directory set up create these directories and copy over the required files from Darkest Dungeon into that directory.
    Directories and files to create for edits
  • campaign/town/buildings/stage_coach/stage_coach.building.json
  • modes/radiant/campaign/town/buildings/stage_coach/stage_coach.building.json
  • scripts/starting_save/persist.raid.json
  • scripts/starting_save/persist.roster.json
    File Purposes
  • stage_coach.building.json - Stage Coach First Heroes, the Plague Doctor and Vestal, will be edited out.
  • persist.raid.json - Determines what heros will be used for the Old Road.
  • persist.roster.json - Is where we add heroes to our roster to be referenced by persist.raid.json
File stage_coach.building.json
Both of the stage_coach.building.json files require the same edits but I will only be displaying the edits once. The capaign/ directory is from the original format of Darkest Dungeeon before Radiant and NG+/Stygian modes were added and is by default Darkest mode whereas the modes/radiant/campaigns/ directory is Darkest Dungeon Radiant modes file.
{ "on_start_town_visit_priority" : 0, "requirements": { "number_of_quests_finished": 0, "highest_dungeon_level": 0 }, "data" : { "stores" : [ { "id" : "hero_recruit", "data": { "first_hero_classes" : [ "plague_doctor", "vestal" ], "number_of_recruits_upgrades": [ { "amount": 2 }, { "amount": 3, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "a" }, { "amount": 4, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "b" }, { "amount": 5, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "c" }, { "amount": 6, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "d" }, { "amount": 7, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "e" } ], "roster_size_upgrades" : [ { "amount" : 9 }, { "amount" : 12, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "a" }, { "amount" : 16, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "b" }, { "amount" : 20, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "c" }, { "amount" : 24, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "d" }, { "amount" : 28, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "e" } ], "upgraded_recruits_upgrades" : [ { "level" : 1, "chance" : 0.1875, "number_of_extra_positive_quirks" : 0, "number_of_extra_negative_quirks" : 0, "number_of_extra_combat_skills" : 0, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [3], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "a" }, { "level" : 2, "chance" : 0.125, "number_of_extra_positive_quirks" : 1, "number_of_extra_negative_quirks" : 1, "number_of_extra_combat_skills" : 1, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [4], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "b" }, { "level" : 3, "chance" : 0.0625, "number_of_extra_positive_quirks" : 2, "number_of_extra_negative_quirks" : 2, "number_of_extra_combat_skills" : 2, "number_of_extra_camping_skills": 2, "guaranteed_previous_raid_dead_hero_levels" : [5,6], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "c" } ] } } ] } }
We are going to be editing out the first hero classes so there are no roster number conflicts.
Find
"first_hero_classes" : [ "plague_doctor", "vestal" ],
replace
"first_hero_classes" : [ ],
This has an added benefit of making the Stage Coach present 2 random class heroes instead of the default Plague Doctor and Vestal that are usually received. Don't worry you can add in your own using persist.roster.json file edits if you want them and this guide will be doing that as well as adding an additional hero to our starting roster.
File persist.raid.json
The persist.raid.json file determines how many heroes will be present for the Old Road. Scroll down to the party area of the file and you will see this is how its structured.
"party": { "torchlight": 100, "IsMovingLeft()": false, "retreat_room": "rooA", "heroes": [ 1, 2 ], "start_heroes_size": 4, "scoutChance_all": 0.33, "scoutModifier_all": 0, "inventory": { "system_config_type": "raid", "items": { "0": { "id": "", "type": "provision", "amount": 2 } }, "hunger_room_buffer": 2 } },
We only need to edit one line in this file ...

Find
"heroes": [ 1, 2 ],
Replace
"heroes": [ 1, 2, 3, 4 ],
What this does is tells the game to look for heroes 1, 2, 3 and 4 in the persist.roster.json file and what order to place in them but it is possible to add as many heroes to the roster as you want and call them specifically using alternate numbers.

For Instance, if you've added 6 heroes to the persist.roster.json file, now you will have heroes 1, 2, 3, 4, 5, 6, 7 and 8 available and want to use hero 1, 2, 4 and 7 but have hero 7 closest to the monsters just modify accordingly.
"heroes": [ 7, 1, 2, 4 ],
This order is rendered right to left so your 7th hero would be on the far right of you team with Reynauld (default hero 1) being on the far left.

File persist.roster.json (1 of 3)
Next Roster ID
The persist.roster.json file is where all the work is for getting this to work and only has couple main variables to work with in order to add heroes to the roster. This is the default persist.roster.json ...
{ "version": 513, "data": { "nextGuid": 5, "heroes": { "1": { "roster.status": 1, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_reynauld", "current_hp": 33, "stunned": 0, "ranks": 1, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "crusader", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "warrior_of_light": { "is_new": false, "is_locked": false, "mission_count": 0 }, "kleptomaniac": { "is_new": false, "is_locked": false, "mission_count": 0 }, "god_fearing": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "smite": 0, "zealous_accusation": 0, "stunning_blow": 0, "bulwark_of_faith": 0 }, "selected_camping_skills": { "encourage": 0, "stand_tall": 0, "zealous_speech": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } }, "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": {} } } }, "last_party": { "last_party_guids": [-1,-1,2,1] } } }
Start with your heroes, Reynauld and Dismas are "1" and "2" and the heroes you see first in the stage coach. I'm making Plague Doctor and Vestal to be "3" and "4" and we will also be adding a Hellion to the roster as "5" to show how to add heroes that are not present for the Old Road tutorial but available in the roster as soon as you enter the hamlet.
File persist.roster.json (2 of 3)
Adding Heroes
Now we can move on down to adding them all to our roster.

We will use Reynauld's entry to note the key parts of each roster entry we will be making.
"1": { "roster.status": 1, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_reynauld", "current_hp": 33, "stunned": 0, "ranks": 1, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "crusader", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "warrior_of_light": { "is_new": false, "is_locked": false, "mission_count": 0 }, "kleptomaniac": { "is_new": false, "is_locked": false, "mission_count": 0 }, "god_fearing": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "smite": 0, "zealous_accusation": 0, "stunning_blow": 0, "bulwark_of_faith": 0 }, "selected_camping_skills": { "encourage": 0, "stand_tall": 0, "zealous_speech": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } },
Lets break down the important parts of the roster entry and the variables where it is necessary for us to make edits and why.
"roster.status": 1,
This determines what role the roster entries play for the Old Road tutorial a status of 1 means they will be active party members but remember only 4 of them should be set to 1 set all other heroes to ...
"roster.status": 0,
Now next in the actor variables ...
"actor": { "name_id": "hero_name_0", "current_hp": 22, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} },
... you will need to add "name_id" for each hero, for simplicity you can actually just use, hero_name_0, hero_name_1 and hero_name_2 and continue adding one more to the number up to 558 or grab names off of the DarkestDungeon\localization\names.string_table.xml that you want.

While we are setting up the actor variables you might want to adjust "current hp" to numbers appropriate for the heroes you are adding.

This is Reynauld's quirks for other heroes you will need to edit them to what you want for those heroes.
"quirks": { "warrior_of_light": { "is_new": false, "is_locked": false, "mission_count": 0 }, "kleptomaniac": { "is_new": false, "is_locked": false, "mission_count": 0 }, "god_fearing": { "is_new": false, "is_locked": false, "mission_count": 0 } },
If you make any other changes besides altering the actual quirks the only thing that it should be is whther or not to lock the quirks in that you want.

Make sure you don't add quirks that conflict and that you add the correct quirk by using the Quirks Library ( DarkestDungeon\shared\quirk\quirk_library.json ) for reference.

The next Variable in the list is combat skills and its self explanatory.
"selected_combat_skills": { "smite": 0, "zealous_accusation": 0, "stunning_blow": 0, "bulwark_of_faith": 0 },
Just add the skills you want for your heroes and if I understand correctly the number 0 after those skills means they are active, using 1 here would add the skill to the hero but not have it as the asctive selected skill so make sure you only set 4 or less skills to 0.

For reference open DarkestDungeon\heroes\ *HERO CLASS DIRECTORY* \ *HERO CLASS* .info.darkest in Notepad++ to get the correct skill names to add then open up DarkestDungeon\raid\camping\default.camping_skills.json and add appropriate camping skills.
"selected_camping_skills": { "encourage": 0, "stand_tall": 0, "zealous_speech": 0 }
This is more less a process identical to adding comabt skills.

If you want to give them trinkets you can add them to the next section.
"trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} }
Just add them into the items variable ...
"trinkets": { "system_config_type": "hero_equipped_trinkets", "items": { "crow_wingfeather", "crow_tailfeather" } }
... for example.

Now that you know what everything in the roster Guid's is used for you can create the other heroes you want on your roster and in your party.
File persist.roster.json (3 of 3)
Setting the Last Party
The final part of the file sets your party and its order.
"last_party": { "last_party_guids": [4,3,2,1] }
The numbers refer to the numbers we added for each of the heroes and what their marching order is but moving them around. The number on the left will be your left most hero's placement and the number on the right will be the hero closest to the monsters.
Mod Stage Coach Roster Files
OldRoadPartyMod\campaign\town\buildings\stage_coach\stage_coach.building.json
{ "on_start_town_visit_priority" : 0, "requirements": { "number_of_quests_finished": 0, "highest_dungeon_level": 0 }, "data" : { "stores" : [ { "id" : "hero_recruit", "data": { "first_hero_classes" : [ ], "number_of_recruits_upgrades": [ { "amount": 2 }, { "amount": 3, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "a" }, { "amount": 4, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "b" }, { "amount": 5, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "c" }, { "amount": 6, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "d" }, { "amount": 7, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "e" } ], "roster_size_upgrades" : [ { "amount" : 9 }, { "amount" : 12, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "a" }, { "amount" : 16, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "b" }, { "amount" : 20, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "c" }, { "amount" : 24, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "d" }, { "amount" : 28, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "e" } ], "upgraded_recruits_upgrades" : [ { "level" : 1, "chance" : 0.1875, "number_of_extra_positive_quirks" : 0, "number_of_extra_negative_quirks" : 0, "number_of_extra_combat_skills" : 0, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [3], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "a" }, { "level" : 2, "chance" : 0.125, "number_of_extra_positive_quirks" : 1, "number_of_extra_negative_quirks" : 1, "number_of_extra_combat_skills" : 1, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [4], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "b" }, { "level" : 3, "chance" : 0.0625, "number_of_extra_positive_quirks" : 2, "number_of_extra_negative_quirks" : 2, "number_of_extra_combat_skills" : 2, "number_of_extra_camping_skills": 2, "guaranteed_previous_raid_dead_hero_levels" : [5,6], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "c" } ] } } ] } }
OldRoadPartyMod\modes\radiant\campaign\town\buildings\stage_coach\stage_coach.building.json
{ "on_start_town_visit_priority" : 0, "requirements": { "number_of_quests_finished": 0, "highest_dungeon_level": 0 }, "data" : { "stores" : [ { "id" : "hero_recruit", "data": { "first_hero_classes" : [ ], "number_of_recruits_upgrades": [ { "amount": 2 }, { "amount": 3, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "a" }, { "amount": 4, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "b" }, { "amount": 5, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "c" }, { "amount": 6, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "d" }, { "amount": 7, "upgrade_tree_id": "stage_coach.numrecruits", "upgrade_requirement_code": "e" } ], "roster_size_upgrades" : [ { "amount" : 9 }, { "amount" : 12, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "a" }, { "amount" : 16, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "b" }, { "amount" : 20, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "c" }, { "amount" : 24, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "d" }, { "amount" : 28, "upgrade_tree_id" : "stage_coach.rostersize", "upgrade_requirement_code" : "e" } ], "upgraded_recruits_upgrades" : [ { "level" : 1, "chance" : 0.1875, "number_of_extra_positive_quirks" : 0, "number_of_extra_negative_quirks" : 0, "number_of_extra_combat_skills" : 0, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [3], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "a" }, { "level" : 2, "chance" : 0.125, "number_of_extra_positive_quirks" : 1, "number_of_extra_negative_quirks" : 1, "number_of_extra_combat_skills" : 1, "number_of_extra_camping_skills": 1, "guaranteed_previous_raid_dead_hero_levels" : [4], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "b" }, { "level" : 3, "chance" : 0.0625, "number_of_extra_positive_quirks" : 2, "number_of_extra_negative_quirks" : 2, "number_of_extra_combat_skills" : 2, "number_of_extra_camping_skills": 2, "guaranteed_previous_raid_dead_hero_levels" : [5,6], "upgrade_tree_id" : "stage_coach.upgraded_recruits", "upgrade_requirement_code" : "c" } ] } } ] } }
Mod Starting Save Raid File
OldRoadPartyMod\scripts\starting_save\persist.raid.json
{ "version": 40993, "data": { "raid_instance": { "id": "tutorial", "is_plot_quest": true, "type": "explore", "dungeon": "weald", "difficulty": 1, "length": 1, "goal_ids": [ "tutorial_final_room" ], "completion_reward": { "resolve_xp": 2, "items_definition": { "system_config_type": "quest_rewards", "items": { "0": { "id": "", "type": "gold", "amount": 5000 }, "1": { "id": "crest", "type": "heirloom", "amount": 0 }, "2": { "id": "deed", "type": "heirloom", "amount": 0 } } } }, "explore_room": { "explored_room_count": 1, "target_room_count": 8 }, "town_progression_goals": { } }, "in_area": "rooA", "start_elapsed_time": 0, "areatile": 0, "last_room_id": "rooA", "in_doorway": { "area_to": "none", "tile_to": 0, "implied": true }, "party": { "torchlight": 100, "IsMovingLeft()": false, "retreat_room": "rooA", "heroes": [ 1, 2, 3, 5 ], "start_heroes_size": 4, "scoutChance_all": 0.33, "scoutModifier_all": 0, "inventory": { "system_config_type": "raid", "items": { "0": { "id": "", "type": "provision", "amount": 2 } }, "hunger_room_buffer": 2 } }, "stat_database": { "UNDEFINED": { "count": 0, "entries": {} }, "ROOM_VISITED": { "count": 1, "entries": { "0": { "value": 1, "time_stamp": 0, "count": 1, "parameters": { "0": { "type": 8, "data_type": 6, "data": "rooA" } } } } }, "BATTLE_COMPLETED": { "count": 0, "entries": {} }, "HALLWAY_STEP_COMPLETED": { "count": 0, "entries": {} }, "MONSTER_DEFEATED": { "count": 0, "entries": {} }, "AMBUSHED": { "count": 0, "entries": {} }, "CURIO_INVESTIGATED": { "count": 0, "entries": {} } }, "camp": { "phase": 0, "camping_skill_points": 0 }, "inbattle": false, "loot": { "queue": { }, "queue_items": { "system_config_type": "loot", "items": { } }, "result": { "type": "none", "inventory_system": { "system_config_type": "loot", "items": { } } } } } }
Mod Starting Save Roster File (1 of 2)
OldRoadPartyMod\scripts\starting_save\persist.roster.json
{ "version": 513, "data": { "nextGuid": 6, "heroes": { "1": { "roster.status": 1, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_reynauld", "current_hp": 33, "stunned": 0, "ranks": 1, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "crusader", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "precision_striker": { "is_new": false, "is_locked": false, "mission_count": 0 }, "warrior_of_light": { "is_new": false, "is_locked": false, "mission_count": 0 }, "god_fearing": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "smite": 0, "zealous_accusation": 0, "stunning_blow": 0, "bulwark_of_faith": 0 }, "selected_camping_skills": { "encourage": 0, "stand_tall": 0, "zealous_speech": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } }, "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 }, "quick_reflexes": { "is_new": false, "is_locked": false, "mission_count": 0 }, "known_cheat": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "opened_vein": 0, "pistol_shot": 0, "take_aim": 0, "duelist_advance": 0 }, "selected_camping_skills": { "first_aid": 0, "clean_guns": 0, "bandits_sense": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": { "crow_wingfeather", "crow_tailfeather" } } }, "3": { "roster.status": 1, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_0", "current_hp": 24, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "vestal", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "accurate": { "is_new": false, "is_locked": false, "mission_count": 0 }, "irrepressible": { "is_new": false, "is_locked": false, "mission_count": 0 }, "slowdraw": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "mace_bash": 0, "judgement": 0, "divine_grace": 0, "gods_comfort": 0 }, "selected_camping_skills": { "encourage": 0, "chant": 0, "pray": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } },
Mod Starting Save Roster File (2 of 2)
OldRoadPartyMod\scripts\starting_save\persist.roster.json
"4": { "roster.status": 0, "roster.missing_duration": 0, "roster.story_variation": 0, "roster.missing_from": 0, "roster.building_name": "", "actor": { "name_id": "hero_name_1", "current_hp": 26, "stunned": 0, "ranks": 2, "combat_ready": false, "damage_source": "", "damage_source_type": 0, "damage_type": 0, "buff_group": {} }, "heroClass": "hellion", "resolveXp": 0, "stress": 10, "weapon_rank": 0, "armour_rank": 0, "affliction_severity": 0, "affliction_type_id": "", "quirks": { "evasive": { "is_new": false, "is_locked": false, "mission_count": 0 }, "irrepressible": { "is_new": false, "is_locked": false, "mission_count": 0 }, "weak_grip": { "is_new": false, "is_locked": false, "mission_count": 0 } }, "skills": { "selected_combat_skills": { "wicked_hack": 0, "iron_swan": 0, "if_it_bleeds": 0, "breakthru": 0 }, "selected_camping_skills": { "first_aid": 0, "battle_trance": 0, "revel": 0 } }, "trinkets": { "system_config_type": "hero_equipped_trinkets", "items": {} } } }, "last_party": { "last_party_guids": [3,2,5,1] } } }
Conclusion
We now have a mod for the Old Road tutorial with Reynauld up front, Hellion, Dismas and then the Vestal behind him.


https://sp.zhabite.com/sharedfiles/filedetails/?id=1444218294
Please comment if you have feedback, I'll do my best to answer any questions you may have.

__________
Komentarzy: 10
Lodrak 20 września 2023 o 7:43 
For trinkets in persist.roster.json you are supposed to write them like how you write them in persist.raid.json.
Strogg 13 sierpnia 2022 o 22:34 
Thank you for the mod. :steamthumbsup:
Jolt 3 stycznia 2022 o 3:19 
Thanks bro, great work with the guide.
AresXShepard 27 maja 2020 o 15:55 
This is a great guide. Thanks gWorldz for putting it together!
Warius 20 lipca 2018 o 17:29 
thx I hope for new improvements, and I wil try new test in the next days
gWorldz  [autor] 20 lipca 2018 o 14:06 
I had assumed removing Quirks would be done the way you did it but skills will take manual editing or start heroes off with no skills and require them to be purchased in the guild.

A workaround for removing quirks may be to leave only one quirk entry and use your name as the quirk listed. This might work because there is no quirk named Warius for it to use and no language strings associated with the name/word but I might be wrong. As mentioned above Skills will still need to be added manually for each class you add this way.

Personally I try to start them with 2 positive and 1 negative quirk for a little balance :steammocking:
Warius 19 lipca 2018 o 14:45 
but it got me error. I'd Like all the champions to be free from quirks, is there a particular way to write it, or quirks are supposed to be there because in the class.info file it is written to have some kind of quirk?
Warius 19 lipca 2018 o 14:43 
I tried something very easy:

To add rapidly new classes i tried to simplify the procedure, and decided to remove quirks, and spells from the index of crusader like this


"affliction_type_id": "",
"quirks": {
},
"skills": {
"selected_combat_skills": {
"smite": 0,
"zealous_accusation": 0,
"stunning_blow": 0,
"bulwark_of_faith": 0
},
gWorldz  [autor] 19 lipca 2018 o 7:33 
Good luck hope it all makes sense for you, this was my first guide and I'm trying to develop a decent style and format to follow that will be easy to understand, I should get better in time :steamfacepalm: let me know if you have any trouble will try to help sort it out :steamhappy:
Warius 19 lipca 2018 o 7:05 
simply amazing, I will give a try to edit something myself!