Because GMCP Char.Items.Add does not work while blind and Char.Items.Remove does, player.inv can get out of sync. To help get around this I've added sage.gmcp.signals.inv_remove_items_raw that sends the raw gmcp data instead of the Item object (that doesn't exist in this situation. Also adding player.prompt_stats.