The CLASS_TALENTSLOAD_ERROR StaticPopup shows up when you attempt to change your talent loadout while one of the altered ability nodes is on cooldown. This popup does not exist until you encounter this condition and it is not created anywhere in the UI code, hinting at this being defined C-side. It is supposed to appear like this:
If you register the event TRAIT_TREE_CHANGED, this popup breaks and displays nonsensical text instead of the intended string. Seeing as the above popup is defined C-side, there's probably some pointer for the string that should be displayed, but for whatever reason, it's disrupted by frames registering the TRAIT_TREE_CHANGED event, in which case it'll appear like this, or some other combination of nonsense letters and symbols:
Repro
Create two talent loadouts, one containing some ability, one without that ability
Run /run EventRegistry:RegisterFrameEventAndCallback("TRAIT_TREE_CHANGED", function() end);
Use the ability mentioned in step 1 to put it on cooldown, then attempt to change to your other talent loadout
???
Broken popup
Alternatively, simply having the EventTrace window open when you trigger the popup works as well, and additionally causes the game to freeze for a moment, then gives you a much longer broken string. Curiously, this particular instance of the broken string appears to be consistent every time you trigger it, while the other method can result in varying strings.
The
CLASS_TALENTSLOAD_ERROR
StaticPopup shows up when you attempt to change your talent loadout while one of the altered ability nodes is on cooldown. This popup does not exist until you encounter this condition and it is not created anywhere in the UI code, hinting at this being defined C-side. It is supposed to appear like this:If you register the event
TRAIT_TREE_CHANGED
, this popup breaks and displays nonsensical text instead of the intended string. Seeing as the above popup is defined C-side, there's probably some pointer for the string that should be displayed, but for whatever reason, it's disrupted by frames registering theTRAIT_TREE_CHANGED
event, in which case it'll appear like this, or some other combination of nonsense letters and symbols:Repro
/run EventRegistry:RegisterFrameEventAndCallback("TRAIT_TREE_CHANGED", function() end);
Alternatively, simply having the EventTrace window open when you trigger the popup works as well, and additionally causes the game to freeze for a moment, then gives you a much longer broken string. Curiously, this particular instance of the broken string appears to be consistent every time you trigger it, while the other method can result in varying strings.