Project

General

Profile

character (Data Type)

Description

This DataType includes data available to ISXEQ2 that pertains to the current player character.

Inheritance

This datatype inherits all members and methods of actor.  Script writers are strongly encouraged to review that page before utilizing the character datatype. 

Aquisition

 The best way to acquire a character datatype object is via the Me TLO.

Members

General

GameData

The GetGameData member provides access to most values used in the EQ2 UI xml files as well as character attributes which were previously included in the character datatype (e.g., Experience, Vitality, etc.)

Location

  • float X
  • float Y
  • float Z
  • float Heading
  • bool IsMoving
  • bool InGameWorld
  • bool AtCharSelect
  • float WaterDepth
    • Returns your current depth in the water
  • bool CheckCollision[To_X, To_Y, To_Z]
    • NOTE: There is no difference in EQ2 between "Line of Sight" and "collision" checks. Please note that this checks a direct line from Point A to Point B for a collision. This may provide false negatives, e.g. standing at the top of a staircase, checking collision to the bottom may return TRUE (collision), or false positives, e.g. the tradeskill instances, with the rail around the balconies, may report FALSE (no collision) because the line passes between the rails.
  • float HeadingTo[To_X, To_Y, To_Z]
    • Returns the heading you would need to face to reach the target point. Better known as bearing.
  • float HeadingTo[To_X, To_Y, To_Z, AsString]
    • Returns abbreviations such as N, NE, E, etc.

Experience/Level

Consignment system

Please note that you must be in a broker transaction AND have the broker targeted, or be in your inn room and have YOURSELF targeted, for these members to work.

  • int NumConsignmentItems
  • int NumVendingContainers
  • int NumVendors (Alias for NumVendingContainers)
  • VendingContainer Vending[#]
    • # the location of the vending container (1-6)
    • Using this member will change your current vending container based upon the value provided.  For example, if you're currently viewing the first container, and you do something like echo ${Me.Vending[2].Consignment[1]}", ISXEQ2 will change your vending container to make the items in your second vending container available to you.
  • VendingContainer Vending["name"]
    •  Example:  echo ${Me.Vending[sturdy backpack].CapacityUsed}
    • Using this member will change your current vending container based upon the value provided.  For example, if you're currently viewing the first container, and you do something like echo ${Me.Vending[2].Consignment[1]}", ISXEQ2 will change your vending container to make the items in your second vending container available to you.
  • int TotalVendingCapacity
    • Total slot capacity of all your vending containers combined.
  • int VendingCapacity
    • UsedNumber of vending container slots currently being used
  • int VendingCapacityFree
    • Number of vending container slots currently free for use

Money

Maintained Spells & Effects

  • int CountMaintained
    • Returns the number of spells the character is currently maintaining
  • maintained Maintained[# or "name"]
    • This member works for Maintained Buffs 1-30 (zero is not used) or accepts a "name", which would be a substring of the buff/debuff name for which you are searching.
  • int NumEffects[beneficial]
    • Returns the number of beneficial effects on your character
  • int NumEffects[detrimental]
    • Returns the number of detrimental effects on your character
  • effect Effect​[Query, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: ${Me.Effect[Query, Type =- "Beneficial"]}
    • This member will search through all effects, both detrimental and beneficial.  Therefore, to narrow your search, simply use the Type member.  For example, ${Me.Effect[Query, Type =- "Beneficial"]}
  • bool IsAfflicted
    • Returns true if player is afflicted by arcane, noxious, etc..
  • int Noxious
    • The affliction count for this affliction type (A value of -1 indicates that the affliction is incurable.)
  • int Trauma
    • The affliction count for this affliction type (A value of -1 indicates that the affliction is incurable.)
  • int Elemental
    • The affliction count for this affliction type (A value of -1 indicates that the affliction is incurable.)
  • int Arcane
    • The affliction count for this affliction type (A value of -1 indicates that the affliction is incurable.)
  • bool Cursed

Stats

  • int CurrentHealth
  • int MaxHealth
  • int HealthRegen
  • int CurrentPower
  • int MaxPower
  • int PowerRegen
  • float Breath
  • int UsedConc
  • int MaxConc
  • int Strength
  • int BaseStrength
  • int Stamina
  • int BaseStamina
  • int Agility
  • int BaseAgility
  • int Wisdom
  • int BaseWisdom
  • int Ingelligence
  • int BaseIntelligence
  • int Dissonance
  • int DissonanceRemaining
  • int MaxDissonance
  • int Dissipation

Resists

  • int ElementalResist
  • int NoxiousResist
  • int ArcaneResist
  • float ElementalResistPct
  • float NoxiousResistPct
  • float ArcaneResistPct

Group Information

  • bool IsGroupLeader
  • bool Grouped
  • int GroupCount
  • GroupMember Group[# or "name"]
    • Parameter can be 1-5 or a player's name
    • Note: Although your character is not considered part of the group, using Group[0] will return the current player as character.
  • GroupMember Group[id, ActorID#]

Raid Information

  • int RaidCount
  • int RaidGroupNum
    • If in a raid, the group number 1-4. Otherwise NULL.
  • int Raid
    • Number of people in the raid. If you are not in a raid, this returns 0.
  • groupmember Raid[#]
    • # is 1-24
    • Note:  When iterating through the raid, you must always iterate 1-24 as there may be gaps.
  • groupmember Raid[id,#]
    • # is ActorID
  • groupmember Raid[#,#]
    • #,# is Group number (1-4), member number (1-6)
  • groupmember Raid[Name]
    • Name is the name of player in the raid
    • Note: Unlike "Group", the current player will be Raid[1].

Inventory

  • int InventorySlotsFree
    • Actual inventory slots free + inventory container slots free
  • int BankSlotsFree
    • Actual bank slots free + bank container slots free
  • int SharedBankSlotsFree
    • Actual shared bank slots free + shared bank container slots free

Note: The above three members are fairly intensive in how they determine values. Therefore, it is highly recommended that you do not use them in your UI/HUDs directly. The best thing to do would be to have a script create a custom variable such as ${InventorySlotsFree} and then update that with ${Me.InventorySlotsFree} only when the EQ2_onInventoryUpdate event has been issued. Then, use your local variable in your UI/HUD.

  • item Inventory​[Query, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: ${Me.Inventory[Query, Location =- "Bank"]}
    • This member will search through all inventory items, equipped items, and all items in the bank and shared bank.  Therefore, to narrow your search, simply use the Location member.  For example, ${Me.Inventory[Query, Location =- "Inventory"]}
  • item Equipment[parameters]
    • Since the Inventory member now allows for searches of all character items (including equipped items), this member is only here as a convenience to quickly return items by Slot Name.   Valid Slot names are:   Primary, Secondary, Head, Chest, Shoulders, Forearms, Hands, Legs, Feet, LRing, RRing, Ear2, Ear, Neck, LWrist, RWrist, Ranged, Ammo, Waist, Cloak, Activate1, Activate2, Food, Drink.
  • merchandise Merchandise[# or <string>]
    • This member returns a 'merchandise' object that the character is currently capable of selling based upon either the index of its location within the array or a substring of the item's name.
  • int NumItemsICanSell
    • Returns the number of items that the character is capable of selling (ie, the number of items in the inventory minus the number of NO VALUE and NO TRADE items.)
  • int CustomInventoryArraySize
  • int NextFreeInvContainer
    • Returns an integer which is the ID of the first available container in the inventory that has an open slot

Abilities and Recipes

  • int NumAbilities
    • Returns the number of abilities your character currently has in his/her knowledge book.
  • ability Ability[#]
    • This member returns an ability object based upon the index of the ability (from 1 through NumAbilities). (Abilities are defined as anything found in your Knowledge book.)
  • ability Ability​[Query, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: ${Me.Effect[Query, Type =- "Beneficial"]}
  • int NumRecipes
    • Returns the number of recipes your character currently has in his/her recipe book.
  • recipe Recipe[#]
    • This member returns a recipe object based upon the index of the recipe (from 1 through NumRecipes)
  • recipe Recipe["Name"]
    • This member returns a recipe object based on Name as a substring of the recipe name.
  • recipe Recipe[id,#]
    • This member returns a recipe object based on the Recipe ID.
  • recipe Recipe​[Query, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: ${Me.Recipe[Query, Name =- "Armor"]}

Current Status/Action

  • bool AutoAttackOn
  • bool CastingSpell
    • Returns TRUE if you are currently casting a spell
  • bool RangedAutoAttackOn
  • bool In1stPersonView
  • bool In3rdPersonView
  • bool InCombat
    • Returns TRUE if you're in combat, even if autoattack is off
  • bool IsHated
    • Returns TRUE if any enemy hates you.
  • bool IsInPVP
  • int InRaid
  • bool InWater
  • bool IsCamping
  • bool IsSitting
  • bool IsAFK
  • bool IsLFG
  • bool IsLFW
  • bool IsAnonymous
  • bool IsRolePlaying
  • bool IsDecliningRaidInvites
  • bool IsDecliningGuildInvites
  • bool IsDecliningGroupInvites
  • bool IsDecliningTradeInvites
  • bool IsDecliningDuelInvites
  • bool GuildPrivacyOn
    • Your current guild event privacy setting.
    • Note:  The command for changing this setting is an EQ2 command.
      • eq2execute "guild event_privacy true"
      • eq2execute "guild event_privacy false"
  • bool TargetLOS
    • Returns TRUE if you have Line of Sight to your current target
  • float TimeToCampOut
    • In seconds. Starts at 20, and updates every 5 seconds.
  • bool IgnoringAll
    • Returns TRUE if user is "ignoring all" as toggled with the 'eq2ignore all' command.

Methods

General

  • face[#]
    • # is the desired heading value
  • TakeAllVendingCoin
    • Retrieves all of the money available in all your vending containers
  • ResetZoneTimer["ZoneName"]
    • This method may require the player to have opened the zone reuse window at least once in the current session before working properly (i.e., /togglezonereuse)

Abilities

  • QueryAbilities[index:ability]
    • This syntax will return all abilities in the character's knowledge book.
  • QueryAbilities[index:ability, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: Me:QueryAbilities[Abilities, ID == "123456"]
    • QueryAbilities will search through all effects, both detrimental and beneficial.  Therefore, to narrow your search, simply use the Type member.  For example, Me:QueryAbilities[Abilities, ID == "123456"]
    • For an example script using this method, see Example #4 in the Knowledgebase article "LavishScript Query Strings".

Effects

  • RequestEffectsInfo
  • QueryEffects[index:effect]
    • This syntax will return all effects, both detrimental and beneficial.
  • QueryEffects[index:effect, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: Me:QueryEffects[Effects, Type =- "Beneficial"]
    • QueryEffects will search through all effects, both detrimental and beneficial.  Therefore, to narrow your search, simply use the Type member.  For example, Me:QueryEffects[Effects, Type =- "Beneficial"]
    • For an example script using this method, see Example #3 in the Knowledgebase article "LavishScript Query Strings".

Inventory

  • QueryInventory​[index:item]
    • This syntax will return all inventory items, equipped items, and all items in the bank and shared bank.
  • QueryInventory[index:item, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: ${Me.Inventory[Query, Location =- "Bank"]}
    • QueryInventory will search through all inventory items, equipped items, and all items in the bank and shared bank.  Therefore, to narrow your search, simply use the Location member.  For example, Me:QueryInventory[Items,Location =- "Inventory"]
    • Here is an example script that illustrates the functionality of this particular method:

function main()
{
    variable index:item Items
    variable iterator ItemIterator
    variable int Counter = 1
    
    Me:QueryInventory[Items, Name =- "Incandescent" && Location == "Bank" && Quantity > 1]
    Items:GetIterator[ItemIterator]
  
    if ${ItemIterator:First(exists)}
    {
        do
        {
            echo "${Counter}. ${ItemIterator.Value.Name} [${ItemIterator.Value.Location}] [Level: ${ItemIterator.Value.Quantity}]"
            
            Counter:Inc
        }
        while ${ItemIterator:Next(exists)}
    }
}

Recipes

  • QueryRecipes[index:recipe]
    • This syntax will return all recipes in the character's knowledge book.
  • QueryRecipes[index:recipe, <Query String>]
    • Using a Lavishscript Query String allows script writers to search based on ANY of the datatypes members.   For more information, see the LavishScript Query Strings Knowledgebase Article here on Forge.
      • Please note that all string literals within query strings must be enclosed in quotation marks.  For example: Me:QueryRecipes[Recipes, Name =- "Armor"]
    • For an example script using this method, see Example #4 in the Knowledgebase article "LavishScript Query Strings".

Bank Coin Deposit/Withdrawl

Note:  You can move coin around to/from all banks all at once by using 'c' for copper and the value of all coins you own.  For example, if you had 9 gold, and 81 silver on your character, you could do this to deposit it all at once: Me:BankDeposit[c,98100]

  • BankDeposit["type",Amount]
  • BankDeposit["type",#,FromShared]
  • BankWithdrawl["type",#]
  • SharedBankDeposit["type",#]
  • SharedBankDeposit["type",#,FromBank]
  • SharedBankWithdrawl["type",#]

In the above methods, "type" is "p", "g", "s", or "c".

  • GuildBankDeposit[Bank#,Amount]
    • Bank# is 1-4.  Amount is in SILVER pieces.
  • GuildBankWithdraw[Bank#,Amount]
    • Bank# is 1-4.  Amount is in SILVER pieces.

Housing Escrow

  • DepositIntoHouseEscrow[#,#]
    • The first value is the amount of copper you wish to deposit (i.e., 1 gold would be 10000, etc.) and the second value is the amount of status you wish to deposit.  Both values are required, so simply enter 0 if you do not want to deposit one or the other.
    • This method will deposit into the the last house accessed by the player housing window.  It is suggested that you leave the window open while you do this; however, it will probably work if you're within range of the door (and if you have already opened the window at least once before in your current session.)