Grab all items by using $game_party.all_items Check those items using ".any?" function to check if the item in the said category exist And if you're using a custom category, it largely depends on how it's done as the default code has no category except if it's being a weapon, armor (which it's an entirely different object), standard item, or key item. So if they're using a custom categorization, you have to make it based on what script they're using. Also, you probably need a custom refresh function so that it also dynamically change the col_max based on how many categories will be shown. I think this will be the hardest part though.