Hitting G while holding objects groups them and calls onObjectDrop, but there's no useful way to differentiate between grouping and dropping. This is especially bad since trying to destroy the "dropped" object doesn't actually do anything, it still gets added to the stack. It's possible to just wait and check later, but that is not remotely as useful.

Code:
		print("Object OnDrop: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", droppedObject==nil )
		Wait.frames(function()
			print("- Dropped Frames 0: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 0)
		Wait.frames(function()
			print("- Dropped Frames 1: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 1)
		Wait.frames(function()
			print("- Dropped Frames 10: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 10)
		Wait.frames(function()
			print("- Dropped Frames 30: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 30)
		Wait.frames(function()
			print("- Dropped Frames 60: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 60)
		Wait.frames(function()
			print("- Dropped Frames 120: ", droppedObject.getName(), " :: ", droppedObject.held_by_color, " :: ", (not droppedObject),":", droppedObject==nil )
		end, 120)