promotional bannermobile promotional banner

Simple Taunt Announce - reborn

Simple Taunt Announce reborn
Back to Files

SimpleTauntAnnounce 1.1.4

File nameSimpleTauntAnnounce-1.1.4.zip
Uploader
DonagingDonaging
Uploaded
Apr 24, 2026
Downloads
197
Size
32.7 KB
Flavors
Retail
File ID
7979925
Type
R
Release
Supported game versions
  • 12.0.1
  • 11.2.7

What's new

1.1.4 — Midnight secret boolean hotfix IV (2026)

Follow-up hotfix to 1.1.3. The previous pcall pattern wrapped only the call to the unit API, but Midnight's secret boolean system also blocks boolean evaluation of the return value when that evaluation occurs outside the pcall. This caused 1401+ errors per session from SafeUnitIsUnit.

Bug fixes

  • Boolean evaluation of secret values must occur inside pcall. pcall(UnitIsUnit, a, b) returns the secret boolean as its second value; testing it with ok and result and true or false outside the pcall still throws. Fixed by wrapping both the call and the if r then check inside a single closure for all three helpers:
    • SafeUnitIsUnit — primary fix (reported error)
    • IsPrimaryTank — preventive fix (same vulnerable pattern)
    • IsUnitInGroup — preventive fix (same vulnerable pattern)

Technical notes

The correct Midnight pattern for any combat/unit API that returns a boolean:

local ok, result = pcall(function()
    local r = SomeAPI(args)
    if r then return true end   -- boolean test inside pcall
    return false
end)
return ok and result or false   -- result is now a plain bool, safe to test

Direct if/not/and tests on the return value of pcall — even when pcall itself succeeded — are not sufficient if the API returns a secret boolean.


Follow-up hotfix to 1.1.2. Blizzard extended the secret boolean system to UnitIsUnit(), which now returns a tainted proxy for non-player unit IDs such as "targettarget". This caused 1052 error spam per session.

Bug fixes

  • UnitIsUnit() returns a secret boolean. All five call sites replaced with a new SafeUnitIsUnit(a, b) helper that wraps the call in pcall and returns a plain Lua boolean. Affected paths:
    • Own-taunt detection (player / pet / vehicle check)
    • findNewTank loop (skip-self guard)
    • PATH B group-member guard

Technical notes

Midnight's taint system now covers the return values of UnitIsUnit, UnitDetailedThreatSituation, UnitInRaid, UnitInParty, GetRaidTargetIndex, and spellID from UNIT_SPELLCAST_SUCCEEDED. Any boolean or identifier returned by a combat/unit API in Midnight must be consumed through pcall. Direct if/not tests will crash.


This mod has no additional files