It looks like questscategory.txt is redundant with the Quest enum in QuestDatabase, or at least could be incorporated into that instead.
I'm curious what this is supposed to show that the Quest Tracker doesn't already show in the charpane.
There are a lot of whitespace changes that would not make it into mafia.
I'd have added the categories to questslog.txt rather than adding a new file.
I'm not sure what QuestDatabaseTest is for.
The real issue I can see is that currently the information in questslog.txt doesn't contain all the quest text from the quest log, just that which can be reasonably matched. Therefore we'd need to rebuild that data manually, probably involving another lookup file, and some other coding. That's quite a lot of extra steps for something which is already available in the relay browser.
My goal is to have something that completes steps of quests. The quests dropdown implements a few of these already, but I wanted something that changed dynamically with what quests were actually active.
I don't think I agree with that being a good goal. The leaflet makes sense since it's identical every run, and if you have everything then the tower is incredibly straightforward, but I probably wouldn't have even included the tavern quest. Most other quests are more complicated than that, stuff can change with each challenge path, and overall I don't think it's worth adding that complexity to constantly support.
Scripts are a better place for quest completion, in my mind.
This would also be at odds with the design of Mafia. One of the main guiding principles of Mafia is to avoid KoL server hits wherever possible. Putting listeners on all the quest tracking preferences (and sub preferences) and hitting the quest log each time they change would be a lot of extra hits (and quite a number of them change mid-combat, so would fail, or need to be handled individually). You could get the quest log data (for updated quests) from the character pane in relay browser without extra KoL hits, but this would not be exposed in the api, so wouldn't update when automating. As the great relay script Guide shows, there are many things you want to consider that aren't quests, also.This is a first draft, I think it would make more sense to get the step text from the quest log page instead of the data files in the final version. You're probably right that it would be too much work if these were the only features, but I have more ambitious features in mind and needed a place to put them.