Tags

From Entropy

Tags can be applied all over the place; heals, dots, nukes, defenses, buffs, so on. They are in effect, pre-made conditions.
Some tags perform actions, others look for a situation, and some are very specific to a roll.
Not all tags apply to all situations. A little common sense should be used.
Tags are shared for all toons on that PC.


basics

Tags contain three parts: grouping, name, evaluation

- grouping is where the tag belongs like nukes, heals, dots, etc.  
- the name is just that, the name of the tag; panicheal, nocombat, inraid, onlytuesday  
- the evaluation is what you are checking for, the condition: `${Me.PctHps} <= 15`   

Using the above, we would end up with a tag like this: heal::panicheal::${Me.PctHps} <= 15



Groups are pre designed, users cannot edit them. Available groups are: - heal, nuke, dot, burn, song, defense, buff, miscdps, item

Tags, there are a lot of pre-made tag names. You can make as many tags as you like. Users cannot edit the pre-made tags. A tag name can be applied to different groups. You could have a heal::tacos that does one thing and a burn::tacos that does another thing.

Tags have three basic colors for easy identification:

- brown - tag markers and actions  
- green - built in tags with evaluations  
- cyan - tags and evaluations you create  

/tag

To put all the above together, use the /tag command:
/tag heal panicheal "${Me.PctHps} <= 15"
/tag grouping tagname eval

The tag command will take the grouping you give, create the tag name you give and attach the eval to it. If you make a mistake, in the eval, or want to change it, just recreate it with the same command.


Other /tag options:
/tag list - list all the tags
/tag list [group] - list all the tags/evals that ares set for that group
/tag list 2 - list all of the tags/evals you have created
/tag list marker - list all of the markers


using tags

To use the panicheal tag/evaluation we created you would attach it to whatever heal spell you have for when your warrior cannot keep it up. Lets say its heal 3.
/heal 3 tag panicheal add

If you have deleted that tag/eval with the /tag command and you want to remove it from heal 3:
/heal 3 tag panicheal delete

Easy as that.

deleting

You can only delete the tags and evaluations you create.

To delete them, you have to delete the eval first, then you can delete the tag name. if you try it in any other order, the code will yell at you.

So, to delete your panicheal example from above we would firse delete the eval: /tag heal panicheal delete
Then you delete the tag name: /tag panicheal delete
You cannot delete the grouping heal.


WARNING deleting tags will not remove the tags that are attached to things like buffs or heals. They will remain in the tag list for that specific thing. So, the panicheal we just deleted will still be attached to the /heal 2 spell we have set aside for useless warrior. And now, whenever the code tries to cast that spell, it will let you know it has a bad tag attached to it.

Current Tags

tag markers

Some tags are used as markers. These are use to identify where, what they are attached too, will be used. For example: ```heal::splash::marker splash heal [PAL|CLR]``` is the marker for splash heals for cleric and paladin. a heal with this marker attached to it, will only be used wit the splash heal routine.

tag actions

A small few of the tags do something vice checking something. The tag delay1s, does just that, delays the code 1 second.


markers

buff::aura::marker /buff aura
buff::crew::marker /buff crew (dannet peoples)
buff::group::marker /buff group (not dannet, outsiders and mercs)
buff::minion::marker /buff minion
buff::now::marker /buff now 24/7 buffs, always have them
buff::ps::marker /buff ps (power source)
buff::raid::marker /buff raid (not dannet)
buff::self::marker /buff self
buff::summonaxe::marker axe summoning for zerkers
buff::summonitem::marker item summoning from spells
buff::summonpoison::marker pants poison summoning for rogues
buff::summonrange::marker ranged summoning, like arrows, or daggers
buff::summonweapons::marker weapon summoning for mages
heal::complete::marker complete heal [CLR]
heal::group::marker no target group heals
heal::grouphot::marker no target group heal over time
heal::hot::marker single target heal over time
heal::minion::marker single target minion heal
heal::promise::marker promised heal (stupid things)
heal::self::marker /heal self only single heal
heal::single::marker single target heals
heal::splash::marker splash heal [PAL|CLR]
heal::surge::marker surge heals [SHM]
heal::tot::marker /heal tot single target of target heal

built in tags

buff::BER::${Spawn[${_name}].Class.ShortName.Equal[BER]}
buff::BRD::${Spawn[${_name}].Class.ShortName.Equal[BRD]}
buff::BST::${Spawn[${_name}].Class.ShortName.Equal[BST]}
buff::CLR::${Spawn[${_name}].Class.ShortName.Equal[CLR]}
buff::DRU::${Spawn[${_name}].Class.ShortName.Equal[DRU]}
buff::ENC::${Spawn[${_name}].Class.ShortName.Equal[ENC]}
buff::MAG::${Spawn[${_name}].Class.ShortName.Equal[MAG]}
buff::MNK::${Spawn[${_name}].Class.ShortName.Equal[MNK]}
buff::NEC::${Spawn[${_name}].Class.ShortName.Equal[NEC]}
buff::PAL::${Spawn[${_name}].Class.ShortName.Equal[PAL]}
buff::RNG::${Spawn[${_name}].Class.ShortName.Equal[RNG]}
buff::ROG::${Spawn[${_name}].Class.ShortName.Equal[ROG]}
buff::SHD::${Spawn[${_name}].Class.ShortName.Equal[SHD]}
buff::SHM::${Spawn[${_name}].Class.ShortName.Equal[SHM]}
buff::WAR::${Spawn[${_name}].Class.ShortName.Equal[WAR]}
buff::WIZ::${Spawn[${_name}].Class.ShortName.Equal[WIZ]}
buff::agro::${maEnv.Find[swAgro].Value}
buff::aliasonly::ACTION::aliasonly
buff::autoinventory::ACTION::autoinventory
buff::burn::${maBurn.Find[swBurnConditionMet].Value}
buff::delay1s::ACTION::delay1s
buff::drop::ACTION::drop
buff::dropdisc::ACTION::dropdisc
buff::dropinvis::ACTION::dropinvis
buff::epic::SUB::tag_epic
buff::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
buff::ingroup::${Group.Members}
buff::inraid::${Raid.Members}
buff::noactivedisc::!${Me.ActiveDisc.ID}
buff::noagro::!${maEnv.Find[swAgro].Value}
buff::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
buff::nogroup::!${Group.Members}
buff::noraid::!${Raid.Members}
buff::nosafezone::${maEnv.Find[swZoneSafe].Value}
buff::outdoor::!${Zone.Indoor}
buff::outofwater::!${Me.FeetWet}
buff::puller::${maCC.Find[swPull].Value}
buff::swarm::${maMinion.Find[swSwarm].Value}
buff::target::${Target.ID}
buff::targethumanoid::${Target.Body.Name.Equal[humanoid]}
buff::targetplant::${Target.Body.Name.Equal[plant]}
buff::targetundead::${Target.Body.Name.Equal[undead]}

defense::agro::${maEnv.Find[swAgro].Value}
defense::aliasonly::ACTION::aliasonly
defense::burn::${maBurn.Find[swBurnConditionMet].Value}
defense::delay1s::ACTION::delay1s
defense::dropdisc::ACTION::dropdisc
defense::dropinvis::ACTION::dropinvis
defense::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
defense::ingroup::${Group.Members}
defense::inraid::${Raid.Members}
defense::noactivedisc::!${Me.ActiveDisc.ID}
defense::noagro::!${maEnv.Find[swAgro].Value}
defense::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
defense::nogroup::!${Group.Members}
defense::noraid::!${Raid.Members}
defense::nosafezone::!${maEnv.Find[swZoneSafe].Value}
defense::outdoor::!${Zone.Indoor}
defense::outofwater::!${Me.FeetWet}
defense::puller::${maCC.Find[swPull].Value}
defense::swarm::${maMinion.Find[swSwarm].Value}
defense::target::${Target.ID}
defense::targethumanoid::${Target.Body.Name.Equal[humanoid]}
defense::targetplant::${Target.Body.Name.Equal[plant]}
defense::targetundead::${Target.Body.Name.Equal[undead]}

dot::agro::${maEnv.Find[swAgro].Value}
dot::aliasonly::ACTION::aliasonly
dot::burn::!${maBurn.Find[swBurnConditionMet].Value}
dot::delay1s::ACTION::delay1s
dot::dropdisc::ACTION::dropdisc
dot::dropinvis::ACTION::dropinvis
dot::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
dot::ingroup::${Group.Members}
dot::inraid::${Raid.Members}
dot::noactivedisc::!${Me.ActiveDisc.ID}
dot::noagro::!${maEnv.Find[swAgro].Value}
dot::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
dot::nogroup::!${Group.Members}
dot::noraid::!${Raid.Members}
dot::nosafezone::!${maEnv.Find[swZoneSafe].Value}
dot::outdoor::!${Zone.Indoor}
dot::outofwater::!${Me.FeetWet}
dot::puller::${maCC.Find[swPull].Value}
dot::swarm::${maMinion.Find[swSwarm].Value}
dot::target::${Target.ID}
dot::targethumanoid::${Target.Body.Name.Equal[humanoid]}
dot::targetplant::${Target.Body.Name.Equal[plant]}
dot::targetundead::${Target.Body.Name.Equal[undead]}

heal::BER::${Spawn[${_name}].Class.ShortName.Equal[BER]}
heal::BRD::${Spawn[${_name}].Class.ShortName.Equal[BRD]}
heal::BST::${Spawn[${_name}].Class.ShortName.Equal[BST]}
heal::CLR::${Spawn[${_name}].Class.ShortName.Equal[CLR]}
heal::DRU::${Spawn[${_name}].Class.ShortName.Equal[DRU]}
heal::ENC::${Spawn[${_name}].Class.ShortName.Equal[ENC]}
heal::MAG::${Spawn[${_name}].Class.ShortName.Equal[MAG]}
heal::MNK::${Spawn[${_name}].Class.ShortName.Equal[MNK]}
heal::NEC::${Spawn[${_name}].Class.ShortName.Equal[NEC]}
heal::PAL::${Spawn[${_name}].Class.ShortName.Equal[PAL]}
heal::RNG::${Spawn[${_name}].Class.ShortName.Equal[RNG]}
heal::ROG::${Spawn[${_name}].Class.ShortName.Equal[ROG]}
heal::SHD::${Spawn[${_name}].Class.ShortName.Equal[SHD]}
heal::SHM::${Spawn[${_name}].Class.ShortName.Equal[SHM]}
heal::WAR::${Spawn[${_name}].Class.ShortName.Equal[WAR]}
heal::WIZ::${Spawn[${_name}].Class.ShortName.Equal[WIZ]}
heal::agro::${maEnv.Find[swAgro].Value}
heal::aliasonly::ACTION::aliasonly
heal::burn::${maBurn.Find[swBurnConditionMet].Value}
heal::complete::CONTROL::MARKER
heal::delay1s::ACTION::delay1s
heal::dropdisc::ACTION::dropdisc
heal::dropinvis::ACTION::dropinvis
heal::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
heal::ingroup::${Group.Members}
heal::inraid::${Raid.Members}
heal::noactivedisc::!${Me.ActiveDisc.ID}
heal::noagro::!${maEnv.Find[swAgro].Value}
heal::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
heal::nogroup::!${Group.Members}
heal::noraid::!${Raid.Members}
heal::nosafezone::!${maEnv.Find[swZoneSafe].Value}
heal::outdoor::!${Zone.Indoor}
heal::outofwater::!${Me.FeetWet}
heal::puller::${maCC.Find[swPull].Value}
heal::swarm::${maMinion.Find[swSwarm].Value}
heal::target::${Target.ID}
heal::targethumanoid::${Target.Body.Name.Equal[humanoid]}
heal::targetplant::${Target.Body.Name.Equal[plant]}
heal::targetundead::${Target.Body.Name.Equal[undead]}

nuke::agro::${maEnv.Find[swAgro].Value}
nuke::aliasonly::ACTION::aliasonly
nuke::burn::${maBurn.Find[swBurnConditionMet].Value}
nuke::delay1s::ACTION::delay1s
nuke::dropdisc::ACTION::dropdisc
nuke::dropinvis::ACTION::dropinvis
nuke::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
nuke::ingroup::${Group.Members}
nuke::inraid::${Raid.Members}
nuke::noactivedisc::!${Me.ActiveDisc.ID}
nuke::noagro::!${maEnv.Find[swAgro].Value}
nuke::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
nuke::nogroup::!${Group.Members}
nuke::noraid::!${Raid.Members}
nuke::nosafezone::!${maEnv.Find[swZoneSafe].Value}
nuke::outdoor::!${Zone.Indoor}
nuke::outofwater::!${Me.FeetWet}
nuke::puller::${maCC.Find[swPull].Value}
nuke::swarm::${maMinion.Find[swSwarm].Value}
nuke::target::${Target.ID}
nuke::targethumanoid::${Target.Body.Name.Equal[humanoid]}
nuke::targetplant::${Target.Body.Name.Equal[plant]}
nuke::targetundead::${Target.Body.Name.Equal[undead]}

song::agro::${maEnv.Find[swAgro].Value}
song::aliasonly::ACTION::aliasonly
song::burn::${maBurn.Find[swBurnConditionMet].Value}
song::delay1s::ACTION::delay1s
song::dropdisc::ACTION::dropdisc
song::dropinvis::ACTION::dropinvis
song::incombat::${Select[${Me.CombatState},combat]} || ${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
song::ingroup::${Group.Members}
song::inraid::${Raid.Members}
song::noactivedisc::!${Me.ActiveDisc.ID}
song::noagro::!${maEnv.Find[swAgro].Value}
song::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
song::nogroup::!${Group.Members}
song::noraid::!${Raid.Members}
song::nosafezone::!${maEnv.Find[swZoneSafe].Value}
song::outdoor::!${Zone.Indoor}
song::outofwater::!${Me.FeetWet}
song::puller::${maCC.Find[swPull].Value}
song::swarm::${maMinion.Find[swSwarm].Value}
song::target::${Target.ID}
song::targethumanoid::${Target.Body.Name.Equal[humanoid]}
song::targetplant::${Target.Body.Name.Equal[plant]}
song::targetundead::${Target.Body.Name.Equal[undead]}

tags by name

To create a tag for a toon it MUST follow this pattern:
/tag buff Toonname "marker name"
e.g. /tag buff Fred "marker name"
DO NOT deviate from that pattern. If you do, the tag will not work, and the filters for /build save will not catch it causing you to share your character names with others.

sample created tags and applications

These are just some examples how they can be used

Jann's Veil

This is How I work the Clickie Illusion Jann's Veil. As a self only buff that drops the illusions and it will not cast while in combat.

stBuff42::Jann's Veil
stBuff42Alias::FALSE
lsBuff42Tag
. buff::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
. buff::self::marker /buff self
. buff::drop::removes illusion and mount buffs

Aura of the Reverent

Cleric Aura of the Reverent. This is a special case aura in all of EQ. This is one way to make it work correctly.

stBuff50::Aura of the Reverent
stBuff50Alias::FALSE
lsBuff50Tag
. buff::aura::marker /buff aura
. buff::nocombat::!${Select[${Me.CombatState},combat]} && !${SpawnCount[npc radius ${maEnv.Find[stEnvSafeRadius].Value} playerstate 4]}
. buff::reverentaura::!${Me.Aura[1].Name.Equal[Reverent Aura]} && !${Me.Aura[2].Name.Equal[Reverent Aura]}

created tags

Some of my created tags/evals.

buff::nocol::!${Me.Song[Circle of Life].ID}
buff::reverentaura::!${Me.Aura[1].Name.Equal[Reverent Aura]} && !${Me.Aura[2].Name.Equal[Reverent Aura]}
item::agro::${maCC.Find[swAgro].Value}
item::ingroup::${Group.Members}
item::nocop::!${Me.Song[Circle of Power].ID}
item::nounity::!${Me.Song[Blessing of Unity].ID}
item::swarm::${maMinion.Find[swSwarm].Value}
heal::panicheal::${Spawn[${hurtID}].PctHPs} <= 25
item::needmana::${Me.PctMana} < 80
item::burn::${maBurn.Find[swBurnConditionMet].Value}