What's New: Multiple Inventory Support GF now supports multiple inventories. IItemCollection: An interface for grouping items created by the InventoryManager into either ItemLists or ItemMaps for easier management, searching, iteration, etc. Item List: A list (very similar to List<InventoryItem>) which Game Foundation manages to ensure all items are valid and have not been removed from Game Foundation system. Item Map: A map (very similar to Dictionary<string, InventoryItem>) which Game Foundation manages to ensure all items are valid and have not been removed from Game Foundation system. Stackable Inventory Item StackableInventoryItem now exists (derived from InventoryItem), along with corresponding StackableInventoryItemDefinition to expose a quantity member that can be used to store multiple items in one InventoryItem to improve performance and reduce Game Foundation memory usage. Reward System The Reward System lets you customize rewards by type (for example, coins or other in-game items), frequency of payout, and Availability properties relating to reward cooldown and expiration. The settings you choose for these properties determine how a player can interact and claim a reward in the game. Reward prefabs allow devs to build Reward Popup UI without writing code. ResourcesAsset Static Property Static Property has a new type: ResourcesAsset. It stores the path of an asset. Game Foundation Initialize Component A component that allows developers to initialize Game Foundation. This component can be added to the scene by using the menu item “Game Foundation/Create Game Foundation Init GameObject”. IExternalValueProvider The IExternalValueProvider gives you the possibility of overriding some data from your local catalog (i.e. `GameFoundationDatabase`) with any third party you want. This is particularly helpful if you want to conduct some A/B testing in your local catalog. Changed Core The package was renamed from com.unity.game.foundation to com.unity.game-foundation. GameFoundation was renamed to GameFoundationSdk. It removes the ambiguity with the namespace. GameFoundationSdk.Initialize doesn't take callbacks anymore. It returns a deferred instead. InventoryManager class is obsolete. Replaced by GameFoundationSdk.inventory. WalletManager class is obsolete. Replaced by GameFoundationSdk.wallet. RewardManager class is obsolete. Replaced by GameFoundationSdk.rewards. TransactionManager class is obsolete. Replaced by GameFoundationSdk.transactions. Transaction System TransactionRewards has been renamed to Payout. BaseTransaction.rewards has been renamed to BaseTransaction.payout. This also affects VirtualTransaction and IAPTransaction. Currency and InventoryItemDefinition now have a common parent TradableDefinition to ease working with them when handling transactions. For the same reason: `InventoryItem` and CurrencyExchange both extend ITradable`; CurrencyExchangeDefinition and ItemExchangeDefinition have been merged into ExchangeDefinition (including there related config and serializable objects). This means that costs and payouts in the existing database will be erased and need to be recreated. Catalog GameFoundationDatabase class is now Catalog and the file that was called GameFoundationDatabase.asset is now called GameFoundationCatalog.asset. GameFoundationDatabaseSettings class is now CatalogSettings and the file that was called GameFoundationDatabaseSettings.asset is now called GameFoundationCatalogSettings.asset. GameFoundation.catalogs.tagCatalog is now GameFoundationSdk.tags. GameFoundation.catalogs.tagCatalog.FindTag()` is now GameFoundationSdk.tags.Find(). GameFoundation.catalogs.tagCatalog.ContainsTag() is now GameFoundationSdk.tags.Contains(). All catalogs (besides tags) have been consolidated into one. For example, GameFoundation.catalogs.inventoryCatalog.FindItem(someKey) is now GamefoundationSdk.catalog.Find<InventoryItemDefinition>(someKey). CatalogBuilder.CreateTag(string) is obsolete. Replaced by CatalogBuilder.GetTag(string, bool). Prefabs All static property text fields on component's custom inspector windows have been changed to dropdown menus. All the fields on custom inspector windows of components have been regrouped. Prefabs and their sample scenes have been moved into a `.unitypackage` file within this package. It can be installed into your project's Assets folder by using the menu item "Game Foundation/Import Prefabs and Sample Scenes". Store View prefab (and other prefabs) now update their content display when being re-enabled using SetActive(true).