I do not know any API that returns the info, maybe someone else got a better idea:
One could check it via the player buffs'
Lua Code:
local function PrintCharacterBuffs()
local unitTag = "player"
local numBuffs = GetNumBuffs(unitTag)
d("~~~~~~~~~~~~~~~~~~~")
d("Character buffs #: " ..tos(numBuffs))
if numBuffs > 0 then
for i = 1, numBuffs do
-- get buff infos
--** --- @return buffName string, timeStarted number, timeEnding number, buffSlot integer, stackCount integer, iconFilename textureName, deprecatedBuffType string, effectType [BuffEffectType|#BuffEffectType], abilityType [AbilityType|#AbilityType], statusEffectType [StatusEffectType|#StatusEffectType], abilityId integer, canClickOff bool, castByPlayer bool
local buffName, timeStarted, timeEnding, buffSlot, _, iconTexture, buffType, effectType, abilityType, statusEffectType, abilityId, canClickOff = GetUnitBuffInfo(unitTag, i)
d(">Buff #" ..tos(i)..": " ..tos(buffName) .. ", canClickOff: " ..tos(canClickOff) .. ", buffType: " ..tos(buffType) ..", effectType: " ..tos(effectType).. ", abilityType: " ..tos(abilityType) ..", statusEffectType: " ..tos(statusEffectType) .. ", abilityId: " ..tos(abilityId))
end
end
d("~~~~~~~~~~~~~~~~~~~")
end
This print's the palyer's buffs to the chat as debug messages.
You can check if canCickOff == false and maybe the buffType, effectType etc. could be stating it's a mundus.
In some cases the texture filenames also contain the word mundus or similar and thus you can find it via zo_plainstrfind.
Else the abilityIds should be unique (each mundus should provide have one).
Or maybe the names always start with a word like "Mundus: " (in German it's "Segen: ").
But unfortunately that string prefix is not available as SI* constant as it seems -> Only for the armory again it exists ("Mundus: <<1>>", -- SI_ARMORY_MUNDUS_STONE_LABEL)