Release v1.5.2

This very minor release just fixes some position issues in Blackout maps.

For detailed documentation, visit the Mission Control Website.

NOTE: This release is only to officially release out the two hotfix files that were in the MC discord for over half a year. If you already have those there is no need for you to download this release.

🐛 Bug Fixes

🆙 Upgrade Instructions

This update is just a mod.json and two contractTypeBuild files 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
      • mod.json
  • Copy and overwrite:
    • contractTypeBuilds/Blackout/story2_badlandsparched.jsonc
    • contractTypeBuilds/Blackout/story7_lowlandsspring.jsonc

NOTE: There was no dll rebuild for this release so the version on that still says v1.5.1. This is not an issue.

ConverseTek Release v1.4.0

Hey guys!

Today I’ve released v1.4 of ConverseTek.

For those of you who don’t know what ConverseTek is, it’s the tool I developed for creating and editing BT dropship conversations (1-on-1s with the crew and conference room) and released in Summer 2018.

You can grab the new release from the Github ConverseTek v1.4 Release.

As part of this update I rewrote / ported the project to Typescript and updated a lot of the badly outdated dependencies. In the process I’ve improved lots of areas of code since I was forced to touch almost every single file. This makes the project easier to work with so it makes it easier to improve.

Before I get onto the new features and improvements I need to mention the elephant in the room / the outstanding big issue and how it’s now been fixed.

Corrupted Conversations / Bad Data (The Ugly Big Elephant)

Ever since CT was created it had a risk of corrupting a conversation file - sometimes in obvious ways and other times in very subtle ways. Any modder who has used it would probably scream in rage any time they realised this happened (and it was particularly sneaky as it would always look fine in CT - just break in BattleTech itself). This bug was due to an original assumption I made when I originally developed the tool and one I only realised was wrong when I was stopping development on the tool. Fast forward to a year and a half after the last release and this issue is now fixed in v1.4 (it should have been fixed years ago but that's life). An important note to modders who might still have corrupted conversation files from previous CT usage - v1.4 can fix those for you if you open it up and re-save them.

It also fixes all other issues around bad conversation data, for example, old text showing up in copied / moved nodes even after the copied text was changed in CT.

With that said, onto the nice new features.

Quicklinks / Favourites

The user experience of opening up your workspace folder that contained conversations was horrible. It started you off in your root drive view and didn’t help you save time to navigate back to your conversations. If the user’s conversations were deep in a drive then that meant a lot of clicking. Really annoying stuff.

Now you have some typical quick links that you’d expect (Desktop, My Documents, My Computer, Favourites). You can also right-click any directory and favourite it. This adds a blue favourite icon to the directory navigator that you can click to go straight to.

ConverseTek-Improved-Navigation

Dialogue Tree Zoom

Large conversations means a ton of prompt nodes (blue) and response nodes (yellow). When it gets so large, like in vanilla conversations, it gets incredibly difficult to figure out where all the conversation nodes are that you’re trying to look at.

You now can use CTRL + mouse wheel to zoom in and out to give yourself a better feel for the conversation (or it can help people who need the text a bit bigger to read).

ConverseTek-Zoom

Node Details Drag Expand

Actions and Conditions are vital to making good conversations, yet, the viewing area for those is too small compared to the data-dense functionality often needing to be displayed.

You can now drag and expand the node details area to give yourself a lot more space for actions / conditions / node details and writing dialogue. This often will give users the ability to view all (or most) of the actions and conditions on a node (or reduce the scrolling to a minimum).

ConverseTek-Drag-Expand

Delete Conversation

You can now delete conversations from within CT. Pretty simple but useful.

ConverseTek-Delete-Conversation

Re-enabled Dragging Response Nodes to Other Nodes

In earlier releases of CT you were able to drag and drop response (yellow) nodes from their parent prompt (blue) node to anywhere else in the conversation. Due to the realisation this caused some nasty bugs the feature was limited to allowing only dragging/reordering within the same prompt node.

Since all the conversation corruption bugs are fixed I re-enabled this feature - so you can now move response nodes to other prompt nodes.

Other fixes and changes

There are a good few other fixes and changes but I’ll leave this post here. If you’re interested in the full changelog check out the ConverseTek github release page and the github milestone for v1.4

In Closing

Tools for the community often go overlooked but are critical for the health of mods and modpacks. This update took me a month of my free time (developing on it almost every single day when I had spare time during that month) so I honestly hope you enjoy and appreciate the new improvements. Don’t be quiet and please let me know what you think. It was a good update to work on.

Thanks guys.

Release v1.5.1

This release fixes a single bug mentioned below that caused an infinite spinner when returning from a contract that didn't have MC running on it.

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

🐛 Bug Fixes

🆙 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

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)

Release v1.4.2

This release fixes a bug in Extended Lances and one in Additional Lances.

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

🐛 Bug Fixes

🆙 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

Release v1.4.1

This release fixes some bugs related to the newly upgraded Extended Lances.

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

🐛 Bug Fixes

🆙 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

Release v1.4.0

This release introduces Extended Lances version 2, a major upgrade to Extended Lances, and some minor bugfixes.

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

❗ Extended Lances v2 Upgrade ❗

As many of the features and fixes are related to EL - I'm drawing attention to it here. Some of the below fixes and improvements for EL v2 are covered below in the main changelog too.

  • Extended Lances v2 Upgrade
    • Extended Lances has been given a major upgrade. There were some fundamental issues and limitations with EL that preventing some modders achieving the results they wanted. Now EL should have fewer bugs and more flexibility.
    • Backwards compatible
    • Extensively tested

🚀 Features

  • Extended Lances: Support all other Teams
    • EL now supports TargetAlly, EmployerAlly, HostileToAll, NeutralToAll
    • This feature is on by default so modpacks might want to consider game balance
    • Support can be individually turned off in the settings.json in the EL section
    • Can be individually overridden with per-contract overrides
  • Extended Lances: Provide a way to force EL to allow specific LanceOverride set ups
    • A new settings.json property called ForceLanceOverrideSizeWithTag which controls this behaviour
    • When a LanceOverride (lance in the contract json) has this tag in its lanceTagSet/tagSetSourceFile then it will force EL to spawn this exact defined lance
    • lanceTagSet/tagSetSourceFile is not used in BattleTech so it's been adopted for this feature
  • Extended Lances: Provide a way to force EL to allow specific LanceDef set ups
    • A new settings.json property called ForceLanceDefSizeWithTag which controls this behaviour
    • When a LanceDef has this tag in its LanceTags/tagSetSourceFile then it will force EL to spawn this exact defined lance
    • LanceTags/tagSetSourceFile is not used in BattleTech so it's been adopted for this feature
  • Extended Lances: AutofillType setting
    • When EL autofills lances it has to decide how to handle units that are defined as empty (mechDef_None, vehicleDef_None)
    • A new settings.json property called AutofillType which controls this behaviour and it has two settings:
      • RespectEmpty is the legacy and still the default behaviour. When a LanceOverride or LanceDef has empty units defined (e.g. mechDef_None, vehicleDef_None) then it will respect those and not autofill them.
      • FillEmptyis a new autofill behaviour. When a LanceOverride or LanceDef has empty units defined (e.g. mechDef_None, vehicleDef_None) then it will autofill and replace them so units will spawn in those slots.
  • Extended Lances: AutofillStartingFromContractDifficulty setting
    • A new settings.json property under ExtendedLances called AutofillStartingFromContractDifficulty
    • To aid in a fairer early game, you can now control when Extended Lances autofills units in lances that are below the faction's EL LanceSize by setting a contract difficulty (real difficulty - not UI/visible difficulty) to start autofilling from
    • This does not affect LanceDefs that fill up to the faction's LanceSize themselves (e.g. modpack Clan LanceDefs up to 5 or 6 etc)
    • For those who don't want this feature - set it to 1
  • Extended Lances: AutofillUnitCopyType setting
    • At times EL needs to copy units to create a varied and interesting lance when autofilling it up to the Faction Size (or any overridden size). In this case EL tries to copy a 'Tagged' lance so to use this tagged UnitSpawnPointOverride and leverage the tags to provide variation. If there are no 'Tagged' lances available to copy it will use the defined behaviour in AutofillUnitCopyType in the settings.json.
    • A new settings.json property called AutofillUnitCopyType which controls this behaviour and it has two settings:
      • FirstInLance - The legacy behaviour. It would pick the first unit (index 0) and copy it (giving it new identify/clearing custom names etc)
      • RandomInLance - The new behaviour and is now the default behaviour. It picks a random unit from the Lance to copy (giving it new identify/clearing custom names etc)

⚡Improvements

🐛 Bug Fixes

📝 Documentation / Website

  • Added ModTek v2 information in the setup page
  • Added per-contract override page
  • Added settings.json override with settings.modpack.json and settings.user.json in the settings page
  • Added SwapPlacement type EncounterStructure subtype node information in the contract builder API nodes area
  • Added CombatState type DisablePilotDeath subtype node information in the contract builder API nodes area
  • Updated Extended Lances information for version 2
  • Removed HBS mod loader information

🆙 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
      • config/Contracts/My_Contract_ID_Example.json
      • config/Contracts/My_FP_Contract_ID_Example.json

Add the following to your settings.json:

Under ExtendedLances add:

"EnableForTargetAlly": true,
"EnableForEmployerAlly": true,
"EnableForHostileToAll": true,
"EnableForNeutralToAll": true,
"AutofillType": "RespectEmpty",
"AutofillUnitCopyType": "RandomInLance",
"AutofillStartingFromContractDifficulty": 3,
"ForceLanceOverrideSizeWithTag": "mc_force_extended_lance",
"ForceLanceDefSizeWithTag": "mc_force_extended_lance",

and update to have mc_no_extended_lance:

"SkipWhenExcludeTagsContain": ["mc_no_extended_lance", "no_extended_lance"],

Under ExtendedBoundaries/Overrides add:

{
"ContractTypeName": "AmbushConvoy",
"IncreaseBoundarySizeByPercentage": 0.2
}

Release v1.3.2

This release fixes a major bug relating to v1.3.1 breaking the MC pathfinder system.

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

Major Bug Fixes

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

Release v1.3.1

This release focuses on compatibility enhancements and some minor bug fixes.

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

Bug Fixes

Improvements

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
      • overrides/contracts/duoduel/DuoDuel_FestiveCouple.json

Release v1.3.0

This release fixes various bugs and adds various enhancements.

The full release diff can be seen here

Bug Fixes

Improvements

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
      • config/Contracts/My_FP_Contract_ID_Example.json
      • contractTypeBuilds/Blackout/common.jsonc
      • contractTypeBuilds/Blackout/mountainhold_lunar.jsonc
      • contractTypeBuilds/DuoDuel/common.jsonc
      • contractTypeBuilds/SoloDuel/common.jsonc
      • overrides/contracts/duoduel/DuoDuel_FestiveCouple.json
      • overrides/contracts/duoduel/DuoDuel_YearlyTussle.json
      • Edit settings.json (and/or your settings.user.json / settings.modpack.json overrides) with the following:

Add the following under the AdditionalLances/DropWeightInfluence block

"EnemySpawnInfluenceMax": 0.9,
"AllySpawnInfluenceMax": 0.9,

Specific for RT modpack

Since you had an early release with the Drop Weight Influence maximum - no need to change your custom config for that feature.