-
Or run the script with Python 3.6+:
pip install -r requirements.txt
python SCO.py
The app shows an overlay with replay analysis of StarCraft II Co-op games. It also provides match history, various statistics based on your replays, commander randomizer, info about players shown at the start of the game, custom twitch bot with game integration into MM maps, and more.
For streamers the the overlay can be added as another layer in Open Broadcaster Software (OBS) or other streaming software applications. It's fully customizable through simple editing of the HTML, CSS and JS files.
For bugs, feedback and suggestions check my discord.
Info shown at the start of a game:
- Extract the archive
- Run the executable (SCO.exe)
- Some anti-virus programs are very sensitive to packaged python apps. If you have issues, add an exception to your anti-virus for the directory the app is in.
- Use hotkeys or buttons in the app to control the overlay. It will show automatically after each game as well.
- In StarCraft II set display mode to Windowed fullscreen (borderless)
To exit the app right click the icon in the system tray and click "Quit".
If you are using game capture, you have to add overlay to OBS manually.
Settings:
Settings (Dark theme):
List of games you recently played:
List of players you played with:
Map statistics:
Statistics for your and allied commanders:
Unit statistics:
Commander randomizer:
Twitch chat overlay:
Performance overlay:
- The overlay targets Windows 10. It might not work correctly on older versions of windows (black background under overlay). On Windows 7 enable aero theme and set “Enable Transparency” in “Window Color”.
- On MacOS or Linux run the script with "
sudo python3 SCO.py
" after installing required packages. It has been successfully tested on both MacOS and Linux, however every distribution and OS version has its own quirks. - The app connects to the internet only at start to look for a new version, or if you setup automatic replay upload by filling in accout name and password.
- The app is not in conflict with Blizzard's Terms of Service. It uses official Blizzard's library (s2protocol) to parse replays, and what information StarCraft II provides while running.
- You can edit the layout .html file. Changing its style through CSS (custom.css) or other functionality with javascript (custom.js).
- Indirectly killed Interceptors are counted towards player kills which is not the case in kills showed in-game. Directly killed interceptors are counted in both cases.
For customization locate custom.css and custom.js in the overlay folder (in Layouts/). These files contain your customization and are not overridden when the the overlay updates.
1. Change the number of units shown
Add this to custom.js and change the value. Higher numbers might overlap with other elements or won't fit onscreen.
maxUnits = 5;
2. Hide bars under units
Add this to custom.css
.unitkillbg {
opacity: 0;
}
3. Hide certain charts
Add this to custom.js, and remove those that you don't want.
CC = {
'army': null,
'supply': null,
'killed': null,
'mining': null
}
4. Custom function that runs when new replay data is filled
Add something like this to custom.js. The function will run when new data is added.
function func_on_new_data(data) {
// This shows you what's the structure of replay data (can be removed)
for(var key in data) {
console.log(key + ":\t\t" + data[key] + "\t\t")
}
}
This example shows bonus completion timings instead of just numbers.
function func_on_new_data(data) {
setTimeout(() => {
document.getElementById("map").innerHTML = `${data['map_name']} (${format_length(data['length'])})`;
document.getElementById("brutal").innerHTML += `<br><span style="color: #FFE670">${data["bonus"].join("|")}</span>`
}, 1);
}
Twitch bot can be set up in this way. bot_oauth has to be generated by twitch for example here. It's also possible to change in the config file greetings, banned units and mutators, and reponses to user commands.
"twitchbot": {
"channel_name": "fluffymaguro",
"bot_name": "veryfluffybot",
"bot_oauth": "oauth:r8b5...............",
"bank_locations": {
"Default": "C:/Users/Maguro/Documents/StarCraft II/Accounts/114803619/1-S2-1-4189373/Banks/1-S2-1-4189373/MMTwitchIntegration.SC2Bank",
"Local": "C:/Users/Maguro/Documents/StarCraft II/Banks/MMTwitchIntegration.SC2Bank",
"EU": "C:/Users/Maguro/Documents/StarCraft II/Accounts/452875987/2-S2-1-7503439/Banks/2-S2-1-1174830/MMTwitchIntegration.SC2Bank"
},
...
}
You can change the offset from the right side of the monitor. Negative values mean more to the left.
"right_offset": 0,
You can change the font size by a relative scaling factor. Default is 1.
"font_scale": 1,