See thread here: http://forums.kronosaur.com/viewtopic.php?f=5&t=8080

This may be exclusive to behavior types.

george moromisato 11 Apr 2017:

I reproduced the problem in Reign in Hell according to your instructions, and it turned out to be a bug in my change ships code. When changing ships, the engine is supposed to change ownership of wingmen automatically (by changing escort orders), but this was broken and never worked.

I've fixed this in 1.8 Alpha 1. I tested this with Reign in Hell and it worked fine. Thank you!

I also found a few minor issues in Reign in Hell code, which do not cause problems but which you might still want to fix:

  • I thought at first that the error about "shpOrder requires target" was related, but it turned out to be a separate (harmless) issue. When the player ship is destroyed (at the end of the game) we set gPlayerShip to Nil. But the <OnUpdate> code in Behavior.xml still call ~~(shpOrder ... gPlayerShip) without checking for Nil. That's the source of the error (but at that point, its moot, since the game is over).
  • However, the fact that <OnUpdate> is constantly calling (shpOrder ...) is probably a bug. The test (geq (sysFindObject ...)) is probably not what you intend. (sysFindObject ...) does not return a distance; you'll need to call (objGetDistance ...) at some point. And of course you need an actual distance to check against.
  • Another subtlety is that (shpOrder ...) does not replace an order, it instead adds an order to the stack. The new order won't get executed until the previous orders are done. If you want to immediately replace an order you should call (shpCancelOrders ...) first.

p.s.: I didn't play too much, but the intro of Reign in Hell already sounds awesome. I'm pretty excited to play it!

xephyr 11 Apr 2017:

Thanks for fixing this + checking out my code. I should be on track for release soon, now.

I cut down the code in the behavior type a bit for the debug build specifically for testing this bug, but I didn't realize how messy that ended up. That probably wasn't helpful for testing (oops). But constantly calling shporder in <OnUpdate> was unintentional - thanks for catching that!