Why do variable names in functions conflict?

For example I have a blueprint interface function called SetLocation. It accepts a vector variable named Location. I then make a blueprint function library. In that I create a function called SetLocation. I add a vector variable to it and try naming it Location. It will refuse to compile and revert the name to NewParam. My workaround has been to add a space acter it so "Location " instead of “Location”. Why in the world does it do this? Is there a reason for this wonky conflict?

Input values of a function are predefined variable of the function.

You do not need to pull wires from them inside a function. They already exist. Think of them as hidden locals.

Huh? That’s not what I was asking. When creating an interface function its variable names conflict with other functions.

Not having this issue.

BPI w/function SetLocation, input variable “Location”.
BPL w/function SetLocation, input variable “Location”.

image

Only time this issue arises is if you have a local variable already created, then try to add an input w/same name. Or vice versa.

I don’t know why it happens or what specifically causes the conflict, but there is in fact a conflict. Another one is between BPI function names and BP variables. Example as follows.

BP Variable: Location
BPI Function: Location
Result: BP Variable will be renamed to Location_0 on compile.

ive had this problem too, it probably occurs when you add the interface because then you would have 2 functions in the BP with the same name.

its not really a problem though i think you would want to avoid this, you could just prefix the bpi with something like interface set location