Loot item

Ammunition, gear, trade goods, etc.

Hierarchy (view full)

Constructors

Properties

Accessors

Methods

Constructors

  • Parameters

    • Rest...args: [data?: ItemDataConstructorData, context?: Context<ActorPF>]

    Returns ItemLootPF

Properties

_memoryVariables: undefined | null | {}
actions: any

A Collection of ItemActions.

changes: undefined | Collection<any>
links: undefined | Record<string, ItemPF>

An object containing links to other items.

scriptCalls: any
system: Readonly<{
    hasActions: true;
    hasChanges: true;
    hasIdentifier: true;
    isPhysical: boolean;
    subtypeName: true;
}> = ...

A static object holding system-specific metadata applicable to all instances of this Document class.

Type declaration

  • hasActions: true

    Whether this item has actions.

  • hasChanges: true

    Whether this item has changes and change flags.

  • hasIdentifier: true

    Whether this item receives an identifier.

  • isPhysical: boolean

    Whether this item is a physical one, possessing properties like quantity or weight.

  • subtypeName: true

Accessors

  • get alignments(): null | string
  • The item's alignment attributes, or null if the item has no alignment attributes

    Returns null | string

  • get allDamageSources(): undefined | ItemChange[]
  • Generic damage source retrieval for default action, includes default conditionals and other item specific modifiers.

    Returns undefined | ItemChange[]

    All relevant changes, or undefined if action was not found.

  • get attackSources(): undefined | object[]
  • Return attack sources for default action.

    Returns undefined | object[]

    Array of value and label pairs for attack bonus sources on the main attack.

  • get effect(): null | ActiveEffect
  • An active effect associated with this item.

    Returns null | ActiveEffect

    • Most item types don't have associated effect.
  • get hasChanges(): any
  • Whether the item is tangible physical object in reality.

    Returns any

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical
  • get isActive(): any
  • Is the item is fully functional.

    This returns composite result of if the item is equipped, has quantity, is not disabled, is not out of charges, etc. and is not representative if the item can be set active or not via setActive.

    Returns any

  • get isPhysical(): any
  • Whether the item is tangible physical object in reality.

    Returns any

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical
  • get isProficient(): boolean
  • Is the owning actor proficiency at using this as weapon.

    Returns boolean

    PF1 v10

  • get memoryVariables(): string[]
  • Returns string[]

    The keys of data variables to memorize between updates, for e.g. determining the difference in update.

  • get rootItem(): Item
  • Internal

    Root item.

    Specifically the item at bottom of the container tree.

    Returns Item

  • get subType(): null | string
  • The item's subtype, or null if the item has no subtype

    Returns null | string

  • get isPhysical(): boolean
  • Whether the item is tangible physical object in reality.

    Returns boolean

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical

Methods

  • Prepare data potentially dependent on other items.

    This should be run at in Item.prepareDerivedData() if no actor is present, or in actor's prepareDerivedData after document preparation is done.

    Parameters

    • final: boolean = false

      Is this final call to this?

    Returns void

  • Internal

    Recharges item's uses, if any.

    Parameters

    • options: {
          exact: boolean;
          period: undefined | string;
          rollData: undefined | object;
      } = {}

      Options

      • exact: boolean

        Exact time period only

      • period: undefined | string

        Recharge only if matching this time period

      • rollData: undefined | object

        Roll data

    Returns undefined | object

    • Update data or undefined if no update is needed.
  • Internal

    Recharges item's uses, if any.

    Parameters

    • options: {
          exact: undefined | boolean;
          maximize: undefined | boolean;
          period: undefined | string;
          rollData: undefined | object;
          value: undefined | number;
      } = {}

      Options

      • exact: undefined | boolean

        Match only exact time period

      • maximize: undefined | boolean

        Maximize instead of using recharge formula

      • period: undefined | string

        Recharge only if it matches this time period

      • rollData: undefined | object

        Roll data instance

      • value: undefined | number

        Set charges to specific value

    Returns Promise<undefined | object>

    • Update data or undefined if no update is necessary.
  • Internal

    Transform given data so it becomes valid update data within parent item.

    This can, for example, be used to generate batched update to the real item.

    Parameters

    • data: object

      Update data

    • Optionaloptions: {
          recursive: undefined | boolean;
      } = {}

      Additional options

      • recursive: undefined | boolean

        Create data recursively, meant for the real item document.

    Returns object

    • Transformed update data
    _transformContainerUpdateData({ name: "new name" })
    // => { system: { items: { [itemID]: { name: "new name" } } } }
  • Creates a link to another item.

    Parameters

    • type:
          | "children"
          | "charges"
          | "supplement"
          | "classAssociatons"

      The type of link.

    • item: Item

      The target item to link into this.

    • OptionalextraData: object

      Additional data to store int he link

    Returns boolean

    • Whether a link was created.
  • Display the chat card for an Item as a message in chat

    Parameters

    • OptionalaltChatData: object = {}

      Optional data that will be merged into the chat data object.

    • Optionaloptions: {
          token: undefined | TokenDocument;
      } = {}

      Additional options.

      • token: undefined | TokenDocument

        Relevant token if any.

    Returns Promise<void | ChatMessage>

    Chat message instance if one was created.

  • Executes all script calls on this item of a specified category.

    Parameters

    • category: string

      The category of script calls to call.

    • OptionalextraParams: Record<string, any> = {}

      A dictionary of extra parameters to pass as variables for use in the script.

    • Optionalshared: object = {}

      Shared data object

    Returns Promise<object>

    The shared object between calls which may have been given data.

  • Attack sources for a specific action.

    Parameters

    • actionId: string

      Action ID

    • Optionaloptions: {
          rollData: undefined | object;
      } = {}

      Additional options

      • rollData: undefined | object

        Roll data instance

    Returns undefined | object[]

    Array of value and label pairs for attack bonus sources on the main attack, or undefined if the action is missing.

  • Finds, filters and alters changes relevant to a context, and returns the result (as an array)

    Parameters

    • context:
          | "mattack"
          | "nattack"
          | "rattack"
          | "tattack"
          | "wdamage"
          | "mwdamage"
          | "rwdamage"
          | "twdamage"
          | "rdamage"
          | "mdamage"
          | "ndamage"
          | "sdamage"
          | "tdamage" = ...

      The given context.

    Returns ItemChange[]

    • The matching changes.
    • Always returns empty array if no actor is present.
  • Get default charge cost for all actions.

    Parameters

    • Optionaloptions: {
          rollData: undefined | object;
      } = {}

      Additional options

      • rollData: undefined | object

        Roll data instance

    Returns number

    Number for default cost.

  • Get full description.

    Parameters

    • options: {
          body: undefined | boolean;
          chatcard: undefined | boolean;
          data: undefined | object;
          header: undefined | boolean;
          isolated: undefined | boolean;
          rollData: undefined | object;
      } = {}

      Item type dependant options for rendering the description.

      • body: undefined | boolean

        Include main description body if such exists.

      • chatcard: undefined | boolean

        Instruct template to render chat card in mind.

      • data: undefined | object

        Template data for rendering

      • header: undefined | boolean

        Include header if such exists.

      • isolated: undefined | boolean
      • rollData: undefined | object

        Roll data for transforming description

    Returns string

    • Full description.
  • Description Data

    Parameters

    • options: {
          isolated: undefined | boolean;
          rollData: undefined | object;
      } = {}

      Additional options

      • isolated: undefined | boolean

        Include extra data to reflect it not being so easily available in context.

      • rollData: undefined | object

        Roll data instance

    Returns object

    • Description context data
  • Get item links of type

    Parameters

    • type: string

      Link type

    • includeLinkData: boolean = false

      Include link data, return value changes from item array to object array

    • Optionaloptions: {
          _results: undefined | Set<any>;
          recursive: undefined | boolean;
      } = {}

      Additional options

      • _results: undefined | Set<any>

        Internal use only.

      • recursive: undefined | boolean

        Retrieved linked items recursively.

    Returns object[] | Item[]

    • Linked items, or objects with linked items and additional data
  • Retrieve list of linked items for a type, synchronously. Intended mainly for fetching child or charge links quickly.

    Parameters

    • type: string

      Link type, e.g. "children", "charges", or "classAssociations"

    • Optionaloptions: {
          _results: undefined | Set<string>;
          recursive: undefined | boolean;
      } = {}

      Additional options

      • _results: undefined | Set<string>

        Internal use only

      • recursive: undefined | boolean

        Retrieve links recursively.

    Returns object[] | Item[]

    Linked items or their compendium index data

    const childItems = item.getLinkedItemsSync("children");
    
  • Parameters

    • Optionalweapon: boolean = true

      Get proficiency as a weapon. Armor otherwise.

    Returns boolean

    • Whether or not the owner of the item is proficient.
    • If item type does not support proficiency.

    PF1 v10

  • Determines the starting data for an ActiveEffect based off this item.

    Parameters

    • options: {
          rollData: object;
      } = {}

      Additional options

      • rollData: object

        Roll data

    Returns object

    • Active Effect creation data
  • Per item type chat data.

    Parameters

    • data: ChatData

      A partial of a chat data object that can be modified to add per item type data.

    • labels: Record<string, any>

      The labels for this item.

    • props: string[]

      Additional property strings

    • rollData: object

      A rollData object to be used for checks

    • Optionaloptions: {
          actionId: undefined | string;
          chatcard: undefined | boolean;
      } = {}

      Additional options

      • actionId: undefined | string

        Action this pertains to, if any.

      • chatcard: undefined | boolean

        Is this for a chat card?

    Returns void

  • Returns the displayed value of an item according to multiple options

    Parameters

    • Optionaloptions: {
          forceUnidentified: undefined | boolean;
          identical: undefined | boolean;
          inLowestDenomination: undefined | boolean;
          maximized: undefined | boolean;
          recursive: undefined | boolean;
          sellValue: undefined | number;
          single: undefined | boolean;
      } = {}

      Various optional parameters affecting value calculations

      • forceUnidentified: undefined | boolean

        Override whether the value should use the unidentified price

      • identical: undefined | boolean

        Treat all items in stack as identical (same number of charges).

      • inLowestDenomination: undefined | boolean

        Whether the value should be returned in the lowest denomination

      • maximized: undefined | boolean

        Pretend as if the items were fresh (full charges)

      • recursive: undefined | boolean

        Whether the value of contained items should be included

      • sellValue: undefined | number

        The sell value multiplier

      • single: undefined | boolean

        Return value of singular item instead of the actual stack. Disables recursive option.

    Returns number

    The item's value

  • Recharges item's uses, if any.

    Parameters

    • options: {
          commit: undefined | boolean;
          context: undefined | object;
          exact: undefined | boolean;
          maximize: undefined | boolean;
          period:
              | undefined
              | "round"
              | "minute"
              | "hour"
              | "day"
              | "week"
              | "any";
          rollData: undefined | object;
          value: undefined | number;
      } = {}

      Options

      • commit: undefined | boolean

        Commit update directly. If false, returns the update data instead.

      • context: undefined | object

        Update context

      • exact: undefined | boolean

        Use exact time period. Otherwise "week" for example will also recharge items with "day" period.

      • maximize: undefined | boolean

        Recharge to full regardless of recharge formula.

      • period:
            | undefined
            | "round"
            | "minute"
            | "hour"
            | "day"
            | "week"
            | "any"

        Recharge period. Use "any" to ignore item's configuration.

      • rollData: undefined | object

        Roll data instance to use for formulas.

      • value: undefined | number

        Recharge to specific value, respecting maximum and minimum bounds.

    Returns Promise<undefined | object | ItemLootPF>

    • Promise for the update, update data object, or undefined (no update needed).
  • Removes all link references to an item.

    Parameters

    • uuid: string

      The UUID of the item to remove links to.

    • Optionaloptions: {
          commit: undefined | boolean;
      } = {}

      Additional options

      • commit: undefined | boolean

        Commit changes to database. If false, resulting update data is returned instead.

    Returns Promise<undefined | object | Item>

    • Updated document, update data, or undefined
  • Set item's active state.

    Parameters

    • active: any

      Active state

    • context: any

      Optional update context

    Returns Promise<Item>

    • Update promise if item type supports the operation.
    • If item does not support the operation.
  • Sets a dictionary flag value on this item.

    Parameters

    • flagName: string

      The name/key of the flag to set.

    • value: string | number

      The flag's new value.

    • context: object = {}

      Update context

    Returns Promise<boolean>

    Whether something was changed.

  • Use an attack, using SharedActionData

    Parameters

    • options: {
          actionId: undefined | string;
          chatMessage: undefined | boolean;
          cost: undefined | number;
          dice: undefined | string;
          ev: undefined | null | Event;
          options: undefined | UseOptions;
          rollMode: undefined | string;
          skipDialog: undefined | boolean;
          token: undefined | TokenDocument;
      } = {}

      Options

      • actionId: undefined | string

        The ID of the action to use, defaults to the first action

      • chatMessage: undefined | boolean

        Whether to send a chat message for this action

      • cost: undefined | number

        Cost override. Replaces charge cost or slot cost as appropriate.

      • dice: undefined | string

        The base dice to roll for this action

      • ev: undefined | null | Event

        The event that triggered the use, if any

      • options: undefined | UseOptions

        Additional use options.

      • rollMode: undefined | string

        The roll mode to use for the chat message

      • skipDialog: undefined | boolean

        Whether to skip the dialog for this action

      • token: undefined | TokenDocument

        Token this action is for, if any.

    Returns Promise<void | ActionUse | SharedActionData>

    • Action use, shared data, or nothing.
    • On some invalid inputs.
  • Internal

    Chat card actions

    Parameters

    • action: string

      Button action ID

    • options: {
          button: undefined | Element;
          event: undefined | Event;
          item: undefined | ItemPF;
      } = {}

      Additional options

      • button: undefined | Element

        Button element

      • event: undefined | Event

        Triggering event

      • item: undefined | ItemPF

        Item associated with card

    Returns any

    • ???
  • On-Create Operation

    Post-create processing so awaiting the original operation has all secondary updates completed when it returns.

    Parameters

    • documents: Document[]

      Documents

    • operation: any

      Operations and context data

    • user: User

      Triggering user

    Returns Promise<void>

  • On-Delete Operation

    Post-delete processing so awaiting the original operation has all secondary updates completed when it returns.

    Parameters

    • documents: Document[]

      Documents

    • operation: any

      Operations and context data

    • user: User

      Triggering user

    Returns Promise<void>

  • On-Update Operation

    Post-update processing so awaiting the original operation has all secondary updates completed when it returns.

    Parameters

    • documents: Document[]

      Documents

    • operation: any

      Operations and context data

    • user: User

      Triggering user

    Returns Promise<void>

  • Item create dialog.

    Parameters

    • data: object = {}

      Initial form data

    • Optionalcontext: {
          options: undefined | object;
          pack: undefined | null | string;
          parent: undefined | null | Actor;
          types: undefined | string[];
      } = {}

      Additional options.

      • options: undefined | object

        Dialog context options.

      • pack: undefined | null | string

        Pack ID parameter passed to Item.create() options

      • parent: undefined | null | Actor

        Parent parameter passed to Item.create() options

      • types: undefined | string[]

        Item types to limit creation choices to.

    Returns Promise<null | Item>

    Synchronized with Foundry VTT v12.331

  • Override to provide naming by subType potential.

    Parameters

    • context: {
          pack: undefined | null | string;
          parent: undefined | null | Document;
          type: undefined | string;
      } = {}

      Context where the name would be used

      • pack: undefined | null | string

        Pack this would be within

      • parent: undefined | null | Document

        Parent document

      • type: undefined | string

        Type

    Returns string

    Synced with Foundry v12.331