Base class variable conflicts with Derived class variable (same name)

In addition to that…

When declaring a variable as UPROPERTY() or a function with UFUNCTION(), the literal name will be stored in look up table. Based my understanding and findings, it has to be unique so UE can somehow find a property by name then guess its type with abstractions and linking it to as BP variable node/function node.

(Please correct me if someone else has more detail knowledge in this, all I know is there is a look up table somewhere that being used for linking)

That is why UE4 doesn’t allow 2 identical names both marked as UPROPERTY() or 2 identical function name both marked as UFUNCTION(). For function, it means overloading UFUNCTION() isn’t possible, but possible if to do certain redirection. I believe such implementation is somewhere.