-
Notifications
You must be signed in to change notification settings - Fork 1
SiegeSmith Modders Guide
This guide is for modding Dungeon Siege itself: understanding the shipped data, changing it, and installing your changes over the retail game. If you want to build a new map or game instead, that path is Making a Game from Scratch — this page is about the classic folder-mod workflow, done with modern tooling.
The core promise: SiegeSmith reads every format with the same code the SiegeFX engine runs, so what the viewers show you is what the game actually loads — no guesswork between tool and engine.
Open any .dsres / .dsmap from the install (Logic.dsres = game rules and templates, Objects.dsres = meshes/animations/art, Terrain.dsres = siege nodes, Sound.dsres/Voices.dsres = audio, World.dsmap = the shipped campaign).
- Browse the full tree, or use the asset-category jump buttons to land on templates, textures, meshes, or animations directly.
- Search filters the whole tank.
- Extract any file or folder to disk — the starting point of every mod.
- Properties show sizes, CRCs, and paths (both copyable).
-
.gas— the game's data language (templates, moods, regions, quests). Tree view + raw text. -
.skrit— the scripting VM: live parse/bind/compile diagnostics, the extern catalogue (what the engine exposes to scripts), and bytecode disassembly. -
.rawtextures — every mip level, with PNG export for editing in your paint tool. -
.asp/.snomodels — orbit/zoom/wireframe, with the real textures resolved. -
.prsanimations — live playback: the paired rig auto-resolves and the clip plays with a scrub slider. Watch exactly whatchore_attacklooks like before you reference it. -
.flmcursor filmstrips, audio playback in-app, text/hex for everything else.
Modding is 80% understanding what's already there; the viewers are how you read the original developers' work.
Extracted .gas files open in the editor with live validation — syntax errors and structural problems surface as you type, not as a mysterious in-game failure. Typical edits:
-
Rebalance a template: extract
world/contentdb/templates/regular/..., change[attack] damage_min/max,[defend] defense,[aspect] max_life, loot in[inventory][pcontent]. -
Retexture: export a
.rawto PNG, repaint it, then re-import it through the World Builder's Custom tab → Import texture (any image becomes a valid mip-mapped.raw). - Tune moods: fog distances, rain, music — the same blocks the Atmosphere authoring writes (see the World Builder Guide).
Keep your changed files in a mod folder that mirrors tank layout (e.g. MyMod/world/contentdb/templates/...). Only the files you changed belong in it — DS1's priority system overlays them on the originals.
The World Builder can load a shipped region (pick it from the install list) and shows its terrain graph with the engine's own layout code. From there the full editor applies — add placements, effects, lights, logic — and everything you author writes standard region gas you can carry into a mod folder. The World Builder Guide documents every tool.
- Build Tank from Folder packs your mod folder into a proper tank with user priority, so the game prefers your files over the originals without touching them.
-
Mod projects (
.ssproj) keep a mod's folder, tank name, and settings together: New/Open/Save from the main window. -
Build & Install drops the built tank straight into the game's
Resources; Launch Dungeon Siege starts the retail game. The whole loop — edit → build → install → test — runs from one window. - Your original tanks are never modified; removing a mod = deleting its tank file.
You can also test against the SiegeFX engine instead of retail — it reads the same tanks, and its console output (--play-region) names loading problems retail would swallow silently.
-
Diagnostic CLI Tools — the
siegefxCLI can dump, audit, and cross-reference game data in bulk (spell catalogs, template chains, region contents); invaluable when a mod touches many files. - Engine Quirks and Stumbles — the accumulated list of format gotchas. Read the relevant section before you fight a format at 2am; someone here already lost that fight for you.
| I want to… | Do this |
|---|---|
| Make swords hit harder | Extract the weapon templates from Logic.dsres, raise damage_max, folder-mod → Build & Install. |
| Reskin a monster | Export its .raw skin to PNG, repaint, Import texture, ship the .raw at the same tank path. |
| See what an animation does | Click the .prs in the Tank Explorer — it plays on its rig. |
| Add loot to a shipped chest | Author the placement's [inventory][pcontent] override in region gas (the World Builder's Drop override writes exactly this shape). |
| Change a region's weather | Edit its mood's [fog]/[rain] blocks — or author them visually on the Map tab and copy the written moods.gas. |
| Understand a script | Open the .skrit — the viewer shows binds, externs, and disassembly. |