The first thing is to make sure that all the weapons are passable; if player's movement code uses IGNORE_PASSABLE, the player / the weapons won't get stuck.