Releases: CWolfs/MissionControl
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
- Blackout: Badlands Map - Phase 2 Event 2 invading lance units spawn on top of each other when Random Spawns is off
- Blackout: Badlands Map - Player spawns lance units spawn on top of each other with Random Spawns off
- Blackout: Lowlands Map - Phase 2 Event 2 invading lance units spawn on top of each other when Random Spawns is off
🆙 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 into your Mods/MissionControl folder
- 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.
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.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.5.1 pull request.
🐛 Bug Fixes
- Data Cleanup: RestoreFromCopy cleanup approach caused infinite spinner when MC was not allowed to run
- When Mission Control wasn't running for a contract the data backup wasn't running. When the contract ended the data backup caused an infinite spinner because there was no data to restore and MC errored.
🆙 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 into your Mods/MissionControl folder
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.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.5.0 pull request.
GITHUB ISN'T DISPLAYING THE FULL CHANGELOG - UPGRADE INSTRUCTIONS ARE VISIBLE ON THE MISSION CONTROL WEBSITE
❗ 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
🚀 Features
- Blackout: Added 3 more contracts
- Absent Witness
- Prepared Grounds (written by Vantas Strider)
- A Minor Royal Pain
- Blackout: Added to 3 new maps
- Tyrlon (Highlands Fall biome)
- Central Mountain (Desert Parched biome)
- Lost World (Jungle Tropical biome)
- Solo Duel: Added to 5 new maps
- Big Loch (Highlands Spring biome)
- Red City (Martian Vacuum biome)
- Tide Bay (Jungle Tropical biome)
- City Centre (Urban HighTech biome)
- Taiga River (Trunda Frozen biome)
- Duo Duel: Added to 5 new maps
- Big Loch (Highlands Spring biome)
- Red City (Martian Vacuum biome)
- Tide Bay (Jungle Tropical biome)
- City Centre (Urban HighTech biome)
- Taiga River (Trunda Frozen biome)
- Dialogue: Added a dialogue system on top of the contract dialogue system for Combat
- Dialogue: Player Pilots Can Talk in Contracts
- Anyone interacting with contract dialogue CastDefs /
selectedCastDefId
can now select Player lance pilots to talk - Provided manual (
castDef_TeamPilot_1
), true random (castDef_TeamPilot_Random
) and bound random selection of Player lance pilots (castDef_TeamPilot_Random_1
orcastDef_TeamPilot_Random_BoredPilot
)
- Anyone interacting with contract dialogue CastDefs /
- Dialogue: Commander can be used as a CastDef regardless of if dropped in the Player lance
- Can be used if the Commander is on the dropship or in the Player lance
- Can be used with
castDef_Commander
- Dialogue: Dialogue can reference Commander, Speaker, Bound or Position Player Pilots
- Some pilots can be accessed in the dialogue, e.g. (
{MC.PlayerLance.TeamPilot_Random_2.UnitName}
,{MC.PlayerLance.Speaker.DisplayName}
,{MC.Commander.DisplayName}
)
- Some pilots can be accessed in the dialogue, e.g. (
- Dialogue: Conditional dialogue - the ability to show dialogue on certain conditions
- Supports checks against Employer or Target Faction Type
- Supports checks against Employer or Target Name and Short Name
- Supports tag checks against all tag scopes (
Pilot
,Commander
,Company
,System
) and a new customEncounter
tag scope that is fresh for every contract - Supports multi-conditional checks (
{{condition1} AND {condition2}}
,{{condition1} OR {condition2}}
) - Supports random percentage chance checks
- Dialogue: Modifications - the ability to modify the game
- Supports adding tags to all tag scopes
- Supports removing tags from all tag scopes
- Dialogue: Formatting - the ability to change text style
- Supports formatting text to different cases (
ToUpper
,ToLower
,ToUpperFirst
,ToAlternating
, e.g.[MC.Format.ToUpper.{TEAM_EMP.FactionDef.Name}]
) - Helps fix vanilla BT annoyance with Faction names starting lowercase so faction names can now be correctly used at the start of sentences.
- Supports formatting text to different cases (
- Per-Contract Override - Additional Lances - Support Enabling / Disabling UseDialogue
- Allows modders to remove the Ally mission start dialogue for AL lances at a contract level
- Per-Contract Override - Additional Lances - Support Custom Objective Names
- Allows modders to provide custom names for the Enemy AL lances
- Fewer objective names can be provided than AL lances and if the names aren't enough it fallsback to the default names
- Per-Contract Override - Additional Lances - Support CastDef
- Allows modders to provide a custom CastDef id and that Cast will speak the mission start dialogue for Ally AL lances
- CastDef id can be a Mission Control dynamic CastDef id as mentioned in the new
Dialogue
features
- Per-Contract Override - Additional Lances - Support Custom Dialogue
- Allows modders to provide custom dialogue for the Ally AL lance to speak at the mission start dialogue
- Additional Lances - Code API access
- Allows modders to link against Mission Control and access the Additional Lances feature functionality
- Modders can provide a lance count, list of
LanceOverride
s orMLanceOverride
s and optional objective name overrides - This will override every other AL lance approach
- Usable only for procedural contracts and not available for Flashpoints and Story contracts
- Accessed through
MissionControl.Instance.API
- Metrics
- Added a way for other mods to access some Mission Control data
- Accessed through
MissionControl.Instance.Metrics
- Currently supports Additional Lance counts per encounter/contract
⚡ Improvements
⚡ 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 provideContractTypeName
andMapId
but you couldn't only provideMapId
- You can now provide only
MapId
if required
- Previously, you could provide only
- 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 andFollow
orders would be sent to all lance units that had theEmployer
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 bothEmployer
andAdditionalLance
tags - so only the AL lances - This change purely keeps Mission Control's Follow AI influence to where it's required
- Previously, the FollowAI would be injected into the
- 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 underMisc/ContractOverrideDataCleanupMethod
RestoreFromCopy
is the default and the new cleaning method. It takes copies of LanceOverrides and ObjectiveOverrides and restores them after combatScrubData
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
🔧 Changes
- Contract Type Builder - Refactored
SetStateResult
result toSetStatusResult
- Contract Type Builder - Refactored
SetStateAtRandomResult
result toSetStatusAtRandomResult
🐛 Bug Fixes
🐛 Bug Fixes
- Additional Lances: Ally units Follow AI was breaking after initial contact with enemies
- If an initial encounter was made and at least one enemy unit was destroyed, then contact lost - then the ally AL Follow AI wasn't stripping out dead units for visible/detected enemy checks so the ally ...
v1.4.2
This release fixes a bug in Extended Lances and one in Additional Lances.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.4.2 pull request.
🐛 Bug Fixes
- Additional Lances: Elite lances always being used
- Extended Lances: Pilots from EL lances that are expanded are default pilots instead of LanceDef pilots if autofill is not allowed
- This issue would only happen if the EL lance wasn't in autofill mode
- For any additional units that get expanded from a LanceDef with a pilot would fallback to default
- Pilots filled from the UnitSpawnPointOverrides that existed in the contract lance units would fill correctly
🆙 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 into your Mods/MissionControl folder
v1.4.1
This release fixes some bugs related to the newly upgraded Extended Lances.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.4.1 pull request.
🐛 Bug Fixes
- Extended Lances: Lances with 0 unit spawn points broke map loading
- Extended Lances: A team's skipped lances could sometimes skip processing for all lances in that faction
🆙 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 into your Mods/MissionControl folder
v1.4.0
This release introduces Extended Lances version 2, a major upgrade to Extended Lances, and some minor bugfixes.
For detailed documentation, visit the Mission Control Website.
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 calledForceLanceOverrideSizeWithTag
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
- A new
- Extended Lances: Provide a way to force EL to allow specific LanceDef set ups
- A new
settings.json
property calledForceLanceDefSizeWithTag
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
- A new
- 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 calledAutofillType
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.FillEmpty
is 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 underExtendedLances
calledAutofillStartingFromContractDifficulty
- 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
- A new
- 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 calledAutofillUnitCopyType
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)
- 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
⚡Improvements
- Extended Boundaries: Ambush Convoy - Reduce increase from 30% to 20%
- Previously Ambush Convoy boundary increased by 30%. As players sometimes struggle to catch the convoy if the Random Spawn algorithm places them too far away the boundary increase is now reduced slightly to 20%
🐛 Bug Fixes
- Extended Lance: LanceOverrides with fewer units than a selected LanceDef didn't populate all LanceDef units
- Extended Lances: LanceDefId being direct reference only added one extra lance instead of EL number
- Random Spawns: Blackout - Opposing Force Orientation Was Wrong
- Additional Lances: Incorrectly handling lanceExcludedTagSet
- MC AL lances incorrectly added
lanceExcludedTagSet
to thelanceTagSet
. This would cause incorrect lance selection behaviour for MC AL lances with tags
- MC AL lances incorrectly added
- Vanilla: When BT copies LanceDefs it didn't maintain the LanceTags 'tagSetSourceFile' data
- When BT copies LanceDefs it would never maintain/preserve the
tagSetSourceFile
property. Since this property is never used in the game it isn't a problem, however, Since ELv2 uses it - it has been fixed
- When BT copies LanceDefs it would never maintain/preserve the
📝 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
typeEncounterStructure
subtype node information in the contract builder API nodes area - Added
CombatState
typeDisablePilotDeath
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
- Copy into your Mods/MissionControl folder
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 SkipWhenExcludeTagsContain
to have mc_no_extended_lance
:
"SkipWhenExcludeTagsContain": ["mc_no_extended_lance", "no_extended_lance"],
Under ExtendedBoundaries/Overrides
add:
{
"ContractTypeName": "AmbushConvoy",
"IncreaseBoundarySizeByPercentage": 0.2
}
v1.3.2
This release fixes a major bug relating to v1.3.1 breaking the MC pathfinder system.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.3.2 pull request.
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
folderMissionControl.dll
mod.json
- Copy into your
v1.3.1
This release focuses on compatibility enhancements and some minor bug fixes.
For detailed documentation, visit the Mission Control Website.
The full release diff can be at the v1.3.1 pull request.
Bug Fixes
- Duo Duel: Fixed broken player pilot death prevention system
- Fixed
FestiveCouple
's player pilot death prevention system again - This wasn't fully fixed in v1.3.0 for
FestiveCouple
- Fixed
- Additional Lances: Fixed Support Lance objective starting at '2' instead of '1'
Improvements
- ModTek v2 Support: Added support for ModTek v2
- Improved Deferred Loading of Assets
- Older system didn't care what else was loading. Now properly checks to fit itself in between other assets loading
- Improved CAC Compatibility
- Fixed a very rare situation where loading of assets by MC could deadlock loading careers or skirmish
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
folderMissionControl.dll
mod.json
overrides/contracts/duoduel/DuoDuel_FestiveCouple.json
- Copy into your
v1.3.0
This release fixes various bugs and adds various enhancements.
For detailed documentation, visit the Mission Control Website.
The full release diff can be seen here
Bug Fixes
- Story Support: Fixed Boundary Detection Issue
- Improved how the boundary game object is grabbed for boundary related processing
- Duo Duel: Fixed broken player pilot death prevention system
- Fixed
YearlyTussle
andFestiveCouple
's player pilot death prevention system
- Fixed
- Additional Lances: Fixed cases where direct LanceDef references failed
- Sometimes if a direct LanceDef was used and it was not already loaded in memory it would fail and not grab it from the file system
- Contract Types: Fixed various non-critical spelling mistakes in Blackout, Solo Duel and Duo Duel
Improvements
- Additional Lances: Added a per-contract override to manually specify the Additional Lance(s) dropping
- This acts as a middle ground between dynamic AL and custom contract types. You can use a per-contract override for your contract and manually specify the dropping ally and enemy Additional Lances
- Additional Lances: Support higher than difficulty 10 for config files
- MC used to only look for AL config
difficulty1.json
up todifficulty10.json
. Now it has unlimited search for difficulties.
- MC used to only look for AL config
- Additional Lances: Added Drop Weight Influence maximum influence caps
- Added an absolute max value for Drop Weight Influence Enemy and Ally settings that an influence value can go to.
- Contract Type Builder: Improved 'Mount On' positioning
- Contract Type Builder: Added custom MC trigger support for Dialogues
- Contract Types: Added optimisation for contract selection related to custom contract types
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
folderMissionControl.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 yoursettings.user.json
/settings.modpack.json
overrides) with the following:
- Copy into your
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.
v1.2.1
This is a minor bug fix release for some edge case bugs.
For detailed documentation, visit the Mission Control Website.
Bug Fixes
- Infinite Loading: Contracts with Abandoned Flashpoints
- If a Flashpoint was abandoned then it still remains the
ActiveFlashpoint
in the game. Due to this an assumption I made causes a crash as an abandoned flashpoint doesn't have any active contracts
- If a Flashpoint was abandoned then it still remains the
Improvements
- Exposed Lance Divergence check values in the settings
- Required for support amongst the various modpacks as one solution doesn't fit all
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
folderMissionControl.dll
mod.json
- Edit
settings.json
(and/or yoursettings.user.json
/settings.modpack.json
overrides) with the following:
- Copy into your
Add the following Misc
block under the top-level Spawners
block
"Misc": {
"LanceSelectionDivergenceOverride": {
"Enable": true,
"Divergence": 20
}
}
Specific for RT modpack
For RT modpack authors, or any modpack that uses custom high difficulty value lances like RT, use this block instead (or experiment with much higher divergence values):
"Misc": {
"LanceSelectionDivergenceOverride": {
"Enable": false
}
}