The project relies on a few files to function properly. The first of these is a JSON file which holds all of the information about each item including ID, name and description among other things. The items in the file are organised in alphabetical order to allow for item sorting in the inventories. The first object in the file is purposefully empty to ensure that the inventory still displays correctly.
Along with the JSON file, the project uses a dictionary to keep track of how many of each item the player has. The dictionary has a key for each item, the value of which changes as the player picks up or drops items. This is then displayed in the inventory alongside the item description.
The remaining project files are all arrays – one for each inventory category. You could create them at runtime, but for testing purposes, I find it easier to have the arrays as project files so you can edit them easily using Construct 3's array editor. The array objects associated with each array file are also stored in a family (Inventories), with a few instance variables – CategoryName, CategoryID and InvPages.
Once the game has been run once, and the player has picked up or dropped an item, the current state of the arrays and ItemNumbers dictionary are saved to Local Storage so when the game opens for a second time, the pre-existing data can be loaded into the game instead of fresh project files.