The Naughty Captain, I forgot to mention something regarding the code. I noticed after I pushed my original mod update (that caused a massive fiasco yesterday with folks using the mod before I sorted it out
) that you changed the cheevo code. I'm not mentioning this due to me not noticing but rather the way you have the cheevo function loops. If possible, it's ALWAYS best to loop or condition by keys of dictionaries/lists/tuples rather than values. Your original cheevo code (although it worked directly with the persistent but that's not relevant to my point) searched by dict key... which is orthodox. The new code searches by dict value which is not only not necessary but will get can get you caught with your pants down. Nothing is "wrong" in any coding practice per se, but there are certainly "best practices".
The above is not a criticism but simply a professional courtesy to consider as you continue to develop even more advanced coding fundamentals. So, please don't take it out of context... it's just a tidbit meant to assist, not to discredit.