tes3npc⚓︎
An NPC object that has not been cloned. Typically represents the raw information edited in the construction set.
This type inherits the following: tes3actor, tes3physicalObject, tes3object, tes3baseObject
Properties⚓︎
actorFlags
⚓︎
Read-only. A number representing the actor flags. Truly a bit field.
Returns:
result
(number)
aiConfig
⚓︎
Read-only. A substructure off of actors that contains information on the current AI configuration.
Returns:
result
(tes3aiConfig)
Example: Checking if an NPC offers traveling service
--- This function returns `true` if given NPC
--- or creature offers traveling service.
---@param actor tes3npc|tes3npcInstance|tes3creature|tes3creatureInstance
---@return boolean
local function offersTraveling(actor)
local travelDestinations = actor.aiConfig.travelDestinations
-- Actors that can't transport the player
-- have travelDestinations equal to `nil`
return travelDestinations ~= nil
end
attributes
⚓︎
A table of eight numbers, representing the base values for the actor's attributes.
Returns:
result
(number[])
autoCalc
⚓︎
Direct access to the actor autocalc flag.
Returns:
result
(boolean)
barterGold
⚓︎
The actor's base barter gold amount. This is the amount of the barter gold an actor initially has, and also when barter gold is refreshed. The actor's current barter gold amount is held in tes3mobileActor.barterGold
.
Barter gold is reset on talking to an actor if fBarterGoldResetDelay hours have passed since the last transaction. If you want to change the base amount, for example in an investment mod, you must edit the barterGold of the baseObject.
Returns:
result
(number)
baseDisposition
⚓︎
The actor's base disposition.
Returns:
result
(number)
blocked
⚓︎
The blocked state of the object.
Returns:
result
(boolean)
blood
⚓︎
Friendly access to actor's blood type, in [0, 7] range. The available blood types are defined in the Morrowind.ini file, and assigned to the actor via the Construction Set.
Returns:
result
(integer)
boundingBox
⚓︎
The bounding box for the object.
Returns:
result
(tes3boundingBox)
class
⚓︎
Read-only. The class that the NPC uses.
Returns:
result
(tes3class)
cloneCount
⚓︎
Read-only. The number of clones that exist of this actor.
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)
equipment
⚓︎
Read-only. The items currently equipped to the actor.
Returns:
result
(tes3equipmentStack[])
faction
⚓︎
Read-only. The class that the NPC is joined to.
Returns:
result
(tes3faction)
factionRank
⚓︎
The NPC's rank in their faction.
Returns:
result
(number)
fatigue
⚓︎
The actor's max fatigue.
Returns:
result
(number)
female
⚓︎
Direct access to the actor female flag.
Returns:
result
(boolean)
hair
⚓︎
The hair body part that the NPC will use.
Returns:
result
(tes3bodyPart)
head
⚓︎
The head body part that the NPC will use.
Returns:
result
(tes3bodyPart)
health
⚓︎
The actor's max health.
Returns:
result
(number)
height
⚓︎
Read-only. Convenience access to the NPCs (race) height.
Returns:
result
(number)
id
⚓︎
Read-only. The unique identifier for the object.
Returns:
result
(string)
inventory
⚓︎
Read-only. The items currently carried by the actor.
Returns:
result
(tes3inventory, tes3itemStack[])
isAttacked
⚓︎
Read-only. If true, the actor's attacked flag is set.
Returns:
result
(boolean)
isEssential
⚓︎
Read-only. If true, the actor's essential flag is set.
Returns:
result
(boolean)
isInstance
⚓︎
Always returns false.
Returns:
result
(boolean)
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)
isRespawn
⚓︎
Read-only. If true, the actor's respawn flag is set.
Returns:
result
(boolean)
level
⚓︎
The actor's level.
Returns:
result
(number)
magicka
⚓︎
The actor's max magicka.
Returns:
result
(number)
mesh
⚓︎
The path to the object's mesh.
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:
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)
race
⚓︎
Read-only. The race that the NPC uses.
Returns:
result
(tes3race)
reputation
⚓︎
The actor's reputation.
Returns:
result
(number)
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)
script
⚓︎
The script that runs on the object.
Returns:
result
(tes3script)
skills
⚓︎
A table of twenty seven numbers, representing the base values for the NPC's skills.
Returns:
result
(number[])
soul
⚓︎
The soul value for this NPC. This is typically nil
, unless the calcSouLValue
event provides one for this actor.
Returns:
result
(number, nil)
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)
spells
⚓︎
Read-only. A list of spells that the actor has access to. It is a tes3spellList
, which is a list wrapper with helper functions. The actual list is iterated over using pairs
. E.g. for _, spell in pairs(npc.spells) do print(spell.name) end
. It is not recommended to directly modify this list; instead use tes3.addSpell and tes3.removeSpell.
Returns:
result
(tes3spellList, tes3spell[])
stolenList
⚓︎
A list of actors that the object has been stolen from.
Returns:
result
(tes3baseObject[])
supportsLuaData
⚓︎
If true, references of this object can store temporary or persistent lua data.
Returns:
result
(boolean)
weight
⚓︎
Read-only. Convenience access to the NPCs (race) weight.
Returns:
result
(number)
Methods⚓︎
__tojson
⚓︎
Serializes the object to json.
local string = myObject:__tojson()
Returns:
string
(string)
getEquipmentValue
⚓︎
Returns the combined value of all the items worn by the actor.
local value = myObject:getEquipmentValue({ useDurability = ... })
Parameters:
params
(table)useDurability
(boolean): Default:false
. If true, damaged items will have a proportionally lower value.
Returns:
value
(number): The value of each equipped item added together.
hasItemEquipped
⚓︎
Checks if the actor has provided item equipped.
local result = myObject:hasItemEquipped(item, itemData)
Parameters:
item
(tes3item, string): The item to perform a check for.itemData
(tes3itemData): Optional.
Returns:
result
(boolean)
offersService
⚓︎
Checks if the actor will offer a service in dialogue. This an offer and may still be refused by dialogue checks. To also get the result of dialogue checks, use tes3.checkMerchantOffersService()
.
local result = myObject:offersService(service)
Parameters:
service
(tes3.merchantService): Use one of the values in thetes3.merchantService.*
table.
Returns:
result
(boolean)
onInventoryClose
⚓︎
A callback function invoked when an inventory is closed. Typically not used outside of specific purposes. You may find tes3.reference
's onCloseInventory()
to be more convenient to use.
myObject:onInventoryClose(reference)
Parameters:
reference
(tes3reference)
tradesItemType
⚓︎
Checks if the actor will buy and sell items of a given object type. e.g. actor:tradesItemType(tes3.objectType.repairItem)
local result = myObject:tradesItemType(objectType)
Parameters:
objectType
(tes3.objectType): Accepts values fromtes3.objectType
namespace.
Returns:
result
(boolean)