I’ll look at this for you and give your exact code a try real quick. I did notice something from just looking however. You’re passing a nullptr in for the 2nd argument for the Trace function which you could set to “this” instead so that it ignores the character. Have you tried that?
Pass a ECollisionChannel variable into the Trace function that is set to the same channel that the Pickup is set to “Overlap” or “Block”. In this case, the pickup is set to ignore both so no traces will ever pick it up.
You’ll need to either set Visibility or Camera to Overlap (if you want the trace to pick it up, but still be able to see through it) or Block (if you want the line trace to stop at it).
I apologize, I should’ve tested it before suggesting it. It doesn’t seem like the overlap responses work for line traces. You’ll want to use the Block setting. It’ll still go through the pickup but if you’re using LineTraceSingleByChannel it’ll only pick up one entry anyway. If you want to hit multiple things, you would need to use a multi line trace.