Per recommendation from @Carlo in Updates to SKS1, I started down the path of updating DMFI 1.07 to 1.09 in SKS1. I ran into a few complications related to PRR.
As I was documenting my progress, I figured I’d share. Sorry in advance for the long post.
Step 1: Import the erf into your module. Overwrite the following files when prompted
I got an unexpected error about missing assets. I’m assuming this is either a known issue or nothing to be concerned about.
Otherwise, I was able to import with no issues.
Step 2: Make a new neutral faction and assign “The Voice” and “Settings Adjuster” to that faction.
NO ISSUES. While SKS relies heavily on factions, I know that the merchant faction is left as neutral. I’m thinking that creating a new faction is not needed here.
Step 3: If you had a prior version of the wands in place - DELETE NW_IO_GENERIC
NO ISSUES. Curious to see where this might create improvements.
Step 4: If you are updating from DMFI version 1.07 or 1.08a, you may delete the following scripts.
NO ISSUES
Step 5: As of NWN patch 1.64, caching of scripts is no longer necessary
n/a
Step 6: Add dmfi_onclienter as your handler for the module-level OnClientEnter event
NO ISSUES (mostly). As I had a custom onenter script that strips new characters of items and gold and allows them to purchase new items, I just added the DMFI call at the end of this script.
See below for PRR issues.
Step 7: Add dmfi_onplychat as your handler for the module-level OnPlayerChat event
NO ISSUES
Step 8: If you want to use the DMFI rest system introduced in 1.08, add dmfi_onrest as your handler for the module-level OnPlayerRest event.
n/a
Step 9: If you want to use the persistence support for Knat’s NBDE…
n/a
The main issue I ran into was in Step 6, I suddenly found that my OnClientEnter script was throwing errors in _prr_main.
First these two lines were throwing errors:
const string HASH_INDEX = "#i!j$k%l{&M/n(o)p=q?r^Xs`Tu'v]AwBxCyDzE1F2-G3t;4I}5Y:J6_K7+Z[Lm9N\ l0kOjPhQ,gRfSeHdU8cVbWa.";
const int HASH_PRIME = 3021377;
These are related to NBDE and it was pretty quick to find that the newer version of that script included in DMFI had those fixes, whereas the version I had pulled in with PRR way back in the day didn’t. So I commented them out and that seems to make the compiler happy. As these are nbde fixes, that seemed like the correct scope anyway.
Next I found that calls to NBDE_FlushSingleCampaignDatabase were throwing errors. Starting over, copying the old nbde script to sublime and comparing the two lead me to see that this was renamed to NBDE_FlushCampaignDatabase. Updating those function references seemed to resolve the compile errors.
Now, honestly, I think I had just added those calls as a way to support persistent worlds and it was never used in the module. As I didn’t ever work with PWs and none ever used PRR, I doubt it even worked. Looking around the module, I was not using them in SKS.
A quick build and test of the module shows that everything is working. As my whiskey glass and patience are both empty, I’m saving my work and calling it a night. I’ll continue to test more tomorrow, but so far no major issues. I look forward to posting issues then.
Here’s the DM standing in the _DMFI area deciding what to do next.