# Allow/Disallow Upgrade For Player

GrammarinAllow|Allow/Disallow inUpgrade for player inPlayer
FlagsNative | Action

Allows or disallows an upgrade to be used by the specified player. This is only useful if tech restrictions have been enabled using “Enable/Disable Tech Tree Restrictions”. If the upgrade has a tech requirement, the requirement must still be met for the player to use the upgrade.

# Arguments

  • int — Player
  • string<gamelink::Upgrade> — Upgrade
  • bool<preset::AllowDisallowOption> — Allow

Returns — void

native void TechTreeUpgradeAllow(
	int player,
	string upgradeType,
	bool allow,
);

Category: Tech Tree / Individual Restrictions

# Examples

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/tvalerian02b.sc2map/MapScript.galaxy:607


    libCamp_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_P09_HORNER, "OrbitalRelay", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_P09_HORNER, "OrbitalRelay", 1);
    return true;

campaigns/liberty.sc2campaignbase.sc2maps/maps/challenges/protosscombat.sc2map/MapScript.galaxy:536

    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("ForceField", 0), true);
    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("TemporalRift", 0), true);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "PsiStormTech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "PsiStormTech", 1);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "haltech", true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/challenges/protosscombat.sc2map/MapScript.galaxy:538

    TechTreeUpgradeAllow(gv_pLAYER_USER, "PsiStormTech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "PsiStormTech", 1);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "haltech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "haltech", 1);
    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("HallucinationArchon", 0), true);

campaigns/liberty.sc2campaign/base.sc2maps/maps/campaign/tvalerian02b.sc2mapMapScript.galaxy:607


    libCamp_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_P09_HORNER, "OrbitalRelay", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_P09_HORNER, "OrbitalRelay", 1);
    return true;

campaigns/liberty.sc2campaign/base.sc2maps/maps/challenges/protosscombat.sc2mapMapScript.galaxy:536

    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("ForceField", 0), true);
    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("TemporalRift", 0), true);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "PsiStormTech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "PsiStormTech", 1);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "haltech", true);

campaigns/liberty.sc2campaign/base.sc2maps/maps/challenges/protosscombat.sc2mapMapScript.galaxy:538

    TechTreeUpgradeAllow(gv_pLAYER_USER, "PsiStormTech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "PsiStormTech", 1);
    TechTreeUpgradeAllow(gv_pLAYER_USER, "haltech", true);
    libNtve_gf_SetUpgradeLevelForPlayer(gv_pLAYER_USER, "haltech", 1);
    TechTreeAbilityAllow(gv_pLAYER_USER, AbilityCommand("HallucinationArchon", 0), true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7085

        TechTreeUnitAllow(lv_player, "PhotonCannon", true);
        TechTreeUnitAllow(lv_player, "Assimilator", true);
        TechTreeUpgradeAllow(lv_player, "BlinkTech", true);
    }

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7092

        TechTreeUnitAllow(lv_player, "Stalker", true);
        TechTreeUnitAllow(lv_player, "Archon", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel1", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7093

        TechTreeUnitAllow(lv_player, "Archon", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "Charge", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7094

        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "Charge", true);
        TechTreeUpgradeAllow(lv_player, "VoidRaySpeedUpgrade", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7095

        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "Charge", true);
        TechTreeUpgradeAllow(lv_player, "VoidRaySpeedUpgrade", true);
        TechTreeUpgradeAllow(lv_player, "ExtendedThermalLance", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7096

        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel1", true);
        TechTreeUpgradeAllow(lv_player, "Charge", true);
        TechTreeUpgradeAllow(lv_player, "VoidRaySpeedUpgrade", true);
        TechTreeUpgradeAllow(lv_player, "ExtendedThermalLance", true);
        libCamp_gf_AddUnitTypeToUnitHelpPanel("Zealot", false, lv_player);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7097

        TechTreeUpgradeAllow(lv_player, "Charge", true);
        TechTreeUpgradeAllow(lv_player, "VoidRaySpeedUpgrade", true);
        TechTreeUpgradeAllow(lv_player, "ExtendedThermalLance", true);
        libCamp_gf_AddUnitTypeToUnitHelpPanel("Zealot", false, lv_player);
        libCamp_gf_AddUnitTypeToUnitHelpPanel("Stalker", false, lv_player);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7106

        TechTreeUnitAllow(lv_player, "Immortal", true);
        TechTreeUnitAllow(lv_player, "HighTemplar", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel2", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7107

        TechTreeUnitAllow(lv_player, "HighTemplar", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "PsiStormTech", true);

campaigns/libertystory.sc2campaignbase.sc2data/TriggerLibs/CampaignLib.galaxy:7108

        TechTreeUpgradeAllow(lv_player, "ProtossGroundArmorsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossGroundWeaponsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "ProtossShieldsLevel2", true);
        TechTreeUpgradeAllow(lv_player, "PsiStormTech", true);
        TechTreeUpgradeAllow(lv_player, "HighTemplarKhaydarinAmulet", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zchar02.sc2map/MapScript.galaxy:779


    libSwaC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_02_TERRAN_RED, "HailstormMissilePods", true);
    TechTreeUpgradeAllow(gv_pLAYER_03_TERRAN_TEAL, "HailstormMissilePods", true);
    return true;

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zchar02.sc2map/MapScript.galaxy:780

    libSwaC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_02_TERRAN_RED, "HailstormMissilePods", true);
    TechTreeUpgradeAllow(gv_pLAYER_03_TERRAN_TEAL, "HailstormMissilePods", true);
    return true;
}

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1145

            TechTreeUpgradeAddLevel(auto49D74679_var, "TerranShipArmorsLevel1", 1);
            TechTreeAbilityAllow(auto49D74679_var, AbilityCommand("EMP", 0), true);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1147

            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelFrame", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1149

            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelFrame", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1151

            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1152

            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);
        }

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zhybrid01.sc2map/MapScript.galaxy:1153

            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);
        }
    }

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zkorhal01.sc2map/MapScript.galaxy:1319

        if (auto25770434_var < 0) { break; }
        TechTreeUpgradeAddLevel(auto25770434_var, "CombatShield", 1);
        TechTreeUpgradeAllow(auto25770434_var, "JackhammerConcussionGrenades", true);
        TechTreeUpgradeAddLevel(auto25770434_var, "PunisherGrenades", 1);
        TechTreeAbilityAllow(auto25770434_var, AbilityCommand("SiegeMode", 0), true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zkorhal01.sc2map/MapScript.galaxy:1336

            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TerranShipWeaponsLevel1", 1);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TerranShipArmorsLevel1", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "TwinLinkedFlameThrowers", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TwinLinkedFlameThrowers", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "ClusterWarheads", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zkorhal01.sc2map/MapScript.galaxy:1338

            TechTreeUpgradeAllow(auto16DEC3D3_var, "TwinLinkedFlameThrowers", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TwinLinkedFlameThrowers", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "ClusterWarheads", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "ClusterWarheads", 1);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "MultilockTargetingSystems", 1);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zlab03.sc2map/MapScript.galaxy:1518

            auto34BD469C_var = PlayerGroupNextPlayer(auto34BD469C_g, auto34BD469C_var);
            if (auto34BD469C_var < 0) { break; }
            TechTreeUpgradeAllow(auto34BD469C_var, "CombatShield", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "ShieldWall", 1);
            TechTreeUpgradeAllow(auto34BD469C_var, "JackhammerConcussionGrenades", true);

campaigns/swarm.sc2campaignbase.sc2maps/maps/campaign/swarm/zlab03.sc2map/MapScript.galaxy:1520

            TechTreeUpgradeAllow(auto34BD469C_var, "CombatShield", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "ShieldWall", 1);
            TechTreeUpgradeAllow(auto34BD469C_var, "JackhammerConcussionGrenades", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "PunisherGrenades", 1);
        }

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zchar02.sc2mapMapScript.galaxy:779


    libSwaC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_02_TERRAN_RED, "HailstormMissilePods", true);
    TechTreeUpgradeAllow(gv_pLAYER_03_TERRAN_TEAL, "HailstormMissilePods", true);
    return true;

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zchar02.sc2mapMapScript.galaxy:780

    libSwaC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    TechTreeUpgradeAllow(gv_pLAYER_02_TERRAN_RED, "HailstormMissilePods", true);
    TechTreeUpgradeAllow(gv_pLAYER_03_TERRAN_TEAL, "HailstormMissilePods", true);
    return true;
}

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1145

            TechTreeUpgradeAddLevel(auto49D74679_var, "TerranShipArmorsLevel1", 1);
            TechTreeAbilityAllow(auto49D74679_var, AbilityCommand("EMP", 0), true);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1147

            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelAndShrikeTurretIconUpgrade", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelFrame", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1149

            TechTreeUpgradeAllow(auto49D74679_var, "NeoSteelFrame", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "NeoSteelFrame", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1151

            TechTreeUpgradeAllow(auto49D74679_var, "ShrikeTurret", true);
            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1152

            TechTreeUpgradeAddLevel(auto49D74679_var, "ShrikeTurret", 1);
            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);
        }

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zhybrid01.sc2mapMapScript.galaxy:1153

            TechTreeUpgradeAllow(auto49D74679_var, "ClusterWarheads", true);
            TechTreeUpgradeAllow(auto49D74679_var, "DualFusionWelders", true);
            TechTreeUpgradeAllow(auto49D74679_var, "FireSuppressionSystems", true);
        }
    }

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zkorhal01.sc2mapMapScript.galaxy:1319

        if (auto25770434_var < 0) { break; }
        TechTreeUpgradeAddLevel(auto25770434_var, "CombatShield", 1);
        TechTreeUpgradeAllow(auto25770434_var, "JackhammerConcussionGrenades", true);
        TechTreeUpgradeAddLevel(auto25770434_var, "PunisherGrenades", 1);
        TechTreeAbilityAllow(auto25770434_var, AbilityCommand("SiegeMode", 0), true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zkorhal01.sc2mapMapScript.galaxy:1336

            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TerranShipWeaponsLevel1", 1);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TerranShipArmorsLevel1", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "TwinLinkedFlameThrowers", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TwinLinkedFlameThrowers", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "ClusterWarheads", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zkorhal01.sc2mapMapScript.galaxy:1338

            TechTreeUpgradeAllow(auto16DEC3D3_var, "TwinLinkedFlameThrowers", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "TwinLinkedFlameThrowers", 1);
            TechTreeUpgradeAllow(auto16DEC3D3_var, "ClusterWarheads", true);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "ClusterWarheads", 1);
            TechTreeUpgradeAddLevel(auto16DEC3D3_var, "MultilockTargetingSystems", 1);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zlab03.sc2mapMapScript.galaxy:1518

            auto34BD469C_var = PlayerGroupNextPlayer(auto34BD469C_g, auto34BD469C_var);
            if (auto34BD469C_var < 0) { break; }
            TechTreeUpgradeAllow(auto34BD469C_var, "CombatShield", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "ShieldWall", 1);
            TechTreeUpgradeAllow(auto34BD469C_var, "JackhammerConcussionGrenades", true);

campaigns/swarm.sc2campaign/base.sc2maps/maps/campaign/swarm/zlab03.sc2mapMapScript.galaxy:1520

            TechTreeUpgradeAllow(auto34BD469C_var, "CombatShield", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "ShieldWall", 1);
            TechTreeUpgradeAllow(auto34BD469C_var, "JackhammerConcussionGrenades", true);
            TechTreeUpgradeAddLevel(auto34BD469C_var, "PunisherGrenades", 1);
        }

campaigns/void.sc2campaignbase.sc2maps/maps/campaign/void/ppurifier02.sc2map/MapScript.galaxy:697

    libVoiC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    libVoiC_gf_EnableCampaignTechUnit(true, "Colossus", gv_pLAYER_01_USER);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", true);

campaigns/void.sc2campaignbase.sc2maps/maps/campaign/void/ppurifier02.sc2map/MapScript.galaxy:699

    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", 1);
    return true;

campaigns/void.sc2campaignbase.sc2maps/maps/campaign/void/pshakuras02.sc2map/MapScript.galaxy:869

    TechTreeUnitAllow(gv_pLAYER_01_USER, "KhaydarinMonolith", true);
    TechTreeAbilityAllow(1, AbilityCommand("ProtossBuild", 24), true);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordspeed", true);

campaigns/void.sc2campaignbase.sc2maps/maps/campaign/void/pshakuras02.sc2map/MapScript.galaxy:871

    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordspeed", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordspeed", 1);
    TechTreeAbilityAllow(gv_pLAYER_02_DOMINION, AbilityCommand("OverlordTransport", 0), true);

campaigns/void.sc2campaign/base.sc2maps/maps/campaign/void/ppurifier02.sc2mapMapScript.galaxy:697

    libVoiC_gf_SetTechRestrictionsCallback(TriggerGetCurrent());
    libVoiC_gf_EnableCampaignTechUnit(true, "Colossus", gv_pLAYER_01_USER);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", true);

campaigns/void.sc2campaign/base.sc2maps/maps/campaign/void/ppurifier02.sc2mapMapScript.galaxy:699

    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_03_ZERG_BULLIES, "overlordspeed", 1);
    return true;

campaigns/void.sc2campaign/base.sc2maps/maps/campaign/void/pshakuras02.sc2mapMapScript.galaxy:869

    TechTreeUnitAllow(gv_pLAYER_01_USER, "KhaydarinMonolith", true);
    TechTreeAbilityAllow(1, AbilityCommand("ProtossBuild", 24), true);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordspeed", true);

campaigns/void.sc2campaign/base.sc2maps/maps/campaign/void/pshakuras02.sc2mapMapScript.galaxy:871

    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordtransport", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordtransport", 1);
    TechTreeUpgradeAllow(gv_pLAYER_02_DOMINION, "overlordspeed", true);
    TechTreeUpgradeAddLevel(gv_pLAYER_02_DOMINION, "overlordspeed", 1);
    TechTreeAbilityAllow(gv_pLAYER_02_DOMINION, AbilityCommand("OverlordTransport", 0), true);

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2110

void libNovC_gf_NC_ApplyGeneralTech (int lp_player) {
    // Implementation
    TechTreeUpgradeAllow(lp_player, "CycloneAirUpgrade", false);
    libNtve_gf_SetUpgradeLevelForPlayer(lp_player, "BlackOps", 1);
    libNtve_gf_PlayerApplySkinReplacingExistingUnit(lp_player, "Nova_BlackOps", true);

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2134

void libNovC_gf_NC_UpdateWeaponArmorUpgrades (int lp_player) {
    // Implementation
    TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel1", true);
    TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel1", true);
    if ((libComC_gf_NC_StoryArmyUnitState("SiegeTank") == c_armyUnitStateUnlocked)) {

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2135

    // Implementation
    TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel1", true);
    TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel1", true);
    if ((libComC_gf_NC_StoryArmyUnitState("SiegeTank") == c_armyUnitStateUnlocked)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel1", true);

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2137

    TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel1", true);
    if ((libComC_gf_NC_StoryArmyUnitState("SiegeTank") == c_armyUnitStateUnlocked)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel1", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel1", true);
    }

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2138

    if ((libComC_gf_NC_StoryArmyUnitState("SiegeTank") == c_armyUnitStateUnlocked)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel1", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel1", true);
    }

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2142


    if ((libComC_gf_NC_StoryArmyUnitState("Banshee") == c_armyUnitStateUnlocked)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel2", true);

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2143

    if ((libComC_gf_NC_StoryArmyUnitState("Banshee") == c_armyUnitStateUnlocked)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel2", true);

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2144

        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel2", true);
    }

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2145

        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel2", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryWeaponsLevel2", true);
    }

mods/missionpacks/novacampaign.sc2modbase.sc2data/LibNovC.galaxy:2149


    if ((libComC_gf_MissionStatusCheck("Nova06", libComC_ge_MissionStatus_Completed) == true)) {
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipArmorsLevel3", true);
        TechTreeUpgradeAllow(lp_player, "TerranVehicleAndShipWeaponsLevel3", true);
        TechTreeUpgradeAllow(lp_player, "TerranInfantryArmorsLevel3", true);

mods/warcoop/warcoopdata.sc2modbase.sc2data/TriggerLibs/WarCoopData.galaxy:2395

        }
        else {
            TechTreeUpgradeAllow(lp_player, (lv_to), true);
        }
    }

mods/warcoop/warcoopdata.sc2modbase.sc2data/TriggerLibs/WarCoopData.galaxy:3122

        lv_player = PlayerGroupNextPlayer(autoE3FF5C12_g, lv_player);
        if (lv_player < 0) { break; }
        TechTreeUpgradeAllow(lv_player, "Rhpm", false);
        TechTreeUpgradeAllow(lv_player, "Rupm", false);
        TechTreeUpgradeAllow(lv_player, "Repm", false);

mods/warcoop/warcoopdata.sc2modbase.sc2data/TriggerLibs/WarCoopData.galaxy:3123

        if (lv_player < 0) { break; }
        TechTreeUpgradeAllow(lv_player, "Rhpm", false);
        TechTreeUpgradeAllow(lv_player, "Rupm", false);
        TechTreeUpgradeAllow(lv_player, "Repm", false);
        TechTreeUpgradeAllow(lv_player, "Ropm", false);

mods/warcoop/warcoopdata.sc2modbase.sc2data/TriggerLibs/WarCoopData.galaxy:3124

        TechTreeUpgradeAllow(lv_player, "Rhpm", false);
        TechTreeUpgradeAllow(lv_player, "Rupm", false);
        TechTreeUpgradeAllow(lv_player, "Repm", false);
        TechTreeUpgradeAllow(lv_player, "Ropm", false);
        TechTreeAbilityAllow(lv_player, AbilityCommand("Ropm", 0), false);

mods/warcoop/warcoopdata.sc2modbase.sc2data/TriggerLibs/WarCoopData.galaxy:3125

        TechTreeUpgradeAllow(lv_player, "Rupm", false);
        TechTreeUpgradeAllow(lv_player, "Repm", false);
        TechTreeUpgradeAllow(lv_player, "Ropm", false);
        TechTreeAbilityAllow(lv_player, AbilityCommand("Ropm", 0), false);
        TechTreeAbilityAllow(lv_player, AbilityCommand("Rupm", 0), false);