OnItemDropped hook clarification
I'm trying to figure out how items that are dropped actually become instances of DroppedItem. I've decompiled Assembly-CSharp and looked through the different Drop functions I could find, but I don't see anywhere how the item gets transformed into a DroppedItem entity. The reason I need this, my plugin spawns different items into the world based on coordinates saved to it's data file, and I have to create those entities from using ItemManager.CreateByItemID and then I call item.Drop at the position I want them in the world. The problem is, the Drop function drops them into the world as just BaseEntity and casting it as DroppedItem returns null, and I assume that's because a player didn't drop it. I need them to be of type DroppedItem so that I can remove their despawn by cancelling the despawn invocation. Any help would be greatly appreciated.
A DroppedItem is derived from WorldItem, if that helps. When items are dropped, it's created within Item.Drop when the OnItemDropped Hook is called.

Merged post

Also another tip, not sure what you're using to decompile but if you right click a reference, you could Anaylze, or check what other files references it. It's handy to know where things are being called, or instantiated. 
Some hooks were created for specific items, so not all hooks would be fully relevant for everything Rust has added since.