Sure...
In MasterHeartbeatEvent the check for oFamiliar being valid needs to be (GetIsObjectValid(oFamiliar)), not (oFamiliar == OBJECT_INVALID) since this is the code which will delete the stored object variable. It will come back with an object reference that is invalid but is not equal to OBJECT_INVALID. Otherwise the despawn handler does not fire.
In the despawn event handler DoFamiliarDespawnEvent I think the call to DismountFamiliarVFX(OBJECT_SELF, TRUE); needs to be before the stored familiar variable is cleared. I have not tested that this fixes the problem yet. But I'm assuming that the stored object reference, even though now an invalid object, will match the effect creator still. As is the VFX does not get removed when the familiar is unsummoned. I'll test it this way later to see. Otherwise I'll just add an effect generator object to the DM area and use that.
Needed, but pretty minor to fix both of these.
But I'm liking it a lot. Aside from the above hooking in the vfx scripts was trivial '>
Anyone know of a side pouch VFX? A shoulder bag sort of thing?
I'm going to extend the mounted familiars to handle the small things (rodents and frog etc) this way. I can do it without a VFX, but would like something on the PC to indicate the familiar is present.