Jump to content

Some small questions about blueprint.txt


nerasw

Recommended Posts

Im new to modding itself and especially Sacred 2, so my question might be stupid but I couldn't find the answer in old threads and a lot of old links in them are dead

so, whats the difference between: 

  bonusgroup4 = {751,1000,10,9,0}, -- Gold Slot
  bonusgroup5 = {859,1000,10,9,0}, -- SB_neut_slot_gold2
  bonusgroup6 = {860,1000,10,9,0}, -- SB_neut_slot_gold3

and:

bonusgroup4 = {751,1000,10,9,0}, -- Gold Slot
bonusgroup5 = {751,1000,10,9,0}, -- Gold Slot
bonusgroup6 = {751,1000,10,9,0}, -- Gold Slot

both result in a 3 gold slots on an item

is '1000' number is just multiplier? (1000 = x1)

  • Like! 1
Link to comment
  • The title was changed to Some small questions about blueprint.txt

Flix answered that:

On 11/24/2020 at 11:25 PM, Flix said:

The bonusgroup parameters are: bonus ID, bonus value, minimum item level, minimum item tier, minimum difficulty level.

The first parameter is the bonusgroup ID, Flix has been a little bit ambiguous here. The bonusgoups are defined in blueprint.txt as well:

newBonusgroup = {
  id = 751,
  name = "SB_neut_slot_gold1                                                                                                              ",
  bonuslist = { 758,},
}
mgr.createBonusgroup(751, newBonusgroup);

newBonusgroup = {
  id = 859,
  name = "SB_neut_slot_gold2                                                                                                              ",
  bonuslist = { 758,},
}
mgr.createBonusgroup(859, newBonusgroup);

newBonusgroup = {
  id = 860,
  name = "SB_neut_slot_gold3                                                                                                              ",
  bonuslist = { 758,},
}
mgr.createBonusgroup(860, newBonusgroup);

You see, all these bonusgroups have only one bonus, and it's the same for all of them, also defined in blueprint.txt:

newBonus = {
--  name = "sb_neut_slot_gold",
  rating = 10,
  basedonskill = "SKILL_INVALID",
  type = "BONUS_SLOT",
  spez = "SLCAT_GOLD",
  spez2 = "",
  usagebits = 65535,
  minconstraints = {10,5,0},
  difficultyvaluerange0 = {0,1,1},
  difficultyvaluerange1 = {1,1,1},
  difficultyvaluerange2 = {2,1,1},
  difficultyvaluerange3 = {3,1,1},
  difficultyvaluerange4 = {4,1,1},
}
mgr.createBonus(758, newBonus);

So the only difference is that it's calling different bonusgroups, but that difference doesn't have an ingame effect. We can only speculate on why the devs have defined the same bonusgroup multiple times. The Various Questions to blueprint.txt and txt file spreadsheet downloads topic should be a good source of information for further questions about blueprint.txt for you, Flix and Dimitrius154 have done a great job at answering my questions there.

  • Thanks! 1
Link to comment

Oh, and the bonus multipliers for silver and gold sockets are set in balance.txt, not blueprint.txt.

These set the boni stated in the slot description:

  SlotGoldPercentageImprovement = 15,
  SlotSilverPercentageImprovement = 7,

These are the actual multipliers:

  ForgeSlot_BronceFactor = 1000,
  ForgeSlot_SilverFactor = 1070,
  ForgeSlot_GoldFactor = 1150,

So if those don't match, the description will state something different than what the socket actually does.

Edited by Lindor
  • Respect! 1
Link to comment

Thank you for answer!

 

2 hours ago, Lindor said:

The Various Questions to blueprint.txt and txt file spreadsheet downloads topic should be a good source of information for further questions about blueprint.txt for you, Flix and Dimitrius154 have done a great job at answering my questions there.

I saw it, actually helped me a lot. But still a lot to understand. I wasnt sure about sockets, now I can see I can just spam 751 bonusgroup for gold slots. At 1st I thought it must be in order of 751-859-860

3 hours ago, Lindor said:

Flix answered that:

The bonusgroup parameters are: bonus ID, bonus value, minimum item level, minimum item tier, minimum difficulty level.

 

yep, just wanna be sure I understood it right. Is it linear? 1000=x1?

Link to comment

Just noticed, I forgot these lines for balance.txt:

  ForgeSlot_BronceFactor = 1000,
  ForgeSlot_SilverFactor = 1070,
  ForgeSlot_GoldFactor = 1150,

Afaik those values must match the other two lines I gave in order to work. I'll edit that in.
This however leads to the answer to the following question:

1 hour ago, nerasw said:

1000=x1?

I general, for any number that sets the value of some bonus you always divide by 10, whether it being in spells.txt, blueprint.txt or balance.txt. So ForgeSlot_SilverFactor = 1070 means 107% which is a 7% improvement, so the value is SlotSilverPercentageImprovement = 7. All values must be interpreted as percentages, if not it can lead to misconceptions. Here's an example:

  name = "miniset_se_seraish_shoulder",
  bonusgroup0 = {511,1450,10,9,0},

newBonusgroup = {
  id = 511,
  name = "SB_addskill_CA_any                                                                                                              ",
  bonuslist = { 366,},
}
mgr.createBonusgroup(511, newBonusgroup);

newBonus = {
--  name = "sb_addskill_CA_any",
  rating = 27,
  basedonskill = "SKILL_INVALID",
  type = "BONUS_SKILL",
  spez = "SKILL_CA",
  spez2 = "",
  usagebits = 65535,
  minconstraints = {10,5,0},
  difficultyvaluerange0 = {0,15,90},
  difficultyvaluerange1 = {1,18,110},
  difficultyvaluerange2 = {2,21,130},
  difficultyvaluerange3 = {3,25,160},
  difficultyvaluerange4 = {4,30,180},
}
mgr.createBonus(366, newBonus);

Would be pretty wierd if the seraish shoulder would give +145 to all Combat Art skills. Instead it gives +145% of the (hardcoded) base value of the bonus which is one, so a level 1 bronze tier item with no other scaling factors would give +1.45 to all CA skills.
Another example would be the "et_spelldamage_xxx" and "et_dotdamage_xxx" tokens. These can be interpreted as flat values, but in reality they set the percentage of the (hardcoded) base value of the bonus, which for these tokens is just one.
(Note: Not that it makes much of a difference, one could also interpret these as flat values, but then the divide-by-10-rule wouldn't apply anymore for all boni equally. It's just easier to understand.)

Also keep in mind that the scaling is not set in blueprint.txt, it's dependend on how the bonus is used. Bonusgroups e.g. scale with difficulty while just the flat boni used e.g by tokens don't. The scaling is either hardcoded or defined for each different spell in spells.txt for tokens and in blueprint.txt for everything else. So the answer to the question

1 hour ago, nerasw said:

Is it linear?

is: it depends.

There are also some exceptions: If you look up the Tokens in spells.txt, there are multiple tokens similar to this:
et_boost_to_buff -- CA is changed to permanent buff, if x = 1000

Now after all these explanations, we can conclude that in this particular case, the 1000 either means a 100% chance that the gold socket appears or it only appears if the value is 1000. Either way, there's no point in changing that value.

One last note: there are some tokens which are explained in the wiki by braking the divide-by-10-rule. E.g.
et_duration_sec -- (x+y*calvl)/100 seconds duration for the combat art or effects from the combat art
If it would instead say (x+y*calvl)/10 time units where a time unit is a tenth of a second, it would make more sense for the sake of consistency.

Edited by Lindor
  • Like! 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up