Is there a better way to switch between dynamic and scalar parameters? (Material Blueprint)

This is what I currently have, it works but I feel like it’s kinda ugly and I was wondering if it can’t be improved somehow?


For starters, I couldn’t find any “Equals” node in the material blueprint the only way i found to compare numbers was the in-range node, is there really nothing like ‘==’/‘Equals’ in material bp?

Also, I’m checking if the dynamic parameter is set to default, if it is the scalar parameter is used, if it is not the dynamic parameter is used.

I am using constants to define the defaults of the dynamic parameters for the switch node, is there no better way to get the node’s defaults so I don’t have to change both the const and the dynamic parameter if i ever want to edit those defaults?

The final downside to this approach is that I can in most cases not use dynamic parameters to set things back to their default if the scalar was used in the material instance to change it because the dynamic is only used if it’s not at it’s defaults.

I found an alternative way that’s less forgiving on the scalar settings (if any dynamic parameter has been changed, all values contained in it will override any scalar values)

I found out I can use if instead of in-range, i’m not really convinced it’s any better though, if anything it’s messier.

This is the same thing but with in-range instead of if.

This doesn’t really answer any of my questions though, but it does mostly fix the final problem, I can’t truly set everything to default with dynamic parameters but so long as I just change one, all of the related ones kick in no matter if they’re default or not.

I could even take it further so that if any dynamic parameter gets changed in any way, all dynamic parameters will override all scalar ones.

But yeah, still wondering.