What script do I use to make the player unequip his weapon, without knowing which one it is? I tried player.UnequipItem Weapon, but while the GECK accepted it, it didn't do anything in game...
You could use http://geck.gamesas.com/index.php/EquipItem with the "NoUnEquip" flag using an invisible weapon and whatever was equipped will be unequipped, remove it later and the NPC should then equip something else. I've gotten this to work with an invisible helmet in an experiment where checking a Form List or scripting the unequipping of individual items was undesireable, so it will probably work for a weapon as well.
You might want to script the invisible weapon with something like the below though so they'll lose it if in combat and equip a real weapon, just in case.
scn InvisibleWeaponSCPTRef rNPCBegin OnAdd Set rNPC to GetContainerEndBegin GameMode If rNPC.IsInCombat RemoveMe EndIfEnd