Mod Manager for Stardew Valley
Toen de multiplayer versie van dit game beschikbaar kwam en mijn oudste om medespelers vroeg leek me dit een leuke gelegenheid om wat (online) samen te doen. Dat viel wat tegen maar toen ik vervolgens het spel nader ging leren kennen ontdekte ik dat ik het leuk genoeg vond om zelf te gaan spelen alleen mods (door spelers gemaakte modificaties), daar begon ik voorlopig nog niet aan.
Na een aantal jaren had ik de standaard versie van het spel toch wel gezien en ben ik toch eens voorzichtig naar mods gaan kijken. Eén van de zaken die ik tegenkwam was een mod manager, geschreven in... Python, dus daar moest ik gelijk van weten hoe dat ding in elkaar zat. Andere zaken waren in c# of mono of zoiets geschreven en gecompileerd maar hier zat ook source bij dus dat was mogelijk.
De code doorlopend vond ik hem al gauw te bewerkelijk - of gewoon teveel "anders dan ik het zou doen" - maar het gaf me wel het idee om het gebruiken van mods wat te automatiseren.
Mijn eerste poging was vrij simpel (getoond is de boven- en onderkant van het scherm):

De configuratie werd buiten het programma om met de hand bijgehouden, dus dat nodigde uit tot een grondige herinrichting en dat was weer aanleing voor allerlei andere ideeën en nu ziet het er zo uit:

Het is een vehikel geworden om het niet alleen het aan- en uitzetten, maar ook het installeren van mods te vergemakkelijken, en ook een beetje een soort administratie te doen.
Gemaakt met Python en PyQt.
Update: Omdat ik Stardew Valley nu ook op de Steam Deck speel en deze een "desktop mode" heeft waarin je ook mods kunt downloaden en installeren, heb ik een variant gemaakt die de Tkinter GUI toolkit gebruikt (meegeleverd met Python dus daar ook aanwezig) zodat ik dit programma ook daar kan draaien. Deze is tevens de zoveelste demonstratie van mijn filosofie over het "inklikbaar" maken van een GUI toolkit (nauwelijks wijzigingen nodig aan de applicatiecode).

De Steam Deck heeft iets andere locaties waar downloads en savefiles zijn opgeslagen dus heb ik ook een functie bijgemaakt om deze in te stellen, vandaar dat er vooraan een knop is bijgekomen (ook in de Qt versie).
source: https://github.com/albertvisser/sdvmm/
documentatie: /docs/sdvmm/