Auto-Generating a Melee Combo Video Using Slippi

First off, none of this would be possible without Nikhil Narayana from Melee Everyday. In addition to streaming super majors at the highest quality possible, (8k Melee on Twitch soon?) Nikhil is a developer for the Slippi dev team who knows how to make magic happen with its code. This whole tutorial is essentially a more beginner friendly version of everything found on his GitHub Gist. He’s also been incredibly helpful in providing insightful, quick feedback on my previous Slippi articles!

Imagine having one of these for every local you host…

The video above is a professional-quality example of what we’re going to be creating in this tutorial. As long as you’ve got some dope Slippi replays with sick combos on hand, you’ll be walking out of here with a slick combo vid!

Note: This script is essentially just a filter on most of the data captured in a Slippi Replay. It’s setup to keep moments of a match based around viewer-friendly parameters. Its macro goal is to isolate 60%+ combos and will toss any out IF:
1) the combo doesn’t end in a kill,
2) wobbling is involved (a combo with 8+ pummels,)
3) chain grabbing is too heavy (a combo that’s mostly pummels + up-throws,)
4) large single hit moves make up 80% of the minimum combo percentage, or
5) if Jigglypuff doesn’t do 25% more than the minimum combo percentage.

What you’ll need:
– lots of .slp files (these are the Slippi replay files)
Slippi Desktop Application installed (which includes the build of Dolphin we’ll be using to render clips)
– a Melee v1.02 ISO
Node.js installed – I would snag the recommended build
OBS Studio installed or an equivalent capture software (unless your PC doesn’t have enough power, in which case here’s a tutorial on how to frame dump in Dolphin)
– non-linear video editing software installed (I use Vegas Pro because it’s always cheap on Humble Bundle, Nikki uses DaVinci Resolve [it’s free but has a high learning curve], and if you have no experience editing video, I’d recommend starting with a free, lightweight tool like VSDC if you’re on Windows)

This tutorial is written from a Windows perspective. Mac users should be able to make use of everything here as long as they can translate instructions to fit their operating system.

If you’ve got everything lined up and installed, then let’s roll!

Ooookaaaay!

1. Find a comfy place on your hard drive to create a Slippi Working folder. I created a slippi folder inside my Videos folder, but if you prefer working on your Desktop then a slippi folder located there is fine too.

2. Follow this link, copy/paste the entire script into a new .txt file, save it in your working folder, then rename the entire file — including the extension — to ‘getSlippiCombos.js’ without the apostrophes. This is the script that will dictate what gameplay moments we clip with each replay file.

We should now have something similar to this:

3. Open up Command Prompt and navigate to your working folder. The easiest way to do this is to copy your folder’s address ([where the arrow is pointing above] right-click > Copy Address) then in Command Prompt, type and execute:

cd [paste address here]

Now run this command:

npm install slp-parser-js

It’ll take a minute but once it’s complete, Command Prompt and your working folder should look something like this:

4. Create a new folder inside your working folder and name it ‘slp’ without the apostrophes. This is where we’ll be moving all of our sick, combo heavy .slp files when ever we want to make a new highlight reel. You can obtain these files by either installing Slippi-Nintendont on your Wii, capturing them on Netplay using the Slippi Dolphin Build, or even just by downloading tournament sets from super majors that run Slippi! Place those in your slp folder now.

5. It’s time to automatically generate our combo montage! Return to Command Prompt and ensure it’s navigated to our working folder. This is where we’ll be using Node.js so if you haven’t installed that already, do so! All this does is teach our computer how to read and run Node. With that ready, excecute this command:

node getSlippiCombos.js

Each match takes about a second to process regardless of whether it has a qualifying combo or not. One by one, games should start popping up and eventually you’ll get the final read out. As long as you’ve got at least one good combo, then combos.json will get spat out into our working folder.

If you don’t has as many qualifying combos as you’d like, there’s no shame in lowering the percent threshold. To do this, open up our .js file in notepad and navigate to line 21. [var minimumComboPercent = 60] is what will read and if you change that 60 to a lower number, your combos won’t need to rack up so much percent. I set mine to 45 and my guys still only hit about one qualifying combo in every ten games (rip). If you don’t want to change this percentage, then git gud.

6. Open up our Slippi Desktop Application and choose Configure Settings. Locate the Playback Dolphin Path, highlight and copy it. Then return to Command Prompt. If you closed out of it on accident, just reopen it as our previous work doesn’t affect what we’re about to do.

Navigate to our Dolphin path by running:

cd [paste Dolphin path here]

If you’ve done this correctly, our Command Prompt window should look something like this:

Copy the path to our working folder once more. Back to Command Prompt, type this command but don’t execute it just yet (please note the quotation marks just before pasting the working folder path):

Dolphin.exe -i “[working folder path]

Our goal to run the combo script and Dolphin at the same time so we need to include our script in the Dolphin launch instructions. To do this, immediately behind the path to Dolphin, add this text (please note the quotation marks just after the file extension) and execute the command:

\Combos.json”

Dolphin should have just launched with our combos.json script running invisibly within it. Boot up your copy of Melee v1.02 like normal and it should launch straight into the combo montage. If this is what happens, just hit Stop on Dolphin for now. We’ll be return to it shortly.

8. Either launch OBS or prep your Dolphin build to dump frames. If the former is what you choose, I would recommend prepping an OBS overlay to accommodate for the 73:60 aspect ratio of Melee unless you don’t mind black bars on the edge. When you’ve got this setup, hit record and boot up Melee once more on Dolphin. Your combos should start playing with semi-long breaks of black in between games. This is normal and something we’ll be editing out.

9. Once you’ve captured a video of the highlight reel, we need to trim out the blank segments. This is where the non-linear video editor comes into play! I can’t give you too much advice on how exactly your editor this as each video editor is its own beast but remember that all we want to do is remove the black screen between combos. When you go to render your complete footage, I strongly advise you review options like bitrate and framerate under a customize/advanced menu.

Naturally, the higher these setting are the better our combo video will look but if you live somewhere that doesn’t have fast internet, higher quality will result in longer upload times. I mixdown using .mp4 format, 60fps and 720p at around 5000k bitrate. At this setting, I generally get about 5min. of footage uploaded every hour (100kb/s up). If you want to see how these settings look, I’ve linked my footage below.

Got that video mixed down yet? Sweet, you just made an auto generated highlight reel! Post it up on social media, send it in a group chat, what ever you want to do with it. If there are some things about the combos select you would like to change, this current iteration of Nikki’s script seems super approachable from a non-programmers perspective.

Mad shoutouts to Nikki from Melee Everyday on this one. Without his work, we wouldn’t be blessed with dope combo vids that take about 5 minutes to make, once you memorize the process. Of course, shouts to Fizzi36 too for creating Slippi in the first place.

If you’ve got any questions or just want to show off your highlight reel, tweet to me at @SheeshFr and I’ll send you feed back!