Hello ,in case anyone wanted to have fewer instances of this plugin on their layout i crudely modified it to use 'tagged' rays and from now on the expression to access hit data requires tag ,as an example : Trace.HitX("tag")
It may be possible to attain such behaviour with original plugin but i couldn't grasp it.
I'm not sure why people keep insisting that you need more instances of the plugin than you actually do. You only need 1 instance per collision configuration, and that's if you want to avoid re-configuring a single instance constantly (you should want to avoid that, don't waste CPU cycles just because you can).
All you need to do is fire off a trace and then use the data from it in the events immediately following the one that fired it, and not fire another trace until after you are done with the data from the previous trace. If you need to keep the data around while performing another trace, store it in some variables.
You can easily service 1,000 different uses of the trace plugin in a single tick and with only 1 instance. If you think you need more for any reason other than multiple collision configurations, please explain the exact scenario you believe requires it.