This is accualy possible with Bots. All you need is Bot Events, and VCE. Heres how I would do it:
Make a spawn under the floor, about 3 blocks down. Then spawn a bot on it using Bot Event's Standard Bot. Add the following events:
OnBotSpawn > Bot > EditApearance > "HideNode" "ALL" "(leave this)"
OnBotSpawn > Self > FireRelay
(Delay around 200) OnRelay > Self > FireRelay
OnRelay > Self > VCE_IfValue > "<var:(Player or Vehicle, not sure what will work):item1>" "==" "(Item name)" " "
(Delay 30000) OnVariableTrue > Self > RespawnVehicle (To remove the item, you could use SetInventory or something else)
OnVariableTrue > Self > DoWhatever
First the bot will spawn, and become invisable. It will also start a relay. Then when you throw the weapon, the bot will pick it up, making it item 1. The relay will know that he has the item, then respawn the bot after 30 seconds to remove the item (You can use RemoveItem, or SetInventory if you have them).
You will need to make sure that you cant throw the weapon anywhere else and get away with it though. I recomend testing around seams for this.
Its quite clever what you can do with bots.