Jump to content

Modding details? Ask away!


Amineri

Recommended Posts

You may have heard of me ... I did a little bit of modding for XCOM EU/EW back in the day ... :wink:

 

JL and I were contacted by 2K and Firaxis a few months back about working on XCOM 2 modding, which we of course said "YES!!" to. So, I've actually had access to the SDK since around the beginning of October 2015, although it's definitely evolved since then.

 

We built the 3 release day mods in large part as an exercise to test out various components of the modding system that Firaxis was creating for XCOM 2, and have been working with Firaxis to address moddability issues that we discovered. Sort of acting like "QA for modding".

 

Anyhow, now the game and the SDK are out there I'm free to talk about modding XCOM 2, will be back lurking around the Nexus forums, and am eager and willing to share all that I have learned. (Also looking forward to having more people figuring out tricks that I might have missed!).

 

So ask away, and I'll do my best to answer. :smile:

Link to comment
Share on other sites

  • Replies 399
  • Created
  • Last Reply

Top Posters In This Topic

So... how do I add new aliens like your centurion? I'm looking through your files, and I can't tell if it is complicated or deceptively simple.

 

To start, rather than any fancy thing (adding abilities, etc), I'd just enjoy a basic guide on how to, say, clone a sectoid and make it have higher stats and a different texture.

Link to comment
Share on other sites

I would love to re-create my favorite Second Wave modifiers, namely Not created Equally and Hidden Potential.

There's a RandStatAmount command in the DefaultClassData.ini, I still gotta test it, but this might solve the Hidden Potential issue if it does what the name hints.

But I have no clue how to remake Not Created Equally and I have no leads on how to randomize the starting stats of Rookies.

Edited by Hammerstein2k11
Link to comment
Share on other sites

[..]

So ask away, and I'll do my best to answer. :smile:

 

Cheerios :)

 

Still downloading the tools but any "wish I knew that before" tips? Mainly to avoid screwing up installs, organizing/distributing mods and the like? You know, things only couple months actually using them tools can teach :)

Link to comment
Share on other sites

So... how do I add new aliens like your centurion? I'm looking through your files, and I can't tell if it is complicated or deceptively simple.

 

To start, rather than any fancy thing (adding abilities, etc), I'd just enjoy a basic guide on how to, say, clone a sectoid and make it have higher stats and a different texture.

 

It is deceptively simple, I think, at least from the perspective of gameplay coding.

 

There's only 5 unrealscript classes (*.uc) in the mod, and 3 of those are for defining new abilities and ability effects, so you can ignore those for the purposes of just creating a new alien.

 

The core bits are :

 

- X2Character_MutonM2.uc

- X2Item_MutonM2.uc

 

The first one defines the character template. All I did there was to go into the base-game code, into X2Character_DefaultCharacters and copy a template from the Muton, then modify it from there.

 

The second one overwrites the weapon stats, allowing us to add more damage and the like. Again, I copied from X2Item_DefaultWeapons.uc, and modified as needed.

 

In both cases, the art is linked to via the Archetype definition.

 

For character :

CharTemplate.strPawnArchetypes.AddItem("LWMutonM2.ARC_GameUnit_MutonM2");

is how we defined the link to our new art asset for the Muton Centurion. When I was first creating the gameplay code, I just linked to the regular Muton archetype to make sure everything ran.

 

For item :

Template.GameArchetype = "WP_Muton_Rifle.WP_MutonRifle";

is how we linked the new Centurion item template to the existing base game art assets -- we didn't customize the weapon at all.

 

----------------------

 

Once the templates are set up, the next trick is to set up appropriate config files. The Centurion isn't probably quite the perfect example code, since there's some stuff in there I wrote but didn't end up getting working (like the AIJobs).

 

XComAI.ini : Handles configuration the AI Behavior trees. Only needed if you are adding new abilities or you want to change behavior of new unit.

XComGameCore.ini : Only needed if you want custom loot tables for new unit, which we didn't end up doing for Centurion.

XComGameData.ini : Used to define Loadout of alien -- which items they are using.

XComGameData_CharacterStats.ini : Defines all the character stats for unit, including difficulty variations. In particular the "LeaderLevelSpawnWeights" and "FollowerLevelSpawnWeights" are used to determine when your unit gets added to a mission.

 

I have a file for XComMissions.ini, but this was just configuring a special test mission with Centurion in it, which isn't really needed since you can open any old mission and use \DropUnit console command to spawn your new unit.

 

---------------------------

Once the templates and configuration files are done, the next step is setting up the art.

 

To do this you have to work in UnrealEd. From the ModBuddy VS Shell, launch UnrealEd with TOOLS / XCom Editor.

 

The base-game content has archetypes and art split into separate packages, but I found that combining it all together for mods to be more helpful.

 

- Archetypes are under XComGame/Content/XCOM_2/Packages/GameData

- Character art assets are under XComGame/Content/XCOM_2/Packages/Characters

 

I found the archetype I wanted to clone, right-click, select "Create a Copy...". Then enter a new package name. The new package will show up under the NewPackages area. Similarly you can copy meshes, materials, textures etc as needed to the new package. You can also export meshes, textures and animations by right-click, select "Export to File...".

 

Anyhow a full accounting of setting up a new archetype and art assets in a package is probably beyond one simple post. Once it's done, I save the package to the Mod Project content folder, then pack in the ModBuddy VS Shell, use "Add Existing Item..." to add the art package to the project.

 

That's it for now!

Link to comment
Share on other sites

I just want to know how to mod the timers for each mission? is there a way? thanks

 

Unfortunately, the timers are defined in Kismat Sequences inside umap files, so changing them is a little tricky, but I'm talking with wghost about it now.

Link to comment
Share on other sites

 

Cheerios :smile:

 

Still downloading the tools but any "wish I knew that before" tips? Mainly to avoid screwing up installs, organizing/distributing mods and the like? You know, things only couple months actually using them tools can teach :smile:

 

 

I'd say the main thing is when creating your mod, keep the name and the folder the same. I've found that the build scripts can be a little bit picky if some of the names don't match.

Link to comment
Share on other sites

I would love to re-create my favorite Second Wave modifiers, namely Not created Equally and Hidden Potential.

 

There's a RandStatAmount command in the DefaultClassData.ini, I still gotta test it, but this might solve the Hidden Potential issue if it does what the name hints.

 

But I have no clue how to remake Not Created Equally and I have no leads on how to randomize the starting stats of Rookies.

 

Those config options are buried behind a SecondWave conditional in the code, but AFAIK there's no plans to implement Second Wave options.

 

So I think it's going to require some unrealscript modding to get such things working.

Link to comment
Share on other sites

Will there be additional Modbuddy templates in the future? I'm starting to look into creating a custom Soldier class, and I think that a lot of people are as well. Are there a lot of things you need to tweak in order to pull it off? On a sidenote, for some reason I can't boot the XCOM 2 editor or publish the mod. It gave the error that it couldn't find part of the path, so I changed it, but now it still simply won't boot.

 

EDIT: Ah, nvm. Saw your explanation on a different thread :)

Edited by Arcky
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...