Searching for unavailable missions with msnFind does not work correctly. It is not possible to find non-player failed missions (statusFailure) - even the * criteria will not return them. Also the u criteria returns successful player missions in addition to unavailable and successful non-player missions. The problem appears to be:
https://github.com/kronosaur/Mammoth/blob/master/Include/TSEMissions.h#L63
where the last check should be for statusFailure rather than statusPlayerSuccess

msnFind does not provide a way to distinguish active and completed unavailable missions. Suggest changing the msnFind criteria:
u Include unavailable, but not completed missions (m_iStatus == statusClosed)
c Include non-player completed missions (m_iStatus == statusSuccess || m_iStatus == statusFailure)

Also, the maxAppearing attribute does not count non-player missions. Actually looking at TSEDesign.h it only counts accepted missions, so the player could (in a somewhat contrived case) exceed the limit by declining missions until the same mission was open at several different stations. I would expect the maxAppearing attribute to count all mission states (open, accepted, unavailable etc)

Finally, changing system appears to delete any completed non-player missions.

giantcabbage 1 Sep 2017:

Note (1) was resolved in 1.7 beta 6

Adding an attribute so completed non-player missions are preserved is easy (see old nonplayer-mission branch). Alternatively we could simply keep all completed non-player missions - you can always call msnDestroy on any mission which needs to be removed.

The Antarctica mission is a case where I'm using a non-player mission:

  • If player agrees to help Helios the mission accepts and Cruisers attack
  • If player declines, then mission becomes unavailable and Antarctica leaves. The non-player mission has to track the escape/destruction of Antarctica as the player may not have the mission from Decker.
giantcabbage 13 May 2018:
george moromisato 31 May 2018:

In 1.8 Beta 2 I made the maxApppearing code count missions that the player declined. It will also count non-player missions as long as recordNonPlayer="true" for the mission type.

See also: https://ministry.kronosaur.com/record.hexm?id=77370