How I try to crack the ‘Cracked’ CA Calculator in FM21 (And made an App for it)

Spoiler alert:

I love playing Football Manager since I was in Junior High School. I still remember the moment when Lloris, Juninho, and Benzema are playing for the same team and we win the Champions League together (Yes, Lyon is my favorite team, along with Persib). But only today, I know the true power of Genie Scout (GS).

As an App Developer, GS ticks my curiosity about how the game works and how we can manipulate the data from outside the game. So I started using others like FMSE, FMRTE, In-Game Editor, and Cheat Engine. I try to read a lot of articles and threads to know more about these apps. A topic that is always in discussion is how to calculate the Player Current Ability (CA). There is no official formula, so people start to research and try to crack it. One of these people is CAE, a staff member from FM Scout.

There is also an article: https://www.fmscout.com/a-guide-to-current-ability-in-football-manager.html?pg=0

There are others too, made in the form of HTML pages and Excel Spreadsheets. These are nice, but I need to input the value by typing manually most of the time. So, I thought how cool it is if we can just:

  1. Scan the in-game screen with our phone,
  2. Get all the value attributes using text recognition,
  3. Calculate the CA and show it instantly

The First Half: The Formula

Before building the App, we need the CA formula. I will assume you’ve read the CAE’s article, as my guide will be the video and its article above (We will call it the CAE Calculator). Unfortunately, they don’t explain the formula used inside the calculator at the time I write this. We need to improvise and make our own formula.

We need to compare the accuracy of the CA from ours to CA from the CAE calculator and CA from the game (also known as RCA). Let’s start by creating the Google Sheets and duplicate the weight table.

Open up your game for the next step, print screen the squad, then upload the file to the CAE calculator to know their value respectively. We’ll be using the Lyon squad as samples this time. Don’t forget to write down their RCA before we close the game.

The Table from Print Screen In-Game
The result from CAE Calculator

From all the players above I will take one from each position. The percent below means how much the CA from the formula differs from RCA. Our formula has ~3% different from the RCA. The minus means our average CA is lower ~3% from RCA, vice versa. As you can see, the difference between ours and the CAE Calculator from RCA is only ~1%. To be honest, I don’t even understand what I put inside the formula so please don’t ask. I tried a lot of combinations before and now my brain is hurt, so I’ll take the ~1%.

See the last row for the average. Full Table: https://docs.google.com/spreadsheets/d/1Nz3tKqkUkxERNa5qY-QI6BnxbvwzhUOIfGJH25YILrw/edit?usp=sharing

Now we have the formula, let’s build the app.

The Second Half: The App

We’re gonna be using Android Studio with help from ML Kit for text recognition. It’s a simple prototype:

  1. Open the app and show camera view instantly,
  2. Point your camera to the in-game screen,
  3. Show a dialog that contains the values scanned and the rating.

As this is just a prototype, there are many things that need to be considered:

1. Your phone needs to be connected to the Internet

The text recognition feature needs to download some files in the first launch. Read more about this here.

2. Make sure the game’s language is the English UK

The way text recognition works is it matches scanned words with the name attributes in English UK and takes the number on its right to be the value.

3. Scan only in Portrait

For text recognition to work in both portrait and landscape mode, the gyroscope of the phone needs to be in consideration. We are not putting this into function yet.

4. Scan’s speed may not instant

The speed also depends on the quality of your camera and screen. I set the margin of error (MoE) to 0%, which means that word will only take into consideration when it matches 100% of the attributes’ names. And it’s kind of a challenge to reach it as the word scanned will be more like ‘aggrsson’ or ‘postioning’, especially if the quality of the camera or the screen is low. Maybe we can reduce the MoE to 5% or 10% and put a better algorithm to increase the scan’s speed in the future.

5. Always ‘Double Tap’

100% MoE doesn’t guarantee that the value will also be accurate. Yes, it scanned the correct words, but 4 and 9 are sometimes very look-alike. Check the values inside the shown-up dialog just to make sure.

6. The player will only be considered to having one natural position

You can change the scanned position in the shown-up dialog to know what the player rating is when in a different position.

7. The Weaker Foot’s value is not really accurate

The player screen doesn’t show the value of his weaker foot. Text that will show in the Preferred Foot is One Side Only (Left Only / Right Only), One Side (Left / Right), or Either. So, I divide it into three categories with OSO will be randomized between 1–6, OS 7–12, and Either 12–18. Don’t worry, you can change its value in the shown-up dialog.

8. Use manual input if you want

You can always use manual input to skip the scanning phase. It will set all the unscanned attributes to one and you can edit the value in the shown-up dialog. Of course, I do not really recommend it as it is against the point of making this app. But, hey, if you want to use PSG or City, use it. Don’t let me tell you what to do :)

Post-Match Conference

GS is an amazing app and The CA Calculator still has the best accuracy for calculating the CA. That said, this prototype can be an interesting alternative about how we use the current technology to improve our quality in ‘scouting’. As I always said to the press,

Good game to you all and happy scouting.

Full-time Hacker, Part-time Hustler, Free-time Hipster