FIFA 17 attribdb modding tool.

GUYS, I BRING SOME JUICY NEWS!!! Our man Donnie's evolved his tool again! Check this!

- NEW UI!

- FIXED FIFA 17 attribdb schema.

- BRAND NEW FIFA 16 attribdb schema BOTH FOR DEMO AND 1.0 FILE VERSION OF THE GAME!!!


I want you guys to give a big thanks to Donnie! My man's a legend, making a tool for a 10 yo game that is still a better base for making a realistic footy game than any of the moderns FC 26! Man's like him are the ones that revolution any community! Give big thanks to him!
Can you ask him please why many attributes are zero value? Does that mean they're not used in the game?
 
Can you ask him please why many attributes are zero value? Does that mean they're not used in the game?
As a matter of fact... We don't know. We suppose that might be the reason, but it could actually be that they're used and they're 0. No way of knowing, we don't have the code. The only way of knowing is trying to change it and see how the game works when doing so.

Also, maybe there's more values to uncover, I don't know exactly how donnie did it, but maybe he can find more values if he keeps digging in the data.

Think that this tool is only 1 month and a half old, and the research on data has been done mostly once and he hasn't tried to dig more due to his mental health state since it is quite an stressing job, even if you're talented, so... I cannot tell you how much is to go. He found how the values are hashed in FIFA 17 and 16, and probably will be able to do so with other FIFA's in the future, but maybe more values are hashed under a different hashing code? I don't know, I ain't sure.

Any case, he keeps working and will keep on doing so from time to time, but we've got to understand also that this is a long term project, and one to be continued maybe by someone else with the skills to do so, and not only something that donnie can do so...

We will see. Donnie has lighted the way, he has put the first stone. But probably one of the best ways to honour him, would be to giving him a hand, those that are qualified to it. He has set the example. Builded a tool for a 9 yo game to modify values, then again adding support for a 10 yo one, both considered abandonware, when no one else cared about, and mostly important, without asking a single penny for it, being in a situation where he might actually need it. In the FIFA community, where some folks charge inmense patreon subs for changing few values without even knowing a bit of code. I don't think we're actually conscious of how fortunate we are of having him doing this.

I can only hope that someone else feels inspired by it and decides to do so himself if he knows how (I unfortunately don't know how he actually does his magic), and therefore we can have more people in the community working together and sharing knowledge on how actually FIFA works, since it would be really helpful and would allow a lot of mods to flourish and actually help us to create wonderful things.
 
Got some amazing news guys! New version done early today. Didn't upload before because I was in work when he sent it to me in private, so here we go!

This version has an amazing feature that might give a lot of insight in the differences between FIFA 16 and FIFA 17, or between FIFA 16 demo and v1.0 since you can now cross compare the attribdb between different versions of the game!

This should allow us to see how the game has evolved through time and versions. Which values changed, which not, and in the case that haven't changed, wonder why it feels different.

With this said, I leave the editor in this post and will update the post #1. Cya in the pitch!
 

Attachments

As a matter of fact... We don't know. We suppose that might be the reason, but it could actually be that they're used and they're 0. No way of knowing, we don't have the code. The only way of knowing is trying to change it and see how the game works when doing so.

Also, maybe there's more values to uncover, I don't know exactly how donnie did it, but maybe he can find more values if he keeps digging in the data.

Think that this tool is only 1 month and a half old, and the research on data has been done mostly once and he hasn't tried to dig more due to his mental health state since it is quite an stressing job, even if you're talented, so... I cannot tell you how much is to go. He found how the values are hashed in FIFA 17 and 16, and probably will be able to do so with other FIFA's in the future, but maybe more values are hashed under a different hashing code? I don't know, I ain't sure.

Any case, he keeps working and will keep on doing so from time to time, but we've got to understand also that this is a long term project, and one to be continued maybe by someone else with the skills to do so, and not only something that donnie can do so...

We will see. Donnie has lighted the way, he has put the first stone. But probably one of the best ways to honour him, would be to giving him a hand, those that are qualified to it. He has set the example. Builded a tool for a 9 yo game to modify values, then again adding support for a 10 yo one, both considered abandonware, when no one else cared about, and mostly important, without asking a single penny for it, being in a situation where he might actually need it. In the FIFA community, where some folks charge inmense patreon subs for changing few values without even knowing a bit of code. I don't think we're actually conscious of how fortunate we are of having him doing this.

I can only hope that someone else feels inspired by it and decides to do so himself if he knows how (I unfortunately don't know how he actually does his magic), and therefore we can have more people in the community working together and sharing knowledge on how actually FIFA works, since it would be really helpful and would allow a lot of mods to flourish and actually help us to create wonderful things.
Thanks for the detailed answer. I'm currently trying to increase defensive aggressiveness in tackling to increase the number of fouls. So far, I haven't been able to do it. I change the values, but nothing seems to change in the game. :(
 
Thanks for the detailed answer. I'm currently trying to increase defensive aggressiveness in tackling to increase the number of fouls. So far, I haven't been able to do it. I change the values, but nothing seems to change in the game. :(
Make sure you create a mod and launch it through Mod Manager. For me, Launching edited bin/vlt through FrostyEditor does not work but saving the edited bin/vlt as a mod and launching from Frosty Mod Manager does work.

An ideal state would be a two step process, where values are edited and launched directly into game, since editing requires a lot of guesswork and iteration.

Given the current state of the tool, the most efficient way to do this is edit one specific parameter, then save the bin/vlt with a descriptive file name. Then edit another parameter and save with another unique, deceptive file name. Once you have a bunch of bin/vlts, then go to FrostyEditor and load in the first set of bin/vlt and save as Mod, giving it a unique descriptive title, then repeat for all the bin/vlts you saved. Finally, open Frost Mod Manager and add/launch your mods.

I find that doing your database editing in one session, creating mods, then testing in game is more efficient than jumping back and forth a bunch of times.
 
Last edited:
Thanks for the detailed answer. I'm currently trying to increase defensive aggressiveness in tackling to increase the number of fouls. So far, I haven't been able to do it. I change the values, but nothing seems to change in the game. :(
FIFA 17 or 16?
 
Aight, in FIFA 17 I ain't sure if this works, but in FIFA 16 this should be working 100%, give it a look to what is inside the spoiler I'll put here (to prevent a too long message)
[REFEREE]
ENABLE_REFEREE_LOGIC=1
ENABLE_CARD_LOGIC=1

RULES_UPDATE_FOULTYPE_FOR_CHEATFOUL=1
// Base foul sensitivity (higher more fouls called)
REF_FOUL_FREQUENCY = 55 // Default is 50, 65 is realistic

// Tolerance for contact before a foul is called (lower = stricter)
REF_CONTACT_THRESHOLD = 0.7 // 0.4 very strict, 0.6 = lenient

// Advantage duration before play is stopped
REF_ADVANTAGE_DURATION = 3.5 // Time (seconds) advantage lasts
REF_ADVANTAGE_ALLOW_PLAY_ON = 1 // 1 allow advantage logic

// Yellow card probability and threshold
REF_YELLOW_CARD_CHANCE = 25 // chance to give yellow
REF_YELLOW_CARD_THRESHOLD = 0.85 // Lower more yellows

// Red card probability and threshold
REF_RED_CARD_CHANCE = 15 // Keep this lower to avoid too many reds
REF_RED_CARD_THRESHOLD = 0.93 // Higher only for serious fouls

// Penalty foul detection (lower stricter)
REF_PENALTY_CONTACT_THRESHOLD = 0.69 // 0.4 is harsh, 0.6 is lenient

// Logic for handballs (if enabled in settings)
REF_HANDBALL_CALL_CHANCE = 30 // If handballs are on, how often theyre called

// Let AI foul realistically (not just human players)
AI_COMMIT_FOUL_CHANCE = 69 // AI will actually foul you more

This should control the sensibility of the chance of the referee actually whistling a foul.

This is the base I've got now for 45 min, I am looking for a more careful approach to avoid having too many fouls in 90 min matches, but if you change accordingly to the commentaries set in the code and add that to your cl.ini, you should be able to get in your perfect spot zone. It's a matter of testing, giving more chance, less chance...

I specially recommend you to playtest more with contact threshold parameter, since that allows for more fouls to be called with body collision. I've set it to 0.7 cause I want to create a more physical gameplay and also, as said, to avoid having too many fouls whistled in 90 min, but you can set it to something lower. 0.5 should give the vanilla feeling of contact, 0.6 should be more lenient, and 0.4 should be more strict and whistle a foul for less contact.

On the other hand, you can complement it with tackle probability with the AI, but the key here is to find a good balance for yourself so that not every foul is because you've been tackled, but that some fouls are because on how AI positions his body, the ammount of contact they apply, etc.

About of why you don't seem to feel any changes when you change values in attribdb, it is because in FIFA 16, EACH TIME YOU CHANGE A VALUE IN ATTRIBDB and copy that modified attribdb in your game's folder (in "gamefolder"/data/attribdbgameplay folder to be more exact) you have to REGENERATE BH FILES. You can do so with Creation Master 16, which you can download in the next link.

https://mega.nz/file/clpHgCCA#HFC-gdOUeYKo1nVw0vGSivmJL4BUFSaVcVweioSjA_c

Have a nice time playing FIFA 16!
 
I made some mods to increase tackling aggression in 17. Tackling aggression threshold 50 is a slight increase. Tackling aggression threshold 0 is quite insane. CPU defenders will tackle very aggressively and get many yellow cards.

I've also included a mod to reduce defensive reaction times and to decrease defensive contain distance (meaning tighter marking). These 3 in combination will give you a real challenge!
 

Attachments

Aight, in FIFA 17 I ain't sure if this works, but in FIFA 16 this should be working 100%, give it a look to what is inside the spoiler I'll put here (to prevent a too long message)
[REFEREE]
ENABLE_REFEREE_LOGIC=1
ENABLE_CARD_LOGIC=1

RULES_UPDATE_FOULTYPE_FOR_CHEATFOUL=1
// Base foul sensitivity (higher more fouls called)
REF_FOUL_FREQUENCY = 55 // Default is 50, 65 is realistic

// Tolerance for contact before a foul is called (lower = stricter)
REF_CONTACT_THRESHOLD = 0.7 // 0.4 very strict, 0.6 = lenient

// Advantage duration before play is stopped
REF_ADVANTAGE_DURATION = 3.5 // Time (seconds) advantage lasts
REF_ADVANTAGE_ALLOW_PLAY_ON = 1 // 1 allow advantage logic

// Yellow card probability and threshold
REF_YELLOW_CARD_CHANCE = 25 // chance to give yellow
REF_YELLOW_CARD_THRESHOLD = 0.85 // Lower more yellows

// Red card probability and threshold
REF_RED_CARD_CHANCE = 15 // Keep this lower to avoid too many reds
REF_RED_CARD_THRESHOLD = 0.93 // Higher only for serious fouls

// Penalty foul detection (lower stricter)
REF_PENALTY_CONTACT_THRESHOLD = 0.69 // 0.4 is harsh, 0.6 is lenient

// Logic for handballs (if enabled in settings)
REF_HANDBALL_CALL_CHANCE = 30 // If handballs are on, how often theyre called

// Let AI foul realistically (not just human players)
AI_COMMIT_FOUL_CHANCE = 69 // AI will actually foul you more

This should control the sensibility of the chance of the referee actually whistling a foul.

This is the base I've got now for 45 min, I am looking for a more careful approach to avoid having too many fouls in 90 min matches, but if you change accordingly to the commentaries set in the code and add that to your cl.ini, you should be able to get in your perfect spot zone. It's a matter of testing, giving more chance, less chance...

I specially recommend you to playtest more with contact threshold parameter, since that allows for more fouls to be called with body collision. I've set it to 0.7 cause I want to create a more physical gameplay and also, as said, to avoid having too many fouls whistled in 90 min, but you can set it to something lower. 0.5 should give the vanilla feeling of contact, 0.6 should be more lenient, and 0.4 should be more strict and whistle a foul for less contact.

On the other hand, you can complement it with tackle probability with the AI, but the key here is to find a good balance for yourself so that not every foul is because you've been tackled, but that some fouls are because on how AI positions his body, the ammount of contact they apply, etc.

About of why you don't seem to feel any changes when you change values in attribdb, it is because in FIFA 16, EACH TIME YOU CHANGE A VALUE IN ATTRIBDB and copy that modified attribdb in your game's folder (in "gamefolder"/data/attribdbgameplay folder to be more exact) you have to REGENERATE BH FILES. You can do so with Creation Master 16, which you can download in the next link.

https://mega.nz/file/clpHgCCA#HFC-gdOUeYKo1nVw0vGSivmJL4BUFSaVcVweioSjA_c

Have a nice time playing FIFA 16!
Thank you very much for the detailed explanation, you are very kind. My mistake was that I opened the wrong files. That's why most of the attributes had zero or empty values, and nothing worked.
 
Last edited:
I made some mods to increase tackling aggression in 17. Tackling aggression threshold 50 is a slight increase. Tackling aggression threshold 0 is quite insane. CPU defenders will tackle very aggressively and get many yellow cards.

I've also included a mod to reduce defensive reaction times and to decrease defensive contain distance (meaning tighter marking). These 3 in combination will give you a real challenge!
Can you share please name of this attributes (defensive reaction times and defensive contain distance)?
 
Can you share please name of this attributes (defensive reaction times and defensive contain distance)?
cpu_ai / cpuai_marker / MarkingContainDistance
This is an array of values. I changed them all to 2.

Also in cpu_ai are 4 curves named:
CPUAI_MarkerReactionMaxBestDefenderTackling
CPUAI_MarkerReactionMaxWorstDefenderTackling
CPUAI_MarkerReactionMaxBestDefender
CPUAI_MarkerReactionMaxWorstDefender

For all of these, I kept the x values the same and changed all of the y values to 5. I believe this reduces reaction times to 5 milliseconds.
 
cpu_ai / cpuai_marker / MarkingContainDistance
This is an array of values. I changed them all to 2.

Also in cpu_ai are 4 curves named:
CPUAI_MarkerReactionMaxBestDefenderTackling
CPUAI_MarkerReactionMaxWorstDefenderTackling
CPUAI_MarkerReactionMaxBestDefender
CPUAI_MarkerReactionMaxWorstDefender

For all of these, I kept the x values the same and changed all of the y values to 5. I believe this reduces reaction times to 5 milliseconds.
No, reaction time is measured in ticks, this is, in update frequency. Games update their inner logic X times each second, and this is known as ticks, or what is the same, Hertz, abreviated Hz, which is a frequency unit. It is used in CS, for example, to update the position of a bullet fired to know if it impacts on an objective or not. This guess is further supported by the fact that in most modded CL.ini and also in later entries of Frostbite engine, in the file aidefault.ini file, we have a lane that literally says:
TEST_AI_60HZ=0 // Run the game at 60hz not at the default 30hz.
(and in this case it wouldn't be activated and would be running at 30hz instead of 60h)

If you want to know more about how ticks work in videogames, I leave a link here:
https://gamedev.stackexchange.com/questions/81608/what-is-a-tick-in-the-context-of-game-development

Having in count that one second (or 1000 miliseconds) is 60Hz, since is the frequency that the game processes things itself, 5 ticks would be 0.08 seconds, or what is the same: 80 miliseconds. Simple mathematics. If you look at the reaction times for professional players, it is way higher than that, between 300 miliseconds worst of cases, down to 150, 120 miliseconds, averaging around 250-200 miliseconds which would be a range between 20 and 9 or 8 ticks, averaging around 12-15 ticks.

This supposing the game runs at 60 Hz, but for that in theory, the lane I put above should be in your cl.ini. Or maybe not because it is activated somewhere else, not sure, don't know how FIFA internally works that much exact.

Now, this being said, I don't even think that's the real reason of FIFA defenders feel sometimes a bit too stupid. More likely it is the CPUAI_Predictionpoints, that should be higher in every single value, and in cpuai_marker, same files where are those lanes you mentioned, the lanes

CPUAI_MarkerPushPullChanceByDifficulty
CPUAI_MarkerReactionAmmount_BallDirectionChange
CPUAI_MarkerReactionAmmount_BallDirectionChangeSpeedModifier
CPUAI_MarkerReactionAmmount_BallSpeedChange

Which measures, as said, the AMMOUNT of reaction, this means, not the time, but how much commited or how much the defender reacts to a ball direction or speed change, and it should be progressive, and in general, higher. Also, the first one measures the ammount of jostle possibility by a defender, and is a good way of making defenders much more rocky and robust and proactive without need to tackle. Summing it up, how physical the defenders are.

If I were you, I'd keep the values you said of MarkerReaction as they come in vanilla or even make them between 8 and 20, but with escape values (values in the first and last y values) of 30 and 0 respectively, more or less respecting vanilla progression, maybe even doing it more varied, to prevent stacking same values to prevent having same reaction times repeating themselves, and instead having a much more wide variety. You want to have those escape values as values that exagerate like very bad or very good scenarios where the player reacts too late or inmediately, because they screwed up somehow or they did like really good. Also, tackling reaction should be slower (higher numbers) than normal reactions, because it is an action more complex than simply following and pursuiting your mark.

I hope this small guide is useful for you. I won't even say that it is exactly as I say, because man, I might be wrong, I actually know shit, and all I have are educated guesses... But is most likely to be like that.
 
Thanks for the information. I was mostly trying to put together a quick and dirty mod to see if I could make defense more aggressive, which I was able to do. Now I’m not suggesting this is a “final” gameplay mod, or that anyone should play it, but it does prove that it’s quite easy to make the cpu tackle more.

I’m personally far more passionate about the attacking side, so I’ll post a few mods here that modify dribbling and shooting.
 
Thanks for the information. I was mostly trying to put together a quick and dirty mod to see if I could make defense more aggressive, which I was able to do. Now I’m not suggesting this is a “final” gameplay mod, or that anyone should play it, but it does prove that it’s quite easy to make the cpu tackle more.

I’m personally far more passionate about the attacking side, so I’ll post a few mods here that modify dribbling and shooting.
Id like to see more passing inaccuracy from the AI and more of teams playing faithfully to their tactics

For example in league 2 people should play long ball and ACTUALLY play the ball long and in behind
 
Big request to FIFA 17 modders. Could someone create a mod where the goalkeeper comes out of the goal more in 1v1 situations?
 
Id like to see more passing inaccuracy from the AI and more of teams playing faithfully to their tactics

For example in league 2 people should play long ball and ACTUALLY play the ball long and in behind
Likely we could edit the long pass evaluation criteria, making teams attempt more long balls in general. And we could make long balls travel faster and longer.
 
Big request to FIFA 17 modders. Could someone create a mod where the goalkeeper comes out of the goal more in 1v1 situations?
I don’t see any specific parameters related to goalkeeper aggressiveness, charging, or rushing. There are other goalkeeper parameters, but based on their titles, none of them would seem to have the effect you’re looking for. I honestly don’t have any interest in testing these out, but editing these parameters quite easy. If you’re willing, I could send you over a bucket of mods to test out to see if any of these have an effect on the goalkeeper charge.
 
Big request to FIFA 17 modders. Could someone create a mod where the goalkeeper comes out of the goal more in 1v1 situations?
That already happens in FIFA 16, if you ask me. One of the (multiple) reasons of why went back into FIFA 16. Maybe is also my custom cl.ini, but yeah, I ain't having that problem in FIFA 16
 
I made a mod to make the dribbling much tighter, less like driving a tank.
I also made one to make shooting more powerful. My issue with 17 is that any shot charged past 50 percent ends up in the stands. This allows charging up to 75 or even 80 and still shooting on target. It lowers the elevation of long shots, so it's possible to hit screamers and it increases spin on shots.
 

Attachments

That already happens in FIFA 16, if you ask me. One of the (multiple) reasons of why went back into FIFA 16. Maybe is also my custom cl.ini, but yeah, I ain't having that problem in FIFA 16
Yeah , in Fifa 16 i also didnt notice that problem but i use mods and cl.ini and maybe thats the point.
I don’t see any specific parameters related to goalkeeper aggressiveness, charging, or rushing. There are other goalkeeper parameters, but based on their titles, none of them would seem to have the effect you’re looking for. I honestly don’t have any interest in testing these out, but editing these parameters quite easy. If you’re willing, I could send you over a bucket of mods to test out to see if any of these have an effect on the goalkeeper charge.
That's not good news :( I've never tried modding FIFA, but please send me the files. Maybe I'll play around with it when I have some free time.
I made a mod to make the dribbling much tighter, less like driving a tank.
I also made one to make shooting more powerful. My issue with 17 is that any shot charged past 50 percent ends up in the stands. This allows charging up to 75 or even 80 and still shooting on target. It lowers the elevation of long shots, so it's possible to hit screamers and it increases spin on shots.
Did you test these mods with the defensive mod or with the original gameplay? Doesn't that make scoring goals too easy and increase the number of shots on target?
 
No, it did not result in the game being too easy. I play with manual shooting - I can now get the shots on target but that doesn’t mean they go in. The goalie will save almost any shot from 30-40 yard out, even if off target.

Where it increases the goals is from 10 yards and closer. Skying it from this range (for a howler) is still possible but you’d have to charge to 80-100%.

It’s worth noting that the game introduces shot error for any number of situations. Ball bouncing or not having a run up to the ball before a shot will result in error applied. So even though I’ve made the long shot trajectory lower, these errors would still apply if it’s a disadvantageous shot.
 
Id like to see more passing inaccuracy from the AI and more of teams playing faithfully to their tactics

For example in league 2 people should play long ball and ACTUALLY play the ball long and in behind
i found some promising values in pass evaluation criteria. Reducing the Minimum score required for a pass could result in the CPU making riskier passes which should result in more error. There also appear to be criteria related for what is the longest pass CPU will attempt, when is a player considered “open,” etc. (There are similar evaluation criteria for shooting.)

If editing these values affects the game engine, there may be a way to achieve the effect you’re desiring.

Making the mods takes less than 5 minutes, testing to see if they have any effect at all is the challenging part.
 
I made a mod to make the dribbling much tighter, less like driving a tank.
I also made one to make shooting more powerful. My issue with 17 is that any shot charged past 50 percent ends up in the stands. This allows charging up to 75 or even 80 and still shooting on target. It lowers the elevation of long shots, so it's possible to hit screamers and it increases spin on shots.
doi put both of these mods on?
 
i found some promising values in pass evaluation criteria. Reducing the Minimum score required for a pass could result in the CPU making riskier passes which should result in more error. There also appear to be criteria related for what is the longest pass CPU will attempt, when is a player considered “open,” etc. (There are similar evaluation criteria for shooting.)

If editing these values affects the game engine, there may be a way to achieve the effect you’re desiring.

Making the mods takes less than 5 minutes, testing to see if they have any effect at all is the challenging part.
I was able to achieve the desired result of lowering the minimum pass score, making the CPU make more bad passes. More testing is required to determine whether or not these are high-risk high-reward passes or just simply bad passes. Also needed is more testing for what this ideal value is. A subtle tweak will result in a few mis-hit balls, whereas lowering the threshold to 0 resulted in the CPU giving it away on every other pass.

I will upload a subtle, moderate and extreme version so you can test it out and see the difference.

(I don’t think the CPU intentionally makes bad passes. I think there is a logic calculation for how probable the success of the past will be and a minimum threshold for it to attempt the pass. So I do think it is a risk and reward play.)
 
Can you share which values you changed? I am going to try and do the same with fifa 18 as the animations are much smoother compared to fifa 17

Having played 18 17 is a bit of an eyesore
 
Can you share which values you changed? I am going to try and do the same with fifa 18 as the animations are much smoother compared to fifa 17

Having played 18 17 is a bit of an eyesore
evaluation \ evaluation \ EVAL_PassScoreNeedForGoodPass
evaluation \ evaluation \ EVAL_PassUnmarkedRadiusInYards

If you want to mess around with these, they are attached.
 

Attachments

@sleevel Thanks for your job! Do you plan to look at ball physics? Are there any attributes that could be changed to improve the ball weight and spin of crosses and shots?
 
Back
Top Bottom