Skip to content

tes3alchemy⚓︎

An alchemy game object.

This type inherits the following: tes3item, tes3physicalObject, tes3object, tes3baseObject

Properties⚓︎

autoCalc⚓︎

If set, the value of the object is automatically calculated.

Returns:

  • result (boolean)

blocked⚓︎

The blocked state of the object.

Returns:

  • result (boolean)

boundingBox⚓︎

The bounding box for the object.

Returns:


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:

Example: Determining if a potion is hostile

The following function returns true if the spell contains at least one hostile effect. This criterion can be considered subjective, but that rule is also used by the game to determine if a use of the spell 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⚓︎

The alchemy item's flags.

Returns:

  • result (number)

icon⚓︎

The path to the object's icon. Relative to Data Files\\icons\\.

Returns:

  • result (string)

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)

mesh⚓︎

The path to the object's mesh. Relative to Data Files\\meshes\\.

Returns:

  • result (string)

modified⚓︎

The modification state of the object since the last save.

Returns:

  • result (boolean)

name⚓︎

The player-facing name for the object.

Returns:

  • result (string)

nextInCollection⚓︎

The next object in parent collection's list.

Returns:


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:


owningCollection⚓︎

The collection responsible for holding this object.

Returns:


persistent⚓︎

The persistent flag of the object.

Returns:

  • result (boolean)

previousInCollection⚓︎

The previous object in parent collection's list.

Returns:


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:


sceneNode⚓︎

The scene graph node for this object.

Returns:


script⚓︎

The script that runs on the object.

Returns:


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)

stolenList⚓︎

A list of actors that the object has been stolen from.

Returns:


supportsLuaData⚓︎

If true, references of this object can store temporary or persistent lua data.

Returns:

  • result (boolean)

value⚓︎

The value of the object. For this object type, its maximum value is 65535. Larger numbers will overflow.

Returns:

  • result (integer)

weight⚓︎

The weight of the object.

Returns:

  • result (number)

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:


getActiveEffectCount⚓︎

Returns the amount of effects the tes3alchemy object has.

local count = myObject:getActiveEffectCount()

Returns:

  • count (number)

getFirstIndexOfEffect⚓︎

Returns the index of a first effect of a given effectId in the parent tes3alchemy object.

local index = myObject:getFirstIndexOfEffect(effectId)

Parameters:

Returns:

  • index (integer): Returns 0-based index. Because Lua's arrays are 1-based, to index the potion's effects array with the return value add 1.