The real issue is that you can't have it both ways.
Either you must create the ships and query the ACTUAL items installed (especially ships with device tables) or George might add some data fields to typGetDataField for a very rare case.
What about creating the ship and objSuspend it. Once created you can remove all the devices and install some basic stuff or leave it empty. Then, in your DS, add the option to move your current equipment over when purchased (if switching) or install equipment from your cargo hold?
sdw195 wrote:The issue is that when creating the ship, the OnCreate event can do all kinds of things, like spawn other ships. What I would like is some way to prevent this from happening.
Couldn't you move the scripts that spawn ships into a new event and have them trigger after a short delay with some added logic?
I'm thinking the OnCreate runs a timed event (45 ticks should be fine) and if the ship is not the playership, spawn the extra ships, otherwise do nothing.
This way you can sysCreate the ship and suspend it immediately (halting the delayed event). you can query the items, modify equipment etc, If the player switches to that ship, it will be objResumed at which point the event will fire, find it is the playership and NOT spawn ships.
Just a though