Skip to content

Latest commit

 

History

History
122 lines (100 loc) · 9.02 KB

README.md

File metadata and controls

122 lines (100 loc) · 9.02 KB

LE2 Liara squadmate

Mod that adds Liara from Lair of the Shadow Broker as a selectable squadmate to Mass Effect 2 in the Mass Effect Legendary Edition. Uses LotSB both as recruitment and loyalty mission and enables Liara to be selected from the squad selection screen like any other ME2 squadmate, this includes the loadout selection and power level-up screen. As this uses Liara as defined by LotSB it matches the DLC both in appearance and gameplay in terms of what loadouts and powers are available and how they function. Adds Liara to the Normandy crew after completing the Normandy date.

Installation

Installed via ME3 Tweaks Mod Manager as DLC mod. Note that this mod changes a lot of files, so conflicts with other mods are probable. However, the majority of files were generated by the auto_patcher tool, which can be used to apply the necessary changes to your already modded files. If a file exists in several DLC directories, it uses the DLC with the highest mount priority (not including this mod itself of course). So to apply changes to a file from a different mod, make sure the mod has a higher mount priority than the base game DLCs (should be the case anyway) but a lower mount priority than this DLC (10900), as the modded file will be copied to this mod's directory. Auto_patcher makes sure this mod has a higher mount priority as long as "Adjust Mod Mount Priority Automatically" is checked for auto_patcher_gui or --retain-mount-priority is not set for auto_patcher.

Implementation details

The majority of package files have been modded automatically using the auto_patcher tool. This tool mods the following sequences automatically:

  • LookupHenchmanFromPlotManager: loads plot bool for squad selection and triggers spawns for selected members, call global hench spawn handling with hench ID 14 for Liara
  • IsTag_Henchman: determines whether the tag of an object represents a henchman / squad made, required in many places including cutscenes
  • Store_the_Henchmen_in_the_Squad: stores which squadmates were in the squad when temporarily clearing the squad, e.g. when getting in a hammerhead
  • Retrieve_the_Henchmen_previously_in_the_Squad: retrieves the members stored by Store_the_Henchmen_in_the_Squad
  • The unnamed sequences that follow LookupHenchmanFromPlotManager to invoke plot transitions to set members in squad
  • InterpGroups with tracks for all other squadmates: adds track for Liara based on Samara

Additionally, the tool also automatically replaces the following plot transition invocations:

  • 75 In_Squad.Clear_Squad is replaced by 10934 to also clear Liara
  • 1910 Was_In_Squad.Clear_all is replaced by 10933

See Plot transitions / state events section.

auto_patcher handles the following packages explicitly:

  • BioD_Nor: Add BioH_Liara and BioD_Nor_109Liara to StreamingState chunks wherever streaming for BioD_Nor_105CerberusCrew is enabled.
  • BioP_Nor: Add LevelStreamingKismet for BioD_Nor_109Liara.
  • BioH_Liara_00: Adjust AddHenchmenToSquad RemoteEvent sequence to check whether Liara is actually in squad before adding to party analogous to other squadmates, was not required for LotSB.
  • BioP_Global: Mod CreateHenchmen, SpawnHenchman and DespawnHenchmen sequences to include Liara as Hench ID 14 and add PlotStreamingSet with virtual chunk name BioH_Liara for BioH_Liara_00.
  • BioP_EndGm1: Add StreamingState stream_liara to BioTriggerStream 1535 and 1536.
  • BioP_EndGm_StuntHench: Add LevelStreamingKismet for BioH_END_Liara_00, add PlotStreamingSet for virtual chunk name BioH_END_Liara and add BioTriggerStream with states load_end_liara and visible_end_liara that stream chunk BioH_END_Liara.
  • BioD_EndGm2_300Conclusion: Patch Mission_Complete_Consequence sequence to check if both Liara and Miranda are in the squad and trigger the success cutscene if true since neither of them can die at this point and add Liara to Kill_SquadMember_ByRanking sequence to make sure HENCH TO DIE is set to Liara when her and Miranda are in the squad as HENCH TO DIE and HENCH TO LIVE is always required even for the success cutscene and it cannot be Miranda, if both of them are in the squad success is guaranteed anyway.
  • BioD_Exp1Lvl5_100Stronghold: Deactivate pawn Liara after the Normandy / after she's moved to the Normandy.
  • BioD_Exp1Lvl4_Stage2_Out: Add ShowMessage action after completing the conversation when finishing LotSB to explain that Liara is now selectable for missions after completing LotSB.
  • BioD_Exp1Lvl5_200Cabin: Add ShowMessage action after completing the conversation when finishing the Normandy date to explain that Liara has now moved to the Normandy.

The following packages were modded manually:

  • BioH_SelectGUI.pcc
    • Mod squad selection GUI in GUI_SF_TeamSelect.TeamSelect to add Liara using ME3's portrait textures.
    • Add loadout info for Liara to m_lstLoadouts in SFXGameContent.Default__BioSeqAct_ShowPartySelectionGUI.
  • Lair of the Shadow Broker: BioP_Exp1Lvl2.pcc, BioP_Exp1Lvl3.pcc and BioP_Exp1Lvl4.pcc
    • Mirror changes to GUI_SF_TeamSelect from BioH_SelectGUI.
    • Remove special handling for Liara from sequence REF_Henchmen_PlaceOnceInMasterMap and adjust LookupHenchmanFromPlotManager sequence analogous to rest of game to handle Liara globally instead.
  • Special cutscene in Overlord DLC on vulkan station: BioD_Unc1Base2_01Narrative_LOC_INT.pcc (and the other localised files)
    • Expand hench loadout and gesture logic for Liara based on hench_mystic (Samara / Morinth).
  • Suicide Mission:
    • BioD_EndGm1_310Huddle.pcc
      • Add Liara to huddle cutscene by adding variable links to conversations for hench_liara and expanding SkeletalMesh ST_Nor_Huddle_mesh to place Liara.
      • Create SpawnNotify sequence for Liara to spawn Liara as defined by BioH_END_Liara_00 for cutscene.
    • BioD_EndGm2_200Factory.pcc
      • Add Liara to huddle cutscene by adding variable links to conversations for hench_liara and expanding SkeletalMesh ST_4P_Endgm2_mesh to place Liara.
      • Create SpawnNotify sequence for Liara to spawn Liara as defined by BioH_END_Liara_00 for cutscene.
    • BioD_EndGm2_400FinalBattle.pcc
      • Mod Handle_Party_Touch sequences to include Liara.
    • BioD_EndGm2_410HoldTheLine.pcc
      • Add Liara to huddle cutscene by adding variable links to conversations for hench_liara and expanding SkeletalMesh ST_EndGm2_Huddle3_mesh to place Liara.
      • Create SpawnNotify sequence for Liara to spawn Liara as defined by BioH_END_Liara_00 for cutscene.
    • BioD_EndGm2_430ReaperCombat.pcc
      • Mod Handle_Party_Touch sequences to include Liara.
    • BioD_EndGm2_440CutsceneRoll.pcc
      • Mod sequence Kill_NonLoyalSquad to handle Liara as alive and set variable HENCH01_ALIVE or HENCH02_ALIVE in order to make sure Liara appears in the escape cutscene.
      • Add Liara to Determine_Player_Ending sequence, only one other squadmate is required to survive to not get the bad ending if Liara is in the squad.
    • BioD_EndGm2_450ShepAlive.pcc
      • Add spawn handling for Liara to sequence Handle_ReactionScene_Saviour.

Mod info

The mod adds DLC DLC_MOD_LiaraSquad with mount priority 10900 and uses values in the range of 109XX for any new plot variables, transitions, coniditionals etc.

Plot variables

Tag Plot variable Desc
InSquadLiara 6879 LiaraInSquad (LotSB)
InPartyLiara 6961 Started_Car_Chase (LotSB)
IsSelectableLiara 6951 End_Mission (LotSB)
IsLoyalLiara 6951 End_Mission (LotSB)
IsSpecializedLiara 10912 (new plot bool)
WasLoyalLiara 10913 (new plot bool)
KnowExistLiara 6961 Started_Car_Chase (LotSB)
AppearanceLiara 10914 (new plot int, unused)
WasInSquadLiara 10915 (new plot bool)

Started_Car_Chase is used for InPartyLiara and KnowExistLiara to make sure Liara appears in the squad selection screen during LotSB (there is a squad selection screen before reaching the Shadow Broker ship). Note that IsSelectableLiara is enabled later by 6951 (End_Mission), which means after LotSB has been completed, guaranteeing that Liara cannot be deselected during LotSB, similar to how loyalty missions work.

Plot transitions / state events

State Event Desc
10931 Set 6879 (LiaraInSquad) to true
10932 Set 10915 (WasInSquadLiara) to true
10933 Expansion of 1910 (Was_In_Squad.Clear_all) that handles Liara
10934 Expansion of 75 (In_Squad.Clear_Squad) that handles Liara

Merge mods

The function BioSeqAct_SetPlotPartySize.Activate from SFXGame.pcc is modded via merge mod MergeMods/merge-mods_manifest.json to increment plot int 22 (Party_Size) for Liara if plot bool 6961 (InPartyLiara / Started_Car_Chase (LotSB)) is set.