- 18 October 2025
First and foremost I would like to thank and bow my head to @fifaccitiu.com.
A few days ago I got a PM from him sending me this site: https://burnout.wiki/wiki/AttribSys#Overview
Without this amazing person sending me this, I would have never gotten to where I am right now.
This is the information for the NFS attridb files, for a racing game called Burnout, also done by EA.
After giving it a quick look at the same day, I didn't notice anything that stood out to me to help me to decrypt the attridb gameplay files for games below FIFA 20.
I returned the next day on Monday and took a look at it once again.
There, in plain text was said:

I decided to click on the link and it showed this site:
https://bpr.bo98.uk/lookup8/
I started to try and input some strings. After some testing I noticed that this hashes strings like "physics", or "soccerball". Now, note that in FIFA 20-26 EBX files, there are folder names like "gp_physics", and a file name "gp_physics_soccerball_runtime". Attribdb files use another way to write them, instead of a folder name "gp_physics", they discard "gp_" and simply hash "physics". The hashes are in the vault file. Right after the folder name hash there will be a file name hash. Again, in attridb the file name hashes are hashed in another way. I assume when the game reads this file it sees "physics" near it, so now it knows whatever is near it will be in the "physics" folder(when I say folder or file I mean their equivalent sections in the .vault and .bin files). Hence, "soccerball" is the string that gets hashed, not "gp_physics_soccerball_runtime". The game knows that "soccerball" is in "physics" automatically since they are right near each other.
Ok, now at this point I decided to see if actual attribute names are hashed this way as well. When I say attribute I mean a variable like "soccerball_radius".
After some extensive attempts, it seemed like they didn't use the same hashing algorithm, or perhaps they don't have string names at all and just some sort of keys that have no name.
I've just now found out that attribute names are also hashed in the same exact way as the folder and file names are.
You can check for yourself, go to the site and type in exactly(letter case matter): Soccerball_Radius.
Type in the little endian number in HxD and you will find this hash right next to the value "0.365" - which is what I incidentally modified with my ball size mod for FIFA 17.



You can also check this with any other attribute string - open any file in FIFA 20 Attribulator(which is what I used). And type in exactly the string for any attribute, for example "BallRestitutionMaxSpeed", and then search the hash in the vault file. You will find it in 99% of the times.
We have effectively found how all of the strings are stored/hashed in the vault file. All that if left is to grind out the hashes for each string(which i've already started doing). This will take a few weeks. After this - essentially every single attridb gameplay files for any game before FIFA 20 will be decrypted.
Also I will make a seperate post to explain how the .bin and .vlt files work(it would simply be too long of a post if I also explained this here). Once decrypted - gameplay modding for any FIFA game below FIFA 20 will be exactly the same as that after FIFA 20. Same files, same attribute names, so there's no learning curve for anyone who is a gameplay modder familiar with EBX gameplay files.
A few days ago I got a PM from him sending me this site: https://burnout.wiki/wiki/AttribSys#Overview
Without this amazing person sending me this, I would have never gotten to where I am right now.
This is the information for the NFS attridb files, for a racing game called Burnout, also done by EA.
After giving it a quick look at the same day, I didn't notice anything that stood out to me to help me to decrypt the attridb gameplay files for games below FIFA 20.
I returned the next day on Monday and took a look at it once again.
There, in plain text was said:

I decided to click on the link and it showed this site:
https://bpr.bo98.uk/lookup8/
I started to try and input some strings. After some testing I noticed that this hashes strings like "physics", or "soccerball". Now, note that in FIFA 20-26 EBX files, there are folder names like "gp_physics", and a file name "gp_physics_soccerball_runtime". Attribdb files use another way to write them, instead of a folder name "gp_physics", they discard "gp_" and simply hash "physics". The hashes are in the vault file. Right after the folder name hash there will be a file name hash. Again, in attridb the file name hashes are hashed in another way. I assume when the game reads this file it sees "physics" near it, so now it knows whatever is near it will be in the "physics" folder(when I say folder or file I mean their equivalent sections in the .vault and .bin files). Hence, "soccerball" is the string that gets hashed, not "gp_physics_soccerball_runtime". The game knows that "soccerball" is in "physics" automatically since they are right near each other.
Ok, now at this point I decided to see if actual attribute names are hashed this way as well. When I say attribute I mean a variable like "soccerball_radius".
After some extensive attempts, it seemed like they didn't use the same hashing algorithm, or perhaps they don't have string names at all and just some sort of keys that have no name.
I've just now found out that attribute names are also hashed in the same exact way as the folder and file names are.
You can check for yourself, go to the site and type in exactly(letter case matter): Soccerball_Radius.
Type in the little endian number in HxD and you will find this hash right next to the value "0.365" - which is what I incidentally modified with my ball size mod for FIFA 17.



You can also check this with any other attribute string - open any file in FIFA 20 Attribulator(which is what I used). And type in exactly the string for any attribute, for example "BallRestitutionMaxSpeed", and then search the hash in the vault file. You will find it in 99% of the times.
We have effectively found how all of the strings are stored/hashed in the vault file. All that if left is to grind out the hashes for each string(which i've already started doing). This will take a few weeks. After this - essentially every single attridb gameplay files for any game before FIFA 20 will be decrypted.
Also I will make a seperate post to explain how the .bin and .vlt files work(it would simply be too long of a post if I also explained this here). Once decrypted - gameplay modding for any FIFA game below FIFA 20 will be exactly the same as that after FIFA 20. Same files, same attribute names, so there's no learning curve for anyone who is a gameplay modder familiar with EBX gameplay files.