Authors: JeNoVaViRuS
Before you try to start with any tutorials on modding you should read this.
Before you can even use tools to modify content you need to unpack every FromSoftware game (except Dark Souls Remastered because it's already unpacked).
No matter which tools you use to modify content it will only take effect if you:
It is recommended to use ModEngine but older titles like DS1 are not supported. You can only use the second option.
ModEngine automatically forces the game to be offline. So if your game is not supported (or you want to be extra safe which you should) you need to block outgoing traffic in the firewall (this is for Windows 10+ only, I expect linux users to be able to do this on their own):
netsh advfirewall firewall add rule name="BlockDSRemastered" dir=out program="C:\Program Files (x86)\Steam\steamapps\common\DARK SOULS REMASTERED\DarkSoulsRemastered.exe" profile=any action=block
You can now edit the path to fit but this is the default path for Dark Souls Remastered.
You can't play online anymore at this point. The game will be force to offline mode.
If you want to remove the rule and play normally again then instead enter this in the cmd:
netsh advfirewall firewall delete rule name="BlockDSRemastered" dir=out
If you have existing save files then you need to make a backup of them. Never, ever, go online with a save that was used with a mod.
After you have played the game with a mod you need to delete or rename your current save files and restore your old save files.
Here are the default save game folders:
If you can't see the folder “AppData” you need to select “View” in Windows Explorer and enable showing hidden items.
You should keep a backup of your game so if you mess up an original file you can simply copy it over from your backup.
Sometimes you will read that you need to “unpack” or “repack” files. This is referring to the tool “WitchyBND” which unpacks the default archive files of FromSoftware games to a new folder. You can then enter the folder and edit specific files. After editing it you need to repack the folder so it gets converted to a file.
How to do that:
Adding files:
All enemies and NPCs have an AI. The .luabnd files are in the “script” folder.
Characters are all entities (enemies and NPCs) with an AI. The player is c0000.
The character files are in the “Chr” folder and contain the .flver model, animations and textures (need to be unpacked as well).
The players animation file “c0000.anibnd.dcx” can be opened with “DSAnimStudio” and contains all animations from tae 00 (or 000 in later titles).“TAE” stands for time action event and is an animation + events happening at a specific point during the animation for X amount of time. This can be one frame or several seconds.
Additional files contain taes for other ranges e.g. “c0000_a1x.anibnd.dcx” contains the taes for 10-19 and “c0000_a9x.anibnd.dcx” contains the taes for 90 and all above.
Other files e.g. “c2040.anibnd.dcx” contain the animations for enemies.
Body, weapon and armor files of the player are in the “parts” folder. The ID is used to select the model from the folder (referenced in the params of the games with the field “equipModelId”).
All files have a prefix and indicate the type of model:
All body files have “f” (female) or “m” (male) in the name to indicate the body type or “a” for all.
The suffix “_l” stands for the low poly and texture version (used for far distances).
In DS1 the player model gets assembled with armor parts (include body parts) + configured face + bald head. This means equipping an armor piece will always replace the body part. Masks are used to avoid clipping between armor parts. The suffix “_m” of armor parts indicates the hollowed version.
In DS3+ the player model gets assembled with armor parts + configured face + naked body parts. Masks on armor parts are used to make the body part disappear if needed.
Texture files are in a .tpf format (packed and contain .dds files) and models are in a .flver format.
The HUD elements and icons are in the “menu” folder. The file “01_common.tpf.dcx” holds the mapped out low resolution icons on sheets.
The “knowledge” folder holds single high resolution icons in DS3. In ER they are divided into “hi” (high“) and “low” resolution folders and you need to unpack the “00_solo.tpfbdt” file first to see them.
In ER the goods param holds the IconID for the “knowledge” folder and magic params hold the IconID for the spreadsheet.
The “mapimage” folder holds the bonfire warp images in Dark Souls 3.
The language files are in the “msg” folder. Text can be most easily edited with Smithbox.
All files regarding maps are in the “map” folder.
MSB: These are map metadata files. They hold the information what entity type (e.g. navmesh, object etc.) is located where (region, coordinates, rotation).
Navmesh: They are “plaines” (simple meshes) used by AI characters to navigate.
Objects/AEG: Objects are assets (e.g. a cupboard, a chair) and since ER they were replaced by AEGs which are just an optimized version
AETs: They are texture types used since ER and can be used for any map or object in the game directly. Textures are normally “bound” to one object or map as they are often packed together. They can be found in the “asset” folder.
The player character and also npcs/enemies are always in a specific state. When doing nothing the character is in the idle state. As soon as you press any button the player state changes e.g. to moving, rolling, swinging a weapon, drinking estus, casting a spell etc.
A state can only change under certain preconditions and can only switch to other specific states.
The several games have different systems to handle states (and respective files):
DS1: ESD (chr/c0000.esd.dcx)
DS2: EMEVD ()
DS3/BB/ER: HKS (action/script/c0000.hks and common_define.hks) and HKB (chr/c0000.behbnd.dcx)
Using “Zeditor” tool for DS1 ESD is highly recommended.
HKS is normally compiled Lua (a script language) but they were decompiled by modders and can be downloaded from the tools page. They can be edited and then used just like that instead of the original files and the games will load them fine. The beh (behaviour) files can be converted with hkxpack-souls.
If someone uses those words they are referring to the files in the “event” folder which holds the “common event” script that is active the whole time and map scripts which are only running when the player is inside the specific map.
The player always has the ID 10000 which is used in the scripts.
Events are typically edited with DarkScript 3 (or esdlang/esdtool for Dark Souls 2).
Those are visual effects like magic, bonfires, sword sparks, walking on certain areas effects like mud etc. The sounds that are heard at the same time belong to them.
The files are packed within the “sfx” folder.
The sfx files are in the “sfx” folder. The “commoneffects” bnd holds all reused files while the effects needed only for certain bosses or on maps are in the specific map files.
The respective resource BNDs hold the textures and models used by the effects.
SFX is the term for visual effects in FromSoftware games.
VFX is normally used for visual effects in modern games but in FromSoftware games it refers to the SpEffectVfxParam category.
FFX is the file extension for unpacked SFX files in DS1.
FXR is the file extension for unpacked SFX files in DS3, Sekiro, ER, and AC6.
Anything from sound effects (SE) to voice lines to background music (BGM).
These files are typically found in the “sound” folder. Dark Souls Sound Inserter (DSSI), FMOD Designer, and RewWise (for Elden Ring) are used to modify sound in the majority of cases.
Talk scripts are used by NPCs or some objects (using invisible NPCs). They start working when the player enters a 5m radius around them and are map based only.
They are in the “script/talk” folder and can be edited with “ESDStudio” in python syntax (they use the EZState/ESD system).