Make Variable Only Affect One Player

I’m making a game that’s going to be multiplayer so, when i pick up a powerup i want the only the character that picks it up to be affected.

would you even know how to make it affect everyone?

This is how I personally would approach it.
Pseudocode:

When player is overlapping powerup and player is pressing pickup button (optional) {
    Then get reference to who picked up the powerup {
        OnServer: Check if this is valid action by player
        OnServer: Add powerup effect to player
        OnServer: Remove powerup from world.
    }
}

That’s the part I’m stuck on, how would I get a reference to the player who picked it up in Blueprints?

You can use collision overlap to find exactly who is “touching” the item. When that happens, OnComponentBeginOverlap is triggered, and it gets information about the other object, in this case the player.

1: Start by adding a sphere collision to your pickupable item.

2: Make sure to enable OnBeginOverlap Events (scroll down in the details panel on the sphere collision.

3: OtherActor → Cast to player pawn to make sure it actually is a player pawn (now you have a reference to a specific player pawn), then pass the information on to whatever code that deals with removing the item from the world and applying the powerup effect on the player.

To get the player controller, simply get which controller is possessing this pawn.