If you’ve ever had to choose between advanced skins for classes that conflict with one another, or been annoyed at that one hero that just does not have skins that you like, there is a solution.
Heroes can be ported onto one another, completely replacing the assets with one another, creating a hero that looks like one character but plays like another.
In this guide, I will be laying out the steps to completely replacing the assets of one hero to another.
Some reasons to do so, for example, is to port vanilla-skeletoned hero skins from their host hero onto a similar modded class, allowing you to keep them while using a skin with a unique skeleton. For example, using the Highwayman as the Baron or the Plague Doctor as the Apothecary.
This method can also be used to port Hero skins into Monsters, useful for additional customization and, again, making use of interesting but prohibitive skins without needing to play them. For example, using a Musketeer skin as the Brigand Fusilier.
This works for every class except Transformation classes, Abomination or Modded, which may require additional attention. I will describe such as well, have no fear.
Do not be alarmed. For basic porting of heroes onto one another or onto monsters, you merely require simple text editing. …I guess I can recommend Notepad++ , as it makes the whole process much easier.
For Transformation Classes, however, you will require Spine if you have money to burn, or Dragonbones. I do not, so this guide will instruct on using Dragonbones to port Transformation classes.
Additionally, if you wish to port audio as well as visual assets, you will need a list of vanilla audio references which comes neatly packaged inside a guide for such, but I will touch on the basics here as well.
Step 1: BACK UP EVERYTHING.
It’s never totally safe to delete your backups, but you should at least hold onto them until you’ve seen your efforts working in-game like you want them.In the event you do lose something, and you have installed mods directly into the game files making verifying the game cache difficult, you can copy the affected areas somewhere else, verify the cache, secure the vanilla files you wish to recover, then paste your modded install back onto the fresh install.
Be warned that doing so will also verify your workshop mod folder, so if you’ve made manual changes there, you should back them up too.
Step 1.5: Transformation Classes
So, transformation classes are annoying. They will have two sets of animations for anything they can do in both forms, so Combat, Defend, Heroic/Afflicted, and (if applicable) Riposte.
Non-transforming classes will get confused, as they look for specific animation names that do not exist in a transformation class… usually, some mod classes do indeed have their ‘human’ form use the default animation names and it just WORKS.The Dragonbones guide has more detailed instructions, but simply run the .skel files through the converter, open the animations, delete the unwanted animations and rename the remaining one with the default name, for example ‘Combat’, ‘Defend’, ‘Death’… then run the altered files through the converter again, and move them back in.
It’s good to do this before you rename them in step 2, as that makes this process so, so much harder then it needs to be.
Now, as for porting other heroes onto transformation classes… Er, that’s less hard, practiced science on my end and more guesswork, but I ‘think’ you do not rename anything, or even cloning the animation for multiple combat forms. …It’s not totally understood to me yet, as there is little demand for such.
Step 2: Renaming the files
The files you wish to rename are all of the donor’s .atlas and .skel files in both the /anim and /fx folders. Additionally, rename the (classname)_# folders, the roster portraits inside them, and the guild background.Optionally, you can rename the ability icons in the same way. It is recommended, as it helps the host feel less like itself with a new skin and more like the donor. The camping icons are not stored in the Heroes\(Classname) folder, but in the raid\camping\skill_icons folder, should you wish to change them as well.
Do not rename the .pngs in the (classname)_#\anim folders. When the game attempts to render a sprite, it looks for (Hostname).skel, which then looks for (Donorname) .atlas, which both then look for (Donorname) .png. The Atlas is unencrypted and can be told better, but the Skeleton is not, and would need to be decompiled and recompiled to make a simple name change, so just Do not touch the .pngs and everything just WORKS.
Step 3: The .art files
You’ll want to open up the .art files of both the host and donor, and replace the host’s .anim, .fx, and .targchestfx entries with the donor’s.
You do not have to replace everything. There are universal .fx like ‘blood_splatter’ that can be loaded anywhere, but all class-specific .anim and .fx should be replaced. Target .fx can be kept, if wished, but remember them if you do for the next step.
Do not forget the friendly fire entry and (if applicable) the riposte entry.If you are porting onto a monster, keep in mind that they have three separate .art files in their (Monstername)_# folders, all of which say literally the same thing, so you just have to edit one and then copy/paste its contents into the other two. If you’re feeling extra creative, you can in fact change the animations for monsters in different difficulty dungeons, though keep in mind you cannot change their combat, defend, and dead sprites between versions.
Step 4: Implementation
There are two ways to install your modified files: Directly, or through the mod system.
Directly is fast, easy, and dangerous, as overwriting vanilla or workshop mod files can be risky. Vanilla is obvious, clear out the host’s .anim, skin folders, and other things that would be replaced, and move in the donor’s files, leaving behind their .art and .info files. If you chose to keep some of the host’s target FX during the previous step, just leave the host’s FX folder in place, it isn’t necessary to split hairs.
When porting onto monsters, move the \anim, \fx, and one of the (classname)_#\anim folders into the monster’s folder, clearing out the host’s files as normal. None of the other data is required, so you might have wanted to read the entire guide first before actually starting your work.
When overwriting mod assets, you can find them in steamapps\workshop\content\262060. The folders within will be ID’d and not named, so going to the mod page, right-clicking anywhere that isn’t a link, selecting ‘Copy Page URL,’ and then pasting it into a blank notepad will give you the ID.
Why Steam no longer has the address bar at the top, only higher beings can tell.
When doing this, remember to delete the Modfiles.txt document in the main mod folder. It does nothing but prevent the game from loading unauthorized files in the mod folders, and will force the game to ignore the .pngs if left alive. Keep in mind that, if the mod updates, it’ll replace the file. I honestly don’t recommend doing this because of that, either move it to the manual \mods folder and unsubscribe from the mod to keep the workshop from auto-updating it, or use the mod system.
The mod system is safer, but requires a little more work. Basically, you want to create a new folder in the DarkestDungeon\mods folder, copy the default .png into it, and then copy a project.xml file from another mod into the folder.
From there, recreate the file system from the base game treating the mod folder as \DarkestDungeon, so heroes\(Classname) for heroes, monsters\(monstername) for monsters, and move over the modified files as before.
Open the .xml file and change the name to something you’ll recognize. The other data doesn’t need to be changed… probably. 90% sure.
Then, when starting a game, you should find the mod at the top, as the game loads mods chronologically with manual installs at the top. You can then enable it and play it like any normal mod, without having to overwrite files. …You should still backup the files, though, just in case.
Step 4.5: Porting sound
Secondly, the guide in the link to the vanilla sounds I posted covers this, but to be brief…
1: Create a (Classname).heroes.guid_overrides.json file.
2: Add at least one entry for every move you want to change. It should look something like this.
Remember that all moves need the ‘miss’ entry, even friendly ones that can’t miss.
3: Replace the override addresses with the entries found in the massive list you can download from the linked guide. Be very afraid.
4: Contemplate your sanity. Ask yourself if this was worth the cost. Stare into the face of god, and walk backwards.
Step 5: Testing and cleanup
To test your modifications, start a new game with the Full Roster Start Mod to quickly get access to whatever vanilla class you chose, and the disabled core heroes mod when testing a modded class, to ensure the modded class appears in the stagecoach on the first week. It is recommended to run the latter with the former, so you can go into the tutorial dungeon with whatever team comp the modded class needs.
Now that you have ensured your mod works, you can safely dispose of your backups, should you need the space. Again, it is never safe to get rid of your backups when you do not have the original, unmodded files available, but it’s also not the end of the world if you do end up regretting it.
If you’re a neat freak, you can safely remove .atlas, .skel, and .pngs not referenced by the .art file.
A: No. Monsters do not have idle or walking animations, and making them requires actual talent and paid software.Q: Game Crashed.
A: Check the .art file for typos, missed entries, or other silliness.
Q: White blocks, what’s happening?
A: Do not. Rename. The PNGs.
Q: This is all too complicated, do you have an easier method?
A: I’ll take requests and do the work myself. Ask for sound porting at your own peril.
Q: Nice attitude, no one was requesting or demanding anything, just asking if someone would…?
A: You get what you pay for.
Q: But you aren’t being paid?
A: And yet I’m offering my help anyway, what a steal! …Stop looking in my mouth.