This event is triggered when the player attempts to brew a potion. It controls both the strength of the potion's effects, and if the brew is successful. These both use the player's stats, so the game combines them into one function. Because the potion effects are not determined yet, the potion data is not available. When using this event, use the example as a template for your own code.
--- @param e potionBrewSkillCheckEventData local function potionBrewSkillCheckCallback(e) end event.register(tes3.event.potionBrewSkillCheck, potionBrewSkillCheckCallback)
An event can be claimed by setting
true, or by returning
false from the callback. Claiming the event prevents any lower priority callbacks from being called.
alembic(tes3apparatus): Read-only. The alembic apparatus used to create the potion.
calcinator(tes3apparatus): Read-only. The calcinator apparatus used to create the potion.
ingredients(tes3ingredient): Read-only. Ingredients which were used to create the potion.
mortar(tes3apparatus): Read-only. The mortar apparatus used to create the potion.
potionStrength(number): Can be modified. The strength multiplier used to scale the potion effects. For each different effect, it can modify magnitude, duration, or both. This is initially equal to -1 if the potion failed to brew.
retort(tes3apparatus): Read-only. The retort apparatus used to create the potion.
success(boolean): Can be modified. Whether the brewing is successful.
Example: Vanilla potion skill check function
local function brewSkillCheck(e) local player = tes3.mobilePlayer local x = player.alchemy.current + 0.1 * player.intelligence.current + 0.1 * player.luck.current local roll = math.floor(100 * math.random()) if (roll <= x) then local fPotionStrengthMult = tes3.findGMST(tes3.gmst.fPotionStrengthMult).value e.potionStrength = fPotionStrengthMult * e.mortar.quality * x e.success = true else e.potionStrength = -1 e.success = false end end event.register(tes3.event.potionBrewSkillCheck, brewSkillCheck)
Created: August 10, 2021 18:38:47