Page 2 of 5 FirstFirst 12345 LastLast
Results 51 to 100 of 214

The Ultimate 'How to make a new Faction' Tutorial!

  1. #51

    25. Since we cannot use the "starting_squads" in "starting_positions", we need to do a walk around. There is one, a smart one invented by someone in the EF team long ago (my guess is Cope, but I'm not sure!). Open data > data > scar > winconditions > "zannihilate.lua". In there add the following AFTER "g_CheckAnnihilate = true" ADD
    Works only for anihilation win condition in VP doesn't work.

  2. #52
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Sorry, but in this forum English is the language.

  3. #53
    Member
    Join Date
    Mar 2010
    Location
    Stuttgart
    He meant that he wanted to create a new fraction for the allies, but when he start the game, it crashed with a " Fatal KI Error".
    then he asked if he have to insert any KI files.

  4. #54
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Oh I know that language. It's my own.
    Last edited by Jagdpanther; 10th May 10 at 12:36 PM.

  5. #55
    Normally Fatal AI Error is when there is missing value or file that doesn't exist in race folder. First thing you need to do is check your warning logs (SCAR,AI and warning.log) if there is not anything useful I recommend to check wcutil.scar and especially luaconst.scar (fault is lying the most in second file probably)

  6. #56
    Member
    Join Date
    Mar 2010
    Location
    Stuttgart
    i know , location: Berlin, but for the other's

  7. #57
    ooh sorry dont know that this forum is in english ok i ll check them and report u then

    Edit: ok emmh i had tested a game without my new faction ... badly there is the same error where i can find the warning.log and the other fiels u discriped??? emmh the file i had to downlaod .. emmh i cant open it with corsix is it right???
    Last edited by berse2212; 10th May 10 at 12:30 PM.

  8. #58
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    The log files are normal text files so you can open these with an standard text editor of your choice.

    The warnings.log itself you can find here: "C:\Eigene Dateien\My Games\Company of Heroes" the rest in the subdir of them in "LogFiles".

  9. #59
    Logs should be in My documents\my games\company of heroes\LogFiles.

    As I said probably you made mistake in luaconst.scar with adding sbps and ebps with critical structures to list for new army. That error will affect all armies unless you will repair it

    EDIT: File that you need download is for panzer elite and you need to extract it with winzip or any other program and put all files to
    "Data\art\ui" in your mod folder (it should be in your coh location) if those folders doesn't exist- make them and put there those files. Oh and don't modify them

  10. #60
    in the log file is this text :

    Error loading script file 'data:AI{default.ai' for race insert-race-here!

  11. #61
    So you mess up with luaconst.scar
    check if:
    -units in luaconst are in race folder
    -Every army in luaconst have their shortcut that opens list and is used to localization in wcutil.scar and critical structers in later part of luaconst. For example


    -- *** ALLIES SBPS ***
    ALLIES = {


    Those shortcuts can't be same for more than one army in same time- treat it like mathematical function. You can add instead of it any other shortcut

  12. #62
    i had checkt htis and corrected it but now there is this error :


    -- Log file for all error messages related to the Scar --

    Starting SCAR...

    *FATAL SCAR ERROR: Cannot find "abilities/soviets_throw_cocktail.lua"
    main LuaConsts.scar Ln 1292 ((null))
    C =[C] Ln -1 (import)
    main ScarUtil.scar Ln 6 ((null))
    C =[C] Ln -1 (import)
    main wcutil.scar Ln 1 ((null))


    main ScarUtil.scar Ln 6 ((null))
    C =[C] Ln -1 (import)
    main wcutil.scar Ln 1 ((null))


    main wcutil.scar Ln 1 ((null))

    *FATAL SCAR ERROR: Error loading script file (Data:scar\wcutil.scar). Check script syntax!
    Shutting Down SCAR...

    but when i checkt the folder i found out it exist so what now????

  13. #63
    Looks like you made small mistake, but what to do has wcutil.scar with it- I don't know- this file only contains buildings that needed to be assigned as "live" in game

    "abilities/soviets_throw_cocktail.lua"

    "/" when I checked abilities paths are "abilities\sov...."

  14. #64
    ok thx i have solve all problems thx all for help

  15. #65
    Member Uccido's Avatar
    Join Date
    Aug 2009
    Location
    The Armoury
    one slight problem i cant seem to get around.

    13:39:41.33 GameObj::OnFatalScarError: [string "TESTMOD\DATA\scar\wcutil.scar"]:306: attempt to index field '?' (a nil value)

    line 306 is
    if Entity_HasUpgrade(eid, _Annihilate[race].AMBIENT) then

    appears to be a check for holding control points or forward HQs in supply (unsure at this point)

    the "?" in question is referring to the race i think, however trace etc is all setup correctly, with full ebps/sbps/upg/etc assigned correctly.

    any clues?
    The Weapon Emporium
    Chevalier Entertainment on Youtube
    Chevalier Entertainment on Facebook
    Pax in Bello - Peace in War. The best possible family motto.

  16. #66
    Post your new faction part of wcutil.scar
    War... War Never Changes...

  17. #67
    Member Uccido's Avatar
    Join Date
    Aug 2009
    Location
    The Armoury
    wcutil:

    Code:
    import("ScarUtil.scar")
    
    s_delaytime_after_loss = 5 -- amount of seconds that will go by before triggering game end
    
    s_team_death_time = {}
    
    --? @shortdesc If only one team is alive, players on that team win.  Returns true if one team left.
    --? @args String win_condition
    --? @result Boolean
    function WC_CheckOneTeamLeft( win_condition )
    	local count = World_GetPlayerCount()
    	if count >= 1 then
    		local team_first = -1
    		local player_alive
    		
    		for i = 1, count do
    			local player = World_GetPlayerAt(i)
    			
    			if Player_IsAlive(player) then
    				if team_first == -1 then
    					player_alive = player;
    					team_first = Player_GetTeam( player )
    				else
    					local team = Player_GetTeam( player )
    					if( team ~= team_first ) then
    						return;
    					end
    				end
    			end
    		end
    		
    		if player_alive ~= nil then
    			World_SetPlayerWin( player_alive, win_condition)
    		end
    	end
    	World_SetGameOver()
    end
    
    function WC_RemoveUnusedObjects()
    
    	-- if this flag exists this means that VP game conditions have been loaded and this function should be skipped
    	if (g_VPConditionsLoaded == nil or g_VPConditionsLoaded == false) then
    		
    		-- get all the VP points
    		local count = World_GetNumEntities()
    		
    		print(count)
    		
    		for i=0,(count-1) do
    			local entityid = World_GetEntity( i )
    			
    			if (Entity_IsVictoryPoint(entityid)==true) then
    				Entity_Destroy( entityid )
    			end
    		end
    	end
    	
    	TimeRule_RemoveMe()
    end
    
    
    _Annihilate = 
    {
    	g_NumSquads = 999999
    }
    
    -- the Allied stuff
    
    _Annihilate["allies"] = 
    {
    	EBPS = 
    	{
    		EBP.ALLIES.HQ,
    		EBP.ALLIES.HQ2,
    		EBP.ALLIES.HQ3,
    		EBP.ALLIES.HQ4,
    		EBP.ALLIES.HQ5,
    		EBP.ALLIES.HQ6,
    		EBP.ALLIES.HQ7,
    		EBP.ALLIES.HQ8,
    		EBP.ALLIES.BARRACKS,
    		EBP.ALLIES.ARMORY,
    		EBP.ALLIES.MOTORPOOL,
    		EBP.ALLIES.TANK_DEPOT,
    		EBP.ALLIES.QUARTER_MASTER,
    		EBP.ALLIES.TRIAGE,
    		EBP.ALLIES.MG_NEST,
    	},
    	SBPS = {},
    	AMBIENT = UPG.ALLIES.CONVERT_AMBIENT_BUILDING,
    }
    -- the Axis stuff
    _Annihilate["axis"] = 
    {
    	EBPS = 
    	{
    		EBP.AXIS.HQ,
    		EBP.AXIS.HQ2,
    		EBP.AXIS.HQ3,
    		EBP.AXIS.HQ4,
    		EBP.AXIS.HQ5,
    		EBP.AXIS.HQ6,
    		EBP.AXIS.HQ7,
    		EBP.AXIS.HQ8,		
    		EBP.AXIS.QUARTERS,
    		EBP.AXIS.BARRACKS,
    		EBP.AXIS.ARMORY,
    		EBP.AXIS.COMMAND,
    		EBP.AXIS.KAMPFKRAFT,
    		EBP.AXIS.BUNKER,
    		BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_starting_position.lua"),
    	},
    	SBPS = {},
    	AMBIENT = UPG.AXIS.CONVERT_AMBIENT_BUILDING
    }
    
    -- the Allied stuff
    
    _Annihilate["allies_usmc"] = 
    {
    	EBPS = 
    	{
    		EBP.allies_usmc.HQ,
    		EBP.allies_usmc.HQ2,
    		EBP.allies_usmc.HQ3,
    		EBP.allies_usmc.HQ4,
    		EBP.allies_usmc.HQ5,
    		EBP.allies_usmc.HQ6,
    		EBP.allies_usmc.HQ7,
    		EBP.allies_usmc.HQ8,
    		EBP.allies_usmc.BARRACKS,
    		EBP.allies_usmc.ARMORY,
    		EBP.allies_usmc.MOTORPOOL,
    		EBP.allies_usmc.TANK_DEPOT,
    		EBP.allies_usmc.QUARTER_MASTER,
    		EBP.allies_usmc.TRIAGE,
    		EBP.allies_usmc.MG_NEST,
    	},
    	SBPS = {},
    	AMBIENT = UPG.ALLIES_USMC.CONVERT_AMBIENT_BUILDING,
    }
    -- the axis_ija stuff
    _Annihilate["axis_ija"] = 
    {
    	EBPS = 
    	{
    		EBP.axis_ija.HQ,
    		EBP.axis_ija.HQ2,
    		EBP.axis_ija.HQ3,
    		EBP.axis_ija.HQ4,
    		EBP.axis_ija.HQ5,
    		EBP.axis_ija.HQ6,
    		EBP.axis_ija.HQ7,
    		EBP.axis_ija.HQ8,		
    		EBP.axis_ija.QUARTERS,
    		EBP.axis_ija.BARRACKS,
    		EBP.axis_ija.ARMORY,
    		EBP.axis_ija.COMMAND,
    		EBP.axis_ija.KAMPFKRAFT,
    		EBP.axis_ija.BUNKER,
    		BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/axis_bunker_starting_position.lua"),
    	},
    	SBPS = {},
    	AMBIENT = UPG.AXIS_IJA.CONVERT_AMBIENT_BUILDING,
    }
    
    -- the Panzer Elite stuff
    
    _Annihilate["axis_panzer_elite"] = 
    {
    	EBPS = 
    	{
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_2.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_3.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_4.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_5.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_6.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_7.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_8.lua"),
    		BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun_starting.lua"),
    		EBP.ELITE.PANZERJAGER,
    		EBP.ELITE.LOGISTIK,
    		EBP.ELITE.KAMPFGRUPPE,
    		EBP.ELITE.PANZER_ARTILLERIE,
    	},
    	SBPS = 
    	{
    		BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad_starting_position.lua"),
    	},
    	AMBIENT = UPG.ELITE.CONVERT_AMBIENT_BUILDING,
    }
    
    -- the Commonwealth stuff
    
    _Annihilate["allies_commonwealth"] = 
    {
    	EBPS =
    	{
    		EBP.CW.ANTITANK_NEST,
    		BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/bofors_gun_nest.lua"),		
    		EBP.CW.HOWITZER_NEST,
    		EBP.CW.MG_NEST,
    		EBP.CW.MORTAR_NEST,
    		BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider.lua"),
    		BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_hq.lua"),
    		BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_tetrarch.lua"),
    	},
    	SBPS =
    	{
    		SBP.CW.HQ,
    		SBP.CW.HQ_REINFORCEMENT,
    		SBP.CW.ARMOUR_HQ,
    		SBP.CW.INFANTRY_HQ
    	},
    	AMBIENT = UPG.CW.CONVERT_AMBIENT_BUILDING,
    }
    
    
    
    function WC_CheckEndGame()
    	-- if this flag is set then we care about annihilate
    	if (g_CheckAnnihilate ~= nil and g_CheckAnnihilate == true) then
    	
    		-- initialize team data
    		local _anniTeamStatus = {}
    		local _teamCount = {}
    		local _teamAITakeoverCount = {} -- stores the number of AI take-over players per team (AIs that have taken over for dropped humans)
    		local _teamHumanCount = {} -- stores the number of human players per team 
    		
    		-- foreach player, count the number of remaining buildings that we're interested in
    		local player_count = World_GetPlayerCount()
    		for i = 1, player_count do
    			local player = World_GetPlayerAt(i)
    			local team = Player_GetTeam( player )
    			local race = Player_GetRaceName(player)
    			
    			-- delay init
    			if _teamCount[team] == nil then
    				_teamCount[team] = 1
    			else
    				_teamCount[team] = _teamCount[team] + 1
    			end
    			
    			if _teamAITakeoverCount[team] == nil then
    				_teamAITakeoverCount[team] = 0
    			end
    			
    			if _teamHumanCount[team] == nil then
    				_teamHumanCount[team] = 0
    			end
    			
    			local AIplayerInitType = Player_GetAIType( player )
    			
    			-- possible types: 
    				--AII_None
    				--AII_Normal, 
    				--AII_LocalHumanTakeover, 
    				--AII_RemoteAITakeover, 
    				--AII_RemoteHumanTakeover
    			if AIplayerInitType == AII_RemoteHumanTakeover then	
    			
    				_teamAITakeoverCount[team] = _teamAITakeoverCount[team] + 1
    				
    			elseif AIplayerInitType == 0 then
    			
    				_teamHumanCount[team] = _teamHumanCount[team] + 1
    			end
    			
    			--is the player alive
    			if Player_IsAlive(player) then
    				
    				-- go through all the entities that the player owns and keep the ones we care about
    				local interestingBuildings = 0
    				local interestingSquads = 0
    				
    				local _FilterSquads = function(gid, idx, sid)
    					local sidBP = Squad_GetBlueprint(sid)
    					
    --					print("checking player "..i.." of race "..race.." of squad " .. BP_GetName(sidBP))
    					
    					local keep = false
    
    					for k,v in pairs(_Annihilate[race].SBPS) do
    						if v == sidBP then
    							keep = true;
    							break
    						end
    					end			
    					
    					if keep then
    						--print("player "..i.." of race "..race.." has a " .. BP_GetName(sidBP))
    						interestingSquads = interestingSquads + 1
    					end					
    					
    				end
    
    				local _FilterEntities = function(gid, idx, eid)
    					local eidBP = Entity_GetBlueprint(eid)
    
    --					print("checking player "..i.." of race "..race.." of entity " .. BP_GetName(eidBP))
    					
    					local keep = false
    
    					-- is this an upgraded ambient building
    					if Entity_HasUpgrade(eid, _Annihilate[race].AMBIENT) then
    						-- we only care if that building is in supply
    						if World_IsInSupply( player, Entity_GetPosition(eid) ) then
    							-- yup, count that one
    							keep = true
    						end
    					else
    						-- we only care for a few types of 'buildings'
    						for k,v in pairs(_Annihilate[race].EBPS) do
    							if v == eidBP then
    								keep = true;
    								break
    							end
    						end
    					end
    
    					-- keep it?
    					if keep then
    						--print("player "..i.." of race "..race.." has a " .. BP_GetName(eidBP))
    						interestingBuildings = interestingBuildings + 1
    					end
    				end
    				
    				local numSquads = Player_GetSquadCount(player);
    				EGroup_ForEach(Player_GetEntities(player), _FilterEntities)
    				SGroup_ForEach(Player_GetSquads(player), _FilterSquads)
    
    				-- check if the player still has some buildings that we care about
    				if (interestingBuildings > 0) or (interestingSquads > 0) or (numSquads >= _Annihilate.g_NumSquads) then
    					--print("player "..i.." of race "..race.." has " .. interestingBuildings .. " buildings")
    					_anniTeamStatus[ team ] = true
    					
    				else
    					--print("player "..i.." of race "..race.." has NO interesting buildings or squads")
    					--leave the table empty
    					if (s_team_death_time[ team ]==nil) then
    						s_team_death_time[ team ] = World_GetGameTime() + s_delaytime_after_loss
    					end
    				end
    			end
    		end
    		
    		-- find teams left with only AI players that have taken over for dropped humans
    		
    
    		-- kill players from teams that have been annihilated
    		for i = 1, player_count do
    			local player = World_GetPlayerAt(i);
    			if Player_IsAlive( player ) then
    				local team = Player_GetTeam( player )
    
    				local onlyDeadHumansLeft = _teamAITakeoverCount[team] == _teamCount[team]
    				local stopMixedGame = _teamHumanCount[team] == 0 and _teamAITakeoverCount[team] > 0
    				local deathTimeOk = s_team_death_time[ team ] ~= nil and s_team_death_time[ team ] <= World_GetGameTime() 
    				
    				--print( " num aitakeovers: " .. _teamAITakeoverCount[team] )
    				--print( " num humans: " .. _teamHumanCount[team] )
    				
    				if (not _anniTeamStatus[ team ] and deathTimeOk) then
    					print("WC_CheckEndGame: Annihilate: killing a player from team: " .. team )
    					Player_Kill( player, true );			
    				elseif onlyDeadHumansLeft then
    					print("WC_CheckEndGame: Annihilate: killing a take-over AI from team: " .. team )
    					Player_Kill( player, true );		
    				elseif stopMixedGame then
    					print("WC_CheckEndGame: Annihilate: killing AI & take-over AI from team: " .. team )
    					Player_Kill( player, true );			
    				end				
    			end
    		end		
    		
    	end
    
    	-- always check if only one team left 
    	WC_CheckOneTeamLeft("ZANNIHILATE");
    end
    
    function WC_InitGameCheck()
    
    	-- sign up for death events from all players
    	local player_count = World_GetPlayerCount();
    
    	for i = 1,player_count
    	do
    		local player = World_GetPlayerAt(i);
    		EventRule_AddPlayerEvent(WC_OnPlayerKilled, player, GE_PlayerKilled)
    	end
    	
    	-- check to see if the MP map has added an override
    	if (WinConditionOverride) then
    		WinConditionOverride()
    	end
    
    	-- also add a periodic check
    	TimeRule_AddInterval(WC_CheckEndGame, 1, 0)
    end
    
    function WC_OnPlayerKilled()
    	print("WC_OnPlayerKilled")
    	WC_CheckEndGame()
    end
    
    Scar_AddInit(WC_RemoveUnusedObjects);
    Scar_AddInit(WC_InitGameCheck);
    LUAconsts:

    Code:
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    --
    -- LUA CONSTANTS
    -- Defines variables to be used for important Lua defined contsants
    --
    -- 
    -- (c) 2007 Relic Entertainment
    --
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    
    TRACE_ALLIES = "allies"
    TRACE_ALLIES_COMMONWEALTH = "allies_commonwealth"
    TRACE_AXIS = "axis"
    TRACE_AXIS_PANZER_ELITE = "axis_panzer_elite"
    TRACE_AXIS_IJA = "axis_ija"
    TRACE_ALLIES_USMC = "allies_usmc"
    
    TSIDE_ALLIES = "allies"
    TSIDE_AXIS = "axis"  
    
    -- constants used for event priorities
    EVENT_NIS = 0
    EVENT_INTEL = 1
    EVENT_AMBIENT = 2
    
    -- constants used for overriding options
    OPTION_EVENT_CUES			= "SquadEventCues"
    OPTION_SQUAD_CONTROL		= "SquadControl"
    OPTION_STICKY_SELECTION		= "StickySelection"
    OPTION_MOUSE_SCROLL 		= "MouseScroll"
    
    CWHQ_MOBILE = true
    CWHQ_STATIC = false
    
    --[[ SBPS ]]
    -- example of use: SBP.AIRBOURNE
    SBP = {
    	__scardoc_enum = true,
    	
    	-- *** ALLIES SBPS ***
    	ALLIES = {
    		
    		--infantry
    		RIFLEMEN						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad.lua"),
    		SNIPER							= BP_GetSquadBlueprint("sbps/races/allies/soldiers/sniper_squad.lua"),
    		ENGINEER						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/engineer_infantry.lua"),
    		PARATROOPER 					= BP_GetSquadBlueprint("sbps/races/allies/soldiers/airborne_infantry.lua"),
    		HEAVYMG							= BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_machine_gun_section.lua"),
    		PARATROOPER_HEAVYMG_SP			= BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_machine_gun_section_airborne_sp.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/allies/soldiers/mortar_section.lua"),
    		PARATROOPER_MORTAR_SP			= BP_GetSquadBlueprint("sbps/races/allies/soldiers/mortar_section_airborne_sp.lua"),
    		PARATROOPER_REINF_SP			= BP_GetSquadBlueprint("sbps/races/allies/soldiers/airborne_infantry_reinforcement_sp.lua"),
    		RANGER							= BP_GetSquadBlueprint("sbps/races/allies/soldiers/ranger_team.lua"),
    		RANGER_SP_BAZOOKA				= BP_GetSquadBlueprint("sbps/races/allies/soldiers/ranger_team_sp_bazooka.lua"),
    		PARATROOPER_AT_57MM 			= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m1_57mm_at_squad_paradrop.lua"),
    		CAPTURE_AT						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_at_gun.lua"),
    		CAPTURE_88						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_88.lua"),
    		RIFLEMEN_TUTORIAL_SP			= BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad_sp_tutorial.lua"),
    		MEDIC_SP						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad_sp_medic.lua"),
    		OFFICER							= BP_GetSquadBlueprint("sbps/races/allies/soldiers/command_platoon.lua"),
    		
    		--vehicles
    		T17							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/t17_armoured_car_squad.lua"),
    		JEEP							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/jeep_squad.lua"),
    		AT_57MM							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m1_57mm_at_squad.lua"),
    		HOWITZER						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m2a1_105mm_howitzer_squad.lua"),
    		HALFTRACK						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m3_halftrack_squad.lua"),
    		SHERMAN							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad.lua"),
    		CROCODILE						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad_crocodile.lua"),
    		CALLIOPE						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad_calliope.lua"),
    		GREYHOUND						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m8_greyhound_squad.lua"),
    		M10							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m10_tank_destroyer.lua"),
    		HELLCAT							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m18_hellcat.lua"),
    		PERSHING						= BP_GetSquadBlueprint("sbps/races/allies/vehicles/m26_pershing_heavy_tank.lua"),
    		TRUCK							= BP_GetSquadBlueprint("sbps/races/allies/vehicles/deuce_and_a_half_cckw_squad.lua"),
    	},
    			
    	--*** AXIS SBPS ***
    	AXIS = {
    		--infantry
    		GRENADIER						= BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad.lua"),
    		VOLKSGRENADIER					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad.lua"),
    		VOLKS_2PANZERF					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad_2_panzerfausts_sp.lua"),
    		HEAVYMG							= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section.lua"),
    		KNIGHTSCROSS					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/knights_cross_holder.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/axis/soldiers/mortar_section.lua"),
    		OFFICER							= BP_GetSquadBlueprint("sbps/races/axis/soldiers/officer_squad.lua"),
    		PIONEER							= BP_GetSquadBlueprint("sbps/races/axis/soldiers/pioneer_squad.lua"),
    		SNIPER							= BP_GetSquadBlueprint("sbps/races/axis/soldiers/sniper.lua"),
    		STORMTROOPER					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/stormtrooper_squad.lua"),
    		CAPTURE_88						= BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_88.lua"),	-- VALIDATE
    		CAPTURE_88_AXIS					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_88_axis.lua"),	
    		CAPTURE_AT_AXIS					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_axis_at_gun_axis.lua"),
    		CAPTURE_QUAD_20_AXIS			= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    		CAPTURE_MORTAR_AXIS				= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_mortar_axis.lua"),	
    		HEAVYMG_SP_NOSUP				= BP_GetSquadBlueprint("sbps/races/axis/soldiers/sp/sp_gen_heavy_machine_gun_section_no_suppression.lua"),
    		HEAVYMG_M03						= BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section_sp_m03.lua"),		
    		GRENADIER_MG42_SP				= BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad_2_mg42_sp.lua"),
    	
    		--vehicles
    		PAK_38							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/50mm_pak38.lua"),
    		FLAK_88							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad.lua"),
    		FLAK_88_SP						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad_sp_caen.lua"),
    		NEBELWERFER						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/150mm_nebelwerfer.lua"),
    		AA_20MM							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/flak38_quad20mm_aagun_squad.lua"),
    		GOLIATH							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    		HALFTRACK						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad.lua"),
    		HALFTRACK_FLAME					= BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_flammenwerfer.lua"),
    		HALFTRACK_STUKA					= BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_stuka.lua"),
    		MOTORCYCLE						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/motorcycle_squad.lua"),
    		OPELBLITZ						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/opel_blitz_squad.lua"),
    		OSTWIND							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/ostwind_flak_panzer_squad.lua"),
    		PANTHER							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/panther_squad.lua"),
    		PANZER							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/panzer_iv_squad.lua"),
    		PUMA							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/sdkfz_234_armoured_car_squad.lua"),
    		STUG							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/stug_iv_squad.lua"),
    		TIGER							= BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_squad.lua"),
    		KING_TIGER						= BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_ace_squad.lua"),
    		SCHWIMMWAGEN					= BP_GetSquadBlueprint("sbps/races/axis/vehicles/axis_schwimmwagen.lua"),
    	},
    	
    	--*** COMMON WEALTH ***
    	CW = {
    		
    		--infantry
    		COMMANDOS_MG					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_hmg_squad.lua"),
    		CAPTAIN							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/captain.lua"),
    		LIEUTENANT						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/lieutenant.lua"),
    		COMMANDOS						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad.lua"),
    		SAPPER							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/sapper_squad.lua"),
    		TOMMIES							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/tommy_squad.lua"),
    		TOMMIES_CANADIAN_SP				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/tommy_squad_canadian.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/mortar_section.lua"),
    		VICKERSMG						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_machine_gun_section.lua"),
    		VICKERS_MG_SP					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/vickers_mmg_section_mobile.lua"),
    		COMMANDOS_MORTAR				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_mortar_squad.lua"),
    		COMMANDOS_PIAT					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_piat_squad.lua"),
    		COMMANDOS_MG42_SP				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_mg42_sp.lua"),
    		COMMANDOS_PARATROOPER_SP		= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_paratrooper_squad_sp.lua"),
    		COMMANDOS_NOVETRANCY_SP			= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_no_veterancy_bonus.lua"),
    		PIONEER_LIEUT_SP				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/lieutenant_sp_m08.lua"),
    		COMMANDOS_SNIPER				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_sniper_sp.lua"),
    		
    		
    		--capture squads
    		CAPTURE_MG						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_mg.lua"),
    		CAPTURE_MORTAR					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_mortar.lua"),
    		CAPTURE_AXIS_ATGUN				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_axis_at_gun.lua"),
    		CAPTURE_ATGUN					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_at_gun.lua"),
    		
    		--vehicles
    		BREN_CARRIER					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/bren_carrier_squad.lua"),
    		KANGAROO					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/kangaroo_carrier_squad.lua"),
    		CHURCHILL_AVRE					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_avre_squad.lua"),
    		CHURCHILL_CROC					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_crocodile_squad.lua"),
    		CHURCHILL						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_squad.lua"),
    		CHURCHILL_SP_CAEN				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_squad_sp_caen.lua"),
    		COMMAND_CROMWELL				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/command_tank_squad.lua"),
    		CROMWELL						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cromwell_squad.lua"),
    		STUART							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/stuart_squad.lua"),
    		PRIEST							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/priest_squad.lua"),
    		FIREFLY							= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/sherman_firefly_squad.lua"),
    		TETRARCH						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/tetrarch_squad.lua"),
    		COMMANDOS_JEEP					= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commonwealth_jeep_sp.lua"),
    		SIXPOUNDER						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cw_6_pounder.lua"),
    		STAGHOUND						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/staghound_armoured_car_squad.lua"),
    		
    		--emplacements
    		TOWED_AT						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cw_towed_at_squad.lua"),
    		ARTILLERY_25_POUNDER			= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/25_pounder_artillery_squad.lua"),
    		BOFORS_AA						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/bofors_aa_gun_squad.lua"),
    		COMMANDOS_PAK38_SP				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commando_pak38_sp.lua"),
    		COMMANDOS_NEBEL_SP				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commando_nebelwerfer_sp.lua"),
    		COMMANDOS_AT_57MM_SP			= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_57mm_sp.lua"),
    		
    		--HQ
    		HQ								= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/hq_squad.lua"),	
    		HQ_REINFORCEMENT				= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/hq_squad_reinforcement.lua"),
    		ARMOUR_HQ						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/armoured_hq_squad.lua"),					
    		INFANTRY_HQ						= BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/soldiers_hq_squad.lua"),
    		
    	},
    	
    	--*** PANZER ELITE ***
    	ELITE = {
    		--sp units
    		PIONEER_DEMO					= BP_GetSquadBlueprint("sbps/races/axis/soldiers/sp/pioneer_squad_sp.lua"),
    		KING_TIGER_ARNHEM				= BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_ace_squad_campaign.lua"),
    		
    		
    		--Carp_B Henschel
    		HENSCHEL_TAKEOFF				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/henschel_ground_squad.lua"),
    		
    		--infantry
    		PANZERGRENADIER					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/panzer_grenadier_squad.lua"),
    		HEAVYMG							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_machine_gun_section.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/mortar_section.lua"),
    		LUFTWAFFE						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/luftwaffe_squad.lua"),
    		FALLSCHIRMJAGER					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/panzer_falschirmjager.lua"),
    		ASSAULTGRENADIER				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/tankbuster_anti_infantry_squad.lua"),
    		TANKBUSTERS						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/tankbuster_anti_tank_squad.lua"),
    		
    		--vehicles
    		KETTENRAD						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/recon_squad.lua"),
    		ARMOURCAR_221					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/221_armoured_car_squad.lua"),
    		ARMOURCAR_222					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/222_armored_car_squad.lua"),
    		ARMOURCAR_223					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/223_armoured_car_squad.lua"),
    		HALFTRACK_250					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_light_halftrack_squad.lua"),
    		HALFTRACK_MORTAR				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_mortar_halftrack_squad.lua"),
    		HALFTRACK_SNIPER				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_sniper_halftrack_squad.lua"),
    		HALFTRACK_VAMPIRE				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_vampire_halftrack_squad.lua"),
    		HALFTRACK_251					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/251_heavy_halftrack_squad.lua"),
    		PANZER_SUPPORT					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panzer_iv_squad_stubby.lua"),
    		HUMMEL							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hummel_squad.lua"),
    		HETZER							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hetzer_squad.lua"),
    		JAGDPANTHER						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/jagdpanther_squad.lua"),
    		MARDER							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/marderiii_squad.lua"),
    		WIRBLEWIND						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/wirblewind_flak_panzer_squad.lua"),
    		BERGETIGER						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/bergetiger_squad.lua"),
    		PANTHER							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panther_squad.lua"),
    		GOLIATH							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    		SCHWIMMWAGEN					= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panzer_elite_schwimmwagen.lua"),
    		HOTCHKISS						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hotchkiss_squad.lua"),
    		
    		
    		--emplacements
    		FLAK_38							= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad.lua"),
    		FLAK_38_CAPTURED				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    		FLAK_38_SP						= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad_caen_sp.lua"),
    		CAPTURE_88_ELITE				= BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_weapon_capture_squad_88_axis.lua"),
    		
    	},
    	
    -- *** allies_usmc SBPS ***
    	ALLIES_USMC = {
    		
    		--infantry
    		RIFLEMEN						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/rifleman_squad.lua"),
    		SNIPER							= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/sniper_squad.lua"),
    		ENGINEER						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/engineer_infantry.lua"),
    		PARATROOPER 					= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/airborne_infantry.lua"),
    		HEAVYMG							= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/heavy_machine_gun_section.lua"),
    		PARATROOPER_HEAVYMG_SP			= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/heavy_machine_gun_section_airborne_sp.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/mortar_section.lua"),
    		PARATROOPER_MORTAR_SP			= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/mortar_section_airborne_sp.lua"),
    		PARATROOPER_REINF_SP			= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/airborne_infantry_reinforcement_sp.lua"),
    		RANGER							= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/ranger_team.lua"),
    		RANGER_SP_BAZOOKA				= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/ranger_team_sp_bazooka.lua"),
    		PARATROOPER_AT_57MM 			= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m1_57mm_at_squad_paradrop.lua"),
    		CAPTURE_AT						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/heavy_weapon_capture_squad_at_gun.lua"),
    		CAPTURE_88						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/heavy_weapon_capture_squad_88.lua"),
    		RIFLEMEN_TUTORIAL_SP			= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/rifleman_squad_sp_tutorial.lua"),
    		MEDIC_SP						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/rifleman_squad_sp_medic.lua"),
    		OFFICER							= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/command_platoon.lua"),
    		
    		--vehicles
    		T17							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/t17_armoured_car_squad.lua"),
    		JEEP							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/jeep_squad.lua"),
    		AT_57MM							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m1_57mm_at_squad.lua"),
    		HOWITZER						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m2a1_105mm_howitzer_squad.lua"),
    		HALFTRACK						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m3_halftrack_squad.lua"),
    		SHERMAN							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m4_sherman_squad.lua"),
    		CROCODILE						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m4_sherman_squad_crocodile.lua"),
    		CALLIOPE						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m4_sherman_squad_calliope.lua"),
    		GREYHOUND						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m8_greyhound_squad.lua"),
    		M10							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m10_tank_destroyer.lua"),
    		HELLCAT							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m18_hellcat.lua"),
    		PERSHING						= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/m26_pershing_heavy_tank.lua"),
    		TRUCK							= BP_GetSquadBlueprint("sbps/races/allies_usmc/vehicles/deuce_and_a_half_cckw_squad.lua"),
    	},
    			
    	--*** axis_ija SBPS ***
    	AXIS_IJA = {
    		--infantry
    		GRENADIER						= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/grenadier_squad.lua"),
    		VOLKSGRENADIER					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/volksgrenadier_squad.lua"),
    		VOLKS_2PANZERF					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/volksgrenadier_squad_2_panzerfausts_sp.lua"),
    		HEAVYMG							= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_machine_gun_section.lua"),
    		KNIGHTSCROSS					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/knights_cross_holder.lua"),
    		MORTAR							= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/mortar_section.lua"),
    		OFFICER							= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/officer_squad.lua"),
    		PIONEER							= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/pioneer_squad.lua"),
    		SNIPER							= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/sniper.lua"),
    		STORMTROOPER					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/stormtrooper_squad.lua"),
    		CAPTURE_88						= BP_GetSquadBlueprint("sbps/races/allies_usmc/soldiers/heavy_weapon_capture_squad_88.lua"),	-- VALIDATE
    		CAPTURE_88_axis					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_weapon_capture_squad_88_axis.lua"),	
    		CAPTURE_AT_axis					= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_weapon_capture_squad_axis_at_gun_axis.lua"),
    		CAPTURE_QUAD_20_axis			= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    		CAPTURE_MORTAR_axis				= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_weapon_capture_squad_mortar_axis.lua"),	
    		HEAVYMG_SP_NOSUP				= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/sp/sp_gen_heavy_machine_gun_section_no_suppression.lua"),
    		HEAVYMG_M03						= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/heavy_machine_gun_section_sp_m03.lua"),		
    		GRENADIER_MG42_SP				= BP_GetSquadBlueprint("sbps/races/axis_ija/soldiers/grenadier_squad_2_mg42_sp.lua"),
    	
    		--vehicles
    		PAK_38							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/50mm_pak38.lua"),
    		FLAK_88							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/88_flak_squad.lua"),
    		FLAK_88_SP						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/88_flak_squad_sp_caen.lua"),
    		NEBELWERFER						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/150mm_nebelwerfer.lua"),
    		AA_20MM							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/flak38_quad20mm_aagun_squad.lua"),
    		GOLIATH							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    		HALFTRACK						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/halftrack_squad.lua"),
    		HALFTRACK_FLAME					= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/halftrack_squad_flammenwerfer.lua"),
    		HALFTRACK_STUKA					= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/halftrack_squad_stuka.lua"),
    		MOTORCYCLE						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/motorcycle_squad.lua"),
    		OPELBLITZ						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/opel_blitz_squad.lua"),
    		OSTWIND							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/ostwind_flak_panzer_squad.lua"),
    		PANTHER							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/panther_squad.lua"),
    		PANZER							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/panzer_iv_squad.lua"),
    		PUMA							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/sdkfz_234_armoured_car_squad.lua"),
    		STUG							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/stug_iv_squad.lua"),
    		TIGER							= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/tiger_squad.lua"),
    		KING_TIGER						= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/tiger_ace_squad.lua"),
    		SCHWIMMWAGEN					= BP_GetSquadBlueprint("sbps/races/axis_ija/vehicles/axis_schwimmwagen.lua"),
    	},
    
    }
    
    --[[ EBPS ]]
    -- example of use: EBP.BARRACKS
    EBP = {
    	__scardoc_enum = true,
    	
    	-- ebps specifically for single player missions
    	SP = {
    			
    		BOAT						= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/boat.lua"), -- boat with paratroopers for Oosterbeek OMG Campaign
    		HELLS_HIGHWAY_CHURCH		= BP_GetEntityBlueprint("ebps/environment/art_ambient/buildings/normandy_rural/buildings/roughstone_3x5_churchold_02/roughstone_3x5_churchold_02.lua"),
    		HENSCHEL					= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/henschel_aircraft_parked.lua"), -- parked on ground
    		HENSCHEL_AIR				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/henschel_attack_aircraft_ability.lua"), -- flying
    		SP_SMOKE					= BP_GetEntityBlueprint("ebps/gameplay/sp_target_smoke_red.lua"),
    		HILL112_MORTAR_BUNKER		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/concrete/buried_bunker.lua"),
    		BODENTURM					= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/pantherturm.lua"),
    		HILL112_MORTAR_BUNKER_WRECK	= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/concrete/buried_bunker_wreck.lua"),
    		BODENTURM_WRECK				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/pantherturm_wreck.lua"),
    		SP_RIVERBARGE				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/civilian/barge_sp.lua"),
    		-- CoH
    		ALLIED_HQ_SP_M06			= BP_GetEntityBlueprint([[ebps\races\allies\buildings\hq_sp_m06]]),
    		AXIS_HQ_SP_M08				= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_sp_m08"),
    	},
    	
    	--*** ALLIES EBPS ***
    	ALLIES = {
    	
    		-- hqs
    		HQ						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq"),
    		HQ2						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_2"),
    		HQ3						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_3"),
    		HQ4						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_4"),
    		HQ5						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_5"),
    		HQ6						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_6"),
    		HQ7						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_7"),
    		HQ8						= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_8"),		
    		HQ_WRECK				= BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_wreck"),
    		
    		-- tech buildings
    		BARRACKS				= BP_GetEntityBlueprint("ebps/races/allies/buildings/barracks"),
    		ARMORY					= BP_GetEntityBlueprint("ebps/races/allies/buildings/support_weapons"),
    		MOTORPOOL				= BP_GetEntityBlueprint("ebps/races/allies/buildings/motorpool"),
    		TANK_DEPOT				= BP_GetEntityBlueprint("ebps/races/allies/buildings/2nd_motorpool"),
    		QUARTER_MASTER			= BP_GetEntityBlueprint("ebps/races/allies/buildings/quarter_master"),
    		MEDIC_STATION			= BP_GetEntityBlueprint("ebps/races/allies/buildings/checkpoint.lua"),
    		TRIAGE					= BP_GetEntityBlueprint("ebps/races/allies/buildings/triage_center.lua"),
    		MG_NEST					= BP_GetEntityBlueprint("ebps/races/allies/buildings/machine_gun_nest"),
    		
    		-- miscellaneous
    		OBSERVATION_POST		= BP_GetEntityBlueprint("ebps/races/allies/buildings/secure_structure"),
    		BARBED_WIRE 			= BP_GetEntityBlueprint("ebps/races/allies/buildings/barbed_wire.lua"),
    		BARBED_WIRE_RIFLEMEN	= BP_GetEntityBlueprint("ebps/races/allies/buildings/barbed_wire_rifleman.lua"),
    		SANDBAG	 				= BP_GetEntityBlueprint("ebps/races/allies/buildings/sand_bag.lua"),
    		SANDBAG_RIFLEMEN		= BP_GetEntityBlueprint("ebps/races/allies/buildings/sand_bag_rifleman.lua"),
    		TANK_TRAP 				= BP_GetEntityBlueprint("ebps/races/allies/buildings/tank_traps.lua"),
    		TANK_TRAP_RIFLEMEN 		= BP_GetEntityBlueprint("ebps/races/allies/buildings/tank_traps_rifleman.lua"),
    		MINES					= BP_GetEntityBlueprint("ebps/races/allies/mines/allies_mine.lua"),
    		MINES_RIFLEMEN			= BP_GetEntityBlueprint("ebps/races/allies/mines/allies_mine_rifleman.lua"),
    		HOWITZER				= BP_GetEntityBlueprint("ebps/races/allies/vehicles/m2a1_105mm_howitzer.lua")
    
    	},
    	
    	--*** AXIS EBPS ***
    	AXIS = {
    		HQ						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq"),
    		HQ2						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_2"),
    		HQ3						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_3"),
    		HQ4						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_4"),
    		HQ5						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_5"),
    		HQ6						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_6"),
    		HQ7						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_7"),
    		HQ8						= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_8"),
    		HQ_WRECK				= BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_wreck"),
    		
    		--tech buildings
    		QUARTERS				= BP_GetEntityBlueprint("ebps/races/axis/buildings/basic_support"),
    		BARRACKS				= BP_GetEntityBlueprint("ebps/races/axis/buildings/platoon_support_building"), 
    		ARMORY					= BP_GetEntityBlueprint("ebps/races/axis/buildings/company_support_building"),
    		COMMAND					= BP_GetEntityBlueprint("ebps/races/axis/buildings/battalion_support_building"), 
    		KAMPFKRAFT				= BP_GetEntityBlueprint("ebps/races/axis/buildings/quarter_master"), 
    		BUNKER					= BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker"),
    		
    		-- miscellaneous
    		BARBED_WIRE				= BP_GetEntityBlueprint("ebps/races/axis/buildings/barbed_wire.lua"),
    		OBSERVATION_POST		= BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_lite"),
    		MINES					= BP_GetEntityBlueprint("ebps/races/axis/axis_mine.lua"),
    		SANDBAG					= BP_GetEntityBlueprint("ebps/races/axis/buildings/sand_bag.lua"),
    		TANK_TRAP				= BP_GetEntityBlueprint("ebps/races/axis/buildings/tank_traps.lua"),
    	},
    	
    	--*** COMMON WEALTH ***
    	CW = {
    		
    		--HQ
    		HQ						= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/hq.lua"),	
    		HQ_REINFORCEMENT		= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/hq_reinforcement.lua"),
    		ARMOUR_HQ				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/armoured_hq.lua"),					
    		INFANTRY_HQ				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/soldiers_hq.lua"),
    		
    		-- emplacements
    		MG_NEST					= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/machine_gun_nest"),					
    		HOWITZER_NEST			= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/howitzer_gun_nest"),					
    		ANTITANK_NEST			= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/anti_tank_gun_nest.lua"),					
    		SLITTRENCH_NEST			= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/slit_trench.lua"),					
    		MORTAR_NEST				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/mortar_gun_nest.lua"),
    		BOFORS_NEST				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/bofors_gun_nest.lua"),
    		
    		-- miscellaneous
    		RADIO_BEACON			= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/detector_radio.lua"),
    		BARBED_WIRE				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/barbed_wire.lua"),
    		SANDBAG					= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/sand_bag.lua"),
    		CASUALTY_CLEARING		= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/casualty_clearing_station.lua"),
    		MINES					= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/commonwealth_mine.lua"),
    		DEMOLITION_CHARGE		= BP_GetEntityBlueprint("ebps/gameplay/props/demo_charge_commando"),
    		
    		--gliders
    		GLIDER_COMMANDOS		= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider.lua"),
    		GLIDER_HQ				= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_hq.lua"),
    		GLIDER_TETRARCH			= BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_tetrarch.lua"),
    		
    	},
    	
    	--*** PANZER ELITE ***
    	ELITE = {
    		-- hqs
    		HQ						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq"),
    		HQ2						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_2"),
    		HQ3						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_3"),
    		HQ4						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_4"),
    		HQ5						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_5"),
    		HQ6						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_6"),
    		HQ7						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_7"),
    		HQ8						= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_8"),		
    		HQ_WRECK				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_wreck"),
    		
    		-- tech buildings
    		PANZERJAGER				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/panzerjager_kommand"),
    		LOGISTIK				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/logistik_kompanie"),
    		KAMPFGRUPPE				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/kampfgruppe_kompanie"),
    		PANZER_ARTILLERIE		= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/panzer_artillerie_kommand"),
    		
    		-- miscellaneous
    		BARBED_WIRE				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/barbed_wire"),
    		MINE_TELLER				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/mines/pe_teller_mine"),
    		MINE_AIR_DROPPED        = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/mines/pe_air_dropped_mine"),
    		SANDBAG					= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/sand_bag"),
    		TANK_TRAP				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/tank_traps"),
    		
    	},
    	
    	SYNC_WEAPON = {
    		FLAK_88 				= BP_GetEntityBlueprint("ebps/races/axis/vehicles/88mm_flak_36_at.lua"),
    		AT_57MM					= BP_GetEntityBlueprint("ebps/races/allies/vehicles/m1_57mm_towed_at_gun.lua"),
    		AT_PAK_38				= BP_GetEntityBlueprint("ebps/races/axis/vehicles/50mm_pak38.lua"),
    		HOWITZER				= BP_GetEntityBlueprint("ebps/races/allies/vehicles/m2a1_105mm_howitzer.lua"),
    		FLAK_38					= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun.lua"),
    		FLAK_88_PE				= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/88mm_flak_36_at.lua")
    	},
    	
    	--Pacific Thunder
    	allies_usmc = {
    	
    		-- hqs
    		HQ						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq"),
    		HQ2						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_2"),
    		HQ3						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_3"),
    		HQ4						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_4"),
    		HQ5						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_5"),
    		HQ6						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_6"),
    		HQ7						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_7"),
    		HQ8						= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_8"),		
    		HQ_WRECK				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/hq_wreck"),
    		
    		-- tech buildings
    		BARRACKS				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/barracks"),
    		ARMORY					= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/support_weapons"),
    		MOTORPOOL				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/motorpool"),
    		TANK_DEPOT				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/2nd_motorpool"),
    		QUARTER_MASTER			= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/quarter_master"),
    		MEDIC_STATION			= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/checkpoint.lua"),
    		TRIAGE					= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/triage_center.lua"),
    		MG_NEST					= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/machine_gun_nest"),
    		
    		-- miscellaneous
    		OBSERVATION_POST		= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/secure_structure"),
    		BARBED_WIRE 			= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/barbed_wire.lua"),
    		BARBED_WIRE_RIFLEMEN	= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/barbed_wire_rifleman.lua"),
    		SANDBAG	 				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/sand_bag.lua"),
    		SANDBAG_RIFLEMEN		= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/sand_bag_rifleman.lua"),
    		TANK_TRAP 				= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/tank_traps.lua"),
    		TANK_TRAP_RIFLEMEN 		= BP_GetEntityBlueprint("ebps/races/allies_usmc/buildings/tank_traps_rifleman.lua"),
    		MINES					= BP_GetEntityBlueprint("ebps/races/allies_usmc/mines/allies_mine.lua"),
    		MINES_RIFLEMEN			= BP_GetEntityBlueprint("ebps/races/allies_usmc/mines/allies_mine_rifleman.lua"),
    		HOWITZER				= BP_GetEntityBlueprint("ebps/races/allies_usmc/vehicles/m2a1_105mm_howitzer.lua")
    
    	},
    	
    	--*** axis_ija EBPS ***
    	axis_ija = {
    		HQ						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq"),
    		HQ2						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_2"),
    		HQ3						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_3"),
    		HQ4						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_4"),
    		HQ5						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_5"),
    		HQ6						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_6"),
    		HQ7						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_7"),
    		HQ8						= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_8"),
    		HQ_WRECK				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/hq_wreck"),
    		
    		--tech buildings
    		QUARTERS				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/basic_support"),
    		BARRACKS				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/platoon_support_building"), 
    		ARMORY					= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/company_support_building"),
    		COMMAND					= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/battalion_support_building"), 
    		KAMPFKRAFT				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/quarter_master"), 
    		BUNKER					= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/axis_bunker"),
    		
    		-- miscellaneous
    		BARBED_WIRE				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/barbed_wire.lua"),
    		OBSERVATION_POST		= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/axis_bunker_lite"),
    		MINES					= BP_GetEntityBlueprint("ebps/races/axis_ija/axis_mine.lua"),
    		SANDBAG					= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/sand_bag.lua"),
    		TANK_TRAP				= BP_GetEntityBlueprint("ebps/races/axis_ija/buildings/tank_traps.lua"),
    	},
    	
    	-- *** PICKUPS that the player can either occupy (like an 88) or that they can grab (like a bazooka)
    	PICKUP = {
    		
    		MANPOWER				= BP_GetEntityBlueprint("ebps/gameplay/props/lucky_strikes.lua"), 
    		MUNITIONS				= BP_GetEntityBlueprint("ebps/gameplay/Props/generic_instantuse_munitions_ammobox_item.lua"),
    		FUEL					= BP_GetEntityBlueprint("ebps/gameplay/Props/generic_instantuse_fuel_fuelcan_item.lua"),
    		AIRDROP_FUEL			= BP_GetEntityBlueprint("ebps/props/supply_drop_fuel_resource.lua"),
    		AIRDROP_MUNITIONS		= BP_GetEntityBlueprint("ebps/props/supply_drop_ammunition_resource.lua"),
    		
    		ALLIES = {
    			BAZOOKA					= BP_GetEntityBlueprint("ebps/gameplay/props/allied_m9bazooka_item.lua"),
    			BAR						= BP_GetEntityBlueprint("ebps/gameplay/props/allied_m1918_bar_item.lua"),
    			HMG						= BP_GetEntityBlueprint("ebps/gameplay/props/m1917_30cal_hmg.lua"),
    			MORTAR					= BP_GetEntityBlueprint("ebps/props/m2_60mm_mortar.lua"),
    		},
    		
    		AXIS = {
    			HMG						= BP_GetEntityBlueprint("ebps/props/mg42_hmg"),
    			MORTAR					= BP_GetEntityBlueprint("ebps/props/granatewerfer_34_81mm_mortar"),
    			LMG_42					= BP_GetEntityBlueprint("ebps/gameplay/props/axis_mg42_item"),
    			LMG_44					= BP_GetEntityBlueprint("ebps/gameplay/props/axis_mp44_item"),
    			PANZERSCHRECK 			= BP_GetEntityBlueprint("ebps/gameplay/props/axis_panzerschreck_item.lua"),
    		},
    		
    		--*** COMMON WEALTH ***
    		CW = {
    			--infantry
    			LMG_BREN 				= BP_GetEntityBlueprint("ebps/gameplay/props/commonwealth_bren_item"),
    			PIAT	 				= BP_GetEntityBlueprint("ebps/gameplay/props/commonwealth_piat_item"),
    		},
    		
    		--*** PANZER ELITE ***
    		ELITE = {
    			FLAKVIERLING38			= BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun.lua"),
    			--infantry
    			-- INSERT_ELITE_ITEM					= nil,		
    		
    		},
    	},
    	
    	AIRCRAFT = {
    		ALLIES = {
    			THUNDERBOLT				= BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt.lua"),
    			THUNDERBOLT_ROCKETS		= BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt_rockets.lua"),
    			THUNDERBOLT_RECON		= BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt_recon.lua"),
    			TYPHOON_RECON			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_recon.lua"),
    			TYPHOON_STRAFING		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_strafing.lua"),
    			TYPHOON_ROCKET			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_rockets.lua"),
    		},
    		
    	},
    
    	--[[ NEUTRAL ITEMS ]]
    	NEUTRAL = {
    		-- ??,
    	
    	},
    	
    	STRAT_POINT = {
    		CONTROL_STRUCTURE_SP				= BP_GetEntityBlueprint("ebps/gameplay/sp_invisible_control_structure.lua"),
    		VICTORY								= BP_GetEntityBlueprint("ebps/gameplay/victory_point"),
    		VICTORY_SP							= BP_GetEntityBlueprint("ebps/gameplay/sp_victorypoint.lua"),
    		ENTRY								= BP_GetEntityBlueprint("ebps/gameplay/map_entry_point.lua"),
    		AI_LOW								= BP_GetEntityBlueprint("ebps/gameplay/ai_military_low.lua"),
    		AI_MEDIUM							= BP_GetEntityBlueprint("ebps/gameplay/ai_military_med.lua"),
    		AI_HIGH								= BP_GetEntityBlueprint("ebps/gameplay/ai_military_high.lua"),
    		FUEL_HIGH							= BP_GetEntityBlueprint("ebps/gameplay/fuel_point_high.lua"),
    		FUEL_MED							= BP_GetEntityBlueprint("ebps/gameplay/fuel_point_medium.lua"),
    		FUEL_LOW							= BP_GetEntityBlueprint("ebps/gameplay/fuel_point.lua"),
    		MUN_HIGH							= BP_GetEntityBlueprint("ebps/gameplay/munition_point_high.lua"),
    		MUN_MED								= BP_GetEntityBlueprint("ebps/gameplay/munition_point_medium.lua"),
    		MUN_LOW								= BP_GetEntityBlueprint("ebps/gameplay/munition_point.lua"),
    		NO_RESOURCE							= BP_GetEntityBlueprint("ebps/gameplay/no_resource_point.lua"),
    		INVISIBLE_NO_RESOURCE				= BP_GetEntityBlueprint("ebps/gameplay/invisible_no_resource_point.lua"),
    	},
    	
    	-- WRECKS (useful lists for clearing out any wrecks from a NIS zone)
    	-- usage: EBP.WRECKS.SHERMAN
    	WRECKS = {
    		GREYHOUND		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_greyhound.lua"),
    		HOWITZER		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_howitzer.lua"),
    		JEEP			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_jeep.lua"),
    		P47				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_p47.lua"),
    		SHERMAN			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_sherman.lua"),
    		PAK_38			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_50mm_pak38.lua"),
    		MOTORCYCLE		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_bmwr75.lua"),
    		FLAK38AAGUN		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_flak_38_aa_gun.lua"),
    		NEBELWERFER		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_nebelwerfer.lua"),
    		PANTHER			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panther.lua"),
    		PANZER			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzeriv.lua"),
    		STUG			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_stugiv.lua"),
    		TIGER			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_tiger.lua"),
    		
    		-- panzer elite wrecks
    		MARDER				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_marder_iii.lua"),
    		HUMMEL				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hummel.lua"),
    		ARMOURCAR_221		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_221.lua"),
    		ARMOURCAR_222		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_222.lua"),
    		ARMOURCAR_223		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_223.lua"),
    		HALFTRACK_250		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250.lua"),
    		HALFTRACK_MORTAR	= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_mortar.lua"),
    		HALFTRACK_SNIPER	= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_sniper.lua"),
    		HALFTRACK_VAMPIRE	= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_vampire.lua"),
    		HALFTRACK_251		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_251.lua"),
    		BERGETIGER			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_bergetiger.lua"),
    		HENSCHEL			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_henschel.lua"),
    		HETZER				= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hetzer.lua"),
    		JAGDPANTHER			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_jagdpanther.lua"),
    		PANZER_SUPPORT		= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_panzer_iv.lua"),
    		WIRBLEWIND			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_wirblewind.lua"),
    		HOTCHKISS			= BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hotchkiss.lua"),
    	},
    	
    	-- BRIDGES (useful for rebuilding groups, as bridges change entity when wrecked/rebuilt and drop out of any existing groups)
    	BRIDGE_25 = {
    		NORMAL			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01.lua"),
    		WRECKED			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01_wrecked.lua"),
    		REBUILT			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01_rebuilt.lua"),
    	}, 
    	
    	BRIDGE_35 = {
    		NORMAL			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01.lua"),
    		WRECKED			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01_wrecked.lua"),
    		REBUILT			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01_rebuilt.lua"),
    	}, 
    	
    	BRIDGE_BAILEY_25 = {
    		NORMAL			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bailey_bridge_25_01.lua"),
    		WRECKED			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bailey_bridge_25_01_wrecked.lua"),
    	}, 
    	
    	BRIDGE_M6_PONT_TOURANT = {
    		NORMAL			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant.lua"),
    		WRECKED			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant_wrecked.lua"),
    		REBUILT			= BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant_rebuilt.lua"),
    	},
    }
    
    
    --[[ CRITICAL BUILDINGS ]]
    -- this is a set of buildings identified as critical for the player to be considered still "alive."
    --  this table has been set up to be used in conjunction with the Player_HasLost function when
    --  check to see if the player is still alive.
    --  e.g. Player_HasLost(player1, CRITICAL_BUILDINGS)	
    CRITICAL_BUILDINGS = {
    	__scardoc_enum = true,
    
    	AXIS = {
    		
    		EBP.AXIS.HQ,			
    		EBP.AXIS.HQ2,		
    		EBP.AXIS.HQ3,		
    		EBP.AXIS.HQ4,		
    		EBP.AXIS.HQ5,		
    		EBP.AXIS.HQ6,
    		EBP.AXIS.QUARTERS,		
    		EBP.AXIS.BARRACKS,	
    		EBP.AXIS.ARMORY,	
    		EBP.AXIS.COMMAND,	
    		EBP.AXIS.KAMPFKRAFT,	
    			
    	},
    	
    	ALLIES = {
    		EBP.ALLIES.BARRACKS,
    		EBP.ALLIES.ARMORY,
    		EBP.ALLIES.HQ,
    		EBP.ALLIES.HQ2,
    		EBP.ALLIES.HQ3,
    		EBP.ALLIES.HQ4,
    		EBP.ALLIES.HQ5,
    		EBP.ALLIES.HQ6,
    		EBP.SP.ALLIED_HQ_SP_M06,
    		EBP.ALLIES.MOTORPOOL,
    		EBP.ALLIES.TANK_DEPOT,
    	},
    	
    	--*** COMMON WEALTH ***
    	CW = {
    --~ 			INSERT_CW_ITEM						= nil,
    	
    	},
    	
    	--*** PANZER ELITE ***
    	ELITE = {
    		EBP.ELITE.HQ,
    		EBP.ELITE.HQ2,
    		EBP.ELITE.HQ3,
    		EBP.ELITE.HQ4,
    		EBP.ELITE.HQ5,
    		EBP.ELITE.HQ6,
    		
    		EBP.ELITE.PANZERJAGER,
    		EBP.ELITE.PANZER_ARTILLERIE,
    		EBP.ELITE.KAMPFGRUPPE,
    		EBP.ELITE.LOGISTIK,
    	},
    	
    	--Pacific Thunder Races
    	axis_ija = {
    		
    		EBP.axis_ija.HQ,			
    		EBP.axis_ija.HQ2,		
    		EBP.axis_ija.HQ3,		
    		EBP.axis_ija.HQ4,		
    		EBP.axis_ija.HQ5,		
    		EBP.axis_ija.HQ6,
    		EBP.axis_ija.QUARTERS,		
    		EBP.axis_ija.BARRACKS,	
    		EBP.axis_ija.ARMORY,	
    		EBP.axis_ija.COMMAND,	
    		EBP.axis_ija.KAMPFKRAFT,	
    			
    	},
    	
    	allies_usmc = {
    		EBP.allies_usmc.BARRACKS,
    		EBP.allies_usmc.ARMORY,
    		EBP.allies_usmc.HQ,
    		EBP.allies_usmc.HQ2,
    		EBP.allies_usmc.HQ3,
    		EBP.allies_usmc.HQ4,
    		EBP.allies_usmc.HQ5,
    		EBP.allies_usmc.HQ6,
    		EBP.allies_usmc.MOTORPOOL,
    		EBP.allies_usmc.TANK_DEPOT,
    	},
    }
    
    
    --[[ UPGRADES ]]
    -- example of use: UPG.BAZOOKA
    UPG = {
    	__scardoc_enum = true,
    	
    	--[[ COMMON ]]
    	
    	SP = {
    		-- this ability is for Commonwealth officers to mark the strongpoints in Caen Assault
    		MARK_STRONGPOINT				= BP_GetUpgradeBlueprint("upgrade/sp_caen_unlock_mark_strongpoint.lua"),
    		CAEN_BOMBING_RUNS				= BP_GetUpgradeBlueprint("upgrade/sp_cxp1_caen_unlock_bombingruns.lua"),
    		HILL112_WALKINGBARRAGE			= BP_GetUpgradeBlueprint("upgrade/sp_cxp1_hill112_unlock_barragebuttons.lua"),
    		FALLSCHIRMJAGER_NO_FOW			= BP_GetUpgradeBlueprint("upgrade/sp_fallschirmjager_no_fow.lua"), -- used to unlock the Fallschirmjager ability that cannot be used in the FOW.
    		FALLSCHIRMJAGER_BUILDING		= BP_GetUpgradeBlueprint("upgrade/sp_fallschirmjager_building_only.lua"), -- used to unlock the Fallschirmjager ability that cannot be used in the buidling only
    		HENSCHEL_ALL_UNLOCK				= BP_GetUpgradeBlueprint("upgrade/sp_henschel.lua"), 					-- SP only Henschel unlock
    		HELLS_AMBIENT_BUILDING			= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_sp_church.lua"), 
    		CONVERT_AMBIENT_BUILDING_CHURCH	= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_sp_church.lua"),
    		UNLOCK_CANADIAN					= BP_GetUpgradeBlueprint("upgrade/sp_unlock_canadian.lua"), -- unlocks Canadian Tommies
    		JAGDPANTHER						= BP_GetUpgradeBlueprint("upgrade/sp_unlock_jagdpanther.lua"),
    		KING_TIGER						= BP_GetUpgradeBlueprint("upgrade/sp_tiger_ace.lua"),
    		GLIDER_UNLOCK					= BP_GetUpgradeBlueprint("upgrade/sp_glider_unlock"),		-- unlocks the sp glider ability
    		
    		-- CoH
    		AIRBORNE_BASIC_DEFENSES			= BP_GetUpgradeBlueprint("upgrade/allies/sp_airborne_basic_defenses.lua"),
    		SP_M02_PARADROPS				= BP_GetUpgradeBlueprint("upgrade/sp_m02_unlock_paradrops.lua"),
    		SP_M08_IMPROVED_NEBELWERFER		= BP_GetUpgradeBlueprint("upgrade/sp_m08_improved_nebelwerfer.lua"),
    		SINGLEMG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/sp/sp_gen_axis_squad_item_mg42_single.lua"),
    		ALLIES_DUMMY					= BP_GetUpgradeBlueprint("upgrade/allies/sp_dummy.lua"),	
    		
    	},
    	
    	ALLIES = {
    		
    		-- specific upgrades that appear directly on the units
    		SHERMAN_MG						= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_sherman_turret_mount.lua"),
    		SHERMAN_CRAB 					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_crab.lua"),
    		GREYHOUND_MG					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_m8_greyhound.lua"),
    		GREYHOUND_ARMOR					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m8_armour_upgrade.lua"),
    		CROCODILE_BULLDOZER				= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_bulldozer.lua"),
    		PARATROOPER_AT					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_paratrooper_anti_tank_package.lua"),
    		ENGINEER_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower.lua"),
    		ENGINEER_MINESWEEPER			= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_squad_item_minesweeper.lua"),
    		HALFTRACK_QUAD					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_quad_50cal_maxson_local.lua"),
    		CONVERT_AMBIENT_BUILDING		= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    		AID_STATION						= BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade.lua"),
    		RIFLEMEN_AT						= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_tank_package.lua"),
    		RIFLEMEN_SMG					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_infantry_package.lua"),
    		-- CoH
    		FLAMETHROWER_SP_M01				= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower_sp_m01.lua"),
    		BAZOOKA_SP_M13					= BP_GetUpgradeBlueprint("upgrade/allies/items/sp_gen_allies_squad_item_single_bazooka.lua"),
    		
    		-- generic upgrades that specifically appear on the buildings
    		GRENADE 						= BP_GetUpgradeBlueprint("upgrade/allies/armory_throw_grenade.lua"),
    		WIRE_CUTTER						= BP_GetUpgradeBlueprint("upgrade/allies/armory_wire_cutters.lua"),
    		DEMOLITION						= BP_GetUpgradeBlueprint("upgrade/allies/armory_satchel_charge.lua"),
    		STICKY_BOMB						= BP_GetUpgradeBlueprint("upgrade/allies/armory_use_stickybomb.lua"),
    		SMOKE_SCREEN					= BP_GetUpgradeBlueprint("upgrade/allies/armory_upgrade_smoke_screen.lua"),
    		GUN_76MM						= BP_GetUpgradeBlueprint("upgrade/allies/armory_76mm_upgrade.lua"),
    		BAR								= BP_GetUpgradeBlueprint("upgrade/allies/weapon_package_bar.lua"),
    	},
    
    	
    	--*** AXIS ***
    	AXIS = {
    		
    		--*** PHASE RESEARCH ***
    		-- upgrades that are available on the Axis HQ - prereq to other upgrades
    		PHASE2							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_2.lua"), 
    		PHASE3							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_3.lua"), 
    		PHASE4							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_4.lua"),	
    		
    		-- specific upgrades that appear directly on the units
    		GREN_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    		GREN_PANZERSCHRECK				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    		STORM_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    		STORM_MP44						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mp44.lua"), -- stormtrooper
    		STORM_PANZERSCHRECK				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    		VOLKS_PANZERFAUST				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerfaust.lua"), -- VALIDATE
    		VOLKS_MP40						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_volksgrenadier_smg.lua"), -- volksgren
    		PANZER_ARMOR					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzer_iv_armour_skirts.lua"),
    		PANZER_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_tank_top_mg42.lua"),
    		STUG_ARMOR						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_armour_skirts.lua"),
    		STUG_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_top_mg42.lua"),
    		PANTHER_ARMOR					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    		PANTHER_MG42					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    		PIONEER_MINESWEEPER				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_minesweeper.lua"),
    		PIONEER_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_flammenwerfer42_flamethrower.lua"),
    		HALFTRACK_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_flammenwerfer.lua"),
    		HALFTRACK_STUKA					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_stuka.lua"),
    		BUNKER_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_mg42_addition.lua"),
    		BUNKER_REPAIR					= BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_to_repair_facility.lua"), 
    		BUNKER_MED						= BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade_axis.lua"), 
    		CONVERT_AMBIENT_BUILDING		= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    		
    		
    		-- veterancy levels that can be researched
    		VETERANCY = {
    			INFANTRY1				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_1.lua"),
    			INFANTRY2				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_2.lua"),
    			INFANTRY3				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_3.lua"),
    			SUPPORT_INF1			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_1.lua"),
    			SUPPORT_INF2			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_2.lua"),
    			SUPPORT_INF3			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_3.lua"),
    			VEHICLE1				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_1.lua"),
    			VEHICLE2				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_2.lua"),
    			VEHICLE3				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_3.lua"),
    			TANK1					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_1.lua"),
    			TANK2					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_2.lua"),
    			TANK3					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_3.lua"),
    		},
    		
    	},
    	
    		ALLIES_USMC = {
    		
    		-- specific upgrades that appear directly on the units
    		SHERMAN_MG						= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_sherman_turret_mount.lua"),
    		SHERMAN_CRAB 					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_crab.lua"),
    		GREYHOUND_MG					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_m8_greyhound.lua"),
    		GREYHOUND_ARMOR					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m8_armour_upgrade.lua"),
    		CROCODILE_BULLDOZER				= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_bulldozer.lua"),
    		PARATROOPER_AT					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_paratrooper_anti_tank_package.lua"),
    		ENGINEER_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower.lua"),
    		ENGINEER_MINESWEEPER			= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_squad_item_minesweeper.lua"),
    		HALFTRACK_QUAD					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_quad_50cal_maxson_local.lua"),
    		CONVERT_AMBIENT_BUILDING		= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    		AID_STATION						= BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade.lua"),
    		RIFLEMEN_AT						= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_tank_package.lua"),
    		RIFLEMEN_SMG					= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_infantry_package.lua"),
    		-- CoH
    		FLAMETHROWER_SP_M01				= BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower_sp_m01.lua"),
    		BAZOOKA_SP_M13					= BP_GetUpgradeBlueprint("upgrade/allies/items/sp_gen_allies_squad_item_single_bazooka.lua"),
    		
    		-- generic upgrades that specifically appear on the buildings
    		GRENADE 						= BP_GetUpgradeBlueprint("upgrade/allies/armory_throw_grenade.lua"),
    		WIRE_CUTTER						= BP_GetUpgradeBlueprint("upgrade/allies/armory_wire_cutters.lua"),
    		DEMOLITION						= BP_GetUpgradeBlueprint("upgrade/allies/armory_satchel_charge.lua"),
    		STICKY_BOMB						= BP_GetUpgradeBlueprint("upgrade/allies/armory_use_stickybomb.lua"),
    		SMOKE_SCREEN					= BP_GetUpgradeBlueprint("upgrade/allies/armory_upgrade_smoke_screen.lua"),
    		GUN_76MM						= BP_GetUpgradeBlueprint("upgrade/allies/armory_76mm_upgrade.lua"),
    		BAR								= BP_GetUpgradeBlueprint("upgrade/allies/weapon_package_bar.lua"),
    	},
    
    	
    	--*** AXIS ***
    	AXIS_IJA = {
    		
    		--*** PHASE RESEARCH ***
    		-- upgrades that are available on the Axis HQ - prereq to other upgrades
    		PHASE2							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_2.lua"), 
    		PHASE3							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_3.lua"), 
    		PHASE4							= BP_GetUpgradeBlueprint("upgrade/axis/research/phase_4.lua"),	
    		
    		-- specific upgrades that appear directly on the units
    		GREN_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    		GREN_PANZERSCHRECK				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    		STORM_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    		STORM_MP44						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mp44.lua"), -- stormtrooper
    		STORM_PANZERSCHRECK				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    		VOLKS_PANZERFAUST				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerfaust.lua"), -- VALIDATE
    		VOLKS_MP40						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_volksgrenadier_smg.lua"), -- volksgren
    		PANZER_ARMOR					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzer_iv_armour_skirts.lua"),
    		PANZER_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_tank_top_mg42.lua"),
    		STUG_ARMOR						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_armour_skirts.lua"),
    		STUG_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_top_mg42.lua"),
    		PANTHER_ARMOR					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    		PANTHER_MG42					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    		PIONEER_MINESWEEPER				= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_minesweeper.lua"),
    		PIONEER_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_flammenwerfer42_flamethrower.lua"),
    		HALFTRACK_FLAMETHROWER			= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_flammenwerfer.lua"),
    		HALFTRACK_STUKA					= BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_stuka.lua"),
    		BUNKER_MG42						= BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_mg42_addition.lua"),
    		BUNKER_REPAIR					= BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_to_repair_facility.lua"), 
    		BUNKER_MED						= BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade_axis.lua"), 
    		CONVERT_AMBIENT_BUILDING		= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    		
    		
    		-- veterancy levels that can be researched
    		VETERANCY = {
    			INFANTRY1				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_1.lua"),
    			INFANTRY2				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_2.lua"),
    			INFANTRY3				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_3.lua"),
    			SUPPORT_INF1			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_1.lua"),
    			SUPPORT_INF2			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_2.lua"),
    			SUPPORT_INF3			= BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_3.lua"),
    			VEHICLE1				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_1.lua"),
    			VEHICLE2				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_2.lua"),
    			VEHICLE3				= BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_3.lua"),
    			TANK1					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_1.lua"),
    			TANK2					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_2.lua"),
    			TANK3					= BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_3.lua"),
    		},
    		
    	},
    	
    	--*** COMMON WEALTH ***
    	CW = {
    		-- SQUAD UPGRADES						= nil,
    		-- SAPPERS
    		PIAT  						= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_piat_package.lua"),
    		EXPERT_ENGINEER				= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_expert_engineer.lua"),
    		DEMOLITIONS					= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_demolitions.lua"),
    		-- TOMMIES
    		RECON_TEAM					= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_recon_team.lua"),
    		BREN 						= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_bren_package.lua"),
    		RIFLE_GRENADE				= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_rifle_grenade.lua"),
    		-- TANKS
    		TANKCOMMANDER				= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_tank_commander.lua"),
    		CHURCHILL_MINE_PLOW			= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_churchill_mine_plow.lua"),
    		BREN_CARRIER_MMG			= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_bren_carrier_mmg_upgrade.lua"),
    		HULL_DOWN					= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_hull_down.lua"),
    		-- MISC
    		MEDICAL						= BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_medical_package.lua"),
    		
    		-- HQ
    		HQ_SPEED  					= BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_speed_upgrade.lua"),
    		HQ_ECONOMY_BONUS			= BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_economy_upgrade.lua"),
    		MOBILEHQ  					= BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_enable_spawning.lua"),
    		ENABLE_MOBILE_HQ			= BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_enable_mobile.lua"),
    		CONVERT_AMBIENT_BUILDING	= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    		
    		-- To unlock stuart and armour hq without building a captain
    		CAPTAIN_TECH_UNLOCK			= BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_captain_upgrade.lua"), 
    	},
    
    	--*** PANZER ELITE ***
    	ELITE = {
    		
    		-- Tech Building upgrades
    		PANZER_ARTILLERIE			= BP_GetUpgradeBlueprint("upgrade/axis_pe/gebaude_heavy_arms_upgrade.lua"),
    		PANZERJAGER					= BP_GetUpgradeBlueprint("upgrade/axis_pe/gebaude_light_arms_upgrade.lua"),
    		LOGISTIK					= BP_GetUpgradeBlueprint("upgrade/axis_pe/struktur_capital_upgrade.lua"),
    		KAMPFGRUPPE					= BP_GetUpgradeBlueprint("upgrade/axis_pe/struktur_armaments_upgrade.lua"),
    		AT_GRENADE					= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_at_grenade.lua"),
    		ADVANCED_REPAIR				= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_advanced_repair.lua"),
    		INCENDIARY_GRENADE			= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_incendiary_grenade.lua"),
    		CAPTURE_RATE				= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_capture_rate.lua"),
    		SQUAD_SIZE					= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_squad_size.lua"),
    		DEFENSIVE_OPS				= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_regeneration.lua"),
    		GROUP_ZEAL					= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_mob_bonus.lua"),
    		VETERAN_SGT					= BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_vet_sgt.lua"),
    		PANTHER_BATTLEGROUP			= BP_GetUpgradeBlueprint("upgrade/axis_pe/axis_pe_panther_battlegroup.lua"),
    		
    		STUBBYMG42 					= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_pnze_iv_top_mg42.lua"),
    		STUBBYARMORSKIRTS 			= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_Panzer_iv_armour_skirts.lua"),
    		SECUREPKG221 				= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_221_secure_package.lua"),
    		
    		-- panzer grenadier slot items
    		PANZERSCHRECK				= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_anti_tank_package.lua"),
    		MP44						= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_mp44_package.lua"),
    		G43							= BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_g43_package.lua"),
    		CONVERT_AMBIENT_BUILDING	= BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_panzer_elite.lua"),
    		
    		VETERANCY = {
    			INFANTRY = {
    				OFFENSIVE1			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_1.lua"),
    				OFFENSIVE2			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_2.lua"),
    				OFFENSIVE3			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_3.lua"),
    				DEFENSIVE1			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_1.lua"),
    				DEFENSIVE2			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_2.lua"),
    				DEFENSIVE3			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_3.lua"),			
    			},
    			
    			VEHICLE = {
    				OFFENSIVE1			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_1.lua"),
    				OFFENSIVE2			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_2.lua"),
    				OFFENSIVE3			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_3.lua"),
    				DEFENSIVE1			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_1.lua"),
    				DEFENSIVE2			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_2.lua"),
    				DEFENSIVE3			= BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_3.lua"),
    			},
    		},
    		
    		
    		
    		
    	},
    	
    	COMMANDER_TREE =
    	{
    		ALLIES =
    		{
    			AIRBORNE				= BP_GetUpgradeBlueprint("upgrade/allied_airborne"),
    			AIRBORNE_00 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_00"),		-- Paratroopers
    			AIRBORNE_01 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_01"),		-- Paradrop AT Gun
    			AIRBORNE_02 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_02"),		-- Supply Drops
    			AIRBORNE_10 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_10"),		-- Air Recon
    			AIRBORNE_11 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_11"),		-- Strafing Run
    			AIRBORNE_12 			= BP_GetUpgradeBlueprint("upgrade/allied_airborne_12"),		-- Rocket Strike
    			INFANTRY	 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry"),
    			INFANTRY_00 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_00"),		-- Improved build times
    			INFANTRY_01 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_01"),		-- Rangers
    			INFANTRY_02 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_02"),		-- Off-Map Reinforcements
    			INFANTRY_10 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_10"),		-- Riflemen build defenses
    			INFANTRY_11 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_11"),		-- Off-Map Artillery
    			INFANTRY_12 			= BP_GetUpgradeBlueprint("upgrade/allied_infantry_12"),		-- Howitzer
    			ARMOR	 				= BP_GetUpgradeBlueprint("upgrade/allied_armor"),
    			ARMOR_00 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_00"),		-- Vehicles Capture Points
    			ARMOR_01 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_01"),		-- Calliope
    			ARMOR_02 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_02"),		-- Pershing
    			ARMOR_10 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_10"),		-- Improved production
    			ARMOR_11 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_11"),		-- Vehicle Self Repair
    			ARMOR_12 				= BP_GetUpgradeBlueprint("upgrade/allied_armor_12"),		-- Strength of Production
    		},  
    		
    		AXIS =
    		{
    			DEFENSE 				= BP_GetUpgradeBlueprint("upgrade/axis_defense"),
    			DEFENSE_00 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_00"),		-- for the fatherland
    			DEFENSE_01 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_01"),		-- building defenses
    			DEFENSE_02 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_02"),		-- flak 88
    			DEFENSE_10 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_10"),		-- los around strat points
    			DEFENSE_11 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_11"),		-- registered artillery
    			DEFENSE_12 				= BP_GetUpgradeBlueprint("upgrade/axis_defense_12"),		-- standard off map rocket strike
    			PROPAGANDA 				= BP_GetUpgradeBlueprint("upgrade/axis_propaganda"),		
    			PROPAGANDA_00 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_00"),	-- zeal
    			PROPAGANDA_01 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_01"),	-- firestorm
    			PROPAGANDA_02 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_02"),	-- tiger ace
    			PROPAGANDA_10 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_10"),	-- inspired assault
    			PROPAGANDA_11 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_11"),	-- propaganda war
    			PROPAGANDA_12 			= BP_GetUpgradeBlueprint("upgrade/axis_propaganda_12"),	-- V1 Rocket
    			BLITZKRIEG 				= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg"),	
    			BLITZKRIEG_00 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_00"),	-- stormtroopers
    			BLITZKRIEG_01 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_01"),	-- stormtroopers with stug
    			BLITZKRIEG_02 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_02"),	-- stormtroopers with tiger
    			BLITZKRIEG_10 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_10"),	-- assault grenadiers
    			BLITZKRIEG_11 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_11"),	-- resource blitz
    			BLITZKRIEG_12 			= BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_12"),	-- blitzkrieg assault
    		},
    
    		--*** COMMON WEALTH -- COMMANDER TREE ***
    		CW = {
    			CANADIAN_ARTILLERY		= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery"),			-- ROYAL CANADIAN ARTILLERY
    			CANADIAN_ARTILLERY_00	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_00"),		-- Forward Observation Officers
    			CANADIAN_ARTILLERY_01	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_01"),		-- Creeping Barrage
    			CANADIAN_ARTILLERY_02	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_02"),		-- Priest 105mm SPG
    			CANADIAN_ARTILLERY_10	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_10"),		-- Supercharge Artillery (25 pdr)
    			CANADIAN_ARTILLERY_11	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_11"),		-- Overwatch (25 pdr)
    			CANADIAN_ARTILLERY_12	= BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_12"),		-- Victor Target
    			
    			COMMANDOS				= BP_GetUpgradeBlueprint("upgrade/royal_commandos"),		-- ROYAL COMMANDOS
    			COMMANDOS_00			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_00"),		-- Commandos by Glider
    			COMMANDOS_01			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_01"),		-- Tetrarch by Glider
    			COMMANDOS_02			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_02"),		-- Glider HQ
    			COMMANDOS_10			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_10"),		-- Radio Triangulation
    			COMMANDOS_11			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_11"),		-- Ultra Decryption
    			COMMANDOS_12			= BP_GetUpgradeBlueprint("upgrade/royal_commandos_12"),		-- Decoy 
    			
    			ENGINEERS				= BP_GetUpgradeBlueprint("upgrade/royal_engineers"),		-- ROYAL ENGINEERS
    			ENGINEERS_00			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_00"),		-- Improve emplacements
    			ENGINEERS_01			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_01"),		-- Hull Down Tactics
    			ENGINEERS_02			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_02"),		-- Improved HQ Vehicles
    			ENGINEERS_10			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_10"),		-- Churchill Infantry Tank
    			ENGINEERS_11			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_11"),		-- Churchill AVRE
    			ENGINEERS_12			= BP_GetUpgradeBlueprint("upgrade/royal_engineers_12"),		-- Churchill Crocodile
    		},
    		
    		--*** PANZER ELITE -- COMMANDER TREE ***
    		ELITE = {
    			LUFTWAFFE 				= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support"),			-- LUFTWAFFE SUPPORT
    			LUFTWAFFE_00			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_00"),		-- Fallshirmjager infiltration
    			LUFTWAFFE_01			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_01"),		-- Air Dropped Mines
    			LUFTWAFFE_02			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_02"),		-- Henschel AT
    			LUFTWAFFE_10			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_10"),		-- Luftwaffe Defenses
    			LUFTWAFFE_11			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_11"),		-- Wirblewind Flak Panzer
    			LUFTWAFFE_12			= BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_12"),		-- Flak 88
    			
    			SCORCHED_EARTH			= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth"),				-- SCORCHED EARTH
    			SCORCHED_EARTH_00		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_00"),			-- Booby Trap Building
    			SCORCHED_EARTH_01		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_01"),			-- Booby trap strat point
    			SCORCHED_EARTH_02		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_02"),			-- Sector Artillery
    			SCORCHED_EARTH_10		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_10"),			-- Road blocks
    			SCORCHED_EARTH_11		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_11"),			-- Scorched Earth
    			SCORCHED_EARTH_12		= BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_12"),			-- Bergetiger Tank Recovery
    			
    			TANK_DESTROYER			= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer"),				-- TANK DESTROYER
    			TANK_DESTROYER_00		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_00"),			-- Teller Mines
    			TANK_DESTROYER_01		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_01"),			-- Hetzer Tank
    			TANK_DESTROYER_02		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_02"),			-- APCR Roads
    			TANK_DESTROYER_10		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_10"),			-- Tank Awareness
    			TANK_DESTROYER_11		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_11"),			-- Double Infantry AT
    			TANK_DESTROYER_12		= BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_12"),			-- Jagdpanther
    			
    		},
    	},
    }
    
    
    --*** ABILITIES ***
    -- example of use: ABILITY.ALLIES.STICKY_BOMB
    ABILITY = {
    	__scardoc_enum = true,
    	
    	--[[ COMMON ]]
    	REPAIR							= BP_GetAbilityBlueprint("abilities/repair_ability.lua"),
    	REENABLE_CAPTURE				= BP_GetAbilityBlueprint("abilities/reenable_capture_ability.lua"), -- an ability that counteracts the scorched earth ability of the panzer el
    	MINESWEEPER						= BP_GetAbilityBlueprint("abilities/toggle_minesweeper_flamethrower.lua"), -- VALIDATE
    	
    	SP = {
    		
    		SINGLE_FIRESTORM           			= BP_GetAbilityBlueprint("abilities/sp_single_firestorm.lua"),
    		SINGLE_HOWITZER           			= BP_GetAbilityBlueprint("abilities/sp_single_howitzer.lua"),
    		SINGLE_HOWITZER_ALTSOUND   			= BP_GetAbilityBlueprint("abilities/sp_single_howitzer_altsound.lua"),
    		SINGLE_MORTAR           			= BP_GetAbilityBlueprint("abilities/sp_single_mortar.lua"),
    		SINGLE_MORTAR_SMOKE        			= BP_GetAbilityBlueprint("abilities/sp_single_mortar_smoke.lua"),
    		SINGLE_MORTAR_SMOKEENTRANCE			= BP_GetAbilityBlueprint("abilities/sp_single_mortar_smokeentrance.lua"),
    		SINGLE_NEBEL_ROCKET        			= BP_GetAbilityBlueprint("abilities/sp_single_nebel_rocket.lua"),
    		SINGLE_STUKA_ROCKET        			= BP_GetAbilityBlueprint("abilities/sp_single_stuka_rocket.lua"),
    		SINGLE_CREEPING_MORTAR     			= BP_GetAbilityBlueprint("abilities/sp_single_creepingbarrage_mortar.lua"),
    		SINGLE_CREEPING_SMOKE      			= BP_GetAbilityBlueprint("abilities/sp_single_creepingbarrage_smoke.lua"),
    		GOODWOOD_SCAR_FUNC					= BP_GetAbilityBlueprint("abilities/sp_goodwood_scar_func.lua"),
    		CAEN_BOMBING_RUN            		= BP_GetAbilityBlueprint("abilities/sp_caen_air_strike_ability_rockets.lua"), 	-- bombing run that ignores the rule to use the longest distance
    		CAEN_STRAFING_RUN            		= BP_GetAbilityBlueprint("abilities/sp_caen_air_strike_ability_strafe.lua"),	 -- STRAFING run that ignores the rule to use the longest distance
    		TYPHOON_STRAFE_CAEN 				= BP_GetAbilityBlueprint("abilities/sp_caen_commonwealth_air_strike_ability_strafe.lua"), -- strafing run used in caen assault m06
    		CAEN_RECON_RUN            			= BP_GetAbilityBlueprint("abilities/sp_caen_air_recon_ability.lua"),	 -- RECON run that ignores the rule to use the longest distance
    		CAEN_START_BOMBING_RUNS    	 		= BP_GetAbilityBlueprint("abilities/sp/sp_cxp1_caen_bombingruns.lua"),			 -- starts the end of mission bombing runs in Caen Assault
    		CAEN_MARK_STRONGPOINT      			= BP_GetAbilityBlueprint("abilities/commonwealth_mark_strongpoint_sp.lua"),   -- officer ability to mark the defensive positions in Caen Assault
    		HILL112_WALKINGBARRAGE				= BP_GetAbilityBlueprint("abilities/sp/sp_cxp1_hill112_walkingbarrage.lua"),
    		MOVE_BOAT							= BP_GetAbilityBlueprint("abilities/sp/boat_sp_ability.lua"),			-- ability to move the boats for Oosterbeek in OMG campaign
    		DROP_WEAPONS						= BP_GetAbilityBlueprint("abilities/sp/sp_drop_weapons.lua"),			-- use this force a squad to drop their slot items
    		KING_TIGER							= BP_GetAbilityBlueprint("abilities/axis_reinforcements_ability_tiger_ace_sp.lua"),			-- Tiger Ace Reinforcement Ability for Arnhem
    		HELLS_PANZER_GRENADIERS  			= BP_GetAbilityBlueprint("abilities/sp_hells_highway_reinforcements_ability.lua"),			-- Panzer Grenadier Reinforcement Ability for Hell's Highway Ambush
    		FALLSHIRMJAGER_BUILDINGONLY  		= BP_GetAbilityBlueprint("abilities/sp_panzer_elite_infiltration_fallshirmjager_ability_building_only.lua"),			-- Detects if fallshmjager building only ability 
    		FALLSHIRMJAGER_FOWONLY  			= BP_GetAbilityBlueprint("abilities/sp_panzer_elite_infiltration_fallshirmjager_ability_no_fow.lua"),			-- Detects if fallshmjager fow only ability
    		TOUCH_OF_DEATH						= BP_GetAbilityBlueprint("abilities/sp/sp_touch_of_death.lua"),		-- Slowly destroy an entity (that is NOT part of a squad), but uses the blowtorch animation for pioneers
    		HENSCHEL_ALL						= BP_GetAbilityBlueprint("abilities/panzer_elite_henschel_all_targets.lua"), -- SP specific Henschel strike that attacks all kinds of units, not just armour.
    		PARADROP_ANYWHERE					= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_infantry_sp_anywhere.lua"),
    		DEFENSIVE_SMOKE						= BP_GetAbilityBlueprint("abilities/sp_defensive_smokecloud.lua"),
    		MORTARSTRIKE						= BP_GetAbilityBlueprint("abilities/sp/sp_gen_single_mortar_strike.lua"),
    		MORTARSTRIKE_OFFMAP					= BP_GetAbilityBlueprint("abilities/sp/sp_gen_single_off_map_artillery_strike.lua"),
    		M07_PARADROP						= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_infantry_sp_anywhere.lua"),
    		
    		-- special SP versions to ensure that you can drop Gliders anywhere
    		GLIDER_COMMANDOS					= BP_GetAbilityBlueprint("abilities/glider_troops_sp.lua"),
    		GLIDER_TETRARCH						= BP_GetAbilityBlueprint("abilities/glider_tetrarch_sp.lua"),
    		GLIDER_HQ							= BP_GetAbilityBlueprint("abilities/glider_hq_ability_sp.lua"),	
    		
    		-- CoH
    		M02_PARADROP_A						= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_a.lua"),
    		M02_PARADROP_B						= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_b.lua"),
    		M02_PARADROP_C						= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_c.lua"),
    		M02_PARADROP_D						= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_d.lua"),
    		M02_PARADROP_E						= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_e.lua"),
    		M02_PARADROP_GUYS					= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_paratroopers.lua"),
    		M02_PARADROP_GUYSAT					= BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_paratroopers_antitank.lua"),
    		SP_FIRENEBELWERFER					= BP_GetAbilityBlueprint("abilities/axis_nebelwerfer_barrage_improved.lua"),
    		SP_DROP_MUNITION					= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_supplies_munitions_sp.lua"),
    		AIRBORNE_MORTAR						= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_mortar.lua"),
    		
    	},
    	
    	ALLIES = {
    	
    		STICKY_BOMB             	= BP_GetAbilityBlueprint("abilities/ally_throw_sticky_bombs.lua"),
    		CUT_WIRES					= BP_GetAbilityBlueprint("abilities/cut_wires.lua"),
    		SATCHEL_CHARGE				= BP_GetAbilityBlueprint("abilities/ally_throw_satchel_charge.lua"),
    		SATCHEL_CHARGE_NOREQS		= BP_GetAbilityBlueprint("abilities/ally_throw_satchel_charge_no_requirements.lua"),
    		GRENADE						= BP_GetAbilityBlueprint("abilities/ally_throw_grenade.lua"),
    		GRENADE_NOREQS 				= BP_GetAbilityBlueprint("abilities/ally_throw_grenade_no_requirements.lua"),
    		FIREUP						= BP_GetAbilityBlueprint("abilities/ally_fireup_ability.lua"),
    		SHERMAN_BULLDOZER			= BP_GetAbilityBlueprint("abilities/ally_heavy_crush_bulldozer_ability.lua"), -- moves bulldozer up and down
    		MORTAR_BARRAGE				= BP_GetAbilityBlueprint("abilities/ally_sync_mortar_barrage.lua"), -- normal mortar barrage
    		MORTAR_SMOKE				= BP_GetAbilityBlueprint("abilities/ally_mortar_smoke_barrage.lua"),
    		HOWITZER_BARRAGE			= BP_GetAbilityBlueprint("abilities/ally_howitzer_barrage_ability.lua"),
    		SHERMAN_SMOKE				= BP_GetAbilityBlueprint("abilities/defensive_smokecloud.lua"),
    		BAR_SUPPRESSION				= BP_GetAbilityBlueprint("abilities/ally_suppression_ability_rifle_squad_infantry.lua"),
    		CALLIOPE					= BP_GetAbilityBlueprint("abilities/ally_fire_calliope.lua"),
    			
    		MANPOWER1 					= BP_GetAbilityBlueprint("abilities/resource_manpower_upgrade.lua"), -- ability? only use the upgrade?
    		MANPOWER2 					= BP_GetAbilityBlueprint("abilities/resource_manpower_upgrade_advanced.lua"), -- ability? only use the upgrade?
    	},
    	
    	AXIS = {
    		GRENADE						= BP_GetAbilityBlueprint("abilities/axis_throw_grenade.lua"),
    		NEB_BARRAGE					= BP_GetAbilityBlueprint("abilities/axis_nebelwerfer_barrage.lua"),
    		MORTAR_BARRAGE				= BP_GetAbilityBlueprint("abilities/axis_sync_mortar_barrage.lua"),
    		MORTAR_SMOKE				= BP_GetAbilityBlueprint("abilities/axis_mortar_smoke_barrage.lua"), 
    		CUT_WIRES					= BP_GetAbilityBlueprint("abilities/cut_wires_axis.lua"),
    		GOLIATH_DETONATE			= BP_GetAbilityBlueprint("abilities/goliath_detonate.lua"),
    		CAMOUFLAGE					= BP_GetAbilityBlueprint("abilities/camouflage_toggled_knights_cross.lua"), -- really for stormtroopers & snipers
    		CAMOUFLAGE_AT				= BP_GetAbilityBlueprint("abilities/axis_at_guns_camouflage_toggled.lua"),
    		HALFTRACK_ROCKETS			= BP_GetAbilityBlueprint("abilities/axis_stuka_zu_fuss_rocket_halftrack.lua"),
    		MEDICAL_KIT					= BP_GetAbilityBlueprint("abilities/medical_kit.lua"),
    		MEDICAL_KIT_FIELD			= BP_GetAbilityBlueprint("abilities/medical_kit_field.lua"),
    		OFFICER_ROUT 				= BP_GetAbilityBlueprint("abilities/rout_officer_ability.lua"),
    		BUNKER_MORTAR				= BP_GetAbilityBlueprint("abilities/axis_sync_mortar_bunker_barrage.lua"),
    		HEAVY_CRUSH					= BP_GetAbilityBlueprint("abilities/axis_heavy_crush_ability.lua"),
    	},
    
    	--*** COMMON WEALTH ***
    	CW = {
    		PRIEST_BARRAGE				= BP_GetAbilityBlueprint("abilities/commonwealth_priest_barrage_ability.lua"),
    		HQ_REINFORCE 				= BP_GetAbilityBlueprint("abilities/commonwealth_mobile_hq_reinforcements_ability.lua"),
    		PDR_25_COUNTERBATTERY_SP	= BP_GetAbilityBlueprint("abilities/counter_battery_sp.lua"),
    		PDR_25_BARRAGE 				= BP_GetAbilityBlueprint("abilities/commonwealth_25pounder_barrage_ability.lua"),
    		PDR_25_BARRAGE_SUPERCHARGE	= BP_GetAbilityBlueprint("abilities/commonwealth_25pounder_supercharge.lua"),
    		PDR_25_OVERWATCH			= BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder.lua"),
    		PDR_25_OVERWATCH_REMOVE		= BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder_remove.lua"),
    		SUPPRESSION_BREAK			= BP_GetAbilityBlueprint("abilities/commonwealth_suppression_break.lua"),
    		GRENADE_COMMANDO			= BP_GetAbilityBlueprint("abilities/commonwealth_throw_grenade_commando.lua"),
    		RIFLE_GRENADE				= BP_GetAbilityBlueprint("abilities/commonwealth_smoke_rifle_grenade_ability.lua"),
    		SUPERCHARGE_BARRAGE			= BP_GetAbilityBlueprint("abilities/commonwealth_priest_barrage_ability_supercharge.lua"),
    		HQ_SETUP					= BP_GetAbilityBlueprint("abilities/commonwealth_truck_setup.lua"),
    		HQ_SETUP_MAINHQ				= BP_GetAbilityBlueprint("abilities/commonwealth_truck_hq_setup.lua"),
    		HQ_SETUP_INFANTRYHQ			= BP_GetAbilityBlueprint("abilities/commonwealth_truck_infantry_setup.lua"),
    		HQ_SETUP_ARMOURHQ			= BP_GetAbilityBlueprint("abilities/commonwealth_truck_armour_setup.lua"),
    		LIEUTENANT_FOLLOW			= BP_GetAbilityBlueprint("abilities/follow_ability.lua"),
    		ATGUN_ARMOURPIERCING		= BP_GetAbilityBlueprint("abilities/commonwealth_apds_armour_piercing.lua"),
    		TYPHOON_RECON 				= BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_recon_ability.lua"),
    		TYPHOON_STRAFE 				= BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_strike_ability_strafe.lua"),
    		TYPHOON_ROCKET 				= BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_strike_ability_rockets.lua"),
    		FIRE_AVRE_PETARD 			= BP_GetAbilityBlueprint("abilities/commonwealth_fire_avre_petard.lua"),
    		BUTTON_ENEMY_VEHICLE		= BP_GetAbilityBlueprint("abilities/button_enemy_vehicle"),
    		TOMMY_MARKSMAN 				= BP_GetAbilityBlueprint("abilities/commonwealth_recon_marksmen_shot"),
    		FLANKING_SPEED 				= BP_GetAbilityBlueprint("abilities/commonwealth_flank_speed_bonus"),
    		CREEPING_BARRAGE 			= BP_GetAbilityBlueprint("abilities/creeping_barrage_25_pounder.lua"),
    		CANISTER_FIRE				= BP_GetAbilityBlueprint("abilities/commonwealth_fire_canister_ammunition.lua"),
    	},
    	
    	--*** PANZER ELITE ***
    	ELITE = {
    		HOWITZER_BARRAGE			= BP_GetAbilityBlueprint("abilities/panzer_elite_howitzer_barrage_ability.lua"),
    
    		HUMMEL_BARRAGE				= BP_GetAbilityBlueprint("abilities/panzer_elite_howitzer_barrage_ability.lua"),
    		MUNITIONPANZER_GOLIATH		= BP_GetAbilityBlueprint("abilities/pe_munitionspanzer_goliath.lua"),
    		MUNITIONPANZER_FOLLOW		= BP_GetAbilityBlueprint("abilities/follow_ability_munitions_halftrack.lua"),
    		MORTAR_BARRAGE				= BP_GetAbilityBlueprint("abilities/panzer_elite_sync_mortar_barrage.lua"),
    		INCENDIARY_MORTAR			= BP_GetAbilityBlueprint("abilities/panzer_elite_incendiary_mortar_barrage.lua"),
    		INCENDIARY_GRENADE_GREN		= BP_GetAbilityBlueprint("abilities/panzer_elite_throw_incendiary_grenade.lua"),
    		INCENDIARY_GRENADE_FALLSH	= BP_GetAbilityBlueprint("abilities/panzer_elite_fallschirmjager_throw_incendiary_grenade.lua"),
    		PANTHER_BATTLEGROUP			= BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_panther_battlegroup.lua"),
    		PANZER_RAPIDFIRE			= BP_GetAbilityBlueprint("abilities/pe_lockdown_panzeriv_rapid_fire.lua"),
    		MARDER_LOCKDOWN				= BP_GetAbilityBlueprint("abilities/pe_lockdown_marder_iii_at.lua"),
    		REPAIRE_PE					= BP_GetAbilityBlueprint("abilities/repair_ability_pe.lua"),
    		REPAIRE_PE_IMPROVED			= BP_GetAbilityBlueprint("abilities/repair_ability_pe_improved.lua"),
    		SCOUT_CAR_SETUP				= BP_GetAbilityBlueprint("abilities/panzer_elite_car_setup.lua"),
    		SCOUT_CAR_UNSETUP			= BP_GetAbilityBlueprint("abilities/panzer_elite_car_unsetup.lua"),
    		HALFTRACK_TREAD_BREAKER		= BP_GetAbilityBlueprint("abilities/pe_test_halftrack_sniper.lua"),
    		
    	},
    	
    	COMMANDER_TREE = {
    	
    		ALLIES = {
    			-- airborne
    			SUPPLY_DROP					= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_supplies.lua"),
    			RECRUIT_PARADROP			= BP_GetAbilityBlueprint("abilities/ally_paradrop_ability.lua"),
    			RECRUIT_PARADROP_AT			= BP_GetAbilityBlueprint("abilities/ally_paradrop_57mm_at.lua"),
    			RECON						= BP_GetAbilityBlueprint("abilities/ally_air_recon_ability.lua"),
    			STRAFE_MG					= BP_GetAbilityBlueprint("abilities/ally_air_strike_ability_strafe.lua"),
    			STRAFE_ROCKET				= BP_GetAbilityBlueprint("abilities/ally_air_strike_ability_rockets.lua"),
    			
    			-- infantry (the rest of the abilities can be acquired through upgrades
    			RECRUIT_RANGERS 			= BP_GetAbilityBlueprint("abilities/ally_reinforcements_ability_rangers.lua"),
    			RECRUIT_COMBAT_GROUP 		= BP_GetAbilityBlueprint("abilities/reinforcements_ability.lua"),
    			HOWITZER_SHOOT				= BP_GetAbilityBlueprint("abilities/ally_off_map_howitzer_shoot.lua"),
    			
    			-- armor
    			RECRUIT_CALLIOPE			= BP_GetAbilityBlueprint("abilities/pershing_reinforce.lua"),
    			RECRUIT_PERSHING			= BP_GetAbilityBlueprint("abilities/calliope_reinforce.lua"),
    			ARMOR_HEAL					= BP_GetAbilityBlueprint("abilities/allied_armor_self_heal.lua"),
    			WAR_MACHINE					= BP_GetAbilityBlueprint("abilities/attrition_ability.lua"),
    		},
    		
    		AXIS = {
    			-- terror/propaganda
    			INSPIRED_ASSAULT			= BP_GetAbilityBlueprint("abilities/axis_for_the_fuhrer.lua"), 
    			PROPAGANDA_WAR 				= BP_GetAbilityBlueprint("abilities/rout_ability.lua"),
    			FIRESTORM					= BP_GetAbilityBlueprint("abilities/axis_terror_bombardment.lua"),
    			V1_ROCKET					= BP_GetAbilityBlueprint("abilities/V1_target_ability.lua"),
    			RECRUIT_TIGER_ACE			= BP_GetAbilityBlueprint("abilities/axis_reinforcements_ability_tiger_ace.lua"),
    			
    			-- blitzkrieg
    			RECRUIT_STORMTROOPERS 		= BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability.lua"),
    			RECRUIT_STUG				= BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability_with_stug.lua"), -- recruits stormtroopers and stug
    			RECRUIT_TIGER				= BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability_with_tiger.lua"), -- recruits stormtroopers and a tiger
    			RESOURCE_BLITZ				= BP_GetAbilityBlueprint("abilities/axis_manpower_resource_push.lua"),
    			ASSAULT						= BP_GetAbilityBlueprint("abilities/axis_assault_ability.lua"),
    			BLITZKRIEG					= BP_GetAbilityBlueprint("abilities/blitzkrieg_tactics.lua"),
    			
    			-- defense
    			FATHERLAND 					= BP_GetAbilityBlueprint("abilities/for_the_fatherland.lua"),
    			DEFENSIVE_ARTILLERY			= BP_GetAbilityBlueprint("abilities/axis_off_map_defensive_bombardment.lua"),
    			ROCKET_BARRAGE				= BP_GetAbilityBlueprint("abilities/axis_280mm_rocket_barrage.lua"),
    		},
    
    		--*** COMMON WEALTH ***
    		CW = {
    			-- royal canadian artillery
    			FORWARD_OBSERVATION			= BP_GetAbilityBlueprint("abilities/commonwealth_foo_artillery.lua"),
    			PDR_25_SUPERCHARGE			= BP_GetAbilityBlueprint("abilities/commonwealth_sync_mortar_supercharge.lua"),
    			PDR_25_CREEPING_BARRAGE		= BP_GetAbilityBlueprint("abilities/creeping_barrage_25_pounder.lua"),
    			PDR_25_OVERWATCH			= BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder.lua"),
    			RECRUIT_PRIEST				= BP_GetAbilityBlueprint("abilities/commonwealth_priest_reinforcement.lua"),
    			
    			-- royal commandos
    			GLIDER_COMMANDOS			= BP_GetAbilityBlueprint("abilities/glider_troops.lua"),
    			GLIDER_TETRARCH				= BP_GetAbilityBlueprint("abilities/glider_tetrarch.lua"),
    			GLIDER_HQ					= BP_GetAbilityBlueprint("abilities/glider_hq_ability.lua"),
    			DECOY_ARTILLERY				= BP_GetAbilityBlueprint("abilities/commonwealth_decoy_artillery.lua"),
    			REAL_ARTILLERY				= BP_GetAbilityBlueprint("abilities/commonwealth_decoy_artillery_real.lua"),
    			
    			-- royal engineers
    			RECRUIT_CHURCHILL			= BP_GetAbilityBlueprint("abilities/commonwealth_churchill_tank_reinforcement.lua"),
    			RECRUIT_CHURCHILL_AVRE		= BP_GetAbilityBlueprint("abilities/commonwealth_churchill_avre_reinforcement.lua"),
    			RECRUIT_CHURCHILL_CROC		= BP_GetAbilityBlueprint("abilities/commonwealth_churchill_crocodile_reinforcement.lua"),
    			HULL_DOWN					= BP_GetAbilityBlueprint("abilities/commonwealth_hull_down.lua"),
    		},
    		
    		--*** PANZER ELITE ***
    		ELITE = {
    
    			-- luftwaffe
    			AIR_DROPPED_MINES			= BP_GetAbilityBlueprint("abilities/axis_pe_air_dropped_mines.lua"),	-- munitions
    			RECRUIT_LUFTWAFFE			= BP_GetAbilityBlueprint("abilities/panzer_elite_luftwaffe_ability.lua"),	-- manpower
    			RECRUIT_FALLSHIRMAJAGER		= BP_GetAbilityBlueprint("abilities/panzer_elite_infiltration_fallshirmjager_ability.lua"),	-- manpower
    			HENSCHEL					= BP_GetAbilityBlueprint("abilities/panzer_elite_henschel_at_strike.lua"),	-- munitions
    			WIRBLE_WIND					= BP_GetAbilityBlueprint("abilities/panzer_elite_wirblewind_ability.lua"),	-- manpower
    			
    			
    			-- scorched earth
    			SECTOR_ARTILLERY			= BP_GetAbilityBlueprint("abilities/sector_artillery.lua"), -- munitions
    			BERGE_TIGER					= BP_GetAbilityBlueprint("abilities/panzer_elite_bergetiger_ability.lua"),	-- manpower
    			SCORCH_POINT				= BP_GetAbilityBlueprint("abilities/disable_capture_ability.lua"),
    			BOOBYTRAP_BUILDING			= BP_GetAbilityBlueprint("abilities/panzer_elite_building_booby_trap.lua"),
    			BOOBYTRAP					= BP_GetAbilityBlueprint("abilities/booby_trap_ability.lua"), -- note this overwrites the Booby Trap Building button since the same button is used.
    			
    			-- tank destroyer
    			RECRUIT_JAGDPANTHER			= BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_jagdpanther.lua"), -- manpower
    			RECRUIT_HETZER				= BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_hetzer.lua"), -- manpower
    		},
    		
    		
    		COHO = {
    		}
    		
    	}
    
    }
    
    
    --[[ STANCES 
    -- *no example of function in use yet*
    CAMOUFLAGE_OFF					= Util_GetCamouflageStanceID("camouflage_stance_type/attack_stance.lua"),
    CAMOUFLAGE_ON					= Util_GetCamouflageStanceID("camouflage_stance_type/hold_fire_stance.lua"),
    ]]
    
    
    --*** SLOT ITEMS ***
    -- (not to be confused with the "gameplay prop" EBP that slot items actually use)
    SLOT_ITEM =	{
    	__scardoc_enum = true,
    	BAZOOKA							= BP_GetSlotItemBlueprint("slot_item/allies_m9bazooka.lua"),
    	LMG_42							= BP_GetSlotItemBlueprint("slot_item/axis_mg42.lua"),
    	PANZERSCHRECK 					= BP_GetSlotItemBlueprint("slot_item/axis_panzerschreck.lua"),
    	MP_44							= BP_GetSlotItemBlueprint("slot_item/axis_mp44.lua"),
    	HMG_42							= BP_GetSlotItemBlueprint("slot_item/axis_mg42_hmg_item.lua"),
    	AXIS_MORTAR						= BP_GetSlotItemBlueprint("slot_item/axis_grw34_81mm_mortar.lua"),
    	ALLIED_MORTAR					= BP_GetSlotItemBlueprint("slot_item/allies_m2_60mm_mortar.lua"),
    	
    	CW = {
    		LMG_BREN 						= BP_GetSlotItemBlueprint("slot_item/commonwealth_bren_mark_2.lua"),
    		PIAT 							= BP_GetSlotItemBlueprint("slot_item/commonwealth_piat.lua"),
    	},
    }
    
    
    --*** CRITICAL HIT TYPES ***
    -- example of use: CRIT.VEH_MOBILITY_MAJOR
    CRIT = {
    	__scardoc_enum = true,
    	-- damage types, which are always needed for critical hits
    	DAMAGE_RED 						= BP_GetDamageBlueprint("damage/damage_red.lua"),
    	DAMAGE_GREEN					= BP_GetDamageBlueprint("damage/damage_green.lua"),
    	DAMAGE_YELLOW					= BP_GetDamageBlueprint("damage/damage_yellow.lua"),
    	
    	BURN_DEATH_OOC					= BP_GetCriticalBlueprint("critical/burn_death_out_of_control.lua"),
    	
    	--*** VEHICLES ***
    	VEH = {
    		DAMAGE_ENGINE				= BP_GetCriticalBlueprint("critical/vehicle_damage_engine.lua"),
    		MOBILITY_MAJOR 				= BP_GetCriticalBlueprint("critical/vehicle_destroy_engine.lua"),
    		MAIN_WEAPON_DESTROYED 		= BP_GetCriticalBlueprint("critical/vehicle_destroy_maingun.lua"),
    		CONTROL_FAST				= BP_GetCriticalBlueprint("critical/vehicle_out_of_control_fast.lua"),
    		CONTROL_SLOW				= BP_GetCriticalBlueprint("critical/vehicle_out_of_control_slow.lua"),
    		AXIS_KILL_TOP_MG			= BP_GetCriticalBlueprint("critical/vehicle_kill_top_gunner_axis_tank.lua"),
    		IMMOBILIZE					= BP_GetCriticalBlueprint("critical/vehicle_lose_treads_or_wheels.lua"),
    	},
    	
    	SOLDIER = {
    		CASUALTY					= BP_GetCriticalBlueprint("critical/make_casualty.lua"), 
    	}
    }
    
    --*** EVENT CUE ICON & SOUNDS ***
    -- 					Icon Path:	Root\WW2\Data\Art\UI\InGame
    -- 					Sound Path:	Root\WW2\Data\Sound\UI\EventCues
    CUE = {
    	__scardoc_enum = true,
    	NORMAL 				= {icon = "events/event_cue", sound = "General_alert"},
    	NORMAL_REPEATING	= {icon = "events/event_cue", sound = "General_alert", class = "repeating"},
    	VEHICLE				= {icon = "events/event_cue", sound = "General_alert"},
    	ATTACKED 			= {icon = "events/event_cue_combat", sound = "General_alert"},
    	MAP 				= {icon = "events/event_cue_map", sound = "General_alert"},
    	UPGRADE				= {icon = "events/event_cue_upgrade", sound = "General_alert"},
    	NETWORK				= {icon = "events/event_cue_network", sound = "General_alert"},
    }
    
    MEDALS = {
    	__scardoc_enum = false,
    	
    	AIR_MEDAL					= BP_GetMedalBlueprint("medals/air_medal"),
    	AMERICAN_CAMPAIGN_MEDAL		= BP_GetMedalBlueprint("medals/american_campaign_medal"),
    	ARMY_EXPERT_BADGE			= BP_GetMedalBlueprint("medals/army_expert_badge"),
    	ARMY_RANGER_BADGE			= BP_GetMedalBlueprint("medals/army_ranger_badge"),
    	ARMY_SHARPSHOOTER_BADGE		= BP_GetMedalBlueprint("medals/army_sharpshooter_badge"),
    	BRONZE_STAR_M04				= BP_GetMedalBlueprint("medals/bronze_star_m04"),
    	BRONZE_STAR_M08				= BP_GetMedalBlueprint("medals/bronze_star_m08"),
    	DISTINGUISHED_SERVICE_CROSS	= BP_GetMedalBlueprint("medals/distinguished_service_cross"),
    	DISTINGUISHED_SERVICE_MEDAL	= BP_GetMedalBlueprint("medals/distinguished_service_medal"),
    	EXPERT_INFANTRYMAN_BADGE	= BP_GetMedalBlueprint("medals/expert_infantryman_badge"),
    	LEGION_OF_MERIT				= BP_GetMedalBlueprint("medals/legion_of_merit"),
    	MEDAL_OF_HONOR				= BP_GetMedalBlueprint("medals/medal_of_honor"),
    	PARACHUTIST_BADGE			= BP_GetMedalBlueprint("medals/parachutist_badge"),
    	SILVER_STAR_M06				= BP_GetMedalBlueprint("medals/silver_star_m06"),
    	SILVER_STAR_M14				= BP_GetMedalBlueprint("medals/silver_star_m14"),
    	SOLDIERS_MEDAL				= BP_GetMedalBlueprint("medals/soldiers_medal"),
    	SOLDIERS_MEDAL_M06			= BP_GetMedalBlueprint("medals/soldiers_medal_m06"),
    	
    	CXP1 = {
    		AUTHIE					= BP_GetMedalBlueprint("medals/authie.lua"),
    		HILL_112				= BP_GetMedalBlueprint("medals/hill_112.lua"),
    		CARPIQUET				= BP_GetMedalBlueprint("medals/carpiquet.lua"),
    		CARPIQUET_B				= BP_GetMedalBlueprint("medals/carpiquet_b.lua"),
    		HILL_112_DEFENSE		= BP_GetMedalBlueprint("medals/hill_112_defense.lua"),
    		CAEN_ASSAULT			= BP_GetMedalBlueprint("medals/caen_assault.lua"),
    		CAEN_CLEAR				= BP_GetMedalBlueprint("medals/caen_clear.lua"),
    		CAEN_COUNTER			= BP_GetMedalBlueprint("medals/caen_counter.lua"),
    		GOODWOOD				= BP_GetMedalBlueprint("medals/goodwood.lua"),
    	},
    	
    	CXP2 = {
    		WOLFHEZE_GLIDER			= BP_GetMedalBlueprint("medals/wolfheze_glider.lua"),
    		WOLFHEZE_ATTACK			= BP_GetMedalBlueprint("medals/wolfheze_attack.lua"),
    		OOSTERBEEK_DEFENSE		= BP_GetMedalBlueprint("medals/oosterbeek_defense.lua"),
    		HELLS_HIGHWAY_AMBUSH	= BP_GetMedalBlueprint("medals/hells_highway_ambush.lua"),
    		BEST					= BP_GetMedalBlueprint("medals/best.lua"),
    		ARNHEM					= BP_GetMedalBlueprint("medals/arnhem.lua"),
    		HELLS_HIGHWAY_HUNT		= BP_GetMedalBlueprint("medals/hells_highway_hunt.lua"),
    		OOSTERBEEK_CROSSING		= BP_GetMedalBlueprint("medals/oosterbeek_crossing.lua"),
    	},
    }
    
    
    
    MOVETYPE = {
    	__scardoc_enum = true,
    	SAFE						= BP_GetMoveTypeBlueprint("move_type/safe_move.lua"),
    	NORMAL						= BP_GetMoveTypeBlueprint("move_type/normal_move.lua"),
    	FAST						= BP_GetMoveTypeBlueprint("move_type/fast_move.lua"),
    	BEACH						= BP_GetMoveTypeBlueprint("move_type/beach_move_type.lua"),
    	VEHICLE_FORCE_MOVE			= BP_GetMoveTypeBlueprint("move_type/vehicle_force_move.lua"),
    	SURRENDER					= BP_GetMoveTypeBlueprint("move_type/surrender_move.lua"),
    }
    
    TYPE = {
    	__scardoc_enum = true,
    	
    	-- used to control access to various build menus
    	-- e.g. Player_SetConstructionMenuAvailability(player, TYPE.CONSTRUCT.AXIS.HQ, ITEM_LOCKED)
    	CONSTRUCT = {
    		
    		ALLIES = {
    			HQ						= "type_construction/tp_construction_allied_hq", 
    			ENGINEER_ADVANCED		= "type_construction/tp_construction_engineer_advanced",
    			ENGINEER_BASIC			= "type_construction/tp_construction_engineer_basic",
    			RIFLEMEN				= "type_construction/tp_construction_riflemen_basic",
    		},
    		
    		AXIS = {
    			HQ						= "type_construction/tp_construction_axis_hq", 
    			PIONEER_ADVANCED		= "type_construction/tp_construction_axis_engineer_advanced",
    			PIONEER_BASIC			= "type_construction/tp_construction_axis_engineer_basic",
    		},
    		
    		CW = {
    			HQ						= "type_construction/tp_construction_commonwealth_hq", 
    			COMMANDO				= "type_construction/tp_construction_commonwealth_commando",
    			SAPPER					= "type_construction/tp_construction_commonwealth_sapper",
    			TOMMIES					= "type_construction/tp_construction_commonwealth_infantry",
    		},
    		
    		ELITE = {
    			HQ						= "type_construction/tp_construction_panzer_elite_hq", 
    			BASIC					= "type_construction/tp_construction_panzer_elite_basic",
    			LUFTWAFFE				= "type_construction/tp_construction_panzer_elite_luftwaffe",
    		},
    	},
    
    }
    
    -- what are these and does anyone use them? brw 02/21/2007
    -- if not we'll be removing them soon...
    DROP = {
    	__scardoc_enum = true,
    	ITEM_ACTIONPOINTS			= SLOT_ITEM.ITEM_ACTIONPOINTS,
    	ITEM_MANPOWER				= SLOT_ITEM.ITEM_MANPOWER,
    	ITEM_MUNITIONS				= SLOT_ITEM.ITEM_MUNITIONS,
    	ITEM_FUEL					= SLOT_ITEM.ITEM_FUEL,
    	SUPPLY_DROP					= EBP.SUPPLY_DROP,
    	ALLIED_BAZOOKA				= EBP.ALLIED_BAZOOKA,
    	
    }
    
    
    
    
    
    -- This is a table of the all actors used in NISlet speech events.
    -- Each actor needs a blueprint and a speech icon associated with it.
    
    ACTOR = {
    	
    	__scardoc_enum = true,
    	
    	-- Generic
    	GenericAlly 		= "InGame\\portraits\\speech_allied_soldier",
    	GenericAxis 		= "InGame\\portraits\\speech_axis_soldier",
    	Intel 				= "InGame\\portraits\\tutorial_guy",
    	
    	-- Company of Heroes (Original) SP Characters
    	McKay  				= "InGame\\portraits\\speech_allied_mackay",
    	Conti  				= "InGame\\portraits\\speech_allied_conti",
    	Thompson  			= "InGame\\portraits\\speech_allied_thompson",
    	Carota 				= "InGame\\portraits\\speech_allied_carota",
    	Lewis 				= "InGame\\portraits\\speech_allied_lewis",
    	
    	-- CXP1 (Commonwealth Campaign)
    	CXP1 = {
    		
    		-- Generic
    		GenericAlly 		= "InGame\\portraits\\speech_allied_soldier",
    		GenericAxis 		= "InGame\\portraits\\speech_axis_soldier",
    		GenericPanzerElite	= "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    		GenericCommonwealth	= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		Intel 				= "InGame\\portraits\\speech_cmnw_cutting",
    		GenericCommando		= "InGame\\portraits\\speech_cmnw_commando",
    		
    		-- SP Characters
    		Cutting  			= "InGame\\portraits\\speech_cmnw_cutting",
    		Seville  			= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		Wallis  			= "InGame\\portraits\\speech_cmnw_wallis",
    		Blackmore 	 		= "InGame\\portraits\\speech_cmnw_blackmore",
    		Dillingham 			= "InGame\\portraits\\speech_cmnw_dillingham",
    		Jones 				= "InGame\\portraits\\speech_cmnw_generic",
    		Degnan 				= "InGame\\portraits\\speech_cmnw_degnan",
    		Tennant 			= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		Gladstone 			= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		Bailey	 			= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		Hazard	 			= "InGame\\portraits\\speech_cmnw_commando", -- USING GENERIC COMMANDO HERE
    		Chubb	 			= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    	},
    	
    	-- CXP2 (Panzer Elite Campaign)
    	CXP2 = {
    		
    		-- Generic
    		GenericAlly 		= "InGame\\portraits\\speech_allied_soldier",
    		GenericWehrmacht 	= "InGame\\portraits\\speech_axis_soldier",
    		GenericPanzerElite	= "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    		GenericLuftwaffe	= "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    		GenericCommonwealth	= "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    		WehrmachtSgt		= "InGame\\portraits\\speech_axis_soldier",
    		Intel 				= "InGame\\portraits\\speech_pnze_voss",
    		
    		-- SP Characters
    		Voss 				= "InGame\\portraits\\speech_pnze_voss",
    		Deinhard			= "InGame\\portraits\\speech_pnze_deinhard",
    		Aldrich				= "InGame\\portraits\\speech_pnze_aldric",
    		Wolfgang			= "InGame\\portraits\\speech_pnze_wolfgang",
    		Henze				= "InGame\\portraits\\speech_pnze_generic",
    	},
    	
    }
    
    
    
    -- set of offsets that are enumerated so that we don't have to memorize the numbers.
    -- numbers go CLOCKWISE around the circle.
    -- the orientation is in respect to the SGroup or object to which you desire an offeset; 
    -- here's a quick drawing for visualization
    --[[
    FRONT_LEFT  FRONT  	FRONT_RIGHT
    
    			 /\
    			/  \
    LEFT	   /_  _\        RIGHT
    			 ||
    			 ||
    			 ||
    			 
    BACK_LEFT   BACK	BACK_RIGHT
    
    ]]
    OFFSET_FRONT = 0
    OFFSET_FRONT_RIGHT = 1
    OFFSET_FRONT_LEFT = 7
    OFFSET_BACK = 4
    OFFSET_BACK_RIGHT = 3
    OFFSET_BACK_LEFT = 5
    OFFSET_RIGHT = 2
    OFFSET_LEFT = 6
    
    -- use these as offsets in SGroup_IsUnderAttackFromDirection
    OFFSET_DIRECTION_FRONT = {OFFSET_FRONT_LEFT, OFFSET_FRONT, OFFSET_FRONT_RIGHT}
    OFFSET_DIRECTION_RIGHT = {OFFSET_FRONT_RIGHT, OFFSET_RIGHT, OFFSET_BACK_RIGHT}
    OFFSET_DIRECTION_BACK = {OFFSET_BACK_RIGHT, OFFSET_BACK, OFFSET_BACK_LEFT}
    OFFSET_DIRECTION_LEFT = {OFFSET_BACK_LEFT, OFFSET_LEFT, OFFSET_FRONT_LEFT}
    in their entirety. happy hunting! i gotta get back to work

  18. #68
    Have you tried to delete upgrades from luaconst for new races? They're not so necessery, but can mess something

  19. #69
    Member Dragon93's Avatar
    Join Date
    Oct 2006
    Location
    Leven, Fife, Scotland
    One thing, I think all your stuff to do with buildings needs to be in caps - just look at the other races.

    Code:
    	allies_usmc = {
    =
    	ALLIES_USMC = {
    Try changing everywhere.
    One thing i also noticed in EF is we dont have undserscores, its just EBP.OSTHEER.HQ or EBP.SOVIET.HQ.

    So...
    Code:
    TRACE_ALLIES_SOVIETS = "allies_soviets"
    Then...
    Code:
    SOVIET = {
    and in wcutil it is....

    Code:
    _Annihilate["allies_soviets"] = 
    {
    	EBPS = 
    	{
    		EBP.SOVIET.HQ,



    Hydro, about getting units to spawn from base at start - one work around is to go into the construction_ext of all the HQs of your side and under construction add a reinforcement action - i set it to allow_building_spawn.
    So on game, your specified squads will spawn in the HQ and automatically leave it.


  20. #70
    Ye but it won't work with british HQ truck

  21. #71
    Member Uccido's Avatar
    Join Date
    Aug 2009
    Location
    The Armoury
    LOL fixed. nothing wrong with the scar. had a double underscore in the sub race type in racebps, and had caps in there aswell >.>

  22. #72
    Member Akalonor's Avatar
    Join Date
    Jun 2010
    Location
    Jotunheim
    I'm having trouble with the 'precache.lua' file download, it won't extract properly, also can someone clerify step 19 ?

  23. #73
    Hello everyone, I went through the entire tutorial twice, once creating from scratch and the second comparing it to the EF module. I did everything exactly the way it was described in the steps but it still crashes when I try to start it (Both Play -> "Play in CoH/OF" and creating a shortcut for it. The army is called "Chaos Legion" but the filenames should all be "axis_chaoslegion". I tried to check the logs in Documents -> MyGames -> CoH -> LogFiles but I don't know what I am looking at. When I try to launch it, is simply comes up to the Reslic Crash Report form. Can you please take a look at my files and see what could be wrong? Thank you for any help you can provide.

    If it is important to know, this is what I named in my <mod>.English.ucs:

    name_id = Chaos Legion
    name_abbreviated = CL

    I excluded unnecessary parts to make it a little smaller, included is anything I changed:

    WCUTIL.SCAR (STEP 13)

    WCUTIL.SCAR



    STARTING_POSITION.RGD (STEPS 15-16)

    Being an axis faction, I am editing building_05. My path for "Building" is: "ebps\races\axis_chaoslegion\buildings\hq.lua" and my path for "Race" is: "racebps\axis_chaoslegion.lua". I did this for every "starting_position" file on "building_05" including "holland" and excluding "sp". The hq names increment by one every file.

    LUACONSTS.SCAR (STEPS 22-24)

    LUACONSTS.SCAR



    ZANNIHILATE.SCAR (STEP 25)

    ZANNIHILATE.SCAR



    Sorry for making it so long, I just want to triple-check everything. Thank you again for any help anyone can give me!

    ############################EDIT############################

    Problems have been resolved.
    Last edited by MasterGunz67; 22nd Aug 10 at 9:28 AM.
    Developer on Warhammer 40k: Resurrection of WAR

    Follow the mod here:
    ModDB
    Relic Forums

  24. #74
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin

    Ostheer

    ok so have eastern front and i got sick of waiting for eastern front so i went ahead and made the ostheer but ALOT of problems one
    i got a relic game crash form when starting up 2 when it did get me in i could not select i tried but failed just a black out line plz help


    sorry dont know how to put pic

  25. #75
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin

    ok so i kept

    ok so kept getting missing LUA panic so i looked i didnt have any buildings from or units so i extracted and renamed and delete my old file so i had all the units building i needed but now when i hit play easternfront i get and error report?? PLZ HELP

  26. Modding Senior Member Company of Heroes Senior Member  #76
    Cel├ęstial by heart Celution's Avatar
    Join Date
    Apr 2008
    Location
    Sweden
    OK, can you please post your warnings.log in [CODE] tags?

    Also, it seems that you made a new folder in the ebps and sbps for the ostheer right? Did you refer the racebps to that folder?

  27. #77
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin

    yes i did the problem was mostly fixed

    in the other thread jagdpanter helped me with it and i rememberd about the last step for winconditons but then when i tried to select i just got a black outline around them



    EDIT: ok nvm the outline is just my online_race_id it was at 4 now 6 so it mostly works
    only PM plz email no work

    jagdpanther ist der beste kerl den ich je im netz begegnet

    Ruh in frieden Loran Korn

    :)

  28. #78
    When I go attrib>attrib>ebps>races> and right click axis and select "Extract all files in this folder" then it shows a bar filling up and it goes "Files Extracted" and all I can press is OK, I can't rename any folder or find the extracted folder, nor does it give me to ability to rename anything.

    Any help please?

  29. #79
    Navigate to your Company of Heroes directory, "Mod_Name --> DataAttrib --> ebps --> races" and the extracted folder should be there. Rename that and refresh Corsix Mod Studio.

  30. #80
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    @Hellstorm, depending on your OS it could be that this stuff was saved in an so called "compatibility" folder. This problem was sometimes reported by some users, especially with 64bit OS's. Or, if you are not start the modstudio with admin rights and you are not logged in as admin, in your personal folder.
    Last edited by Jagdpanther; 31st Aug 10 at 10:55 AM.

  31. #81
    Ok, thanks for the help guys, I got my faction in the game with their own unique flag!

    But I'm getting that five second defeat thing if I try to play as my faction, there was a five page thread about it, but it was confusing, I don't want A.I for my faction, I just want to fix the auto defeat thing.

    Can someone give me a step by step on how to fix this defeat thing?

    Sorry for being such a newbie.

  32. #82
    I wont go into details, as I dont have time at present and its in the How-TO part, but I can almost certainlt guarantee its because your Buildings and or HQ's arent under your new race. This is the main reason for instant loss, as the game is saying all your buildings are destroyed, so relook at the part about putting your buildings in the right parts of your (a) Mod, and (b) Luaconst

  33. #83
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    I don't want A.I for my faction, I just want to fix the auto defeat thing.
    Nevertheless you will need all the settings in luaconsts (especially those in CRITICAL_BUILDINGS table and afaik those in wcutil.scar. I f you really don't need the ai, then the mod is playable only for human players and will crash instantly if you choose an ai player for.

  34. #84
    Well when I change the settings in the luacontsts I get a fatal scar error if I try to play as the faction rather than the auto defeat.

    I just can't figure out what's wrong, I would be grateful if you could look at what's wrong in my luaconsts file and wcutil.

    My faction is Finland, part of the axis, I am modding on the EF module, so the USSR is there as well.

    Luaconsts

    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    --
    -- LUA CONSTANTS
    -- Defines variables to be used for important Lua defined contsants
    --
    --
    -- (c) 2007 Relic Entertainment
    --
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    TRACE_ALLIES = "allies"
    TRACE_ALLIES_COMMONWEALTH = "allies_commonwealth"
    TRACE_AXIS = "axis"
    TRACE_AXIS_PANZER_ELITE = "axis_panzer_elite"
    TRACE_ALLIES_SOVIETS = "allies_soviets"
    TRACE_AXIS_FINLAND = "axis_finland"

    TSIDE_ALLIES = "allies"
    TSIDE_AXIS = "axis"

    -- constants used for event priorities
    EVENT_NIS = 0
    EVENT_INTEL = 1
    EVENT_AMBIENT = 2

    -- constants used for overriding options
    OPTION_EVENT_CUES = "SquadEventCues"
    OPTION_SQUAD_CONTROL = "SquadControl"
    OPTION_STICKY_SELECTION = "StickySelection"
    OPTION_MOUSE_SCROLL = "MouseScroll"

    CWHQ_MOBILE = true
    CWHQ_STATIC = false

    --[[ SBPS ]]
    -- example of use: SBP.AIRBOURNE
    SBP = {
    __scardoc_enum = true,

    -- *** ALLIES SBPS ***
    ALLIES = {

    --infantry
    RIFLEMEN = BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad.lua"),
    SNIPER = BP_GetSquadBlueprint("sbps/races/allies/soldiers/sniper_squad.lua"),
    ENGINEER = BP_GetSquadBlueprint("sbps/races/allies/soldiers/engineer_infantry.lua"),
    PARATROOPER = BP_GetSquadBlueprint("sbps/races/allies/soldiers/airborne_infantry.lua"),
    HEAVYMG = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_machine_gun_section.lua"),
    PARATROOPER_HEAVYMG_SP = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_machine_gun_section_airborne_sp.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/allies/soldiers/mortar_section.lua"),
    PARATROOPER_MORTAR_SP = BP_GetSquadBlueprint("sbps/races/allies/soldiers/mortar_section_airborne_sp.lua"),
    PARATROOPER_REINF_SP = BP_GetSquadBlueprint("sbps/races/allies/soldiers/airborne_infantry_reinforcement_sp.lua"),
    RANGER = BP_GetSquadBlueprint("sbps/races/allies/soldiers/ranger_team.lua"),
    RANGER_SP_BAZOOKA = BP_GetSquadBlueprint("sbps/races/allies/soldiers/ranger_team_sp_bazooka.lua"),
    PARATROOPER_AT_57MM = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m1_57mm_at_squad_paradrop.lua"),
    CAPTURE_AT = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_at_gun.lua"),
    CAPTURE_88 = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_88.lua"),
    RIFLEMEN_TUTORIAL_SP = BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad_sp_tutorial.lua"),
    MEDIC_SP = BP_GetSquadBlueprint("sbps/races/allies/soldiers/rifleman_squad_sp_medic.lua"),
    OFFICER = BP_GetSquadBlueprint("sbps/races/allies/soldiers/command_platoon.lua"),

    --vehicles
    T17 = BP_GetSquadBlueprint("sbps/races/allies/vehicles/t17_armoured_car_squad.lua"),
    JEEP = BP_GetSquadBlueprint("sbps/races/allies/vehicles/jeep_squad.lua"),
    AT_57MM = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m1_57mm_at_squad.lua"),
    HOWITZER = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m2a1_105mm_howitzer_squad.lua"),
    HALFTRACK = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m3_halftrack_squad.lua"),
    SHERMAN = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad.lua"),
    CROCODILE = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad_crocodile.lua"),
    CALLIOPE = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m4_sherman_squad_calliope.lua"),
    GREYHOUND = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m8_greyhound_squad.lua"),
    M10 = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m10_tank_destroyer.lua"),
    HELLCAT = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m18_hellcat.lua"),
    PERSHING = BP_GetSquadBlueprint("sbps/races/allies/vehicles/m26_pershing_heavy_tank.lua"),
    TRUCK = BP_GetSquadBlueprint("sbps/races/allies/vehicles/deuce_and_a_half_cckw_squad.lua"),
    },

    --*** AXIS SBPS ***
    AXIS = {
    --infantry
    GRENADIER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad.lua"),
    VOLKSGRENADIER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad.lua"),
    VOLKS_2PANZERF = BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad_2_panzerfausts_sp.lua"),
    HEAVYMG = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section.lua"),
    KNIGHTSCROSS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/knights_cross_holder.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/axis/soldiers/mortar_section.lua"),
    OFFICER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/officer_squad.lua"),
    PIONEER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/pioneer_squad.lua"),
    SNIPER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/sniper.lua"),
    STORMTROOPER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/stormtrooper_squad.lua"),
    CAPTURE_88 = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_88.lua"), -- VALIDATE
    CAPTURE_88_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_88_axis.lua"),
    CAPTURE_AT_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_axis_at_gun_axis.lua"),
    CAPTURE_QUAD_20_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    CAPTURE_MORTAR_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_mortar_axis.lua"),
    HEAVYMG_SP_NOSUP = BP_GetSquadBlueprint("sbps/races/axis/soldiers/sp/sp_gen_heavy_machine_gun_section_no_suppression.lua"),
    HEAVYMG_M03 = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section_sp_m03.lua"),
    GRENADIER_MG42_SP = BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad_2_mg42_sp.lua"),

    --vehicles
    PAK_38 = BP_GetSquadBlueprint("sbps/races/axis/vehicles/50mm_pak38.lua"),
    FLAK_88 = BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad.lua"),
    FLAK_88_SP = BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad_sp_caen.lua"),
    NEBELWERFER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/150mm_nebelwerfer.lua"),
    AA_20MM = BP_GetSquadBlueprint("sbps/races/axis/vehicles/flak38_quad20mm_aagun_squad.lua"),
    GOLIATH = BP_GetSquadBlueprint("sbps/races/axis/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    HALFTRACK = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad.lua"),
    HALFTRACK_FLAME = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_flammenwerfer.lua"),
    HALFTRACK_STUKA = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_stuka.lua"),
    MOTORCYCLE = BP_GetSquadBlueprint("sbps/races/axis/vehicles/motorcycle_squad.lua"),
    OPELBLITZ = BP_GetSquadBlueprint("sbps/races/axis/vehicles/opel_blitz_squad.lua"),
    OSTWIND = BP_GetSquadBlueprint("sbps/races/axis/vehicles/ostwind_flak_panzer_squad.lua"),
    PANTHER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/panther_squad.lua"),
    PANZER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/panzer_iv_squad.lua"),
    PUMA = BP_GetSquadBlueprint("sbps/races/axis/vehicles/sdkfz_234_armoured_car_squad.lua"),
    STUG = BP_GetSquadBlueprint("sbps/races/axis/vehicles/stug_iv_squad.lua"),
    STUH = BP_GetSquadBlueprint("sbps/races/axis/vehicles/stug_iv_squad_upgrade.lua"),
    TIGER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_squad.lua"),
    KING_TIGER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_ace_squad.lua"),
    SCHWIMMWAGEN = BP_GetSquadBlueprint("sbps/races/axis/vehicles/axis_schwimmwagen.lua"),
    },

    --*** FINLAND SBPS ***
    FINLAND = {
    --infantry
    GRENADIER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad.lua"),
    VOLKSGRENADIER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad.lua"),
    VOLKS_2PANZERF = BP_GetSquadBlueprint("sbps/races/axis/soldiers/volksgrenadier_squad_2_panzerfausts_sp.lua"),
    HEAVYMG = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section.lua"),
    KNIGHTSCROSS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/knights_cross_holder.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/axis/soldiers/mortar_section.lua"),
    OFFICER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/officer_squad.lua"),
    PIONEER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/pioneer_squad.lua"),
    SNIPER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/sniper.lua"),
    STORMTROOPER = BP_GetSquadBlueprint("sbps/races/axis/soldiers/stormtrooper_squad.lua"),
    CAPTURE_88 = BP_GetSquadBlueprint("sbps/races/allies/soldiers/heavy_weapon_capture_squad_88.lua"), -- VALIDATE
    CAPTURE_88_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_88_axis.lua"),
    CAPTURE_AT_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_axis_at_gun_axis.lua"),
    CAPTURE_QUAD_20_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    CAPTURE_MORTAR_AXIS = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_weapon_capture_squad_mortar_axis.lua"),
    HEAVYMG_SP_NOSUP = BP_GetSquadBlueprint("sbps/races/axis/soldiers/sp/sp_gen_heavy_machine_gun_section_no_suppression.lua"),
    HEAVYMG_M03 = BP_GetSquadBlueprint("sbps/races/axis/soldiers/heavy_machine_gun_section_sp_m03.lua"),
    GRENADIER_MG42_SP = BP_GetSquadBlueprint("sbps/races/axis/soldiers/grenadier_squad_2_mg42_sp.lua"),

    --vehicles
    PAK_38 = BP_GetSquadBlueprint("sbps/races/axis/vehicles/50mm_pak38.lua"),
    FLAK_88 = BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad.lua"),
    FLAK_88_SP = BP_GetSquadBlueprint("sbps/races/axis/vehicles/88_flak_squad_sp_caen.lua"),
    NEBELWERFER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/150mm_nebelwerfer.lua"),
    AA_20MM = BP_GetSquadBlueprint("sbps/races/axis/vehicles/flak38_quad20mm_aagun_squad.lua"),
    GOLIATH = BP_GetSquadBlueprint("sbps/races/axis/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    HALFTRACK = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad.lua"),
    HALFTRACK_FLAME = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_flammenwerfer.lua"),
    HALFTRACK_STUKA = BP_GetSquadBlueprint("sbps/races/axis/vehicles/halftrack_squad_stuka.lua"),
    MOTORCYCLE = BP_GetSquadBlueprint("sbps/races/axis/vehicles/motorcycle_squad.lua"),
    OPELBLITZ = BP_GetSquadBlueprint("sbps/races/axis/vehicles/opel_blitz_squad.lua"),
    OSTWIND = BP_GetSquadBlueprint("sbps/races/axis/vehicles/ostwind_flak_panzer_squad.lua"),
    PANTHER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/panther_squad.lua"),
    PANZER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/panzer_iv_squad.lua"),
    PUMA = BP_GetSquadBlueprint("sbps/races/axis/vehicles/sdkfz_234_armoured_car_squad.lua"),
    STUG = BP_GetSquadBlueprint("sbps/races/axis/vehicles/stug_iv_squad.lua"),
    STUH = BP_GetSquadBlueprint("sbps/races/axis/vehicles/stug_iv_squad_upgrade.lua"),
    TIGER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_squad.lua"),
    KING_TIGER = BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_ace_squad.lua"),
    SCHWIMMWAGEN = BP_GetSquadBlueprint("sbps/races/axis/vehicles/axis_schwimmwagen.lua"),
    },

    --*** COMMON WEALTH ***
    CW = {

    --infantry
    COMMANDOS_MG = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_hmg_squad.lua"),
    CAPTAIN = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/captain.lua"),
    LIEUTENANT = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/lieutenant.lua"),
    COMMANDOS = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad.lua"),
    SAPPER = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/sapper_squad.lua"),
    TOMMIES = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/tommy_squad.lua"),
    TOMMIES_CANADIAN_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/tommy_squad_canadian.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/mortar_section.lua"),
    VICKERSMG = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_machine_gun_section.lua"),
    VICKERS_MG_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/vickers_mmg_section_mobile.lua"),
    COMMANDOS_MORTAR = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_mortar_squad.lua"),
    COMMANDOS_PIAT = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_piat_squad.lua"),
    COMMANDOS_MG42_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_mg42_sp.lua"),
    COMMANDOS_PARATROOPER_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_paratrooper_squad_sp.lua"),
    COMMANDOS_NOVETRANCY_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_no_veterancy_bonus.lua"),
    PIONEER_LIEUT_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/lieutenant_sp_m08.lua"),
    COMMANDOS_SNIPER = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_sniper_sp.lua"),


    --capture squads
    CAPTURE_MG = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_mg.lua"),
    CAPTURE_MORTAR = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_mortar.lua"),
    CAPTURE_AXIS_ATGUN = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_axis_at_gun.lua"),
    CAPTURE_ATGUN = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/heavy_weapon_capture_squad_at_gun.lua"),

    --vehicles
    BREN_CARRIER = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/bren_carrier_squad.lua"),
    KANGAROO = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/kangaroo_carrier_squad.lua"),
    CHURCHILL_AVRE = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_avre_squad.lua"),
    CHURCHILL_CROC = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_crocodile_squad.lua"),
    CHURCHILL = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_squad.lua"),
    CHURCHILL_SP_CAEN = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/churchill_squad_sp_caen.lua"),
    COMMAND_CROMWELL = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/command_tank_squad.lua"),
    CROMWELL = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cromwell_squad.lua"),
    STUART = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/stuart_squad.lua"),
    PRIEST = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/priest_squad.lua"),
    FIREFLY = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/sherman_firefly_squad.lua"),
    TETRARCH = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/tetrarch_squad.lua"),
    COMMANDOS_JEEP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commonwealth_jeep_sp.lua"),
    SIXPOUNDER = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cw_6_pounder.lua"),
    STAGHOUND = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/staghound_armoured_car_squad.lua"),

    --emplacements
    TOWED_AT = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/cw_towed_at_squad.lua"),
    ARTILLERY_25_POUNDER = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/25_pounder_artillery_squad.lua"),
    BOFORS_AA = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/bofors_aa_gun_squad.lua"),
    COMMANDOS_PAK38_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commando_pak38_sp.lua"),
    COMMANDOS_NEBEL_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/commando_nebelwerfer_sp.lua"),
    COMMANDOS_AT_57MM_SP = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/soldiers/commando_squad_57mm_sp.lua"),

    --HQ
    HQ = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/hq_squad.lua"),
    HQ_REINFORCEMENT = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/hq_squad_reinforcement.lua"),
    ARMOUR_HQ = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/armoured_hq_squad.lua"),
    INFANTRY_HQ = BP_GetSquadBlueprint("sbps/races/allies_commonwealth/vehicles/soldiers_hq_squad.lua"),

    },

    --*** PANZER ELITE ***
    ELITE = {
    --sp units
    PIONEER_DEMO = BP_GetSquadBlueprint("sbps/races/axis/soldiers/sp/pioneer_squad_sp.lua"),
    KING_TIGER_ARNHEM = BP_GetSquadBlueprint("sbps/races/axis/vehicles/tiger_ace_squad_campaign.lua"),


    --Carp_B Henschel
    HENSCHEL_TAKEOFF = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/henschel_ground_squad.lua"),

    --infantry
    PANZERGRENADIER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/panzer_grenadier_squad.lua"),
    HEAVYMG = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_machine_gun_section.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/mortar_section.lua"),
    LUFTWAFFE = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/luftwaffe_squad.lua"),
    FALLSCHIRMJAGER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/panzer_falschirmjager.lua"),
    ASSAULTGRENADIER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/tankbuster_anti_infantry_squad.lua"),
    TANKBUSTERS = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/tankbuster_anti_tank_squad.lua"),

    --vehicles
    KETTENRAD = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/recon_squad.lua"),
    ARMOURCAR_221 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/221_armoured_car_squad.lua"),
    ARMOURCAR_222 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/222_armored_car_squad.lua"),
    ARMOURCAR_223 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/223_armoured_car_squad.lua"),
    HALFTRACK_250 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_light_halftrack_squad.lua"),
    HALFTRACK_MORTAR = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_mortar_halftrack_squad.lua"),
    HALFTRACK_SNIPER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_sniper_halftrack_squad.lua"),
    HALFTRACK_VAMPIRE = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/250_vampire_halftrack_squad.lua"),
    HALFTRACK_251 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/251_heavy_halftrack_squad.lua"),
    PANZER_SUPPORT = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panzer_iv_squad_stubby.lua"),
    HUMMEL = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hummel_squad.lua"),
    HETZER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hetzer_squad.lua"),
    JAGDPANTHER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/jagdpanther_squad.lua"),
    MARDER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/marderiii_squad.lua"),
    WIRBLEWIND = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/wirblewind_flak_panzer_squad.lua"),
    BERGETIGER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/bergetiger_squad.lua"),
    PANTHER = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panther_squad.lua"),
    GOLIATH = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/goliath_remote_controlled_bomb_squad.lua"),
    SCHWIMMWAGEN = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/panzer_elite_schwimmwagen.lua"),
    HOTCHKISS = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/hotchkiss_squad.lua"),


    --emplacements
    FLAK_38 = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad.lua"),
    FLAK_38_CAPTURED = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_weapon_capture_squad_quad_20mm_axis.lua"),
    FLAK_38_SP = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad_caen_sp.lua"),
    CAPTURE_88_ELITE = BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/soldiers/heavy_weapon_capture_squad_88_axis.lua"),

    },

    --*** SOVIET UNION ***
    SOVIET = {
    --infantry and support
    COMMAND = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/command_squad.lua"),
    CONSCRIPT = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/conscript_squad.lua"),
    CONSCRIPTC = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/conscript_comm_squad.lua"),
    GUARDS = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/guards_squad.lua"),
    LMG = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/lmg_team.lua"),
    MORTAR = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/mortar_unit.lua"),
    REGULARS = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/regulars_squad.lua"),
    SHARP = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/sniper_team.lua"),
    SAPPER = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/soviet_sappers_squad.lua"),
    SAPPER_ST = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/soviet_stsappers_squad.lua"),
    SNIPER_ACE = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/sniper_ace.lua"),
    MECH = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/mech_squad.lua"),
    PARTISANS = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/partisans.lua"),
    NAVAL_SQUAD = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/naval_squad.lua"),
    ZIS2 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ZiS-3_unit.lua"),

    --upgraded infantry and support
    SAPPER_ST = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/soviet_stsappers_squad.lua"),
    CONSCRIPTC = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/conscript_comm_squad.lua"),
    REGULARS_FLAG = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/regulars_red_flag_squad.lua"),
    GUARDS_SH = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/guards_squad.lua"),
    MORTARU = BP_GetSquadBlueprint("sbps/races/allies_soviets/soldiers/mortar_unit_upgrade.lua"),
    ZIS2U = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ZiS-2_unit_upgrade.lua"),

    --vehicles
    IS2 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/is-2.lua"),
    ISU152 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/isu-152.lua"),
    KATYUSHA = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/katyusha.lua"),
    SU76 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/su-76.lua"),
    SU122 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/su-122.lua"),
    SU85 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/su-85.lua"),
    T34 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/t-34.lua"),
    T70 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/t-70.lua"),
    T90 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/t-90.lua"),
    ZIS = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ziS-3_unit.lua"),
    ZIS5 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ziS-5.lua"),
    HOW = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ml-20_howitzer_team.lua"),
    BA64 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/ba-64.lua"),
    DSHK_TEAM = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/dshk_team.lua"),
    MAXIM_TEAM = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/maxim_team.lua"),
    KV1 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/kv-1.lua"),
    KV2 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/kv-2.lua"),
    SHERMAN_76 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/sherman_76.lua"),

    --upgraded vehicles
    T3485 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/T-34-85.lua"),
    SU100 = BP_GetSquadBlueprint("sbps/races/allies_soviets/vehicles/SU-85_cage.lua"),

    },



    }

    --[[ EBPS ]]
    -- example of use: EBP.BARRACKS
    EBP = {
    __scardoc_enum = true,

    -- ebps specifically for single player missions
    SP = {

    BOAT = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/boat.lua"), -- boat with paratroopers for Oosterbeek OMG Campaign
    HELLS_HIGHWAY_CHURCH = BP_GetEntityBlueprint("ebps/environment/art_ambient/buildings/normandy_rural/buildings/roughstone_3x5_churchold_02/roughstone_3x5_churchold_02.lua"),
    HENSCHEL = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/henschel_aircraft_parked.lua"), -- parked on ground
    HENSCHEL_AIR = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/henschel_attack_aircraft_ability.lua"), -- flying
    SP_SMOKE = BP_GetEntityBlueprint("ebps/gameplay/sp_target_smoke_red.lua"),
    HILL112_MORTAR_BUNKER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/concrete/buried_bunker.lua"),
    BODENTURM = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/pantherturm.lua"),
    HILL112_MORTAR_BUNKER_WRECK = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/concrete/buried_bunker_wreck.lua"),
    BODENTURM_WRECK = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/defenses/pantherturm_wreck.lua"),
    SP_RIVERBARGE = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/civilian/barge_sp.lua"),
    -- CoH
    ALLIED_HQ_SP_M06 = BP_GetEntityBlueprint([[ebps\races\allies\buildings\hq_sp_m06]]),
    AXIS_HQ_SP_M08 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_sp_m08"),
    },

    --*** ALLIES EBPS ***
    ALLIES = {

    -- hqs
    HQ = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq"),
    HQ2 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_2"),
    HQ3 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_3"),
    HQ4 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_4"),
    HQ5 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_5"),
    HQ6 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_6"),
    HQ7 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_7"),
    HQ8 = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_8"),
    HQ_WRECK = BP_GetEntityBlueprint("ebps/races/allies/buildings/hq_wreck"),

    -- tech buildings
    BARRACKS = BP_GetEntityBlueprint("ebps/races/allies/buildings/barracks"),
    ARMORY = BP_GetEntityBlueprint("ebps/races/allies/buildings/support_weapons"),
    MOTORPOOL = BP_GetEntityBlueprint("ebps/races/allies/buildings/motorpool"),
    TANK_DEPOT = BP_GetEntityBlueprint("ebps/races/allies/buildings/2nd_motorpool"),
    QUARTER_MASTER = BP_GetEntityBlueprint("ebps/races/allies/buildings/quarter_master"),
    MEDIC_STATION = BP_GetEntityBlueprint("ebps/races/allies/buildings/checkpoint.lua"),
    TRIAGE = BP_GetEntityBlueprint("ebps/races/allies/buildings/triage_center.lua"),
    MG_NEST = BP_GetEntityBlueprint("ebps/races/allies/buildings/machine_gun_nest"),

    -- miscellaneous
    OBSERVATION_POST = BP_GetEntityBlueprint("ebps/races/allies/buildings/secure_structure"),
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/allies/buildings/barbed_wire.lua"),
    BARBED_WIRE_RIFLEMEN = BP_GetEntityBlueprint("ebps/races/allies/buildings/barbed_wire_rifleman.lua"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/allies/buildings/sand_bag.lua"),
    SANDBAG_RIFLEMEN = BP_GetEntityBlueprint("ebps/races/allies/buildings/sand_bag_rifleman.lua"),
    TANK_TRAP = BP_GetEntityBlueprint("ebps/races/allies/buildings/tank_traps.lua"),
    TANK_TRAP_RIFLEMEN = BP_GetEntityBlueprint("ebps/races/allies/buildings/tank_traps_rifleman.lua"),
    MINES = BP_GetEntityBlueprint("ebps/races/allies/mines/allies_mine.lua"),
    MINES_RIFLEMEN = BP_GetEntityBlueprint("ebps/races/allies/mines/allies_mine_rifleman.lua"),
    HOWITZER = BP_GetEntityBlueprint("ebps/races/allies/vehicles/m2a1_105mm_howitzer.lua")

    },

    --*** AXIS EBPS ***
    AXIS = {
    HQ = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq"),
    HQ2 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_2"),
    HQ3 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_3"),
    HQ4 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_4"),
    HQ5 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_5"),
    HQ6 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_6"),
    HQ7 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_7"),
    HQ8 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_8"),
    HQ_WRECK = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_wreck"),

    --tech buildings
    QUARTERS = BP_GetEntityBlueprint("ebps/races/axis/buildings/basic_support"),
    BARRACKS = BP_GetEntityBlueprint("ebps/races/axis/buildings/platoon_support_building"),
    ARMORY = BP_GetEntityBlueprint("ebps/races/axis/buildings/company_support_building"),
    COMMAND = BP_GetEntityBlueprint("ebps/races/axis/buildings/battalion_support_building"),
    KAMPFKRAFT = BP_GetEntityBlueprint("ebps/races/axis/buildings/quarter_master"),
    BUNKER = BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker"),

    -- miscellaneous
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/axis/buildings/barbed_wire.lua"),
    OBSERVATION_POST = BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_lite"),
    MINES = BP_GetEntityBlueprint("ebps/races/axis/axis_mine.lua"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/axis/buildings/sand_bag.lua"),
    TANK_TRAP = BP_GetEntityBlueprint("ebps/races/axis/buildings/tank_traps.lua"),
    },

    --*** FINLAND EBPS ***
    FINLAND = {
    HQ = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq"),
    HQ2 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_2"),
    HQ3 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_3"),
    HQ4 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_4"),
    HQ5 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_5"),
    HQ6 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_6"),
    HQ7 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_7"),
    HQ8 = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_8"),
    HQ_WRECK = BP_GetEntityBlueprint("ebps/races/axis/buildings/hq_wreck"),

    --tech buildings
    QUARTERS = BP_GetEntityBlueprint("ebps/races/axis/buildings/basic_support"),
    BARRACKS = BP_GetEntityBlueprint("ebps/races/axis/buildings/platoon_support_building"),
    ARMORY = BP_GetEntityBlueprint("ebps/races/axis/buildings/company_support_building"),
    COMMAND = BP_GetEntityBlueprint("ebps/races/axis/buildings/battalion_support_building"),
    KAMPFKRAFT = BP_GetEntityBlueprint("ebps/races/axis/buildings/quarter_master"),
    BUNKER = BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker"),

    -- miscellaneous
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/axis/buildings/barbed_wire.lua"),
    OBSERVATION_POST = BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_lite"),
    MINES = BP_GetEntityBlueprint("ebps/races/axis/axis_mine.lua"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/axis/buildings/sand_bag.lua"),
    TANK_TRAP = BP_GetEntityBlueprint("ebps/races/axis/buildings/tank_traps.lua"),
    },

    --*** COMMON WEALTH ***
    CW = {

    --HQ
    HQ = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/hq.lua"),
    HQ_REINFORCEMENT = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/hq_reinforcement.lua"),
    ARMOUR_HQ = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/armoured_hq.lua"),
    INFANTRY_HQ = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/vehicles/soldiers_hq.lua"),

    -- emplacements
    MG_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/machine_gun_nest"),
    HOWITZER_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/howitzer_gun_nest"),
    ANTITANK_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/anti_tank_gun_nest.lua"),
    SLITTRENCH_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/slit_trench.lua"),
    MORTAR_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/mortar_gun_nest.lua"),
    BOFORS_NEST = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/bofors_gun_nest.lua"),

    -- miscellaneous
    RADIO_BEACON = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/detector_radio.lua"),
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/barbed_wire.lua"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/sand_bag.lua"),
    CASUALTY_CLEARING = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/casualty_clearing_station.lua"),
    MINES = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/commonwealth_mine.lua"),
    DEMOLITION_CHARGE = BP_GetEntityBlueprint("ebps/gameplay/props/demo_charge_commando"),

    --gliders
    GLIDER_COMMANDOS = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider.lua"),
    GLIDER_HQ = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_hq.lua"),
    GLIDER_TETRARCH = BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_tetrarch.lua"),

    },

    --*** PANZER ELITE ***
    ELITE = {
    -- hqs
    HQ = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq"),
    HQ2 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_2"),
    HQ3 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_3"),
    HQ4 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_4"),
    HQ5 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_5"),
    HQ6 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_6"),
    HQ7 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_7"),
    HQ8 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_8"),
    HQ_WRECK = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_wreck"),

    -- tech buildings
    PANZERJAGER = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/panzerjager_kommand"),
    LOGISTIK = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/logistik_kompanie"),
    KAMPFGRUPPE = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/kampfgruppe_kompanie"),
    PANZER_ARTILLERIE = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/panzer_artillerie_kommand"),

    -- miscellaneous
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/barbed_wire"),
    MINE_TELLER = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/mines/pe_teller_mine"),
    MINE_AIR_DROPPED = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/mines/pe_air_dropped_mine"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/sand_bag"),
    TANK_TRAP = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/tank_traps"),

    },

    SYNC_WEAPON = {
    FLAK_88 = BP_GetEntityBlueprint("ebps/races/axis/vehicles/88mm_flak_36_at.lua"),
    AT_57MM = BP_GetEntityBlueprint("ebps/races/allies/vehicles/m1_57mm_towed_at_gun.lua"),
    AT_PAK_38 = BP_GetEntityBlueprint("ebps/races/axis/vehicles/50mm_pak38.lua"),
    HOWITZER = BP_GetEntityBlueprint("ebps/races/allies/vehicles/m2a1_105mm_howitzer.lua"),
    FLAK_38 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun.lua"),
    FLAK_88_PE = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/88mm_flak_36_at.lua")
    },

    --*** SOVIET UNION ***
    SOVIET = {
    -- hqs
    HQ = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq"),
    HQ2 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_2"),
    HQ3 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_3"),
    HQ4 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_4"),
    HQ5 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_5"),
    HQ6 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_6"),
    HQ7 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_7"),
    HQ8 = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_8"),
    HQ_WRECK = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/hq_wreck"),

    -- tech buildings
    MUSTERING_TENT = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/mustering_tent"),
    ARMORY = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/armoury"),
    MECHANICS_HALL = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/mechanics_hall"),
    SUPPORT_BARRACKS = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/support_barracks"),
    MG_NEST = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/machine_gun_nest"),

    -- defences
    BARBED_WIRE = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/barbed_wire.lua"),
    SANDBAG = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/sand_bag.lua"),
    TANK_TRAP = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/tank_traps.lua"),
    MINES = BP_GetEntityBlueprint("ebps/races/allies_soviets/mines/soviets_mine.lua"),
    HOWITZER = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/howitzer_nest.lua"),
    SLITTRENCH_NEST = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/soviet_trenches.lua"),
    DUGOUT = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/dugout.lua"),
    OUTPOST = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/outpost.lua"),
    PETROL_REFINERY = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/petrol_refinery.lua"),
    TRIAGE = BP_GetEntityBlueprint("ebps/races/allies_soviets/buildings/triage_center.lua"),
    },

    -- *** PICKUPS that the player can either occupy (like an 88) or that they can grab (like a bazooka)
    PICKUP = {

    MANPOWER = BP_GetEntityBlueprint("ebps/gameplay/props/lucky_strikes.lua"),
    MUNITIONS = BP_GetEntityBlueprint("ebps/gameplay/Props/generic_instantuse_munitions_ammobox_item.lua"),
    FUEL = BP_GetEntityBlueprint("ebps/gameplay/Props/generic_instantuse_fuel_fuelcan_item.lua"),
    AIRDROP_FUEL = BP_GetEntityBlueprint("ebps/props/supply_drop_fuel_resource.lua"),
    AIRDROP_MUNITIONS = BP_GetEntityBlueprint("ebps/props/supply_drop_ammunition_resource.lua"),

    ALLIES = {
    BAZOOKA = BP_GetEntityBlueprint("ebps/gameplay/props/allied_m9bazooka_item.lua"),
    BAR = BP_GetEntityBlueprint("ebps/gameplay/props/allied_m1918_bar_item.lua"),
    HMG = BP_GetEntityBlueprint("ebps/gameplay/props/m1917_30cal_hmg.lua"),
    MORTAR = BP_GetEntityBlueprint("ebps/props/m2_60mm_mortar.lua"),
    },

    AXIS = {
    HMG = BP_GetEntityBlueprint("ebps/props/mg42_hmg"),
    MORTAR = BP_GetEntityBlueprint("ebps/props/granatewerfer_34_81mm_mortar"),
    LMG_42 = BP_GetEntityBlueprint("ebps/gameplay/props/axis_mg42_item"),
    LMG_44 = BP_GetEntityBlueprint("ebps/gameplay/props/axis_mp44_item"),
    PANZERSCHRECK = BP_GetEntityBlueprint("ebps/gameplay/props/axis_panzerschreck_item.lua"),
    },

    --*** COMMON WEALTH ***
    CW = {
    --infantry
    LMG_BREN = BP_GetEntityBlueprint("ebps/gameplay/props/commonwealth_bren_item"),
    PIAT = BP_GetEntityBlueprint("ebps/gameplay/props/commonwealth_piat_item"),
    },

    --*** PANZER ELITE ***
    ELITE = {
    FLAKVIERLING38 = BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun.lua"),
    --infantry
    -- INSERT_ELITE_ITEM = nil,

    },
    },

    AIRCRAFT = {
    ALLIES = {
    THUNDERBOLT = BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt.lua"),
    THUNDERBOLT_ROCKETS = BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt_rockets.lua"),
    THUNDERBOLT_RECON = BP_GetEntityBlueprint("ebps/races/allies/vehicles/p47_thunderbolt_recon.lua"),
    TYPHOON_RECON = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_recon.lua"),
    TYPHOON_STRAFING = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_strafing.lua"),
    TYPHOON_ROCKET = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/military/typhoon_aircraft_rockets.lua"),
    },

    },

    --[[ NEUTRAL ITEMS ]]
    NEUTRAL = {
    -- ??,

    },

    STRAT_POINT = {
    CONTROL_STRUCTURE_SP = BP_GetEntityBlueprint("ebps/gameplay/sp_invisible_control_structure.lua"),
    VICTORY = BP_GetEntityBlueprint("ebps/gameplay/victory_point"),
    VICTORY_SP = BP_GetEntityBlueprint("ebps/gameplay/sp_victorypoint.lua"),
    ENTRY = BP_GetEntityBlueprint("ebps/gameplay/map_entry_point.lua"),
    AI_LOW = BP_GetEntityBlueprint("ebps/gameplay/ai_military_low.lua"),
    AI_MEDIUM = BP_GetEntityBlueprint("ebps/gameplay/ai_military_med.lua"),
    AI_HIGH = BP_GetEntityBlueprint("ebps/gameplay/ai_military_high.lua"),
    FUEL_HIGH = BP_GetEntityBlueprint("ebps/gameplay/fuel_point_high.lua"),
    FUEL_MED = BP_GetEntityBlueprint("ebps/gameplay/fuel_point_medium.lua"),
    FUEL_LOW = BP_GetEntityBlueprint("ebps/gameplay/fuel_point.lua"),
    MUN_HIGH = BP_GetEntityBlueprint("ebps/gameplay/munition_point_high.lua"),
    MUN_MED = BP_GetEntityBlueprint("ebps/gameplay/munition_point_medium.lua"),
    MUN_LOW = BP_GetEntityBlueprint("ebps/gameplay/munition_point.lua"),
    NO_RESOURCE = BP_GetEntityBlueprint("ebps/gameplay/no_resource_point.lua"),
    INVISIBLE_NO_RESOURCE = BP_GetEntityBlueprint("ebps/gameplay/invisible_no_resource_point.lua"),
    },

    -- WRECKS (useful lists for clearing out any wrecks from a NIS zone)
    -- usage: EBP.WRECKS.SHERMAN
    WRECKS = {
    GREYHOUND = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_greyhound.lua"),
    HOWITZER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_howitzer.lua"),
    JEEP = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_jeep.lua"),
    P47 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_p47.lua"),
    SHERMAN = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_sherman.lua"),
    PAK_38 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_50mm_pak38.lua"),
    MOTORCYCLE = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_bmwr75.lua"),
    FLAK38AAGUN = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_flak_38_aa_gun.lua"),
    NEBELWERFER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_nebelwerfer.lua"),
    PANTHER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panther.lua"),
    PANZER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzeriv.lua"),
    STUG = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_stugiv.lua"),
    TIGER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_tiger.lua"),

    -- panzer elite wrecks
    MARDER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_marder_iii.lua"),
    HUMMEL = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hummel.lua"),
    ARMOURCAR_221 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_221.lua"),
    ARMOURCAR_222 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_222.lua"),
    ARMOURCAR_223 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_223.lua"),
    HALFTRACK_250 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250.lua"),
    HALFTRACK_MORTAR = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_mortar.lua"),
    HALFTRACK_SNIPER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_sniper.lua"),
    HALFTRACK_VAMPIRE = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_250_vampire.lua"),
    HALFTRACK_251 = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_251.lua"),
    BERGETIGER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_bergetiger.lua"),
    HENSCHEL = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_henschel.lua"),
    HETZER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hetzer.lua"),
    JAGDPANTHER = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_jagdpanther.lua"),
    PANZER_SUPPORT = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_panzer_iv.lua"),
    WIRBLEWIND = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_wirblewind.lua"),
    HOTCHKISS = BP_GetEntityBlueprint("ebps/environment/art_ambient/objects/vehicles/wrecked_vehicles/wrecked_panzer_elite_hotchkiss.lua"),
    },

    -- BRIDGES (useful for rebuilding groups, as bridges change entity when wrecked/rebuilt and drop out of any existing groups)
    BRIDGE_25 = {
    NORMAL = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01.lua"),
    WRECKED = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01_wrecked.lua"),
    REBUILT = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_25_01_rebuilt.lua"),
    },

    BRIDGE_35 = {
    NORMAL = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01.lua"),
    WRECKED = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01_wrecked.lua"),
    REBUILT = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_35_01_rebuilt.lua"),
    },

    BRIDGE_BAILEY_25 = {
    NORMAL = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bailey_bridge_25_01.lua"),
    WRECKED = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bailey_bridge_25_01_wrecked.lua"),
    },

    BRIDGE_M6_PONT_TOURANT = {
    NORMAL = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant.lua"),
    WRECKED = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant_wrecked.lua"),
    REBUILT = BP_GetEntityBlueprint("ebps/environment/art_ambient/bridges/bridge_m6_pont_tourant_rebuilt.lua"),
    },
    }


    --[[ CRITICAL BUILDINGS ]]
    -- this is a set of buildings identified as critical for the player to be considered still "alive."
    -- this table has been set up to be used in conjunction with the Player_HasLost function when
    -- check to see if the player is still alive.
    -- e.g. Player_HasLost(player1, CRITICAL_BUILDINGS)
    CRITICAL_BUILDINGS = {
    __scardoc_enum = true,

    AXIS = {

    EBP.AXIS.HQ,
    EBP.AXIS.HQ2,
    EBP.AXIS.HQ3,
    EBP.AXIS.HQ4,
    EBP.AXIS.HQ5,
    EBP.AXIS.HQ6,
    EBP.AXIS.QUARTERS,
    EBP.AXIS.BARRACKS,
    EBP.AXIS.ARMORY,
    EBP.AXIS.COMMAND,
    EBP.AXIS.KAMPFKRAFT,

    },

    FINLAND = {

    EBP.AXIS.HQ,
    EBP.AXIS.HQ2,
    EBP.AXIS.HQ3,
    EBP.AXIS.HQ4,
    EBP.AXIS.HQ5,
    EBP.AXIS.HQ6,
    EBP.AXIS.QUARTERS,
    EBP.AXIS.BARRACKS,
    EBP.AXIS.ARMORY,
    EBP.AXIS.COMMAND,
    EBP.AXIS.KAMPFKRAFT,
    },

    ALLIES = {
    EBP.ALLIES.BARRACKS,
    EBP.ALLIES.ARMORY,
    EBP.ALLIES.HQ,
    EBP.ALLIES.HQ2,
    EBP.ALLIES.HQ3,
    EBP.ALLIES.HQ4,
    EBP.ALLIES.HQ5,
    EBP.ALLIES.HQ6,
    EBP.SP.ALLIED_HQ_SP_M06,
    EBP.ALLIES.MOTORPOOL,
    EBP.ALLIES.TANK_DEPOT,
    },

    --*** COMMON WEALTH ***
    CW = {
    --~ INSERT_CW_ITEM = nil,

    },

    --*** PANZER ELITE ***
    ELITE = {
    EBP.ELITE.HQ,
    EBP.ELITE.HQ2,
    EBP.ELITE.HQ3,
    EBP.ELITE.HQ4,
    EBP.ELITE.HQ5,
    EBP.ELITE.HQ6,

    EBP.ELITE.PANZERJAGER,
    EBP.ELITE.PANZER_ARTILLERIE,
    EBP.ELITE.KAMPFGRUPPE,
    EBP.ELITE.LOGISTIK,
    },

    --*** SOVIET UNION ***
    SOVIET = {
    EBP.SOVIET.HQ,
    EBP.SOVIET.HQ2,
    EBP.SOVIET.HQ3,
    EBP.SOVIET.HQ4,
    EBP.SOVIET.HQ5,
    EBP.SOVIET.HQ6,
    EBP.SOVIET.MUSTERING_TENT,
    EBP.SOVIET.ARMORY,
    EBP.SOVIET.SUPPORT_BARRACKS,
    EBP.SOVIET.MECHANICS_HALL,
    },
    }


    --[[ UPGRADES ]]
    -- example of use: UPG.BAZOOKA
    UPG = {
    __scardoc_enum = true,

    --[[ COMMON ]]

    SP = {
    -- this ability is for Commonwealth officers to mark the strongpoints in Caen Assault
    MARK_STRONGPOINT = BP_GetUpgradeBlueprint("upgrade/sp_caen_unlock_mark_strongpoint.lua"),
    CAEN_BOMBING_RUNS = BP_GetUpgradeBlueprint("upgrade/sp_cxp1_caen_unlock_bombingruns.lua"),
    HILL112_WALKINGBARRAGE = BP_GetUpgradeBlueprint("upgrade/sp_cxp1_hill112_unlock_barragebuttons.lua"),
    FALLSCHIRMJAGER_NO_FOW = BP_GetUpgradeBlueprint("upgrade/sp_fallschirmjager_no_fow.lua"), -- used to unlock the Fallschirmjager ability that cannot be used in the FOW.
    FALLSCHIRMJAGER_BUILDING = BP_GetUpgradeBlueprint("upgrade/sp_fallschirmjager_building_only.lua"), -- used to unlock the Fallschirmjager ability that cannot be used in the buidling only
    HENSCHEL_ALL_UNLOCK = BP_GetUpgradeBlueprint("upgrade/sp_henschel.lua"), -- SP only Henschel unlock
    HELLS_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_sp_church.lua"),
    CONVERT_AMBIENT_BUILDING_CHURCH = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_sp_church.lua"),
    UNLOCK_CANADIAN = BP_GetUpgradeBlueprint("upgrade/sp_unlock_canadian.lua"), -- unlocks Canadian Tommies
    JAGDPANTHER = BP_GetUpgradeBlueprint("upgrade/sp_unlock_jagdpanther.lua"),
    KING_TIGER = BP_GetUpgradeBlueprint("upgrade/sp_tiger_ace.lua"),
    GLIDER_UNLOCK = BP_GetUpgradeBlueprint("upgrade/sp_glider_unlock"), -- unlocks the sp glider ability

    -- CoH
    AIRBORNE_BASIC_DEFENSES = BP_GetUpgradeBlueprint("upgrade/allies/sp_airborne_basic_defenses.lua"),
    SP_M02_PARADROPS = BP_GetUpgradeBlueprint("upgrade/sp_m02_unlock_paradrops.lua"),
    SP_M08_IMPROVED_NEBELWERFER = BP_GetUpgradeBlueprint("upgrade/sp_m08_improved_nebelwerfer.lua"),
    SINGLEMG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/sp/sp_gen_axis_squad_item_mg42_single.lua"),
    ALLIES_DUMMY = BP_GetUpgradeBlueprint("upgrade/allies/sp_dummy.lua"),

    },

    ALLIES = {

    -- specific upgrades that appear directly on the units
    SHERMAN_MG = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_sherman_turret_mount.lua"),
    SHERMAN_CRAB = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_crab.lua"),
    GREYHOUND_MG = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_50cal_m8_greyhound.lua"),
    GREYHOUND_ARMOR = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m8_armour_upgrade.lua"),
    CROCODILE_BULLDOZER = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_sherman_bulldozer.lua"),
    PARATROOPER_AT = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_paratrooper_anti_tank_package.lua"),
    ENGINEER_FLAMETHROWER = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower.lua"),
    ENGINEER_MINESWEEPER = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_squad_item_minesweeper.lua"),
    HALFTRACK_QUAD = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_quad_50cal_maxson_local.lua"),
    CONVERT_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    AID_STATION = BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade.lua"),
    RIFLEMEN_AT = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_tank_package.lua"),
    RIFLEMEN_SMG = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_rifle_squad_anti_infantry_package.lua"),

    -- CoH
    FLAMETHROWER_SP_M01 = BP_GetUpgradeBlueprint("upgrade/allies/items/allies_m2_flamethrower_sp_m01.lua"),
    BAZOOKA_SP_M13 = BP_GetUpgradeBlueprint("upgrade/allies/items/sp_gen_allies_squad_item_single_bazooka.lua"),

    -- generic upgrades that specifically appear on the buildings
    GRENADE = BP_GetUpgradeBlueprint("upgrade/allies/armory_throw_grenade.lua"),
    WIRE_CUTTER = BP_GetUpgradeBlueprint("upgrade/allies/armory_wire_cutters.lua"),
    DEMOLITION = BP_GetUpgradeBlueprint("upgrade/allies/armory_satchel_charge.lua"),
    STICKY_BOMB = BP_GetUpgradeBlueprint("upgrade/allies/armory_use_stickybomb.lua"),
    SMOKE_SCREEN = BP_GetUpgradeBlueprint("upgrade/allies/armory_upgrade_smoke_screen.lua"),
    GUN_76MM = BP_GetUpgradeBlueprint("upgrade/allies/armory_76mm_upgrade.lua"),
    BAR = BP_GetUpgradeBlueprint("upgrade/allies/weapon_package_bar.lua"),

    RESOURCE_UPGRADE1 = BP_GetUpgradeBlueprint("upgrade/allies/allies_resource_upgrade.lua"),
    RESOURCE_UPGRADE2 = BP_GetUpgradeBlueprint("upgrade/allies/allies_resource_upgrade_advanced.lua"),
    },


    --*** AXIS ***
    AXIS = {

    --*** PHASE RESEARCH ***
    -- upgrades that are available on the Axis HQ - prereq to other upgrades
    PHASE2 = BP_GetUpgradeBlueprint("upgrade/axis/research/phase_2.lua"),
    PHASE3 = BP_GetUpgradeBlueprint("upgrade/axis/research/phase_3.lua"),
    PHASE4 = BP_GetUpgradeBlueprint("upgrade/axis/research/phase_4.lua"),

    -- specific upgrades that appear directly on the units
    GREN_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    GREN_PANZERSCHRECK = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    STORM_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mg42.lua"),
    STORM_MP44 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_mp44.lua"), -- stormtrooper
    STORM_PANZERSCHRECK = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerschreck.lua"),
    VOLKS_PANZERFAUST = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzerfaust.lua"), -- VALIDATE
    VOLKS_MP40 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_volksgrenadier_smg.lua"), -- volksgren
    PANZER_ARMOR = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panzer_iv_armour_skirts.lua"),
    PANZER_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_tank_top_mg42.lua"),
    STUG_ARMOR = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_armour_skirts.lua"),
    STUG_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_stug_iv_top_mg42.lua"),
    PANTHER_ARMOR = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    PANTHER_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_panther_armour_skirts.lua"),
    PIONEER_MINESWEEPER = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_squad_item_minesweeper.lua"),
    PIONEER_FLAMETHROWER = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_flammenwerfer42_flamethrower.lua"),
    HALFTRACK_FLAMETHROWER = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_flammenwerfer.lua"),
    HALFTRACK_STUKA = BP_GetUpgradeBlueprint("upgrade/axis/items/axis_halftrack_stuka.lua"),
    BUNKER_MG42 = BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_mg42_addition.lua"),
    BUNKER_REPAIR = BP_GetUpgradeBlueprint("upgrade/axis/axis_bunker_to_repair_facility.lua"),
    BUNKER_MED = BP_GetUpgradeBlueprint("upgrade/allies/cp_aide_station_upgrade_axis.lua"),
    CONVERT_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),


    -- veterancy levels that can be researched
    VETERANCY = {
    INFANTRY1 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_1.lua"),
    INFANTRY2 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_2.lua"),
    INFANTRY3 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_infantry_3.lua"),
    SUPPORT_INF1 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_1.lua"),
    SUPPORT_INF2 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_2.lua"),
    SUPPORT_INF3 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_support_3.lua"),
    VEHICLE1 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_1.lua"),
    VEHICLE2 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_2.lua"),
    VEHICLE3 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_vehicle_3.lua"),
    TANK1 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_1.lua"),
    TANK2 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_2.lua"),
    TANK3 = BP_GetUpgradeBlueprint("upgrade/axis/veteran_tank_3.lua"),
    },

    },

    --*** COMMON WEALTH ***
    CW = {
    -- SQUAD UPGRADES = nil,
    -- SAPPERS
    PIAT = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_piat_package.lua"),
    EXPERT_ENGINEER = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_expert_engineer.lua"),
    DEMOLITIONS = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_demolitions.lua"),
    -- TOMMIES
    RECON_TEAM = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_recon_team.lua"),
    BREN = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_bren_package.lua"),
    RIFLE_GRENADE = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_rifle_grenade.lua"),
    -- TANKS
    TANKCOMMANDER = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_tank_commander.lua"),
    CHURCHILL_MINE_PLOW = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_churchill_mine_plow.lua"),
    BREN_CARRIER_MMG = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_bren_carrier_mmg_upgrade.lua"),
    HULL_DOWN = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_hull_down.lua"),
    -- MISC
    MEDICAL = BP_GetUpgradeBlueprint("upgrade/allies_cw/items/commonwealth_sgt_medical_package.lua"),

    -- HQ
    HQ_SPEED = BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_speed_upgrade.lua"),
    HQ_ECONOMY_BONUS = BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_economy_upgrade.lua"),
    MOBILEHQ = BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_enable_spawning.lua"),
    ENABLE_MOBILE_HQ = BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_enable_mobile.lua"),
    CONVERT_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),

    -- To unlock stuart and armour hq without building a captain
    CAPTAIN_TECH_UNLOCK = BP_GetUpgradeBlueprint("upgrade/allies_cw/commonwealth_building_captain_upgrade.lua"),
    },

    --*** PANZER ELITE ***
    ELITE = {

    -- Tech Building upgrades
    PANZER_ARTILLERIE = BP_GetUpgradeBlueprint("upgrade/axis_pe/gebaude_heavy_arms_upgrade.lua"),
    PANZERJAGER = BP_GetUpgradeBlueprint("upgrade/axis_pe/gebaude_light_arms_upgrade.lua"),
    LOGISTIK = BP_GetUpgradeBlueprint("upgrade/axis_pe/struktur_capital_upgrade.lua"),
    KAMPFGRUPPE = BP_GetUpgradeBlueprint("upgrade/axis_pe/struktur_armaments_upgrade.lua"),
    AT_GRENADE = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_at_grenade.lua"),
    ADVANCED_REPAIR = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_advanced_repair.lua"),
    INCENDIARY_GRENADE = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_incendiary_grenade.lua"),
    CAPTURE_RATE = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_capture_rate.lua"),
    SQUAD_SIZE = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_squad_size.lua"),
    DEFENSIVE_OPS = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_regeneration.lua"),
    GROUP_ZEAL = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_mob_bonus.lua"),
    VETERAN_SGT = BP_GetUpgradeBlueprint("upgrade/axis_pe/upgrade_vet_sgt.lua"),
    PANTHER_BATTLEGROUP = BP_GetUpgradeBlueprint("upgrade/axis_pe/axis_pe_panther_battlegroup.lua"),

    STUBBYMG42 = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_pnze_iv_top_mg42.lua"),
    STUBBYARMORSKIRTS = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_Panzer_iv_armour_skirts.lua"),
    SECUREPKG221 = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_221_secure_package.lua"),

    -- panzer grenadier slot items
    PANZERSCHRECK = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_anti_tank_package.lua"),
    MP44 = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_mp44_package.lua"),
    G43 = BP_GetUpgradeBlueprint("upgrade/axis_pe/items/panzer_elite_squad_g43_package.lua"),
    CONVERT_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building_panzer_elite.lua"),

    VETERANCY = {
    INFANTRY = {
    OFFENSIVE1 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_1.lua"),
    OFFENSIVE2 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_2.lua"),
    OFFENSIVE3 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_offensive_3.lua"),
    DEFENSIVE1 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_1.lua"),
    DEFENSIVE2 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_2.lua"),
    DEFENSIVE3 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_infantry_defensive_3.lua"),
    },

    VEHICLE = {
    OFFENSIVE1 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_1.lua"),
    OFFENSIVE2 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_2.lua"),
    OFFENSIVE3 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_offensive_3.lua"),
    DEFENSIVE1 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_1.lua"),
    DEFENSIVE2 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_2.lua"),
    DEFENSIVE3 = BP_GetUpgradeBlueprint("upgrade/axis_pe/vet_vehicle_defensive_3.lua"),
    },
    },
    },

    -- *** Soviets ***
    SOVIET = {

    -- items
    SOVIET_KATYUSHA = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_katyusha.lua"),
    SOVIET_KATYUSHA_ROCKETS = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_kayusha_rockets.lua"),
    SOVIET_PPSH_SMG = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_ppsh_smg.lua"),
    SOVIET_PTRD_AT_RIFLE = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_ptrd_at_rifle.lua"),
    SOVIET_RIFLE = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_rifle.lua"),
    SOVIET_RIFLE2 = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_rifle2.lua"),
    SOVIET_RIFLE3 = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_rifle3.lua"),
    SOVIET_RIFLE4 = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_rifle4.lua"),
    SOVIET_ROKS_FLAME = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_roks_flamethrower.lua"),
    SOVIET_DEMO = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_squad_item_demo.lua"),
    SOVIET_MINESWEEPER = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_squad_item_minesweeper.lua"),
    SOVIET_SATCHEL = BP_GetUpgradeBlueprint("upgrade/allies_soviets/items/soviets_squad_item_satchel.lua"),
    CONVERT_AMBIENT_BUILDING = BP_GetUpgradeBlueprint("upgrade/convert_ambient_building.lua"),
    -- upgrades
    SOVIET_ARTY_SPOTTER = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_artillery_spotter_upgrade.lua"),
    SOVIET_BODY_ARMOR = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_body_upgrade.lua"),
    SOVIET_DSHK = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_dshk_upgrade.lua"),
    SOVIET_MEN_VS_TANKS = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_men_against_tanks_upgrade.lua"),
    SOVIET_MEN_VS_TANKS_HELPER = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_men_against_tanks_upgrade_helper.lua"),
    SOVIET_MOLOTOV = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_molotov_upgrade.lua"),
    SOVIET_OFFICER = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_officer_upgrade.lua"),
    SOVIET_PHOSPHORUS = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_phosphor_rounds_upgrade.lua"),
    SOVIET_RIFLE_UPGRADE = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_rifle_upgrade.lua"),
    SOVIET_ZIS_TREADBKER = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_zis_threadbreaker_upgrade.lua"),
    SOVIET_T34_T85 = BP_GetUpgradeBlueprint("upgrade/allies_soviets/soviets_t34_85.lua"),

    },

    COMMANDER_TREE =
    {
    ALLIES =
    {
    AIRBORNE = BP_GetUpgradeBlueprint("upgrade/allied_airborne"),
    AIRBORNE_00 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_00"), -- Paratroopers
    AIRBORNE_01 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_01"), -- Paradrop AT Gun
    AIRBORNE_02 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_02"), -- Supply Drops
    AIRBORNE_10 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_10"), -- Air Recon
    AIRBORNE_11 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_11"), -- Strafing Run
    AIRBORNE_12 = BP_GetUpgradeBlueprint("upgrade/allied_airborne_12"), -- Rocket Strike
    INFANTRY = BP_GetUpgradeBlueprint("upgrade/allied_infantry"),
    INFANTRY_00 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_00"), -- Improved build times
    INFANTRY_01 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_01"), -- Rangers
    INFANTRY_02 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_02"), -- Off-Map Reinforcements
    INFANTRY_10 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_10"), -- Riflemen build defenses
    INFANTRY_11 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_11"), -- Off-Map Artillery
    INFANTRY_12 = BP_GetUpgradeBlueprint("upgrade/allied_infantry_12"), -- Howitzer
    ARMOR = BP_GetUpgradeBlueprint("upgrade/allied_armor"),
    ARMOR_00 = BP_GetUpgradeBlueprint("upgrade/allied_armor_00"), -- Vehicles Capture Points
    ARMOR_01 = BP_GetUpgradeBlueprint("upgrade/allied_armor_01"), -- Calliope
    ARMOR_02 = BP_GetUpgradeBlueprint("upgrade/allied_armor_02"), -- Pershing
    ARMOR_10 = BP_GetUpgradeBlueprint("upgrade/allied_armor_10"), -- Improved production
    ARMOR_11 = BP_GetUpgradeBlueprint("upgrade/allied_armor_11"), -- Vehicle Self Repair
    ARMOR_12 = BP_GetUpgradeBlueprint("upgrade/allied_armor_12"), -- Strength of Production
    },

    AXIS =
    {
    DEFENSE = BP_GetUpgradeBlueprint("upgrade/axis_defense"),
    DEFENSE_00 = BP_GetUpgradeBlueprint("upgrade/axis_defense_00"), -- for the fatherland
    DEFENSE_01 = BP_GetUpgradeBlueprint("upgrade/axis_defense_01"), -- building defenses
    DEFENSE_02 = BP_GetUpgradeBlueprint("upgrade/axis_defense_02"), -- flak 88
    DEFENSE_10 = BP_GetUpgradeBlueprint("upgrade/axis_defense_10"), -- los around strat points
    DEFENSE_11 = BP_GetUpgradeBlueprint("upgrade/axis_defense_11"), -- registered artillery
    DEFENSE_12 = BP_GetUpgradeBlueprint("upgrade/axis_defense_12"), -- standard off map rocket strike
    PROPAGANDA = BP_GetUpgradeBlueprint("upgrade/axis_propaganda"),
    PROPAGANDA_00 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_00"), -- zeal
    PROPAGANDA_01 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_01"), -- firestorm
    PROPAGANDA_02 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_02"), -- tiger ace
    PROPAGANDA_10 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_10"), -- inspired assault
    PROPAGANDA_11 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_11"), -- propaganda war
    PROPAGANDA_12 = BP_GetUpgradeBlueprint("upgrade/axis_propaganda_12"), -- V1 Rocket
    BLITZKRIEG = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg"),
    BLITZKRIEG_00 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_00"), -- stormtroopers
    BLITZKRIEG_01 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_01"), -- stormtroopers with stug
    BLITZKRIEG_02 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_02"), -- stormtroopers with tiger
    BLITZKRIEG_10 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_10"), -- assault grenadiers
    BLITZKRIEG_11 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_11"), -- resource blitz
    BLITZKRIEG_12 = BP_GetUpgradeBlueprint("upgrade/axis_blitzkrieg_12"), -- blitzkrieg assault
    },

    --*** COMMON WEALTH -- COMMANDER TREE ***
    CW = {
    CANADIAN_ARTILLERY = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery"), -- ROYAL CANADIAN ARTILLERY
    CANADIAN_ARTILLERY_00 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_00"), -- Forward Observation Officers
    CANADIAN_ARTILLERY_01 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_01"), -- Creeping Barrage
    CANADIAN_ARTILLERY_02 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_02"), -- Priest 105mm SPG
    CANADIAN_ARTILLERY_10 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_10"), -- Supercharge Artillery (25 pdr)
    CANADIAN_ARTILLERY_11 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_11"), -- Overwatch (25 pdr)
    CANADIAN_ARTILLERY_12 = BP_GetUpgradeBlueprint("upgrade/royal_canadian_artillery_12"), -- Victor Target

    COMMANDOS = BP_GetUpgradeBlueprint("upgrade/royal_commandos"), -- ROYAL COMMANDOS
    COMMANDOS_00 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_00"), -- Commandos by Glider
    COMMANDOS_01 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_01"), -- Tetrarch by Glider
    COMMANDOS_02 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_02"), -- Glider HQ
    COMMANDOS_10 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_10"), -- Radio Triangulation
    COMMANDOS_11 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_11"), -- Ultra Decryption
    COMMANDOS_12 = BP_GetUpgradeBlueprint("upgrade/royal_commandos_12"), -- Decoy

    ENGINEERS = BP_GetUpgradeBlueprint("upgrade/royal_engineers"), -- ROYAL ENGINEERS
    ENGINEERS_00 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_00"), -- Improve emplacements
    ENGINEERS_01 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_01"), -- Hull Down Tactics
    ENGINEERS_02 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_02"), -- Improved HQ Vehicles
    ENGINEERS_10 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_10"), -- Churchill Infantry Tank
    ENGINEERS_11 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_11"), -- Churchill AVRE
    ENGINEERS_12 = BP_GetUpgradeBlueprint("upgrade/royal_engineers_12"), -- Churchill Crocodile
    },

    --*** PANZER ELITE -- COMMANDER TREE ***
    ELITE = {
    LUFTWAFFE = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support"), -- LUFTWAFFE SUPPORT
    LUFTWAFFE_00 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_00"), -- Fallshirmjager infiltration
    LUFTWAFFE_01 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_01"), -- Air Dropped Mines
    LUFTWAFFE_02 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_02"), -- Henschel AT
    LUFTWAFFE_10 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_10"), -- Luftwaffe Defenses
    LUFTWAFFE_11 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_11"), -- Wirblewind Flak Panzer
    LUFTWAFFE_12 = BP_GetUpgradeBlueprint("upgrade/pe_luftwaffe_support_12"), -- Flak 88

    SCORCHED_EARTH = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth"), -- SCORCHED EARTH
    SCORCHED_EARTH_00 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_00"), -- Booby Trap Building
    SCORCHED_EARTH_01 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_01"), -- Booby trap strat point
    SCORCHED_EARTH_02 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_02"), -- Sector Artillery
    SCORCHED_EARTH_10 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_10"), -- Road blocks
    SCORCHED_EARTH_11 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_11"), -- Scorched Earth
    SCORCHED_EARTH_12 = BP_GetUpgradeBlueprint("upgrade/pe_scorched_earth_12"), -- Bergetiger Tank Recovery

    TANK_DESTROYER = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer"), -- TANK DESTROYER
    TANK_DESTROYER_00 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_00"), -- Teller Mines
    TANK_DESTROYER_01 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_01"), -- Hetzer Tank
    TANK_DESTROYER_02 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_02"), -- APCR Roads
    TANK_DESTROYER_10 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_10"), -- Tank Awareness
    TANK_DESTROYER_11 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_11"), -- Double Infantry AT
    TANK_DESTROYER_12 = BP_GetUpgradeBlueprint("upgrade/pe_tank_destroyer_12"), -- Jagdpanther

    },

    SOVIET = {
    SOVIETS_BT = BP_GetUpgradeBlueprint("upgrade/soviets_breakt"),
    SOVIETS_BT_00 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_00"),
    SOVIETS_BT_01 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_01"),
    SOVIETS_BT_02 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_02"),
    SOVIETS_BT_10 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_10"),
    SOVIETS_BT_11 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_11"),
    SOVIETS_BT_12 = BP_GetUpgradeBlueprint("upgrade/soviets_breakt_12"),

    SOVIETS_PROP = BP_GetUpgradeBlueprint("upgrade/soviets_prop"),
    SOVIETS_PROP_00 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_00"),
    SOVIETS_PROP_01 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_01"),
    SOVIETS_PROP_02 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_02"),
    SOVIETS_PROP_10 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_10"),
    SOVIETS_PROP_11 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_11"),
    SOVIETS_PROP_12 = BP_GetUpgradeBlueprint("upgrade/soviets_prop_12"),

    SOVIETS_UC = BP_GetUpgradeBlueprint("upgrade/soviets_uc"),
    SOVIETS_UC_00 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_00"),
    SOVIETS_UC_01 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_01"),
    SOVIETS_UC_02 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_02"),
    SOVIETS_UC_10 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_10"),
    SOVIETS_UC_11 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_11"),
    SOVIETS_UC_12 = BP_GetUpgradeBlueprint("upgrade/soviets_uc_12"),

    },
    },
    }


    --*** ABILITIES ***
    -- example of use: ABILITY.ALLIES.STICKY_BOMB
    ABILITY = {
    __scardoc_enum = true,

    --[[ COMMON ]]
    REPAIR = BP_GetAbilityBlueprint("abilities/repair_ability.lua"),
    REENABLE_CAPTURE = BP_GetAbilityBlueprint("abilities/reenable_capture_ability.lua"), -- an ability that counteracts the scorched earth ability of the panzer el
    MINESWEEPER = BP_GetAbilityBlueprint("abilities/toggle_minesweeper_flamethrower.lua"), -- VALIDATE

    SP = {

    SINGLE_FIRESTORM = BP_GetAbilityBlueprint("abilities/sp_single_firestorm.lua"),
    SINGLE_HOWITZER = BP_GetAbilityBlueprint("abilities/sp_single_howitzer.lua"),
    SINGLE_HOWITZER_ALTSOUND = BP_GetAbilityBlueprint("abilities/sp_single_howitzer_altsound.lua"),
    SINGLE_MORTAR = BP_GetAbilityBlueprint("abilities/sp_single_mortar.lua"),
    SINGLE_MORTAR_SMOKE = BP_GetAbilityBlueprint("abilities/sp_single_mortar_smoke.lua"),
    SINGLE_MORTAR_SMOKEENTRANCE = BP_GetAbilityBlueprint("abilities/sp_single_mortar_smokeentrance.lua"),
    SINGLE_NEBEL_ROCKET = BP_GetAbilityBlueprint("abilities/sp_single_nebel_rocket.lua"),
    SINGLE_STUKA_ROCKET = BP_GetAbilityBlueprint("abilities/sp_single_stuka_rocket.lua"),
    SINGLE_CREEPING_MORTAR = BP_GetAbilityBlueprint("abilities/sp_single_creepingbarrage_mortar.lua"),
    SINGLE_CREEPING_SMOKE = BP_GetAbilityBlueprint("abilities/sp_single_creepingbarrage_smoke.lua"),
    GOODWOOD_SCAR_FUNC = BP_GetAbilityBlueprint("abilities/sp_goodwood_scar_func.lua"),
    CAEN_BOMBING_RUN = BP_GetAbilityBlueprint("abilities/sp_caen_air_strike_ability_rockets.lua"), -- bombing run that ignores the rule to use the longest distance
    CAEN_STRAFING_RUN = BP_GetAbilityBlueprint("abilities/sp_caen_air_strike_ability_strafe.lua"), -- STRAFING run that ignores the rule to use the longest distance
    TYPHOON_STRAFE_CAEN = BP_GetAbilityBlueprint("abilities/sp_caen_commonwealth_air_strike_ability_strafe.lua"), -- strafing run used in caen assault m06
    CAEN_RECON_RUN = BP_GetAbilityBlueprint("abilities/sp_caen_air_recon_ability.lua"), -- RECON run that ignores the rule to use the longest distance
    CAEN_START_BOMBING_RUNS = BP_GetAbilityBlueprint("abilities/sp/sp_cxp1_caen_bombingruns.lua"), -- starts the end of mission bombing runs in Caen Assault
    CAEN_MARK_STRONGPOINT = BP_GetAbilityBlueprint("abilities/commonwealth_mark_strongpoint_sp.lua"), -- officer ability to mark the defensive positions in Caen Assault
    HILL112_WALKINGBARRAGE = BP_GetAbilityBlueprint("abilities/sp/sp_cxp1_hill112_walkingbarrage.lua"),
    MOVE_BOAT = BP_GetAbilityBlueprint("abilities/sp/boat_sp_ability.lua"), -- ability to move the boats for Oosterbeek in OMG campaign
    DROP_WEAPONS = BP_GetAbilityBlueprint("abilities/sp/sp_drop_weapons.lua"), -- use this force a squad to drop their slot items
    KING_TIGER = BP_GetAbilityBlueprint("abilities/axis_reinforcements_ability_tiger_ace_sp.lua"), -- Tiger Ace Reinforcement Ability for Arnhem
    HELLS_PANZER_GRENADIERS = BP_GetAbilityBlueprint("abilities/sp_hells_highway_reinforcements_ability.lua"), -- Panzer Grenadier Reinforcement Ability for Hell's Highway Ambush
    FALLSHIRMJAGER_BUILDINGONLY = BP_GetAbilityBlueprint("abilities/sp_panzer_elite_infiltration_fallshirmjager_ability_building_only.lua"), -- Detects if fallshmjager building only ability
    FALLSHIRMJAGER_FOWONLY = BP_GetAbilityBlueprint("abilities/sp_panzer_elite_infiltration_fallshirmjager_ability_no_fow.lua"), -- Detects if fallshmjager fow only ability
    TOUCH_OF_DEATH = BP_GetAbilityBlueprint("abilities/sp/sp_touch_of_death.lua"), -- Slowly destroy an entity (that is NOT part of a squad), but uses the blowtorch animation for pioneers
    HENSCHEL_ALL = BP_GetAbilityBlueprint("abilities/panzer_elite_henschel_all_targets.lua"), -- SP specific Henschel strike that attacks all kinds of units, not just armour.
    PARADROP_ANYWHERE = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_infantry_sp_anywhere.lua"),
    DEFENSIVE_SMOKE = BP_GetAbilityBlueprint("abilities/sp_defensive_smokecloud.lua"),
    MORTARSTRIKE = BP_GetAbilityBlueprint("abilities/sp/sp_gen_single_mortar_strike.lua"),
    MORTARSTRIKE_OFFMAP = BP_GetAbilityBlueprint("abilities/sp/sp_gen_single_off_map_artillery_strike.lua"),
    M07_PARADROP = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_infantry_sp_anywhere.lua"),

    -- special SP versions to ensure that you can drop Gliders anywhere
    GLIDER_COMMANDOS = BP_GetAbilityBlueprint("abilities/glider_troops_sp.lua"),
    GLIDER_TETRARCH = BP_GetAbilityBlueprint("abilities/glider_tetrarch_sp.lua"),
    GLIDER_HQ = BP_GetAbilityBlueprint("abilities/glider_hq_ability_sp.lua"),

    -- CoH
    M02_PARADROP_A = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_a.lua"),
    M02_PARADROP_B = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_b.lua"),
    M02_PARADROP_C = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_c.lua"),
    M02_PARADROP_D = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_d.lua"),
    M02_PARADROP_E = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_e.lua"),
    M02_PARADROP_GUYS = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_paratroopers.lua"),
    M02_PARADROP_GUYSAT = BP_GetAbilityBlueprint("abilities/sp/sp_m02_paradrop_paratroopers_antitank.lua"),
    SP_FIRENEBELWERFER = BP_GetAbilityBlueprint("abilities/axis_nebelwerfer_barrage_improved.lua"),
    SP_DROP_MUNITION = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_supplies_munitions_sp.lua"),
    AIRBORNE_MORTAR = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_airborne_mortar.lua"),

    },

    ALLIES = {

    STICKY_BOMB = BP_GetAbilityBlueprint("abilities/ally_throw_sticky_bombs.lua"),
    CUT_WIRES = BP_GetAbilityBlueprint("abilities/cut_wires.lua"),
    SATCHEL_CHARGE = BP_GetAbilityBlueprint("abilities/ally_throw_satchel_charge.lua"),
    SATCHEL_CHARGE_NOREQS = BP_GetAbilityBlueprint("abilities/ally_throw_satchel_charge_no_requirements.lua"),
    GRENADE = BP_GetAbilityBlueprint("abilities/ally_throw_grenade.lua"),
    GRENADE_NOREQS = BP_GetAbilityBlueprint("abilities/ally_throw_grenade_no_requirements.lua"),
    FIREUP = BP_GetAbilityBlueprint("abilities/ally_fireup_ability.lua"),
    SHERMAN_BULLDOZER = BP_GetAbilityBlueprint("abilities/ally_heavy_crush_bulldozer_ability.lua"), -- moves bulldozer up and down
    MORTAR_BARRAGE = BP_GetAbilityBlueprint("abilities/ally_sync_mortar_barrage.lua"), -- normal mortar barrage
    MORTAR_SMOKE = BP_GetAbilityBlueprint("abilities/ally_mortar_smoke_barrage.lua"),
    HOWITZER_BARRAGE = BP_GetAbilityBlueprint("abilities/ally_howitzer_barrage_ability.lua"),
    SHERMAN_SMOKE = BP_GetAbilityBlueprint("abilities/defensive_smokecloud.lua"),
    BAR_SUPPRESSION = BP_GetAbilityBlueprint("abilities/ally_suppression_ability_rifle_squad_infantry.lua"),
    CALLIOPE = BP_GetAbilityBlueprint("abilities/ally_fire_calliope.lua"),

    MANPOWER1 = BP_GetAbilityBlueprint("abilities/resource_manpower_upgrade.lua"), -- ability? only use the upgrade?
    MANPOWER2 = BP_GetAbilityBlueprint("abilities/resource_manpower_upgrade_advanced.lua"), -- ability? only use the upgrade?
    },

    AXIS = {
    GRENADE = BP_GetAbilityBlueprint("abilities/axis_throw_grenade.lua"),
    NEB_BARRAGE = BP_GetAbilityBlueprint("abilities/axis_nebelwerfer_barrage.lua"),
    MORTAR_BARRAGE = BP_GetAbilityBlueprint("abilities/axis_sync_mortar_barrage.lua"),
    MORTAR_SMOKE = BP_GetAbilityBlueprint("abilities/axis_mortar_smoke_barrage.lua"),
    CUT_WIRES = BP_GetAbilityBlueprint("abilities/cut_wires_axis.lua"),
    GOLIATH_DETONATE = BP_GetAbilityBlueprint("abilities/goliath_detonate.lua"),
    CAMOUFLAGE = BP_GetAbilityBlueprint("abilities/camouflage_toggled_knights_cross.lua"), -- really for stormtroopers & snipers
    CAMOUFLAGE_AT = BP_GetAbilityBlueprint("abilities/axis_at_guns_camouflage_toggled.lua"),
    HALFTRACK_ROCKETS = BP_GetAbilityBlueprint("abilities/axis_stuka_zu_fuss_rocket_halftrack.lua"),
    MEDICAL_KIT = BP_GetAbilityBlueprint("abilities/medical_kit.lua"),
    MEDICAL_KIT_FIELD = BP_GetAbilityBlueprint("abilities/medical_kit_field.lua"),
    OFFICER_ROUT = BP_GetAbilityBlueprint("abilities/rout_officer_ability.lua"),
    BUNKER_MORTAR = BP_GetAbilityBlueprint("abilities/axis_sync_mortar_bunker_barrage.lua"),
    HEAVY_CRUSH = BP_GetAbilityBlueprint("abilities/axis_heavy_crush_ability.lua"),
    },

    --*** COMMON WEALTH ***
    CW = {
    PRIEST_BARRAGE = BP_GetAbilityBlueprint("abilities/commonwealth_priest_barrage_ability.lua"),
    HQ_REINFORCE = BP_GetAbilityBlueprint("abilities/commonwealth_mobile_hq_reinforcements_ability.lua"),
    PDR_25_COUNTERBATTERY_SP = BP_GetAbilityBlueprint("abilities/counter_battery_sp.lua"),
    PDR_25_BARRAGE = BP_GetAbilityBlueprint("abilities/commonwealth_25pounder_barrage_ability.lua"),
    PDR_25_BARRAGE_SUPERCHARGE = BP_GetAbilityBlueprint("abilities/commonwealth_25pounder_supercharge.lua"),
    PDR_25_OVERWATCH = BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder.lua"),
    PDR_25_OVERWATCH_REMOVE = BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder_remove.lua"),
    SUPPRESSION_BREAK = BP_GetAbilityBlueprint("abilities/commonwealth_suppression_break.lua"),
    GRENADE_COMMANDO = BP_GetAbilityBlueprint("abilities/commonwealth_throw_grenade_commando.lua"),
    RIFLE_GRENADE = BP_GetAbilityBlueprint("abilities/commonwealth_smoke_rifle_grenade_ability.lua"),
    SUPERCHARGE_BARRAGE = BP_GetAbilityBlueprint("abilities/commonwealth_priest_barrage_ability_supercharge.lua"),
    HQ_SETUP = BP_GetAbilityBlueprint("abilities/commonwealth_truck_setup.lua"),
    HQ_SETUP_MAINHQ = BP_GetAbilityBlueprint("abilities/commonwealth_truck_hq_setup.lua"),
    HQ_SETUP_INFANTRYHQ = BP_GetAbilityBlueprint("abilities/commonwealth_truck_infantry_setup.lua"),
    HQ_SETUP_ARMOURHQ = BP_GetAbilityBlueprint("abilities/commonwealth_truck_armour_setup.lua"),
    LIEUTENANT_FOLLOW = BP_GetAbilityBlueprint("abilities/follow_ability.lua"),
    ATGUN_ARMOURPIERCING = BP_GetAbilityBlueprint("abilities/commonwealth_apds_armour_piercing.lua"),
    TYPHOON_RECON = BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_recon_ability.lua"),
    TYPHOON_STRAFE = BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_strike_ability_strafe.lua"),
    TYPHOON_ROCKET = BP_GetAbilityBlueprint("abilities/sp_commonwealth_air_strike_ability_rockets.lua"),
    FIRE_AVRE_PETARD = BP_GetAbilityBlueprint("abilities/commonwealth_fire_avre_petard.lua"),
    BUTTON_ENEMY_VEHICLE = BP_GetAbilityBlueprint("abilities/button_enemy_vehicle"),
    TOMMY_MARKSMAN = BP_GetAbilityBlueprint("abilities/commonwealth_recon_marksmen_shot"),
    FLANKING_SPEED = BP_GetAbilityBlueprint("abilities/commonwealth_flank_speed_bonus"),
    CREEPING_BARRAGE = BP_GetAbilityBlueprint("abilities/creeping_barrage_25_pounder.lua"),
    CANISTER_FIRE = BP_GetAbilityBlueprint("abilities/commonwealth_fire_canister_ammunition.lua"),
    },

    --*** PANZER ELITE ***
    ELITE = {
    HOWITZER_BARRAGE = BP_GetAbilityBlueprint("abilities/panzer_elite_howitzer_barrage_ability.lua"),

    HUMMEL_BARRAGE = BP_GetAbilityBlueprint("abilities/panzer_elite_howitzer_barrage_ability.lua"),
    MUNITIONPANZER_GOLIATH = BP_GetAbilityBlueprint("abilities/pe_munitionspanzer_goliath.lua"),
    MUNITIONPANZER_FOLLOW = BP_GetAbilityBlueprint("abilities/follow_ability_munitions_halftrack.lua"),
    MORTAR_BARRAGE = BP_GetAbilityBlueprint("abilities/panzer_elite_sync_mortar_barrage.lua"),
    INCENDIARY_MORTAR = BP_GetAbilityBlueprint("abilities/panzer_elite_incendiary_mortar_barrage.lua"),
    INCENDIARY_GRENADE_GREN = BP_GetAbilityBlueprint("abilities/panzer_elite_throw_incendiary_grenade.lua"),
    INCENDIARY_GRENADE_FALLSH = BP_GetAbilityBlueprint("abilities/panzer_elite_fallschirmjager_throw_incendiary_grenade.lua"),
    PANTHER_BATTLEGROUP = BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_panther_battlegroup.lua"),
    PANZER_RAPIDFIRE = BP_GetAbilityBlueprint("abilities/pe_lockdown_panzeriv_rapid_fire.lua"),
    MARDER_LOCKDOWN = BP_GetAbilityBlueprint("abilities/pe_lockdown_marder_iii_at.lua"),
    REPAIRE_PE = BP_GetAbilityBlueprint("abilities/repair_ability_pe.lua"),
    REPAIRE_PE_IMPROVED = BP_GetAbilityBlueprint("abilities/repair_ability_pe_improved.lua"),
    SCOUT_CAR_SETUP = BP_GetAbilityBlueprint("abilities/panzer_elite_car_setup.lua"),
    SCOUT_CAR_UNSETUP = BP_GetAbilityBlueprint("abilities/panzer_elite_car_unsetup.lua"),
    HALFTRACK_TREAD_BREAKER = BP_GetAbilityBlueprint("abilities/pe_test_halftrack_sniper.lua"),

    },

    SOVIET = {

    SOVIET_BARRAGE_152 = BP_GetAbilityBlueprint("abilities/152_barrage_ability.lua"),
    SOVIET_CAMO_PART = BP_GetAbilityBlueprint("abilities/camouflage_toggled_part.lua"),
    SOVIET_CAMO_PART_SLOW = BP_GetAbilityBlueprint("abilities/camouflage_toggled_part_slow.lua"),
    SOVIET_CAMO_SNIPER = BP_GetAbilityBlueprint("abilities/camouflage_toggled_sniper_soviets.lua"),
    SOVIET_RECOVER_MECH = BP_GetAbilityBlueprint("abilities/recover_ability_mech.lua"),
    SOVIET_REPAIR_MECH = BP_GetAbilityBlueprint("abilities/repair_ability_mech.lua"),
    SOVIET_BOOBY_TRAP = BP_GetAbilityBlueprint("abilities/soviet_booby_trap_ability.lua"),
    SOVIET_BACKUP = BP_GetAbilityBlueprint("abilities/soviets_backup.lua"),
    SOVIET_BINOC = BP_GetAbilityBlueprint("abilities/soviets_bino.lua"),
    SOVIET_FIRE_KATYUSHA = BP_GetAbilityBlueprint("abilities/soviets_fire_katyusha.lua"),
    SOVIET_HEROIC_CHARGE = BP_GetAbilityBlueprint("abilities/soviets_heroic_charge_ability.lua"),
    SOVIET_INCENDIARY_MORTAR = BP_GetAbilityBlueprint("abilities/soviets_incendiary_mortar_barrage.lua"),
    SOVIET_KV2_FIRE = BP_GetAbilityBlueprint("abilities/soviets_kv2_fire.lua"),
    SOVIET_LIGHT_ARTY = BP_GetAbilityBlueprint("abilities/soviets_light_arty_barrage.lua"),
    SOVIET_MEDICAL_AURA = BP_GetAbilityBlueprint("abilities/soviets_medical_aura.lua"),
    SOVIET_MORTAR_SMOKE = BP_GetAbilityBlueprint("abilities/soviets_mortar_smoke_barrage.lua"),
    SOVIET_MOTIVATE = BP_GetAbilityBlueprint("abilities/soviets_motivate_ability.lua"),
    SOVIET_REPAIR = BP_GetAbilityBlueprint("abilities/soviets_repair_ability.lua"),
    SOVIET_SNIPER_ARTY = BP_GetAbilityBlueprint("abilities/soviets_sniper_artillery.lua"),
    SOVIET_SU_76_AMBUSH = BP_GetAbilityBlueprint("abilities/soviets_su-76_ambush.lua"),
    SOVIET_MORTAR_BARRAGE = BP_GetAbilityBlueprint("abilities/soviets_sync_mortar_barrage.lua"),
    SOVIET_TREADBREAKER = BP_GetAbilityBlueprint("abilities/soviets_threadbreaker.lua"),
    SOVIET_THROW_COCKTAIL = BP_GetAbilityBlueprint("abilities/soviets_throw_cocktail.lua"),
    SOVIET_THROW_GRENADE = BP_GetAbilityBlueprint("abilities/soviets_throw_grenade.lua"),
    SOVIET_THROW_RPG = BP_GetAbilityBlueprint("abilities/soviets_throw_rpg.lua"),
    SOVIET_THROW_SATCHEL = BP_GetAbilityBlueprint("abilities/soviets_throw_satchel_charge.lua"),
    SOVIET_THROW_SMOKE = BP_GetAbilityBlueprint("abilities/soviets_throw_smoke.lua"),
    SOVIET_AMBUSH = BP_GetAbilityBlueprint("abilities/soviets_toggle_ambush.lua"),
    SOVIET_AMBUSH_PTRD = BP_GetAbilityBlueprint("abilities/soviets_toggle_ambush_ptrd.lua"),
    SOVIET_OBSERVE = BP_GetAbilityBlueprint("abilities/soviets_toggle_observe.lua"),
    SOVIET_ROLLING_FORT = BP_GetAbilityBlueprint("abilities/soviets_rolling_fort.lua"),

    },

    COMMANDER_TREE = {

    ALLIES = {
    -- airborne
    SUPPLY_DROP = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability_supplies.lua"),
    RECRUIT_PARADROP = BP_GetAbilityBlueprint("abilities/ally_paradrop_ability.lua"),
    RECRUIT_PARADROP_AT = BP_GetAbilityBlueprint("abilities/ally_paradrop_57mm_at.lua"),
    RECON = BP_GetAbilityBlueprint("abilities/ally_air_recon_ability.lua"),
    STRAFE_MG = BP_GetAbilityBlueprint("abilities/ally_air_strike_ability_strafe.lua"),
    STRAFE_ROCKET = BP_GetAbilityBlueprint("abilities/ally_air_strike_ability_rockets.lua"),

    -- infantry (the rest of the abilities can be acquired through upgrades
    RECRUIT_RANGERS = BP_GetAbilityBlueprint("abilities/ally_reinforcements_ability_rangers.lua"),
    RECRUIT_COMBAT_GROUP = BP_GetAbilityBlueprint("abilities/reinforcements_ability.lua"),
    HOWITZER_SHOOT = BP_GetAbilityBlueprint("abilities/ally_off_map_howitzer_shoot.lua"),

    -- armor
    RECRUIT_CALLIOPE = BP_GetAbilityBlueprint("abilities/pershing_reinforce.lua"),
    RECRUIT_PERSHING = BP_GetAbilityBlueprint("abilities/calliope_reinforce.lua"),
    ARMOR_HEAL = BP_GetAbilityBlueprint("abilities/allied_armor_self_heal.lua"),
    WAR_MACHINE = BP_GetAbilityBlueprint("abilities/attrition_ability.lua"),
    },

    AXIS = {
    -- terror/propaganda
    INSPIRED_ASSAULT = BP_GetAbilityBlueprint("abilities/axis_for_the_fuhrer.lua"),
    PROPAGANDA_WAR = BP_GetAbilityBlueprint("abilities/rout_ability.lua"),
    FIRESTORM = BP_GetAbilityBlueprint("abilities/axis_terror_bombardment.lua"),
    V1_ROCKET = BP_GetAbilityBlueprint("abilities/V1_target_ability.lua"),
    RECRUIT_TIGER_ACE = BP_GetAbilityBlueprint("abilities/axis_reinforcements_ability_tiger_ace.lua"),

    -- blitzkrieg
    RECRUIT_STORMTROOPERS = BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability.lua"),
    RECRUIT_STUG = BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability_with_stug.lua"), -- recruits stormtroopers and stug
    RECRUIT_TIGER = BP_GetAbilityBlueprint("abilities/axis_stormtrooper_ability_with_tiger.lua"), -- recruits stormtroopers and a tiger
    RESOURCE_BLITZ = BP_GetAbilityBlueprint("abilities/axis_manpower_resource_push.lua"),
    ASSAULT = BP_GetAbilityBlueprint("abilities/axis_assault_ability.lua"),
    BLITZKRIEG = BP_GetAbilityBlueprint("abilities/blitzkrieg_tactics.lua"),

    -- defense
    FATHERLAND = BP_GetAbilityBlueprint("abilities/for_the_fatherland.lua"),
    DEFENSIVE_ARTILLERY = BP_GetAbilityBlueprint("abilities/axis_off_map_defensive_bombardment.lua"),
    ROCKET_BARRAGE = BP_GetAbilityBlueprint("abilities/axis_280mm_rocket_barrage.lua"),
    },

    --*** COMMON WEALTH ***
    CW = {
    -- royal canadian artillery
    FORWARD_OBSERVATION = BP_GetAbilityBlueprint("abilities/commonwealth_foo_artillery.lua"),
    PDR_25_SUPERCHARGE = BP_GetAbilityBlueprint("abilities/commonwealth_sync_mortar_supercharge.lua"),
    PDR_25_CREEPING_BARRAGE = BP_GetAbilityBlueprint("abilities/creeping_barrage_25_pounder.lua"),
    PDR_25_OVERWATCH = BP_GetAbilityBlueprint("abilities/overwatch_barrage_25_pounder.lua"),
    RECRUIT_PRIEST = BP_GetAbilityBlueprint("abilities/commonwealth_priest_reinforcement.lua"),

    -- royal commandos
    GLIDER_COMMANDOS = BP_GetAbilityBlueprint("abilities/glider_troops.lua"),
    GLIDER_TETRARCH = BP_GetAbilityBlueprint("abilities/glider_tetrarch.lua"),
    GLIDER_HQ = BP_GetAbilityBlueprint("abilities/glider_hq_ability.lua"),
    DECOY_ARTILLERY = BP_GetAbilityBlueprint("abilities/commonwealth_decoy_artillery.lua"),
    REAL_ARTILLERY = BP_GetAbilityBlueprint("abilities/commonwealth_decoy_artillery_real.lua"),

    -- royal engineers
    RECRUIT_CHURCHILL = BP_GetAbilityBlueprint("abilities/commonwealth_churchill_tank_reinforcement.lua"),
    RECRUIT_CHURCHILL_AVRE = BP_GetAbilityBlueprint("abilities/commonwealth_churchill_avre_reinforcement.lua"),
    RECRUIT_CHURCHILL_CROC = BP_GetAbilityBlueprint("abilities/commonwealth_churchill_crocodile_reinforcement.lua"),
    HULL_DOWN = BP_GetAbilityBlueprint("abilities/commonwealth_hull_down.lua"),
    },

    --*** PANZER ELITE ***
    ELITE = {

    -- luftwaffe
    AIR_DROPPED_MINES = BP_GetAbilityBlueprint("abilities/axis_pe_air_dropped_mines.lua"), -- munitions
    RECRUIT_LUFTWAFFE = BP_GetAbilityBlueprint("abilities/panzer_elite_luftwaffe_ability.lua"), -- manpower
    RECRUIT_FALLSHIRMAJAGER = BP_GetAbilityBlueprint("abilities/panzer_elite_infiltration_fallshirmjager_ability.lua"), -- manpower
    HENSCHEL = BP_GetAbilityBlueprint("abilities/panzer_elite_henschel_at_strike.lua"), -- munitions
    WIRBLE_WIND = BP_GetAbilityBlueprint("abilities/panzer_elite_wirblewind_ability.lua"), -- manpower


    -- scorched earth
    SECTOR_ARTILLERY = BP_GetAbilityBlueprint("abilities/sector_artillery.lua"), -- munitions
    RECRUIT_HUMMEL = BP_GetAbilityBlueprint("abilities/panzer_elite_hummel_artillery.lua"),
    BERGE_TIGER = BP_GetAbilityBlueprint("abilities/panzer_elite_bergetiger_ability.lua"), -- manpower
    SCORCH_POINT = BP_GetAbilityBlueprint("abilities/disable_capture_ability.lua"),
    BOOBYTRAP_BUILDING = BP_GetAbilityBlueprint("abilities/panzer_elite_building_booby_trap.lua"),
    BOOBYTRAP = BP_GetAbilityBlueprint("abilities/booby_trap_ability.lua"), -- note this overwrites the Booby Trap Building button since the same button is used.

    -- tank destroyer
    RECRUIT_JAGDPANTHER = BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_jagdpanther.lua"), -- manpower
    RECRUIT_HETZER = BP_GetAbilityBlueprint("abilities/panzer_elite_reinforcements_hetzer.lua"), -- manpower
    },

    SOVIET = {

    -- breakthrough
    MECH = BP_GetAbilityBlueprint("abilities/soviets_mech.lua"),
    SPEECH = BP_GetAbilityBlueprint("abilities/soviets_speech.lua"),
    ISU_152 = BP_GetAbilityBlueprint("abilities/soviets_isu-152.lua"),
    SOVIET_AIR_STRIKE = BP_GetAbilityBlueprint("abilities/soviets_air_all_targets.lua"),
    SHERMAN = BP_GetAbilityBlueprint("abilities/soviets_sherman_ability.lua"),

    -- propaganda
    FOR_THE_MOTHERLAND = BP_GetAbilityBlueprint("abilities/soviets_for_the_motherland.lua"),
    GOD_O_WAR = BP_GetAbilityBlueprint("abilities/soviets_god_o_war_shoot.lua"),
    JUGGERNAUT = BP_GetAbilityBlueprint("abilities/soviets_jugg_ability.lua"),
    KATYUSHA = BP_GetAbilityBlueprint("abilities/soviets_katyusha.lua"),

    -- UC
    KV2_REIN = BP_GetAbilityBlueprint("abilities/soviets_kv2_reinforcement.lua"),
    NOT_ONE_STEP = BP_GetAbilityBlueprint("abilities/soviets_not_one.lua"),
    PARTISANS = BP_GetAbilityBlueprint("abilities/soviets_partisans.lua"),
    SNIPER_ACE_REIN = BP_GetAbilityBlueprint("abilities/soviets_reinforcements_ability_ace.lua"),

    },

    COHO = {
    }

    }

    }


    --[[ STANCES
    -- *no example of function in use yet*
    CAMOUFLAGE_OFF = Util_GetCamouflageStanceID("camouflage_stance_type/attack_stance.lua"),
    CAMOUFLAGE_ON = Util_GetCamouflageStanceID("camouflage_stance_type/hold_fire_stance.lua"),
    ]]


    --*** SLOT ITEMS ***
    -- (not to be confused with the "gameplay prop" EBP that slot items actually use)
    SLOT_ITEM = {
    __scardoc_enum = true,
    BAZOOKA = BP_GetSlotItemBlueprint("slot_item/allies_m9bazooka.lua"),
    LMG_42 = BP_GetSlotItemBlueprint("slot_item/axis_mg42.lua"),
    PANZERSCHRECK = BP_GetSlotItemBlueprint("slot_item/axis_panzerschreck.lua"),
    MP_44 = BP_GetSlotItemBlueprint("slot_item/axis_mp44.lua"),
    HMG_42 = BP_GetSlotItemBlueprint("slot_item/axis_mg42_hmg_item.lua"),
    AXIS_MORTAR = BP_GetSlotItemBlueprint("slot_item/axis_grw34_81mm_mortar.lua"),
    ALLIED_MORTAR = BP_GetSlotItemBlueprint("slot_item/allies_m2_60mm_mortar.lua"),
    SOVIET_GRENADE = BP_GetSlotItemBlueprint("slot_item/soviets_grenades.lua"),
    SOVIET_KATYUSHA = BP_GetSlotItemBlueprint("slot_item/soviets_katyusha.lua"),
    SOVIET_KV2_FIRE = BP_GetSlotItemBlueprint("slot_item/soviets_kv2_fire.lua"),
    SOVIET_LMG = BP_GetSlotItemBlueprint("slot_item/soviets_lmg.lua"),
    SOVIET_MOLOTOV = BP_GetSlotItemBlueprint("slot_item/soviets_molotov.lua"),
    SOVIET_PPSH_SMG = BP_GetSlotItemBlueprint("slot_item/soviets_ppsh_smg.lua"),
    SOVIET_PTRD_RIFLE = BP_GetSlotItemBlueprint("slot_item/soviets_ptrd_rifle.lua"),
    SOVIET_RIFLE = BP_GetSlotItemBlueprint("slot_item/soviets_rifle.lua"),
    SOVIET_RIFLE2 = BP_GetSlotItemBlueprint("slot_item/soviets_rifle2.lua"),
    SOVIET_FLAME = BP_GetSlotItemBlueprint("slot_item/soviets_roks_flamethrower_item.lua"),

    CW = {
    LMG_BREN = BP_GetSlotItemBlueprint("slot_item/commonwealth_bren_mark_2.lua"),
    PIAT = BP_GetSlotItemBlueprint("slot_item/commonwealth_piat.lua"),
    },
    }


    --*** CRITICAL HIT TYPES ***
    -- example of use: CRIT.VEH_MOBILITY_MAJOR
    CRIT = {
    __scardoc_enum = true,
    -- damage types, which are always needed for critical hits
    DAMAGE_RED = BP_GetDamageBlueprint("damage/damage_red.lua"),
    DAMAGE_GREEN = BP_GetDamageBlueprint("damage/damage_green.lua"),
    DAMAGE_YELLOW = BP_GetDamageBlueprint("damage/damage_yellow.lua"),

    BURN_DEATH_OOC = BP_GetCriticalBlueprint("critical/burn_death_out_of_control.lua"),

    --*** VEHICLES ***
    VEH = {
    DAMAGE_ENGINE = BP_GetCriticalBlueprint("critical/vehicle_damage_engine.lua"),
    MOBILITY_MAJOR = BP_GetCriticalBlueprint("critical/vehicle_destroy_engine.lua"),
    MAIN_WEAPON_DESTROYED = BP_GetCriticalBlueprint("critical/vehicle_destroy_maingun.lua"),
    CONTROL_FAST = BP_GetCriticalBlueprint("critical/vehicle_out_of_control_fast.lua"),
    CONTROL_SLOW = BP_GetCriticalBlueprint("critical/vehicle_out_of_control_slow.lua"),
    AXIS_KILL_TOP_MG = BP_GetCriticalBlueprint("critical/vehicle_kill_top_gunner_axis_tank.lua"),
    IMMOBILIZE = BP_GetCriticalBlueprint("critical/vehicle_lose_treads_or_wheels.lua"),
    },

    SOLDIER = {
    CASUALTY = BP_GetCriticalBlueprint("critical/make_casualty.lua"),
    }
    }

    --*** EVENT CUE ICON & SOUNDS ***
    -- Icon Path: Root\WW2\Data\Art\UI\InGame
    -- Sound Path: Root\WW2\Data\Sound\UI\EventCues
    CUE = {
    __scardoc_enum = true,
    NORMAL = {icon = "events/event_cue", sound = "General_alert"},
    NORMAL_REPEATING = {icon = "events/event_cue", sound = "General_alert", class = "repeating"},
    VEHICLE = {icon = "events/event_cue", sound = "General_alert"},
    ATTACKED = {icon = "events/event_cue_combat", sound = "General_alert"},
    MAP = {icon = "events/event_cue_map", sound = "General_alert"},
    UPGRADE = {icon = "events/event_cue_upgrade", sound = "General_alert"},
    NETWORK = {icon = "events/event_cue_network", sound = "General_alert"},
    }

    MEDALS = {
    __scardoc_enum = false,

    AIR_MEDAL = BP_GetMedalBlueprint("medals/air_medal"),
    AMERICAN_CAMPAIGN_MEDAL = BP_GetMedalBlueprint("medals/american_campaign_medal"),
    ARMY_EXPERT_BADGE = BP_GetMedalBlueprint("medals/army_expert_badge"),
    ARMY_RANGER_BADGE = BP_GetMedalBlueprint("medals/army_ranger_badge"),
    ARMY_SHARPSHOOTER_BADGE = BP_GetMedalBlueprint("medals/army_sharpshooter_badge"),
    BRONZE_STAR_M04 = BP_GetMedalBlueprint("medals/bronze_star_m04"),
    BRONZE_STAR_M08 = BP_GetMedalBlueprint("medals/bronze_star_m08"),
    DISTINGUISHED_SERVICE_CROSS = BP_GetMedalBlueprint("medals/distinguished_service_cross"),
    DISTINGUISHED_SERVICE_MEDAL = BP_GetMedalBlueprint("medals/distinguished_service_medal"),
    EXPERT_INFANTRYMAN_BADGE = BP_GetMedalBlueprint("medals/expert_infantryman_badge"),
    LEGION_OF_MERIT = BP_GetMedalBlueprint("medals/legion_of_merit"),
    MEDAL_OF_HONOR = BP_GetMedalBlueprint("medals/medal_of_honor"),
    PARACHUTIST_BADGE = BP_GetMedalBlueprint("medals/parachutist_badge"),
    SILVER_STAR_M06 = BP_GetMedalBlueprint("medals/silver_star_m06"),
    SILVER_STAR_M14 = BP_GetMedalBlueprint("medals/silver_star_m14"),
    SOLDIERS_MEDAL = BP_GetMedalBlueprint("medals/soldiers_medal"),
    SOLDIERS_MEDAL_M06 = BP_GetMedalBlueprint("medals/soldiers_medal_m06"),

    CXP1 = {
    AUTHIE = BP_GetMedalBlueprint("medals/authie.lua"),
    HILL_112 = BP_GetMedalBlueprint("medals/hill_112.lua"),
    CARPIQUET = BP_GetMedalBlueprint("medals/carpiquet.lua"),
    CARPIQUET_B = BP_GetMedalBlueprint("medals/carpiquet_b.lua"),
    HILL_112_DEFENSE = BP_GetMedalBlueprint("medals/hill_112_defense.lua"),
    CAEN_ASSAULT = BP_GetMedalBlueprint("medals/caen_assault.lua"),
    CAEN_CLEAR = BP_GetMedalBlueprint("medals/caen_clear.lua"),
    CAEN_COUNTER = BP_GetMedalBlueprint("medals/caen_counter.lua"),
    GOODWOOD = BP_GetMedalBlueprint("medals/goodwood.lua"),
    },

    CXP2 = {
    WOLFHEZE_GLIDER = BP_GetMedalBlueprint("medals/wolfheze_glider.lua"),
    WOLFHEZE_ATTACK = BP_GetMedalBlueprint("medals/wolfheze_attack.lua"),
    OOSTERBEEK_DEFENSE = BP_GetMedalBlueprint("medals/oosterbeek_defense.lua"),
    HELLS_HIGHWAY_AMBUSH = BP_GetMedalBlueprint("medals/hells_highway_ambush.lua"),
    BEST = BP_GetMedalBlueprint("medals/best.lua"),
    ARNHEM = BP_GetMedalBlueprint("medals/arnhem.lua"),
    HELLS_HIGHWAY_HUNT = BP_GetMedalBlueprint("medals/hells_highway_hunt.lua"),
    OOSTERBEEK_CROSSING = BP_GetMedalBlueprint("medals/oosterbeek_crossing.lua"),
    },
    }



    MOVETYPE = {
    __scardoc_enum = true,
    SAFE = BP_GetMoveTypeBlueprint("move_type/safe_move.lua"),
    NORMAL = BP_GetMoveTypeBlueprint("move_type/normal_move.lua"),
    FAST = BP_GetMoveTypeBlueprint("move_type/fast_move.lua"),
    BEACH = BP_GetMoveTypeBlueprint("move_type/beach_move_type.lua"),
    VEHICLE_FORCE_MOVE = BP_GetMoveTypeBlueprint("move_type/vehicle_force_move.lua"),
    SURRENDER = BP_GetMoveTypeBlueprint("move_type/surrender_move.lua"),
    }

    TYPE = {
    __scardoc_enum = true,

    -- used to control access to various build menus
    -- e.g. Player_SetConstructionMenuAvailability(player, TYPE.CONSTRUCT.AXIS.HQ, ITEM_LOCKED)
    CONSTRUCT = {

    ALLIES = {
    HQ = "type_construction/tp_construction_allied_hq",
    ENGINEER_ADVANCED = "type_construction/tp_construction_engineer_advanced",
    ENGINEER_BASIC = "type_construction/tp_construction_engineer_basic",
    RIFLEMEN = "type_construction/tp_construction_riflemen_basic",
    },

    AXIS = {
    HQ = "type_construction/tp_construction_axis_hq",
    PIONEER_ADVANCED = "type_construction/tp_construction_axis_engineer_advanced",
    PIONEER_BASIC = "type_construction/tp_construction_axis_engineer_basic",
    },

    CW = {
    HQ = "type_construction/tp_construction_commonwealth_hq",
    COMMANDO = "type_construction/tp_construction_commonwealth_commando",
    SAPPER = "type_construction/tp_construction_commonwealth_sapper",
    TOMMIES = "type_construction/tp_construction_commonwealth_infantry",
    },

    ELITE = {
    HQ = "type_construction/tp_construction_panzer_elite_hq",
    BASIC = "type_construction/tp_construction_panzer_elite_basic",
    LUFTWAFFE = "type_construction/tp_construction_panzer_elite_luftwaffe",
    },

    SOVIET = {
    SOVIET_BASIC = "type_construction/tp_construction_soviet_basic",
    SOVIET_SAPPER = "type_construction/tp_construction_soviet_sapper",
    },
    },

    }

    -- what are these and does anyone use them? brw 02/21/2007
    -- if not we'll be removing them soon...
    DROP = {
    __scardoc_enum = true,
    ITEM_ACTIONPOINTS = SLOT_ITEM.ITEM_ACTIONPOINTS,
    ITEM_MANPOWER = SLOT_ITEM.ITEM_MANPOWER,
    ITEM_MUNITIONS = SLOT_ITEM.ITEM_MUNITIONS,
    ITEM_FUEL = SLOT_ITEM.ITEM_FUEL,
    SUPPLY_DROP = EBP.SUPPLY_DROP,
    ALLIED_BAZOOKA = EBP.ALLIED_BAZOOKA,

    }





    -- This is a table of the all actors used in NISlet speech events.
    -- Each actor needs a blueprint and a speech icon associated with it.

    ACTOR = {

    __scardoc_enum = true,

    -- Generic
    GenericAlly = "InGame\\portraits\\speech_allied_soldier",
    GenericAxis = "InGame\\portraits\\speech_axis_soldier",
    Intel = "InGame\\portraits\\tutorial_guy",

    -- Company of Heroes (Original) SP Characters
    McKay = "InGame\\portraits\\speech_allied_mackay",
    Conti = "InGame\\portraits\\speech_allied_conti",
    Thompson = "InGame\\portraits\\speech_allied_thompson",
    Carota = "InGame\\portraits\\speech_allied_carota",
    Lewis = "InGame\\portraits\\speech_allied_lewis",

    -- CXP1 (Commonwealth Campaign)
    CXP1 = {

    -- Generic
    GenericAlly = "InGame\\portraits\\speech_allied_soldier",
    GenericAxis = "InGame\\portraits\\speech_axis_soldier",
    GenericPanzerElite = "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    GenericCommonwealth = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    Intel = "InGame\\portraits\\speech_cmnw_cutting",
    GenericCommando = "InGame\\portraits\\speech_cmnw_commando",

    -- SP Characters
    Cutting = "InGame\\portraits\\speech_cmnw_cutting",
    Seville = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    Wallis = "InGame\\portraits\\speech_cmnw_wallis",
    Blackmore = "InGame\\portraits\\speech_cmnw_blackmore",
    Dillingham = "InGame\\portraits\\speech_cmnw_dillingham",
    Jones = "InGame\\portraits\\speech_cmnw_generic",
    Degnan = "InGame\\portraits\\speech_cmnw_degnan",
    Tennant = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    Gladstone = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    Bailey = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    Hazard = "InGame\\portraits\\speech_cmnw_commando", -- USING GENERIC COMMANDO HERE
    Chubb = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    },

    -- CXP2 (Panzer Elite Campaign)
    CXP2 = {

    -- Generic
    GenericAlly = "InGame\\portraits\\speech_allied_soldier",
    GenericWehrmacht = "InGame\\portraits\\speech_axis_soldier",
    GenericPanzerElite = "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    GenericLuftwaffe = "InGame\\portraits\\speech_pnze_generic", -- WARNING NO PORTRAIT YET
    GenericCommonwealth = "InGame\\portraits\\speech_cmnw_generic", -- WARNING NO PORTRAIT YET
    WehrmachtSgt = "InGame\\portraits\\speech_axis_soldier",
    Intel = "InGame\\portraits\\speech_pnze_voss",

    -- SP Characters
    Voss = "InGame\\portraits\\speech_pnze_voss",
    Deinhard = "InGame\\portraits\\speech_pnze_deinhard",
    Aldrich = "InGame\\portraits\\speech_pnze_aldric",
    Wolfgang = "InGame\\portraits\\speech_pnze_wolfgang",
    Henze = "InGame\\portraits\\speech_pnze_generic",
    },

    }



    -- set of offsets that are enumerated so that we don't have to memorize the numbers.
    -- numbers go CLOCKWISE around the circle.
    -- the orientation is in respect to the SGroup or object to which you desire an offeset;
    -- here's a quick drawing for visualization
    --[[
    FRONT_LEFT FRONT FRONT_RIGHT

    /\
    / \
    LEFT /_ _\ RIGHT
    ||
    ||
    ||

    BACK_LEFT BACK BACK_RIGHT

    ]]
    OFFSET_FRONT = 0
    OFFSET_FRONT_RIGHT = 1
    OFFSET_FRONT_LEFT = 7
    OFFSET_BACK = 4
    OFFSET_BACK_RIGHT = 3
    OFFSET_BACK_LEFT = 5
    OFFSET_RIGHT = 2
    OFFSET_LEFT = 6

    -- use these as offsets in SGroup_IsUnderAttackFromDirection
    OFFSET_DIRECTION_FRONT = {OFFSET_FRONT_LEFT, OFFSET_FRONT, OFFSET_FRONT_RIGHT}
    OFFSET_DIRECTION_RIGHT = {OFFSET_FRONT_RIGHT, OFFSET_RIGHT, OFFSET_BACK_RIGHT}
    OFFSET_DIRECTION_BACK = {OFFSET_BACK_RIGHT, OFFSET_BACK, OFFSET_BACK_LEFT}
    OFFSET_DIRECTION_LEFT = {OFFSET_BACK_LEFT, OFFSET_LEFT, OFFSET_FRONT_LEFT}

    Wcutil

    import("ScarUtil.scar")

    s_delaytime_after_loss = 5 -- amount of seconds that will go by before triggering game end

    s_team_death_time = {}

    --? @shortdesc If only one team is alive, players on that team win. Returns true if one team left.
    --? @args String win_condition
    --? @result Boolean
    function WC_CheckOneTeamLeft( win_condition )
    local count = World_GetPlayerCount();

    local team_first = -1;
    local player_alive;

    for i = 1, count
    do
    local player = World_GetPlayerAt(i);

    if( Player_IsAlive(player) ) then
    if( team_first == -1 ) then
    player_alive = player;
    team_first = Player_GetTeam( player );
    else
    local team = Player_GetTeam( player );
    if( team ~= team_first ) then
    return;
    end
    end
    end
    end

    World_SetPlayerWin( player_alive, win_condition);
    World_SetGameOver();

    end

    function WC_RemoveUnusedObjects()

    -- if this flag exists this means that VP game conditions have been loaded and this function should be skipped
    if (g_VPConditionsLoaded == nil or g_VPConditionsLoaded == false) then

    -- get all the VP points
    local count = World_GetNumEntities()

    print(count)

    for i=0,(count-1) do
    local entityid = World_GetEntity( i )

    if (Entity_IsVictoryPoint(entityid)==true) then
    Entity_Destroy( entityid )
    end
    end
    end

    TimeRule_RemoveMe()
    end


    _Annihilate =
    {
    g_NumSquads = 999999
    }

    -- the Allied stuff

    _Annihilate["allies"] =
    {
    EBPS =
    {
    EBP.ALLIES.HQ,
    EBP.ALLIES.HQ2,
    EBP.ALLIES.HQ3,
    EBP.ALLIES.HQ4,
    EBP.ALLIES.HQ5,
    EBP.ALLIES.HQ6,
    EBP.ALLIES.HQ7,
    EBP.ALLIES.HQ8,
    EBP.ALLIES.BARRACKS,
    EBP.ALLIES.ARMORY,
    EBP.ALLIES.MOTORPOOL,
    EBP.ALLIES.TANK_DEPOT,
    EBP.ALLIES.QUARTER_MASTER,
    EBP.ALLIES.TRIAGE,
    EBP.ALLIES.MG_NEST,
    },
    SBPS = {},
    AMBIENT = UPG.ALLIES.CONVERT_AMBIENT_BUILDING,
    }
    -- the Axis stuff
    _Annihilate["axis"] =
    {
    EBPS =
    {
    EBP.AXIS.HQ,
    EBP.AXIS.HQ2,
    EBP.AXIS.HQ3,
    EBP.AXIS.HQ4,
    EBP.AXIS.HQ5,
    EBP.AXIS.HQ6,
    EBP.AXIS.HQ7,
    EBP.AXIS.HQ8,
    EBP.AXIS.QUARTERS,
    EBP.AXIS.BARRACKS,
    EBP.AXIS.ARMORY,
    EBP.AXIS.COMMAND,
    EBP.AXIS.KAMPFKRAFT,
    EBP.AXIS.BUNKER,
    BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_starting_position.lua"),
    },
    SBPS = {},
    AMBIENT = UPG.AXIS.CONVERT_AMBIENT_BUILDING
    }
    -- the Finland stuff
    _Annihilate["axis_finland"] =
    {
    EBPS =
    {
    EBP.AXIS.HQ,
    EBP.AXIS.HQ2,
    EBP.AXIS.HQ3,
    EBP.AXIS.HQ4,
    EBP.AXIS.HQ5,
    EBP.AXIS.HQ6,
    EBP.AXIS.HQ7,
    EBP.AXIS.HQ8,
    EBP.AXIS.QUARTERS,
    EBP.AXIS.BARRACKS,
    EBP.AXIS.ARMORY,
    EBP.AXIS.COMMAND,
    EBP.AXIS.KAMPFKRAFT,
    EBP.AXIS.BUNKER,
    BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_starting_position.lua"),
    },
    SBPS = {},
    AMBIENT = UPG.AXIS.CONVERT_AMBIENT_BUILDING
    }

    -- the Panzer Elite stuff

    _Annihilate["axis_panzer_elite"] =
    {
    EBPS =
    {
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_2.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_3.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_4.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_5.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_6.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_7.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/buildings/hq_8.lua"),
    BP_GetEntityBlueprint("ebps/races/axis_panzer_elite/vehicles/flakvierling38_quad20mm_aagun_starting.lua"),
    EBP.ELITE.PANZERJAGER,
    EBP.ELITE.LOGISTIK,
    EBP.ELITE.KAMPFGRUPPE,
    EBP.ELITE.PANZER_ARTILLERIE,
    },
    SBPS =
    {
    BP_GetSquadBlueprint("sbps/races/axis_panzer_elite/vehicles/flak38_quad20mm_aagun_squad_starting_position.lua"),
    },
    AMBIENT = UPG.ELITE.CONVERT_AMBIENT_BUILDING,
    }

    -- the Commonwealth stuff

    _Annihilate["allies_commonwealth"] =
    {
    EBPS =
    {
    EBP.CW.ANTITANK_NEST,
    BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/bofors_gun_nest.lua"),
    EBP.CW.HOWITZER_NEST,
    EBP.CW.MG_NEST,
    EBP.CW.MORTAR_NEST,
    BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider.lua"),
    BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_hq.lua"),
    BP_GetEntityBlueprint("ebps/races/allies_commonwealth/buildings/glider_tetrarch.lua"),
    },
    SBPS =
    {
    SBP.CW.HQ,
    SBP.CW.HQ_REINFORCEMENT,
    SBP.CW.ARMOUR_HQ,
    SBP.CW.INFANTRY_HQ
    },
    AMBIENT = UPG.CW.CONVERT_AMBIENT_BUILDING,
    }

    -- the USSR stuff

    _Annihilate["allies_soviets"] =
    {
    EBPS =
    {
    EBP.SOVIET.HQ,
    EBP.SOVIET.HQ2,
    EBP.SOVIET.HQ3,
    EBP.SOVIET.HQ4,
    EBP.SOVIET.HQ5,
    EBP.SOVIET.HQ6,
    EBP.SOVIET.HQ7,
    EBP.SOVIET.HQ8,
    EBP.SOVIET.MUSTERING_TENT,
    EBP.SOVIET.ARMORY,
    EBP.SOVIET.SUPPORT_BARRACKS,
    EBP.SOVIET.MECHANICS_HALL,
    EBP.SOVIET.MG_NEST,
    },
    SBPS = {},
    AMBIENT = UPG.ALLIES.CONVERT_AMBIENT_BUILDING,
    }

    function WC_CheckEndGame()
    -- if this flag is set then we care about annihilate
    if (g_CheckAnnihilate ~= nil and g_CheckAnnihilate == true) then

    -- initialize team data
    local _anniTeamStatus = {}
    local _teamCount = {}
    local _teamAITakeoverCount = {} -- stores the number of AI take-over players per team (AIs that have taken over for dropped humans)
    local _teamHumanCount = {} -- stores the number of human players per team

    -- foreach player, count the number of remaining buildings that we're interested in
    local player_count = World_GetPlayerCount()
    for i = 1, player_count do
    local player = World_GetPlayerAt(i)
    local team = Player_GetTeam( player )
    local race = Player_GetRaceName(player)

    -- delay init
    if _teamCount[team] == nil then
    _teamCount[team] = 1
    else
    _teamCount[team] = _teamCount[team] + 1
    end

    if _teamAITakeoverCount[team] == nil then
    _teamAITakeoverCount[team] = 0
    end

    if _teamHumanCount[team] == nil then
    _teamHumanCount[team] = 0
    end

    local AIplayerInitType = Player_GetAIType( player )

    -- possible types:
    --AII_None
    --AII_Normal,
    --AII_LocalHumanTakeover,
    --AII_RemoteAITakeover,
    --AII_RemoteHumanTakeover
    if AIplayerInitType == AII_RemoteHumanTakeover then

    _teamAITakeoverCount[team] = _teamAITakeoverCount[team] + 1

    elseif AIplayerInitType == 0 then

    _teamHumanCount[team] = _teamHumanCount[team] + 1
    end

    --is the player alive
    if Player_IsAlive(player) then

    -- go through all the entities that the player owns and keep the ones we care about
    local interestingBuildings = 0
    local interestingSquads = 0

    local _FilterSquads = function(gid, idx, sid)
    local sidBP = Squad_GetBlueprint(sid)

    -- print("checking player "..i.." of race "..race.." of squad " .. BP_GetName(sidBP))

    local keep = false

    for k,v in pairs(_Annihilate[race].SBPS) do
    if v == sidBP then
    keep = true;
    break
    end
    end

    if keep then
    --print("player "..i.." of race "..race.." has a " .. BP_GetName(sidBP))
    interestingSquads = interestingSquads + 1
    end

    end

    local _FilterEntities = function(gid, idx, eid)
    local eidBP = Entity_GetBlueprint(eid)

    -- print("checking player "..i.." of race "..race.." of entity " .. BP_GetName(eidBP))

    local keep = false

    -- is this an upgraded ambient building
    if Entity_HasUpgrade(eid, _Annihilate[race].AMBIENT) then
    -- we only care if that building is in supply
    if World_IsInSupply( player, Entity_GetPosition(eid) ) then
    -- yup, count that one
    keep = true
    end
    else
    -- we only care for a few types of 'buildings'
    for k,v in pairs(_Annihilate[race].EBPS) do
    if v == eidBP then
    keep = true;
    break
    end
    end
    end

    -- keep it?
    if keep then
    --print("player "..i.." of race "..race.." has a " .. BP_GetName(eidBP))
    interestingBuildings = interestingBuildings + 1
    end
    end

    local numSquads = Player_GetSquadCount(player);
    EGroup_ForEach(Player_GetEntities(player), _FilterEntities)
    SGroup_ForEach(Player_GetSquads(player), _FilterSquads)

    -- check if the player still has some buildings that we care about
    if (interestingBuildings > 0) or (interestingSquads > 0) or (numSquads >= _Annihilate.g_NumSquads) then
    --print("player "..i.." of race "..race.." has " .. interestingBuildings .. " buildings")
    _anniTeamStatus[ team ] = true

    else
    --print("player "..i.." of race "..race.." has NO interesting buildings or squads")
    --leave the table empty
    if (s_team_death_time[ team ]==nil) then
    s_team_death_time[ team ] = World_GetGameTime() + s_delaytime_after_loss
    end
    end
    end
    end

    -- find teams left with only AI players that have taken over for dropped humans


    -- kill players from teams that have been annihilated
    for i = 1, player_count do
    local player = World_GetPlayerAt(i);
    if Player_IsAlive( player ) then
    local team = Player_GetTeam( player )

    local onlyDeadHumansLeft = _teamAITakeoverCount[team] == _teamCount[team]
    local stopMixedGame = _teamHumanCount[team] == 0 and _teamAITakeoverCount[team] > 0
    local deathTimeOk = s_team_death_time[ team ] ~= nil and s_team_death_time[ team ] <= World_GetGameTime()

    --print( " num aitakeovers: " .. _teamAITakeoverCount[team] )
    --print( " num humans: " .. _teamHumanCount[team] )

    if (not _anniTeamStatus[ team ] and deathTimeOk) then
    print("WC_CheckEndGame: Annihilate: killing a player from team: " .. team )
    Player_Kill( player, true );
    elseif onlyDeadHumansLeft then
    print("WC_CheckEndGame: Annihilate: killing a take-over AI from team: " .. team )
    Player_Kill( player, true );
    elseif stopMixedGame then
    print("WC_CheckEndGame: Annihilate: killing AI & take-over AI from team: " .. team )
    Player_Kill( player, true );
    end
    end
    end

    end

    -- always check if only one team left
    WC_CheckOneTeamLeft("annihilate");
    end

    function WC_InitGameCheck()

    -- sign up for death events from all players
    local player_count = World_GetPlayerCount();

    for i = 1,player_count
    do
    local player = World_GetPlayerAt(i);
    EventRule_AddPlayerEvent(WC_OnPlayerKilled, player, GE_PlayerKilled)
    end

    -- check to see if the MP map has added an override
    if (WinConditionOverride) then
    WinConditionOverride()
    end

    -- also add a periodic check
    TimeRule_AddInterval(WC_CheckEndGame, 1, 0)
    end

    function WC_OnPlayerKilled()
    print("WC_OnPlayerKilled")
    WC_CheckEndGame()
    end

    Scar_AddInit(WC_RemoveUnusedObjects);
    Scar_AddInit(WC_InitGameCheck);




    Sorry for putting them out like this, when I put them in code/spoiler they get messed up for some reason.

  35. #85
    Well the scar error makes more sense, its more or less saying something within is wrong. I can clearly see why your getting errors on both setups your trying, the instant defeat and the scar errors. Your HQ's are still labelled as Axis, although there under your new finland race, this will certainly cause an error and an instant defeat. You also havent created a construction type for your new race, these where the first 2 obvious things I noticed at this point.

    Take a quick look at how mine is setup and repeat this with your race name.

    Code:
    	COALITION = {
    		EBP.COALITION.BARRACKS,
    		EBP.COALITION.ARMORY,
    		EBP.COALITION.HQ,
    		EBP.COALITION.HQ2,
    		EBP.COALITION.HQ3,
    		EBP.COALITION.HQ4,
    		EBP.COALITION.HQ5,
    		EBP.COALITION.HQ6,
    		EBP.SP.COALITION_HQ_SP_M06,
    		EBP.COALITION.MOTORPOOL,
    		EBP.COALITION.TANK_DEPOT,
    	},
    
    
    
    
    
    
    
    
    
    
    TYPE = {
    	__scardoc_enum = true,
    	
    	-- used to control access to various build menus
    	-- e.g. Player_SetConstructionMenuAvailability(player, TYPE.CONSTRUCT.AXIS.HQ, ITEM_LOCKED)
    	CONSTRUCT = {
    		
    		ALLIES = {
    			HQ						= "type_construction/tp_construction_allied_hq", 
    			ENGINEER_ADVANCED		= "type_construction/tp_construction_engineer_advanced",
    			ENGINEER_BASIC			= "type_construction/tp_construction_engineer_basic",
    			RIFLEMEN				= "type_construction/tp_construction_riflemen_basic",
    		},
    		
    		AXIS = {
    			HQ						= "type_construction/tp_construction_axis_hq", 
    			PIONEER_ADVANCED		= "type_construction/tp_construction_axis_engineer_advanced",
    			PIONEER_BASIC			= "type_construction/tp_construction_axis_engineer_basic",
    		},
    		
    		CW = {
    			HQ						= "type_construction/tp_construction_commonwealth_hq", 
    			COMMANDO				= "type_construction/tp_construction_commonwealth_commando",
    			SAPPER					= "type_construction/tp_construction_commonwealth_sapper",
    			TOMMIES					= "type_construction/tp_construction_commonwealth_infantry",
    		},
    		
    		ELITE = {
    			HQ						= "type_construction/tp_construction_panzer_elite_hq", 
    			BASIC					= "type_construction/tp_construction_panzer_elite_basic",
    			LUFTWAFFE				= "type_construction/tp_construction_panzer_elite_luftwaffe",
    		},
    		
    		COALITION = {
    			HQ						= "type_construction/tp_construction_coalition_hq", 
    			ENGINEER_ADVANCED		= "type_construction/tp_construction_coalition_advanced",
    			ENGINEER_BASIC			= "type_construction/tp_construction_coalition_basic",
    			RIFLEMEN				= "type_construction/tp_construction_coalition_riflemen_basic",
    		},
    		
    	},
    
    }

    Be sure to make your new constuction type within your mod as well, so data/attrib/type_construction, then go to make a copy of the type_construction race your copying, and change it to your new one to match what is written within the Luaconst. As you can see, my race is a copy of the Allies
    Last edited by sirpsychoj; 2nd Sep 10 at 5:56 AM.

  36. #86
    Hmm... ok thanks, going to try soon.

    EDIT: I did what you said and now it's giving me a fatal scar error.

    EDIT 2: Never mind, managed to fix it with the help of mastergunz.
    Last edited by Hellstorm; 2nd Sep 10 at 9:12 AM.

  37. #87
    Nice, Scar Errors are no big deal (unless of course you cant find the problem) all they really tell you is that something is wrong, misssing, mistyped etc. When you do scripts or whatever, its common to get them occassionally, although frustrating at times-its just part of the process. Think of it as your starting to first walk, you are bound to fall over in stages until you become familiar with walking - then falling over becomes a thing of the past. Anyway I bet your glad you finally completed it, as it is a major task creating the faction and the AI

  38. #88
    BP_GetEntityBlueprint("ebps/races/axis/buildings/axis_bunker_starting_position.lua"), }, SBPS = {}, AMBIENT = UPG.AXIS.CONVERT_AMBIENT_BUILDING }

    i think your problem is should be races/chaos_legion/buildings (you are refering to axis hq and you are not "axis wermacht" so you have no hq and you die after 5 seconds...

    my problem is when i try to create a unit i am out of supply -3..so where do i make supply for my new faction? or what did i do wrong

  39. Modding Senior Member  #89
    Quote Originally Posted by Copernicus 17th Jan
    [Topic: TeamWeapon pickup for custom factions]
    Well, it is possible but not realistic, at least from my point of view.

    beware of huge image



    1. Screw old idea (changing RGDs).
    2. Get new idea (hooking the right place).
    3. ???
    4. Profit! Get TeamWeapon pickups for little effort.

    It's far from perfect, it's rather a proof of concept. Currently, the same squad will be used for all factions and all team weapons. I could imagine having a system which calls a LUA-function defined via SCAR with some information about the TeamWeapon capturing as parameters (who is capturing what etc.). Though I still need to figure out where to get that information (I'm working on this but I gotta do lots of other things to do so don't expect this too soon).

    -cope.
    "When life gives you lemons, make lemonade. Then use the profits to buy an assault rifle. See if life makes the same mistake twice."
    When to report?

  40. #90
    Member Muad'Dib's Avatar
    Join Date
    Aug 2007
    Location
    Wherever I Lurk
    Wow Copernicus! If this pans out, you would give the CoH Modding community the greatest gift since Corsix! Godspeed and goodluck!
    Last edited by Muad'Dib; 23rd Nov 10 at 8:02 AM.

  41. #91
    Indeed, GL Cope!

  42. #92

  43. #93
    hi!I do as you told,and at last I can make a new faction and work right,but about the zannihilate.scar file,I can't add the squard in the beginning,and what if my new faction is call fling,and what should I edit.my new faction is a axis one,should it be like that

    function OnInit()

    -- this is for spawning the custom startingsquads
    for i=1, World_GetPlayerCount() do

    local player = World_GetPlayerAt(i)

    if Player_GetRaceName(player) == "axis_fling" then
    Util_CreateSquads(player, SGroup_CreateIfNotFound("starting_fling_player_"..i), SBP.fling.PIONEER, Player_...
    Last edited by fling; 1st Dec 10 at 7:32 AM.

  44. #94
    Member acceptable67's Avatar
    Join Date
    Aug 2010
    Location
    Florida, USA
    This is really good but I'm encountering a few problems.

    When I start the game, it says something about AI failing, and I can't resume the game till I click Pause, and theres no territory around me either.

    The second is, where is the Common-wealths HQ in the files???

    ----------

    And AI does not move

    ----------

    Edit: I fixed the AI problem [The PHP code had the japanese faction in it] but I'm still having a problem with the territory, the HQ setting up, and finding the HQ in the files.

  45. #95
    i have read through this and done it 3-4 times from scratch i cant get another team to show up to be able to play as them. i tried doing what u did but used allies instead made canadian no good did exactly what u said even put japan and everything still wouldn't show up i using mod studio 0.55 i checked spelling and everything coppied the race and ebps and spbs and changed what u said and the scar files also but when i launch from mod studio even with dev on wont show the new factions please help or let me know what u need for info to help.

  46. #96
    You can't use launch from mod studio since 2.400 patch. Check the ultimate how-to thread for more info.

  47. #97
    O ok i got that far now lol thanks. i can launch my own short cut now but still cant get the other team to show up as per another recourse found out what to put in to launch mod ("C:\Program Files (x86)\THQ\Company of Heroes\RelicCOH.exe" -Mason -dev) but still cant get it i checked everything cant find any mistakes what file in attrib or scar woud stop it from showing so i can fix it lol or do you need more info?

  48. #98
    i got it fixed now it was the .module file miss spelled something so it wasnt grabbing the correct info for my mod working now.

  49. #99

    Stuck!

    I'm a beginning moder and I am really lost at step 7, I enter the ebps folder and I see that it contains race but not axis, but inside the race file is axis do I extract that? if so how do I extract it? Right clicking and choosing extract all, because when I do so I don't see a file to rename to anything :S please help!

  50. #100
    I tried to this and it works however, I'm having the same problem Gustavo did:

    hey man i finnaly got the new faction u teach on that tutorial, the problem is after the skirmisher beggins, after 5 seconds the game just end, the "exit scenario box" apears.. do i have to do something extra so it works? its a copy of werhmatch, also my pioneers dont apears, jsut the HQ... any ideas? thank you man
    thanks
    did I make an error or is it something else? Also I have a question, how to easily knock out an faction, or in other words how to make it not shown in skirmish or multiplayer selection window? I will have only 1 allied faction so I need to knock out one of the existing. Thx

    edit: I managed to knock out a faction it's actually very easy just delete race_type line in .rgd file in racebps folder of race you want to remove
    Last edited by Bezimeni; 5th Jul 11 at 3:20 PM.

Page 2 of 5 FirstFirst 12345 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •