Hi ,
#In this guide , I will explain the pofo file layout for WWE 2K23 and will show how you can create pofo files for your custom character by modifying a data template using Hxd.
In addition, the guide will show how to inject a pofo using cheatengine. This will be a separate tutorial.
preamble :
When a superstar or character model is added to the game, its profile data has to be modified in the gamesave file. Attributes like height, weight, hometown, weight class etc can't be adjusted in the game so these have to be modified in the data files.
Modders using Meta2 will create a profile file using the tool and use the prime memory feature in Meta to inject the profile file.
A profile file is not the same thing as a pofo file. They mostly contain the same data and write into the same memory addresses in the gamesave. The main difference is the data in a pofo is in the Raw hexadecimal values the game reads.
Profile file data injected using Meta2 is in decimal and still has to be converted to hexadecimal before it is written into the gamesave or data files.
Now lets get on with it ,
This screenshot shows a 2k23 format pofo file with the layout the developers implemented after patch update 1.12.
Any pofo file not in this layout should not be injected.
In addition, do not inject pofo data from older games to 2k23. The layout changes per game.
In this screenshot, I have marked various data offset positions which I will explain below. This is a pofo template which you can download and Edit using the Hex editor Hxd.
A1A1 - This is the WRESTLER ID or CHARACTER ID
D1 - This is the CHARACTER GENDER . 00 - Male , 01 for Female - This is the gender data the game reads . The gender data in the charprofiletable.roster fileis read once when the game loads default values with a new gamesave. Subsequently, it will read the gender here. So gender changes have to be made in the pofo data.
D2. - Is a value set whether the character is DLC or not DLC. Always set it as 00. DLC characters in the game have it set as 01 .
A3A3 - Is the WRESTLER ID 2. This value will usually be the same as the wrestler ID 1 unless the character has an alternate model in the game.
For example The Rock has a character 1D 100 which is 6400 in Hex. The Rock '12 model has a character ID 282 which is 1A01 in hex.
This is why the array of bytes for The Rock's pofo is 6400 0000 1A01.
B1 - Is a sort of unknown . It varies for superstars. Most female characters have it set as 04 which males have it set as 0A . There are a few exceptions however. Roman Reigns character has a VALUE 03, Charlotte 0C, Nia Jax 0B etc. For mods, just set it as 04 for female and 0A for male.
The underlined F9F3903E values are for the string names and social media ID for the character. DO NOT BOTHER ABOUT EDITING THESE IN THE FILE. Names in the pofo are not saved in memory and will change whenever the game is relaunched. Whenever the game launches, it reads the name strings in the charprofiletable.roster file and copies them over to the gamesave which then loads in the pofo data. This value here is a placeholder for the string CUSTOM SUPERSTAR MALE.
When this template is modified and injected, look for the name CUSTOM SUPERSTAR MALE to locate your character temporarily. When you save in the game and restart, the string will be replaced with the name you have assigned.
B2B2 - This is the HEIGHT VALUE for the character. This is an important byte as it can't be modified in the game. I have posted a link to a spreadsheet with height values you can use.
A2A2 - This is the character slot number. It is not the same as the wrestler ID . This value can be copied over from the Character ID list in the spreadsheet below.
C2C2 -This is the weight value. Its is the weight in pounds converted to hexadecimal endian format. The spreadsheet also includes a list of weight values and the endian hexadecimal conversions you can use when creating a pofo. This is important as it can't be modified in the game
DD - This is the weight class value
00 - Cruiserweight
01-Light Heavyweight
02 - Heavyweight
03- Superheavyweight
04- This is an undefined values. When used, the character has the attributes of a superheavyweight and the attribute sliders are set to a max value of 100. This value will also show as blank in the game as its not written into the data files.
EE is the fighter class value. Like name strings, this has to be set in the charprofiletable.roster file as its not read in the pofo when the game restarts, so don't bother about modifying this here. However you can change the EE value when creating the pofo.
00 - Striker
01 - Technical
02 - Powerhouse
03 - High Flyer
C3C3C3C3 - This is the announced hometown value. The spreadsheet contains a list of hometowns and their the array of bytes .
The highlighted blocks in read and yellow are the attribute points.
The Red block is the superstar attribute points
The Yellow block is the AI attribute points.
These values can be set in the game and is highly recommended to adjust these values per character as this will determine how the AI will control them in the game. For instance if your character mod uses a submission finisher, technical submission has to be set as a high value. If you don't want your heavyweight superstar mod to climb the top ropes or perform dives, the AI daredevil or diving moves tendency has to be lowered down to 0 etc. so take time to look through these properly in the Roster - Edit Superstars menu.
C4C4C4C4 is the Hot point ratio which determines which body parts you want to be least resistant to damage. This can be set in theRoster - Edit Superstars menu
A5A5A5A5 - This is the personality traits value - This can be set in the game for your mod or copied over from another pofo file-Edit Superstars menu
There are a few I did not highlight like the EEEEEEEE - This is the match winner name string which is not read in the pofo, so it can be ignored. It is also used in MYGM mode as the main character name.
A8A8 is the ring announcer ID - Like string names, its not read in the pofo after restarting
A9A9 is the commentary ID -Like string names, its not read in the pofo after restarting
I have listed the important bits you need to modify when creating a pofo.
Attributes like PAYBACK, CROWD REACTION and CROWD BALANCE can be set in the game.
Here is a link to the spreadsheet with values you can use when creating your pofo file
https://docs.google.com/spreadsheets/d/1nSCfJa3ocB_v3Hz_tJbVl5xjfp1XukFy/edit#gid=700934127
Here is a link to the pofo data template file used for this guide. You can modify it to create your pofo which I will explain in part 2 .CREATING A SUPERSTAR POFO.
https://mega.nz/file/VFRWUKwT#PuOpScM6mxmNnrGPD6EABMDKOukR2YfX2OQp5UGd5q0
Edited by BlindedByTheGrace