In dem Fall ist allerdings die Rubylösung derart banal einfach, dass es sich wirklich anbietet das per Script zu lösen.

Code:
class Game_Inventory
  attr_reader :weapons, :items, :armors
  attr_accessor :gold
  def initialize(w={}, a={}, i={}, g=0)
    @weapons = w
    @armors = a
    @items = i
    @gold = g
  end
end

class Game_Party
  alias initialize_group initialize
  def initialize
    initialize_group()
    @inventories = [Game_Inventory.new(@weapons, @armors, @items, @gold)]
    @group = 0
  end
  attr_reader :group
  def group=(value)
    @inventories[@group].gold = @gold
    @group = value
    @inventories[value] ||= Game_Inventory.new
    @weapons = @inventories[value].weapons
    @armors = @inventories[value].armors
    @items = @inventories[value].items
    @gold = @inventories[value].gold
  end
end
Die Gruppen legst du mit
Code:
$game_party.group = 0
fest. Die Gruppe 0 ist die Startgruppe. Du kannst beliebig viele andere Gruppen benutzen. Immer wenn du die Gruppe wechselst, hast du ein separates Item/Waffen/Rüstung/Gold-Inventar.