Character Modding

From Smacktalks
Jump to navigation Jump to search

Modern WWE 2K games on PC (and also on older generation consoles in some instances), allow for new or existing characters to be created or edited and injected into the game.

The Basics

Each in-game character has a "ch pac" file that is located inside the /pac/ch folder of your game directory. These files will be named in one of two ways:

- WWE2K15 and earlier: all attires for a character are located inside a single PAC named chXXX.pac.
- WWE2k15 DLC, WWE2K16 and later: attires are separated out into individual PACs named chXXXYZ.pac.

Both of these formats will work in WWE2K17 (note that the former may not work as well in WWE 2k18 or WWE 2k19). Additionally, the naming of these files is not as important as the naming of sub files.

Regardless of the format every ch pac will have a sub file or sub files in PACH or SDHC format. In WWE2K17, WWE 2k18 and WWE 2k19 these sub files are named using unique string hashes which have no logical pattern, however they can be converted to use the classical naming schemes.

Classical Naming Scheme

The classical naming scheme for ch pach sub files is as follows:

ex: 000XXXYZ
XXX = Wrestler ID
Y   = Attire Number (0 is attire 1, 9 is attire 10, etc)
Z   = Attire Type - sets whether an attire is an entrance or ring attire (2 is ring attire, 4 is entrance attire)

Note: If no ring attire exists, the game will read the ring attire for both entrance and ring. Also, if an attire is selected that doesn't have the ch .pac file installed, the game defaults to the first attire's ch*.pac file, which must always be installed.

Parts of a PACH/SDHC

0000 - A YOBJ file containing the main character objects.

000A - A Texture Archive containing the main textures and map textures.

000C - A Texture Archive containing the head and body textures.

00CE - A file which controls what parts of a character get rendered.

00CA - A file that controls animation of body parts and certain clothing parts.

2715 - A YOBJ file containing hair objects.

2580 - A file which controls hair animations as well as certain clothing animations.

25F4 - Seems to be a mix of the CA and CE functions (NEW in WWE 2K18).

4E22 - A YOBJ containing eyelid objects.

Changing PAC Slots and Repacking Character PACs

To change PAC slots a character must be packed using either WWE 2K15 or WWE 2K16 file formats (PAC files NOT WWE 2K17's HSPC files).

Changing Pac Slots

Automated way

1) Put your ch*.pac files in a folder outside the game folder.
2) Rename your ch*.pac files to the correct chXXXYZ.pac format for your desired wrestler ID, Attire number and Attire type.
3) Download, install and start Custom Character Tools for your game version.
4) Right-click the desired Superstar and click Import then CH-Pac-Files (Custom Character Tools 2019),  Click Install then CH-Pac files (Custom Character Tools 2018) resp. Install then Mass Character-Pac Installer (Custom Character Tools 2017) in the toolbar.
5) Select all the properly renamed ch*.pac files you wish to install.
6) Click install. The files will now be converted from the newer HSPC format to EPK8 format if needed, their EMD sections adjusted to match the file name's XXXYZ and installed into the \mods\ folder for mod release guideline compliance.

Note: For WWE 2k19 you can skip steps 1,2 and 5 above, as Custom Character Tools 2019 doesn't care about the original file name and will set it properly depending on the slot you install it in.

Manual way

1) Open the PAC in HxD (or your hex editor of choice).
2) Search for the text “emd” (decimal not hexadecimal search).
3) Rename the XXX portion to the slot you want (see PAC Naming example above).

Repacking WWE 2K16 Style

Automated way using Custom Character Tools

This only works with Custom Character Tools 2018 and later and thus WWE 2k18 or later.

1) Put your ch*.pac files in a folder outside the game folder.
2) Rename your ch*.pac files to the correct chXXXYZ.pac format for your desired wrestler ID, Attire number and Attire type.
3) Download, install and start Custom Character Tools for your game version.
4) Right-click on the Wrestler/SlotID you wish to install the file in, then click Import then CH-Pac-Files (Custom Character Tools 2019) or click Install then CH-Pac files in the toolbar (Custom Character Tools 2019).
5) Select all the properly renamed ch*.pac files you wish to convert and install.
6) Click install. The files will now be converted from the newer HSPC format to EPK8 format if needed, their EMD sections adjusted to match the file name's XXXYZ and installed into the \mods\ folder for mod release guideline compliance.

Note: For WWE 2k19 you can skip step 2 above, as Custom Character Tools 2019 doesn't care about the original file name and will set it properly depending on the slot you install it in.

Manual way

This way should work for any game.

1) Extract the SDHC file from your WWE 2K17, WWE 2K18 or WWE 2K19 HSPC using PacTool, PacEditor or X-Packer.
2) Inject it into the pach slot of a WWE 2K16 PAC using PacTool, PacEditor or X-Packer.
3) Rename the pac and emd slot as needed.

Repacking WWE 2K15 Style

1) Figure out how many attire slots you’ll need (count ring and entrance attires as separate slots).
2) Download Pozzum’s dummy PACs from Smacktalks and choose the one with the amount of slots needed.
3) Rename the dummy PAC and all the emds inside accordingly for all the slots needed.
4) Extract all the SDHC/PACH files you want to include.
5) Open the renamed dummy and inject the SDHC/PACH files in the desired slots with PacTool.

Modifying Character Objects

Each character pac, when fully extracted and uncompressed, contains several YOBJ (Yukes Objects) files. These YOBJ files are essentially containers which hold a number of wavefront OBJ files.

Inside character pacs the basic YOBJs to look out for are 0000 (main yobj with all character parts), 2715 (hair parts), and 4E22 (eyelids). Additional YOBJs can be added with the following names: 001A, 001B, 2716, 2717, 2718, 2719, etc.

To work with these files slight modifications may be needed:

- If uncompressed file is named "FILENAME.jboy" then it should be renamed to "FILENAME.yobj".
- If uncompressed file is named "FILENAME.yobj" change the header in hex to "JBOY". 

Remove OBJs From a Character

Ex: Removing a character's elbow pad

1) Use ReShape or X-Rey to determine the object numbers.
2) Open the yobj in Anatomizer and move all undesirable objects to the bottom.
3) Change to render count in Anatomizer to exclude the undesirable objects and save.

Add OBJs From Another Character

Ex: Give Finn Balor the Big Dawg's vest

1) Find the yobj from the other character that contains the objects you want to add.
2) Open the yobj in ReShape or X-Rey and determine the numbers of the objects you want.
3) Open the yobj in Anatomizer and move the objects you want to the top.
4) Change to render count in Anatomizer to unrender everything except the objects you want and save.
5) Rename the yobj. *see note below
6) Add it to your base pach/sdhc with Pac Adder or create a new pach with PacTool or X-Packer. 
         NOTE: The order of these files matter (they should be ordered in sequential hex).
7) Extract the textures for the added objects.
8) Create new texture archive in PacTool or XP with the main 000A textures plus the added obj textures.
9) Inject this new texture pac into the 000A slot.
         NOTE: Objects may not align properly so some 3D modelling of them may be required.
  • Added yobj names:

- There are many options for this including 2717, 2718, 2719.

- The names between 5500 and 56FF should all work for 2K18, (whether these work in earlier games in undetermined).

- Do NOT use 001A and 001B. They were often used before 2K18, but do not seem to work properly in current games.

- Do NOT use 4E22. This was used in 2K15 mods, but is actually an animated eyelash slot in newer games, so anything in this slot will "blink".

Changing Hairstyles

Ex: Give AJ Styles the Andre afro

1) Decide what hair you want and find a character with it.
2) Extract the 2715 and 2580 files from the character with the hair you want.
3) Edit the 2715.yobj hair model in a 3D modelling program to get the right placement. 
4) Export the edited obj(s).
5) Inject the edited hair obj(s) into the hair yobj with ReShape or X-Rey.
6) Extract the hair textures and add them to your main character’s 000A texture pac.
7) Inject the 2580, edited 2715, and edited 000A into your PACH/SDHC.

Disabling Facial Animations

Because your face will wig out unless you create the individual facial animations

1) Open the decompressed 0000.yobj of your character in hex.
2) Search for the string “BrowInn_L_Dn” (this will be position A).
3) Search for the string “fixNarrowJawDnR” or similar (this will be position B).
         NOTE: Some WWE 2K17 YOBJs have a more data after this point that needs to be zeroed.
4) Select the data from position A to B (the size in this case is 000006DF).
5) Fill the selection with 00s (in hex).
6) Save your file with the hex editor.

Modifying Character Textures

Character textures are contained in two files within the character PC:

- 000A = Main attire, hair, eye textures and all map textures (ao, normal, etc)
- 000C = Main face and body textures

These textures are in .dds format. Main textures will usually have DXT1 compression, and Normal Maps will usually have DXT5 compression.

Textures can be edited in photo editing programs like Photoshop and GIMP as long as a DDS plugin is installed.

NOTE: Remember to also edit the map textures (ao, normals, etc), or else your character will have bumpy or shadowed outlines of the original textures.

Dealing With 2K18/2K19 TX Pacs

Many 2K18 and 2K19 characters don't actually include the textures in their chXXXYZ.pac files. They are contained in TX files and are often shared between characters. They include a file called 14.onet. If you open that file in hxd (hex editor) you will find that a number is listed and then the dds file name then repeat.

In the pac\ch folder, there are a series of tx files. The textures are in these files. You have to use the 14.onet to find out where the textures are (ex: if a for Roman is listed as 36802, Roman’s Head is in tx36802 but the may be listed as 36702 so the shoes are in tx36702).

The best procedure is to NOT edit the tx files, but just extract them and build traditional 000A and 000C files, and then build your own pach as you would have in 2K16 or 2K17.

Creating Normals in Photoshop

1) Create your main image.
2) Use NVIDIA Tools plugins to generate normals.
3) Adjust the brightness of the alpha layer to add/remove shine (brighter is shinier).

Creating Normals in GIMP

1) Download and install The GIMP normalmap plugin.
2) Create your main image.
3) Go to Filters > Map > normalmap and run the plugin.
4) Adjust Scale/Alpha Channel/Invert options to replicate the effects of the default normals.
5) Adjust layer transparency if needed.

WTF Are Mips/Mip maps?

You may have heard mention of "mips", "mipmaps" or "Mip Maps" so what are they? The short answer: a pain in the ass. Most of the DDS texture files in-game have mipmaps. Mipmaps are essentially hidden layers which are smaller resolution versions of the main texture that the game uses for performance reasons if they're available and the graphics are zoomed out/distant on various levels or if there are lots of things going on on the screen (which is helpful on older, weaker hardware with little video memory, but not so much on modern, high-end hardware). If you use GIMP these layers are viewable in the layers pane. In Visual Studio there is a drop-down menu in the side bar for them. The number of mips varies depending on the size of the texture. Larger textures generally have more mips.

If you change the main texture, but not the mips then your change won't show up in-game, because the full resolution texture is rarely used.

So how do you deal with them? There are two ways to deal with mips. The first is to generate new mips with whatever DDS plugin/export settings you are using. This is generally done when exporting, although Visual Studio has a separate drop down tools menu for this option which must be done before exporting.

The better way to do this is to save your textures without mips, and make new texture archives (because the file size will be different in the mip-less file meaning you won't be able to inject back in). This will mean the game uses the full resolution texture and things will be clearer in-game, because the game won't use mip maps if the texture doesn't have any available. Your file sizes will also be smaller, which can help get your mod under the 80mb limit.

Side Note: There are also things called "frames". Frames are essentially color swapped versions of the same texture. Each frame has it's own set of mips. Frames can be seen as a drop-down menu in the side bar when using Visual Studio. The only known textures that use frames are the crowd member textures (arcrowd##.pac).

Transparency Shaders

If you apply a transparency shader to an object in something like X-Rey, then you can modify the alpha of your normal file (black and white) to make certain parts of the object transparent or semi-transparent.

This can be helpful, for example, if you would like to "remove" part of an object such as making the sleeves of a jacket invisible.

Frequently Asked Questions

I added/removed parts to my mod, but now the character has holes in him?

Zero out and reinject the uncompressed 00CE file.

I added a mod and now my game crashes on boot?

Zero out the two bin cache files in your game directory.

I created a mod with a bunch of added parts, but it crashes in-game?

Make sure the file size of your pach/sdhc is below 80mb. Using PacEditor to inject all the parts as Zlib helps lower file sizes.

I injected everything as ZLIB but the mod still crashes?

Don’t inject the PACH/SDHC as ZLIB. The stuff inside it should be compressed, but the PACH/SDHC itself shouldn't be.

I’m hopeless, my mod still crashes. Please help euthanize me!

Calm down, no need to jump off a bridge. Rebuild your pach bit by bit to isolate the issue. Something may have been injected wrong or you may have a corrupt texture or object causing the crash.

I’m trying to unrender with Anatomizer/ReShape, but it can’t move objects or change render count?

Try making a copy of the yobj file and opening the copy with Anatomizer/ReShape.

I edited my textures but they didn’t change in-game?

Did you remember to either save without mips or generate new mipmaps? SPOILER: You probably didn’t.

I edited my textures but I can still see bumpy outlines of the previous textures?

You forgot to edit the normals silly. Now go act normal so we don’t notice you’re a freak.

I’m trying to inject textures, but it says I have the incorrect file size?

If you remove or add mip maps, change texture size, use a different DXT format or compress differently you can’t inject back in. Thus you'll have to use the very same settings the original texture file you're editing/replacing has when saving the file. It's often easier to try to create a new texture .pac archive instead.

Can I use last gen objects in my mod?

Short answer, likely not, but possibly depending on the object. For faces you may also use is as a form for shrinkwrapping.

Errrrrmahhhgod what DDS type should I use? DXT1? DXT5? DXT10? I just don’t know!

Open your DDS file in hex. The header will tell you what type the default is. Things with alpha channels like normals usually use DXT5. Main textures are usually DXT1. Menu items are typically DXT10 although DXT5 usually works as a replacement.

A WWE 2K15 tutorial told me to inject new parts into the 4E22 slot. But it’s not working?

Don’t do this in WWE 2K16 or WWE 2K17 unless you want your new pants to be blinking. This is an eyelash slot.

I disabled animations but my head is still doing it’s best clayface impression?

Some of the newer models have a bit extra animation data at the end of the usual section. That needs to be zeroed out as well.

Can I use CAW parts on my mod?

If you figure it out let us know. The top minds at NASA haven’t found a way to do it yet.

Why won’t my mod show up in CAS?

Probably because you have added parts. Mods with added parts will crash CAS.

I added a beard using an added yobj, but it doesn’t show in-game?

The beards are attached to the “beard” bone in their heads in WWE 2K17 and WWE 2K18. Without the head, the bone is unrendered, this the beard is as well. Keep the head in the added yobj, but shrink it to hide inside your main head. This also applies to some masks and piercings.0

I’m trying to add parts but they keep spazzing out in game?

The animations seem to be linked to the CA file. Sometimes using WWE 2K15/WWE 2K16 model files can fix this issue.

How do I open texture files?

Your favorite image editor. You may need to an additional DDS Plugin. There is company from Mountain View that can help with that.

Back to WWE 2K Series Modding