Like with most systems that already exist on the vault and what not I tend to take the "do it myself to learn" and "reinvent the wheel" approach. So for persistent storage I've taken the approach:
~A shared chest/object (set to plot) between players with scripts in the OnOpened, OnClosed and OnClicked events.
~when chest is opened it retrieves or creates(first time used) a campaign storage creature(skin item removed) that will spawn in an inaccessible area. All items from storage creature are copied to chest and destroyed on creature.
~when chest is closed it copies all items from chest to creature and destroys all items in the chest. Re-stores the campaign creature storage object and destroys the currently spawned one.
~when chest is clicked on it checks to see if it is open (in use) if so ClearAllActions and inform player that it is in use so they can't use the chest (Beamdog fixed the issue of placeables sometimes staying open).
~The item limit in the chest should never be a problem because you are only copying back and forth what the chest can hold.
So far in testing everything seems to work as intended. In one test I placed an item in the chest but intentionally shut down the NWN.exe while the chest was still open which did result in the loss of said item. I figured that would be the result.
One thing I have not been able to test yet: When a player is using the chest and crashes or logs out does the chest stay open? Does Beamdog's fix for open chests address this? Will it close and still fire it's closing script?
Anyway the reason for this topic was to get informed by the community members who have already worked with and ironed out bugs with persistent storage. To bring up any specific things that need to be addressed. Problems with duping, containers, stacks, etc and how to specifically address these. Things that I've not thought of or addressed in my approach.
Any advice would be much appreciated.