T8 Swapping Guide (Beginner) - CDDTreborn/Tekken-8-Resources GitHub Wiki

Objective

This is a guide to help people mod using the swapping technique. Swapping is a simpler mod that tells the game to load a different asset than it normally would. This guide should show you how to do a swap and gain a better understanding of what is happening within the engine.

Pre-Requisites

Before you get too far, please make sure you have the following already set up and working. You can check the main page of my wiki for setup information and links to other prerequisites.

  • UE5 Custom Build
  • FModel
  • Tekken 8 on PC
  • Koenji's Tekken Project

Asset Explanation

In Tekken 8 there is hierarchy of assets and how they get loaded. CS_ (Customize Set) are the default presets. They contain references to Item_Prefabs and are static, so the player can't change or alter them. These result in full outfits like the player would make in the customization mode.

IP_ (Item Prefab) are assets that tell the game to load assets that are defined to specific categories like Upper body, Lower Body, Head Items, Accessories, etc. The IPs reference 3 types of assets: BI (Base Item) BCI (Base Character Item) and CI (Customize Item). This is one of the simplest assets to deal with but also very important.

BCI (Base Character Item) is a very simple asset. This asset identifies the Figher ID number and in some cases it contains special assets that help the game fit upper and lower bodies together. In most cases you won't have to do any type of filling in and just create it.

BI (Base Item) is the asset where we reference the Skeletal or Static Meshes, Position ID, and if it is a common item.

CI (Customize Item) is the asset that allows the devs to dynamically change a material instance applied to a mesh and/or setup how a player will be able to color the models in-game.

It's important to note that when I say that the asset references something else what is being referred to is the path of a certain item. For example (completely made up)

CS_bob_DemoModel Contains references to a Face, Hair, and a Full Body IP.

  • Content/Character/Item/Item_Prefab/bob/fac/IP_bob_fac_1p
  • Content/Character/Item/Item_Prefab/bob/har/IP_bob_har_1p
  • Content/Character/Item/Item_Prefab/bob/bdf/IP_bob_bdf_1p

IP_bob_fac_1p Contains references to the BI, BCI, and CI

  • Content/Character/Item/Base_Item/bob/fac/BI_bob_fac_1p
  • Content/Character/Item/Base_Character_Item/bob/fac/BCI_bob_fac_1p
  • Content/Character/Item/Customize_Item/bob/fac/CI_bob_fac_1p

This setup would apply to each of the IPs referenced in the CI.

It's important to understand how it works so you don't do too little or too much work when building your mod. At this point, the majority of the assets we are dealing with are just information. In T8 we have to create the assets or dummy versions of them to load the reference information into them.

To do this, we need to match the environment in the custom UE to how it is in the game. We can use Fmodel to see the game's structure. In the examples above I made a fictional version of the paths. If those paths don't exist in your project (most won't) you will need to create them. Be very mindful to match everything exactly because misspelling or missing a folder in your reference will send T8 on a wild goose chase that will either cause the game to infinitely load or just crash. Once you create the proper folders, create your reference asset and place it there. If it's an in-game asset then make sure it matches. If it's an asset from a mod you will do the same but need to match the way the previous modders set things up. Using koenji's project you just r-click on a blank place in the Content Browser window and select the asset type you want.

Asset Directories

Content/Character/Item/

  • Customize_Item
  • Base_Item
  • Base_Character_Item
  • Prefab_Item

Example Setups

So now that you know how to make a reference and have a general idea of what's happening here is a quick example of how a swap mod would be setup.

A Customize Set mod to change bob's InGameA set to tim's outfit and hair with glasses item loaded.

  • CS_bob_InGameA
  • IP_bob_fac_InGameC (In Game Face for bob)
  • IP_tim_har_InGameC (In Game Hair C for tim)
  • IP_tim_bdf_InGameDLC (DLC Full Body item for tim)
  • IP_cmn_gla_InGameA (Common glasses item A)

You would create all four assets. Make sure they are all in their original places to match the game. You will need to fill in the CS but not for the IPs because all we need from them is the reference information that tells the game to load those when we choose CS_bob_InGameA. Load the IPs into the CS. Package the mod and only include the single CS file. Done.

An Item Prefab mod to swap upper body item from tim onto bob

  • IP_bob_bdf_InGameA
  • BCI_tim_bdf_InGameA
  • BI_tim_bdf_InGameA
  • CI_tim_bdf_InGameA

You would create all four assets. As before, please ensure they are all in their original places to match the game. You will fill in the IP but not the BCI, BI, or CI because we only need the reference info. Load the BI, BCI, and CI into the IP. Package the mod and only include the single IP. Done.

Unique (MSL only) and Common (MSL+PRP) Meshes

An important thing to note is that in T8 there are two types of meshes: unique and common. Unique meshes only have one skeletal mesh with the suffix msl. Common meshes have two skeletal meshes with suffixes msl and prp. Aside from the amount of SK for an item the biggest difference is the function of these types of meshes. Unique meshes are pre-proportioned to match a specific character and only that character. You can still combine items but they may not match up correctly and will often not match the heads. The common meshes all use a generic base mesh (one for females and one for males). These common meshes will be changed in the game automatically to the proportions of the character they are assigned to and are the easiest type to swap. All of the upper and lower body items are common items but some characters have unique common items like zafina with her harm, alisa and her robot parts, yoshi and his special body, and jack with his robot arms.

Tutorial with Steps

  1. Identify the name of the assets you want to swap. You can navigate to Content/UI/Rep_Texture/CUS_CH_Item and find the character folders. In these folders, you will find the thumbnail images for all of the character items and you can find the name of them. You can find the char abbreviation table on my GitHub, Tekkenmods.com, and the Modding Zaibatsu Discord information channel. EX. Ling's Pheonix dress to Lidia. I find the thumbnail info to get the names of the asset I want and the one I want to replace.
  • T_UI_CUS_CH_item_rat_bdf_phoenix_dress
  • T_UI_CUS_CH_item_cbr_bdf_1p_v2
  1. Create the references in UE5. In Fmodel, navigate to Content/Character/Item to find the folders for the assets you need. In this example, we will make the IP for Lidia's item (cbr) and the BCI, BI, and CI for Ling (rat). Based on the info I found in Fmodel I created the below folder structure:
  • Content/Character/Item/Prefab_Item/cbr/bdf
  • Content/Character/Item/Base_Item/rat/bdf
  • Content/Character/Item/Base_Character_Item/rat/bdf
  • Content/Character/Item/Customize_Item/rat/bdf Now in the content browser, r-click and create the appropriate asset in each folder. Make sure to check Fmodel to ensure you name the files correctly. Note: If something is misspelled in game then we need to misspell it as well.
  1. Set up the IP. Now that everything is created, build the IP by opening it and placing the created BI, BCI, and CI references into it. Each section will only accept a specific asset type so you won't be able to mix up where each of them go within the IP asset.

  2. Package the mod.

  • Create a Primary Asset Label by r-click in the content browser > Miscellaneous > Data Asset > Search for Primary Asset Label
  • Name it what you want to. (I usually include the Chunk ID I will be using so I can find it easily in the future).
  • In the Data Asset, set the priority to 1, input a Chunk ID number (above 500 is ideal to avoid matching in-game chunks), and set to Always Cook.
  • Since we only need one asset in our mod it's easiest to just add an explicit asset by clicking plus sign beside it and then loading our desired asset into it. In this case, we will just be grabbing Lidia's IP (IP_cbr_bdf_1p_v2).
  • Package the mod and you're done.

Common Issues to check for if things don't work when you load them.

  • Improper folder structure
  • Improper spelling of assets
  • Failing to include a reference
  • Failing to include the asset in the Data Asset
  • Including reference-only assets in the Data Asset