Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
NguyenDucAnh

Hexer's Workshop: It's all about Hex (FMM21 and beyond)


Hello Vibers! It is I, the loud-mouthed, grumpy "Hexer" who had made the old "Hexer's Workshop: It's all about Hex" back in the day. And today, I'll recreate the article to help Vibers explore the wonders that hex editing could bring to your FMM experience - and trust me, it's not going to be easy, but the what you'll get in the end would totally worth your time! 

Now before I started, I'd have something to say first to all of you. The last article, which I made back in 2018 (my very first article here actually) was deleted by my own request, despite me being very fond of it. That was, arguably, not my best decision, but I have my own reasons: It was outdated, and there were some people who were unaware of that, leading to many disastrous events that I didn't want to happen. I will try my best not to let this happen again, and luckily, I probably wouldn't be the only one running the workshop: there are quite a few Vibers who know how to do so, like @Scratch or @broodje kip, and they are willing to share they knowledge as well. This also won't be the same as the last article in terms of formatting, as it will be made specifically as a place for people to gather and share their findings, not just a string of tutorial posts - I'll try my best to do so!

Also, considering what happened last time, I'd like to set some rules in the workshop, so that people won't turn it to a burning mess like last time. Please read it carefully before entering the workshop!

- Search the thread before asking questions. The answers might have already been given there, and you won't have to wast your time asking it again. Also, read everything and don't skip, or you may miss something vital. 

- Don't send me direct messages, ask questions directly from this thread. I don't really have as much time as I had few years ago, so I might not respond. Asking here is better since there are others who would help.

- No piracy talks. Don't ask me how to make players' names real, or request for a specific savefile. You'll get an instant report. 

- Use multiple screenshots in one post, don't make multiple post with only one screenshot.

- Ask only questions related to savefile editing, both hex editing and changes.txt are acceptable. 

- Be civil to each other. My temper wasn't that good since the last "incidents", but I'll try my best to answer your questions in kind.

These are all the rules needed to keep the thread truly alive, unlike the last one. Now, without further ado, let's begin!

Link to comment
Share on other sites

Recommended Posts

Posted (edited)

Okay, before I could begin to make any tutorials, let us start with something else first. I know it could be tedious, but you'll need it...

#0: Preparations:

This is the most boring part, frankly. But you need to read it beofre doing anythibg, in order to prevent any disasters like losing your precious savefile or ruining your experience in general. Back up your savefile (copy it to somewhere else) before doing any of this! 

- You'd need a decent hex editor for the task. My recommendation for Windows user is HxD, and for Android is HEX Editor by First Row (it even has the compare files function, which certainly helps).

- A genuine copy of FMM, from either AppStore or Google Play, and not for some sites that gave it for free. Sure, some of these may still works on it, but there is no guarantee. Support the devs and buy the game if you haven't.

- Some common knowledge about hex. I know, it won't be easy to understand, but I'll try my best to help, right after this part...

#1: Terminology:

- Hex editing: a method of manipulating an FMM savefile, using simple, yet powerful tools known as hex editors. It will help you edit the savefile in hexadecimal (a counting system using base numbers from 00 to 0F, equivalent to 00 - 15) level - won't be an easy task, but it is effective.

- Digits: the numbers seen in hex editor after opening the savefiles, displaying in two characters for each of them(1A for example).

- Values: what I'll use to call a string of digits. Anything that contains at least 2 digits (AA BB for example) is called "values". 

- Unique ID (UID for shorts): the ID which represent players, staff, clubs, stadiums, etc. in the game, though it uses mostly for searching and identification (your own manager profile doesn't have one unfortunately). You can get them from sortitoutsi.net, they are the string of numbers in the individual pages' URLs. For example, in https://sortitoutsi.net/football-manager-2020/player/43426073/jacopo-vedovato, the player Jacopo Vedovato's UID is 43426073, though you can't use them directly - which brings us to the following...

- Conversion (verb:convert): the process of changing the normal decimal numbers (like UID) to hexadecimal format, which is how the game stores it good stuff - in Little Endian (I'll explain that later). You'll need to do so veey often, and Google is your good friend in this case. Just search for "(insert number here) to hex", and you will get those numbers in hexadecimal format, in Big Endian.

- Big/Little Endian: The format of hexadecimal values. Big Endian is what you'll get from Google, but since the game stores things in Little Endian, you need to do some conversion.

For example, you have a number of AA BB CC DD in hex, and it has 8 characters. It is in Big Endian, but if you swap the values' order, effectively change it to Little Endian, you'll get DD CC BB AA, which is what the game use. If the value has odd number of characters (3,5,7,9,etc.) or less than 3, add zeros in front of it before converting (so that the number contains at least 4 characters). For example, you have 1234567. In Big Endian it will be 01 23 45 67, in Little Endian it would be 67 45 32 01.

- True ID (TID for short): The kind of IDs that actually matters: knowing it would help you transfer players, move cluvs around, etc. Normally comprise of a few digits (4 in most cases), it stands before UID (also in most cases, though there were a few exceptions), with the usual structure of XX XX 00 00, without any exceptions.

- Stats ID (SID for short): the one you'd need if you want to manipulate players' stats. Sits right at the end of the "information field". 

- Information field: The specific part where data of entities like players and clubs stored. Not necessarily contain the same amount of values.

That's it for today. Feel free to add more to what I've missed, or correct any mistakes I've made - I'd appreciate the feedback. Thanks for reading, and stay tuned!

Edited by NguyenDucAnh
Clarifying the minimum number of characters for hex conversion.
Link to comment
Share on other sites

Nice one, I'm very interested in doing this myself. I have just loaded Germany up, no other nation, I want to make myself Germany manager but have no idea what I'm doing haha, to many digits etc

Link to comment
Share on other sites
7 minutes ago, leedsunited87 said:

Nice one, I'm very interested in doing this myself. I have just loaded Germany up, no other nation, I want to make myself Germany manager but have no idea what I'm doing haha, to many digits etc

That's what I was trying to help people with actually, since I got overwhelmed with national savefiles requests lately (despite my retirement message). I was going to rewrite that one in particular, though I'd need to get past the terminology part of this tutorial first.

Link to comment
Share on other sites
Just now, NguyenDucAnh said:

That's what I was trying to help people with actually, since I got overwhelmed with national savefiles requests lately (despite my retirement message). I was going to rewrite that one in particular, though I'd need to get past the terminology part of this tutorial first.

Yeah I understand must be irritating people keep requesting etc I'm all for trying to do things myself, same the SI don't have the licence for Germany, would be mint, I used to play FM on my laptop. I remember just having to delete the odd file to get the German national team :)

Link to comment
Share on other sites
16 minutes ago, leedsunited87 said:

Yeah I understand must be irritating people keep requesting etc I'm all for trying to do things myself, same the SI don't have the licence for Germany, would be mint, I used to play FM on my laptop. I remember just having to delete the odd file to get the German national team :)

The PC version made it easier with the Editor, and the license fixes can be applied just as easy. I'll do my best to make the process easy to understand on mobile as well. Just wait until I get past the terminology first.

Link to comment
Share on other sites
Posted (edited)

#2: IDs, information fields, and how to find them.

Like I said above, IDs in any kind are important if you want to edit anything at all, and they have different roles for different task. Today, I'll show you how to identify different kinds of ID, and use them to navigate and edit other related stuff.

UIDs are easiest to find, simply use sortitoutsi to find it, convert to hex, then convert it again to Little Endian (the example is above). As for TIDs, for players, managers, and clubs, they are the 4 digits right before the UID, with their structure being XX XX 00 00 (XX XX varied throughout different savefiles), though only the XX XX is used in the "information field"; for stadiums, it is right behind the stadium's name, its structure being 00 XX XX (XX XX, again, seemed to varied as well, and it was the only part that matters).

Nationality ID (NID), which determines a player's home nation, are also easy to find, and are constant between different savefiles. They are right behind the team 3-character abbreviated names.

Here in this example, I'll show you how I can find a player and his information field using UIDs. The player in question is Abdelhak Nouri (don't ask me how he was in my savefile, I would get on to that eventually). His UID is 37045583, in hex it will be 235454F - has 7 characters, so it should be written as 02 35 45 4F, converted to Little Endian and you'll have 4F 45 35 02. Find this in Hex Editor, and I'll have this:

Spoiler

Screenshot_2021-04-10-20-53-34-440_com.myprog.hexedit.thumb.jpg.a60d97aecb20d63576fa3e499a4ac732.jpg

This 103 digits is what I called "information field", as it contains all the personal data of the player. I'll break things down for you to make it easier:

  • D5 52 00 00 is Nouri' s TID, what you will use for most parts of the editing. 4F 45 35 02, obviously, is his UID
  • 86 07 00 00 and 7C 04 00 00 are his names' ID, first name and last name respectively. The FF FF FF FF right behind it was his nickname's ID, since he doesn't have one.
  • 5B 00 CD 07 is his date of birth. Nouri was born in April 2nd, 1997. 1997 to hex is 7CD, which in Little Endian is CD 07. April 2nd is the 92nd day of the year. Subtracting it by one to have 91, convert it to hex and you' have 00 5B, and 5B 00 is in Little Endian format.
  • 1D 00 9E 00 1D 00 01 is the IDs of his nationality, second nationality, and declared national team respectively, and the 01 behind it signified that his role there is a player (10 if he was a manager). Nouri was called up to Morocco in my savefile, so the first 1D 00 represents the nationality ID of Morocco, which can be found right behind the nation's abbreviated name MAR. Holland, as a result, becomes his second nation (9E 00), and like clubs' ID, declared national team's TID is right before the nation's UID, which is 10 digits before the team's long name (as with most African nations, is the same as nationality ID.
  • 4B 00 E6 07 is the date of his most recent callups. You don't need to pay much attention for it.
  • 12 03 and 00 00 were his capped/goals, for senior and U21 respectively. He capped for Morocco 18 times, scored 3 goals, while didn't capped for U23s.
  • 25 03 is the club's TID (Rangers), since I brought him there. B9 00 E4 07 is the day he last signed a contract, and 69 30 is his transfer values.
  • 00 CF 3F 00 00 is his SID. The exact use of this will be covered later.

That's all for now. God, it was tedious, but you'll soon find those info more useful later on. Thanks for reading, and stay tuned for more!

Edited by NguyenDucAnh
Adding new information.
Link to comment
Share on other sites

I appreciate all the hard work you've put into this, excellent work. Most of it is beyond my capabilities so i think I'll leave it to people like yourself for fear of breaking the game or my phone through frustration 😂👍

Link to comment
Share on other sites
7 hours ago, Insidious said:

I appreciate all the hard work you've put into this, excellent work. Most of it is beyond my capabilities so i think I'll leave it to people like yourself for fear of breaking the game or my phone through frustration 😂👍

That was why I said always backing up your savefiles before doing this. It won't hurt trying once you backup your save. 

Link to comment
Share on other sites
34 minutes ago, NguyenDucAnh said:

That was why I said always backing up your savefiles before doing this. It won't hurt trying once you backup your save. 

I'll stick to my knowledge base but very much appreciated my friend 👍

Link to comment
Share on other sites
1 hour ago, Bolusereal said:

Is the series continuing? I'm try to find out if the players attributes are editable

You can edit the attributes with the IGE.

Link to comment
Share on other sites
On 10/04/2021 at 17:26, NguyenDucAnh said:

UIDs are easiest to find, simply use sortitoutsi to find it, convert to hex, then convert it again to Little Endian (the example is above)

I've found an easier way to find UIDs as shown belowScreenshot_20210430_104622_com.myprog.hexedit.thumb.jpg.25c4183c2c457dd423d54a2409aa2f75.jpgScreenshot_20210430_105649_com.myprog.hexedit.thumb.jpg.d6bd8c20ab1a34e6523f11821a32dc3d.jpg

you can find a player's UID by placing him in either a shortlist or saving your team selection and the UID will be the code after the long string of zeros in this case Gravenberch's UID is 5da93502 and Esposito's UID is 2d9d9602

Link to comment
Share on other sites
Quote

For example, you have 1234567. In Big Endian it will be 01 23 45 67, in Little Endian it would be 67 45 32 01.

is the 23 - 32 swap in endian conversion a typo or actually how it is?

Link to comment
Share on other sites
Posted (edited)

Hello everyone. Has anyone found a way to add a face to a regen? I know how to find the regen ID, but I can't add a face. I add his ID to config, but the face doesn't show up! Has anyone succeeded?

Edited by Rus7M
Link to comment
Share on other sites
3 minutes ago, Rus7M said:

Hello everyone. Has anyone found a way to add a face to a regen? I know how to find the regen ID, but I can't add a face. I add his ID to config, but the face doesn't show up! Has anyone succeeded?

Even if there is a way to add faces to regens, I don’t think it’s with HEX.

Link to comment
Share on other sites
Posted (edited)
15 hours ago, broodje kip said:

Even if there is a way to add faces to regens, I don’t think it’s with HEX.

I think you can't do without HEX. It is not possible to add a face in the usual way through config. I tried to change the ID of the regen via Hex, but it did not help either.

Edited by Rus7M
Link to comment
Share on other sites

how do you edit hidden stats (mainly the 5 responsible for team dynamics)? been a while since the last post so i guess i'll just ask now

Link to comment
Share on other sites
On 27/04/2021 at 15:40, Chelseaplchamps2022 said:

You can edit the attributes with the IGE.

I was really talking about the hidden attributes. Are those editable? Thanks 

Link to comment
Share on other sites
55 minutes ago, Bolusereal said:

I was really talking about the hidden attributes. Are those editable? Thanks 

No you can't change them with the IGE.

Link to comment
Share on other sites
Posted (edited)
1 hour ago, Chelseaplchamps2022 said:

No you can't change them with the IGE.

i'm pretty sure he meant hidden attribute + hex, not IGE + visible ones, since we already know everything about IGE

Edited by tetzki
additional comment
Link to comment
Share on other sites
On 24/05/2021 at 14:28, tetzki said:

i'm pretty sure he meant hidden attribute + hex, not IGE + visible ones, since we already know everything about IGE

Yeah that's what I meant

Link to comment
Share on other sites
12 hours ago, Bolusereal said:

Yeah that's what I meant

i'm sure we can edit it, since there is already a scouting app somewhere that can read it, i think the only thing we need is the part to edit, which hopefully gets discussed here if we ever get an update

Link to comment
Share on other sites
Posted (edited)

I've changed the hidden attributes in FMM20, but in FMM21 I haven't tried it yet. But perhaps nothing has changed.

To change the hidden characteristics in FMM20, you need to do the following steps:
1. Find the ID number of the player in HEX.
2. When you find the ID number, below will be his date of birth, the number of goals for the national team, then the mental skills-adaptability, ambition, loyalty, professionalism, temperament.... then ID2 will go. We need this code.
3. Enter ID2 in the search and click Next Search several times until you see the fields where there will be many values 01 01 01 14 01 01 14 01 01. Something like that. These 01 01 01 are the player's position, that is, their role. If you found this place, then there will be hidden skills nearby (above 01 01 01), such as Playing in big matches, propensity for injuries, stability, the ability to kick penalties, and so on.

I'm sorry, I don't have much time, I can only attach one screen, and then just look for it! And be sure to share your findings.

I did check some of the hidden characteristics (professionalism and so on). Take a look at an example. This still works in fmm21.

 

I forgot to say that these values are set from 1 to 20. That is, if you want maximum professionalism for your player, you need to set the value to 20 (in HEX it will be 14). Sorry for my English.

Screenshot_2021-05-27-15-41-30-563_com.myprog.hexedit.jpg

Screenshot_2021-05-27-15-54-25-067_com.sega.score.jpg

Screenshot_2021-05-27-15-53-57-225_com.sega.score.jpg

Edited by Rus7M
Link to comment
Share on other sites
1 hour ago, Rus7M said:

I've changed the hidden attributes in FMM20, but in FMM21 I haven't tried it yet. But perhaps nothing has changed.

To change the hidden characteristics in FMM20, you need to do the following steps:
1. Find the ID number of the player in HEX.
2. When you find the ID number, below will be his date of birth, the number of goals for the national team, then the mental skills-adaptability, ambition, loyalty, professionalism, temperament.... then ID2 will go. We need this code.
3. Enter ID2 in the search and click Next Search several times until you see the fields where there will be many values 01 01 01 14 01 01 14 01 01. Something like that. These 01 01 01 are the player's position, that is, their role. If you found this place, then there will be hidden skills nearby (above 01 01 01), such as Playing in big matches, propensity for injuries, stability, the ability to kick penalties, and so on.

I'm sorry, I don't have much time, I can only attach one screen, and then just look for it! And be sure to share your findings.

I did check some of the hidden characteristics (professionalism and so on). Take a look at an example. This still works in fmm21.

 

I forgot to say that these values are set from 1 to 20. That is, if you want maximum professionalism for your player, you need to set the value to 20 (in HEX it will be 14). Sorry for my English.

Screenshot_2021-05-27-15-41-30-563_com.myprog.hexedit.jpg

Screenshot_2021-05-27-15-54-25-067_com.sega.score.jpg

Screenshot_2021-05-27-15-53-57-225_com.sega.score.jpg

is ID2 what you call the stats id that was defined by the OP in the terminology part? since it looks like it sits in the same position (comparing your screenshot with his example)

Link to comment
Share on other sites
Posted (edited)
1 hour ago, tetzki said:

is ID2 what you call the stats id that was defined by the OP in the terminology part? since it looks like it sits in the same position (comparing your screenshot with his example)

I didn't understand your question (my translator sometimes lets me down).

I'll try to repeat it. To change attributes such as: Adaptability, Ambition, Loyalty, Profesionalism, Controversy, Handling Pressure, Sportifity and Tempramen, you only need a player ID.

To change the player's skills and some hidden attributes (Big match, Consistency, Free kick, Penallty, Injury - then you need ID2!

Take ID2 and keep searching until you see the set "01 01 01 14 01 14 01 01 ....", this is a sign that you are in the right place. Next, you need to independently search for the fields you need.

Edited by Rus7M
Link to comment
Share on other sites
9 minutes ago, Rus7M said:

I didn't understand your question (my translator sometimes lets me down). I'll try to repeat it. To change attributes such as: Adaptability, Ambition, Loyalty, Profesionalism, Controversy, Handling Pressure, Sportifity and Tempramen, you only need a player ID. To change the player's skills and some hidden attributes (Big match, Consistency, Free kick, Penallty, Injury - then you need ID2! Take ID2 and keep searching until you see the set "01 01 01 14 01 14 01 01 ....", this is a sign that you are in the right place. Next, you need to independently search for the fields you need.

oh sorry that was just a term question, don't mind it

i found the "professionalism, ..." part thanks

is the "big match, ..." part located before or after the "01 01 01 14 ..." part?

Link to comment
Share on other sites
1 hour ago, tetzki said:

oh sorry that was just a term question, don't mind it

i found the "professionalism, ..." part thanks

is the "big match, ..." part located before or after the "01 01 01 14 ..." part?

The hidden attribute "Big Match" is before "01 01 14 ....". Like all other attributes and skills (injuries, stability, free kicks and penalties, the ability to use a non-working leg, and so on).

After "01 01 14" there is only one important attribute - this is the potential and current abilities of the player.

Perhaps, if I have time, I will tell you about all these skills and where they are. But I do not promise. If you find them before me, then write here to make it easier for other people.

Link to comment
Share on other sites

Sorry I took so long guys, I got quarantined in the hospital, since there was one COVID-19 patient there - the Delta variant apparently. Without my phone. Or laptop. I had to stay with the elderly (though they were very nice to me during the stay), so I had no way to continue writting until today. What did I miss?

On 27/04/2021 at 20:15, Bolusereal said:

Is the series continuing? I'm try to find out if the players attributes are editable

Of course. I got quarantined for 3 months due to the amount of patients (or suspected ones), so I couldn't do it during that time. I will certainly continue, after I finished testing my skills once again...

On 27/06/2021 at 08:47, hassan24 said:

how to manage Germany national team using hex editor???? 

That one will come later, don't worry. In the meantime, try the old savefile I made. It still works, and you can figure something else with it before I create a proper tutorial.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...