Blueprints-- Networked game Hallucinations: Different random players see different things?

Wanting to have a networked multiplayer psychological horror game.
Trying to figure out how I can select a random networked player, and show that one specific player something different than what the others see.

For Example:
P1, P2, P3 are all in a room.
Game randomly selects P1 to see a demon attacking. P2,p3 doesn’t see that demon…they only see a dog, and think p1 is going crazy.

In another area, game randomly selects P3 to hallucinate. P3 sees a lil canyon separating him from the other two.
whoa, cool jetpack. Collects “jetpack” and “flies” over to the other two.
Other two players see P3, Turns out he just has a kid’s backpack, making woosh noises, running across the open field.

Later on, P3 walks in on P1 and P2.
P1 thinks he’s beating up a demon with a cool “heavenly” sword.
P2, think’s they are digging inside of a kid’s sandbox to find some special key.
P3, is mortified because he sees a poor lil old lady being torn to shreds.
When reality kicks in, it was just pillows on the bed.

MY Main Question Is: How do I go about selecting a random player, and displaying certain things to only them, while others see something else?
As well, would this be in Game Mode, or level or Separate blueprint? Or is this a C++ only kind of thing and I’m SOL?