• This is a reminder of 3 IMPORTANT RULES:

    1- External self-promotion websites or apps are NOT allowed here, like Discord/Twitter/Patreon/etc.

    2- Do NOT post in other languages. English-only.

    3- Crack/Warez/Piracy talk is NOT allowed.

    Breaking any of the above rules will result in your messages being deleted and you will be banned upon repetition.

    Please, stop by this thread SoccerGaming Forum Rules And Guidelines and make sure you read and understand our policies.

    Thank you!

FIFA 18 - Save Editing Thread

Aranaktu

Club Supporter
Hey guys. Since I'm playing FIFA (2003) I was always curious why there isn't any save editor for this game? A few months ago I've decided to start reverse engineering a save file format in order to make a fifatracker website. I'll post here what I've found so far. FIFA 18 is pretty much already dead, but I'm sure it will be still useful in next game edition. Already I've managed to edit some basic stuff like transfer budget and player form. The biggest achivement is probably adding "Future Star" to current career. I'm also too lazy to make complete save editor, but I'm still open for cooperation, so if you want to make that kind of tool just PM me. :)

First of all, FIFA saves are stored in "Documents\FIFA 18\settings". File name must start with "Career" keyword, and after that we have date of last save in format "yyyymmddHHMMss".
Now let's open game save in hex editor and take a look at file format. Note that all values are stored in little-endian byte order.
File Header - 0x66 bytes

After file header we can distinguish 3 main career file sections .
1. SaveType section - Sizeof: 0x338A3

The most important thing here is CRC32 checksum located after "SaveType_Career\0". You need to recalculate it if you want to change anything in your career save. CRC32 checksum if calculated from offset 0x92 until the end of the whole file.
Image:

Tbh. I've no idea what is the rest of the data in this section. 99% of it are null bytes.

2. Databases section - Sizeof: 0x5D4CB4

In this section we have 3 fifa databases.
First one contains tables with "career_" prefix.

The second one contains more common and well-known tables like "players" and "teams"

And the third one contains just a single table called "teamsheets"

If you want to take a look at what's inside these databases you can use my https://gist.github.com/xAranaktu/96e40cb2287372bbbe405408485a87e4 to unpack them from career save. And then just open .db files with https://www.moddingway.com/file/45991.html. You will probably also need https://pastebin.com/sH1B3WVe file. So far I've not managed to run the save with edited database.

3. Career data section - Sizeof: 0x48F80C
Here we can find stuff like transfer budget, player statistics/morale/form, info about injuries. Basically, everything which is not stored in the databases. Most of the structures here have their own signatures.
Structures that I've reverse engineered a little bit:

tf003 - PlayersForm:

Code:
6 bytes - 'tf003\0' - Signature
4 bytes - TeamID
4 Bytes - Squad Size
{
    4 Byess - playerid
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown DATE
};//Player array - Size=0x58

rlctrk - Release Clauses
Code:
7 Bytes - 'rlctrk\0' - sign
4 Bytes - Number of players with release clause
{
        4 Bytes - PlayerID
        4 Bytes - TeamID
        4 Bytes - Release Clause
};//Player array - Size=0x0C

pmit1 - Competition Prize money

Code:
{
    4 Bytes - Unkown
    4 Bytes - Date
    4 Bytes - Money
    4 Bytes - Unkown
    4 Bytes - competition id?
        char pad[0x0C];
};// Tournaments array - Size=0x20

um001 - UnlockablesManager:
Code:
future star
{
        1 Byte(?) - Unknown
    1 Byte(?) - Boolean?
    4 Bytes    - Arrival DATE - yyyymmdd
}


ubp01 - Club Finances

sm015 - StoryManager?

tm003 - mPlayerMoraleAlloc

mp002 - MonitoredPlayersAlloc? - 0x650

fm001 - FitnessManager

rm001 - RetirementManager?

dd002 - DeadlineDayTransferList

tpm002 - TrainingProgressManager

mi001 & ti001 - total shirts sold?

se001 - avg attendance this season?

fm001 - Injuries
 

bangus

Starting XI
Hey guys. Since I'm playing FIFA (2003) I was always curious why there isn't any save editor for this game?
Save editor has been available for two years now courtesy of Moddingway, here's my thread on how to use it to edit FIFA 18:

http://www.soccergaming.com/index.php?threads/db-editing-tutorials-tips-and-tricks.6459905/

Also, rinaldo created a tool which we used for years to open/edit the save file, that worked up til FIFA 16 I believe. And there was a save file hex-editing thread already, the FIFA 17 forum I think.
 
Last edited:

sonaldo

Club Supporter
Hey guys. Since I'm playing FIFA (2003) I was always curious why there isn't any save editor for this game? A few months ago I've decided to start reverse engineering a save file format in order to make a fifatracker website. I'll post here what I've found so far. FIFA 18 is pretty much already dead, but I'm sure it will be still useful in next game edition. Already I've managed to edit some basic stuff like transfer budget and player form. The biggest achivement is probably adding "Future Star" to current career. I'm also too lazy to make complete save editor, but I'm still open for cooperation, so if you want to make that kind of tool just PM me. :)

First of all, FIFA saves are stored in "Documents\FIFA 18\settings". File name must start with "Career" keyword, and after that we have date of last save in format "yyyymmddHHMMss".
Now let's open game save in hex editor and take a look at file format. Note that all values are stored in little-endian byte order.
File Header - 0x66 bytes

After file header we can distinguish 3 main career file sections .
1. SaveType section - Sizeof: 0x338A3

The most important thing here is CRC32 checksum located after "SaveType_Career\0". You need to recalculate it if you want to change anything in your career save. CRC32 checksum if calculated from offset 0x92 until the end of the whole file.
Image:

Tbh. I've no idea what is the rest of the data in this section. 99% of it are null bytes.

2. Databases section - Sizeof: 0x5D4CB4

In this section we have 3 fifa databases.
First one contains tables with "career_" prefix.

The second one contains more common and well-known tables like "players" and "teams"

And the third one contains just a single table called "teamsheets"

If you want to take a look at what's inside these databases you can use my https://gist.github.com/xAranaktu/96e40cb2287372bbbe405408485a87e4 to unpack them from career save. And then just open .db files with https://www.moddingway.com/file/45991.html. You will probably also need https://pastebin.com/sH1B3WVe file. So far I've not managed to run the save with edited database.

3. Career data section - Sizeof: 0x48F80C
Here we can find stuff like transfer budget, player statistics/morale/form, info about injuries. Basically, everything which is not stored in the databases. Most of the structures here have their own signatures.
Structures that I've reverse engineered a little bit:

tf003 - PlayersForm:

Code:
6 bytes - 'tf003\0' - Signature
4 bytes - TeamID
4 Bytes - Squad Size
{
    4 Byess - playerid
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown DATE
};//Player array - Size=0x58

rlctrk - Release Clauses
Code:
7 Bytes - 'rlctrk\0' - sign
4 Bytes - Number of players with release clause
{
        4 Bytes - PlayerID
        4 Bytes - TeamID
        4 Bytes - Release Clause
};//Player array - Size=0x0C

pmit1 - Competition Prize money

Code:
{
    4 Bytes - Unkown
    4 Bytes - Date
    4 Bytes - Money
    4 Bytes - Unkown
    4 Bytes - competition id?
        char pad[0x0C];
};// Tournaments array - Size=0x20

um001 - UnlockablesManager:
Code:
future star
{
        1 Byte(?) - Unknown
    1 Byte(?) - Boolean?
    4 Bytes    - Arrival DATE - yyyymmdd
}


ubp01 - Club Finances

sm015 - StoryManager?

tm003 - mPlayerMoraleAlloc

mp002 - MonitoredPlayersAlloc? - 0x650

fm001 - FitnessManager

rm001 - RetirementManager?

dd002 - DeadlineDayTransferList

tpm002 - TrainingProgressManager

mi001 & ti001 - total shirts sold?

se001 - avg attendance this season?

fm001 - Injuries
Great work @Aranaktu this is v interesting - thanks!
 

fifaCCitiu.com

Senior Squad
Hey guys. Since I'm playing FIFA (2003) I was always curious why there isn't any save editor for this game? A few months ago I've decided to start reverse engineering a save file format in order to make a fifatracker website. I'll post here what I've found so far. FIFA 18 is pretty much already dead, but I'm sure it will be still useful in next game edition. Already I've managed to edit some basic stuff like transfer budget and player form. The biggest achivement is probably adding "Future Star" to current career. I'm also too lazy to make complete save editor, but I'm still open for cooperation, so if you want to make that kind of tool just PM me. :)

First of all, FIFA saves are stored in "Documents\FIFA 18\settings". File name must start with "Career" keyword, and after that we have date of last save in format "yyyymmddHHMMss".
Now let's open game save in hex editor and take a look at file format. Note that all values are stored in little-endian byte order.
File Header - 0x66 bytes

After file header we can distinguish 3 main career file sections .
1. SaveType section - Sizeof: 0x338A3

The most important thing here is CRC32 checksum located after "SaveType_Career\0". You need to recalculate it if you want to change anything in your career save. CRC32 checksum if calculated from offset 0x92 until the end of the whole file.
Image:

Tbh. I've no idea what is the rest of the data in this section. 99% of it are null bytes.

2. Databases section - Sizeof: 0x5D4CB4

In this section we have 3 fifa databases.
First one contains tables with "career_" prefix.

The second one contains more common and well-known tables like "players" and "teams"

And the third one contains just a single table called "teamsheets"

If you want to take a look at what's inside these databases you can use my https://gist.github.com/xAranaktu/96e40cb2287372bbbe405408485a87e4 to unpack them from career save. And then just open .db files with https://www.moddingway.com/file/45991.html. You will probably also need https://pastebin.com/sH1B3WVe file. So far I've not managed to run the save with edited database.

3. Career data section - Sizeof: 0x48F80C
Here we can find stuff like transfer budget, player statistics/morale/form, info about injuries. Basically, everything which is not stored in the databases. Most of the structures here have their own signatures.
Structures that I've reverse engineered a little bit:

tf003 - PlayersForm:

Code:
6 bytes - 'tf003\0' - Signature
4 bytes - TeamID
4 Bytes - Squad Size
{
    4 Byess - playerid
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown
    4 Bytes - Unknown DATE
};//Player array - Size=0x58

rlctrk - Release Clauses
Code:
7 Bytes - 'rlctrk\0' - sign
4 Bytes - Number of players with release clause
{
        4 Bytes - PlayerID
        4 Bytes - TeamID
        4 Bytes - Release Clause
};//Player array - Size=0x0C

pmit1 - Competition Prize money

Code:
{
    4 Bytes - Unkown
    4 Bytes - Date
    4 Bytes - Money
    4 Bytes - Unkown
    4 Bytes - competition id?
        char pad[0x0C];
};// Tournaments array - Size=0x20

um001 - UnlockablesManager:
Code:
future star
{
        1 Byte(?) - Unknown
    1 Byte(?) - Boolean?
    4 Bytes    - Arrival DATE - yyyymmdd
}


ubp01 - Club Finances

sm015 - StoryManager?

tm003 - mPlayerMoraleAlloc

mp002 - MonitoredPlayersAlloc? - 0x650

fm001 - FitnessManager

rm001 - RetirementManager?

dd002 - DeadlineDayTransferList

tpm002 - TrainingProgressManager

mi001 & ti001 - total shirts sold?

se001 - avg attendance this season?

fm001 - Injuries

Interesting. This is the type of thread that i like.

About CRC is the standard CRC32 algorithm or a custom one? Have you tried to use all 0 as CRC? This sound strange but there is a possibility that it work.
 

Aranaktu

Club Supporter
Interesting. This is the type of thread that i like.

About CRC is the standard CRC32 algorithm or a custom one? Have you tried to use all 0 as CRC? This sound strange but there is a possibility that it work.
It's standard CRC32 algorithm. And yes, all 0 are working. Thanks for that tip. :D
 

Xsenus

Club Supporter
https://gist.github.com/xAranaktu/96e40cb2287372bbbe405408485a87e4
not work

How can I convert a save file (Career20180814012708) to a data base(db) file or a squad file?
 


Top