Release v1.0.0

This release adds a new custom contract type, 9 new contracts, expands duel contract type biome support and lots of quality of life features and bug fixes.

1.0.0 has been a big release for me. I feel with the maturity of Mission Control it warrants the 1.0.0 versioning. This release contained over 24% of the commits in the entire mod and you'll see why below in the changelog. A huge amount of effort has been put into opening up the contract type system to allow other modders to create new and interesting contract types for the whole community to enjoy. Hopefully people will take advantage of this.

Thanks for staying with me on this journey over the years (first release was on the 18th November 2018 with the first code saved on the 11th September 2018). I know there's still issues with the spawner but I feel, as whole, Mission Control has greatly improved the BattleTech experience. I hope you all feel the same way.

Enjoy and please let me know what you think of Blackout, the new contract type.

For upgrade instructions, see below the changelog.

Major Features

  • Heavily expanded the custom contract type builder (check API docs on MC's website)
  • Contract Types: Added new custom contract type
    • Blackout - A point of interest of your employer has gone dark and they're sending you in to investigate. A low intel situation with different situations each time you play.
      • Contains new non-vanilla map logic.
      • Includes new ally chatter specific to Blackout
  • Contracts: Added 3 contracts for Blackout
    • Dug in Deep
    • Heavy Static
    • Unknown Cause
  • Contracts: Added 3 contracts for Solo Duel
    • All Eyes On
    • Challenge Accepted
    • Cornered Revenge
  • Contracts: Added 3 contracts for Duo Duel
    • At High Noon
    • Last Minute Replacements
    • Yearly Tussle
  • Maps: Added 4 maps/biomes to Blackout
    • frostyslopes map on tundra biome
    • mountainhold map on lunar biome
    • story2 map on badlands biome
    • story7 map on lowlands biome
  • Maps: Added 3 more maps/biomes to Solo Duel and Duo Duel
    • deathvalley map on desert biome
    • story3 map on lunar craters biome
    • story6 map on frozen poles biome
  • AI: Follow AI - Added alternative pathfinding for 'Follow Player' AI
    • Configurable in settings.json with the new Alternative being the new default with Original being the v0.4.6 version
  • Additional Lances: Alternative spawn calculation system
    • Off by default
    • Variable enemy/ally lance drops based on player drop skulls/difficulty level
    • settings.json under DropWeightInfluence

Minor Features

  • Additional Lances: Option to indepedently disable allies and/or enemy lances
    • settings.json as DisableAllies and DisableEnemies
  • Additional Lances: Option to disabe/enable objective markers under certain conditions.
    • This allows the AL objective to be hidden to make the contract more unpredicable.
    • settings.json as HideObjective and ForceDisplayOfHiddenObjectiveIfPrimary
  • Additional Lances: Added a MRB influence for lance selection
    • For example, MRB_Level:4 to spawn specific lances for MRB level 4
    • Or, MRB_Rating:200:300, to spawn when MRB rating is between 200 and 300
  • AI: Follow AI - Fixed broken vanilla method call.
    • NeutralToAll units (and maybe others) were being identified as enemies for 'Follow AI' pathfinding. This might have caused some situations where the allies stopped following the player.
  • Random Spawns: Exposed the boundary 'buffer' zone
    • This is where a lance is allowed to spawn (beyond X and within Y distance) when using the SpawnLanceAtEdgeBounadry spawner profile.
    • settings.json under the SpawnLanceAtEdgeBoundary section
  • Extended Lances: Added a system to skip extending a lance by exclude tags
    • Skip if they have a set tag under their lance lanceExcludedTagSet in the contract override JSON
    • settings.json as SkipWhenExcludeTagsContain
  • Extended Lances: Added a system to skip extending a lance by tags
    • Skip if they have a set tag under their lance lanceTagSet in the contract override JSON
    • settings.json as SkipWhenTaggedWithAny and SkipWhenTaggedWithAll
  • Extended Boundaries: Increased the boundary size for SimpleBattle and mapGeneral_desertDam_aDes map


  • Solo/Duo Duels: Enforced weight limits on all contracts lower than difficulty 8
  • Solo/Duo Duels: Prevented vehicles from spawning

Bug Fixes

  • Additional Lances: ExcludeContractTypes didn't work correctly and was using the wrong setting. It was picking up the ExtendedLances one instead.
  • Additional Lances: Comma based decimal locales caused rewards to be much higher than intended
  • Random Spawns: Fixed one cause of Defend Base and Destroy Base sometimes spawning you in the wrong location, or in the enemy base
  • Random Spawns: Added a set distance the player must spawn beyond on Destroy Base (roughly 16 hexes away)
  • Contract Types: Custom contract types weren't being picked up for ExcludeContractTypes or IncludeContractTypes settings
  • Droppods: Fixed a vanilla bug where droppod animations and effects sometimes weren't synced up in position to the actual drop pod and landing mech/vehicle

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:
    • Delete from your MissionControl folder
      • contractTypeBuilds folder
    • Copy into your Mods/MissionControl folder:
      • MissionControl.dll
      • mod.json
      • contractTypeBuilds folder
      • dialogue/AllyDrop.json
      • overrides/cast
      • overrides/contracts/blackout folder
      • overrides/contracts/soloduel folder
      • overrides/contracts/duoduel folder
      • overrides/enums folder
      • overrides/encounterLayers folder
    • Edit settings.json with the following:

Add to AdditionalLances section

"HideObjective": true,
"ShowObjectiveOnLanceDetected": true,
"AlwaysDisplayHiddenObjectiveIfPrimary": false,
"MatchAllyLanceCountToEnemy": false,
"DropWeightInfluence": {
"Enable": false,
"GlobalEnemyChanceToSpawn": 0.05,
"GlobalAllyChanceToSpawn": 0.8,
"EnemySpawnInfluencePerHalfSkull": 0.1,
"AllySpawnInfluencePerHalfSkull": -0.1
"DisableAllies": false,
"DisableEnemies": false

Add to ExtendedLances section

"SkipWhenTaggedWithAny": ["lance_type_solo"],
"SkipWhenTaggedWithAll": [],
"SkipWhenExcludeTagsContain": ["no_extended_lance"],

Add to ExtendedBoundaries/Overrides section

"MapId": "mapGeneral_desertDam_aDes",
"ContractTypeName": "SimpleBattle",
"IncreaseBoundarySizeByPercentage": 0.55

Add to AI/FollowPlayer section

"Pathfinding": "Alternative",

Add to the top level

"Spawners": {
"SpawnLanceAtEdgeBoundary": {
"MinBuffer": 100,
"MaxBuffer": 200