Jump to content
WeCanVectorMan

Balance.txt with comments

Recommended Posts

Just my small contribution to the modding community.

Balance.txt with most of the lines commented on what they do.

Numbers in ( ) are default values from Enhanced Edition Challenge Mode v2.1.

Spoiler

local newBalanceValues = {
  AdjustCriticalDamageFactor = 2000,--crit dmg mult, 2000=200%
  AdjustDamageFactor = 1000,--general dmg mult?(1000)
  AdjustPvPFactor = 200,--pvp dmg mult?(200)
  AdjustSpellFactor = 1000,--general spelldmg mult?(1000)
  BasepointsMultiplier = 500,--base dmg/armor for items, higher - higher(500)
  ChanceForAdditionalSlots = 10000,--actually dont really know how exactly these affect sockets(450)
  ChanceForSlotToImprove = 10000,--actually dont really know how exactly these affect sockets(200)
  ChanceIncForSlotImprovePerRareLevel = 10000,--actually dont really know how exactly these affect sockets(50)
  ChanceToBecomeSlotItemForBlankItem = 10000,--actually dont really know how exactly these affect sockets(0)
  ChanceToBecomeSlotItemForMagicItem = 10000,--actually dont really know how exactly these affect sockets(0)
  ChanceToBecomeSlotItemForNormalItem = 10000,--actually dont really know how exactly these affect sockets(250)
  ChanceToBecomeSlotItemForUniqueItem = 10000,--actually dont really know how exactly these affect sockets(0)
  DiceRange = 1000,
  DurationBoost = 2000,
  DurationDot = 500,
  DurationLongDebuff = 3000,
  DurationShortDebuff = 1000,
  DurationStun = 300,
  DurationPulse = 150,
  DurationStunImmunity = 450,
  EffectCombatArtChance = 1,--something to do with proc chances on ca?(4)
  EffectWeaponChance = 1,--something to do with proc chances on weapons?(2)
  EffectWillpower = 25,--modifier for willpower effect, lower - higher(25)
  KillCountBase = 15,--unsure(15)
  KillCountInc = 2,--unsure(2)
  LifeAttribut = 50,--unsure(50)
  LifeBase = 260,--base hp for player/everyone?, higher - higher(130)
  LifeStep = 38,--base hp increase per vitality, higher - higher(19)
  MaxDistLevelXP = 15,
  MinDistLevelXP = 3,
  RareBonusDanger = 1000,--has something to do with drops I guess?(1000)
  RareMalusThreshold = 150,--no idea, but increasing this x10 made it so nobody can move(150)
  RareStart = 500,--unsure(500)
  RuneAmountTotal = 12500,--doesnt seem to affect anything related to runes(12500)
  SkillPivotPoint = 50,--skill efficiency modifier, lower - higher(100)
  SlotGoldPercentageImprovement = 200,--gold slot stat mod(15)
  SlotSilverPercentageImprovement = 100,--silver slot stat mod(7)
  SpellBaseDamage = 25,--base dmg mult? for all spelldmg, players/enemies(25)
  TEnergyDamageRate = 800,--dmg rate for tenergy exposure(800)
  TEnergyMutateChance = 750,--mutation chance for tenergy exposure(750)
  ThresholdGreyXP = 150,
  TopLevelCalc = 200,--max player? level, doesnt really work when increased(200)
  balanceLifeRegenerationDelayCombatFac = 50,--base delay for hp regen to start?(50)
  balanceLifeRegenerationDelayDangerFac = 1,
  balanceLifeRegenerationTime = 4500,--base time for hp to regen to full?(4500)
  balanceLevelToSkillFactor = 35,--something to do with overall max skill/ca levels?(350)
  RegenerationFactorSkin = 800,--supposedly ca regen for naked, but changing either this or next just locks your regen time to 5sec(800)
  RegenerationFactorArmorBase = 360,--supposedly ca regen for each armor piece(360)
  SpeedMin = 250,--min movespeed(500)
  SpeedMax = 4500,--max movespeed, doesnt really make much difference after 200%, only the animation speeds up(4500)
  SkillGroupPoints = 0,--amount of points you need in left skills for right skills to unlock(5)
  damBasepoints = 20,--base phys? dmg for everything(20)
  resBasepoints = 15,--base resistance for everything(15)
  RangeAggro = 1000,--general aggro range(1000)
  RangeXP = 3600,--range from a kill for experience gain(900)
  RangeArea = 400,
  RangeNear = 90,
  AdjustConstitutionFactor = 5,--affects constitution bonuses, lower - higher(5)
  InstantHealPortion = 500,
  ExpTeamBonus = 1333,
  ExpUpperCapPM = 125,
  ExpLowerCapPM = 850,
  ExpMinRatio = 50,
  balanceShieldRegDelayCombatFactor = 500,--base delay for combat shield regen(500)
  balanceShieldRegDelayDangerFactor = 2,--delay mult? for combat/danger shield regen(2)
  balanceShieldRegTime = 2000,--base time for shield regen(2000)
  balanceShieldAbsorptionSkill = 25,--base absorb for shield, higher - lower?(50)
  Mounted_ondeath_healthPM = 50,--hp % at which mounts "die"(50)
  NpcFightDamageDownScaling = 15,--npcVnpc dmg modifier(15)
  RangeAggroGrey = 125,--aggro range for greys(200)
  KillDropMulti = 1500,--unsure(1500)
  IsUsableByHero = 1000,--chance that dropped stuff will be for your class(700)
  TraderMaxCount = 800,--something to do with the amount of goods for trader(40)
  TraderOffer_MaxLifetime = 0,--time needed for traders to refresh their stuff(900)
  ExpMountFactor = 1000,--the % of experience your mount gets(1000)
  RangeClearFOW = 1800,--obvious(1800)
  LifeRegenerationDelayTime = 500,--delay in MS for hp to start regen after damage(500)
  dropTimeItemReserved = 120,--amount of time drops stay reserved for the one who killed the mob(30)
  dropTimeItemDestroy = 120,--amount of time drops persist(60)
  dropTimeItemUnloadedDestroy = 120,--amount of time "unloaded" drops persist(120)
  respawnTimeStandard = 1800,--amount of time it takes for mobs to respawn(1800)
  respawnTimeMPFactor = 1,--modifier for respawn time in MP(3)
  UpgradeStep = 1870,--unsure(1870)
  UpgradeStart = 3050,--unsure(3050)
  SwapRune_One = 125000,--cost of swapping one rune(125000)
  SwapRune_Two = 25000,--cost of swapping two runes(25000)
  SwapRune_Three = 5000,--cost of swapping three runes(5000)
  SwapRune_Four = 500,--cost of swapping four runes(500)
  SwapRune_Foreign = 1500,--cost if the rune is for other class(1500)
  ForgeSlot_BronceFactor = 1000,--bronze slot stat mod(1000)
  ForgeSlot_SilverFactor = 2000,--silver slot stat mod(1070)
  ForgeSlot_GoldFactor = 3000,--gold slot stat mod(1150)
  PriceAdjustment = 5,--affects prices, works pretty wonky(5)
  PriceLeveldiscount = 1,--affects prices, works pretty wonky(1)
  PriceShredder = 15,--affects prices, works pretty wonky(15)
  PriceSlotfactor = 250,--affects prices, works pretty wonky(250)
  UBmean = 500,--survival bonus calculation stuff(500)
  UBpivot = 5400,--survival bonus calculation stuff(21600)
  UBquot_attr = 1000,--SB stat increase,3000=33%,2000=50%,1500=66%,1000=100%,750=132/133%,500=200%(3000)
  DropQuestStart = 10,--unsure(10)
  DropQuestQuot = 120,--unsure(120)
  CAregenItemfactor = 500,--combat art regen penalty/bonus from gear?(500)
  RegenerationFactorArmorScaling = 1250,--base penalty/bonus for ca regen?(1250)
  Mount_Regenburden_Warhorse = 500,--base regenpenalty for horses(500)
  Mount_Regenburden_Ridehorse = 300,--base regenpenalty for class mounts(300)
  RangeDistance = 525,--range of ranged attacks?(525)
  RangeMidrange = 300,
  RangePickupLoot = 230,--obvious(200)
  SpellResistFactor = 700,--mult for spell resist?(700)
  SkillAttackSpeedQuot = 4,--attack speed bonus from skills, lower - higher(5)
  SkillMoveSpeedQuot = 5,--move speed bonus from skills, lower - higher(15)
  DurationPotionSmall = 0,
  DurationPotionMiddle = 0,
  DurationPotionBig = 0,
  ZRareExpectation15 = 17,--drop rates for stuff(2)
  ZRareExpectation14 = 28,--(6)
  ZRareExpectation13 = 33,--(14)
  ZRareExpectation12 = 69,--(16)
  ZRareExpectation11 = 69,--(24)
  ZRareExpectation10 = 69,--(34)
  ZRareExpectation09 = 69,--(46)
  ZRareExpectation08 = 100,--(58)
  ZRareExpectation07 = 100,--(72)
  ZRareExpectation06 = 100,--(88)
  ZRareExpectation05 = 100,--(106)
  ZRareExpectation04 = 100,--(124)
  ZRareExpectation03 = 100,--(144)
  ZRareExpectation02 = 100,--(166)
  ZRareExpectation01 = 250,--(456)
  ZRareExpectation00 = 1000,--drop rates for stuff
  ZRareBasepoints15 = 1350,--base stat rates for stuff per tier, dmg/armor
  ZRareBasepoints14 = 1320,
  ZRareBasepoints13 = 1290,
  ZRareBasepoints12 = 1260,
  ZRareBasepoints11 = 1230,
  ZRareBasepoints10 = 1200,
  ZRareBasepoints09 = 1175,
  ZRareBasepoints08 = 1150,
  ZRareBasepoints07 = 1125,
  ZRareBasepoints06 = 1100,
  ZRareBasepoints05 = 1080,
  ZRareBasepoints04 = 1060,
  ZRareBasepoints03 = 1040,
  ZRareBasepoints02 = 1020,
  ZRareBasepoints01 = 1000,
  ZRareBasepoints00 = 750,
  ZRareBonusamount14 = 20,--max amount of bonus stats on stuff?(4)
  ZRareBonusamount13 = 20,--(4)
  ZRareBonusamount12 = 20,--(4)
  ZRareBonusamount15 = 20,--(4)
  ZRareBonusamount11 = 20,--(4)
  ZRareBonusamount10 = 20,--(4)
  ZRareBonusamount09 = 20,--(3)
  ZRareBonusamount08 = 20,--(2)
  ZRareBonusamount07 = 20,--(2)
  ZRareBonusamount06 = 20,--(2)
  ZRareBonusamount05 = 20,--(1)
  ZRareBonusamount04 = 20,--(1)
  ZRareBonusamount03 = 20,--(0)
  ZRareBonusamount02 = 20,--(0)
  ZRareBonusamount01 = 20,--(00
  ZRareBonusamount00 = 20,--max amount of bonus stats on stuff?(0)
  EffectSkillChanceQuot = 4,--damage lore effect chance, lower - higher(5)
  RangeAggroBoss = 750,--aggro range for bosses(850)
  DamScaleIncMax = 1250,
  DamScaleRatioMin = 200,
  DamScaleRatioMax = 350,
  IsRuneForHero = 1000,--chance that dropped rune is for your class(400)
  DropMaxRandomRare = 12,--max tier that dropped gear could be?(12)
  DropPowerupRare = 4,
  ExpFac0 = 110,
  ExpFac1 = 200,
  ExpFac2 = 150,
  ExpFac3 = 40,
  ExpFac4PM = 1000,
  ExpFacAdjust = 200,
  attrSdam_fact = 400,
  attrWdam_fact = 400,
  AdjustRegenFactor = 1000,--regen factor for abilities(1000)
  TraderOfferUpperRareBase = 15,--max tier that sold gear could be? unsure(7)
  PotionHealCooldown = 1000,--cooldown for potions(1000)
  UBspawn_fact = 525,--enemy level increase from SB(175)
  Forge_PricePerSlot = 500,--price mult for forging(500)
  RuneMalusThreshold = 150,--doesnt seem to be doing anything(150)
  ExpLS100 = 985,--experience penalty for higher levels(985)
  ExpLS125 = 980,
  ExpLS150 = 975,
  ExpLS175 = 970,
  SkillMagicFindFactor = 8000,--enhanced perception drop bonus(400)
  NumSectors = 4183,
  PlagueImmunityFactor = 1200,
  AddOn_RegenFactor = 1500,
}
mgr.setBalanceValues(newBalanceValues);

local beValues = {
  NORMAL_STANDARD = 125,--chance of a drop for normal enemies(350)
  NORMAL_RUNE = 12,--chance of rune drop for normals(10)
  CHAMP_STANDARD = 1250,--chance of drop for champs(700)
  CHAMP_RUNE = 125,--chance of rune drops for champs(40)
  BOSS_STANDARD = 12500,--chance of drop for bosses(1000)
  BOSS_RUNE = 25000,--chance of rune drops for bosses(500)
  EXTRAGOLD = 100,--chance of extra gold drop(0)
  EXTRAPOTION = 100,--chance of extra potion drop(0)
  EXTRARUNE = 100,--chance of extra rune drop(0)
  Trader_Item = 64000,--apparently the amount of items traders can possibly get(3300)
  Trader_Many = 32000,--apparently the amount of items traders can possibly get(16000)
  Trader_SpecialOffer = 32000,--apparently the amount of items traders can possibly get(0)
  Well_Potion = 2000,--chance for potions from wells and like crates, each 1k is one pot(1000)
  QUEST_UNIQUE = 10000,--chance for quests with unique rewards(1000)
  SUBFAMDROP_LOWCHANCE = 20,--(10)
  SUBFAMDROP_HIGHCHANCE = 200,--(100)
}
mgr.setBalanceBase (beValues);


local basetables = {

  tableRows = 16,

-- begin of some hard-coded data
  EFFECTDURATION = {500,3000,5000,5000},--status effect duration per diff
-- end of hard-coded data
  QuestExplow = {320,640,1280,2560,5120},--min experience for quest per diff
  QuestGoldlow = {320,640,1280,2560,5120},--min gold for quest per diff
  SpellFactorDiff = {800,1000,1200,1500,2000},--enemy? spellpower per diff
  QuestGoldmax = {32000,64000,128000,256000,512000},--max gold for quest per diff
  DefenseFactorDiff = {650,1000,1500,3000,6000},--enemy? defence per diff
  QuestExpmax = {32000,64000,128000,256000,512000},--max experience for quest per diff
  MP_experience = {333,1250,1325,1550,1825},--experience modifier per player ingame
  NPC_speedfac_any = {750,1000,1150,1200,1275},--additional npc speed per diff
  AttackFactorDiff = {750,1000,1750,2750,4500},--attack value mult per diff
  DamageFactorDiff = {750,1000,1250,1500,2000},--damage value mult per diff
  LifeFactorDiff = {1000,2000,3000,4500,6000},--hp mult per diff
  MP_damage = {1220,1050,1100,1160,1220},--enemy dmg per player
  MP_lifeHP = {2650,1300,1650,2100,2650},--enemy hp per player
  MP_EShieldHP = {2650,1300,1650,2100,2650},--enemy shields per player
  MP_combatvalue = {1460,1100,1210,1330,1460},--enemy combat values per player
  MP_armor = {1460,1100,1210,1330,1460},--enemy armor per player
  Spawn_OffsetLow = {0,0,40,70,110},--level offset min for spawns per diff
  Spawn_OffsetHigh = {0,100,150,200,200},--level offset max for spawns per diff
  Spawn_FactorPM = {1350,1100,1175,1250,1350},--level mult per player
  PriceFactor = {700,1000,1400,1900,2500},--modifier on prices per diff, both buy and sell
  RuneLevel = {1,1,20,35,50},--rune itmlvl per diff
  Potion_big_duration = {9000,9000,9000,9000,9000},--big pot duration per diff
  Potion_small_duration = {4500,4500,4500,4500,4500},--small pot duration per diff
  Potion_middle_duration = {7000,7000,7000,7000,7000},--mid pot duration per diff
  NPC_attrWdam_fact = {1500,2100,2250,2500,3000},--not really sure
  MP_intensity = {2860,2200,2410,2630,2860},--seems to be spell intensity per player
  LevelCapDiff = {60,100,140,180,200},--level cap per diff
  BlacksmithSkillForDiff = {255,255,255,255,255},--the level of npc blacksmith arts per diff
  LevelMinForDiff = {1,1,60,100,140},--min level for diff to unlock
  AllEnemy_lvl = {1,10,20,200,250},--not really sure
  Enemy_armor = {1000,4000,6000,8000,10000},--enemy armor levels per diff
  Enemy_weapondamage = {1000,2200,3300,4400,6600},--enemy weapon damage per diff
  Enemy_spelldamage = {1000,2200,3300,4400,6600},--enemy spell damage per diff
  SpellAttackFactorMT = {1000,1330,2000,2000},--spell attack value mult per ?
  SpellDefenseFactorMT = {1000,1750,2500,2500},--spell defence value mult per ?
  HitFactorMT = {1000,1500,2000,2000},--attack value mult per ?
  DamageFactorMT = {1000,1200,1400,1400},--damage value mult per ?
  LifeQuotientMT = {2500,800,125,125},--unsure
}
mgr.setBaseTables(basetables);

local subfamSlots =
{
  {"SUBFAM_HORSE_SADDLE",2},
  {"SUBFAM_SEC_ARMSHIELD",3},
  {"SUBFAM_SEC_FOCUSITEM",2},
  {"SUBFAM_PRI_SWORD",3},
  {"SUBFAM_PRI_FISTWEAPON",2},
  {"SUBFAM_PRI_SHORTSWORD",3},
  {"SUBFAM_PRI_SABER",3},
  {"SUBFAM_PRI_DAGGER",2},
  {"SUBFAM_PRI_CLUB",3},
  {"SUBFAM_PRI_HAMMER",3},
  {"SUBFAM_PRI_AXE",3},
  {"SUBFAM_PRI_WHIP",2},
  {"SUBFAM_PRI_CHAINWEAPON",2},
  {"SUBFAM_PRI_BarstewardSWORD",3},
  {"SUBFAM_PRI_2H_AXE",4},
  {"SUBFAM_PRI_2H_HAMMER",4},
  {"SUBFAM_PRI_2H_SWORD",4},
  {"SUBFAM_PRI_JAVELIN",4},
  {"SUBFAM_PRI_HALBERD",4},
  {"SUBFAM_PRI_MAGESTAFF",3},
  {"SUBFAM_PRI_ENERGY_PISTOL",2},
  {"SUBFAM_PRI_ENERGY_WEAPON",3},
  {"SUBFAM_PRI_SHORTBOW",3},
  {"SUBFAM_PRI_LONGBOW",4},
  {"SUBFAM_PRI_THROW_DAGGER",2},
  {"SUBFAM_PRI_THROW_STAR",2},
  {"SUBFAM_ARMOR_HELMET",3},
  {"SUBFAM_ARMOR_SHOULDER",2},
  {"SUBFAM_ARMOR_CHEST",4},
  {"SUBFAM_ARMOR_ARM",1},
  {"SUBFAM_ARMOR_HAND",1},
  {"SUBFAM_ARMOR_LEG",1},
  {"SUBFAM_ARMOR_BOOT",1},
  {"SUBFAM_ARMOR_WINGS",2},
  {"SUBFAM_PRI_POLE",4},
  {"SUBFAM_ARMOR_BELT",4},
  {"SUBFAM_ARMOR_CLOTH_HEAD",3},
  {"SUBFAM_ARMOR_CLOTH_SHOULDER",2},
  {"SUBFAM_ARMOR_CLOTH_ARM",1},
  {"SUBFAM_ARMOR_CLOTH_CHEST",4},
  {"SUBFAM_ARMOR_CLOTH_LEG",1},
  {"SUBFAM_ARMOR_HEAD_TG",3},
  {"SUBFAM_PRI_MAGESTAFF_2H",4},
  {"SUBFAM_PRI_BLOWGUN",3},
  {"SUBFAM_MOUNT_CONTROL",2},
  {"SUBFAM_MOUNT_PROTECT",2},
  {"SUBFAM_WEAPON_BATTERY",2},
}
mgr.loadSubfamSlots(subfamSlots)


local subfamDroplists =
{
  {"SUBFAM_LIFE_ANIMAL",1501},
  {"SUBFAM_LIFE_ANIMAL_ATMO",1502},
  {"SUBFAM_LIFE_BARBARIAN",1503},
  {"SUBFAM_LIFE_DEMON",1504},
  {"SUBFAM_LIFE_DRAGON",1505},
  {"SUBFAM_LIFE_ENERGY",1506},
  {"SUBFAM_LIFE_HIGHELF",1507},
  {"SUBFAM_LIFE_HUMAN",1508},
  {"SUBFAM_LIFE_INSECT",1509},
  {"SUBFAM_LIFE_MECHANICAL",1510},
  {"SUBFAM_LIFE_MONSTER",1511},
  {"SUBFAM_LIFE_ORC",1512},
  {"SUBFAM_LIFE_PLANT",1513},
  {"SUBFAM_LIFE_REPTILE",1514},
  {"SUBFAM_LIFE_T_MUTATION",1515},
  {"SUBFAM_LIFE_UNDEAD",1516},
  {"SUBFAM_LIFE_DRYAD",1518},
  {"SUBFAM_TRAP_TURRET",1517},
  {"SUBFAM_TRAP_SWITCH",1517},
  {"SUBFAM_TRAP_AREA",1517},
  {"SUBFAM_TRAP_PHYSICS",1517},
}
mgr.loadSubfamDroplists(subfamDroplists)


local shrinkheadMinionMap =
{
	{"SUBFAM_LIFE_ANIMAL",1527,1528,1529},
	{"SUBFAM_LIFE_BARBARIAN",1562,1561,1563},
	{"SUBFAM_LIFE_DRAGON",1538,1537,1539},
	{"SUBFAM_LIFE_HIGHELF",1535,1534,1536},
	{"SUBFAM_LIFE_HUMAN",1549,1548,1550},
	{"SUBFAM_LIFE_INSECT",1588,1589,1590},
	{"SUBFAM_LIFE_MONSTER",1543,1542,1541},
	{"SUBFAM_LIFE_ORC",1558,1557,1559},
	{"SUBFAM_LIFE_T_MUTATION",1555,1554,1556},
	{"SUBFAM_LIFE_UNDEAD",1545,1544,1546},
	{"SUBFAM_LIFE_DRYAD",1552,1551,1553},

}
mgr.loadShrinkheadMinionMap(shrinkheadMinionMap)

 

 

  • Like! 1
  • Thanks! 1

Share this post


Link to post
Share on other sites

This topic was addressed in some detail in the thread above. I may help to clarify many of the lines about which you were uncertain. Thank you for your contribution, VCVM, and welcome to the community here.

:gogo:

  • Like! 1
  • Thanks! 1

Share this post


Link to post
Share on other sites

Actually used some info from that thread in my testing.

And any additional info would be appreciated of course.

Share this post


Link to post
Share on other sites

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

×