Mod:Lighthouse Papyrus Extender/ObjectReference

ObjectReference Functions
{| style="width:100%;"
 * valign="top" style="width: 85%;" |

AddItem32

 * Unsigned 32-bit integer version of the base Papyrus function
 * Currently, this just calls the base Papyrus function multiple times. Will be remade properly later

Function AddItem32(ObjectReference akRef, Form akForm, int aiCount, bool abSilent) global native

FilterRefArrayByKeywords

 * Returns an ObjectReference array with ObjectReferences from  that have all Keywords from   and none from
 * Instead of passing  for the Keyword arrays, you should use an empty Keyword array instead

ObjectReference[] Function FilterRefArrayByKeywords(ObjectReference[] akRefArray, Keyword[] akWhitelist, Keyword[] akBlacklist) global native

GetAnimationLength

 * Returns the total length in seconds of the animation that's currently being played by

float Function GetAnimationLength(ObjectReference akRef) global native

GetAnimationTime

 * Returns the progress in seconds of the animation that's currently being played by

float Function GetAnimationTime(ObjectReference akRef) global native

GetClosestActorFromRef

 * Returns the closest Actor from ; with optional parameters to ingnore the Player or include dead NPCs

Actor Function GetClosestActorFromRef(ObjectReference akRef, bool abIgnorePlayer, bool abIncludeDead) global native

GetDoorDestination

 * Returns the ObjectReference that is linked to the  door ref

ObjectReference Function GetDoorDestination(ObjectReference akRef) global native


 * Credit: powerofthree

GetInventoryItemsAsArray

 * Returns a Form array with the items that  holds which match the enabled filters via  ; with the option to require the items to match all   filters if   is enabled
 * Passing everything as  will return all inventory items. Additionally, the size of the passed array doesn't matter; having just 1   element is enough to return all items or all equipped items if it's
 * As new filters get added, scripts written on older versions should continue to work fine as long as the size of  wasn't greater than the amount of filters available at the time. Otherwise new filters will be unintentionally applied by the function, which may make the function misbehave
 * The code below can be pasted into your scripts to easily create the array with the current supported filters

bool[] filterArray = new bool[6] filterArray[0] = false ; equipped items filterArray[1] = false ; favourited items filterArray[2] = false ; non-favourited items filterArray[3] = false ; legendary items filterArray[4] = false ; non-legendary items filterArray[5] = false ; multiple (>2) items filterArray[6] = false ; single items

Form[] Function GetInventoryItemsAsArray(ObjectReference akRef, bool[] akFilterArray, bool abMatchAll) global native

GetWeightInContainer

 * Returns the weight of items carried/held by the ObjectReference

float Function GetWeightInContainer(ObjectReference akRef) global native

IsContainerFlagSet

 * Returns whether the flag  on the Container Form   is set using a bitwise OR operation

bool Function IsContainerFlagSet(Form akForm, int aiFlag) global native

IsInWater

 * Returns whether the ObjectReference  is in water

bool Function IsInWater(ObjectReference akRef) global native

SetDoorDestination

 * Sets  as the new linked ObjectReference for the   door ref

bool Function SetDoorDestination(ObjectReference akRef, ObjectReference akDestinationRef) global native


 * Credit: powerofthree

SetHealthPercent

 * Sets the Health percent of
 * 1.0 is equivalent to 100%

Function SetHealthPercent(ObjectReference akRef, float afHealthPercent) global native


 * valign="top" style="width: 15%;"|


 * }