Difference between IsValidLowLevel and IsValidLowLevelFast

Greetings,

My question is pretty simple: when should I use each one of these methods. I know that both do a null check, and more additional checks to see if the object is valid, but what is the difference, and which one is worth using in a multiplayer Environment. In this link, it says that IsValidLowLevelFast is a faster version of IsValidLowLevel with less accurate name checks. I would like more info on that, and I would like to know on what exactly should I base my decision on. Another info that would help you guys, is that I’m working on a multiplayer game.

And thanks.

Look up yourself:

https://github.com/EpicGames/UnrealEngine/blob/f794321ffcad597c6232bc706304c0c9b4e154b2/Engine/Source/Runtime/CoreUObject/Private/UObject/UObjectBase.cpp#L262

On breath look seems like fast one is designed to throw false faster then normal one which will go right in to searching.

If you have UPROPERTY varable you should not have a problem of potential invalid pointers as they set to null when objects gets destroyed, so go ahead and use normal null check. If you have TWeakObjectPtr use IsValid() function in it, use TWeakObjectPtr in places where UPROPERTY can’t be used but remeber it wont keep object alive. Low level function are if you got pointer from somewhere unknown and somewhere not mantained by the engine, i also see it is used in case of multithreading (Uobject in render thread), anywhere where invalid pointer can occur.