I'm wondering if this is doable. Since when you equip a ship with a weapon in the ship's XML you are able to specify the location where the weapon originates, I'm wondering if it might be possible to create virtual weapons for all of the ship's device slots, assign locations to those weapons, and then remove those weapons when the ship is created? That would theoretically allow you to create a position on the ship for each of the ship's device slots.
I just don't know if there's any functions called when the new ship is created. I'm also not sure how to remove the weapons, but that's a minor detail.
Also, where can I find a list of all the functions associated with each object? I'm not talking about things that you can do TO the object, I'm talking about things that are called FROM the object, such as <Invoke>.