• 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
KissAssist

KissAssist Release KissAssist (3 Viewers) 12.002.039

No permission to download
Try using the
Code:
/switchnow
command,

Code:
/switchnow 0
should be good if they just aren't switching fast enough,
Code:
/switchnow 1 ${Target.ID}
will have them switch and HOLD that target even if your MA switches to another target


Hi Dread.

Thank you for this advice to help with issue #1.

However I need more clarification please.

I don't find this txt in kissassist, where is it located?

How do i use this information when using kissassist?

What I do find in kissassist is pictured below ( TargetSwitchingOn=0 )
All character's .ini files are the same.

Please advise.
 

Attachments

  • Screenshot 2026-06-20 104859.png
    Screenshot 2026-06-20 104859.png
    5.3 KB · Views: 0
Hi Dread.

Thank you for this advice to help with issue #1.

However I need more clarification please.

I don't find this txt in kissassist, where is it located?

How do i use this information when using kissassist?

What I do find in kissassist is pictured below ( TargetSwitchingOn=0 )
All character's .ini files are the same.

Please advise.
Targetswitchingon is for your ma, so you could manually switch targets and not snap back to it

Nothing directly to do with switchnow or backoff
 
Targetswitchingon is for your ma, so you could manually switch targets and not snap back to it

Nothing directly to do with switchnow or backoff
Ok nice, thanks for clarifying that.
I manually drive from my MA with no macros so this is not relevant in my case.

I am barely novice/intermediate with MQ let alone coding, but I feel like there is something broken in the behind the scenes coding logic in kiss both for melee and my wiz/mag/enc nuking issues as I don't see any .ini configuration things to address this.

Does that sound like a fair assessment or am I missing something?
 
Ok I did some investigation using Claude Ai (since I am not a coder)
It has determined for my stuck melee issue #1 that Kiss is built around group action only.
Raid assist sub routines were built but abandoned and left unfinished/not implemented.

When in a raid it breaks my native group main assist setting, and that leaves my assisting toons with no action to trigger switching mobs mid fight.

Attached is a bug report with details and corrections to fix this in the main release. (If Claude is correct of course)

It also rewrote a corrected personal version of kissassist.mac for me which I will test as soon as i can to confirm its fix worked correctly.

Hope this is helpful, and can be implemented into live Kissassist.

Next to work on is the casters not chain nuking properly.
 

Attachments

Here is a copy paste of the bug report in case that file does not work.

Bug Report: Followers don't retarget when raid Main Assist switches targets​


Component: Sub CombatTargetCheck / Sub CombatTargetCheckRaidAffects: Any raid (12+ characters across multiple groups), regardless of roleSeverity: High for raid users — followers attack a single target and never switch even after the raid MA moves on, requiring manual intervention or a full combat reset to recover.


Summary​


In raid format, non-MA characters never notice when the designated raid Main Assist switches targets mid-fight. They correctly assist onto the first target in an engagement, then get stuck on it (or its corpse) until something external forces a re-target (e.g. /switch, a broadcasted target ID, or the mob despawning).


This does not happen in pure group play with a properly set in-game Group Main Assist — that path works as designed. It is specific to raid mode, where the in-game raid assist designation overrides/replaces the native group Main Assist flag, and the macro has no live mechanism that follows the raid assist target instead.


Root cause​


There are three contributing issues, all in the same area of code:


1.​


| Line ~2311, in CombatReset:<br>/if (!${IAmMA} &amp;&amp; ${TargetSwitchingOn}) /varset TargetSwitchingOn 0<br><br>| Line ~8838, in role setup:<br>/if (${TargetSwitchingOn} &amp;&amp; !${IAmMA}) /varset TargetSwitchingOn 0<br>

This is presumably intentional (TargetSwitchingOn appears designed to let the MA react to a manually-changed Target.ID}), but it means followers have zero fallback to this mechanism — they're entirely dependent on the Group.MainAssist/raid-assist detection block in CombatTargetCheck working correctly.


2. The live retarget gate in​


| Sub CombatTargetCheck, ~line 1353<br>/if (${Spawn[=${MainAssist}].ID} &amp;&amp; ${Group.MainAssist.ID} &amp;&amp; ${Spawn[=${MainAssist}].ID}==${Group.MainAssist.ID}) {<br> /if (!${IAmMA}) {<br> /if (${Target.ID}!=${Me.GroupAssistTarget.ID}) {<br> /if (${MyTargetID}!=${Me.GroupAssistTarget.ID} &amp;&amp; ${Spawn[id ${Me.GroupAssistTarget.ID} npc].ID}) {<br> /varset MyTargetID ${Me.GroupAssistTarget.ID}<br> }<br> }<br> }<br> ...<br>} else {<br> | falls back to CalledTargetID / AttackCalled broadcast event only<br>}<br>

This is the sub that's actually called every combat tick (from inside Sub Combat's attack loop, and elsewhere). It only ever checks Group.MainAssist/Me.GroupAssistTarget. When in a raid, the native in-game Group Main Assist designation gets overridden by the raid assist designation, so Group.MainAssist.ID no longer matches Spawn[=${MainAssist}].ID}, and this whole block is skipped. Followers fall into the else branch, which only updates via CalledTargetID, populated by the AttackCalled event — i.e., it only works if something explicitly broadcasts a target switch and the follower's broadcast plugin (EQBC/DanNet) receives it. There is no native polling of raid assist state at all in the sub that's actually called.


3.​


grep -n "call CombatTargetCheckRaid" kissassist.mac<br>→ (no results)<br>

CombatTargetCheckRaid is defined (~line 1420) but never invoked anywhere in the macro. Every actual call site goes to the group-only CombatTargetCheck.


Even setting that aside, the sub itself doesn't fully implement raid support:


/declare CIDCheck int local 0<br>/if (${Raid.Members}) {<br> /varset CIDCheck ${RaidTargetID}<br>} else {<br> /varset CIDCheck <br>}<br>| Check target matches MA if group mainassist assigned and MA is in group<br>/if <br>/if (${Spawn[=${MainAssist}].ID} &amp;&amp; ${Group.MainAssist.ID} &amp;&amp; ${Spawn[=${MainAssist}].ID}==${Group.MainAssist.ID}) {<br> ...<br>

CIDCheck is computed from ${RaidTargetID} but then never referenced again anywhere in the sub — the actual gate is still the same Group.MainAssist check as the non-raid version, so even a wired-up version of this sub would behave identically to CombatTargetCheck and still fail in raids. There's also a stray, condition-less /if line immediately above the real one, which looks like leftover/abandoned edit debris.


4.​


| Sub InitData, line ~16240 (called exactly once, at line ~307, before the main loop starts)<br>/noparse /varset RaidTargetID ${If[${Me.RaidAssistTarget[${RaidAssistEntry}].ID},${Me.RaidAssistTarget[${RaidAssistEntry}].ID},${If[${Me.XTarget[${XTSlot}].ID},${Me.XTarget[${XTSlot}].ID},0]}]}<br>

InitData runs a single time during macro startup. RaidTargetID is therefore frozen at whatever the raid MA happened to be targeting (if anything) the instant the macro launched, and never refreshes. Even if CombatTargetCheckRaid were wired in and its CIDCheck value were actually used, it would still be stale for the entire macro session.


Net effect​


There is currently no live path for a follower to detect that the raid Main Assist has switched targets:


  • TargetSwitchingOn → forced off for non-MA.
  • Group.MainAssist → not populated/matching once a raid assist designation is active.
  • CombatTargetCheckRaid → dead code, and incomplete even if called.
  • RaidTargetID → stale, computed once at startup.

The only thing that still works is the CalledTargetID/AttackCalled broadcast fallback, which depends entirely on something else explicitly sending a target-switch event (e.g. via the /switch bind) and the follower's broadcast plugin receiving it.


Suggested fix​


In Sub CombatTargetCheck, poll ${Me.RaidAssistTarget[${RaidAssistEntry}].ID} live (not the cached RaidTargetID) and use it as an additional/alternate branch alongside the existing Group.MainAssist check, e.g.:


/declare RaidAssistTargetID int local 0<br>/if (${Raid.Members}) /varset RaidAssistTargetID ${Me.RaidAssistTarget[${RaidAssistEntry}].ID}<br><br>/if (${Raid.Members} &amp;&amp; ${RaidAssistTargetID}) {<br> | raid assist path — compare against RaidAssistTargetID instead of Me.GroupAssistTarget<br> ...<br>} else /if (${Spawn[=${MainAssist}].ID} &amp;&amp; ${Group.MainAssist.ID} &amp;&amp; ...) {<br> | existing group MA path, unchanged<br> ...<br>} else {<br> | existing CalledTargetID/AttackCalled fallback, unchanged<br>}<br>

This mirrors the existing group-MA logic structure exactly, just sourced from the raid assist TLO instead of Group.MainAssist/Me.GroupAssistTarget, and polled every tick rather than cached once at startup. CombatTargetCheckRaid could then either be removed (since it's unused) or replaced by actually wiring this logic into it and calling it instead of CombatTargetCheck when ${Raid.Members} is true — either approach works; the important part is that something live actually checks raid assist state per-tick.


Reproduction​


  1. Build a raid of 2+ groups (12+ characters), each group running KissAssist.
  2. Set the in-game Group Main Assist on a tank in one group as normal.
  3. Have a raid leader (or anyone with raid assist privileges) set a raid Main Assist / Raid Assist 1, which overrides the group-level MA designation.
  4. Engage a mob; followers correctly assist.
  5. Have the raid MA switch to a new target (e.g. mob dies and the next target is picked, or the MA manually retargets).
  6. Observe: followers in groups other than the raid MA's own group (and frequently even within it, once Group.MainAssist stops matching) continue attacking the original target/corpse and never switch, until /switch is broadcast or some other external trigger forces it.

Environment​


  • KissAssist version: v12.002 (KissRevision = 039, per the macro's own /declare KissRevision string outer 039), maintained for RedGuides by Ctaylor22.
  • Tested in raid format only; group-only play with native Group Main Assist set is unaffected.
 
KissAssist Release KissAssist

Users who are viewing this thread

  • Fargrim
Back
Top
Cart