Release v1.5.0

This release introduces a lot of new features and fixes some important bugs. It adds a lot more content for the existing custom contract types, adds a dialogue system that works with the combat dialogue for much more control and allows player pilots to talk in contracts. One of the main reasons for this release is to prepare the contract type build formats for the upcoming Mission Control Designer.

All website documentation has been updated to reflect all the new additions and changes so check there for specifics.

The full release diff can be at the v1.5.0 pull request.

โ— Custom Contract Build Format Upgrade

As the Mission Control Designer is in a functional state I've been testing the Designer saving out the existing custom contract types (Duels & Blackout). For various reasons related to the Designer the existing custom contract type build files (files that are located under MissionControl/contractTypeBuilds) require an upgrade.

The upgrade is critical and must be done. - See the below Upgrade instructions on the process

๐Ÿš€ Features

โšก Improvements

  • Custom Contract Types: Build File Format Updated
    • The custom contract type build file format is updated as built by the Designer
  • Solo & Duo Duel: OpFor Moves To Engage Before Contact
    • Previously, the OpFor duelists would sit at their spawn point until contact was made, then they would move to engage the player
    • This led to a boring situation where the player would just jump the enemy
    • Now the OpFor moves to engage the player similar to how the player would move at the start of the contract
  • Extended Boundaries - Support use of only MapId
    • Previously, you could provide only ContractTypeName or provide ContractTypeName and MapId but you couldn't only provide MapId
    • You can now provide only MapId if required
  • Blackout: Fixed bad turret placement in Phase2 base in Story7 map
    • Often the turrets would destroy the buildings they were meant to protect
  • Additional Lances: Follow AI is restricted to Additional Lance lances
    • Previously, the FollowAI would be injected into the Core behaviour tree and Follow orders would be sent to all lance units that had the Employer tag
    • This correctly didn't affect things like Escort units or Defend Base engineers as they didn't use the Core AI behaviour tree
    • Now, the AI Follow order is sent to any lance units that have both Employer and AdditionalLance tags - so only the AL lances
    • This change purely keeps Mission Control's Follow AI influence to where it's required
  • Data Cleanup: Added new method for cleaning up data from Mission Control
    • This new method is now default
    • The old method can be turned on instead if there are some unforseen compatibility issues with other mods in the community
    • In settings.json, there is a new setting under Misc/ContractOverrideDataCleanupMethod
      • RestoreFromCopy is the default and the new cleaning method. It takes copies of LanceOverrides and ObjectiveOverrides and restores them after combat
      • ScrubData is the old method. It scans through the contract override and removes anything MC added.
  • Contract Type Builder - Added DurationType property to OccupyRegion Objective

๐Ÿ”ง Changes

  • Contract Type Builder - Refactored SetStateResult result to SetStatusResult
  • Contract Type Builder - Refactored SetStateAtRandomResult result to SetStatusAtRandomResult

๐Ÿ› Bug Fixes

๐Ÿ“ Documentation / Website

  • Added a Dialogue System feature page
  • Added a Metrics feature page
  • Updated Per-Contract Overrides feature section with new Additional Lances settings
  • Added ContractOverrideDataCleanupMethod to the Settings feature page
  • Added Additional Lance API section to the Additional Lances feature page
  • Added information on MapId only overrides for the Extended Boundaries feature page
  • Fixed incorrect information in SetTeamByLanceSpawnerResult and SetTeamByLanceSpawnerGuidResult result pages
  • Refactored SetStateResult result to SetStatusResult
  • Refactored SetStateAtRandomResult result to SetStatusAtRandomResult
  • Fixed incorrect information in CompleteObjectiveResult result page
  • Fixed incorrect information in EncounterObjectiveMatchesState conditional page
  • Fixed incorrect information in ObjectiveStatuses conditional page
  • Fixed issue with latest LastPass Chrome plugin with the website causing empty space to appear near the top of the page
  • Added DurationType to OccupyRegion objective page

๐Ÿ†™ Upgrade Instructions

This update is just a dll and mod.json update.

  • 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

Copy and Overwrite Example Per-Contract Override Files

  • Copy and overwrite config/Contracts to config/Contracts folder

Copy new CastDefs

  • Copy and overwrite overrides/cast folder to overrides/cast folder

Copy new Blackout contracts

  • Copy overrides/contracts/blackout/Blackout_AMinorRoyalPain.json to overrides/contracts/blackout
  • Copy overrides/contracts/blackout/Blackout_AbsentWitness.json to overrides/contracts/blackout
  • Copy overrides/contracts/blackout/Blackout_PreparedGrounds.json to overrides/contracts/blackout

Add ContractOverrideDataCleanupMethod setting to the settings.json

  • Edit the Misc section and add to the bottom of that section:
"ContractOverrideDataCleanupMethod": "RestoreFromCopy"

Copy new portraits

  • Copy and overwrite spirtes/Portraits folder to spirtes/Portraits

โ— Update Custom Contract Type Build Files

There are many changes within the custom contract type build files and the EncounterLayer files that need to be addressed in this update. I'll explain the easiest method that I recommend.

Easiest (RECOMMENDED) Method

Everyone should use this approach to upgrade the contract type and encounter layer files.

  • Delete your contractTypeBuilds folder and copy in the new v1.5 release contractTypeBuilds folder
  • Delete your overrides/encounterLayers folder and copy in the new v1.5 release overrides/encounterLayers folder
  • (BTA modpack, and any modpack with their own custom contract types) Recreate your Hero Duels (or other custom contract types you've made)
  • (Any modpacks that edited the old contract type build files) Remake the old changes to the new contract type build files

Harder (NOT SUPPORTED) Method

If you decide to take this approach it is NOT SUPPORTED by Mission Control (and CWolf). The only reason you'd take this approach is if you made extensive changes to the previous custom contract types and you didn't want to lose these changes. NOT RECOMMENDED.

  • Rename all contractTypeBuilds in your modpack to be the same as the new contractTypeBuilds
  • Copy over new contractTypeBuilds files for SoloDuel, DuoDuel, Blackout into their respective sub-folders
  • Rename all overrides/encounterLayers files to be the same as the new contractTypeBuilds

NOTE: For any non-MC custom contract types the names of the your own custom encounterLayers must take the same format and link to the contract type build files. The reason for this is for Designer compatibility. The format is:

  • build file: [mapname]_[biome].jsonc, for example centralmountain_desertparched.jsonc and mountainhold_lunarvacuum.jsonc

  • encounterLayer file: encounterLayer_[contracttype].[mapname]_[biome].json, for example encounterLayer_blackout.centralmountain_desertparched.json and encounterLayer_blackout.mountainhold_lunarvacuum.json

  • Compare each and every contract type build file and apply the diff changes manually (allows you to keep your custom)