Personally I wouldn’t have the client do any “Authoritative” actions… attaching items it doesn’t yet own. This just bloats the codebase where it isn’t warranted.
Have to remember we are talking about milliseconds for RPC’s to reach the server. Then typically one server tick (33.333ms @30Hz) for processing and sending the result.
Average human blink is 300-400ms.
This is why I use a montage to fill the wait time. The pickup montage is roughly 2s. That’s 2,000ms.
Even with a 500ms ping the player will be updated before the montage ends.