Release v1.0.4

This release fixes lots of very important bugs and adds some enhancements to Mission Control. One very important late addition to the patch is that the ally lance Follow AI has been fixed. If you've previously disabled them or not used them because how useless they were - it's time to try them again!

Please take the time to read through the changelog as there's some very good fixes in this patch! Enjoy!

For upgrade instructions, see below the changelog.

Tracked by Milestone - v1.0.4

Minor Features

  • Additional Lances: AL lances are now taken into account before the contract autocompletes.
    • If you want to exclude a contract from this behaviour you can specify it in the settings.json under ExcludeFromAutocomplete
  • Bigger Drops: Support for maxNumberOfPlayerUnits higher than 4 added
    • Allow Bigger Drops to restrict a contract to, for example, 5 or 6 units


  • Dynamic Withdraw: Reduced the maximum distance the extraction zone can appear from the player lance from ~17 hexes (400 meters) to 12 hexes (288 meters).
  • Blackout: Decreased event phase 2 turret event trigger wait from 3 rounds to 2 rounds
  • Blackout: Story Map 7 - Changed event phase 1 ambush camera position from medium to high to better see the droppods arrive
  • Blackout: Changed the trigger condition for event phase 1 from the whole lance to requiring only 2 lance members
  • Blackout: Changed contract balance
  • Assassinate: Assassination target's extraction zone will now always spawn at least 20 hexes (480 meters) away from the target's spawn position

Bug Fixes

  • AI: Follow AI - Fixed broken pathfinding to player
    • No more useless allies! Woooo!
  • Contracts: Fixed a broken vanilla contract generation method causing infinite contract screen loads
  • Contracts: Fixed a broken vanilla contract generation method causing custom contract type contract spam
  • Loading: Fixed MDD SQL error caused by encounter loading which resulted in a frequent black screen on load to main menu for players on HDD drives instead of SSDs.
  • Blackout: Blackout specific ally lance dialogue didn't play
  • Blackout: Fixed issue where contracts wouldn't end correctly if the player destroyed the ambush lance before the friendly turrets activated
  • Blackout: Fixed event phase 2 invading lance not having a random spawn rule set up correctly
  • Blackout: Story Map 7 - Fixed orientation of event phase 1 invading lance
  • Blackout: Story Map 7 - Fixed orientation of event phase 2 ambush lance
  • Additional Lances: Contracts will now not autocomplete when AL lances are still active (except for those specified in the config.
    • By default DefendBase and FireMission
  • Additional Lances: Finally fixed comma based locales causing the AL reward to be 100 times expected amount
  • Logs: RecomputePathing exceptions will no longer appear after a contract has loaded
  • Solo / Duo Duel: Various spelling mistakes and dialogue tweaks (thanks @CargoVroom)

Custom Contract Type Builder

  • New Result: TriggerResultAtRandom allows you to specify multiple children results and one will be selected at random when this TriggerResultAtRandom result is triggered
  • New Result: IgnoreChunks allows you to specify multiple chunk guids. When this result is triggered it will iterate over all chunks specified and set the Chunk to Completed and any objectives as Ignored

Upgrade Instructions

  • If you're using MC without a modpack and none of your own changes, just delete the MC folder and move the new one into your mods folder
  • If you're using MC as part of a modpack, let the modpack authors update MC for you (using the below guide)
  • If you're using MC without a modpack but you've made some of your own changes to the configs, or you're a modpack author:
    • Copy into your Mods/MissionControl folder
      • MissionControl.dll
      • mod.json
      • contractTypeBuilds/Blackout folder
      • dialogue folder
      • overrides/contracts/blackout folder
      • overrides/contracts/soloduel/SoloDuel/SoloDuel_AllEyesOn.json
      • overrides/contracts/soloduel/SoloDuel/SoloDuel_ChallengeAccepted.json
      • overrides/contracts/soloduel/SoloDuel/SoloDuel_CorneredRevenge.json

Replace the settings.json section IsPrimaryObjectiveIn

"IsPrimaryObjectiveIn": ["SimpleBattle", "CaptureBase"],

Add to the settings.json section AdditionalLances

"ExcludeFromAutocomplete": ["DefendBase", "FireMission"],

Modify the settings.json value for MaxDistanceForZone

"MaxDistanceForZone": 288,

Add to the settings.json section FollowPlayer under AI

"TimeToWaitForPathfinding": 60,
"TicksToWaitForPathfinding": 20