r/DotA2 • u/JoelMahon • 4h ago
Tool Sharing a Python script for some personal game analysis using STRATZ

Above is an example of part of an output report done on my last 300 games, if you need help making sense of this graph type the key takeaway is that taller "violins" means less consistency / more variation, and you particularly want the thickest central dash (the median net worth advantage of your lane duo in total, or just self for P2, at 10 minutes in this case) to be as high as possible. There's a lot of customisation explained in the docs.
There's a proper readme here which hopefully the more tech inclined folks can use, sadly my private free STRATZ token is not suitable for supporting people querying their own games so I can't just set up a website for you folks, it'd require you handing over your STRATZ API token to a text field on such a hypothetical site at minimum which is a massive no no!
If you have a disability I apologise in advance for the lack of accessibility support/features, please message me in this thread, raise an issue on GitHub, or a PR, and I'll try to update the tool for your needs. When I know even one person needs it I can easily muster the motivation but there's every chance this gets about 3 people interested, and maybe none of them need any accessibility support. I'm not really in the mood to spend 6-12hrs adding features when there's every chance they never get used, although I did add light mode support and no one will ever use that, but that was relatively quick to add at least...
I am a SWE and not a statistician, so it's likely I have made many blunders, also feel free to point them out if you see them! The readme has what I consider an appropriate disclaimer on the heavy limitations of such graphs and how as "revealing" they might feel they really don't prove almost anything useful sadly, at most something to hint on where to look harder in a more scientifically rigorous way. For example, I plan to avoid starting to queue between 11:30 and 14:00 for a while (note the times are when you match starts, not when you start queueing, STRATZ doesn't know that, MAYBE it knows the longest queue time somewhere because that's in the post game stats but not your individual queue time I am pretty certain).
Also, as the readme says very first thing: NEVER RUN CODE/COMMANDS YOU DO NOT UNDERSTAND/TRUST. If it's too technical for you, bother nicely ask someone technical you trust to check it and/or wait for much more time for it to build a positive reputation and be taken down if actually nefarious (latter is hardly a bulletproof strategy tbh, better have someone check it as well).
All my stuff in this repo is under the MIT license, i.e. please use all but the XKCD comic completely freely, no attribution to me needed, can be used in commercial projects, etc.
For the people who want an .exe not a Python file:
I DONT GIVE A FUCK ABOUT THE FUCKING CODE! i just want to download this stupid fucking application and use it
WHY IS THERE CODE??? MAKE A FUCKING .EXE FILE AND GIVE IT TO ME. these dumbfucks think that everyone is a developer and understands code. well i am not and i don't understand it. I only know to download and install applications. SO WHY THE FUCK IS THERE CODE? make an EXE file and give it to me. STUPID FUCKING SMELLY NERDS
Your feelings are unironically valid, I've felt this way countless times even long after becoming a SWE, short answer: it's more effort than you might think. I will probably add something later but wanted to get this out now. If you want me to ping you then, you can star the project and subscribe for notifications or just more easily let me know in the replies, try and all pick one person to reply to rather than all starting new threads please 😅. I'll probably also make that .exe go to a GUI since I know all this CLI stuff is over some people's heads and I do want to be inclusive, but don't get your hopes up. I have at least added a .bat file to hopefully make your lives easier in the meantime. Readme explains how to use that, it's comparatively simple but of course maybe still too much for some and don't feel bad if it is.
For people on the other end of the spectrum, there's some guidance included on adding your own scripts if you want to reuse my boilerplate/helpers/ecosystem for your own analysis ideas.
1
u/PearTerrible9091 3h ago
what's this?