I have a method decorated with the meta BlueprintThreadSafe and BluprintPure which i would like to use in the state transition node on the anim blueprint. However unreal still gives a warning that it is not thread-safe. i call it on a component of the character. The reference to this component is aquired in the event graph of the anim blueprint. Although the blueprint warning points to the method GetCoverComponent as non thread-safe, it doesn’t do so if i only read a value of a variable from the same component.
can confirm, it does not work for us either in 4.18.2. I think it stopped working sometime at the end of last year, so it can be the update to 4.18.2 from 4.17 for us. Not sure in which version between 4.17 and 4.18.2 it broke, though.
According to Class Specifiers | Unreal Engine Documentation the meta tag BlueprintThreadSafe can only be used with functions in a Blueprint Function Library class, UBlueprintFunctionLibrary.
Those functions needs to be static to work.
Basically, this is all you need UFUNCTION(BlueprintCallable, BlueprintPure, Meta = (BlueprintThreadSafe), Category = “MyCategory”) and whatever else your function needs to be called with.
Only valid on Blueprint function libraries. This specifier marks the functions in this class as callable on non-game threads in animation Blueprints."
As everything that has a “Warning!” Label, Use with caution, Was having this issue in 4.2.6.2 following a tutorial on YT, Hope this helps another vigilant seeker, Happy Deving!