Would it have been awesome if you could just return to your character's home after a long and challenging adventure, and drop your loot in the chests or put them on the shelf, then head off to another exciting adventure without worrying about your character's encumbrance limits?
Oh yes, you can do it! You could do just about anything in NWN, except achieve any sort of persistence. Once the module starts, all you have is the ability to save/restore games and export your character; you can't restart the module with another character and expect everything in the module to be exactly as you left it with another character. You needed external hacks to do that. And oh boy oh boy, did people ever hack in all sorts of weird persistence hacks using the scripting API and some more evil methods like latching another program on the server process (as far as I understood it). Since we're only doing this for single player, we can probably do some more gore-filled methods instead.
So, here's an article that's long overdue. I was going to post this to my crappy lil' Neverwinter Nights site when tons of people were still actively playing the game (they probably still are, I just haven't been checking on them), but I never got around to. I probably did in some form, but never posted the guide on the site and I'm not going to start looking.
Without further ado: a guide on how to create your own persistent houses in Neverwinter Nights.
PS3 fans will probably scream that this idea is kind of obvious once you notice that it's possible to do just that. The rest of the people can just scream that LittleBigPlanet sux0rtz® and PC folks did that AGES ago in other games, so LBP still is, and shall remain, something that just doesn't convince us to rush out and buy PS3s. Excuse me while I go back playing Oblivion on Xbox360. With the DLC.</blatant trolling>
So yes, the idea is old. Very old. I had the same idea years ago. How many years ago? Wellll...
% ls -l "modules/Ilmryn's Home 0005.mod"
-rw-r--r-- 1 wwwwolf users 568276 22.3.2003 modules/Ilmryn's Home 0005.mod
...and it wasn't even my idea. I had seen that people did the same thing in MUDs. I wanted that in NWN.
I have to remind you that the following guide is a hack based on the original NWN capabilities. In 2003, this was the only sane and easy way to achieve persistence. Nowadays, when NWN also supports true persistence via database (including GetCampaign*(), SetCampaign*(), StoreCampaignObject(), RetrieveCampaignObject(), etc), this could probably be done more elegantly with a little bit of scripting. This one doesn't require scripting, just dead-stupid recklessness and good backups.
First, we need a few programs. You obviously need the Aurora Toolset. You also need an editor for NWN files. TlkEdit is pretty damn good.
First, construct your amazing home using Aurora. For a rhetorical example, 'm building an shop for an alchemist character of mine from my short stories. You obviously need a bunch of shelves and crates and whatnot - just remember to remove their scripts and make them "Plot" so you won't accidentally blow them up.

Then, just save the module! Now, you can just go and play the game. Adore your home, set things up, put your loot in shelves, and then comes the crucial part - save the game, and save your character.

After this, you can easily open up the module in TlkEdit. Here's how the module looks like when opened in TlkEdit:

Your save game appears in "saves" and has a bunch of files. There's "screen.tga", "player.bic", "portrait.tga", "saveinfo.txt" and a file that's basically a copy of your module file, except with the file extension .sav. You may notice it could be a big bigger than the original file.

The "area" etries have changed, obviously. The biggest change happened in module.ifo. Yep, if you extract the "module.ifo" entry from both, you'll notice there's a whole bunch of new stuff:
- Mod_PlayerList
- Mod_TURDList
- EventQueue
- VarTable
- Mod_Tokens
- ...and lastly, a rather interesting and tell-tale change: Mod_IsSaveGame is set to 1, rather than 0.

Make a copy of the .sav file (And call it "My Home 0002.mod"). Extract module.ifo, and remove all these new entries from the file - and change Mod_IsSaveGame to 0.Delete module.ifo from the module and import your new module.ifo in. Save the module. Copy it to the "modules" directory in NWN. For extra sanity checking, you may want to open this new module in toolset and run the verification thingamabob and save it again.
Now open up NWN, and start up the game, pick the character you exported, and the new module. Shazam! All of the stuff in the module should still be where they were when you saved the game.

Hopefully this guide is helpful.


Leave a comment