On Mod Support

Very briefly, because people keep asking: “Can you make mods for Dungeons of Dredmor? What is the plan for modding for Dredmor?” Emphatically: a) yes, b) what is contained below.

Dredmor has mod support built into it. You make mods in the same way you used to make them for Quake 3 – you take your mod, you build a parallel directory structure for it, and you shove it in a ZIP file. The ZIP file then goes in a mod directory on your hard drive, and you can turn them on or off. A mod is listed as either being a patch-style mod – in which case, it just loads after the core game – or a total conversion style mod, in which case the core game by itself is not loaded and you must replace *everything* that Dredmor looks for. This is… a lot of stuff.

At present, you can mod items, rooms, skills, spells, monsters, and the game’s tweak DB. This is all done with XML. For instance, here is the necromantic spell Tenebrous Rift:

<spell name=”Tenebrous Rift” type=”targetfloor” icon=”skills/spells/tenebrous_rift32.png” >
<effect type=”damage” necromantic=”10″ necromanticF=”0.55″ self=”0″ />
<effect type=”rift” amount=”10″ />
<requirements mp=”34″ magPowBonus=”0.13″ mincost=”8″ />
<anim sprite=”sprites/sfx/black_ritual/black_ritual” frames=”10″ framerate=”100″ centerEffect=”1″ sfx=”portal” />
<description text=”Opens a fearful un-rift into abwhere. Oh, the horror. The Horror.” />
<effect type=”trigger” spell=”Tentacular Doom”/>
<effect type=”trigger” amount=”1″ spell=”Blood Debt” />
<effect type=”trigger” amount=”3″ spell=”Soul Price” />
<effect type=”trigger” amount=”5″ spell=”Curse of the Mind” />
<effect type=”trigger” amount=”7″ spell=”Curse of Weakness” />
<effect type=”trigger” amount=”2″ spell=”Lingering Weakness” />

So it’s pretty easy to work with. Spells are built with building blocks; you have some stuff that a spell does, and you have some stuff that a spell might do… say, later. That just casts another spell. Items are much the same. Here, for instance, is a Runed Iron Hjalmir, whatever that is:

<item name=”Runed Iron Hjalmr” iconFile=”items/helm_hjalmr2.png” craftoutput=”1″>
<price amount=”1350″/>
<armour level=”6″ type=”head”/>
<secondarybuff id=”10″ amount=”3″/><!– armour absorption –>
<secondarybuff id=”7″ amount=”6″/><!– block –>
<secondarybuff id=”14″ amount=”-1″/><!– mana regen –>
<secondarybuff id=”3″ amount=”-3″/><!– mana –>
<primarybuff id=”2″ amount=”-1″/> <!– NIM –>
<description text=”This helm is fit for a warrior from the great sagas!”/>

We will be documenting as much of the XML as we can remember how it works. At present, modding is in the game but disabled; we will be enabling it shortly after we ship. This is just a matter of time for testing and wanting to clean up some of the user interface, but we are excited to see what people do with Dredmor.

Posted in Dungeons of Dredmor, Games, Gaslamp, Programming | Tagged , , , ,

6 Responses to “On Mod Support”

  1. AtkinsSJ says:

    That looks surprisingly simple, actually. Hooray!

    Personally, I’m not likely to do any modding (or at least not finish and release anything), but I look forward to seeing what other people come up with.

    { reply }
  2. d32 says:

    Community will love you for this, I’m sure!
    I do already 😉

    { reply }
  3. Pingback: Dungeons of Dredmor: Releasing Soon, Releasing Ultra-Cheap

  4. Speedhoven says:

    Are the sprite files half-life sprites or how do you open them? Only criticism about the game so far is that I would love a paper doll character(your equipment is worn by the character) or at least chance to choose your character(not that I don’t like mr. funny ‘brows).

    { reply }
  5. MrBlueSL says:

    How do you set the Mod name, author, and description?

    I’m working with making mods for DoD but I can’t seem to get the mod to show up in the “Mod Loader”. Does anyone have an example mod they can link? Much Appreciated :3

    { reply }
  6. HandOfLixue says:

    Would love some clarification on MOD support myself… a simple example mod and instructions on how to install it would be perfect.

    { reply }

Leave a Reply

Your email address will not be published. Required fields are marked *