Thanks for your input Pancakez!
Sadly, that does not resolve my issue 
I can trace or trigger functions using a key press (and, I wasn’t aware of GetOverlappingActors, thanks for that!), so picking up an item with a raytrace is fairly easy for me.
What I’m not able to do is detect a collision and pick a power up based on that (think as health packs in Doom, Quake, Unreal Tournaments, etc.).
I’m surprised at this because it was really simple in Source Engine, yet I’m struggling hard in UE4.
Here’s a basic code:
Header
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "GameFramework/Actor.h"
#include "MyPickup.generated.h"
UCLASS()
class My_API AMyPickup : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AMyPickup();
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = Pickup)
UCapsuleComponent* BaseCollisionComponent;
/** StaticMeshComponent to represent the pickup in the level */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Pickup)
UStaticMeshComponent* PickupMesh;
/** Function to call when the Pickup is collected. */
UFUNCTION(BlueprintNativeEvent)
void OnPickedUp();
virtual void OnPickedUp_Implementation();
/** Called when the game starts or when spawned */
virtual void BeginPlay() override;
};
cpp file
// Fill out your copyright notice in the Description page of Project Settings.
#include "My.h"
#include "MyPickup.h"
// Sets default values
AMyPickup::AMyPickup()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = false;
// Create the root CapsuleComponent to handle the pickup's collision
BaseCollisionComponent = CreateDefaultSubobject<UCapsuleComponent>(TEXT("BaseCapsuleComponent"));
// Set the SphereComponent as the root component.
RootComponent = BaseCollisionComponent;
//Create the static mesh component
PickupMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("PickupMesh"));
// Start with physics simulation disabled, for easy manipulation on UE4 Editor.
PickupMesh->SetSimulatePhysics(false);
// Attach the StaticMeshComponent to the RootComponent.
PickupMesh->AttachTo(RootComponent);
}
// Called when the game starts or when spawned
void AMyPickup::BeginPlay()
{
Super::BeginPlay();
UE_LOG(MyCriticalErrors, Warning, TEXT("Spawning Power Up."));
}
void AMyPickup::OnPickedUp_Implementation()
{
UE_LOG(MyCriticalErrors, Warning, TEXT("Picked up."));
}
So, I’m not been able to find a way to make AMyPickup::OnPickedUp_Implementation() run.
I’m resistant to use BlueprintNativeEvent, because apparently I need to do it in blueprint editor (****, I really would love to setup this entirely in C++ code!)
So, any advice on how to make that run when a player touches the pickupable item ?
Also, it seems there’s no parameter in AMyPickup::OnPickedUp_Implementation(), so, I would have no idea how to get the colliding player when that run.
Thank you again 