Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
#583778 05/08/16 11:26 AM
Joined: Jun 2015
F
enthusiast
OP Offline
enthusiast
F
Joined: Jun 2015
When you build stats for weapons and armor, you never know what the outcome is exactly.

So I collected data for some stats in EE and with the exception of resistances, those values should be the same for classic. (But I did not look that up at all.)

Big thanks go to Raze for providing the upload space.

Data Spreadsheet

It is a spreadsheet made with LibreOffice. You can open it in LibreOffice (and probably in OpenOffice), Excel I don't know, I don't have that.

The sheet contains the effects of stat boosts for armor and weapons: if you use them in an armor, weapon or shield stat, what do you get ?
(The data is by no means complete, it includes what I thought is the most important and most interesting stuff.)

The data contains the follwing
- abilities (Dual Wielding, Willpower etc.)
- attributes (Strength, Dexterity, ...)
- resistances
- movement
- vitality
- crit. damage
- crit. chance
- armor value
- blocking chance *
- weapon damage
- some samples for spell damage **

Stuff like APMaximum, APStart and APRecovery is not included because I assume those are 'flat values' that are not calculated. OffenseRatingBoost and DefenseRatingBoost seem to be flat values too. SightBoost and HearingBoost are not included because noone ever cared about them (including myself).
"Value" is a "PreciseQualifier" with around 100 possible inputs, I was too lazy to take that data.
"Durability" is a "Qualifier", the actual durability value is simply a multiplication of that value with 10. ("DurabilityDegradeSpeed" seems untestable.)
Data for experience values is missing, could be important but is hard to collect.

* Blocking on shields can have too many different values, so I only took data for those that are used in the game. A quick test showed that blocking values go 'crazy' if you use higher values than those existing (above 100%), so don't ever use them.

** There are only a few samples for spell damage, because it would be way too much work if all possible combinations were to be included. The sample data for "Damage Multiplier" 100 and "Damage Range" 0 shows, that a formula similar to the one used for weapon damage calculation is used.


All data was taken for items from Act Part 0 to Act Part 30 (item level). The spell samples were taken with 11 spells "Damage" 0 to "Damage" 10 learned by a player using a levelup script, from level 1 up to Level 30. (Because I did not find a way to start a character at level 0 ;-)

The possible input values were taken from Data\Public\Generated\Structure\Modifiers.txt together with Data\Public\Generated\Structure\Base\ValueLists.txt for the allowed values.


The sheet contains a second page where you can 'experiment' with weapon damage. You can add values for 12 different combinations of
- Damage
- Damage Range
- DamageBoost
and see what the outcome will be. (DamageBoosts must be entered per level, same as the stats in Weapon.txt)

There is no formula behind the values on the experiment page, because I do not know it.
The data is filled in via simple data lookups.


Unfortunately, a data collection for potions is also missing, the effects of stats might be different there.

Joined: Jun 2015
F
enthusiast
OP Offline
enthusiast
F
Joined: Jun 2015
I dare to bump this thread because the data can be really helpful ;-)

Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
Yeah this was definitely an annoying part of the work. I had my own table for Experience this same way because that was absolutely critical in making my mods as they were standalone.

I only ran them up to level 7 or so though as my mods didn't go past that.

You can grant experience by straight numbers as well but then things don't scale as the system is intended. I only did that in a few places to ensure players who skipped content would have enough.

Joined: Jun 2015
F
enthusiast
OP Offline
enthusiast
F
Joined: Jun 2015
I think, in a recent thread, Raze posted some formula for Armor.

It must have been tons of work to get XP data.

Getting the data I took was only starting a new game with changed stats of some 30 or 31 swords that I had conveniently placed on Cyseal Beach where players start after char creation ;-)

... and the big surprise for D:OS2 will be: published formulas ... ;-)

If my math classes hadn't been so long ago, I might have figured out the damage formula which is used for both weapons and spells.
Now I'm too lazy to 'find the pattern' ;-)
I had always relied on some formula posted on some D:OS wiki before, but with the data, it wurned out that it must be wrong because it was only close for low levels/low damage values.

I used the data in my attempt to minimize the damage difference between weapon types in XC_Bags.

Joined: Mar 2018
A
stranger
Offline
stranger
A
Joined: Mar 2018
Awesome! Thank you for your work!

Joined: Mar 2018
A
stranger
Offline
stranger
A
Joined: Mar 2018
I'm starting to look through the data you collected. In your spreadsheet, for Abilities 1 for instance, you have the first column with numbers from -10 to 10:
[Linked Image]

What are they?

In "Weapon.txt", I can only find the following code for willpower type of boost:

Code
new entry "_WillPower_WeaponBoost"
type "Weapon"
using "_BOOSTS_Weapon"
data "Value" "4"
data "Willpower" "1"


Is it correct to assume the "1" in the last line in the above code corresponds to the "1" in the first column in your spreadsheet? Therefore, should I look at Row 16 for the values of this willpower boost for item level (act part) from 0 to 30, which turns out that they are all 1.

Thanks.

Last edited by Aminoacow; 04/05/18 11:50 PM.
Joined: Jun 2015
F
enthusiast
OP Offline
enthusiast
F
Joined: Jun 2015
Yes, correct.

The Act Parts (=Level) is always horizontal and the actual value is always the leftmost column.
For Bodybuilding and Willpower, you can see that the allowed values are between -10 and +10.

You can look into the file Data\Public\(Main or Shared)\Stats\Generated\Structure\Modifiers.txt and see that when put as boost on a weapon or armor, Willpower e.g. is a "Penalty Qualifier". You can look up what that is in Data\Public\(Main or Shared)\Stats\Generated\Structure\Base\ValueLists.txt.
A Penalty Qualifiers can have values between -10 and 10 and the special value "None" which I ignored for the spreadsheet (because it speaks for itself ;-)
If you use values outside the ones defined, the outcome is definitely not what you want. I tried that once but don't remember what was the result exactly but it's not what one might think.

You also find the defined "Act Parts" in ValueList.txt which I extended to 30 for the data collection because otherwise, it would not have been doable. The "Act Part" goes from 0 through 20 by default and is what makes the game's 'soft cap'. That means that you will not get any drops above item level 20 although you can level above that. Only with crafting, items with levels above 20 can be made.
(The reason I did not extend it above 25 in the XC_Bags mod is that for each additional Act Part, stats [and links] for all weapons, armors and shields have to be added.)

I have never experimented with extending other values ... like the above mentioned "Penalty Qualifier".

Since your work is a save game editor for the regular game and not some mod, all values above Act Part 20 are more theoretical than really of importance. What's important is, that you should stay within the bounds defined by ValueLists.txt when editing stuff.
(Players have to live with the fact that they can never really have an item with e.g. +3 to Willpower. I don't know if that was possible in a savegame because there, an item has already dropped. But most likely, the original value is stored there and the result is calculated again on load.)


If I'd be good enough in math, I'd have figured out the formulas Larian uses to calculate the final stats by looking at the numbers. But I'm not ;-) All I know is that the 'Act Part' and the 'Value' must be in them and that it's most likely linear stuff not some non linear functions because that would take too much computing power to calculate. (Calculating e.g. 'SIN(x) + COS(y)' takes more cpu cycles than something simple like '1 / (x + y)' and program speed is always important.)

Last edited by FrauBlake; 10/05/18 01:30 PM.
Joined: Mar 2018
A
stranger
Offline
stranger
A
Joined: Mar 2018
Thank you for your reply. It seems a lot of work to implement this feature. I don't know if I have time to look into it. I will see.

Originally Posted by FrauBlake
Players have to live with the fact that they can never really have an item with e.g. +3 to Willpower. I don't know if that was possible in a savegame because there, an item has already dropped.


Yes, it is possible. You only need to add 3 willpower boosts:D.


Last edited by Aminoacow; 14/05/18 09:36 PM.
Joined: Jun 2015
F
enthusiast
OP Offline
enthusiast
F
Joined: Jun 2015
Well, then it seems to be something different.

The values I recorded were taken by changing stats on items I picked up from some chest that had a fixed treasure table at Cyseal Beach in my mod testing version.
That means that these values came directly from the 'drop engine' not from a savegame.

Looks like the values are no longer recalculated nor checked when an item is loaded then.
... which makes sense because the actual values have to be restored and not applied by the RNG on load.

The engine also probably does not care anymore about the boost slot types that I described in your other thread. That also seems to be a thing for the 'drop engine' alone.


As said in your other thread, a 'handle repair' function would be the most awesome thing if it was possible to make it ;-)
On the other hand, the game is somehow old already and most people have already moved to Original Sin 2 and won't come back again ...


Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5