Programming Showdown Replay Scouter

Showdown Replay Scouter

This is the thread for the Showdown Replay Scouter!

This application can analyze any number of replays and provide statistics and analytics about the used teams.

Examples

Input:

1680205217546.png


Visual Outputs:

1680204618936.png
1680204756571.png


Statistics:

1680204649186.png
1680204665076.png
1680204681175.png
1680204698408.png


How does it work?

This application queries an API which goes to Pokémon Showdown and based on the given input parameters retrieves all relevant replays. These replays are then analyzed and returned to the application. The application then has multiple display options which range from visual representations to statistics. Most of these display options support filters like search queries and sorting options.

Enough of it, how can I use it?

The website: http://fulllifegames.com/Tools/ReplayScouter/
API: https://replayscouter.api.fulllifegames.com/swagger/index.html
The source (frontend): https://github.com/FullLifeGames/replay-scouter-app
The source (backend): https://github.com/FullLifeGames/Showdown-Replay-Scouter

How can I support this?

Since the server I am hosting this on is not free, I would be happy for any donation: https://www.paypal.com/donate/?hosted_button_id=LSAEWSQK7NJBJ

Hey guys,

since Eo Ut Mortus and bluri are trying for their personal use to create an application that can scout through every replay of a user and analyze the teams used (by showing items, moves, etc.), I thought why just not release my own application, so everyone can have something from it and no one has an advantage over someone else!

So, what am I talking about?
The Showdown Replay Scouter!
This program can be used to analyze the used teams of a specified user in specific tiers using the Showdown replays!

Show it!

replayscoutergen8ou.PNG




How does it work?
It is really simple!
First you have to enter the desired Showdown username or Smogon username and Showdown tier in the program or just visit the website!
Valid inputs are:
To search for all replays of a user:
{username}
To search for all replays for a specific tier of a user:
{username} | {tier}

Examples:
FullLifeGames
FullLifeGames | gen7ou
Multiple inputs are valid!

After that, there are three locations from which you can get the replays:
The Smogon tournament Threads
replay.pokemonshowdown.com
Google
After that, you can start to search for replays by pressing the "Search replays" button.
The program will search for all the requested replays with some popups.

After this is done, you see all the teams and replays of your specified input.
With the "Build team" button, you can build then a selected team.

For dumping the replays with the team analysis, you just have to press the "Replay Dump" button and then specify a save location. In case, you just want to have Smogtour replays in your dump, there is also an option for that!

Proof, that it works!
Some might already know my SPL week 2 post: http://www.smogon.com/forums/posts/7190153/
But here are some other examples as well:
ADV: http://pastebin.com/80YmqCH9
Literally anything else, like "bluri | gen4ou": http://pastebin.com/N8waUCLF

These logs are so ugly!
Yeah, I know. That's why I made a page, where you can create a nice visualization for them:
https://fulllifegames.com/Tools/DumpVisualizer/
(or just use the website: https://fulllifegames.com/Tools/ReplayScouter/)

Enough of it, where do I get it?
The website: http://fulllifegames.com/Tools/ReplayScouter/
The program: https://github.com/FullLifeGames/Showdown-Replay-Scouter/releases/tag/v2.2
The source: https://github.com/FullLifeGames/Showdown-Replay-Scouter

Have fun! :)
 

Attachments

Last edited:
Recently I came up with a ton of ideas for the Showdown Replay Scouter which would make it a whole lot better, so I took a little of my time and worked on them.

I now present you a all new Showdown Replay Scouter with many improved and new features:

1) The Showdown Replay Scouter now includes a function to go through the Smogon tournament section and searches for replays of a certain Smogon user posted in a replay thread, just a win post or a loose post. This function takes quite a lot of time, however it creates many new options which weren't possible before which is complimented by the second point.

2) A user related to a replay is now filtered on the similarity of the showdown nicknames to the provided nickname. For example if I would enter "ABR" and he would call himself "King ABR" or "RBA" the program would still detect the user in a provided replay on grounds of a close similarity.

3) In the old version there was no indication of progress and there was no feedback on where the program was at the current time. This was changed by adding a progressbar to every time consuming action with an indicator on what it is currently doing which should greatly improve user experience!

4) The Pokemon Showdown replay scan method was relying on opening a browser window and scrolling through all possible replays provided. This was now replaced with a headless method which no longer confuses the user and is much more clean.

5) Some bugs were fixed.

I'm really proud of the new version and hope you are excited by the new features!

You can download the new version here: https://github.com/FullLifeGames/Showdown-Replay-Scouter/releases/tag/v1.3
 
Last edited:
Soooooo ...

I need your feedback!

I took every idea from the Showdown Replay Scouter and tried to include it into a website (usable for everyone, not just Windows users) and this is my result:
http://fulllifegames.com/Tools/ReplayScouter/



It doesn't work with just typing in a user, you have to input the format: "{user} | {tier}" however for most purposes this should be sufficient.
For now it also doesn't include the option of more than one user to scan which might be included if requested.
 
Soooo, remember people attending to tournaments with alts which you had to figure out manually by going through their Smogon Tournament replays.

Yeah, with my work on http://www.smogon.com/forums/threads/tournament-match-checker.3628158/ I basically am able to use all the collected replays from the tournament matches to create a relation from a Smogon user to a Showdown user (not perfect, but it scared many users I presented it to): http://fulllifegames.com/Tools/SmogonToShowdownUser/ (https://github.com/FullLifeGames/GetShowdownUserNameFromSmogonUser)

But this is of course not all! Would it not be convenient if you could just put in the Smogon user and the tier you want to scan him and automatically search with his main and alt Showdown accounts for replays?

Yeah, I implemented that! You can find the implementation on the website: http://fulllifegames.com/Tools/ReplayScouter/

Testing is needed because it is of course far from perfect, but it was a fun little thing to implement!

Here is how it now looks:

 
I have 2 minor requests to make this better:
- split the definition into 2 inputs, 1 for user, 1 for tier
- make the replays clickable links on the result page
 
Does this work for non-uploaded replays? It probably doesn’t but my tour status depends on it and I hope that this would help.

Thanks.
 
I have 2 minor requests to make this better:
- split the definition into 2 inputs, 1 for user, 1 for tier
- make the replays clickable links on the result page
The ideas are really good, when I have time, I'm going to implement them!

Does this work for non-uploaded replays? It probably doesn’t but my tour status depends on it and I hope that this would help.

Thanks.
Sadly not since there is no access to them and they are not-uploaded for a reason.

Can you do an iOS no jailbreak version
You can use the web-version here: http://fulllifegames.com/Tools/ReplayScouter/
 
Do you think y
Hey guys,

since Eo Ut Mortus and bluri are trying for their personal use to create an application that can scout through every replay of an user and analyse the teams used (by showing items, moves, etc.), I thought why just not release my own application, so everyone can have something from it and noone has an advantage over someone else!

So what am I talking about?
The Showdown Replay Scouter!
This program can be used to analyse the used teams of an specified user in specific tiers using the Showdown replays!

Show it!



How does it work?
It is really simple!
First you have to enter the desired Showdown username or Smogon username and Showdown tier in the program!


Multiple inputs are valid!

After that, there are three locations from which you can get the replays:


After that, you can start to search for replays by pressing the "Search replays" button.
The program will search for all the requested replays with some popups.

After this is done, you see all the teams and replays of your specified input.
With the "Build team" button, you can build then a selected team.

For dumping the replays with the team analysis, you just have to press the "Replay Dump" button and then specify a save location. In case, you just want to have Smogtour replays in your dump, there is also an option for that!

Proof, that it works!
Some might already know my SPL week 2 post: http://www.smogon.com/forums/posts/7190153/
But here are some other examples as well:
ADV: http://pastebin.com/80YmqCH9
Literally anything else, like "bluri | gen4ou": http://pastebin.com/N8waUCLF

These logs are so ugly!
Yeah, I know. That's why I made a page, where you can create a nice visualization for them:
https://fulllifegames.com/Tools/DumpVisualizer/

Enough of it, where do I get it?
The program: https://github.com/FullLifeGames/Showdown-Replay-Scouter/releases/tag/v1.3
The source: https://github.com/FullLifeGames/Showdown-Replay-Scouter

Have fun! :)
Do you think you could make the program show an estimated ev spreads, choice items and natures?

Thanks for creating this program man
 
Do you think y


Do you think you could make the program show an estimated ev spreads, choice items and natures?

Thanks for creating this program man
If you tell me how, I would do it.

The problem with this data is that this is stuff which has to be estimated by calculations which would make everything way slower and would not produce accurate results since I would not only have to guess the team I'm analyzing, I would also have to scan the opponents team since I don't know if the Pokémon on the opposite site is e.g. min def or max def.
Same with choice items and natures.
 
If you tell me how, I would do it.

The problem with this data is that this is stuff which has to be estimated by calculations which would make everything way slower and would not produce accurate results since I would not only have to guess the team I'm analyzing, I would also have to scan the opponents team since I don't know if the Pokémon on the opposite site is e.g. min def or max def.
Same with choice items and natures.
Was actually trying to do the same thing with a damage calc I’m building. Not easy to implement, and honestly wouldprobably just cause more issues than help.
 
At some point, I might look into incorrect sprites, but it is not the highest priority for me right now.

Anyway, I wanted to talk about the "Statistics" tab which I added to the website!
Basically it shows how many times a Pokémon has been used and how many times a move has been used (and their relative percentage).
Here a little example how it looks:



(Also no EV estimation Loxiv )
 

DaWoblefet

Demonstrably so
is a Battle Simulator Administratoris a Community Leaderis a Programmeris a Community Contributoris a Top Researcheris a Top Tiering Contributoris a Social Media Contributor Alumnus
PS Admin
A small feature request: if a Z-move is used, rather than listing the actual Z-move attack, could it instead be noted as that Pokemon's item? Additionally, if it's a signature Z-move and not hackmons, revealing the base attack could be useful as well. Additionally, if the move is Struggle, could it be omitted from the output?

An output like this:
Landorus-Therian
Ability: Intimidate
- Protect
- Tectonic Rage
- U-turn
- Earthquake

Would turn into an output like this:
Landorus-Therian @ Groundium Z
Ability: Intimidate
- Protect
- U-turn
- Earthquake

Or an output like this:
Lunala
- Menacing Moonraze Maelstrom
- Tailwind
- Psyshock
- Protect

Would turn into an output like this:
Lunala @ Lunalium Z
- Moongeist Beam
- Tailwind
- Psyshock
- Protect
 
A small feature request: if a Z-move is used, rather than listing the actual Z-move attack, could it instead be noted as that Pokemon's item? Additionally, if it's a signature Z-move and not hackmons, revealing the base attack could be useful as well. Additionally, if the move is Struggle, could it be omitted from the output?

An output like this:
Landorus-Therian
Ability: Intimidate
- Protect
- Tectonic Rage
- U-turn
- Earthquake

Would turn into an output like this:
Landorus-Therian @ Groundium Z
Ability: Intimidate
- Protect
- U-turn
- Earthquake

Or an output like this:
Lunala
- Menacing Moonraze Maelstrom
- Tailwind
- Psyshock
- Protect

Would turn into an output like this:
Lunala @ Lunalium Z
- Moongeist Beam
- Tailwind
- Psyshock
- Protect
Honestly some items(lefties/helmet and such could also be implemented with this. But idk how hard that is
 
A small feature request: if a Z-move is used, rather than listing the actual Z-move attack, could it instead be noted as that Pokemon's item? Additionally, if it's a signature Z-move and not hackmons, revealing the base attack could be useful as well. Additionally, if the move is Struggle, could it be omitted from the output?

An output like this:
Landorus-Therian
Ability: Intimidate
- Protect
- Tectonic Rage
- U-turn
- Earthquake

Would turn into an output like this:
Landorus-Therian @ Groundium Z
Ability: Intimidate
- Protect
- U-turn
- Earthquake

Or an output like this:
Lunala
- Menacing Moonraze Maelstrom
- Tailwind
- Psyshock
- Protect

Would turn into an output like this:
Lunala @ Lunalium Z
- Moongeist Beam
- Tailwind
- Psyshock
- Protect
I wouldn't want to dive that much into the code at the moment to be honest, so if this isn't that big of a problem (which I think it isn't), I'm not going to do it for now However thank you for the suggestion!
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top