Skip to content


This event is raised when an enchantment price is being determined.

--- @param e calcEnchantmentPriceEventData
local function calcEnchantmentPriceCallback(e)
event.register(tes3.event.calcEnchantmentPrice, calcEnchantmentPriceCallback)


An event can be claimed by setting e.claim to true, or by returning false from the callback. Claiming the event prevents any lower priority callbacks from being called.

Event Data⚓︎

  • basePrice (number): Read-only. The base price of the enchantment, before any disposition or event modifications.
  • castType (tes3.enchantmentType): Read-only. The enchantment cast type. Maps to tes3.enchantmentType.*.
  • effects (table[]): Read-only. An array of the effects being enchanted onto the item. This includes the effect object, magnitudeLow/magnitudeHigh values, the area, duration, and range. The attribute and skill values are available as appropriate.
  • item (tes3item): Read-only. The item, if any, that is being enchanted.
  • itemData (tes3itemData): Read-only. The item data for the enchanted item.
  • mobile (tes3mobileActor): Read-only. The mobile actor for who is offering the enchantment service. May not always be available.
  • price (number): The price of the enchantment. This can be modified.
  • reference (tes3reference): Read-only. A shortcut to the mobile's reference. May not always be available.
  • soul (tes3actor): Read-only. The soul contained in the soul gem.
  • soulGem (tes3misc): Read-only. The soul gem being used to make the enchantment.
  • soulGemData (tes3itemData): Read-only. The soul gem's associated item data.