Fallout New Vegas

Titans of the New West: FAQ for Modders

This article will be updated as time goes on, when new features are added or more information is available.

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

What does adding an armor to the mod do?
You can look at the mod as basically a framework for adding in very large power armors to the game. By adding an armor to the mod, you can make use of all of its features, like character scaling, weapon scaling and positioning, animations, all mod settings (Backpack remover, offsets, etc), H2H weapon fitting, pipboy integration, built in patches, plus any other new features in the future.

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

How do I add a new armor?
First set up your armor normally as you would with any other armor: Make a new ESP plugin, create all necessary addons (helmet, armor addons, etc), set up your armor form. Skip this step if patching for an existing armor.

To add the armor to Titans, all you have to do is add the armor form to the main armor list (TNWArmorListAll) and one of the armor class lists (TNWArmorListEnclave, TNWArmorListHeavy, TNWArmorListMedium). The names of these lists have no bearings, and are merely used to scale the character at 114%, 112%, and 110% respectively, and for positioning the holstered weapon position nodes. The holstered nodes were calibrated for Remnants Armor, T51b, and T45d respectively. In the future I may implement a better solution to reduce clipping on other armors, as these lists were originally designed solely for the armors I listed.
    
As of 2.0.1, I've expanded the weapon nodes framework to allow for custom sets, which are currently used by Hellfire, East Coast Enclave, and NCR Armors. Armors that are not specified to use custom sets will still default to use the armor class lists. More on this later, for now let's stick to a simple mission of adding the armor.

To avoid compatibility and dependency issues, it's highly recommended to use scripting to add your armor, either with a traditional quest script or runner script (requires JIP NV Plugin). You can use the following commands:

  • ListAddForm TNWArmorListAll MyPowerArmor
  • ListAddForm TNWArmorListMedium MyPowerArmor
   
A quick explanation as to why editing forms via a ESP plugin file causes compatibility problems. If the armor is added to the formlist conventionally, say by drag and dropping MyPowerArmor to TNWArmorListAll in GECK, what this actually does is create a snapshot of that formlist in your plugin. So say if I go back and add a bunch of new stuff into the same formlist in my mod. If I then load your plugin after it, it'll revert the formlist to the one in your plugin, undoing all the changes I've made, which can potentially break the mod completely if that particular record is used as a crucial checkpoint.

That's also why a lot of seemingly small, harmless mods can cause a ridiculous amount of compatibility issues. You can imagine when this is done on a large scale, how quickly everything can become broken. This is massive trap on beginner modders. For the most part, by using a script to add the armor, we can ensure the mod stays modular and non-destructive, and that the changes are added by building on top of what's already there.

Now, if you choose to use a quest script to add the armor, it'll establish a dependency to the Titans mod plugin. This is not necessarily bad thing, especially since in this case, it's a hard requirement, we're literally building a patch for the mod and the new armor. Runner script has the advantage of not needing a ESP plugin file, but we already got a plugin file anyway, so it's not necessary to move this portion to a runner script.

To use a quest script to add the armor, create a new quest in your ESP plugin, fill the quest ID (ie. MyQuest), tick the "Start Game Enabled" box, and attach the following as a Quest Script to your quest:

scn MyQuestScript

Begin MenuMode

    if GetGameRestarted
    else
        return
    endif

StopQuest MyQuest

ListAddForm TNWArmorListAll MyPowerArmor
ListAddForm TNWArmorListMedium MyPowerArmor

End

"scn" is short for script name. "scn MyQuestScript" means we are declaring/naming the script MyQuestScript. "Begin MenuMode" means the script will start when any menu is activated. In this case, it means it'll activate the moment we arrive at main menu. The first checkpoint "if GetGameRestarted" checks if it's a fresh game launch. If it isn't, then it'll execute "return". Return terminates the script at that point, meaning all lines below return won't be read. We then use "StopQuest MyQuest" to end the quest, because we only need this script to be executed once. Otherwise, the script will be processed repeatedly, depending on the script processing delay. Then finally, the lines where we add the armor to the formlists. For more information on scripting, be sure to check out GECK wiki.

Also remember to replace all "My..." forms with proper names of your choosing.

To use a runner script, create a .txt file in "*MyMod*\nvse\plugins\scripts\" with the name prefix "gr_" (ie, gr_mymod.txt), and add the following lines to the text file:

ListAddForm TNWArmorListAll MyPowerArmor
ListAddForm TNWArmorListMedium MyPowerArmor

That's it, the armor is now added to the mod, and all features will automatically be activated.

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

How do I set up a custom set of holstered weapon nodes for a new armor?
To do that, we need to set up the kNVSE override and a scripted animation. The kNVSE animation plugin allows us to add new animations to be played under specific condition(s), and this is used as the main system. The scripted animation is supplementary and is used in situations where the override animation isn't played, ie loading into a save where the NPC already has his weapon drawn.

  • Go to the kNVSE directory of Titans mod at "Titans of The New West\meshes\AnimGroupOverride", and copy the folder "TNW_ArmorMedium" and the TNW_Titans.json file to "*MyMod*\meshes\AnimGroupOverride". We'll be building off of these files as a template.
  • Rename the pasted "TNW_ArmorMedium" folder as "TNW_ArmorType_MyPA"
  • Open the pasted TNW_Titans.json file with a text editor, remove everything except one set of override, we'll leave the top one. Replace the folder and the condition check to refer to the new armor list, we'll call it "TNWArmorTypeListMyPA" for now, and we end up with this:
[
    {
        "folder": "TNW_ArmorType_MyPA",
        "condition": "GetEquipped TNWArmorTypeListMyPA"
    }
]

Folder refers to the folder containing the animation overrides, so in this case, it is the "TNW_ArmorType_MyPA" folder. Condition sets the requirement for the animation to be overwritten, so we use the function GetEquipped to check whether the NPC is wearing any armor contained within the "TNWArmorTypeListMyPA" form list. Save the file, we're done with it.

Next, we'll need to add a new set of scripted animation. I would do this in GECK.

  • Open the Titans plugin along with your armor plugin set as active
  • Make a new form list called "TNWArmorTypeListMyPA" that we named earlier and add the new armor form(s) to the list.
  • Locate the Titans scripted animation scripts under the Script category. "TNWScriptedAnimationMedium", "TNWScriptedAnimationHeavy", "TNWScriptedAnimationEnclave" are the base sets. "TNWScriptedAnimationTypeT45NPA", "TNWScriptedAnimationTypeEnclave", etc are the custom override sets. The script structure between them is identical, so we can just copy the content of "TNWScriptedAnimationMedium" into a new script. Change all the lines that refer to Medium armors to the new armor, and we get this:
scn TNWScriptedAnimationMyPA

ref rActor


Begin Function {rActor}

    PrintDebug "Scripted Animation Script Called: My Power Armor (" + $rActor + ")"

    if rActor.GetEquipped TNWArmorTypeListMyPA
    else
        return
    endif

    SetFunctionValue 1

    rActor.SetNifBlockScale "Bip01 Neck1" 0.91
    rActor.SetNifBlockScale "SC Weapon" 0.9091
    rActor.SetNifBlockTranslation "SC Weapon2HH" 3 1 -1
    rActor.SetNifBlockScale "SC Weapon2HH" 0.9091
    rActor.SetNifBlockScale "SC Weapon2HL" 0.9091
    rActor.SetNifBlockScale "SC Spine2H" 0.9091
    rActor.SetNifBlockTranslation "SC Spine2H" 0 -5.5 0
    rActor.SetNifBlockScale "SC PelvisHR" 0.9091
    rActor.SetNifBlockTranslation "SC PelvisHR" 1 0 -2.5
    rActor.SetNifBlockScale "SC PelvisHL" 0.9091
    rActor.SetNifBlockTranslation "SC PelvisHL" 1 0 3
    PrintDebug "Scripted Animation Played: My Power Armor (" + $rActor + ")"

End

This script will check whether or not the actor it's called upon has any armor in the "TNWArmorTypeListMyPA" list equipped. If not, the script will terminate. If yes, it'll return "1" or "yes" in function value, and this is used to signal to the master script to stop executing the rest of the scripted animation scripts (more on this in a bit), and finally, animate the actor.

It's not necessary to change nor keep the PrintDebug lines, as they were pretty much only used by me for troubleshooting purposes. However, if you want to make sure the script is firing, you can copy and paste this line in the game console (requires the mod Console Paste Support), to check if both debug messages appear in your console, meaning the checkpoint has been properly passed:

SetDebugMode 1 (GetModIndex "My Power Armor Mod.esp")

Add the new scripted animation script to the master list:

ListAddForm TNWScriptedAnimationList TNWScriptedAnimationMyPA 0

The added "0" at the end refers to the index value of the form list, meaning the script will be added in the beginning. So when the main script calls for the scripts in "TNWScriptedAnimationList", "TNWScriptedAnimationMyPA" will take precedence over the scripted animation base sets and be used effectively as an override.

All technical work has been done, but we still need to set up custom values. I'll go over a way to do it for the holstered back weapon. First, here's a list of definitions used for Titans nodes:

  • Bip01 Neck1 - Neck bone in default skeleton, used for scaling head size. (0.91 for Medium, 0.90 for Heavy, 0.88 for Enclave)
  • SC Weapon - Node for weapon drawn (0.9091 for Medium, 0.8929 for Heavy, 0.8772 for Enclave)
  • SC Weapon2HH - Node for minigun type weapon drawn
  • SC Weapon2HL - Node for rock launchers drawn
  • SC Spine2H - Node for holstered weapon on back
  • SC PelvisHR - Node for holstered weapon on right hip
  • SC PelvisHL - Node for holstered weapon on left hip
  • SC WeaponH2H - Node for the rigid model of unarmed weapons

A more precise value is used for weapon scaling but it doesn't matter in the grand scheme of things, the difference is not visible. All nodes with the prefix "SC" are nodes added by Titans. Now start the game and equip the new armor. Open up console, click on yourself, and paste:

SetNifBlockTranslation "SC Spine2H" 0 -5.5 0

The middle value "-5.5" is the front/back value, so just play around with it until it looks right. Let's say the armor has a massive turtle shell and we need to move the weapon way back to fit. We end up with a "-20" value:

SetNifBlockTranslation "SC Spine2H" 0 -20 0

Go back into GECK and replace the value on "SC Spine2H" in the script with the new one.

Lastly, we'll have to update the animation files themselves with the new value. Go to "*MyMod*\meshes\AnimGroupOverride\TNW_ArmorType_MyPA\_male\locomotion\" and open one of the .kf files in NifSkope. They're identical except the names, so after we've adjusted one, just copy and paste and rename it as the other one. Inside NifSkope, under Block Details, expand the "Controlled Blocks" tab. Locate the node "SC Spine2H", expand it, and click on the arrow next to NiTransformInterpolator. It'll take you to a new page, now click on the arrow next to NiTransformData. Expand the Translations tab, then the Keys tab, and you'll end up on two keys that are identical. Change the middle value of both keyes to the -20, and hit save.

That's it, the custom set is done. You may go back and repeat this process to adjust the other values if you want.

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

Are there nuances to look out for when modeling/rigging an armor to use in Titans?
Yes, there are:

  • Modeling the arms: The arms and hands of Titans models follow a different curvature than stock models that is moved a bit further away from the bones, to create the wider look. Reason for doing this as opposed to moving the bones themselves and keeping everything centered is not only for compatibility reasons, but most importantly, it would pretty much completely break all stock animations made with the default IK rig used in original game development. To get a similar effect in your armor, I would suggest importing some Titans' models to use as a reference point.
  • Skinning the arms: Since the arms are off centered, plus power armors tend to have rigid, mechanical parts, there's little reason to make use of the twist bones, which are more suitable for smooth twisting in cloth and organic materials. In Titans, the Pipboy and H2H weapons are bound to the forearm bones rather than the twist bones (more on that in their own sections), so definitely avoid using those twist bones.
  • Scaling the helmet: The helmet is scaled down along with the head, with the pivot set at the "Bip01 Neck1" bone, at 88% for Enclave, 90% for Heavy, and 91% for Medium. You may have to adjust the scale of the helmet to make it look just right in the game.

All future content for Titans, like animations and such, will be built specifically for Titan style models. So if you are making a new armor for Titans and want everything to match and look congruent, I would take the points above into consideration. I know Webb doesn't do any of this in his patched armors and just makes them bulky. That's totally fine by me. At the end of the day, do whatever you want.

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

Does my armor support Pipboy integration?
No, it requires a specific setup to work.

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

How does Pipboy integration work?
Arms in Titans models are way bigger and follow a different curvature, which is not suitable at all for the original Pipboy position. When in 3rd person, Pipboy Integration works by hiding the real pipboy and attaching a "fake pipboy" to the arm and moving it to open slot in the armor bracer. When accessing pipboy menu, It then hides the arm, unhides the real pipboy and the hidden "fake arm" that is fitted around the real pipboy to create the illusion of a fitted pipboy.

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

How do I add Pipboy Integration support to a new armor?
This is intended for advanced modders that are already proficient in some level of modeling, know how to import/export New Vegas armor assets, and basic scripting. If you are a complete beginner and wish to attempt this, I would highly suggest you not to. I'm not saying this to discourage you, because not getting something to work over and over again for hours with seemingly no answer on the horizon will do that to you already. New Vegas is an old game. Help and documentations are limited. And there is an obscene amount of ways you can break your asset, going from the 3D software to the game. If you really want to mod, try to start with something basic and work your way up to this. Anyway:

  • Model your armor as you would normally / Have your armor you're working with imported and ready, import a pipboy model in as reference.
  • Make a duplicate of the regular "PipboyOff" left forearm arm to be your "PipboyOn" arm.
  • Model an open slot into this "PipboyOn" arm. Unless you want to use one of the pipboy location presets used for existing armors, it doesn't matter the slot's location exactly because the pipboy placement can be adjusted after the fact, I would just make sure it's big enough to show a pipboy that's at ~90% scale. The exact scale values used are 87%, 89%, 91% for Enclave, Heavy, Medium respectively.
  • Import the male and female pipboy models, bind them to "Bip01 L ForeTwist" bone (or copy the transforms), you may have to rotate one of the axis 90 degree to make it correct if it's tilted back or something.
  • Make two duplicates of the "PipboyOn" arm to be the fake arms, one for male and one for female. Fit them to the bound male and female pipboy models. Skin these to the "Bip01 L ForeTwist" bone. These will be used when accessing pipboy menu in 1st person, so you may want to model in some extra details in to make it look more appealing. This is done in all the stock Titans armors as well. I didn't want to put these details in the third person mesh as they would look a little bit too detailed compared to the rest of the mesh.
  • Export.

The model blocks have to be set up and named properly (Case Sensitive), do this in NifSkope:

  • Name all of "PipboyOn"s parts "pipboyonTNW1", up to number 5 (so "pipboyonTNW1", "pipboyonTNW2", "pipboyonTNW3", and so forth).
  • Name the fake arms "fakearm_m" and "fakearm_f", for male and female, set them to hidden (Flags under NiTriShape block, Bit 0).
  • Optional: Too big of an upper arm may obstruct view and needs to be hidden, name that part "armsTNW1", up to number 5. (This is used in T51b)

As reference for the naming convention and hidden fake arms, you can look at any of the existing Titans armor files.

All external work has been done, now we need to tell Titans which pipboy preset to use. If the armor slot is modeled after say, Remnants armor, you can just add the new armor to the Remnants preset and it's good to go:

ListAddForm TNWPipboyTypeListRemnant MyPowerArmor

If you want to make a new custom preset, use GECK and do the following:

  • Make a new "TNWPipboyTypeList" formlist (ie. "TNWPipboyTypeListMyPA") and add the new armor(s), this list will be used to check whether to use the corresponding preset for currently equipped armor.
  • Make a new "TNWPipboyTypeScript" object script (ie. TNWPipboyTypeScriptMyPA). Copy and paste the code from one of the existing ones ("TNWPipboyTypeScriptHellfire", "TNWPipboyTypeScriptEnclave", etc) to use as a template and change the armor check line to:

if PlayerREF.GetEquipped TNWPipboyTypeListMyPA

Finally, add this new "TNWPipboyTypeScriptMyPA" to the master list of "TNWPipboyTypeScriptList" via script:

ListAddForm TNWPipboyTypeScriptList TNWPipboyTypeScriptMyPA

To set up proper custom positioning, I would to do this in the game for real time feedback, so go in game, equip the new armor, and use the console commands (SetNifBlockTranslation, SetNifBlockRotation, SetNifBlockScale) on "PipBoyArm_TNW". Play around with the values until it fits into the slot of the new armor. Once satisfied, write these values down, go back into GECK, and input them into the "TNWPipboyTypeScriptMyPA" script. You may repeat this process for the other types of pipboys if you wish. Once finished, the armor is ready to go.

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

How does the H2H fitting system work?

There are two fitting systems:

  • Animations that move and scale the rigid model to fit, this is used for all mechanical fist weapons.
  • Similar to Pip-Boy Integration, an on/off switch for hiding/unhiding models. There's one for regular body, and one for power armors. This is used for all other H2H weapons fitted in the mod.

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

How do I fit a new H2H weapon?
If the model is set up and modeled after one of the stock mechanical fist weapons, then it's probably fine to just use one of the existing presets. Say, it's a power fist, you can use the following line in either a quest script or runner script:

ListAddForm TNWH2HPowerFist MyPowerFist

If you want more control and cleaner fitting, and this is the preferably the better option anyway, I would suggest using the second fitting system. To fit the weapon, do the following steps. This is intended for modders that already have a bit of experience importing/exporting New Vegas models and know how to do work in 3D softwares:

  • Model your weapon as you would for regular New Vegas characters / Have your weapon you're working with imported and ready
  • Import the right arms of some or all of Titans' armor models to use as a guide for modeling and ensuring minimal clipping. For the purpose of this, I would use the arms of Remnants, T51b, and T45d.
  • Make a duplicate of your weapon and model it after the shape of the Titans power armor arms. Up to 5 separate parts can be used here.
  • Skin it/them properly, don't use the "Bip01 R ForeTwist" bone.
  • Export.

Now you have two copies of your weapon in the NIF. They have to named properly (Case Sensitive) to work in Titans. Do this in NifSkope:

  • Name all the parts fitted for the normal body that need to be hidden when a power armor is equipped "h2hweapon1", up to number 5 (so "h2hweapon1", "h2hweapon2", "h2hweapon3", and so forth).
  • Name all the parts that are fitted to power armor "h2hweaponPA1", up to number 5. Set all of them to hidden (Flags under NiTriShape block, Bit 0).

As reference for the naming convention, you can look at any of the existing fitted H2H weapon files in Titans.

Finally, the weapon has to be added to the "TNWFittedH2HWeaponsList" formlist to work. You can use this line in quest script or runner script:

ListAddForm TNWFittedH2HWeaponsList MyFittedWeapon

That's it, the weapon has been fitted.

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

What about the display models?
The Anchorage display models are good to go out of the box. The APA display models have to be scaled up along with the stasis pods that contain them to look correctly. The values used in Titans are: 114% for the APA display models, 93% for the stasis pod and field objects (original value used in Remnants Bunker is 80%).

Stasis pods are used throughout the game so baking in the increased scale will break the visuals. I also left the APA display model at 100% scale rather than baking in the 114% scale used for Remnants armor, so in case this combination is used elsewhere by another mod and the stasis pods are also left at 80% scale, at the very least the armor wouldn't clip like crazy and look totally ridiculous.

Article information

Added on

Edited on

Written by

Woooombat

0 comments