# DataType:spell

This is the type used for spell information.

## Members

|                                                                                              |                                        |                                                                                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **Type**                                                                                     | **Member**                             | **Description**                                                                                                                |
| [*float*](/macroquest/data-types-and-top-level-objects/data-types/datatype-float.md)         | **AERange**                            | AE range (group spells use this for their range)                                                                               |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **CastOnAnother**                      | Message when cast on others                                                                                                    |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **CastOnYou**                          | Message when cast on yourself                                                                                                  |
| [*timestamp*](/macroquest/data-types-and-top-level-objects/data-types/datatype-timestamp.md) | **CastTime**                           | Cast time (unadjusted)                                                                                                         |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **CounterType**                        | The resist counter. Will be one of "Disease", "Poison", "Curse" or "Corruption"                                                |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **CounterNumber**                      | The number of counters that the spell adds                                                                                     |
| [*ticks*](/macroquest/data-types-and-top-level-objects/data-types/datatype-ticks.md)         | **Duration**                           | Duration of the spell (if any)                                                                                                 |
| [*ticks*](/macroquest/data-types-and-top-level-objects/data-types/datatype-ticks.md)         | **DurationValue1**                     | Duration of the spell (if any)                                                                                                 |
| [*timestamp*](/macroquest/data-types-and-top-level-objects/data-types/datatype-timestamp.md) | **FizzleTime**                         | Time to recover after fizzle                                                                                                   |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **GemIcon**                            | Icon number of the spell. Example ${Spell\[blah].GemIcon}                                                                      |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **HastePct**                           | Percentage of haste, example of use ${Me.Hasted.HastePct} or ${Spell\[Speed of Milyex].HastePct}                               |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **ID**                                 | Spell ID                                                                                                                       |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **IsSkill**                            | is this spell a skill?                                                                                                         |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **IsSwarmSpell**                       | Is this spell a Swarm spell?                                                                                                   |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **Level**                              | Level                                                                                                                          |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **Location**                           | Appears to be max distance                                                                                                     |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **Mana**                               | Mana cost (unadjusted)                                                                                                         |
| [*timestamp*](/macroquest/data-types-and-top-level-objects/data-types/datatype-timestamp.md) | **MyCastTime**                         | Adjusted cast time                                                                                                             |
| [*float*](/macroquest/data-types-and-top-level-objects/data-types/datatype-float.md)         | **MyRange**                            | Adjusted spell range, including focus effects, etc.                                                                            |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **Name**                               | Spell Name                                                                                                                     |
| [*float*](/macroquest/data-types-and-top-level-objects/data-types/datatype-float.md)         | **PushBack**                           | Push back amount                                                                                                               |
| [*float*](/macroquest/data-types-and-top-level-objects/data-types/datatype-float.md)         | **Range**                              | Maximum range to target (use **AERange** for AE and group spells)                                                              |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **Rank**                               | Returns either 1, 2 or 3 for spells and 4-30 for clickables and potions.                                                       |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **RankName**                           | Returns the spell/combat ability name rank character has.                                                                      |
| [*float*](/macroquest/data-types-and-top-level-objects/data-types/datatype-float.md)         | **RecastTime**                         | Time to recast after successful cast                                                                                           |
| [*timestamp*](/macroquest/data-types-and-top-level-objects/data-types/datatype-timestamp.md) | **RecoveryTime**                       | Same as **FizzleTime**                                                                                                         |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **ResistAdj**                          | Resist adjustment                                                                                                              |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **ResistType**                         | See below for Resist Types                                                                                                     |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **Skill**                              | See below for Skill Types                                                                                                      |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **SlowPct**                            | Percentage of slow, example of use ${Target.Slowed.SlowPct} or ${Spell\[Slowing Helix].SlowPct}                                |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **SpellIcon**                          | Icon number of the spell. Exmaple ${Spell\[blah].SpellIcon}                                                                    |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **SpellType**                          | "Beneficial(Group)", "Beneficial", "Detrimental" or "Unknown"                                                                  |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **Stacks\[**&#x64;uratio&#x6E;**]**    | Does the selected spell stack with your current buffs (duration is in ticks)                                                   |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **StacksPet\[**&#x64;uratio&#x6E;**]** | Does the selected spell stack with your pet's current buffs (duration is in ticks)                                             |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **StacksTarget**                       | Does the selected spell stack with your target's current buffs                                                                 |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **StacksWith\[**&#x6E;am&#x65;**]**    | alias for .WillStack - see entry for more details                                                                              |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **TargetType**                         | See below for Target Types                                                                                                     |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **WearOff**                            | The "wear off" message                                                                                                         |
| [*bool*](/macroquest/data-types-and-top-level-objects/data-types/datatype-bool.md)           | **WillStack\[**&#x6E;am&#x65;**]**     | Does the selected spell stack with the specific SPELL *name* DOES NOT work with AAs.                                           |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **WillLand**                           | This is like stacks but without the duration check.  It's a clean: "Will this spell land."  Returns the slot it would land in. |
| [*int*](/macroquest/data-types-and-top-level-objects/data-types/datatype-int.md)             | **WillLandPet**                        | Same as WillLand, but for your pet.                                                                                            |
| [*string*](/macroquest/data-types-and-top-level-objects/data-types/datatype-string.md)       | **To String**                          | Same as **Name**                                                                                                               |

## Example

`/echo I have the ${Spell[Certitude].RankName} version of Certitude. - Spell`\
`Outputs:[MQ2] I have the Certitude Rk. II version of Ceritude.`

`/cast "${Spell[Vinespur].RankName}" in your macro will cast it, since its going to be resolved as /cast "Vinespur Rk. II"`

`/echo My version of Rest is: ${Spell[Rest].RankName} - Combat ability`\
`Outputs: [MQ2] My version of Rest is: Rest Rk. II`

## Resist Types

**ResistType** will be one of the following:

| <p>:\* Chromatic</p><p>:\* Corruption</p><p>:\* Cold</p><p>:\* Disease</p><p>:\* Fire</p> | <p>:\* Magic</p><p>:\* Poison</p><p>:\* Unknown</p><p>:\* Unresistable</p><p>:\* Prismatic</p> |
| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |

## Target Types

**TargetType** will be one of the following:

| <p>:\* AE PC v1</p><p>:\* AE PC v2</p><p>:\* AE Summoned</p><p>:\* AE Undead</p><p>:\* Animal</p> | <p>:\* Corpse</p><p>:\* Group v1</p><p>:\* Group v2</p><p>:\* LifeTap</p><p>:\* Line of Sight</p> | <p>:\* PB AE</p><p>:\* Pet</p><p>:\* Plant</p><p>:\* Self</p><p>:\* Single</p> | <p>:\* Summoned</p><p>:\* Targeted AE</p><p>:\* Targeted AE Tap</p><p>:\* Uber Dragons</p><p>:\* Uber Giants</p> | <p>:\* Undead</p><p>:\* Unknown</p> |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------- |

## Skill Types

**Skill** will be one of the following:

:\* Abjuration

:\* Alteration

:\* Conjuration

:\* Divination

:\* Evocation

## MyDuration

MyDuration is a custom mod located [here](https://macroquest2.com/phpBB3/viewtopic.php?t=13007). It is not supported by the developers, nor included in the zip release.

|                                                                                      |                |                            |
| ------------------------------------------------------------------------------------ | -------------- | -------------------------- |
| **Type**                                                                             | **Member**     | **Description**            |
| [*ticks*](/macroquest/data-types-and-top-level-objects/data-types/datatype-ticks.md) | **MyDuration** | Adjusted Duration (if any) |

## See Also

* [Data Types](/macroquest/data-types-and-top-level-objects/data-types.md)
* [Top-Level Objects](/macroquest/data-types-and-top-level-objects/top-level-objects.md)
* [TLO:Spell](/macroquest/data-types-and-top-level-objects/top-level-objects/tlo-spell.md)

## Data Dump as of 07/31/20

* ID
* Address
* AERange
* Attrib
* AutoCast
* Base
* Base2
* BaseName
* Beneficial
* BookIcon
* Calc
* CalcIndex
* CanMGB
* CastByMe
* CastByOther
* Caster
* CastOnAnother
* CastOnYou
* CastTime
* Category
* CounterNumber
* CounterType
* Deletable
* Description
* Duration
* DurationValue1
* DurationWindow
* EnduranceCost
* EQSpellDuration
* Extra
* FizzleTime
* GemIcon
* HasSPA
* HastePct
* IllusionOkWhenMounted
* IsActiveAA
* IsSkill
* IsSwarmSpell
* Level
* Location
* Mana
* Max
* MaxLevel
* MyCastTime
* MyDuration
* MyRange
* Name
* NewStacks
* NewStacksWith
* NoExpendReagentID
* NumEffects
* PushBack
* Range
* Rank
* RankName
* ReagentCount
* ReagentID
* RecastTime
* RecastTimerID
* RecoveryTime
* ResistAdj
* ResistType
* Restrictions
* Skill
* SlowPct
* SPA
* SpellGroup
* SpellIcon
* SpellType
* Stacks
* StacksPet
* StacksSpawn
* StacksTarget
* StacksWith
* StacksWithDiscs
* Subcategory
* SubSpellGroup
* Target
* TargetType
* TimeOfDay
* Trigger
* WearOff
* WillStack


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://macroquest.gitbook.io/macroquest/data-types-and-top-level-objects/data-types/datatype-spell.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
