RemoveItem - ObjectReference

Revision as of 06:27, 14 August 2016 by imported>Goggle (→‎Notes: Some clarification.)

Member of: ObjectReference Script

Removes X of the specified item from this reference's inventory, possibly silently.

Syntax

Function RemoveItem(Form akItemToRemove, int aiCount = 1, bool abSilent = false, ObjectReference akOtherContainer = None) native

Parameters

  • akItemToRemove: The function will accept several variants:
    • ObjectReference - if a reference is passed, the reference is deleted once it's removed.
      • Note: This can accept non-persistent references in containers.
    • Base object - removes no more than aiCount of that item.
    • FormList of base objects, keywords, or components - removes no more than aiCount of items, starting with the first item in the form list and working down the form list.
    • Keyword - removes no more than aiCount of items matching that keyword from the container.
    • Component - removes no more than aiCount of items containing at least 1 of the component
  • aiCount: How many references to remove.
    • Default: 1
    • Note: Values less than 0 will remove all the items of this type.
  • abSilent: If true, no message will be printed to the screen
    • Default: false
  • akOtherContainer: If not None, the removed item(s) will be moved into this ref's inventory
    • Default: None

Return Value

None.

Examples

; Take away an apple
Chest.RemoveItem(Apple)


; Remove 50 gold from the player
Game.GetPlayer().RemoveItem(GoldBase, 50)

Notes

  • The function accepts a form object, however you can't make a property to a form object, you need to create a property to another type of object that extends form. Most often a MiscObject, or Weapon, etc.
  • Keywords and components in FormLists are supported as well, including mixed base objects, keywords, and components.
  • Removing items by component does not scrap the items like extracting components via the workshop does, it simply removes the item itself (and which item is removed if multiple items have the specified component is non-deterministic). If you want to scrap, use RemoveComponents
  • Using this with OnItemAdded Event, will remove the item of the same type that is equipped, instead of the item that has been caught by the event, if you need to remove that for any reason. In other words, it appears this function cannot differentiate between an equipped item from an unequipped item of the same type.

See Also