Category Archives: Reviews

Reviews of books, movies, music, and maybe even games.

XCOM 2: The Legendary Super-Squad Mods

I promised I’d document my XCOM 2 tweaks. My goal, as stated elsewhere, was to create a “casual mode” for taking on Legendary levels of enemies in XCOM 2. It’s not the same as playing on “Rookie” difficulty, because in Rookie mode the enemies go easy on you (there’s a limit to how many will fire on you in a given round,) and the random number generator will start erring in your  favor if you really take a beating.

I wanted lots of tough, smart enemies, and I did not want them to back off if I screwed up. But I still wanted to be able to enjoy myself.

This is going to be much longer than most of my posts. Here we go!

This whole project¹ takes place in the Config folder for XCOM 2. On my machine it’s at C:\Program Files (x86)\Steam\steamapps\common\XCOM 2\XComGame\Config

This folder has around 40 files in it (as of now, anyway. More may be coming.) The key files for me were these:

  • DefaultClassData.ini—I tweaked HP, Hack, and Offense gains for each character class
  • DefaultGameData.ini—boosted the squad size
  • DefaultGameData_CharacterStats.ini—lots of small boosts for characters here
  • DefaultGameData_SoldierSkills.ini—reduced cooldown a little for the really neat stuff.
  • DefaultGameData_WeaponData.ini—lots of tweaks here. Lots.
  • DefaultGameData_XpData.ini—Reduced XP required to level up.

The very first thing I did was to duplicate the entire Config folder, and call the duplicate folder called “Config.bak.” That way if I broke anything, I could just swap the folders out and put the whole game back the way it was.

Ch-ch-ch-changes

Here are the changes I made. I’ve organized them by file, and while I have not listed every last modification I made, I’ve provided specific examples of each change so that even the most timid among us can confidently mod their game.

DefaultClassData.ini

I made lots of little changes here in order to make promotions give just a little bit more to the soldiers. The file has sections for each of the character classes (Ranger, Sharpshooter, Specialist, Grenadier,) and is further divided by each promotion they get. Here is the section that defines the various things a Ranger gets when becoming a squaddie:

; squaddie
SoldierRanks=( aAbilityTree=( (AbilityName="SwordSlice", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon) \\
 ), \\
 aStatProgression=((StatType=eStat_Offense,StatAmount=3), (StatType=eStat_HP,StatAmount=1), (StatType=eStat_Strength,StatAmount=0), (StatType=eStat_Hacking,StatAmount=0), (StatType=eStat_CombatSims,StatAmount=1)),\\

The bolded line is where I made my change: I changed StatAmount=3 to StatAmount=4. The promoted Ranger gets a little bit more aim.

I boosted the Offense promotions for my Rangers and Sharpshooters, and gave my Specialists better Hacking bonuses.

This is where a Specialist is promoted to Corporal.

; corporal
SoldierRanks=( aAbilityTree=( (AbilityName="MedicalProtocol", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon), \\
 (AbilityName="CombatProtocol", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon) \\
 ), \\
 aStatProgression=((StatType=eStat_Offense,StatAmount=3), (StatType=eStat_HP,StatAmount=1), (StatType=eStat_Strength,StatAmount=0), (StatType=eStat_Hacking,StatAmount=5), (StatType=eStat_CombatSims,StatAmount=0)),\\

I changed the bolded text so StatAmount=5 was StatAmount=10. I did this for each promotion, because the vanilla specialist, even fully tricked out, was never better than a bad crapshoot for the cool stuff. It was almost *always* a better idea to have the Specialist shoot than hack. With this tweak I turned my Specialists into hackers. Good times!

DefaultGameData.ini

This one eventually required an outside mod¹ because of interface problems. The MaxSoldiersOnMission line starts like this.

m_iMaxSoldiersOnMission=4

I made it look like this:

m_iMaxSoldiersOnMission=6

This meant I began the game with 6 soldiers instead of four. Once I bought squad size upgrades I was taking eight soldiers on each mission.

The additional two soldiers, #7 and #8, were auto-filled for me from the top of my soldier list, because the interface didn’t actually let me edit those two slots. I later installed the “Max Squad Size Fix” mod¹, which changed the UI, allowing me to choose everybody who came along (and their loadout.)

This change, more than any of the others, made the biggest difference for me. I was still always outnumbered, but after I bought the squad size upgrades I could treat my crew as two fire teams of four, and that was wonderful.

DefaultGameData_CharacterStats.ini

This was my second most important adjustment. I boosted the starting character stats so that rookies weren’t worthless, and so that flanking somebody made a real difference. The bold lines are the ones I wanted to change:

[Soldier X2CharacterTemplate]
CharacterBaseStats[eStat_HP]=5
CharacterBaseStats[eStat_Offense]=65
CharacterBaseStats[eStat_Defense]=0
CharacterBaseStats[eStat_Mobility]=12
CharacterBaseStats[eStat_SightRadius]=27
CharacterBaseStats[eStat_Will]=40
CharacterBaseStats[eStat_PsiOffense]=0
CharacterBaseStats[eStat_FlightFuel]=0
CharacterBaseStats[eStat_UtilityItems]=1
CharacterBaseStats[eStat_AlertLevel]=2
CharacterBaseStats[eStat_BackpackSize]=3
CharacterBaseStats[eStat_Hacking]=5
CharacterBaseStats[eStat_CritChance]=0
CharacterBaseStats[eStat_CombatSims]=0
CharacterBaseStats[eStat_HighCoverConcealment]=1
CharacterBaseStats[eStat_Strength]=0
CharacterBaseStats[eStat_FlankingCritChance]=50
CharacterBaseStats[eStat_FlankingAimBonus]=0
CharacterBaseStats[eStat_DetectionRadius]=9

Offense went to 75, Mobility went up by one to 13, Sight radius went to 29, and Flanking Aim Bonus went to 20.

Aim a little better, run a little faster, see a little further, and now it’s worth getting out there and flanking somebody.

I did not boost their HP. If I screwed up, I wanted to pay for it. Obviously I could have pushed all their abilities through the roof, but that would have sucked quite a bit of the fun out of the game for me.

DefaultGameData_SoldierSkills.ini

Cooldown was all I messed with here. Many missions didn’t run long enough for a soldier to get to use their high-level abilities more than once. Here’s the Sharpshooter section:

[XComGame.X2Ability_SharpshooterAbilitySet]
HITWHEREITHURTS_CRIT=10
STEADYHANDS_AIM_BONUS=10
STEADYHANDS_CRIT_BONUS=10
DEADEYE_COOLDOWN=3
DEADEYE_AIM_MULTIPLIER=0.25f
FACEOFF_COOLDOWN=4
FANFIRE_COOLDOWN=4
KILLZONE_COOLDOWN=4
SERIAL_COOLDOWN=5
SHARPSHOOTERAIM_BONUS=20

The bolded lines all got reduced to 3. My Sharpshooters got to be awesome more often, and I was more likely to use an ability early in a mission. I still had to wait to use it again, but I was less likely to get killed, or have a mission timer run out, while waiting.

If you dig through this file you’ll see that you can boost lots more than just cooldown times. Your grenadiers might not want an aim penalty for using Chain Shot, for instance. (Upon further consideration, I know your grenadiers don’t want that aim penalty. The question is whether you want it.)

DefaultGameData_WeaponData.ini

This is where I made the most changes. It’s also where I broke the game balance completely, and then backed off a bit and un-broke it.

Consider the section for the Assault Rifle:

AssaultRifle_Conventional_BaseDamage=(Damage=4, Spread=1, PlusOne=0, Crit=2, Pierce=0, Shred=0, Tag="", DamageType="Projectile_Conventional")
AssaultRifle_Magnetic_BaseDamage=(Damage=6, Spread=1, PlusOne=0, Crit=3, Pierce=0, Shred=0, Tag="", DamageType="Projectile_MagXCom")
AssaultRifle_Beam_BaseDamage=(Damage=8, Spread=1, PlusOne=0, Crit=4, Pierce=0, Shred=0, Tag="", DamageType="Projectile_BeamXCom")

I added 2 to each of the “Damage” values, and increased the Spread from 1 to 2. Now instead of doing 3-5 damage the conventional assault rifle did 4-8.  Sectoids and Officers still required two hits, but never needed three (far fewer “oh geez why won’t you die” moments.)

In my first pass I added 3 to each value, and that was too much, because far too many things could be killed with a single shot.

There’s a section like this for each of the weapons. Here’s some help with the terms, should you need it:

  • Damage: starting damage roll
  • Spread: random number to add or subtract from the roll
  • PlusOne: I don’t know, so I left it alone
  • Crit: Amount of damage to add if it’s a crit
  • Pierce: Amount of armor to ignore on a hit
  • Shred: Amount of armor to destroy on a hit

The place where I went a little crazy with no regrets was in the section for the Ranger Sword. At the top of the tech tree (“Beam”) I had doubled the damage, doubled the crit, and given it three points of Pierce. Why? Because I wanted the occasional opportunity to play Jedi Knight with the Reaper ability. SUCH FUN. Risky, too, but there wasn’t a 95% chance my Ranger would accomplish nothing and then die.

I watched part of a Twitch run where the player expressed the desire to do exactly that, and wished aloud for just such a mod. It’s a simple text edit on three lines of human-readable code.

Deeper in the file there’s a section labeled like this:

; ***** Core properties and variables for XCom weapons *****

Here you can give weapons an aiming bonus, a larger magazine size (it says “iClipSize” but we know it’s a mag), and change how much environment damage it does. I added one round to everybody’s mags, gave the sniper rifles an aiming bonus, and added some hack bonus to the gremlins. These are all pretty easy to find.

Still further in the same file, look for this:

; ***** Grenade Damage Arrays *****

And then lines like these:

FragGrenade_BaseDamage = (Damage=3, Spread = 0, PlusOne = 20, Crit = 0, Pierce = 0, Shred=1, Tag = "", DamageType="Explosion")

I bumped up the damage by two points, and the spread by one. Grenades could actually kill things, instead of just removing some cover, but they weren’t truly dependable.

Of course, I wanted to have more of them. Look for this block, and note the line I’ve bolded:

FragGrenade_iSoundRange = 30
FragGrenade_iEnvironmentDamage = 10
FragGrenade_iSupplies = 100
FragGrenade_TradingPostValue = 23
FragGrenade_iPoints = 0
FragGrenade_iClipSize = 1
FragGrenade_Range = 10
FragGrenade_Radius = 3

Maybe grenades actually DO come in an open-topped clip. Who knows? Whatever they come in, I edited this line so that now they come in twos.

This edit can be done with every grenade type. It makes grenadiers able to actually launch a crap-ton of grenades and be useful, rather than launching two and then wondering why they’re called “grenadiers” instead of “wildly inaccurate bullet-hoses.”

DefaultGameData_XpData.ini

Here’s the last set. I made changes here because I wanted to level up multiple soldiers and experiment with their ability trees. That’s pretty tedious with the defaults. Since I was playing on Legend (where there are lots of smart enemies) I edited this block:

; Legend difficulty
PerDifficultyConfig[3]=( \\
 RequiredKills[0]=0, \\
 RequiredKills[1]=1, \\
 RequiredKills[2]=8, \\
 RequiredKills[3]=18, \\
 RequiredKills[4]=40, \\
 RequiredKills[5]=70, \\
 RequiredKills[6]=110, \\
 RequiredKills[7]=175)

All I did was reduce each number by a little less than half. 1, 5, 12, 25, 50, 75, and 100 were the numbers I used. Lots more leveling up, and lots more experimentation with builds.

And that’s it

Those are the files I changed, and while I haven’t listed all of my changes in detail, I think I’ve provided enough information here that folks who would otherwise be afraid to dig into the INI files will be able to modify XCOM 2 in ways that make it more like whatever it is they actually feel like playing.

I have exactly zero desire to roll the settings back to their defaults and attempt Legendary mode. I’ve played that game, and it feels too much like a very miserable job, with rare moments of joy, and a high probability of getting fired. I understand that there are people who really dig that, but I’m not one of those people.

And I’m glad I don’t have to be in order to enjoy this game.

¹The “Max Squad Size Fix” mod is found here, if you’re a Steam user, and it lives here on Nexus. It’s possible that it will not be required in later iterations of XCOM 2. I cannot vouch for its stability or support, but I’m still using it as of this writing, and it has a 5/5 star rating from the user community.

London Has Fallen

LondonHasFallenClearly, Americans have gotten tired of seeing American landmarks blowing up in movies, because this film, the sequel to Olympus Has Fallen, featured London’s landmarks getting blown up in the sort of loving detail that has been standard popcorn-fare for recognizable American architectural stuff since Independence Day (the movie, not the holiday, although there are plenty of explosions then, too.)

It’s been a long time since I was in London. I confess, I didn’t know which buildings I was supposed to be rooting for. There was a bridge that I think may have been important, too, but I didn’t recognize it. I did notice that The Gherkin survived unscathed.

London Has Fallen spent a lot of time creating suspense for the things that we saw happening in the trailer. The build-up was pretty effective, except for the bit where they also tried to get me to care about too many of the characters. Oh, and except for the part where I knew what was coming. From the one trailer I’d seen, I knew that if the person on camera was a) a major world leader, and b) not the U.S. President or Gerard Butler, that person was going to die.

Sadly, the film flinched away from what could have been a really powerful bit of storytelling. There’s this moment where the U.S. President is uncomfortable with a particularly vicious bit of knife-work on the part of his one surviving bodyguard. And to be honest, that bit stepped across a couple of lines. It was brutal, and satisfying, and very wrong.

But we never came back to that moment. The President and his bodyguard never had a discussion about becoming what we behold, or keeping to principles even when it’s inconvenient. This was truly disappointing. I never feared for either character’s life, but the film could have made me seriously worry for their friendship, their sanity, and even their souls. But no. The film flinched.

Sure, I got all the asplodey eye candy I expected, and some genuine suspense regarding secondary, non-world-leader characters, but about an hour in, the movie promised me some soul-searching, which it utterly failed to deliver. Pro-tip: Don’t wreck an okay movie by promising an awesome moment you can’t, or won’t, deliver.

Olympus London Has Fallen enters my list at the bottom, and is this year’s first entry below the Threshold of Disappointment.

 

Zootopia

I went in to Zootopia knowing very little about it beyond the fact that it was computer animated “anthro.”

ZootopiaIt was delightful. I’ll be buying the Blu-Ray, because this is one of those films I’ll just want to have around the house forever.

I have no idea how the dyed-in-the-wool (pardon-the-pun) furry fans will feel about Zootopia, because I’m not really conversant in their culture. It is possible that furries will see the film as a re-tread of stuff they’ve been consuming, and creating, for decades. Or maybe they’ll find it fresh and wonderful. I don’t know.

Zootopia leaps across my Threshold of Awesome, and sits just under the only other film this year to make that leap, Kung Fu Panda 3. That movie is also anthropomorphic, and I’m not quite sure how I should feel about that, since I only noticed the correlation while writing this paragraph.

Gods of Egypt

GodsOfEgyptGods of Egypt is a secondary world fantasy which, for reasons I cannot divine, was branded with Egyptian mythological names. It didn’t need Egypt at all, and probably would have been stronger if it had dropped all pretense of being Egyptian, and simply told a story that stood up to the pretty amazing quality of the effects.

The effects? So pretty. Some of the battle scenes are worthy of blockbuster summer releases, passing the tests of comprehensibility, story, and character arc while being a visual treat.

Ra’s ship, moving the sun across the sky? Stunning in its physics-defying absurdity, right up to the point that this might as well be a flat world scenario… and then lo, it’s a flat world after all (with apologies to Walt Disney and Terry Pratchett.)

The goddess whose bracelet prevents the demons of the netherworld from claiming her? SO COOL when she uses that bracelet for something reckless, stupid, and effective. It would have been even better if this had been her story, and hadn’t been set in Fake Egypt, and hrr—

I was going to add a third item to that “even better if” list, but the list ballooned into a script for a completely different movie so I deleted it.

Gods of Egypt did manage one thing: it cleared my Threshold of Disappointment by virtue of being cool to look at when I was in the mood to simply look at cool stuff. It doesn’t really qualify as a popcorn flick, and fails completely to leverage the mystique of ancient Egypt for anything other than the initial ticket sale. That alone promises to disappoint a large number of people who want more from their movie money than I wanted today.