tes3enchantment⚓︎
An enchantment game object.
This type inherits the following: tes3object, tes3baseObject
Properties⚓︎
blocked
⚓︎
The blocked state of the object.
Returns:
result
(boolean)
castType
⚓︎
The enchantment's cast type. Maps to tes3.enchantmentType
constants.
Returns:
result
(tes3.enchantmentType)
chargeCost
⚓︎
The cost of using the enchantment.
Returns:
result
(number)
deleted
⚓︎
Read-only. The deleted state of the object.
Returns:
result
(boolean)
disabled
⚓︎
Read-only. The disabled state of the object.
Returns:
result
(boolean)
effects
⚓︎
Read-only. An array-style table of the tes3effect
data on the object.
Returns:
result
(tes3effect[])
Example: Determining if an enchantment is hostile
The following function returns true
if the enchantment contains at least one hostile effect. This criterion can be considered subjective, but that rule is also used by the game to determine if use of enchantment on an NPC is considered an offense.
--- @param magicSource tes3spell|tes3enchantment|tes3alchemy
local function isSpellHostile(magicSource)
for _, effect in ipairs(magicSource.effects) do
if (effect.object.isHarmful) then
-- If one of the spell's effects is harmful, then
-- `true` is returned and function ends here.
return true
end
end
-- If no harmful effect was found then return `false`.
return false
end
flags
⚓︎
A bit field for the enchantment's flags.
Returns:
result
(number)
id
⚓︎
Read-only. The unique identifier for the object.
Returns:
result
(string)
isLocationMarker
⚓︎
True if this object is an editor marker for a gameplay location. These include travel, intervention, prison, door, and interior north markers. Markers are invisible in-game.
Returns:
result
(boolean)
maxCharge
⚓︎
The maximum charge for the associated enchantment.
Returns:
result
(number)
modified
⚓︎
The modification state of the object since the last save.
Returns:
result
(boolean)
nextInCollection
⚓︎
The next object in parent collection's list.
Returns:
result
(tes3object)
objectFlags
⚓︎
Read-only. The raw flags of the object.
Returns:
result
(number)
objectType
⚓︎
Read-only. The type of object. Maps to values in tes3.objectType
.
Returns:
result
(tes3.objectType)
owningCollection
⚓︎
The collection responsible for holding this object.
Returns:
result
(tes3referenceList)
persistent
⚓︎
The persistent flag of the object.
Returns:
result
(boolean)
previousInCollection
⚓︎
The previous object in parent collection's list.
Returns:
result
(tes3object)
scale
⚓︎
The object's scale. The value range is (0, 10).
Returns:
result
(number)
sceneCollisionRoot
⚓︎
The scene graph node for this object's physics collision, if its mesh has a root collision node.
Returns:
result
(niNode)
sceneNode
⚓︎
The scene graph node for this object.
Returns:
result
(niNode)
sourceless
⚓︎
The soruceless flag of the object.
Returns:
result
(boolean)
sourceMod
⚓︎
Read-only. The filename (including the extension) of the mod that owns this object. It has nil
value if the object was anything other than loaded from an ESP or ESM file.
Returns:
result
(string)
supportsLuaData
⚓︎
If true, references of this object can store temporary or persistent lua data.
Returns:
result
(boolean)
Methods⚓︎
__tojson
⚓︎
Serializes the object to json.
local string = myObject:__tojson()
Returns:
string
(string)
createCopy
⚓︎
Creates a copy of this object.
local newObject = myObject:createCopy({ id = ..., addToObjectList = ..., sourceless = ... })
Parameters:
params
(table)id
(string): Optional. The new object's ID. If one is not provided, a randomly generated one will be used.addToObjectList
(boolean): Default:true
. If true, the object will be added to the data handler. If this is false, the new object may not have a randomly generated ID. Do not use this without knowing the implications.sourceless
(boolean): Default:false
. If true, the object will be made sourceless, and will not be serialized to the save game. If the object is copied outside of a save game, the object will always be sourceless.
Returns:
newObject
(tes3enchantment)
getActiveEffectCount
⚓︎
Returns the amount of effects the tes3enchantment
object has.
local count = myObject:getActiveEffectCount()
Returns:
count
(number)
getFirstIndexOfEffect
⚓︎
Returns the index of a first effect of a given effectId in the parent tes3enchantment
object.
local index = myObject:getFirstIndexOfEffect(effectId)
Parameters:
effectId
(tes3.effect, integer): The effectId to perform a check for. Maps totes3.effect
constants, including magic effects added withtes3.addMagicEffect()
.
Returns:
index
(integer): Returns 0-based index. Because Lua's arrays are 1-based, to index the enchantment'seffects
array with the return value add 1.