We have an equippable item that has an OnEquipScript that creates a NEW item and also equips that (boots that create a mount and equips it on the character) . When the boots create-and-equip the brand new mount, the LAYER_MOUNT is now occupied for that character. Then, further down in the pcequip datafile, the old mount that the character had equipped during the world-save (serial 0x6adccefb) tries to get equipped [made some modifications to POL to find this issue]:
Item 0x6adccefb is supposed to be equipped on Character 0x22ed, but is not 'equippable' on that character.
Reason: !chr->equippable(item)
Current mount layer: serial 0x6adcd043
I'm so cool, I put it in the character's backpack!
The current, newly-created mount layer (serial 0x6adcd043) is the new item created with CreateItemX(). Now, pcequip.txt is loaded before other item-containing datafiles (items, storage, etc). The new serial created by the CreateItemX() function already exists in storage.txt, so when storage is loaded:
Then, the server exits. Thoughts? I'm guessing it's just not a good idea to create-and-equip items from an equipscript?data/storage.txt:Duplicate item read from datafiles (Serial=0x6adcd043)
Edit: Using mount.saveonexit = 0 will fix the first issue of trying to equip the old and new mounts