• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Guide - KissAssist Conditionals: Reference - KA11 Edition (1 Viewer)

  • Thread starter Thread starter ChatWithThisName
  • Anyone can edit the first post of this thread WikiPost WikiPost
  • Start date Start date
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

ChatWithThisName

⚔️🛡️🗡️
Moderator
Joined
Dec 29, 2017
RedCents
23,976¢
See something out of date?
Level 2 users can edit this wikipost, so give us a hand!




This is an updated version of an older thread.



Q: What exactly are conditional settings for KissAssist ?
A:
KissAssist conditionals are basically a merger of logical conditions used in the MQ2Melee plugin for downshits / holyshits, and the great KissAssist universal class macro that you already know and love.

It allows you to setup logical conditions for when exactly to do something.

This provides the more experienced MQ2 user the ability to get extremely detailed in their casting/melee fucntions and define them to a granular level.
It also lets people create conditions that will always fail and cause KissAssist to act in an undesired manner when done incorrectly!


With that said, just because it has conditions, does -NOT- mean it's better!



A novice to moderate understanding of downshits & holyshits or MQ2 Conditions is required to use/take advantage of this feature.



Q: Can I not use this feature if it doesn't interest me / can I disable it / can i just use KissAssist like I always have before ?
A:
The basic answer to all these questions is YES.

You can turn on or off the use of the conditional system with a simple ini setting or a toggle when running KissAsssit. See In Game Commands.
We are not forcing anyone to change their use of KissAsssit, but simply providing the extra control for those who want it.










KissAssist conditional settings are editable in your KissAssist_ToonName.ini in the [KConditions] section.

--------------------------------------------------------------------------------------------------------
Creating your kissassist conditions in the INI:

1. Run the KissAssist macro (Type "/mac kissassist") and wait till you see the "Redguides presents" message then end the macro.

1547541668636.png

2. Once the macro ends, edit the KissAssist_ToonName.ini file and change the ConOn flag in the [KConditions] section from 0 to 1.

Code:
[KConditions]
ConOn=0<~~~Here!
CondSize=5
Cond1=TRUE
Cond2=TRUE
Cond3=TRUE
Cond4=TRUE
Cond5=TRUE

You no longer have a condition entry for every single thing when the conditions are on. It's now handled with the KConditions section and tags at the end of the INI entry.

· Upon creation, generic TRUE conditional settings are made for each of the 5 condition lines. These are place-holders for you to replace with actual conditions.

4. Edit the Cond# you want to use.

Code:
[KConditions]
ConOn=1
CondSize=9
Cond1=${Target.ID} && ${Range.Between[50,99:${Target.PctHPs}]}  && ${Target.Beneficial.ID} && ${Target.Beneficial.ID}!=49665 && ${Select[${Zone.ID},21,777,555,980]}
Cond2=(${Me.PctMana} > 80 && ${Target.PctHPs} > 80) || (${Target.Named} && ${Target.PctHPs} > 50)
Cond3=${Target.ID} && ${Target.PctHPs} > 20 &&  ${Me.PctAggro}>50
Cond4=${Target.PctHPs} > 50 && ${Target.BuffsPopulated} && !${Me.Song[Evoker's Synergy].ID} && !${Target.Buff[Shocking Vortex].ID}  && !${Me.Song[Dichotomic Reinforcement].ID}
Cond5=${Target.Named} && ${Target.PctHPs} > 10
Cond6=${Target.Named}
Cond7=${Me.PctMana} < 45 && !${Me.SpellReady[Quiescent Gambit]}
Cond8=${Cast.Ready[Miniature Horn of Unity]} && !${Me.Song[Blessing of Unity].ID} && ${Me.PctMana} < 85
Cond9=${Me.PctMana} < 45

5. Assign it to an action elsewhere in the INI by appending Cond# to the end of the thing you want constrained by the condition, where # is the Cond#= is the one you are referencing.

Code:
[DPS]
DPSOn=2
COn=1
DPSSkip=1
DPSInterval=0
DPSSize=20
DPS1=Eradicate Magic|99|Cond1
DPS2=Frostbound Alliance|99|Cond2
DPS3=Concussive Intuition|99|Cond3
DPS4=Shocking Vortex|100|Cond4
DPS5=Mind Crash|99|Cond5
DPS6=Fury of the Gods|99|Cond6
DPS7=Focus of Arcanum|99
DPS8=Forceful Rejuvenation|99|Cond7
DPS9=Miniature Horn of Unity|99|Cond8
DPS10=Sebilisian Froglokskin Robe|99|Cond9


Back to Top


Variables

The following is a Variable Reference:
It is intended to give you a list of the most common variables used withing KissAssist, in order to help you create your own logical condition.​
VariableDescription


AggroTargetID​



The target ID of the current mob that has agro on us (we are engaging), it may include mobs in camp but not on XTarget. Example: ${Spawn[${AggroTargetID}].Distance}<=${CampRadius}​


CampRadius

This is the radial distance around your character that your virtual camp extends. Example: ${Spawn[${AggroTargetID}].Distance}<=${CampRadius}

ClosestMobID

This is the target ID of the calculated closest mob to your character. Example: ${Target.ID}!=${ClosestMobID}

CountRadius

This is the radial distance around your character that your virtual melee attack distance extends.

GoMActive

Indicates the state of GoM being triggered. If the event for GOM has been triggered, GoMActive=1.

MainAssistClass

This is the shortname of the class of your current Main Assist.

MainAssistID

This is the target ID of your current Main Assist.

MainAssistType

This is the target type of your current Main Assist. (PC or Pet)

Medding

This indicates the state of your medding status, primarily triggered from ${GroupWatchOn} and ${MedCombat} settings.

MercAssisting

This indicates the state of if your mercenary is assisting in combat.

MercInGroup

This indicates if your character currently has a mercenary in the group.

MezMobAECount

Total nuber of AE mezzed mobs, used when mezzer needs to keep track of locking down AE mezzed mobs with longer lasting single mob mezzes.

MezMobCount

Total nuber of mezzed mobs.

MobCount

Total number of npc targetable mobs within "line of sight" of your melee attack radius. Example: ${SpawnCount[npc targetable los radius ${CountRadius} zradius 50 noalert 3]}

MyTargetID

This is the target ID of the currently targeted spawn you have. (Does not mean your AggroTargetID, simply whatever you happen to have targeted).

MyTargetName

This is the target name of the currently targeted spawn you have.

PetActiveState

Indicates if you have a pet currently active, this is used when determining when to suspend/activate pets that are suspended.

PetAttack

Indicates the state of your pet being in combat.

PetAttackRange

This is the range in which your current pet will engage a target within. Think of it as your pet's melee attack distance.

PetSuspendState

Indicates if you currently have a pet in suspend state (independant of PetActiveState to determine if you have a pet available to activate if current pet dies).

PetTanking

Indicates if your pet is currently tanking the group's AggroTargetID.

PetTauntOn

Indicates if your pet is taunting teh AggroTargetID or not.

PetTotCount

Indicates how many total pets you have available to you (current active + total suspended pets).

PullRange

This is the default pull range for your charater.

PullRangeActual

This is the adjusted pull range of your current character. (PullRange adjusted for range of their current PullWith method: spell, item(bow)... etc.)

Pulled

The active state if you currently have a NPC pulled or not yet.

ReturnToCamp

Indicates wether or not your character should return to camp after combat has finished.

ValidTarget

The end result state indicating if a target is a valid NPC to pull, after several advanced checks are made.

XTSlot

Extended target window slot number. ${Me.XTarget[${XTSlot}].ID}

This is not finished. More to process but the page is being laggy and I need to save the progress so far so I can reopen the browser.
 
Last edited:
A few questions about conditionals

1. If I have something like DPS1=SomeNuke|99, would I need any sort of conditional for "mob health is under 99%"?
2. What types of conditions would be needed for debuffs with the |malo or |tash tags? My guys will frequently try to recast these even if the mob already has them, but at the same time won't recast after it drops off
3. Are DPS conditions evaluated at a time when the mob they would apply to is targeted, thus allowing things like ${Target.Named}? When are heal and buff conditions evaluated?
4. There was a thread a few weeks ago with someone doing some really rough parses using KISS, and he was repeatedly mocked for having "poor and inefficient conditionals in kiss which was lowering his DPS". Are there any sort of guidelines for what types of things SHOULD be put into DPS conditionals in order to make them more efficient?
 
1. No health percent condition needed, KA will handle the "under 99%" via the |99

2. Are you using the debuffall stuff? If so, KA should handle the checks for slow/malo/tash. Otherwise you can have KA run a check for a certain debuff on the Target:
Code:
${Target.BuffsPopulated} && !${Target.Buff[Malo].ID}

3. Yes they should check on the target for that entry. So DPS would check the mob and heals should check the heal target. ${Target.Named} does work in DPS. That said, it's not 100% perfect and occasionally KA will still be on a different target when the condition is called. I find this happens most on healers or pet classes, which change targets often. The KA dev team has said they're working on improving this for all sections.

4. You can skip the stuff KA will test anyways, like if the spell/ability is ready.

Otherwise it sounds like you're on the right track. You can use stuff like "${Target.Named} || ${Me.XTarget}> 3" to rev up a mini-burn. Or wait until you proc a certain buff before using some ability "${Me.Song[Frenzied Devastation].ID} || ${Me.Song[Arcane Destruction].ID}" In general, just strive to match what a good player would be trying to do in a group.
 
For debuffs, if your using the DebuffAllOn option, then your Target will be the mob you are going to cast on by the time the condition is checked. So you can use ${Target} in your debuff conditions.
 
Ok, Im lost. I had a bunch of conditions set up the old way. I did the /plugin mq2kisstemplate then ran /maketemplate. This did create a kissassist_level_class document. It erased the first five conditions which I did copy over from the old ini. In reading the directions above I should have gotten a line Conon=0 in the Kconditions section. There is no Kconditions section in the toons main ini and no Conon=0 line in the new kissassist_level_class document. I can't get the conditions on any of my toons to work and the ini's don't match the instructions on how to get them to work. Any ideas? Thanks for any help, AnotherJohn
 
Just wanted to follow up to be more clear on the situation. I have tried the in game command /conditionon I didn't get an error message but didn't get any acknowledgment that the program received the message. Also, to be more clear the new document that was created was actually called Kissassist_70_WAR. The old conditions was called Kissassist_Toonname_conditions and the old and new ini is called Kissassist_Toonname. Also I double checked and ran the update to make sure I had the most current version of Kiss and updater shows up to date. Really have no idea on what to try next, I'm sure it is something simple but I don't see it. Thanks, AnotherJohn
 
Followup, I have now just deleting all the old ini's for a character and letting Kiss redo a blank ini which I then filled in from scratch. I then created a new Kissassist_70_War template. Did the editing and ran the macro and after loading used the /conditionson command just to be sure. That seems to have done it. It is now picking up the conditions. Not sure what was bugging it but if someone in the future runs into the same problem might be worth a try.
 
Is there a condition to see if the group's target is casting a spell? I'd like my tank to save his Bash to possibly interrupt when the target is casting. I would probably add this to an OhShit section. Does anyone know how that conditional would be constructed? I haven't been able to find anything like this so far. Thanks in advance for any help.

Ok, I also did a little experimenting and found that ${Target.Casting.ID} returned a 0 when the target wasn't casting, and a numerical value like 54227 when casting. I'm guessing that's the identifier for the spell effect that will land if not resisted. Anyway, I still don't know how to construct the OhShit line. I have something like below, but it doesn't work. The part after the || is intended to identify non-casters and allow the Bash to proceed normally.

OhShit3=/if (${Bool[${Target.Casting.ID}]}) || (${Bool[!${Bool[${Target.PctMana}]}]}) /doability Bash

Essentially, I'd like it to either wait for it to Bash for casters OR Bash anytime the target is a non-caster.

Thanks again for any help cleaning up this mess. Ttyl, Sam
 
Last edited:
You might be able to use Spawn.Animation, but not sure how up to date the animation ID list is on the MQ2 Wiki.

Cond1=${MyTargetID} && ${Target.ID}==${MyTargetID} && ${Select[${Spawn[${MyTargetID}].Animation},27,43,44,134,135]}>0
 
Honestly couldn't say, those were some conditions from Maskoi. ${Target.Benenficial.ID} returns the ID of the first beneficial spell found when looping through the list of buffs/debuffs on a mob.

Edit: looked at my Spells_US.txt and seems it's abundant healing variation.

1553945977936.png
 
The sample conditions are from eqmule's 110 wizard (which is based on Aspire2000's high DPS/mana conserving design) and that one is checking if the target mob needs to be dispelled. Old KA10 style condition here so you can see the link of the two.
Code:
DPS1=Eradicate Magic|99
DPSCond1=${Target.ID} && ${Range.Between[50,99:${Target.PctHPs}]}  && ${Target.Beneficial.ID} && ${Target.Beneficial.ID}!=49665 && ${Select[${Zone.ID},21,777,555,980]}

I ran it through eqresource by spell id, but got a warrior self-buff. So maybe the # in eq's database isn't the same as theirs. Anyways it was some mob buff that eqmule wanted the wizard to try to strip. (Or I guess ignore based on the ! sign?)
 
Actually, it's Defensive Proficiency II. My bad. I put 49655 instead of 49665
1553946558976.png
Code:
/echo ${Spell[49665].Name}
1553946529841.png

in game will return the name of the spell with that ID.
Likewise, you could do
/echo ${Spell[Defensive Proficiency II].ID} to get the ID.
 
For debuffs, if your using the DebuffAllOn option, then your Target will be the mob you are going to cast on by the time the condition is checked. So you can use ${Target} in your debuff conditions.

So a issue i found with the recent Kissassist file , when using DEBUFFALL tag.... and a Tank proc's Tendon slice. or DEBUFFALL|Always it wont slow the mob fyi. cause Kiss is reading Tendon slice as a slow.
 
The always tag tells kiss to cast the debuff regardless if the mob has that debuff or not. So even if the Tendon slice returns as a slow, using the always tag will force the debuffer to cast their slow. Now if your using a condition with the debuff entry, I would check your condition very closely.
 
Old dog having a great deal of trouble figuring and evac condition for wiz/Druid if MA dies or is about to. Anyone have such a condition?
 
KA has evac built in and it's based on what you want:

GroupEscapeOn
0

0/1

0=Off/1=On - If this character is a Druid or Wizard then if the MA dies (or is not present) when in combat, trigger group evacuation (Exodus or Succor/Evacuate).
INI:
[General]



GroupEscapeOn=1

If you want to do it yourself, Sic has a pet condition that turns taunt on if the MA is dead in his Beastlord ini in the library. You could grab that one and use it.
  • ${Spawn[${Group.MainTank} pccorpse radius 40].ID}>0
 
HELLO. I WOULD LIKE TO CAST CERTAIN ITEMS/POT'S AT CERTAIN TIME INTERVALS. FOR EXAMPLE, I WOULD LIKE TO CAST BELT OF MARVELOUS VISIONS (HASTE) EVERY HOUR. AT THE MOMENT IT IS BEING CAST EVER 60 SECONDS BECAUSE MY CHECKBUFFSTIMER=60. ALSO HAVING THE SAME PROBLEMS WITH POTIONS. HOW CAN I REMEDY THIS SITUATION? THANK YOU.
 
HELLO. I WOULD LIKE TO CAST CERTAIN ITEMS/POT'S AT CERTAIN TIME INTERVALS. FOR EXAMPLE, I WOULD LIKE TO CAST BELT OF MARVELOUS VISIONS (HASTE) EVERY HOUR. AT THE MOMENT IT IS BEING CAST EVER 60 SECONDS BECAUSE MY CHECKBUFFSTIMER=60. ALSO HAVING THE SAME PROBLEMS WITH POTIONS. HOW CAN I REMEDY THIS SITUATION? THANK YOU.
Buffs should automatically cast themselves whenever you need them and not if you already have it. If it casts when it is already active, that would be a bug that will be fixed sometime, you could maybe report it to make sure. In the meantime you can use a condition to check first like this:

!${Me.Buff[Marvelous Visions or whatever the spell name is].ID}

The ! at the start tells it to not cast if you already have that spell active. Just make sure you type the name of the buff you want to check exactly right into that middle part.

You can do the same thing with potions or anything else. And you can even have it check your health first. Like if you wanted a potion to trigger once you reach 20% health you could do this:

${Me.PctHPs} < 20

And if you wanted it to check your health and also check that you don't already have the potion active, you can combine them both like this:

${Me.PctHPs} < 20 && !${Me.Buff[put potion effect name in here].ID}
 
Last edited:
Pretty sure all that is automatic if the ini is correctly written.
Can you post the buff line you are using @dranged
 
This look right for a condition I am trying to create for a dot when gift of mana is active?

Cond19=${Target.ID} && ${Target.Named} && {Target.PctHPs} >5 && (${Me.song[Gift of Mana].ID}
 
This look right for a condition I am trying to create for a dot when gift of mana is active?

Cond19=${Target.ID} && ${Target.Named} && {Target.PctHPs} >5 && (${Me.song[Gift of Mana].ID}

2 things, I think you may need to specify which GOM has triggered, and why not just use the existing KissAssist GOM section?

Unless the DOT you want is a game changer why wait for a Named and a GoM? Why not just use your best dmg spells whenever you get a GoM?

Here's what I use on my 120 Mage...

[CODE title="120 Mage GoM Conditions under KA 12.xx"][KConditions]
ConOn=1
Cond10=${Me.Song[Gift of Mana (115)].ID}
Cond11=${Me.Song[Gift of Mana (120)].ID}

[GoM]
GoMSHelp=Format - Spell|Target, MA Me or Mob, i.e. Rampaging Servant Rk. II|Mob
GoMSize=4
GoMSpell1=Spear of Molten Luclinite|Mob|Cond11
GoMSpell2=Barrage of Many|Mob|Cond11
GoMSpell3=Spear of Molten Komatiite|Mob|Cond10
GoMSpell4=Roiling Servant|Mob|Cond11
[/CODE]
 
Thanks for the response. I am just exploring different condition checks for some custom Ranger inis I am making for different group and raid situations. Example one for bifold focus of the evil off cooldown to cast out mana intense dot, or while GOM is active etc. That condition I found elsewhere in an INI and just wanted to make certain it could work if I used it as a part of another condition set for some ideas I have brewing. Regarding the built in GOM section how does that compare with the dps list meaning will it supersede the rotation while GOM is active if a listed spell is off cooldown?
 
Thanks for the response. I am just exploring different condition checks for some custom Ranger inis I am making for different group and raid situations. Example one for bifold focus of the evil off cooldown to cast out mana intense dot, or while GOM is active etc. That condition I found elsewhere in an INI and just wanted to make certain it could work if I used it as a part of another condition set for some ideas I have brewing. Regarding the built in GOM section how does that compare with the dps list meaning will it supersede the rotation while GOM is active if a listed spell is off cooldown?

I have found it's best to always have something in the GOM section that you KNOW will fire so that it doesn't get hung up in there. For example on my shaman the 4th option is a group Heal Over Time which always casts so the shaman can get back to the Heal or DPS sections.

[CODE title="120 Shaman GoM section"][GoM]
GoMSHelp=Format - Spell|Target, MA Me or Mob, i.e. Rampaging Servant Rk. II|Mob
GoMSize=4
GoMSpell1=Chaotic Venin|Mob
GoMSpell2=Fleshrot's Spear of Venom|Mob
GoMSpell3=Ander's Bite|Mob
GoMSpell4=Spirit of Renewal
[/CODE]
 
Guide - KissAssist Conditionals: Reference - KA11 Edition

Users who are viewing this thread

Back
Top
Cart