Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

Tutorial : Adding New War Assets

Made by modders for modders. Step-by-step instructions on how to achieve specific modding goals with ME3Explorer. We *strongly* encourage you to post new tutorials on the wiki.

Tutorial : Adding New War Assets

Postby giftfish » 10 Mar 2014, 21:05

TUTORIAL: ADDING NEW WAR ASSETS

A quick look at the Coalesced.bin shows that Mass Effect 3 has a total of 270 Galactic War Assets (GAW assets) that can potentially be earned by the player (not including DLC). Adding new GAW assets is possible, though it does requires a few somewhat advanced techniques. In contrast to my other tutorials, this tutorial will not be a 100% step-by-step procedure, as some steps require knowledge that I don't have. That said, there are many resources on this site, so for those of you with some technical expertise and patience, my guess is you will do just fine.

The procedure to add a new war asset involves five steps:
  • Placing a description in the tlk file
  • Creating a conditional
  • Sequence modding (and required hex-editing)
  • Editing the Coalesced.bin
  • Adding an image (optional)

We'll cover both the addition of a new asset and the "upgrade" of a current asset -- technically, both are treated by the game as "new" GAW assets. Backup your tlk, Coalesced.bin, Conditionals.cnd before you start. You should also back up any other files you modify, prior to modifying them.


1. Idea and Description
If you're reading this tutorial it's probably because you already have an idea for a war asset. Now is the time to write up your description and decide upon a point allocation. Use the descriptions and values of the vanilla assets as a guide to help keep things immersive and balanced (or don't!). The Mass Effect Wiki will be a good resource as you do this.


2. Edit TLK
Next you need to add the name and description of your war asset to the BIOGame_INT.tlk file, by opening it in ME3Explorer and converting it to an xml file. Use a program like Notepad++ to view the xml. Inquiring's Email Modding tutorial already explains how to add new entries onto the bottom of the .tlk file, so go ahead reference that (and possibly a bit of my Codex Tutorial) for this step.

When you are finished you should have something that looks a bit like this:
Image


3. Create Conditional.
This is probably the second-most difficult step for new modders. You need to decide when you want your war asset to trigger in game, which will be controlled by a conditional that you create.

For example, ThaneMOD adds two new war assets to the game. The first is for Thane Krios, ex-squadmate, which triggers when the player receives an email from him after completing Priority: Sur'Kesh. In this particular case, the war asset also requires an email to function, and that email requires its own conditional. You don't have to create yours in the same manner, but it's certainly an option.

For reference, here is the conditional we use for this war asset:

((plot.bools[21451] == Bool true) && (plot.bools[3426] == Bool true) && (plot.bools[17742] == Bool true) && (plot.bools[18819] == Bool true) && (plot.bools[19188] == Bool false) && (plot.bools[18714] == Bool false))

What does it mean?

It means that the playthrough meets the condition to receive this war asset if and only if: Kahje is saved during Citadel: Hanar Diplomat, Thane is loyal from ME2, Priority: Sur'Kesh has been completed, Shepard spoke to Thane at Huerta Hospital, Thane didn't fight Leng, and Thane didn't die in ME3. We chose these parameters because we wanted the asset to trigger only under these particular circumstances.

The second war asset we add is an additional upgrade to the Hanar and Drell Forces (the first upgrade already exists in the vanilla game). It also triggers after receiving an email, but in this case, it triggers after either Cronos or Horizon, depending on Shepard's romance status with Thane.

It looks like this (return inserted to minimize even more horizontal scrolling of page):

(((plot.bools[21451] == Bool true) && (plot.bools[18714] == Bool false) && (plot.bools[19188] == Bool false)) && (((plot.bools[19535] == Bool true) && (plot.bools[19283] == Bool true)) ||
((plot.bools[3426] == Bool true) && (plot.bools[18819] == Bool true) && (plot.bools[19290] == Bool true))))

Your conditional doesn't need to be as complicated as the ones above, but you do need to consider exactly how you want it to work. To help with this step of adding your new war asset, see the Conditional Tutorial I posted recently.

Finally, if you simply want to use a single plot bool, you can use that, also. For example, if you want to trigger a new asset after completing a quest, you'd need to identify that plot bool and then use it in the step below. In this case, you would not create a conditional.


3. Cloning, Sequence Modding, and Hex-Editing.
Since I don't have experience sequence modding or hex-editing, this is portion of the tutorial that I cannot explain step-by-step. However, I can still provide a certain amount of guidance. For a detailed guide on sequence modding, see Fob's Tutorial.

First, an important note: if you want to award your war assets via emails, you may need to go through this step twice. The first time for the vanilla BioD_Nor.pcc, and the second time for the Leviathan DLC version of this file. If you don't, the war assets will not be awarded for Leviathan users.

Next, let's take a look at a modded version of the BioD_Nor.pcc. While you may not want to award your assets by emails, the principles are all the same. First, here is the full map, modded by ThaneMOD:
Image

Here is the view of it in the Sequence Editor with a few things highlighted:
Image

The email rewards work by the game checking this sequence each time an email terminal is activated. As you can see, everything is connected in the sense that the game checks one award after another until it gets to the end. That means you have to be careful how you add things, or you could end up "breaking the chain," thereby breaking certain awards.

To add a new asset, you need to clone two objects into the map and link them correctly: a PMCheckConditional object (like 1085) and an AwardGAWAsset_Silent object (the actual asset, such as 1087). Cloning should be done in PCC Editor 2.0 using the new Clone Dialogue 2. Do not use the Clone Object tool, or the original PCC Editor. These tools are deprecated and will not work properly.

PMCheckConditional
The PMCheckConditional object is what tells the game when to award the asset. Clicking on one of these objects on the right, allows you to see the "m_nIndex" in the bottom left window. This references the conditional. You want to edit this parameter in the Properties tab for the object in PCC Editor 2.0, and insert the number for the conditional you created in step 2, instead.
Once you've cloned it successfully, you should ensure that the contents of the Metadata tab are identical. Most of the contents of the Info and Properties tabs will be identical, as well (not things like the index, offset, etc).

Note: If you are using a plot bool you need a different object, PMCheckState. This will have different data in the tabs referenced above.

Next, if you take a look at this screenshot of the hex for the object, you can also see you'll have to do some hex-editing to provide the "DebugConditional" text. This is the text you see in the sequence map object, and you'll see it again in the coalesced. I'm aware that Fob and WV recommend doing all hex-editing with a third-party editor like HxD. I can't provide any guidance on this portion, other than that.
Image

AwardGAWAsset_Silent
The AwardGAWAsset_Silent object is your actual asset. Repeat the same procedure you did for the PMCheckConditional object in PCC Editor 2.0. Again, you'll have to do some hex, this time to name the object. This is the name that will appear for the asset at the war room terminal:
Image

After you're finished and have saved the changes into the .pcc, you should be able to see the unconnected objects on the sequence map. From there, you need to add in/edit the links. Do this by going into the Sequence Editor's Edit menu. Make sure you pay close attention to how the vanilla objects are linked together. Follow the same "pattern" so to speak, to be sure the game moves onto the next PMCheckConditional, regardless of how the one before it returns. As usual, be sure to save your changes.

One final note: if you want to add an asset to a pcc that doesn't have similar existing objects to clone, the process is much more complex. It means adding names, imports, and more. I can't include any procedure for this at this time. If I do this in the future, I'll edit this tutorial accordingly.


4. Add an Image.
Depending on the type of war asset you are adding, you may or may not want to add an image. For example, if you are going for total immersion, many of the fleets/forces use the same image that already exists in game. Therefore, if you are adding another fleet asset, maybe you don't need/want to add an image. But, if you are adding an asset that isn't a fleet, or are just trying to have a little more fun with the asset, you'll probably want to add your own image.

The easiest method to do this would be to reference another GAW asset or Codex image in the game files. If you choose this method, once you know which image you are going to reference (you'll need the name and location as shown in the Texplorer tree), you can skip down to the final step in the tutorial.

You may also add your own unique image, either via a screenshot you put take using the in-game flycam, a 3D render, or a piece of fan art. For more information on adding a unique image to your war asset, follow the instructions in the Codex Tutorial.


5. Edit Coalesced.
This is the final step and where everything comes together. Open the Coalesced.bin in your editor of choice. I like Wenchy because of the user-friendly interface. GAW assets are added and edited via the "gawassethandler." This is located at: bioui.ini > sfxgame > sfxgawassetshandler > allassets.

After you drill into "allassets" you'll see a list of IDs in the right window, beginning with ID=0 for the Alliance Engineering Corp. If you are upgrading a current asset, locate it as you scroll to the bottom and note its ID so you can easily return to it later. For example, the vanilla Hanar & Drell Forces we're upgrading is ID=185.
Image

Once you reach the bottom, you want to add your new asset to the first open space. The easiest way to do this and ensure that you get all the formatting correct is to copy another asset and edit the text. If you are careful about the one you copy, you will also minimize the amount of editing necessary. It's also useful to copy the text into a separate text editor to make it easier to look at and edit.

For example, here is the vanilla Hanar and Drell Forces Asset, #185:
(ID=185,AssetName="GAWAsset_HanarAndDrellForces",Type=GAWAssetType_Military,SubType=GAWAssetSubType_Fleet,StartingStrength=50,GUIName=715508,GUIDescription=715644,bIsExploration=False,UnlockPlotStates[0]=0,GUICategoryID=0,DebugConditionalDescription="Save the Hanar Homeworld",bShowNotificationOnAward=true,ImagePath="GUI_GameManual.Kinect_OptionNarrative_512x256",NotificationImagePath="GUI_Icons.Notifications.GM_CitSpace_256x128")

For ease of discussion, I'm going to break this up into a list to briefly identify each parameter. You should not do this or it could lead to formatting errors.

ID=185
Asset ID Number.

AssetName="GAWAsset_HanarAndDrellForces"
Asset Name as it appears in your hex edit from above.

Type=GAWAssetType_Military
The type of asset dictates whether it's a "full" asset or an upgrade. Upgrades use the "_Modifier" suffix.

SubType=GAWAssetSubType_Fleet
Options for subtype are "_Fleet" or "_Ground." Most of the time assets for individual people are "_Ground," but use what is most lore-appropriate for your asset.

StartingStrength=50
Base value for the asset when awarded.

GUIName=715508
String reference in the TLK for the name of the asset. This will be the name you see in game.

GUIDescription=715644
String reference in the TLK for the asset description.

bIsExploration=False
Haven't tested this, but I assume this would be set to true for assets awarded via planet scanning.

UnlockPlotStates[0]=0
This parameter occasionally references a plot bool. This is another one I havent' tested, but they seem to be used for the Exploration-acquired assets that involve collection. My guess is that asset is triggered once the designated bool is set to true.

GUICategoryID=0
Sorts the asset into the proper category for in-game display. To figure out the category for your new asset, just look one up that is in the category you want to use, and check it's ID number.

DebugConditionalDescription="Save the Hanar Homeworld"
This is the text you put in via the hex edit for your PMCheckConditional object.

bShowNotificationOnAward=true
Determines if the notification is shown in the lower right of the screen upon award.

ImagePath="GUI_GameManual.Kinect_OptionNarrative_512x256"
Image path for the asset texture shown when viewing it in the War Room. Yours should point to whichever texture you replaced. For more information on properly formatting this entry see my Codex Tutorial.

NotificationImagePath="GUI_Icons.Notifications.GM_CitSpace_256x128"
Image path for the texture shown in the notification image.

Upgraded assets look different than base assets. Here's the ThaneMOD upgrade for the asset above:

(ID=300,AssetName="GAWAsset_KepralsTreatment",Type=GAWAssetType_Modifier,StartingStrength=0,GUIName=0,GUIDescription=140000078,bIsExploration=False,ModTargets[0]=(TargetID=185,Value=75),UnlockPlotStates[0]=0,GUICategoryID=0,DebugConditionalDescription="Read final Thane email",bShowNotificationOnAward=true,ImagePath="",NotificationImagePath="GUI_Icons.Notifications.GM_AFleet_256x128")

This time I'll only comment on the differences from the original asset:

AssetName="GAWAsset_KepralsTreatment"
Name of the upgrade. The IDand tlk references are different as well, but this should be obvious.

Type=GAWAssetType_Modifier
This is what establishes it as an upgrade and not a base asset.

StartingStrength=0
Upgrades have no starting strength.

GUIName=0
This helps ensure it will be listed under the original asset, since it's an upgrade.

ModTargets[0]=(TargetID=185,Value=75)
This is where you refer to the base asset the upgrade applies to (ID 185) and the value you are applying as an upgrade (75).

ImagePath=""
Leaving this "blank" ensures the image path used is the one specified by the base asset.

At this point just use the information above to make the appropriate changes for your asset, then copy and paste the text into the coalesced editor and save. They should look something like this when you are done:
Image


6. Test in Game.
First and foremost, don't forget to update your TOC.bin before logging into the game to check on the functionality of your asset. Also, a couple things to keep in mind. If you edited any vanilla assets that have already triggered, you won't see any changes in the game until you load a save where you can re-trigger the asset. However, if you've added a new asset, it should pop immediately once conditions are met. If your asset isn't working, I'd suggest double-checking your coalesced entry, your conditional structure (and your saved game in Gibbed), and your sequence map.

Here's some footage of the ThaneMOD assets in action:





Happy Modding!


========================================================
ThaneMOD Team Tutorials:

Last edited by Anonymous on 01 Apr 2014, 19:48, edited 4 times in total.

giftfish has been thanked by:
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: Tutorial : Adding New War Assets

Postby giftfish » 10 Mar 2014, 21:07

@johnp & Fob --

If I totally messed something up with what I said about sequence modding, please let me know so I can change it, lol!
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: Tutorial : Adding New War Assets

Postby giftfish » 17 Mar 2014, 16:29

Updated with the new YT videos.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time


Return to Modders' Tutorials

Who is online

Users browsing this forum: No registered users and 1 guest

suspicion-preferred