- parse savegame (thanks @Jupp56!)
- get game plugin load order
- read all loaded game plugins (.esp, .esm, .esl) in mod load order
- extract ingredient items from loaded game plugins
-
cache ingredient items and their effects to disk (invalidate if load order changes, game plugins are added/removed/modified)not necessary, it reads all the game data in around a second with a load order of >300 mods - generate valid potions from ingredients
- handle ingredient quirks https://en.uesp.net/wiki/Skyrim:Alchemy_Effects#Non-Standard_Ingredients (it's all in the game data ✅)
- (inclusive) OR:
- extract player inventory from savegame
- extract player inventory from game memory while game is running so it updates live
- match player inventory to known ingredient items
- look at https://github.com/cguebert/SkyrimAlchemyHelper for potion recommendation algorithm
- OPTIONAL: somehow read from game save which ingredient effects are already known by player (and which are not), then limit data to that
- OPTIONAL: look at (relevant) container inventory contents too, in addition to player inventory