Just for reference this is the Bioware documentation for Item Cost:4.4. Cost Calculation
The cost of an item is determined by the following formula:ItemCost = [BaseCost + 1000*(Multiplier^2 - NegMultiplier^2) + SpellCosts]*MaxStack*BaseMult + AdditionalCost
4.4.1. Base Cost
- BaseMult = ItemMultiplier column value from baseitems.2da.
- AdditionalCost = AddCost Field from the Item Struct.
- and the other terms are as defined in the following subsections:
BaseCost = BaseCost column value from baseitems.2da for all items except armor.
For armor, BaseCost is the cost in armor.2da for the armor's base AC. The armor's base AC is the
ACBONUS from parts_chest.2da, using the part number of the chest as the index into parts_chest.2da.4.4.2. Multipliers
Multiplier is the sum of the costs of all the Item Properties whose costs are positive. That is:
NegMultiplier is the sum of the costs of all Item Properties whose costs are negative.
If an Item Property has a PropertyName of 15 (Cast Spell), then omit it from the
Multiplier/NegMultiplier totals. It will be handled when calculating the SpellCosts instead.
To calculate the cost of a single Item Property, use the following formula:ItemPropertyCost = PropertyCost + SubtypeCost + CostValue
Add the ItemProperty's cost to the Multiplier total if it is positive. Add it to the NegMultiplier total if it
Note that Item Property Params do not affect Item Property cost.
The PropertyCost, SubtypeCost, and CostValue terms are obtained as described below.PropertyCost
In itempropdef.2da, get the floating point value in the Cost column, at the row indexed by the
PropertyName Field of the ItemProperty Struct. If the Cost column value is ****, treat it as 0. This
floating point value is the PropertyCost.SubtypeCost
If the PropertyCost obtained above from itempropdef.2da was 0, then get the ResRef in the
SubTypeResRef column of itempropdef.2da, at the row indexed by the 2PropertyName Field of the
ItemProperty Struct. This is the resref of the subtype table 2da.
In the subtype 2da, get the floating point value in the Cost column at the row indexed by the Subtype
Field of the ItemProperty Struct. This floating point value is the SubtypeCost.
Only get the SubtypeCost if the PropertyCost was 0. If the PropertyCost was greater than 0, then the
SubtypeCost is automatically 0 instead.CostValue
In iprp_costtable.2da, get the string in the Name column at the row indexed by the CostTable Field in
the ItemProperty Struct. This is the ResRef of the cost table 2da.
In the cost table, get the floating point value in the Cost column in the row indexed by the CostValue
Field in the ItemProperty Struct. This floating point value is the CostValue.4.4.3. Cast Spell Costs
To calculate the cost of a single Cast Spell Item Property, use the following formula:CastSpellCost = (PropertyCost + CostValue)* SubtypeCost
The PropertyCost, SubtypeCost, and CostValue terms are obtained in the same way as for non-
CastSpell Item Properties.
After calculating all the CastSpellCost values for all the Cast Spell Item Properties, modify them as
- Most expensive: multiply by 100%
- Second most expensive: multiply by 75%
- All others: multiply by 50%
After adjusting the CastSpellCosts, add them up to obtain the total SpellCosts value. Use the total
SpellCosts to calculate the total ItemCost using the formula given at the very beginning of Section 4.4.