Conditional Actor Material Replication

TLDR; How do I make the bottle look grey/unidentified to players with relevant stat too low, but show a different material for players with sufficient stat level? (In world not in inventory).

In a multiplayer game, I’m looking for the proper method to conditionally set replication logic so that if two players are standing side by side looking at the same object in the game world at the same time, (in the screenshot example below, a potion bottle that contains poison), the player who is a low level will see an unidentified, generic bottle, but a higher leveled player with a sufficient stat level in “magic” or something will see the “true” poison material. I need this to happen passively, without any input or identify spell or anything from the player.

I’ve been searching for the answer to this one for a while. Any direction, even just a “this would be called…” in either C++ or Blueprint would be huge. I’ve played with doing this with replicatedUsing/repNotify and using the function logic to check player stats then set the actor materials, but I’ve still been coming up short on implementation.

The closest I’ve come to finding a similar question is here.