# Catalog Link Replace
Grammar — Replace catalog links set to value with replacement for player player
Flags —Native|Action
Most game functionality will switch to using the replacement value when possible instead of the original value.
# Arguments
int— Playerint<preset::CatalogType> — Catalogstring— Valuestring— Replacement
Returns — void
native void CatalogLinkReplace(
	int player,
	int catalog,
	string idA,
	string idB,
);
# Related
Category: Catalog / Support
- Upgrade Operation — preset — 
int - No Game Link — preset — 
gamelink - No Alert — preset — 
string - Cost Type — preset — 
string - Catalog Type — preset — 
int - Any Game Link — preset — 
gamelink - Field Type Category — preset — 
int - Catalog Field Value Set — 
bool— CatalogFieldValueSet - Catalog Field Value Set As Real — 
bool— libNtve_gf_CatalogFieldValueSetAsReal - Catalog Field Value Modify — 
bool— CatalogFieldValueModify - Catalog Field Value Modify (Based On Default Value) — 
bool— libNtve_gf_CatalogFieldValueModifyBasedOnDefaultValue - Catalog Reference Set — 
bool— CatalogReferenceSet - Catalog Reference Set As Real — 
bool— libNtve_gf_CatalogReferenceSetAsReal - Catalog Reference Modify — 
bool— CatalogReferenceModify - Catalog Reference Modify (Based On Default Value) — 
bool— libNtve_gf_CatalogReferenceModifyBasedOnDefaultValue - Catalog Link Replace — 
void— CatalogLinkReplace - Catalog Link Replacement — 
string— CatalogLinkReplacement 
# Examples
campaigns/swarmstory.sc2campaign — base.sc2data/TriggerLibs/SwarmCampaignLib.galaxy:22471
        }
        lv_unitType = libSwaC_gf_ZS_StoryArmyCategoryUnitType(lv_indexCategory);
        CatalogLinkReplace(1, c_gameCatalogUnit, (lv_unitType), (lv_unitUsed));
        TextExpressionSetToken("Param/Expression/lib_SwaC_9115409F", "C", libSwaC_gf_StoryArmyCategoryName(lv_indexCategory));
        TextExpressionSetToken("Param/Expression/lib_SwaC_9115409F", "A", StringToText((lv_unitType)));
campaigns/voidstory.sc2campaign — base.sc2data/TriggerLibs/VoidCampaignLib.galaxy:6157
    if ((lv_armyCategory != null)) {
        libVoiC_gf_PC_EnableUpgradeAndAbilityCommandForTech(lp_enableDisable, c_gameCatalogArmyCategory, (lv_armyCategory), null, null, lp_player);
        CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libVoiC_gf_PC_ArmyCategoryUnitType(lv_armyCategory)), (libVoiC_gf_PC_ArmyCategoryUnitType(lv_armyCategory)));
        TextExpressionSetToken("Param/Expression/lib_VoiC_5D41FBB9", "A", lv_debugMessage);
        TextExpressionSetToken("Param/Expression/lib_VoiC_5D41FBB9", "B", StringToText((lv_armyCategory)));
campaigns/voidstory.sc2campaign — base.sc2data/TriggerLibs/VoidCampaignLib.galaxy:6170
        TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_VoiC_66073AC7"), false);
        if ((lp_enableDisable == true)) {
            CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libVoiC_gf_PC_ArmyCategoryUnitType(libVoiC_gf_PC_ArmyCategoryOfArmyUnit(lv_armyCategory2))), (libVoiC_gf_PC_StoryArmyUnitUnitType(lv_armyCategory2)));
            PlayerApplySkin(1, libVoiC_gf_PC_ArmyUnitSkin(lv_armyCategory2), true);
        }
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:723
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "DiabloLightningBreathChargeBreatheOutModel", "Scale", lp_playerIndex, 0.5, c_upgradeOperationAdd);
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "DiabloLightningBreathGuide", "Height", lp_playerIndex, 4.5, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Diablo_LightningBreath_Launch", "Diablo_LightningEndless_Launch");
    }
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:734
        CatalogFieldValueModifyFixed(c_gameCatalogEffect, "MaelstromSearch", "AreaArray[" + IntToString(0) + "].Radius", lp_playerIndex, 1.0, c_upgradeOperationAdd);
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromBuff", "Scale", lp_playerIndex, 0.4, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:735
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromBuff", "Scale", lp_playerIndex, 0.4, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:736
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromRangeSplat", "Scale", lp_playerIndex, 1.0, c_upgradeOperationAdd);
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:737
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromRangeSplat", "Scale", lp_playerIndex, 1.0, c_upgradeOperationAdd);
        UnitBehaviorAdd(libGame_gv_players[lp_playerIndex].lv_heroUnit, "KerriganMaelstromMasteryCarryBehavior", libGame_gv_players[lp_playerIndex].lv_heroUnit, 1);
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:761
    CatalogFieldValueSet(c_gameCatalogEffect, "SlamSearch", "AreaArray[" + IntToString(0) + "].Radius", lp_playerIndex, "10");
    CatalogFieldValueSet(c_gameCatalogEffect, "SlamSearch", "AreaArray[" + IntToString(0) + "].Arc", lp_playerIndex, "87.5");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogModel, "StitchesSlamModel", "StitchesSlamSmashModel");
    CatalogFieldValueSet(c_gameCatalogEffect, "SlamApplyStunBehavior", "Chance", lp_playerIndex, "1");
    CatalogFieldValueSet(c_gameCatalogAbil, "StitchesSlam", "Cost.Cooldown.TimeUse", lp_playerIndex, "6");
mods/heroesbrawlmods/brawlmapmods/coop/deadmansstand.stormmod — base.stormdata/LibPEB1.galaxy:764
    CatalogFieldValueSet(c_gameCatalogEffect, "SlamApplyStunBehavior", "Chance", lp_playerIndex, "1");
    CatalogFieldValueSet(c_gameCatalogAbil, "StitchesSlam", "Cost.Cooldown.TimeUse", lp_playerIndex, "6");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_Cast", "Stitches_Slam_Pulverize_Cast");
}
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:709
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "DiabloLightningBreathChargeBreatheOutModel", "Scale", lp_playerIndex, 0.5, c_upgradeOperationAdd);
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "DiabloLightningBreathGuide", "Height", lp_playerIndex, 4.5, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Diablo_LightningBreath_Launch", "Diablo_LightningEndless_Launch");
    }
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:720
        CatalogFieldValueModifyFixed(c_gameCatalogEffect, "MaelstromSearch", "AreaArray[" + IntToString(0) + "].Radius", lp_playerIndex, 1.0, c_upgradeOperationAdd);
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromBuff", "Scale", lp_playerIndex, 0.4, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:721
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromBuff", "Scale", lp_playerIndex, 0.4, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:722
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Cast", "Kerrigan_Omegastorm_Cast");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromRangeSplat", "Scale", lp_playerIndex, 1.0, c_upgradeOperationAdd);
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:723
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Loop", "Kerrigan_Omegastorm_Loop");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_Impact", "Kerrigan_Omegastorm_Impact");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Kerrigan_Maelstrom_End", "Kerrigan_Omegastorm_End");
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "KerriganMaelstromRangeSplat", "Scale", lp_playerIndex, 1.0, c_upgradeOperationAdd);
        UnitBehaviorAdd(libGame_gv_players[lp_playerIndex].lv_heroUnit, "KerriganMaelstromMasteryCarryBehavior", libGame_gv_players[lp_playerIndex].lv_heroUnit, 1);
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:747
    CatalogFieldValueSet(c_gameCatalogEffect, "StitchesSlamSearch", "AreaArray[" + IntToString(0) + "].Radius", lp_playerIndex, "12");
    CatalogFieldValueSet(c_gameCatalogEffect, "StitchesSlamSearch", "AreaArray[" + IntToString(0) + "].Arc", lp_playerIndex, "87.5");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogModel, "StitchesSlamModel", "StitchesSlamSmashModel");
    CatalogFieldValueSet(c_gameCatalogAbil, "StitchesSlam", "Cost.Cooldown.TimeUse", lp_playerIndex, "6.0");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_Cast", "Stitches_Slam_Pulverize_Cast");
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:749
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogModel, "StitchesSlamModel", "StitchesSlamSmashModel");
    CatalogFieldValueSet(c_gameCatalogAbil, "StitchesSlam", "Cost.Cooldown.TimeUse", lp_playerIndex, "6.0");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_WideSlam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_MegaSmash_Cast", "Stitches_Slam_Pulverize_Cast");
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:750
    CatalogFieldValueSet(c_gameCatalogAbil, "StitchesSlam", "Cost.Cooldown.TimeUse", lp_playerIndex, "6.0");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_WideSlam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_MegaSmash_Cast", "Stitches_Slam_Pulverize_Cast");
    if ((libPVEB_gf_PVEDifficultyValueInt(0, 1) == 1)) {
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:751
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_WideSlam_Cast", "Stitches_Slam_Pulverize_Cast");
    CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Slam_MegaSmash_Cast", "Stitches_Slam_Pulverize_Cast");
    if ((libPVEB_gf_PVEDifficultyValueInt(0, 1) == 1)) {
        CatalogFieldValueModifyFixed(c_gameCatalogEffect, "StitchesCannibalize", "Chance", lp_playerIndex, 1.0, c_upgradeOperationSet);
mods/heroesbrawlmods/brawlmapmods/coop/escapefrombraxis.stormmod — base.stormdata/LibPEB1.galaxy:763
        CatalogFieldValueModifyFixed(c_gameCatalogEffect, "StitchesHookLaunchCreatePersistent", "PeriodicOffsetArray[" + IntToString(0) + "]", lp_playerIndex, 5.0, c_upgradeOperationSubtract);
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "StitchesHookGuide", "Height", lp_playerIndex, 5.0, c_upgradeOperationAdd);
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_MeatHook_AttackLaunch", "Stitches_FishingHook_AttackLaunch");
        CatalogLinkReplace(lp_playerIndex, c_gameCatalogSound, "Stitches_Chain_Retract", "Stitches_FishingHook_Retract");
        CatalogFieldValueModifyFixed(c_gameCatalogActor, "StitchesHookHelpingHandGuide", "Height", lp_playerIndex, 5.0, c_upgradeOperationAdd);
mods/heroesdata.stormmod — base.stormdata/TriggerLibs/GameLib.galaxy:5875
            lv_replaceFrom = libGame_gv_talents_TalentChoices[lp_player][lp_tierIndex].lv_talentData[lp_buttonIndex].lv_abilityModificationData[lv_itAbilityMod].lv_catalogReplaceFrom;
            lv_changeTo = libGame_gv_talents_TalentChoices[lp_player][lp_tierIndex].lv_talentData[lp_buttonIndex].lv_abilityModificationData[lv_itAbilityMod].lv_catalogChangeTo;
            CatalogLinkReplace(lp_player, lv_catalog, lv_replaceFrom, lv_changeTo);
        }
mods/heroesdata.stormmod — base.stormdata/TriggerLibs/GameLib.galaxy:5912
        if ((libGame_gv_talents_TalentChoices[lp_player][lp_tierIndex].lv_talentData[lp_buttonIndex].lv_abilityModificationData[lv_itAbilityMod].lv_changeType == c_talentModificationCatalogReplacement)) {
            lv_replaceFrom = libGame_gv_talents_TalentChoices[lp_player][lp_tierIndex].lv_talentData[lp_buttonIndex].lv_abilityModificationData[lv_itAbilityMod].lv_catalogReplaceFrom;
            CatalogLinkReplace(lp_player, lv_catalog, lv_replaceFrom, lv_replaceFrom);
        }
mods/heroesdata.stormmod — base.stormdata/TriggerLibs/GameLib.galaxy:18639
    if ((libGame_gv_players[lv_mountIndex].lv_mountData.lv_moveStartSound != "")) {
        CatalogLinkReplace(lv_mountingPlayer, c_gameCatalogSound, "GenericMountMoveStartSound", (libGame_gv_players[lv_mountIndex].lv_mountData.lv_moveStartSound));
    }
mods/heroesdata.stormmod — base.stormdata/TriggerLibs/GameLib.galaxy:18643
    if ((libGame_gv_players[lv_mountIndex].lv_mountData.lv_moveStopSound != "")) {
        CatalogLinkReplace(lv_mountingPlayer, c_gameCatalogSound, "GenericMountMoveStopSound", (libGame_gv_players[lv_mountIndex].lv_mountData.lv_moveStopSound));
    }
mods/heroesdata.stormmod — base.stormdata/TriggerLibs/GameLib.galaxy:18647
    if ((libGame_gv_players[lv_mountIndex].lv_mountData.lv_turboSound != "")) {
        CatalogLinkReplace(lv_mountingPlayer, c_gameCatalogSound, "GenericMountTurboSound", (libGame_gv_players[lv_mountIndex].lv_mountData.lv_turboSound));
    }
mods/heroesmapmods/battlegroundmapmods/hauntedmines.stormmod — base.stormdata/LibMHtM.galaxy:93
        CatalogFieldValueSet(c_gameCatalogAbil, "CaptureMacGuffin", "Range[" + IntToString(0) + "]", lv_itPlayer, "2.5");
        CatalogFieldValueSet(c_gameCatalogAbil, "HeroGenericSummonedUnitSpecialCaseInteraction", "Range[" + IntToString(0) + "]", lv_itPlayer, "2.5");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogModel, "CaptureMacGuffinBeamRavenCourt", "CaptureMacGuffinBeamUnderground");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeStart", "Event_Mines_EnterMinesStart");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeLoop", "Event_Mines_EnterMinesLoop");
mods/heroesmapmods/battlegroundmapmods/hauntedmines.stormmod — base.stormdata/LibMHtM.galaxy:94
        CatalogFieldValueSet(c_gameCatalogAbil, "HeroGenericSummonedUnitSpecialCaseInteraction", "Range[" + IntToString(0) + "]", lv_itPlayer, "2.5");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogModel, "CaptureMacGuffinBeamRavenCourt", "CaptureMacGuffinBeamUnderground");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeStart", "Event_Mines_EnterMinesStart");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeLoop", "Event_Mines_EnterMinesLoop");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeEnd", "StormNoSound");
mods/heroesmapmods/battlegroundmapmods/hauntedmines.stormmod — base.stormdata/LibMHtM.galaxy:95
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogModel, "CaptureMacGuffinBeamRavenCourt", "CaptureMacGuffinBeamUnderground");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeStart", "Event_Mines_EnterMinesStart");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeLoop", "Event_Mines_EnterMinesLoop");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeEnd", "StormNoSound");
    }
mods/heroesmapmods/battlegroundmapmods/hauntedmines.stormmod — base.stormdata/LibMHtM.galaxy:96
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeStart", "Event_Mines_EnterMinesStart");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeLoop", "Event_Mines_EnterMinesLoop");
        CatalogLinkReplace(lv_itPlayer, c_gameCatalogSound, "Event_RavenCurse_CollectTributeEnd", "StormNoSound");
    }
    autoAA661B28_g = libMHtM_gv_mMUnderworldGatesAbove;
mods/missionpacks/campaigncommon.sc2mod — base.sc2data/LibComC.galaxy:1873
    if ((lv_armyCategory != null)) {
        libComC_gf_CC_EnableUpgradeAndAbilityCommandForTech(lp_enableDisable, c_gameCatalogArmyCategory, (lv_armyCategory), null, null, lp_player);
        CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libComC_gf_CC_ArmyCategoryUnitType(lv_armyCategory)), (libComC_gf_CC_ArmyCategoryUnitType(lv_armyCategory)));
        TextExpressionSetToken("Param/Expression/lib_ComC_5E578D12", "A", lv_debugMessage);
        TextExpressionSetToken("Param/Expression/lib_ComC_5E578D12", "B", StringToText((lv_armyCategory)));
mods/missionpacks/campaigncommon.sc2mod — base.sc2data/LibComC.galaxy:1886
        TriggerDebugOutput(1, TextExpressionAssemble("Param/Expression/lib_ComC_BEFF0CCA"), false);
        if ((lp_enableDisable == true)) {
            CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libComC_gf_CC_ArmyCategoryUnitType(lv_armyCategory)), (libComC_gf_NC_StoryArmyUnitUnitType(lv_armyCategory2)));
            PlayerApplySkin(lp_player, libComC_gf_NC_ArmyUnitSkin(lv_armyCategory2), true);
        }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5492
            auto23CADF1A_val = lv_moraleindex;
            if (auto23CADF1A_val == 1) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleLow");
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5493
            if (auto23CADF1A_val == 1) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleLow");
            }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5494
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleLow");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleLow");
            }
            else if (auto23CADF1A_val == 2) {
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5497
            }
            else if (auto23CADF1A_val == 2) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes");
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5498
            else if (auto23CADF1A_val == 2) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes");
            }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5499
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes");
            }
            else if (auto23CADF1A_val == 3) {
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5502
            }
            else if (auto23CADF1A_val == 3) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleHigh");
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5503
            else if (auto23CADF1A_val == 3) {
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleHigh");
            }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:5504
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Attack", "TrooperMengsk_Attack_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_What", "TrooperMengsk_What_MoraleHigh");
                CatalogLinkReplace(lv_mengskplayer, c_gameCatalogSound, "TrooperMengsk_Yes", "TrooperMengsk_Yes_MoraleHigh");
            }
            else {
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOMI.galaxy:26476
    TriggerEnable(TriggerGetCurrent(), false);
    CatalogLinkReplace(UnitGetOwner(libCOMI_gf_EventTychusHero()), c_gameCatalogUnit, "TychusResearchCenter", "TychusResearchCenterUnlocked");
    libCOMI_gv_cM_HeroUnit[lv_p] = libCOMI_gf_EventTychusHero();
    libCOUI_gv_cU_HeroUnit[0][lv_p] = lv_unit;
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOOC.galaxy:4015
    if ((lv_armyCategory != null)) {
        libCOOC_gf_CC_EnableUpgradeAndAbilityCommandForTech(lp_enableDisable, c_gameCatalogArmyCategory, (lv_armyCategory), null, null, lp_player);
        CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libCOOC_gf_CC_ArmyCategoryUnitType(lv_armyCategory)), (libCOOC_gf_CC_ArmyCategoryUnitType(lv_armyCategory)));
    }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOOC.galaxy:4022
        libCOOC_gf_CC_EnableUpgradeAndAbilityCommandForTech(lp_enableDisable, c_gameCatalogArmyUnit, (lv_armyCategory2), null, null, lp_player);
        if ((lp_enableDisable == true)) {
            CatalogLinkReplace(lp_player, c_gameCatalogUnit, (libCOOC_gf_CC_ArmyCategoryUnitType(libCOOC_gf_CC_ArmyCategoryOfArmyUnit(lv_armyCategory2))), (libCOOC_gf_CC_StoryArmyUnitUnitType(lv_armyCategory2)));
            PlayerApplySkin(lp_player, libCOOC_gf_CC_ArmyUnitSkin(lv_armyCategory2), true);
        }
mods/starcoop/starcoop.sc2mod — base.sc2data/LibCOUI.galaxy:5400
    }
    libCOMI_gf_ButtonReplacement(lv_replacePlayer, (lv_replaceTarget), lv_button);
    CatalogLinkReplace(lv_replacePlayer, c_gameCatalogAbil, lv_replaceTarget, (lv_abil));
    UserDataSetInt("CoopTechTychusSquad", lp_squadInstance, "Squad Slot", 1, lp_squadIndex);
    libNtve_gf_SetDialogItemUnit(libCOUI_gv_cU_TychusSquadUnitFrames[lp_squadIndex], lp_unit, PlayerGroupAll());
mods/warcoop/warclassicsystem.sc2mod — base.sc2data/TriggerLibs/WarClassicSystem.galaxy:127
            lv_oldLink = CatalogFieldValueGet(c_gameCatalogDataCollection, lv_itEntry, "TechInfoAbilReplaced", lp_player);
            if ((CatalogEntryIsValid(c_gameCatalogAbil, lv_oldLink) == true)) {
                CatalogLinkReplace(lp_player, c_gameCatalogAbil, lv_oldLink, lv_newLink);
            }
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2043
        }
        else if ((UserDataGetUserInstance("LegendAbilityReplacements", lv_abilityReplacementInstance, "Legend", 1) == libWCdr_gf_GetLegendInstanceForPlayer(lp_legendPlayer))) {
            CatalogLinkReplace(lp_legendPlayer, c_gameCatalogAbil, (UserDataGetGameLink("LegendAbilityReplacements", lv_abilityReplacementInstance, "AbilityToReplace", 1)), (UserDataGetGameLink("LegendAbilityReplacements", lv_abilityReplacementInstance, "AbilityReplacement", 1)));
        }
    }
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2109
            lv_oldLink = StringReplaceWord(lv_newLink, lv_raceToken, "", c_stringReplaceAll, c_stringCase);
            if ((CatalogEntryIsValid(c_gameCatalogAbil, lv_oldLink) == true)) {
                CatalogLinkReplace(lp_player, c_gameCatalogAbil, lv_oldLink, lv_newLink);
            }
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2371
        if ((CatalogEntryIsValid(c_gameCatalogUnit, lv_from) == true)) {
            TechTreeUnitAllow(lp_player, (lv_from), true);
            CatalogLinkReplace(lp_player, c_gameCatalogUnit, lv_from, lv_to);
        }
        else {
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2387
        lv_to = CatalogFieldValueGet(c_gameCatalogDataCollection, lp_dataCollection, "TechInfoUpgrade", lp_player);
        if ((CatalogEntryIsValid(c_gameCatalogUpgrade, lv_from) == true)) {
            CatalogLinkReplace(lp_player, c_gameCatalogAbil, lv_from, lv_to);
            auto50853CB1_ae = (CatalogFieldValueGetAsInt(c_gameCatalogUpgrade, lp_dataCollection, "MaxLevel", c_playerAny)-1);
            lv_itIndex = 0;
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2402
        lv_to = CatalogFieldValueGet(c_gameCatalogDataCollection, lp_dataCollection, "TechInfoAbil", lp_player);
        if ((CatalogEntryIsValid(c_gameCatalogAbil, lv_from) == true)) {
            CatalogLinkReplace(lp_player, c_gameCatalogAbil, lv_from, lv_to);
        }
mods/warcoop/warcoopdata.sc2mod — base.sc2data/TriggerLibs/WarCoopData.galaxy:2410
    }
    if ((lp_replaceButton == true) && (CatalogEntryIsValid(c_gameCatalogButton, lv_from) == true)) {
        CatalogLinkReplace(lp_player, c_gameCatalogButton, lv_from, lv_to);
    }
mods/warcoop/warmeleeai.sc2mod — base.sc2data/LibW3AI.galaxy:75
            CatalogReferenceSet("Abil,Rosp,InfoArray[Research1].Button.Requirements", lv_p, "");
            libNtve_gf_SetUpgradeLevelForPlayer(lv_p, "Thrall", 1);
            CatalogLinkReplace(lv_p, c_gameCatalogModel, "Ofar", "Othr");
        }