Recently I received a generous donation on this very site from a fan of this mod. I decided to invest some of that money back into the mod b...

Error For Your Thoughts?

Recently I received a generous donation on this very site from a fan of this mod. I decided to invest some of that money back into the mod by purchasing Far Harbor for PC. I own the season pass for XBox, but that does not transfer over to PC where I have to do the modding from (unfortunately). I have plans for replacements and bringing the Fog Ghouls to the commonwealth in a plugin to this mod.

During the process of creating this new child plugin, which is still a work in progress, I am running into all sorts of errors. Basically learning by doing things wrong and quickly learning about limitations. I'm going to document some of those errors below in case others happen upon this page in a future google search.

TL;DR when dealing with mods that depend on others, read the Inter-mod Communication wiki page for options.

Error 1: const type zombiewalkerutil may not be used to define script variables or properties

I have a ZombieWalkersUtil script in my main mod that has some global utility methods I'd like to use in the new mod. I tried to declare a property with the type being the script name, which apparently isn't allowed.

I then changed the property type to "Script Object" which is allowed. The problem is, when you go to assign a value, the list is empty for me so I can't chose any script let alone the one I want.

Solution: I'm not sure this is allowed

Error 2: type mismatch while assigning to a var (cast missing or types unrelated)

Since this is declaring Global functions, I figured I'd try out the special utility method made to call them: Utility.CallGlobalFunction.

In my case, this looked like it was going to work until Papyrus got grumpy with one of my script parameters in the Var array. Either it doesn't like int[] params, or I am doing something wrong. I tried explicitly casting as an int[] but that didn't help. The other parameters (eg. FormList, int) didn't seem to throw any errors.

Eventually I ended up giving up and rewriting a portion of the script inline where I needed to use it (for now). Maybe someone stumbling upon this post can provide some guidance on what parameter types are allowed.

Solution: maybe int[] parameter types aren't allowed?

Error 3: Cannot open store for class "ZombieWalkerFH_QuestPlayerScript", missing file?

The errors above came from a Quest initialization script where the scripts associated with the quest could not be read/bound. This resulted in an abrupt game crash. I eventually realized the error resulted from me violating the undocumented naming conventions for ba2 files.

Solution:
  1. File -> Create Archive
  2. for each filename, you must follow this convention (including spaces): {modname} - {type}.ba2
Example expected naming convention for main archive. Note mod filename is "walkers-farharbor.esp"

Error 4: Property ZombieListOfLists on script ZombieWalkersFH_QuestScript attached to ZombieWalkersFH_Quest (0800D291) cannot be bound because <nullptr form> (08016D3B) is not the right type

This error occurred after I fixed Error 3 above. I'm a Java programmer professionally and like others in my field, NullPointerExceptions sometimes haunt me. Now I guess they officially haunt me in Fallout too.

The ZombieListOfLists property above was setup to point to a FormList in my base Zombie Walkers mod. You can see the id value (08016D3B) is present but it isn't happy because apparently the game knows the file is not provided directly by my Far Harbor plugin.

Solutions?: It was at this point that I realized I am probably doing this wrong. After some reading, it seems there are a couple options:

0 comments: