Background for Skyrim SE
Member of the ObjectReference script
ActorBasefunctionGetActorOwner()Native

Description

Wiki Description

Gets the ActorBase that owns this object. Will return None if the object isn't owned by an actor.

Documentation Comment

Gets the actor that owns this object (or None if not owned by an Actor)


Caveats

CK Wiki - Notes

Explicit vs. Inherited Ownership

Object references can have explicit owners and inherited owners. An explicit owner is associated directly with the object. An inherited owner is derived from the container that contains the object, the cell that contains the object, or the cell that contains the container that contains the object when the object has not been associated with an explicit owner. GetActorOwner() returns only the explicit owner of an object reference and None when an explicit owner is not found.


Examples

; Does the player own the sword?
Bool playerOwnsSword = SwordProperty.GetActorOwner() == Game.GetPlayer().GetActorBase()
; Does the player own the sword?
Bool playerOwnsSword = GetInheritedOwner(SwordProperty, SwordRackProperty) == Game.GetPlayer().GetActorBase()

ActorBase Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer)
    ActorBase actorOwner
    
    ; if the object exists
    ; try to get the object's explicit owner
    If aObj
        actorOwner = aObj.GetActorOwner()
        
        ; if the object does not have an explicit owner
        ; and if the container exists
        ; try to get the container's explicit owner
        If !actorOwner
            If aContainer
                actorOwner = aContainer.GetActorOwner()
                
                ; but if the container also does not have an explicit owner
                ; try to get the parent cell of the container's explicit owner
                If !actorOwner
                    actorOwner = aContainer.GetParentCell().GetActorOwner()
                EndIf
            EndIf
            
            ; if even the parent cell of the container does not have an explicit owner
            ; try one last time to get the parent cell of the object's explicit owner
            If !actorOwner
                actorOwner = aObj.GetParentCell().GetActorOwner()
            EndIf
        EndIf
    EndIf
    
    ; returns an explicit owner, inherited owner, or none
    Return actorOwner
EndFunction

Auto-Generated Example

ActorBase returnedValue = myObjectReference__toCallFunctionOn.GetActorOwner()

Related Pages


Additional References

View this function’s page on the Skyrim Creation Kit Wiki

Some data provided by the Skyrim Creation Kit Wiki. Licensed under the Creative Commons Attribution-ShareAlike license.