In development, there is a problem often people dont really see, and while it is simple it is elusive.
There is a C version for this code, but in this instance, using Blueprints if gets more “visual”.
There is a “Is Valid” there, and a “Is Valid + branch” after. On a first glance, they “would” do the same thing, one check if it is valid, and the other checks if it is valid and branch if the condition is negative. Nothing wrong with it, but ONE SIMPLE THING.
If the TARGET there asks for the Surface Type BEFORE the code verifies if the target is valid, doesnt matter if it verifies AFTER asking for anything from the target.
Some might say about the fact that the specific box will first verify if it is valid and then verify the value, and that would be correct if the actual decision of if it is negative would not require the target to be asked about the priority to be evaluated, effectivelly using the target before the Is Valid block. But thanks for playing.
This is akin to that interesting math problem that asks:
2 plus 2 divided by 2 equals 3.
PEMDAS joke. Well, that is something like that.
What that means for you player that is not seeing this is that once for some reason the target is not valid, it becomes this:
When I say since some time in 2017 that this happens, that is the reason. Mods can have that type of code, but that precise part I posted up there is not part of a mod code, it is not even related to any mod I develop or use.
It is part of a void mod that does nothing else but add -is valid- boxes everywhere the code needs one but doesnt have it.
The lad who picks up the shoe seeing it fits nicely, “you are welcome”.