[MOD] PJ Infrastructure Pack for play with AIx

I did only a quick overview.

First you need to delete the category VILLAGESHIELD from the file AIAddBuilderTable.lua
(Delete every * categories.VILLAGESHIELD)
This will resolve the error attempt to get as UserData a nil value

Adding several buildergrpups from the same file is no problem.
But you should rename the local save variable for your hook.

local OLDAddGlobalBaseTemplate = AddGlobalBaseTemplate
Change it to a unique name like
local InfrastructureAddGlobalBaseTemplate = AddGlobalBaseTemplate
Havig the same hook name in different mods can lead to deadloops (game freeze)
or simply overwriting a hook from another mod.

Upgrade for pgens is wrong:

PlatoonTemplate {
    Name = 'Upgrade-PGen-T2',
    Plan = 'UnitUpgradeAI',
    GlobalSquads = {
        {categories.ENERGYPRODUCTION * categories.TECH2 * categories.ECONOMIC, 1, 1, 'support', 'None'},
    }
}

Unit UEpowerup_unit has category ENERGYPRODUCTION * TECH2 * ECONOMIC but can't be upgraded.
This template should only catch normal powergens, not the upgraded ones.
(same to all other PlatoonTemplates)

@uveso

Thank you, I've corrected errors.

Could you please explain what I did wrong in Platoon template?
UEpowerup_unit is an upgraded version of UEB1201_unit
UEB1201_unit has category ENERGYPRODUCTION * TECH2 * ECONOMIC and upgradable via hook:

UnitBlueprint {
    Merge = true,
	BlueprintId = "ueb1201",
	
    Display = {
        Abilities = {
            '<LOC ability_upgradable>Upgradeable',
        },
    },
    Economy = {
        BuildRate = 12,
        BuildableCategory = {
            'uepowerup',
        },
        RebuildBonusIds = {
            "ueb1201",
            'uepowerup',
        },
    },
    General = {
		UpgradesTo = 'uepowerup',
        CommandCaps = {
            RULEUCC_Pause = true,
        },
    },
}

yes unit UEB1201 has categories ENERGYPRODUCTION * TECH2 * ECONOMIC
But unit UEpowerup has also categories ENERGYPRODUCTION * TECH2 * ECONOMIC

Now if you use the PlatoonTemplate and search for untis with the categories ENERGYPRODUCTION * TECH2 * ECONOMIC
what unit will you get ? - UEB1201 and UEpowerup.
You need to get sure that you only get UEB1201 with this PlatoonTemplate.

You can do this by adding a category like 'UPGRADED' to the unit UEpowerup.
Now if you want to get the UEB1201 unit, search for
ENERGYPRODUCTION * TECH2 * ECONOMIC - UPGRADED

{categories.ENERGYPRODUCTION * categories.TECH2 * categories.ECONOMIC - categories.UPGRADED, 1, 1, 'support', 'None'},

If you are curious for a mod that handles upgrading. My own mod has added upgrading units for TA factions. Might be of interest of tou see the other work you need to do/add.

Iā€™m a shitty 1k Global. Any balance or gameplay suggestions should be understood or taken as such.

Project Head and current Owner/Manager of SCTA Project

@Dragun101
Thank you Dragun101. Will check your mod. Would you be ble to point to files of interest for me?

@uveso
Thank you Uveso. I've implemented these changes for T2 and T3 Power Generators and T3 Shielded Extractors. How ever issue you've mentioned shouldn't affect HC T3 to Experimental upgrade (categories.HYDROCARBON * categories.ENERGYPRODUCTION * categories.TECH3) and all storages upgrades(categories.MASSSTORAGE * categories.TECH1 * categories.ECONOMIC) and (categories.MASSSTORAGE * categories.TECH2 * categories.ECONOMIC).
Or i'm again missing something?
Also i can see this in game log, this is upgrade HCT3 to HCExperimental:

warning: [platoon.lua, line:2494] *UnitUpgradeAI ERROR: "brb1302":CanBuild( BRMBT1PERI ) failed!

Is it anything else wrong what you could spot?
From what you've seen, is it ok to list link for corrected version of this mod at this page for troubleshooting?

If you upload your mod, then please delete all files with '.dds' and '.scm'

This way no one can use it and i can merge the scripts into my version.

While walking through the scripts i saw you have some upper/lower case mismatch in unit IDs
As example please change all BRMBT1PERI to brmbt1peri
Upper case names don't work.

I used my own formbuilders in my AI, but lowercase IDs like brmbt1peri are working with the upgrade function.
Upper case are not working.

@uveso
Thanks will correct names and remove required files, then upload mod.

Test it before you upload it. Maybe you don't need to.

Changing the names will do the trick.
As i said i only changed the names and it was working.

But i did not used your Platoonformer.
It has a strange buildcondition:

			{ EBC, 'GreaterThanEconIncome', { 100.0, 4000.0 } },

its waiting for an base income of 1000 mass and 40000 energy (values are * 10)
(Thats why we write 100.0 to have in mind its 1000)

@uveso
Hi Uveso.
Changes has been done followed by your guide. Done some testing and can see that AI upgrading HC T1->T2->t3->Exp, Power Generator T2->T2+ and T3->T3+, Shields T3->Exp, storages T1->T2->T3.
But on 70min game AI doesn't have any T3+ extractors šŸ˜ž

Platoonformer (buildconditions) has been reviewed too.

Would you be able to check if everything is ok with Extractors upgrade please?
Thank you.

Extractor upgrade from 1 to 2, 2 to 3 and 4 to experimental are all working.

Maybe you should decrease the eco requirement of the Builder ?

BuilderName = 'EXMEX-Upgrade',
{ EBC, 'GreaterThanEconIncome', { 10.0, 500.0 } },

It's waiting for 100 massincome and 5000 energy. Maybe you should use something like { 10.0, 100.0 }

Also found this warning:

WARNING: *AIExecuteBuildStructure: TECH1 Unit "euebest3" is assigned to build TECH3 buildplatoon! ("EnergyStorage")

Please check in CustomUnits.lua:

UnitList = {
    EnergyStorage = {
        UEF = {'euebest3', 50},
    },
},

EnergyStorage is a Tech1 building and will be assinged to a Tech 1 engineer.
It can't build a tech3 unit euebest3.

There are several other custom entries that have the same problem.

Some missmatch in General.TechLevel

- Unit xrb0404 (Engineering Station) Categories.TECH3 dont match TechLevel (RULEUTL_Basic) 
  Please change (General.TechLevel = 'RULEUTL_Basic',) to (General.TechLevel = 'RULEUTL_Secret',) in file [xrb0404_unit.bp]

- Unit bab1106 (Mass & Energy Storage) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [bab1106_unit.bp]

- Unit bsb1106 (Mass & Energy Storage) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [bsb1106_unit.bp]

- Unit brb1106 (Mass & Energy Storage) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [brb1106_unit.bp]

- Unit xab0104 (Engineering Station) Categories.TECH3 dont match TechLevel (RULEUTL_Basic) 
  Please change (General.TechLevel = 'RULEUTL_Basic',) to (General.TechLevel = 'RULEUTL_Secret',) in file [xab0104_unit.bp]

- Unit xsb0104 (Engineering Station) Categories.TECH3 dont match TechLevel (RULEUTL_Basic) 
  Please change (General.TechLevel = 'RULEUTL_Basic',) to (General.TechLevel = 'RULEUTL_Secret',) in file [xsb0104_unit.bp]

- Unit bab1302 (Hydrocarbon Power Plant) Categories.TECH3 dont match TechLevel (RULEUTL_Basic) 
  Please change (General.TechLevel = 'RULEUTL_Basic',) to (General.TechLevel = 'RULEUTL_Secret',) in file [bab1302_unit.bp]

- Unit brnbt1peri (HydroCarbon Perimeter Monitoring System) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [brnbt1peri_unit.bp]

- Unit xsb1402 (Experimental Mass Extractor) Categories.TECH3 dont match TechLevel (RULEUTL_Advanced) 
  Please change (General.TechLevel = 'RULEUTL_Advanced',) to (General.TechLevel = 'RULEUTL_Secret',) in file [xsb1402_unit.bp]

- Unit brmbt1peri (HydroCarbon Perimeter Monitoring System) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [brmbt1peri_unit.bp]

- Unit beb1302 (Hydrocarbon Power Plant) Categories.TECH3 dont match TechLevel (RULEUTL_Basic) 
  Please change (General.TechLevel = 'RULEUTL_Basic',) to (General.TechLevel = 'RULEUTL_Secret',) in file [beb1302_unit.bp]

- Unit xspowerup (Retrofitted T2 Powergenerator) Categories.TECH2 dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Advanced',) in file [xspowerup_unit.bp]

- Unit brpbt1peri (HydroCarbon Perimeter Monitoring System) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [brpbt1peri_unit.bp]

- Unit ueb1402 (Experimental Mass Extractor) Categories.TECH3 dont match TechLevel (RULEUTL_Advanced) 
  Please change (General.TechLevel = 'RULEUTL_Advanced',) to (General.TechLevel = 'RULEUTL_Secret',) in file [ueb1402_unit.bp]

- Unit beb1106 (Mass & Energy Storage) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [beb1106_unit.bp]

- Unit uepowerup (Retrofitted T2 Powergenerator) Categories.TECH2 dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Advanced',) in file [uepowerup_unit.bp]

- Unit brobt1peri (HydroCarbon Perimeter Monitoring System) Categories.EXPERIMENTAL dont match TechLevel (RULEUTL_Secret) 
  Please change (General.TechLevel = 'RULEUTL_Secret',) to (General.TechLevel = 'RULEUTL_Experimental',) in file [brobt1peri_unit.bp]

Strategic Icons

 - Unit eurbmst3 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure3_mass',) in file [eurbmst3_unit.bp]
 
 - Unit xrb0404 (Engineering Station) StrategicIconName (icon_structure2_engineer) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure2_engineer',) to (StrategicIconName = 'icon_structure3_engineer',) in file [xrb0404_unit.bp]
 
 - Unit exsbest3 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure3_energy',) in file [exsbest3_unit.bp]
 
 - Unit euabmst3 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure3_mass',) in file [euabmst3_unit.bp]
 
 - Unit eurbmst2 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure2_mass',) in file [eurbmst2_unit.bp]
 
 - Unit euabmst2 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure2_mass',) in file [euabmst2_unit.bp]
 
 - Unit bab1106 (Mass & Energy Storage) StrategicIconName (icon_structure3_mass) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_mass',) to (StrategicIconName = 'icon_experimental_generic',) in file [bab1106_unit.bp]
 
 - Unit bsb1106 (Mass & Energy Storage) StrategicIconName (icon_structure3_mass) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_mass',) to (StrategicIconName = 'icon_experimental_generic',) in file [bsb1106_unit.bp]
 
 - Unit brb1106 (Mass & Energy Storage) StrategicIconName (icon_structure3_mass) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_mass',) to (StrategicIconName = 'icon_experimental_generic',) in file [brb1106_unit.bp]
 
 - Unit xab0104 (Engineering Station) StrategicIconName (icon_structure2_engineer) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure2_engineer',) to (StrategicIconName = 'icon_structure3_engineer',) in file [xab0104_unit.bp]
 
 - Unit xsb0104 (Engineering Station) StrategicIconName (icon_structure2_engineer) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure2_engineer',) to (StrategicIconName = 'icon_structure3_engineer',) in file [xsb0104_unit.bp]
 
 - Unit brnbt1peri (HydroCarbon Perimeter Monitoring System) StrategicIconName (icon_structure3_energy) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_energy',) to (StrategicIconName = 'icon_experimental_generic',) in file [brnbt1peri_unit.bp]
 
 - Unit euebmst2 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure2_mass',) in file [euebmst2_unit.bp]
 
 - Unit eurbest2 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure2_energy',) in file [eurbest2_unit.bp]
 
 - Unit brmbt1peri (HydroCarbon Perimeter Monitoring System) StrategicIconName (icon_structure3_energy) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_energy',) to (StrategicIconName = 'icon_experimental_generic',) in file [brmbt1peri_unit.bp]
 
 - Unit euebmst3 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure3_mass',) in file [euebmst3_unit.bp]
 
 - Unit exsbest2 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure2_energy',) in file [exsbest2_unit.bp]
 
 - Unit euabest2 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure2_energy',) in file [euabest2_unit.bp]
 
 - Unit exsbmst2 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (2) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure2_mass',) in file [exsbmst2_unit.bp]
 
 - Unit euabest3 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure3_energy',) in file [euabest3_unit.bp]
 
 - Unit brpbt1peri (HydroCarbon Perimeter Monitoring System) StrategicIconName (icon_structure3_energy) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_energy',) to (StrategicIconName = 'icon_experimental_generic',) in file [brpbt1peri_unit.bp]

 - Unit eurbest3 (Energy Storage) StrategicIconName (icon_structure1_energy) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_energy',) to (StrategicIconName = 'icon_structure3_energy',) in file [eurbest3_unit.bp]
 
 - Unit beb1106 (Mass & Energy Storage) StrategicIconName (icon_structure3_mass) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_mass',) to (StrategicIconName = 'icon_experimental_generic',) in file [beb1106_unit.bp]
 
 - Unit brobt1peri (HydroCarbon Perimeter Monitoring System) StrategicIconName (icon_structure3_energy) dont match TechLevel (4) 
   Please change (StrategicIconName = 'icon_structure3_energy',) to (StrategicIconName = 'icon_experimental_generic',) in file [brobt1peri_unit.bp]
 
 - Unit exsbmst3 (Mass Storage) StrategicIconName (icon_structure1_mass) dont match TechLevel (3) 
   Please change (StrategicIconName = 'icon_structure1_mass',) to (StrategicIconName = 'icon_structure3_mass',) in file [exsbmst3_unit.bp]

Display.Abilities

   Please Change "Display.Abilities" in file [xrb0404_unit.bp]
        Abilities = {
            '<LOC ability_engineeringsuite>Engineering Suite',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [exsbest3_unit.bp]
        Abilities = {
            '<LOC ability_deathaoe>Volatile',
            '<LOC ability_upgradable>Upgradable',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [fsb4401_unit.bp]
        Abilities = {
            '<LOC ability_shielddome>Shield Dome',
        },
        
   Please Change "Display.Abilities" in file [fab4401_unit.bp]
        Abilities = {
            '<LOC ability_shielddome>Shield Dome',
        },
        
   Please Change "Display.Abilities" in file [feb4401_unit.bp]
        Abilities = {
            '<LOC ability_jamming>Jamming',
            '<LOC ability_shielddome>Shield Dome',
        },
        
   Please Change "Display.Abilities" in file [bab1106_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [xeb0304_unit.bp]
        Abilities = {
            '<LOC ability_engineeringsuite>Engineering Suite',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [xsb1106_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
            '<LOC ability_upgradable>Upgradable',
        },
        
   Please Change "Display.Abilities" in file [bsb1106_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [brb1106_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [xab0104_unit.bp]
        Abilities = {
            '<LOC ability_engineeringsuite>Engineering Suite',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [xsb0104_unit.bp]
        Abilities = {
            '<LOC ability_engineeringsuite>Engineering Suite',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [exsbest2_unit.bp]
        Abilities = {
            '<LOC ability_deathaoe>Volatile',
            '<LOC ability_upgradable>Upgradable',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [exsbmst2_unit.bp]
        Abilities = {
            '<LOC ability_upgradable>Upgradable',
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [beb1106_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
        },
        
   Please Change "Display.Abilities" in file [frb4401_unit.bp]
        Abilities = {
            '<LOC ability_stealthfield>Radar Stealth Field',
            '<LOC ability_shielddome>Shield Dome',
        },
        
   Please Change "Display.Abilities" in file [xsb1105_unit.bp]
        Abilities = {
            '<LOC ability_deathaoe>Volatile',
            '<LOC ability_amphibious>Amphibious',
            '<LOC ability_upgradable>Upgradable',
        },
        
   Please Change "Display.Abilities" in file [exsbmst3_unit.bp]
        Abilities = {
            '<LOC ability_amphibious>Amphibious',
        },

Unit Animation file paths

 - Unit:(urb1402) - LOD[-1] AnimationUpgrade-File /units/urb1302/urb1302_Aupgrade.sca is missing on disk
   can't find AnimationUpgradeName on disk
   please delete AnimationUpgradeName in LOD[-1] ("/units/urb1302/urb1302_Aupgrade.sca")
 
 - Unit:(uab1401) - LOD[-1] AnimationDeath-File /units/uab1401/uab1401_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/uab1401/uab1401_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/units/uab1401/") to ("/mods/pj_infrastructure_pack/units/uab1401/uab1401_ADeath.sca") in file [uab1401_unit.bp]
 
 - Unit:(xrb0404) - LOD[-1] AnimationOpen-File /units/XRB0404/XRB0404_Aopen.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/xrb0404/XRB0404_Aopen.sca") on disk.
   please change AnimationOpenName in LOD[-1] from ("/units/XRB0404/") to ("/mods/pj_infrastructure_pack/units/xrb0404/XRB0404_Aopen.sca") in file [xrb0404_unit.bp]
 
 - Unit:(fsb4401) - LOD[-1] AnimationActivate-File /mods/Shields/units/FSB4401/FSB4401_Aactivate.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/fsb4401/FSB4401_Aactivate.sca") on disk.
   please change AnimationActivateName in LOD[-1] from ("/mods/Shields/units/FSB4401/") to ("/mods/pj_infrastructure_pack/units/fsb4401/FSB4401_Aactivate.sca") in file [fsb4401_unit.bp]
 
 - Unit:(fsb4401) - LOD[-1] AnimationDeath-File /mods/Shields/units/FSB4401/FSB4401_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/fsb4401/FSB4401_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/mods/Shields/units/FSB4401/") to ("/mods/pj_infrastructure_pack/units/fsb4401/FSB4401_ADeath.sca") in file [fsb4401_unit.bp]
 
 - Unit:(fab4401) - LOD[-1] AnimationOpen-File /units/FAB4401/FAB4401_aopen.sca is missing on disk
   can't find AnimationOpenName on disk
   please delete AnimationOpenName in LOD[-1] ("/units/FAB4401/FAB4401_aopen.sca")
 
 - Unit:(fab4401) - LOD[-1] AnimationDeath-File /units/FAB4401/FAB4401_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/fab4401/FAB4401_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/units/FAB4401/") to ("/mods/pj_infrastructure_pack/units/fab4401/FAB4401_ADeath.sca") in file [fab4401_unit.bp]
 
 - Unit:(xeb0304) - LOD[-1] AnimationOpen-File /units/XEB0304/XEB0304_aopen.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/xeb0304/XEB0304_aopen.sca") on disk.
   please change AnimationOpenName in LOD[-1] from ("/units/XEB0304/") to ("/mods/pj_infrastructure_pack/units/xeb0304/XEB0304_aopen.sca") in file [xeb0304_unit.bp]
 
 - Unit:(xab0104) - LOD[-1] AnimationOpen-File /units/XAB0104/XAB0104_Aopen.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/xab0104/XAB0104_Aopen.sca") on disk.
   please change AnimationOpenName in LOD[-1] from ("/units/XAB0104/") to ("/mods/pj_infrastructure_pack/units/xab0104/XAB0104_Aopen.sca") in file [xab0104_unit.bp]
 
 - Unit:(xsb0104) - LOD[-1] AnimationOpen-File /units/XSB0104/XSB0104_Aopen.sca is missing on disk
   can't find AnimationOpenName on disk
   please delete AnimationOpenName in LOD[-1] ("/units/XSB0104/XSB0104_Aopen.sca")
 
 - Unit:(xsb1401) - LOD[-1] AnimationDeath-File /units/xsb1401/xsb1401_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/xsb1401/xsb1401_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/units/xsb1401/") to ("/mods/pj_infrastructure_pack/units/xsb1401/xsb1401_ADeath.sca") in file [xsb1401_unit.bp]
 
 - Unit:(euabest3) - LOD[1] Albedo-File /mods/pj_infrastructure_pack/units/euabest3/euabest2_lod1_albedo.dds is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/euabest3/euabest3_lod1_Albedo.dds") on disk.
   please change AlbedoName in LOD[1] from ("/mods/pj_infrastructure_pack/units/euabest3/") to ("/mods/pj_infrastructure_pack/units/euabest3/euabest3_lod1_Albedo.dds") in file [euabest3_unit.bp]
 
 - Unit:(euabest3) - LOD[1] Specular-File /mods/pj_infrastructure_pack/units/euabest3/euabest2_lod1_specteam.dds is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/euabest3/euabest3_lod1_SpecTeam.dds") on disk.
   please change SpecularName in LOD[1] from ("/mods/pj_infrastructure_pack/units/euabest3/") to ("/mods/pj_infrastructure_pack/units/euabest3/euabest3_lod1_SpecTeam.dds") in file [euabest3_unit.bp]
 
 - Unit:(xspowerup) - LOD[-1] AnimationDeath-File /units/xspowerup/xspowerup_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/xspowerup/xspowerup_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/units/xspowerup/") to ("/mods/pj_infrastructure_pack/units/xspowerup/xspowerup_ADeath.sca") in file [xspowerup_unit.bp]
 
 - Unit:(ueb1402) - LOD[-1] AnimationUpgrade-File /mods/PJ_Infrastructure_Pack/units/ueb1402/ueb1402_Aupgrade.sca is missing on disk
   can't find AnimationUpgradeName on disk
   please delete AnimationUpgradeName in LOD[-1] ("/mods/PJ_Infrastructure_Pack/units/ueb1402/ueb1402_Aupgrade.sca")
 
 - Unit:(brobt1peri) - LOD[-1] AnimationDeath-File /mods/TotalMayhem/units/BROBT1PERI/BROBT1PERI_death.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/brobt1peri/brobt1peri_death.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/mods/totalmayhem/units/brobt1peri/brobt1peri_death.sca") to ("/mods/pj_infrastructure_pack/units/brobt1peri/brobt1peri_death.sca") in file [brobt1peri_unit.bp]
 
 - Unit:(uapowerup) - LOD[-1] AnimationDeath-File /units/uapowerup/uapowerup_ADeath.sca is missing on disk
   found file ("/mods/pj_infrastructure_pack/units/uapowerup/uapowerup_ADeath.sca") on disk.
   please change AnimationDeathName in LOD[-1] from ("/units/uapowerup/") to ("/mods/pj_infrastructure_pack/units/uapowerup/uapowerup_ADeath.sca") in file [uapowerup_unit.bp]

Sound errors:

 - Unit xspowerup Name: Uya-iya (Retrofitted T2 Powergenerator) has Audio
   Error playing SoundName: "ActiveLoop" - cue: "XSpowerup_Active" | bank: "XSB"
   Error playing SoundName: "DoneBeingBuilt" - cue: "XSpowerup_Activate" | bank: "XSB"

 - Unit urpowerup Name: Unknown (Retrofitted T2 Powergenerator) has Audio
   Error playing SoundName: "ActiveLoop" - cue: "URpowerup_Active" | bank: "URB"
   Error playing SoundName: "DoneBeingBuilt" - cue: "URpowerup_Activate" | bank: "URB"

 - Unit uepowerup Name: EG - 200 Fusion Reactor (Retrofitted T2 Powergenerator) has Audio
   Error playing SoundName: "ActiveLoop" - cue: "UEpowerup_Active" | bank: "UEB"
   Error playing SoundName: "DoneBeingBuilt" - cue: "UEpowerup_Activate" | bank: "UEB"
   Error playing SoundName: "UISelection" - cue: "UEF_Select_Resource" | bank: "Interface"

 - Unit uapowerup Name: Unknown (Retrofitted T2 Powergenerator) has Audio
   Error playing SoundName: "ActiveLoop" - cue: "UApowerup_Active" | bank: "UAB"
   Error playing SoundName: "DoneBeingBuilt" - cue: "UApowerup_Activate" | bank: "UAB"

CustomUnits.lua:

Those tables are not working:

EnergyStorage = {
        UEF = {'beb1106', 50}, -- Atlas (Mass & Energy Storage)
        Cybran = {'brb1106', 50}, -- Stain (Mass & Energy Storage)
        Aeon = {'bab1106', 50}, -- Vajun (Mass & Energy Storage)
        Seraphim = {'bsb1106', 50}, -- Orba (Mass & Energy Storage)
        Aeon = {'euabest2', 50},
        Aeon = {'euabest3', 50},
        UEF = {'euebest2', 50},
        UEF = {'euebest3', 50},
        Cybran = {'eurbest2', 50},
        Cybran = {'eurbest3', 50},
        Seraphim = {'exsbest2', 50},
        Seraphim = {'exsbest3', 50},
    },

you can only set one building per faction:

EnergyStorage = {
        UEF = {'beb1106', 50}, -- Atlas (Mass & Energy Storage)
        Cybran = {'brb1106', 50}, -- Stain (Mass & Energy Storage)
        Aeon = {'bab1106', 50}, -- Vajun (Mass & Energy Storage)
        Seraphim = {'bsb1106', 50}, -- Orba (Mass & Energy Storage)
    },
EnergyStorage = {
        UEF = {'euebest2', 50},
        Aeon = {'euabest2', 50},
        Cybran = {'eurbest2', 50},
        Seraphim = {'exsbest2', 50},
    },
EnergyStorage = {
        UEF = {'euebest2', 50},
        Aeon = {'euabest3', 50},
        Cybran = {'eurbest3', 50},
        Seraphim = {'exsbest3', 50},
    },

Every EnergyStorage table needs its own file, you can't store them all in the same file.
Additional help for customunits can be found here:
https://forums.faforever.com/viewtopic.php?f=41&t=14688

@uveso Thanks, will have a look at these issues.
Extractor upgrade has been fixed. and it is working fine with this builder requirement:

{ EBC, 'GreaterThanEconIncome', { 5.0, 200.0 } },

Not sure how to fix this and where this error came from. Why T1 engineer want to build T3 building?

WARNING: *AIExecuteBuildStructure: TECH1 Unit "euebest3" is assigned to build TECH3 buildplatoon! ("EnergyStorage")

So, i've just made all storages (excluded T1) not buildable and just upgradable from T1. Is it any other way to fix this issue?

Some missmatch in General.TechLevel has been corrected.

Strategic icons has been corrected.

Display.Abilities has been corrected.

Sound errors has been fixed by repointing to original T2 power generator sounds.

Animation file paths has been fixed.

CustomUnits.lua has been corrected as these buildings are no longer buildable and only upgradable. Is this connected to issue where T1 engineer trying to build T3 building?

Or alternatively can i define storages in this way in Customunits.lua?

ExperimentalEnergyStorage = {
       UEF = {'beb1106', 50}, -- Atlas (Mass & Energy Storage)
       Cybran = {'brb1106', 50}, -- Stain (Mass & Energy Storage)
       Aeon = {'bab1106', 50}, -- Vajun (Mass & Energy Storage)
       Seraphim = {'bsb1106', 50}, -- Orba (Mass & Energy Storage)
   },
T2EnergyStorage = {
       UEF = {'euebest2', 50},
       Aeon = {'euabest2', 50},
       Cybran = {'eurbest2', 50},
       Seraphim = {'exsbest2', 50},
   },
T3EnergyStorage = {
       UEF = {'euebest3', 50},
       Aeon = {'euabest3', 50},
       Cybran = {'eurbest3', 50},
       Seraphim = {'exsbest3', 50},
   },

Will this eliminate issue with T1 engineer trying to build T3 building?

Thanks.

@Uveso Hi Uveso. Thank you for your help. All has been fixed.
I've removed experimental storages from this mod (taken from BlackOps). Is it OK to pablish this mod or you can see other reasons againt publishing? I think it is a unique mod as i've tried to balance it and only similar mod is Jagers infrastructure pack(based on Upgraded Power Generators, More Storage and Upgraded HC plant) and Shields, but without AI support and with overpowered units.
Regards.