rostermember¶
One slot in a group or raid roster. A cheap, always-available read that works
even when the member is out of range and has no loaded actor.
Returned by Group.Member[n],
Group.Members(), and the Raid equivalents.
This is not an actor. It carries what the roster
manager knows, which is less — no position, no effects, no encounter data — but
it is available for members who aren't loaded in your zone. To get the full
actor for a nearby member, look their ID() up:
for _, m in ipairs(mq.TLO.Group.Members()) do
local a = mq.TLO.Spawn[m.ID()] -- may be an unresolved actor
if a and a.ID() ~= 0 then
eq2.print(("%s is %.1fm away"):format(m.Name(), a.Distance()))
end
end
Members¶
number Index¶
- 1-based slot index.
string Name¶
- Member name.
number ID¶
- Member spawn id.
0when the slot is empty or the member isn't resolvable.
number Level¶
number EffectiveLevel¶
- Level and mentored level.
number PctHP¶
number PctPower¶
- Health and power,
0–100.
number RaidGroup¶
-
The member's raid sub-group number, 0-based (
0–3).-1when the member isn't in a raid sub-group — which includes every member on a Group roster, since group rosters have no sub-groups of their own.Warning
Zero-based, not one-based —
RaidGroup() == 0means "first sub-group", not "no sub-group". Test against-1for absence, never0.
string Zone¶
- The member's zone name. Group only — always
""on a Raid member.
bool ZoneKnown¶
- Is the zone field populated? Group only — always
falseon a Raid member.
bool InZone¶
- True when this member is physically in your zone. Group only —
always
falseon a Raid member. Useful for filtering cure/heal targets to people you can actually reach.
Cure classes¶
Group only. Every member below returns false / 0 on a Raid member.
Same signed-counter semantics as Me.Afflictions():
-1 means present but not curable, 0 means none, > 0 is a curable count.
number Trauma¶
number Arcane¶
number Noxious¶
number Elemental¶
number Curse¶
- The five signed counters. Use these when you need to tell
-1(incurable) from0(nothing).
bool HasTrauma¶
bool HasArcane¶
bool HasNoxious¶
bool HasElemental¶
bool HasCurse¶
- Per-class predicates. Each tests its counter
> 0, not~= 0.
bool HasCurableDetriment¶
- The OR of the five
Has*()predicates above. The correct cure gate.
bool HasIncurableDetriment¶
- True when any counter is
< 0.
for _, m in ipairs(mq.TLO.Group.Members()) do
if m.HasNoxious() then
eq2.cmdf('/target %s', m.Name())
eq2.cmd('/useability "Cure Noxious"')
break
end
end
Group vs Raid¶
| Member | Group | Raid |
|---|---|---|
Index, Name, ID |
✅ | ✅ |
Level, EffectiveLevel |
✅ | ✅ |
PctHP, PctPower |
✅ | ✅ |
RaidGroup |
always -1 |
✅ |
Zone |
✅ | always "" |
ZoneKnown |
✅ | always false |
InZone |
✅ | always false |
Trauma … Curse |
✅ | always 0 |
HasTrauma … HasCurse |
✅ | always false |
HasCurableDetriment |
✅ | always false |
HasIncurableDetriment |
✅ | always false |
Raid members do not error on those columns — they return the fail-soft zero
value. A raid-wide cure loop written against HasCurableDetriment() will run
silently and cure nobody. That data path only exists for Group today.