As an update I've managed to get what I needed working for group members in every zone tested so far with these.
Code:
CHECKING FOR MOUNTABLE:
local isMountable = false
for iD = 1, GetGroupSize() do
local playerID = GetGroupUnitTagByIndex(iD)
local playerCharName = GetUnitName(playerID)
local playerDisplayName = GetUnitDisplayName(playerID)
local mountedState, hasEnabledGroupMount, hasFreePassengerSlot = GetTargetMountedStateInfo(playerDisplayName)
if mountedState == MOUNTED_STATE_MOUNT_RIDER and hasEnabledGroupMount and hasFreePassengerSlot then isMountable = true else isMountable = false end
Code:
CHECKING FOR RANGE:
local _, selfX, selfY, selfH = GetUnitWorldPosition("player")
local _, targetX, targetY, targetH = GetUnitWorldPosition(unitID)
local nDistance = zo_distance3D(targetX, targetY, targetH, selfX, selfY, selfH) / 100
Appears to be working flawlessly all day so far