XCOM 2
40 ratings
[WOTC] Amalgamation Console Helper
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
910.511 KB
10 Nov, 2022 @ 3:04pm
12 Sep, 2024 @ 1:04pm
14 Change Notes ( view )
You need DLC to use this item.

Subscribe to download
[WOTC] Amalgamation Console Helper

Description
Adds several new console commands for the Amalgamation Classes mod, allowing for things like easy rerolls and detailed spec/class searches. Generally intended as a dev tool, but also has some fun features for general play. (or streaming? rerolls!)

Usage:
To include all specializations for a given type (primary/secondary/tertiary), use "any" as a filter.

Angle bracket arguments ("<" and ">") are required, square bracket ones ("[" and "]") are optional. Arguments with a question mark are boolean -- they accept either "true" or "false".

Brackets are only used to show whether an argument is required or not. Do not include them!

This will work: RandomizeSoldierSpecs Infantry CombatMedic any
This does not: RandomizeSoldierSpecs [Infantry] [CombatMedic] [any]

Commands:
CountSpecs
Lists all installed specializations, divided into categories and sorted by how common they are.

CountSpecWeapons [spec name filter]
Lists all weapons granted by specs, sorted by the amount of classes granting them.

CountSpecAbilities [ability name filter]
Lists all abilities granted by specs, sorted by number of specs. Can search for (parts of) names.

CountBarracksSpecs
Lists all specs found on soldiers in the barracks, along with any that have not been seen yet.

ListSpecUnusedAbilities [ability name filter]
Lists all abilities not (yet?) granted by specs. Can search for (parts of) names.

FindSpecs <primary or single spec> [secondary spec] [tertiary spec] [show extended info?]
Lists all Amalgamation classes matching the filters. Pass in a single wildcard to print all.

RollSpecs <amount> [primary spec] [secondary spec] [tertiary spec] [bypass config filter?]
Similar to ListSpecs, but random. Uses the config rarity filter to make rare specs rarer.

ApplyClass <list number> [rank level]
Applies an entry from ListSpecs or RollSpecs by its list number. Overwrites current class!

PrintBlockedSpecs <spec>
Prints all specs that are banned from rolling with the provided spec. (exclusions)

FindBlockedClasses <primary or single spec> [secondary spec] [tertiary spec]
Lists matching classes that are currently blocked by exclusions. May be slow!

ListRedundantSpecExclusions
Lists spec exclusions that target specs of the same type. (which would be excluded already)

ListSpecAbilityConflicts [spec name filter]
Lists abilities that are on multiple compatible specs at once. Causes wasted picks on rank-up.

SetSoldierSpecs <primary spec> <secondary spec> <tertiary spec> [rank level]
Creates and applies a class for the given specializations. Overwrites current class!

RandomizeSoldierSpecs [primary spec] [secondary spec] [tertiary spec] [bypass config filter?]
Rolls (and applies) a single random class. Uses the config rarity filter. Overwrites current class!

PrintSpecInfo <spec>
Prints tons of info. (description, weaponry, exclusions, total and rank-specific growths/decks)

PrintAllSpecGrowths
Prints every single spec's total growths, sorted by spec type. Tracks and displays broken stats.

PrintAllSpecDescriptions
Similar to the above, but with descriptions instead.

BruteForceCountSpecs <# of iterations>
Debug: Rolls the specified number of random classes, and counts their specs. (sanity check)

Compatibility:
No overrides, should be compatible with just about anything.

Setting character classes through ApplyClass, SetSoldierSpecs or RandomizeSoldierSpecs requires the Additional Soldier Console Commands mod.

Note that while most commands were made to work with any resolution with 1280 horizontal pixels or above, some (FindBlockedClasses and ListSpecAbilityConflicts) need 1600+ pixels instead due to info density.

Works great with my general console commands mod, and has some integration with its commands.

Special thanks:
52 Comments
Joe Marotta 11 Apr @ 9:56am 
Thank you for the response and explanation. I'll take a look. These console commands are a great tool. Thank you for creating!
XpanD  [author] 9 Apr @ 3:43am 
That'll be due to an exclusion -- somewhere, in one of the XComAmalgamation config files in your mod list, there are IncompatibleSpecs entries blocking those specific pairings.

Since Shadow is a base Amalgamation spec and base Amalgamation only excludes its own specs, you can safely skip looking there. The exclusions you're looking for are most likely in the configs for the Grenade Connoisseur and Claymore mods.

As for why that's not being shown in-game... When the game starts up, it merges every config of a given type into a huge list. This unfortunately makes it so individual changes can no longer be traced back to their original mods; we can only see that an exclusion exists, but not what added it. It works pretty well, but does get a little awkward in cases like these.
Joe Marotta 8 Apr @ 3:07pm 
i am trying to allow for Shadow, GConnoisseur Claymore. I used FinBlockedClasses Shadow. Sure enough it is blocked. I checked various XcomAmalgamation.ini files and can't find the issue. Can any of these console commands help me pinpoint <why> it is blocked? Much thanks!
Daminotaur 20 Jan @ 5:30pm 
Ah, i see, the font wasnt clear. Much appreciated. Thank you for the fast response.
XpanD  [author] 20 Jan @ 5:17pm 
You'll want "Skv" there, not "Sky" -- those are Stukov's specs.
Daminotaur 20 Jan @ 5:11pm 
Findspecs doesnt seem to be able to locate any of the Sky classes, SkyAssassin, SkyScout, etc.

Keeps returning the error messsage "could not find the provided specializations".

I tried FindSpecs Assassin, error
I tried FindSpecs SkyAssassin, error
I tried FindSpecs SkyAssassin(Assassin), error
I tried FindSpecs SkyAssassin (Assassin), error

I do have a xcom soldier that has Assassin class, so it should not be a banned class... but am I doing it wrong?
XpanD  [author] 20 Jan @ 2:25am 
You can get a list of different specs by category with CountSpecs, and then use something like RollSpecs/RandomizeSoldierSpecs with one or more preferences (and the "any" keyword), or SetSoldierSpecs with all three specs provided.

Note that only valid classes can be applied, as invalid combinations never get any classes created in the first place. (you can check this in-game using PrintBlockedSpecs or PrintSpecInfo)
Daminotaur 19 Jan @ 8:01pm 
Hi. Love your mod. Would like to experiment by manually giving my squaddies specific classes. Do you have a list of all primary, secondary, and tertiary classes?

Thank you.
XpanD  [author] 24 Dec, 2024 @ 2:31am 
Updated the page, should hopefully be a bit clearer now!
Corabiit 23 Dec, 2024 @ 8:21pm 
I defer to your knowledge and agree. I am definitely a novice.
Thank you, sincerely, for this mod though. (and all your efforts)
It truly helps a lot once I learned how to use it.