Mods (Long War)
Beginners Guide
Long War has made it easy for individual users to tweak parts of the game for their own preference. Unless otherwise noted, code changes occur in the DefaultGameCore.ini
file; this is commonly referred to as the DGC.ini. For a typical Windows user, this file can be found at C:/Program Files x86/Steam/SteamApps/common(OR your username)/XCom-enemy-unknown/XEW/XComGame/Config
. It is recommended that you download and use Notepad++ to alter defaultgamecore.ini because it is visually easier to use and numbers the lines (which may be referenced in this page).
Another useful tool is the free software WinMerge. WinMerge allows you to open two text files (like the DGC.ini) side by side and compare differences between them. This is useful when Long War is updated. To easily preserve the custom modifications you did on a previous version, open a backup copy of your old DGC.ini and the new updated version DGC.ini. WinMerge will help you quickly identify differences and apply all your previous modifications to the new Long War version.
Note for Linux and OS X users, you will need to modify XComGameCore.ini
, which is located at ~/Library/Application Support/Feral Interactive/XCOM Enemy Unknown/XEW/MacInit/XComGameCore.ini
for OS X and ~.local/share/feral-interactive/XCOM/XEW/WritableFiles/XComGameCore.ini
for Linux. Some users suggest that you update ~/Application Support/Steam/SteamApps/common/XCom-Enemy-Unknown/XCOMData/XEW/XComGame/Config/DefaultGameCore.ini
as well to be safe. You can use the built in program TextEdit or (better) TextWrangler.
Base Changes
Energy Changes
Alternative Fission and Thermo changes are proposed:
Power | Cost | Cost/Power | ||
---|---|---|---|---|
Fission | Current | 6 | $120 | $20.00 |
Change | 8 | $150 | $18.75 | |
Thermo | Current | 25 | $350 | $14.00 |
Change | 20 | $300 | $15.00 |
In addition, increase Adjacency bonus from +3 power to +4.
With this, Fission is still less efficient than a thermo, however players shouldn't feel like they are getting an extra difficulty tacked on because they didn't get a good steam vent. Now if there is a good steam vent, it's simply a bonus. To change these options, examine lines 1395 and line 1800.
Start Date Change
To start the campaign at a different date than March 1st. Change the value found in defaultgamedata.ini
Appearance Changes
How to Remove the Gene Mod Armor:
This will replace the gene mod armor with a sleeved chest plate. However, said chest plate was designed to have shoulder pads, which are missing, so there will be a noticeable gap with either gene mods or those who use tactical vests instead of tactical armor. The gap is textured, so it won't break any models. You can still add shoulder pads by using decos ingame.
Use CTRL + F To find the following UnitPackageInfo=(PawnType=ePawnType_Male_1_Kevlar_GM,ArchetypeName="Soldier_MaleKevlar_GM.ARC_MaleKevlar_GM") Remove both GMs from "Soldier_MaleKevlar_GM.ARC_MaleKevlar_GM" Now the game will read the normal armor instead of the GM version. You can choose to do this to specific models, or use find and replace to change them all. To use find and replace, I recommend you find _GM" and _GM. and replace them with " and . respectively.
How to change default color, and headgear.
In your DefaultGameCore.ini file, you'll be able to find lines that alter the rookie's starting color, and headgear, as well as the first time they are promoted to a class. Acceptable values, and their definitions, can be found here. http://wiki.tesnexus.com/index.php?title=Initial_soldier_appearance_-_XCOM:EU_2012#Tables (< Someone hyperlink that for me, please.)
Note that you must make these changes before starting a new game for them to take effect.
If you press "CTRL + F", you will open up the find menu. Locate the comment; ; Initial soldier appearance and you will find directly below it; DEFENDER_MEDIKIT = 6 ; Rookie armor color: Sets the initial color of rookie armor; stay within default range (0..32) COUNCIL_STAT_BONUS = -1 ; Rookie armor deco; -1 is default; for other basic kevlar variants, try 67 through 79; otherwise you may see high-tech armor images (not all numbers work on all computers; if you get lockups, change back to -1) ShowUFOsOnMission = -1 ; Rookie headgear; See readme for acceptable values. This will overwrite any randomized hair. Set to -1 for no change. Use the values linked above to find exactly what you want. To change the promotes, find the following lines directly below the rookie's section, and change the numbers to any value between 0-32 or -1 for no change. ; One-time deco color and headgear change upon selection of soldier class; set to -1 for no change. See Armor Kit codes text file in EW directory for acceptable values. Do not reorder these entries! HQ_BASE_POWER = 32 ; Sniper Color HQ_BASE_POWER = -1 ; Sniper Headgear HQ_BASE_POWER = 15 ; Scout Color HQ_BASE_POWER = -1 ; Scout Headgear HQ_BASE_POWER = 12 ; Rocketeer Color HQ_BASE_POWER = -1 ; Rocketeer Headgear HQ_BASE_POWER = 9 ; Gunner Color HQ_BASE_POWER = -1 ; Gunner Headgear HQ_BASE_POWER = 29 ; Medic Color HQ_BASE_POWER = -1 ; Medic Headgear HQ_BASE_POWER = 22 ; Engineer Color HQ_BASE_POWER = -1 ; Engineer Headgear HQ_BASE_POWER = 21 ; Assault Color HQ_BASE_POWER = -1 ; Assault Headgear HQ_BASE_POWER = 19 ; Infantry Color HQ_BASE_POWER = -1 ; Infantry Headgear Please note, that any text after a ; is a comment, and editing anything past them will do nothing.
MECs earn variable XP for kills
This change requires Hex Editor.
- Open XComGame.upk file in \Steam\SteamApps\common\XCom-Enemy-Unknown\XEW\XComGame\CookedPCConsole folder with HxD
- Search -> Find -> Datatype Hex-Values: A0 00 E7 85 00 00 38 3F 2C 02 16
- Replace 02 with 01.
This will change the penalty. Setting it to 03 will give them 1/3rd of XP for kills.[1]
INI Meld editing
Item Costs
Costs in engineering can be edited in the DefaultGameCore.INI file. As you most limited resource will probably be Meld, and the way the data is in the .ini file, this will help your inner engineer's itch to want to build items. Beginning about halfway down, you will start to see "iElerium=" lines. Comments helpfully point out that these are both the Meld and Elerium entries. You may want to keep an untouched INI file and/or use the UFOPaedia's pages as references. Now for editing:
As you can see in the Armor section, the MEC suits of Warden, Sentinel, and Paladin cost, respectively, 20 meld and 20 Elerium, 40 Meld and 30 Elerium, 60 meld and 50 Elerium for their fabrication costs (on top of credits and alloys). In the .ini file, they are, again respectively, simply labeled "; MEC-1", "; MEC-2", "; MEC-3". Now see that the "IElerium=" values are, once more respectively, 20020, 40030, 60050. As you can see, there is a placeholder 0 in any given iElerium entry-- for any item that has a Meld cost. As this section focuses on just meld editing, this won't be editing the Elerium cost (and will assume you won't, as you don't want to make the Long War _too_ easy). Therefore, you will only be editing the value in front of the placeholder 0.
Ergo: changing 20020, 40030, 60050 to, say, 5020 (note it goes from 5 to 4 intergers), 20030, 30050 would change the meld costs of Warden armor from 20 to 5 units of Meld, Sentinel from 40 to 20, and Paladin from 60 to 30 (while not changing the Elerium costs). Again, note that changing the Warden's "20" to "5" -- and not "05" -- in front of the 'placeholder' 0 will reduce the cost from 20 to 5 units of Meld. This method works on all the "iElerium=" entries under the "; Gear" list.
Near the bottom of the file, you will find "; Gene Mod Configuration". Depending on your choice of editor, the entries may not line up, so be aware that in this section, "iAlloys=" is the variable set for Meld cost for gene mods. As these variables are more simply written, merely edit them to your desired cost. And for reference, "iTime=" entries are for how long each mod requires a soldier to be inside the Gene Lab's tanks, and "iEng=" are the penalty hours added to fatigue.
Meld Expiration Timer
In DefaultRandomSpawns.ini
You will find the lines:
[XComLZMutator.XComMeldSpawnMutator] NumContainers = 3 EqSlope = 1.5 EqConst = 1
By increasing the number after EqSlope
(default 1.55), you can increase the number of turns it takes before meld expires.
Second Wave Option Changes
Aiming Angles
It may be the case that 90 degrees is too small of an arc for cover to provide full protection, so we can cut the aiming angle down to 30 degrees. This gives your cover a 120 degree arc in which it provides full protection, so you can easily fight enemies so long as you're not stupid about picking your cover.
You can change the settings in defaultgamecore.ini, and there is a diagram in there to help explain it:
; Top down view ; ; B ; \ ; \ ; A-----^ ; T ; ; T is a target with cover in the direction of '^'. ; A is a shooter with the maximum aiming angle aim bonus ; B is a shooter with the minimum aiming angle aim bonus ; The aiming angle bonus increases linearly in the angle range between A and B
SW_AIMING_ANGLE_THRESHOLD= 30.0f; 45.0f; SW_AIMING_ANGLE_THRESHOLD defines the angle between segment TA and TB - its valid range is 0-90 SW_AIMING_ANGLE_MINBONUS=5 ; Shooter B's aiming angle bonus is SW_AIMING_ANGLE_MINBONUS SW_AIMING_ANGLE_MAXBONUS=-5 ; Shooter A's aiming angle bonus is [T's Cover Bonus + SW_AIMING_ANGLE_MAXBONUS]
The option for 45 degrees is commented out, and replaced it with 30 degrees. With these settings, 30 degrees to parallel (60 degrees off of perpendicular), gives a +5 to hit. Just shy of the 90 degree flank, it's +(coverbonus - 5) to hit.
Red Fog
Mobility Penalty
Q: Given that the mobility penalty in the DGC.ini is listed in the format "6.0f", what does this mean?
A: It means that at most there is a -6 mobility penalty that would be applied at 0% health. Since it can't hit 0% health, effectively the worst mobility penalty achievable is -5 mobility if severely wounded. This value is measured in meters, the same scaling units that are shown in the barracks view. The mobility stat is an integer value measured in meters, and each tile is 1.5 meters x 1.5 meters, so 5 mobility = 3.33 tiles roughly.
Both the aim and mobility red fog penalties are subtractive, not multiplicative.
For example, the poison/acid mobility debuff is a 25% multiplicative penalty. The unit loses 25% of its maximum movement, so a unit with 14 mobility would have 14 * 0.75 = 10.5 rounded down to 10 mobility, which is effectively -4 mobility.
The %-based mobility penalties are: Mindfray - 50% mobility penalty Flashbang - 40% mobility penalty Poison/acid - 25% mobility penalty Catching breath - 75% mobility penalty
All %-based mobility penalties are applied AFTER the additive/subtractive mobility modifiers (Red Fog, perks, inventory).
Thus to make Red Fog carry more significant movement penalty:
Search for SW_COVER_INCREASE and edit it to =9.9f
Weapon and Item Changes
The MEC Nuclear Option
For players that are not too fond of the grenade launcher for the MEC, they can switch its functionality to a last-ditch-option onboard nuclear reactor overload weapon. Find the line in defaultgamecore.ini that begins: Weapons=( strName="", iType=eItem_MecGrenadeLauncher,
And replace the entire line with:
Weapons=( strName="", iType=eItem_MecGrenadeLauncher, ABILITIES[0]=eAbility_MEC_GrenadeLauncher, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_Mec, Properties[1]=eWP_Secondary, Properties[2]=eWP_NoReload, Properties[3]=eWP_Explosive, Properties[4]=0, Properties[5]=0, iDamage=275, iEnvironmentDamage=750, iRange=1, iReactionRange=30, iReactionAngle=200, iRadius=700, iCritical=0, iOffenseBonus=0, iSuppression=0, iSize=eItemSize_Large, iHPBonus=0, iWillBonus=0 )
By loading out the grenade launcher on a MEC, this will give you an option to overload the MECs (hypothetical) nuclear reactor resulting in a massive explosion that is guaranteed to kill/destroy everything (including the MEC) in a wide radius surrounding the MEC. Use only in cases of extreme clusterfuck/heroism.
Arc Thrower
With the release of B15, the code required for a pistol slot Arc Thrower is included in the DGC.ini. To make the change, all you need to do is comment out (add a ";") the default line for the arc thrower and remove the comment located several lines lower. Essentially you tell the game to stop reading the default line of arc thrower code and begin reading the pre-built code enabling the pistol slot. It is explained in the comments of the DGC.ini.
It is possible to equip the arc thrower as a pistol. Adjust the default line
Weapons=( strName="", iType=eItem_ArcThrower, ABILITIES[0]=eAbility_ShotStun, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_AnyClass, Properties[1]=eWP_NoReload, Properties[2]=eWP_CantReact, Properties[3]=eWP_Secondary, Properties[4]=eWP_Backpack, Properties[5]=0, iDamage=0, iEnvironmentDamage=0, iRange=27, iReactionRange=30, iReactionAngle=200, iRadius=0, iCritical=0, iOffenseBonus=0, iSuppression=0, iSize=eItemSize_Small, iHPBonus=0, iWillBonus=0 )
to allow for pistol slot only
Weapons=( strName="", iType=eItem_ArcThrower, ABILITIES[0]=eAbility_ShotStun, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_AnyClass, Properties[1]=eWP_NoReload, Properties[2]=eWP_CantReact, Properties[3]=eWP_Pistol, Properties[4]=eWP_Backpack, Properties[5]=eWP_Secondary, iDamage=0, iEnvironmentDamage=0, iRange=27, iReactionRange=30, iReactionAngle=200, iRadius=0, iCritical=0, iOffenseBonus=0, iSuppression=0, iSize=eItemSize_Small, iHPBonus=0, iWillBonus=0 )
(Properies[5] of the Arc Thrower item was set to eWP_Pistol)
To increase the range of the Arc Thrower to normal vision range, replace line 1673 in DefaultGameCore.ini with this:
Itembalance_Normal=(eItem=eItem_ArcThrower, iCash=100, iElerium=0, iAlloys=94000, iTime=10, iEng=20)
(The iAlloys field for the Arc Thrower item was set to 94000)
Remember that each item has 2 different listings.
iceofwolf's Modification Package
Consider removing or updating as b13 INIs will not work with 15e
This package is recommended with Red Fog and Aiming Angles enabled. Red Fog, so that every hit point has meaning; and Aiming Angles, so that proper or improper positioning makes a bigger difference.
General Disclaimer
Posted by request. This package was a personal rebalancing of several aspects exposed in the DefaultGameCore.ini. These changes were played in early to early-mid; their balance is untested in late-mid to late game. They were made in Long War beta 13 and may not work with earlier or later betas. Please include information on all mods made to the game, including .ini modifications, when reporting bugs or providing feedback to the mod developers.
Although the majority of the modifications made to the Long War mod were made as soon as beta 13 was downloaded, some were added as the game was played. Some modifications that are included in the linked file may have been missed in the wiki detail due to poor personal changelog habits.
Please thank the devs of Long War not only for the Long War mod itself, but more importantly, for opening up the XCOM game so that players can alter their mod to suit individual preferences.
DefaultGameCore.ini
This link will be removed at request of the moderators of this page or at request of the developers of the Long War mod.
XCOM Unit Modifications
Soldier starting stats vary by much greater margins.
- Search for
Characters=( strName="", iType=eChar_Soldier
and edit the Will entry to =30 - Search for
BalanceMods_Easy=( eType=eChar_Soldier, iDamage=0, iCritHit=0
and edit the iDefense entry to =15 - Search for
LOW_AIM=
and edit it to =45 - Search for
HIGH_MOBILITY
and edit it to =-15 (that's negative 15; it's necessary for how the game rolls random stats) - Search for
LOW_WILL
and edit it to =10
Starting barracks is filled with 64 eager rookies. With the above variation in stats, the additional bodies may be needed.
- Search for
NUM_STARTING_SOLDIERS
and edit it to =64
Psionic soldiers are easier to field. (If it were possible, I'd make this a binary check: If the soldier's Will exceeds the power he is trying for, then he succeeds; if not, he fails. I'd also obscure the percentage chance. Since no such code is exposed, everybody gets psi if they spend the time to do it.)
- Search for
PSI_GIFT_CHANCE
and edit it to =.99 - Search for
PSI_TRAINING_HOURS
and edit it to =144
Psi XP requirements reduced.
- Search for
; Psi XP Levels
and alter the required XP as desired.
Equipment Modifications
Laser Sniper Rifle, Scatter Laser and Laser Strike Rifle all have ballistic ammo levels. Further weapon tiers were not modified because the effect on game balance could not be directly observed; modify higher tiers to your own liking.
- Search for
Weapons=( strName="", iType=eItem_ExaltLaserSniperRifle
and replace the whole line with: Weapons=( strName="", iType=eItem_ExaltLaserSniperRifle, ABILITIES[0]=eAbility_ShotStandard, ABILITIES[1]=eAbility_Overwatch, ABILITIES[2]=eAbility_Aim, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_Sniper, Properties[1]=eWP_MoveLimited, Properties[2]=0, Properties[3]=0, Properties[4]=0, Properties[5]=0, iDamage=6, iEnvironmentDamage=30, iRange=200, iReactionRange=30, iReactionAngle=200, iRadius=0, iCritical=25, iOffenseBonus=7, iSuppression=605, iSize=eItemSize_Large, iHPBonus=0, iWillBonus=0 ); Laser Sniper Rifle
- Search for
Weapons=( strName="", iType=eItem_LaserAssaultGun
and replace the whole line with: Weapons=( strName="", iType=eItem_LaserAssaultGun, ABILITIES[0]=eAbility_ShotStandard, ABILITIES[1]=eAbility_Overwatch, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_Assault, Properties[1]=eWP_Rifle, Properties[2]=0, Properties[3]=0, Properties[4]=0, Properties[5]=0, iDamage=7, iEnvironmentDamage=60, iRange=30, iReactionRange=14, iReactionAngle=360, iRadius=0, iCritical=20, iOffenseBonus=7, iSuppression=605, iSize=eItemSize_Large, iHPBonus=0, iWillBonus=0 ); Scatter Laser
- Search for
Weapons=( strName="", iType=227
and replace the whole line with: Weapons=( strName="", iType=227, ABILITIES[0]=eAbility_ShotStandard, ABILITIES[1]=eAbility_Overwatch, ABILITIES[2]=eAbility_Aim, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_Sniper, Properties[1]=eWP_Overheats, Properties[2]=eWP_MoveLimited, Properties[3]=0, Properties[4]=0, Properties[5]=0, iDamage=6, iEnvironmentDamage=30, iRange=36, iReactionRange=36, iReactionAngle=200, iRadius=0, iCritical=15, iOffenseBonus=7, iSuppression=605, iSize=eItemSize_Large, iHPBonus=0, iWillBonus=0 ); Laser Strike Rifle
All armor small item equippables confer the Secondary Heart perk.
- Search for
Itembalance_Normal=(eItem=eItem_ChitinPlating
and replace the whole line with: Itembalance_Normal=(eItem=eItem_ChitinPlating, iCash=100, iElerium=0, iAlloys=4020, iTime=10, iEng=35);
- Search for
Itembalance_Normal=(eItem=eItem_ReinforcedArmor
and replace the whole line with: Itembalance_Normal=(eItem=eItem_ReinforcedArmor, iCash=0, iElerium=0, iAlloys=4005, iTime=7, iEng=15);
- Search for
ItemBalance_Normal=(eItem=94
and replace the whole line with: ItemBalance_Normal=(eItem=94, iCash=60, iElerium=5002, iAlloys=4003, iTime=7, iEng=30)
- Search for
ItemBalance_Normal=(eItem=95
and replace the whole line with: ItemBalance_Normal=(eItem=95, iCash=-1, iElerium=0, iAlloys=4000, iTime=-1, iEng=-1)
- Search for
Itembalance_Normal=(eItem=220
and replace the whole line with: Itembalance_Normal=(eItem=220, iCash=70, iElerium=0, iAlloys=4010, iTime=7, iEng=12);
Tactical Modifications
Flying provides no defensive bonus. This also causes flying units to be counted as exposed.
- Search for
AIR_EVADE_DEF
and edit it to =0
Resource Modifications
Mechtoids and Floaters provide significantly more Meld.
- Search for
MECHTOID_MELD
and edit it to =80 - Search for
HFLOATER_MELD
and edit it to =1030
Strategy game altered so that resources are more plentiful and all items are cheaper, but take longer to build. Net result can be gamed, arguably: rushing an item will result in the same credit, alloy and elerium cost as the base LW mod, but will take 75% of the time it would take in the base LW mod -- but this also adds a Meld cost.
- Search for
ABDUCTION_REWARD_CASH
and edit it to =300 - Search for
ITEM_TIME_BALANCE
and edit it to =1.5 - Search for
ITEM_CREDIT_BALANCE
and edit it to =.66 - Search for
ITEM_ELERIUM_BALANCE
and edit it to =.66 - Search for
ITEM_ALLOY_BALANCE
and edit it to =.66 - Search for
ITEM_MELD_BALANCE
and edit it to =.25
Enemy Unit Modifications
Thin Man poison spit reduced to range of 5.
- Search for
Weapons=( strName="", iType=eItem_Plague
and replace the whole line with: Weapons=( strName="", iType=eItem_Plague, ABILITIES[0]=eAbility_Plague, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, Properties[0]=eWP_Support, Properties[1]=eWP_Secondary, Properties[2]=eWP_NoReload, Properties[3]=eWP_Backpack, Properties[4]=0, Properties[5]=0, iDamage=7, iEnvironmentDamage=45, iRange=5, iReactionRange=25, iReactionAngle=200, iRadius=144, iCritical=0, iOffenseBonus=0, iSuppression=202, iSize=eItemSize_Small, iHPBonus=0, iWillBonus=0 )
Lightning Reflexes removed from all Chryssalid units.
- Search for
BalanceMods_Hard=(eType=eChar_Chryssalid, iDamage=1, iCritHit=2, iAim=0
and replace the whole line with: BalanceMods_Hard=(eType=eChar_Chryssalid, iDamage=1, iCritHit=2, iAim=0, iDefense=5, iHP=1, iMobility=0, iWill=0); Lightning Reflexes (removed)
All Exalt and Elite Exalt that have not been promoted to navigator/leader have significantly reduced hit points, putting all Exalt into one-shot territory. Their offensive capabilities have not been altered.
- Search the Characters block (the first major block of text after armors) for any entry with "Exalt" in the name. Find
HP=
on that line. Adjust as desired.
All alien and Exalt final forms have been disabled, except the leader/navigator. This final upgrade would normally occur at "alien research threshold" 900, which is a rough estimate of how many days have passed since the beginning of the game, modified by alien research efforts. These final upgrades give the aliens substantially higher stats and seem to have been intended to provide a sense of urgency and/or provoke the player to finish the game (to be fair, two to three years is plenty long enough). This file disables them simply because the author of the package modding the mod doesn't like them.
To re-enable these super upgrades or to disable earlier upgrades, search for ; ALIEN AUTOMATIC UPGRADES
. The section that follows details all of the upgrades each non-XCOM unit can receive over time, most of which start at "210". Place a semicolon at the beginning of any line which you want to disable, or remove the semicolon from each unit line you want to re-enable.
Note that, despite denying aliens and Exalt their final upgrades and restricting Exalt starting HP, leader/navigator types of each alien will remain a significant threat.
bingo's Modification Package
Floater flying removal
You feel that there are too many flying units in LW? you can remove flying ability and launch ability from floater and heavy floater.
- Search for
Characters=( strName="", iType=eChar_Floater
and replace the whole line with: Characters=( strName="", iType=eChar_Floater, HP=5, Offense=65, Defense=0, Mobility=13, SightRadius=27, Will=20, ShieldHP=0, CritHitChance=0, CritWoundChance=0, FlightFuel=0, Reaction=0, ABILITIES[0]=eAbility_TakeCover, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, ABILITIES[6]=0, ABILITIES[7]=0, Properties[0]=eCP_Flight, Properties[1]=eCP_AirEvade, Properties[2]=0, Properties[3]=0, Properties[4]=0, Properties[5]=0, bCanUse_eTraversal_Normal=True, bCanUse_eTraversal_ClimbOver=True, bCanUse_eTraversal_ClimbOnto=True, bCanUse_eTraversal_ClimbLadder=False, bCanUse_eTraversal_DropDown=True, bCanUse_eTraversal_Grapple=False, bCanUse_eTraversal_Landing=True, bCanUse_eTraversal_BreakWindow=True, bCanUse_eTraversal_KickDoor=True, bCanUse_eTraversal_JumpUp=False, bCanUse_eTraversal_WallClimb=False, bCanUse_eTraversal_BreakWall=False, kInventory=( iArmor=eItem_NONE, iPistol=eItem_NONE, arrLargeItems[0]=0, arrLargeItems[1]=0, arrLargeItems[2]=0, arrLargeItems[3]=0, arrLargeItems[4]=0, arrLargeItems[5]=0, arrLargeItems[6]=0, arrLargeItems[7]=0, arrLargeItems[8]=0, arrLargeItems[9]=0, arrLargeItems[10]=0, arrLargeItems[11]=0, arrLargeItems[12]=0, arrLargeItems[13]=0, arrLargeItems[14]=0, arrLargeItems[15]=0, iNumLargeItems=0, arrSmallItems[0]=0, arrSmallItems[1]=0, arrSmallItems[2]=0, arrSmallItems[3]=0, arrSmallItems[4]=0, arrSmallItems[5]=0, arrSmallItems[6]=0, arrSmallItems[7]=0, arrSmallItems[8]=0, arrSmallItems[9]=0, arrSmallItems[10]=0, arrSmallItems[11]=0, arrSmallItems[12]=0, arrSmallItems[13]=0, arrSmallItems[14]=0, arrSmallItems[15]=0, iNumSmallItems=0, arrCustomItems[0]=0, arrCustomItems[1]=0, arrCustomItems[2]=0, arrCustomItems[3]=0, arrCustomItems[4]=0, arrCustomItems[5]=0, arrCustomItems[6]=0, arrCustomItems[7]=0, arrCustomItems[8]=0, arrCustomItems[9]=0, arrCustomItems[10]=0, arrCustomItems[11]=0, arrCustomItems[12]=0, arrCustomItems[13]=0, arrCustomItems[14]=0, arrCustomItems[15]=0, iNumCustomItems=0 ), eClass=eSC_None, bHasPsiGift=False, fBioElectricParticleScale=1 )
- Search for
Characters=( strName="", iType=eChar_FloaterHeavy,
and replace the whole line with: Characters=( strName="", iType=eChar_FloaterHeavy, HP=15, Offense=70, Defense=10, Mobility=12, SightRadius=27, Will=25, ShieldHP=0, CritHitChance=0, CritWoundChance=0, FlightFuel=0, Reaction=0, ABILITIES[0]=eAbility_TakeCover, ABILITIES[1]=0, ABILITIES[2]=0, ABILITIES[3]=0, ABILITIES[4]=0, ABILITIES[5]=0, ABILITIES[6]=0, ABILITIES[7]=0, Properties[0]=eCP_Flight, Properties[1]=eCP_AirEvade, Properties[2]=0, Properties[3]=0, Properties[4]=0, Properties[5]=0, bCanUse_eTraversal_Normal=True, bCanUse_eTraversal_ClimbOver=True, bCanUse_eTraversal_ClimbOnto=True, bCanUse_eTraversal_ClimbLadder=False, bCanUse_eTraversal_DropDown=True, bCanUse_eTraversal_Grapple=False, bCanUse_eTraversal_Landing=True, bCanUse_eTraversal_BreakWindow=False, bCanUse_eTraversal_KickDoor=False, bCanUse_eTraversal_JumpUp=False, bCanUse_eTraversal_WallClimb=False, bCanUse_eTraversal_BreakWall=False, kInventory=( iArmor=eItem_NONE, iPistol=eItem_NONE, arrLargeItems[0]=0, arrLargeItems[1]=0, arrLargeItems[2]=0, arrLargeItems[3]=0, arrLargeItems[4]=0, arrLargeItems[5]=0, arrLargeItems[6]=0, arrLargeItems[7]=0, arrLargeItems[8]=0, arrLargeItems[9]=0, arrLargeItems[10]=0, arrLargeItems[11]=0, arrLargeItems[12]=0, arrLargeItems[13]=0, arrLargeItems[14]=0, arrLargeItems[15]=0, iNumLargeItems=0, arrSmallItems[0]=0, arrSmallItems[1]=0, arrSmallItems[2]=0, arrSmallItems[3]=0, arrSmallItems[4]=0, arrSmallItems[5]=0, arrSmallItems[6]=0, arrSmallItems[7]=0, arrSmallItems[8]=0, arrSmallItems[9]=0, arrSmallItems[10]=0, arrSmallItems[11]=0, arrSmallItems[12]=0, arrSmallItems[13]=0, arrSmallItems[14]=0, arrSmallItems[15]=0, iNumSmallItems=0, arrCustomItems[0]=0, arrCustomItems[1]=0, arrCustomItems[2]=0, arrCustomItems[3]=0, arrCustomItems[4]=0, arrCustomItems[5]=0, arrCustomItems[6]=0, arrCustomItems[7]=0, arrCustomItems[8]=0, arrCustomItems[9]=0, arrCustomItems[10]=0, arrCustomItems[11]=0, arrCustomItems[12]=0, arrCustomItems[13]=0, arrCustomItems[14]=0, arrCustomItems[15]=0, iNumCustomItems=0 ), eClass=eSC_None, bHasPsiGift=False, fBioElectricParticleScale=1 )
for the compensation, you can give additional Aim bonus to floater and heavy floater by add 10 to their Offense value. changes above don't include aim bonus.
Heavy Floater grenade removal
if you want to remove Heavy Floater grenade ability,
- Search for
Weapons=( strName="", iType=eItem_FloaterGrenade, ABILITIES[0]=eAbility_AlienGrenade
and replace "ABILITIES[0]=eAbility_AlienGrenade" with: ABILITIES[0]=0
PatcherGUI Mods
Mods for Longwar
Use this link for mods for Longwar:
https://www.reddit.com/r/Xcom/comments/4gorly/long_war_101_mods_compatible_with_10_updated/
This mod manager helps to manage your mods
http://www.nexusmods.com/xcom/mods/620/?
Improved Neural Feedback
Roughly 2.5x the feedback damage
//This script was generated by HexToPseudoCode decompiler for use with PatchUPK/PatcherGUI tool UPK_FILE = XComGame.upk OBJECT = XGUnit.ApplyNeuralFeedback : AUTO [BEFORE_CODE] /*(0x0ACB/0x078F)*/ 0F 00 <.iDmg> FA 91 93 38 44 AB 38 3F 19 1A 25 00 <.kTarget> [@] <XGUnitNativeBase.GetWill.ReturnValue> 00 ( 1B <GetWill> 16 ) 1E <%f 1.3> 16 1B <GetWill> 16 16 2C 0A 16 26 16 [AFTER_CODE] /*(0x0ACB/0x078F)*/ 0F 00 <.iDmg> FA 91 93 38 44 AB 38 3F 19 1A 25 00 <.kTarget> [@] <XGUnitNativeBase.GetWill.ReturnValue> 00 ( 1B <GetWill> 16 ) 1E <%f 1.7> 16 1B <GetWill> 16 16 2C 0A 16 26 16
Double Damage XCOM Aircraft Weapons
Note: This will probably not work with the latest version of Long War, since air combat variables have been moved to DefaultGameCore.ini.
XCOM aircraft weapons have been modified to do double damage (armor penetration unchanged). Alien air weapons unchanged. Use PatcherGUI to implement.
//This script was generated by HexToPseudoCode decompiler for use with PatchUPK/PatcherGUI tool UPK_FILE = XComStrategyGame.upk OBJECT = XGItemTree.UpdateShips : AUTO [REPLACEMENT_CODE] /*(0x0000/0x0000)*/ 0F 01 <@m_iCurrentCategory> FB 91 1B <STAT_GetStat> 26 16 2C 1E 16 2C 00 2C 20 16 /*(0x001F/0x001B)*/ 1B <UpdateShip> 24 02 1D <%i 2000> 2C 0A 2C 08 25 25 16 /*(0x0036/0x0032)*/ 07 [@label_0x0048] 72 1B <ENGINEERING> 16 2A 16 /*(0x0046/0x0042)*/ 04 0B /*(0x0048/0x0044)*/ [#label_0x0048] /*(0x0048/0x0044)*/ 1B <UpdateShip> 24 01 1D <%i 1500> 92 2C 0A 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 21 16 ) [@] ( 24 05 ) [@] ( 25 ) 16 92 1D <%i 2500> 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 0C 16 ) [@] ( 1D <%i 1000> ) [@] ( 25 ) 16 2C 05 92 2C 00 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1C 16 ) [@] ( 24 05 ) [@] ( 25 ) 16 16 /*(0x00EB/0x00DB)*/ 1B <UpdateShip> 24 03 1D <%i 3500> 92 2C 0F 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 21 16 ) [@] ( 24 05 ) [@] ( 25 ) 16 92 1D <%i 4000> 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 0C 16 ) [@] ( 1D <%i 1000> ) [@] ( 25 ) 16 2C 19 92 2C 05 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1C 16 ) [@] ( 24 05 ) [@] ( 25 ) 16 16 /*(0x018E/0x0172)*/ 1B <UpdateShip> 24 04 1D <%i 3000> 2C 2A 92 1D <%i 750> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 00 2C 03 16 /*(0x01B9/0x0199)*/ 1B <UpdateShip> 24 05 1D <%i 2250> 2C 1E 92 1D <%i 1600> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 12 2C 0F 16 /*(0x01E4/0x01C0)*/ 1B <UpdateShip> 24 06 1D <%i 1700> 2C 19 92 1D <%i 4000> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 1E 2C 02 16 /*(0x020F/0x01E7)*/ 1B <UpdateShip> 24 07 1D <%i 1200> 2C 12 92 1D <%i 5000> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 20 2C 00 16 /*(0x023A/0x020E)*/ 1B <UpdateShip> 24 08 1D <%i 2000> 2C 23 92 1D <%i 9000> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 24 2C 14 16 /*(0x0265/0x0235)*/ 1B <UpdateShip> 24 09 1D <%i 3500> 2C 3C 92 1D <%i 2500> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 28 2C 19 16 /*(0x0290/0x025C)*/ 1B <UpdateShip> 24 0A 1D <%i 2500> 2C 28 92 1D <%i 850> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 0C 2C 07 16 /*(0x02BB/0x0283)*/ 1B <UpdateShip> 24 0B 1D <%i 2600> 2C 20 92 1D <%i 1500> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 05 2C 07 16 /*(0x02E6/0x02AA)*/ 1B <UpdateShip> 24 0C 1D <%i 1500> 2C 18 92 1D <%i 3500> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 14 2C 03 16 /*(0x0311/0x02D1)*/ 1B <UpdateShip> 24 0D 1D <%i 1300> 2C 14 92 1D <%i 6000> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 19 2C 00 16 /*(0x033C/0x02F8)*/ 1B <UpdateShip> 24 0E 1D <%i 1400> 2C 23 92 1D <%i 8000> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 1C 2C 12 16 /*(0x0367/0x031F)*/ 07 [@label_0x0391] 97 01 <@m_iCurrentCategory> 2C 08 16 /*(0x0377/0x032B)*/ 1B <BuildShip> 24 05 01 <@m_strSizeMedium> 24 50 2C 09 4A 16 /*(0x0391/0x0341)*/ [#label_0x0391] /*(0x0391/0x0341)*/ 07 [@label_0x03BC] 97 01 <@m_iCurrentCategory> 2C 0A 16 /*(0x03A1/0x034D)*/ 1B <BuildShip> 24 0A 01 <@m_strSizeSmall> 24 4F 2C 08 2C 08 16 /*(0x03BC/0x0364)*/ [#label_0x03BC] /*(0x03BC/0x0364)*/ 07 [@label_0x0402] 97 01 <@m_iCurrentCategory> 2C 0C 16 /*(0x03CC/0x0370)*/ 1B <BuildShip> 24 06 01 <@m_strSizeLarge> 24 51 2C 09 2C 08 16 /*(0x03E7/0x0387)*/ 1B <BuildShip> 24 0D 01 <@m_strSizeLarge> 24 52 2C 09 2C 08 16 /*(0x0402/0x039E)*/ [#label_0x0402] /*(0x0402/0x039E)*/ 07 [@label_0x0473] 97 01 <@m_iCurrentCategory> 2C 12 16 /*(0x0412/0x03AA)*/ 1B <BuildShip> 24 0B 01 <@m_strSizeMedium> 24 50 2C 08 2C 08 16 /*(0x042D/0x03C1)*/ 1B <BuildShip> 24 0E 01 <@m_strSizeVeryLarge> 24 54 2C 09 2C 09 16 /*(0x0448/0x03D8)*/ 1B <UpdateShip> 24 05 1D <%i 2250> 2C 1E 92 1D <%i 1600> 90 2C 4B 01 <@m_iCurrentCategory> 16 16 2C 20 2C 14 16 /*(0x0473/0x03FF)*/ [#label_0x0473] /*(0x0473/0x03FF)*/ 07 [@label_0x051C] 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 2C 16 ) /*(0x0498/0x0420)*/ 1B <BuildShipWeapon> 24 01 1D <%i -1> 2C 64 1E <%f 0.75> 1D <%i 460> 2C 12 92 92 2C 28 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x0519/0x0491)*/ 06 [@label_0x059D] /*(0x051C/0x0494)*/ [#label_0x051C] /*(0x051C/0x0494)*/ 1B <BuildShipWeapon> 24 01 1D <%i -1> 2C 64 1E <%f 0.75> 1D <%i 280> 2C 05 92 92 2C 28 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x059D/0x0505)*/ [#label_0x059D] /*(0x059D/0x0505)*/ 1B <BuildShipWeapon> 24 02 1D <%i 3> 2C 64 1E <%f 1.5> 1D <%i 400> 2C 0A 92 92 2C 28 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x061E/0x0576)*/ 1B <BuildShipWeapon> 24 03 1D <%i 3> 2C 64 1E <%f 2> 1D <%i 680> 2C 00 92 92 2C 28 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x069F/0x05E7)*/ 07 [@label_0x0748] 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 22 16 ) /*(0x06C4/0x0608)*/ 1B <BuildShipWeapon> 24 04 1D <%i -1> 2C 64 1E <%f 0.75> 1D <%i 600> 2C 0B 92 92 2C 37 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x0745/0x0679)*/ 06 [@label_0x07C9] /*(0x0748/0x067C)*/ [#label_0x0748] /*(0x0748/0x067C)*/ 1B <BuildShipWeapon> 24 04 1D <%i -1> 2C 64 1E <%f 1> 1D <%i 580> 2C 05 92 92 2C 37 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x07C9/0x06ED)*/ [#label_0x07C9] /*(0x07C9/0x06ED)*/ 1B <BuildShipWeapon> 24 05 1D <%i 10> 2C 64 1E <%f 1> 1D <%i 1300> 2C 16 92 92 2C 28 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x084A/0x075E)*/ 1B <BuildShipWeapon> 24 06 1D <%i -1> 2C 64 1E <%f 0.55> 1D <%i 620> 2C 1E 92 92 2C 1E 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x08CB/0x07CF)*/ 1B <BuildShipWeapon> 24 07 1D <%i 10> 2C 64 1E <%f 1.25> 1D <%i 2400> 2C 1A 92 92 2C 1E 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1F 16 ) [@] ( 2C 0A ) [@] ( 25 ) 16 45 1B <IsOptionEnabled> 24 18 16 [@] ( 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) ) [@] ( 25 ) 16 16 /*(0x094C/0x0840)*/ 1B <BuildShipWeapon> 24 08 1D <%i -1> 2C 65 1E <%f 1.15> 92 1D <%i 450> 90 24 08 01 <@m_iCurrentCategory> 16 16 2C 00 92 2C 21 92 90 24 02 01 <@m_iCurrentCategory> 16 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 20 16 ) [@] ( 1D <%i -15> ) [@] ( 25 ) 16 16 16 /*(0x09BA/0x08A2)*/ 1B <BuildShipWeapon> 24 09 1D <%i -1> 2C 65 1E <%f 1.25> 92 1D <%i 800> 90 24 08 01 <@m_iCurrentCategory> 16 16 2C 14 92 2C 28 92 90 24 02 01 <@m_iCurrentCategory> 16 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 20 16 ) [@] ( 1D <%i -15> ) [@] ( 25 ) 16 16 16 /*(0x0A28/0x0904)*/ 1B <BuildShipWeapon> 24 0A 1D <%i -1> 2C 65 1E <%f 1.25> 92 1D <%i 1300> 90 24 08 01 <@m_iCurrentCategory> 16 16 2C 32 92 2C 2D 92 90 24 02 01 <@m_iCurrentCategory> 16 45 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 20 16 ) [@] ( 1D <%i -15> ) [@] ( 25 ) 16 16 16 /*(0x0A96/0x0966)*/ 07 [@label_0x0AF0] 19 1B <ENGINEERING> 16 [@] <XGFacility_Engineering.IsFoundryTechResearched.ReturnValue> 00 ( 1B <IsFoundryTechResearched> 2C 1B 16 ) /*(0x0ABB/0x0987)*/ 1B <BuildShip> 26 01 <@m_strSizeSmall> 24 44 2C 03 2C 02 16 /*(0x0AD5/0x099D)*/ 1B <BuildShip> 24 03 01 <@m_strSizeSmall> 24 45 2C 03 2C 02 16 /*(0x0AF0/0x09B4)*/ [#label_0x0AF0] /*(0x0AF0/0x09B4)*/ 1B <UpdateAllShipTemplates> 16 /*(0x0AFA/0x09BE)*/ 04 0B /*(0x0AFC/0x09C0)*/ 53