forums | blogs | polls | tutorials | downloads | rules | help

DS/DS2 Modding: the Big Picture (draft)

Sharkull's picture

I thought of writing this document a long time ago, and decided to sketch out some of the basics as a start... not sure if I'll ever complete it, so here's what I have so far. I originally envisioned embedded links for each subject / external resource, ideally with all the site's modding tutorials linked from this one document (this acting as a sort of overview / tutorial index).

Comments, corrections and suggestions are welcome. Smile

DS/DS2 Modding: the Big Picture (an introduction for newbie's)

What is possible and what isn't.

Save game editing:
Practically possible only in DS1 Multi-Player. DS1 Single Player and all DS2 saves are stored in binary format and are therefore uneditable without a storage key (to decrypt the compressed binary data). There is a DS2 save game editor out somewhere, but I haven't used it myself...

Item modding (weapons / armor):
This is a popular area of modding within the DS/DS2 engine because GPG made things easily editable here, with three basic areas of item modding possible.
1) New item templates (using existing models and textures) can be created with little more than a text editor. Changes to the attributes of existing items (weapons / armor) are even easier.
2) It is also possible to add your own custom textures to existing and / or new item templates. Do your art work with your favorite image editor and then convert the pictures to a DS/DS2 compatible file format...
3) The third (and most involved) possibility for item modding is 3D modelling your own items, using GMax/3DSMax plus the add-on Siege Max (which I believe is part of each game's Tool Kit).
Note: for modelling armor (which, AFAIK, are actually changes to the actor models) you really need the actor's Art Pack as a starting point (and GPG has not released Art Packs for all of the actor types...). There have been attempts at conversions of game files into an editable format, with marginal success (again, AFAIK... 3D modelling is not my area of expertise by a long shot).

Special Effects:
Want to create a new swirling / glowing effect for your sword / shield / staff...? How about a cool new spell effect? Well, you're in luck because these things are possible in both DS and DS2 (I believe by working with text files...).

Relatively small changes can be made to GPG's maps working within text files, or for larger changes the program SiegeEditor/SE2 can be used to open up the game's regions for more involved work, but this is not the true power of DS/DS2 mapping. Using SE/SE2, you can create your own maps, large or small. Map landscapes are made using building blocks called "nodes", and you can create entirely new regions using the same nodes as GPG's maps, only arranging those building blocks differently. You can add in actors, monsters, treasure chests, and basic scenery (trees, shrubs, flowers...) as well as any other game design feature seen within the regular game (teleporters, doors, elevators...). Optionally, you can also design your own 3d nodes for use in a custom map. Basically, there is great potential for builders / storytellers to create their own adventure with this game engine.

Game logic:
Some game logic is open to changes, including most (if not all) story specific logic. The DS/DS2 engines both use a language which is similar to C++ called "skrit", and this language can be used for certain logical functions within the game (eg. programming actor behaviour, quest management...). DS2 also has a more user friendly language called "flick" which makes working with certain common game logic tasks much easier, like quest management and working with NIS' (in-game movies).

Game engine tweaks:
Some changes are quite easy and others are not. Basically, if the setting / behaviour you want to modify is contained within the game's resource files then changes can be made (with a text editor...). Otherwise, hard-coded behaviour / settings are practically beyond the reach of the vast majority of modders.

Everything else (uber advanced game engine tweaks):
In DS1 there is the possibility of creating a dsdll for advanced work. In regular DS2 this is not possible, but the DS2TK's DS2Mod program does have ds2dll capabilities.

Modding Basics
Working with Tanks:
All modifiable game content comes in compressed files called "tanks" (map tanks are .dsmap/.ds2map files and resource tanks are commonly .dsres/.ds2res files). Think of tanks as GPG's own kind of zip file.

Caution: When modding, never make changes directly to GPG's tanks that came with the game. This is never necessary. Through an automatic priority system, any custom tanks will override any duplicate content within GPG's tanks, so (if done correctly) your mods will function without the risk of corrupting the original files. To be clear: you can extract content from GPG's tanks, but you should never retank them as whole replacements of the originals.

When working with tanks, the internal path of files is vitally important. The game engine looks in certain places for certain types of files so internal path matters, but putting a bunch of work in one tank vs. a number of tanks is irrelevant. GPG's separation of movies, sounds, artwork, logic... into separate files is unnecessary (they probably did it to keep the individual tank file sizes reasonable). There are certain files that can only exist in map files (main.gas for example), but most game resources do not have this restriction.

Tanking Tools:
The most popular tools for working with tank files are TankViewer/TankViewer2 (used for viewing / extracting files from tanks) and TankCreator/TankCreator2 (used for compressing files into tanks). SiegeEditor/SiegeEditor2 also have tank extraction and creation capabilities (but with a different interface and feature set).

Mod testing:
I cannot stress this point enough: when possible, test your mods using DSMod/DS2Mod. These programs are part of the Tool Kits, and their purpose is to aid mod play testers. They are basically full versions of the game programs, but with error handling enhancements and a command console. The biggest advantage of DSMod/DS2Mod is the ability to test untanked work (when you put your work in the correct folder), which is a time-saver as well as an elimination of a potential point of failure (something very valuable when troubleshooting). Tanking issues are not uncommon, and it is extremely helpful to be able to test mods first.

Siege University:
SU and SU2 are excellent resources of information on the fundamentals of DS/DS2 modding, as well as some more advanced topics.


Mapping Basics




Great idea, and I know exactly where we would put it.

In fact, we could put it there when you don't feel like working on it anymore and have the community finish the rest.

Sharkull's picture

sol77 wrote:
In fact, we could put it there when you don't feel like working on it anymore and have the community finish the rest.

That's what I was thinking too. Smile

I have to be in the right mood to write documentation and yesterday my fingers just started typing... :P Hopefully I'll make some more progress before too long.

I think the most time-consuming part is going to be link gathering (organizing / structuring documents isn't too hard... especially after I can see the "big picture" Wink ). Once that's done, coming up with short intro. descriptions for each category / topic shouldn't take too long. The biggest challenge I can forsee is in how to include undocumented topics in a somewhat useful manner (the idea is to encourage new tutorials being created...). Another challenge will be in how to include tutorials that cover multiple topics...

Xaa has given me permission to move his tutorials to our site. Those coupled with Nivisec's tutorials should make a good basis for your document. Gathering the links will still be tedious but atleast many of them will be on the same site. Smile

Oh, have you had anymore inspiration? Smile

Sharkull's picture

That's good news. Smile

...and it's not really about inspiration, it's about mood. I need a certain mind set to work on documentation. Don't worry, I haven't forgotten about this... Wink

Hehe, ok. Smile