Can I make it so the inventory item doesn't stay selected after using it on something?
You can use
I.Active = false;
at the end of each UseInv script, and UnhandledUseInv
To do it automatically is a bit trickier:
Something like this in the global script might do the trick:
in the header, add a variable:
bool m_invClick = false;
in OnMouseClick, add this under the comment: // Left click with active inventory, use the inventory item
m_invClick = true;
Then in UpdateBlocking
if ( m_invClick )
{
I.Active = null;
m_invClick = false;
}