• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 08:12
CEST 14:12
KST 21:12
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Ro8 Preview: In A Tizzy8[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9
Community News
Weekly Cups (Sep 13-20): herO scores triple1BSL Season 235Weekly Cups (Sep 7-12): SHIN, ByuN, MaxPax double down1StarCraft open world shooter announced at BlizzCon101Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10
StarCraft 2
General
Balance hotfix patch 5.0.16b (July 16) How do you feel about the StarCraft shooter announcement at BlizzCon 2026? Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool The Death of Cheese: From a Professional Cheeser Weekly Cups (Sep 13-20): herO scores triple
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Announcement RSL Revival: Season 6 - Qualifiers and Main Event RSL goes to London! 2026 Offline Finals Nov 21-22 SC2 AI Tournament 2026 Fall
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 544 Double Trouble The PondCast: SC2 News & Results Mutation # 543 Enhanced Defenses Mutation # 542 The Ascended
Brood War
General
Bot on ladder screpdb: new Starcraft reporting tool Guide To Watching Ancient Brood War Replays [ASL22] Ro8 Preview: In A Tizzy Oldest replay file.
Tourneys
[ASL22] Ro8 Day 2 [ASL22] Ro16 Group D [ASL22] Ro8 Day 1 [IPSL] IPSL is Back With Winter 26-27!
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation
Other Games
General Games
Diablo IV Nintendo Switch Thread Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread EVE Corporation
Dota 2
Dota 2 Champions League Season 3 Begins April 25! Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Artificial Intelligence Thread Things Aren’t Peaceful in Palestine All you football fans (soccer)! Russo-Ukrainian War Thread
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Gaming Intensity, Problemati…
TrAiDoS
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6809 users

screpdb: new Starcraft reporting tool

Forum Index > BW General
Post a Reply
Normal
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 14 2026 12:01 GMT
#1
Hey 👋 I'm happy to share a tool I've been quietly working on for some time now. Sorry I'm 25 years late for contributing.

screpdb is a BWChart-style tool (replay-based reporting on your local computer), but with a heavy focus on semantic reporting.

It's complementary to existing tools like RepMastered and vespene.gg; each does different things. In fact Dakota_Fanning has been very helpful with knowledge transfer, and the tool is based on screp which is his project as well.

Some screenshots (not an exhaustive list of features):

Filtering replays by high-level semantic features

[image loading]


Game summary, with one-click staging of a replay for watching on the game client

[image loading]


Rich game events browser with map overlays

[image loading]


Skill proxies measurements: Viewport Multitasking, Unit Production Cadence, First Unit Efficiency

[image loading]


Here's the project page: https://github.com/marianogappa/screpdb

Installation instructions: https://github.com/marianogappa/screpdb/tree/main#installation

And here's the story behind it in my blog (it touches on replay engineering, community tools, AI, you might find it an enjoyable read): https://marianogappa.github.io/thoughts/building-an-advanced-starcraft-reporting-tool/

Since it hasn't seen extensive testing by enough people, you should currently treat it as an unfinished product with rough edges, but I'm here to make corrective/perfective maintenance. I'd love your help to improve it.

We've been using it every weekend with my best mate for months and we really enjoy it for pre-game intel and post-game review; I also use it for finding and staging specific replays quickly for watching.

It’s fully free 🍺 and open source. No donations needed, don’t buy me a coffee. You can contribute by filing issues & improvements.

Also thanks to 2Pacalypse- & Peeano (and others) for their help betatesting and for pointing me to the right people.
2Pacalypse-
Profile Joined October 2006
Croatia9558 Posts
July 14 2026 12:20 GMT
#2
It's an interesting looking tool! Has a lot of features and options so it might take some time to figure out all the benefits you get out of using it.
Moderator"We're a community of geniuses because we've found how to extract 95% of the feeling of doing something amazing without actually doing anything." - Chill
Jealous
Profile Blog Joined December 2011
10382 Posts
July 14 2026 13:07 GMT
#3
The semantic search is something a lot of people have been asking for elsewhere. Really cool! Could you go into a bit of detail as to how you made it work?
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
Last Edited: 2026-07-14 19:03:00
July 14 2026 19:00 GMT
#4
On July 14 2026 22:07 Jealous wrote:
The semantic search is something a lot of people have been asking for elsewhere. Really cool! Could you go into a bit of detail as to how you made it work?

Hey, thanks!

The best answer to this question is the So, how do you get semantics anyway? chapter of the blogpost. The section before that explains why it's hard to get semantics from replays.

As a quick TL;DR:
- Created a separate library that extracts map data (starting locations, walls, ramps, walkability) and calculates base polygons and other semantics (e.g. mineral-only, "natural", "9 o'clock"). Once you have this, you can infer "cannon rush" and all things like that, since that requires knowing where things happen semantically.
- Minimised replay spam with a battery of best-effort algorithms like per-player economy simulation (not all algos are best effort, e.g. most researches cannot be done twice so I only keep the latest ones). This surfaces the building blocks for Build orders.
- Manually and patiently watched ~200 replays and tagged them manually in order to have "integration tests" to validate that a set of rules correctly matches certain build orders.
- There's an annoying way to enrich "incomplete" commands with coordinates and unit types based on keeping track of something called "unit tags". It's a little technical, but the bottom line is that it's possible to get a better understanding of commands by implementing some reasonably straightforward algorithm.

I'd be happy to go into detail on specific cases, but I suspect no one cares 😂 Just let me know if you're curious. I'd be more than happy to nerd out on this; I absolutely love it.
AttackZerg
Profile Blog Joined January 2003
United States7586 Posts
July 15 2026 03:15 GMT
#5
I am not able to dive in to the project deeply at the moment, but from what I've seen, there are obviously cool features and the "semantics search" or wtv is an incredibly valuable way to work with our large replay archives.

If I'm not mistaken this may lead to the first win % by build order down the road. Which I think would great way to understand maps/matchups in the pro scene.

Thank you for your time and energy and your contribution. May the future treat you as well as you have treated us. Cheers!
TelecoM
Profile Blog Joined January 2010
United States10850 Posts
July 15 2026 12:42 GMT
#6
It looks awesome! Thank you for sharing and your contribution! Downloading it now!
AKA: TelecoM[WHITE] Protoss fighting
Lorch
Profile Joined June 2011
Germany3711 Posts
July 15 2026 14:42 GMT
#7
Looks awesome, thank you so much for investing your time into this!

Also kudos for not charging 50$ for it!
[sc1f]eonzerg
Profile Blog Joined February 2010
Belgium7028 Posts
July 15 2026 14:48 GMT
#8
There has been so many tools presented lately that im really out of the loop. I wish someone did a recap about all of them lol.
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 15 2026 16:52 GMT
#9
On July 15 2026 23:48 [sc1f]eonzerg wrote:
There has been so many tools presented lately that im really out of the loop. I wish someone did a recap about all of them lol.

Look no further! 😂 The tools that already existed. Someone let me know if I missed something big.
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 15 2026 17:06 GMT
#10
On July 15 2026 12:15 AttackZerg wrote:
I am not able to dive in to the project deeply at the moment, but from what I've seen, there are obviously cool features and the "semantics search" or wtv is an incredibly valuable way to work with our large replay archives.

If I'm not mistaken this may lead to the first win % by build order down the road. Which I think would great way to understand maps/matchups in the pro scene.

Thank you for your time and energy and your contribution. May the future treat you as well as you have treated us. Cheers!

That's an interesting use case; I'll open an issue this week to look into it. Player aggregations is something I struggled a lot with.

There are some big challenges with it though. Off the top of my head:
- I think no two people can agree on a standard categorisation of build orders.
- Build order matching is reasonably good but it's still best-effort, I think a perfect automated system is unattainable based on replays alone.
- screpdb wasn't really optimised for ingesting large numbers of replays. After the 1000 replay mark, re-ingesting becomes kinda slow, and certain queries become slow, making the UI slightly sluggish. This is mostly a design decision to use SQLite as a storage backend, which is not optimised for fast ingestion or OLAP queries, but it's zero-dependency, embedded relational database, and folks that might contribute or build on top understand well.

These are solvable problems though, given sufficient interest. Certainly, if a progamer would find it useful, I think it's worth putting some work onto it.
Kraekkling
Profile Blog Joined June 2007
744 Posts
July 15 2026 20:17 GMT
#11
Very nice work!


This is slightly off-topic, but It would be incredibly cool to be able to get the BO information from replays as well. But due to how replays work, there's no other way other than re-running the game engine.

The headless openBW setup can process a 10 minute game in below 1 second (i.e. fully re-run the game). However this only works with replays 1.16.1 and below.

If we somehow could get the dude from the other thread to share how he got headless remastered to run, we'd be set... well almost. We'd also need to convince @dakota_faning to run it on about 25 million replays :D
(*^^)(^*)
SethN
Profile Joined June 2019
23 Posts
July 20 2026 13:28 GMT
#12
awesome app - 8000 is an extremely common port to use for web apps locally, i do wonder if you want to consider using an entirely different/random port for other people
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
Last Edited: 2026-07-21 07:17:44
July 21 2026 06:40 GMT
#13
On July 20 2026 22:28 SethN wrote:
awesome app - 8000 is an extremely common port to use for web apps locally, i do wonder if you want to consider using an entirely different/random port for other people

Don't worry! On startup, screpdb will check if the port is being used, and if so it'll use a different one. This is also to prevent multiple instances open: if the port is being used by a different screpdb instance it will just route you to the existing one and shutdown.

EDIT: I forgot to mention that you can also select the port with `--port 1234` if you run it via terminal (e.g. PowerShell)
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 21 2026 06:54 GMT
#14
On July 16 2026 05:17 Kraekkling wrote:
Very nice work!


This is slightly off-topic, but It would be incredibly cool to be able to get the BO information from replays as well. But due to how replays work, there's no other way other than re-running the game engine.

The headless openBW setup can process a 10 minute game in below 1 second (i.e. fully re-run the game). However this only works with replays 1.16.1 and below.

If we somehow could get the dude from the other thread to share how he got headless remastered to run, we'd be set... well almost. We'd also need to convince @dakota_faning to run it on about 25 million replays :D

Hey, it's not off topic 👍

I assume you mean dethsc and vespene.gg. Always happy to collaborate!

At the moment that project is closed source so you're right that I cannot use that. But according to dethsc, it's a reverse-engineer, so although it's conceptually "headless remastered", technically it's a reimplementation (same as openBW), so I can't be 100% sure that the output is exactly what you'd see in the replay without sufficient manual tests.

But currently screpdb does get BO information from replays, and I'd say it's pretty decent at it. Perhaps the categorisation isn't quite what everyone expects; I'm happy to revise it. The main limitation from replays info alone is tracking worker counts (command spam is hard to eliminate), especially with Terran & Protoss. Other than that, the difficulty in inferring build orders is intrinsic to defining them formally (that is, even with 100% knowledge you'd struggle anyway).
LUCKY_NOOB
Profile Blog Joined June 2013
Bulgaria1586 Posts
July 25 2026 13:22 GMT
#15
Very nice!

Also iCCup in nickname means old school cool if any newer people are wondering. ^_._^
ko-fi.com/luckynoob
Peeano
Profile Blog Joined March 2009
Netherlands5906 Posts
July 28 2026 10:17 GMT
#16
My first thought was pretty much like AttackZerg.

There was this thread some time ago that showed winrates in a graph for rank A and above (too lazy to search for it). I was wondering: What if you scrape just the replays that win at the peak and analyse those on starting locations and build order?
Or simply show the player that most often wins in that peak, to then just check him out specifically.

For example - I know the picture is not acurate - if you only analyze replays that fall into the red box, it should significantly cut down on replays to analyze:
[image loading]
FBH #1!
WGT-Baal
Profile Blog Joined June 2008
France3556 Posts
July 28 2026 17:17 GMT
#17
Looks very interesting and valuable
I m travelling at the moment but will play with it when i m back home.
How would you like bugs/questions to be reported? Is there a form on github or you prefer DM here? Just in case.
Horang2 fan
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 29 2026 00:29 GMT
#18
On July 28 2026 19:17 Peeano wrote:
My first thought was pretty much like AttackZerg.

There was this thread some time ago that showed winrates in a graph for rank A and above (too lazy to search for it). I was wondering: What if you scrape just the replays that win at the peak and analyse those on starting locations and build order?
Or simply show the player that most often wins in that peak, to then just check him out specifically.

For example - I know the picture is not acurate - if you only analyze replays that fall into the red box, it should significantly cut down on replays to analyze:
[image loading]

I opened this issue: Implement per-BO winrate report tab
I think there's value in this feature, maybe it needs some research input. Feel free to comment on it with thoughts, corrections. There's a quick and dirty example on some 80 Soma replays. We can go crazy on features but I wonder if it will actually be useful (but I don't mind experimenting to see if it is). Perhaps if I could collaborate with someone with skin in the game I could tune it to their use cases and prototype faster.

My intuition is that, in order for it to be useful (i.e. actionable in some way), one needs a large number of replays. Also, I'd like to see what a user thinks of the current BO categories.
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
July 29 2026 00:34 GMT
#19
On July 29 2026 02:17 WGT-Baal wrote:
Looks very interesting and valuable
I m travelling at the moment but will play with it when i m back home.
How would you like bugs/questions to be reported? Is there a form on github or you prefer DM here? Just in case.

Hey 👋 Thanks for the interest!

You can use screpdb's issue/improvement form: https://github.com/marianogappa/screpdb/issues/new/choose

You can also just drop a comment on this thread. For specific issues I think the Github form is more adequate. If you'd rather do it privately you can DM me here too.

I'm travelling as well (Japan) for the next few weeks so I might take some time to work on it.
McRibbed
Profile Joined April 2026
2 Posts
July 30 2026 00:29 GMT
#20
hey this is awesome and I wish a lot of the other new tools were open source as well.

I had been meaning to do something like this but never got around to it, awesome to see.
iCCup.Trent
Profile Joined May 2005
Argentina467 Posts
2 hours ago
#21
Hey again 👋

Small update on screpdb, the replay reporting tool I posted here in July. I've kept shipping most weeks since then, and I think it's in a much better shape than the version most of you saw, so this feels like a decent moment to either try it or update.

Quick reminder of what it is: a local, free, open source replay reporting tool, BWChart-style but focused on semantic reporting. It's complementary to RepMastered and vespene.gg.

I'm also conscious that installing an app on your machine is a thing you should think twice about, and that's completely fair. So there's now a web version you can poke at without installing anything.

It's the full dashboard running on sample replays, entirely in your browser, nothing leaves your machine. Some features obviously don't work there, but it's enough to decide whether it's for you.

What's new since July

Gaming session page. A summary of tonight's session: the games you played, who you played against and with, the people you run into most often, and whether they're online right now.

[image loading]

[image loading]


Games you left early now complete themselves. In 3+ player games you often leave before it's over and never find out what happened. screpdb polls for the game to finish, fills in the report with who won and what went on, and can stage the complete replay for you to watch.

[image loading]


Hotkey report. Not just how much you use each hotkey, but what you actually put on them: which buildings, and a map overlay of your hotkeyed buildings drawn where you built them, over time. Players have a Hotkey tab too, with their average usage.

[image loading]

[image loading]


Built-in progamers. The Players page now ships with popular players: their latest games, their alternative aliases, their hotkey usage. They're also on the skill charts, so you can cry while comparing yourself to them.

[image loading]

[image loading]

[image loading]


Player fingerprinting. This one comes out of a separate project I've been working on: on top of the account alias lists that already exist, it extracts a signature from the way somebody plays. So screpdb can tell you that the person you just played "plays exactly like Jaedong", and, separately, that the account you played against is the verified account of Jaedong, even under a name nobody has seen before. It feels more useful now that we have AI bots.

[image loading]

[image loading]


If anyone here is as much of a nerd as I am, you might enjoy the article I wrote about how it works: https://marianogappa.github.io/software/2026/09/22/player-fingerprinting-in-the-age-of-ai-bots/

Faster and lighter. Ingestion is ~6x faster and uses ~95% less storage, which meant the Ingest button could go away entirely: replays are picked up automatically now. The UI also got a pass after some UX feedback, plus a long tail of smaller fixes.

Korean support. screpdb is now available in Korean. I don't speak Korean, so this is a best-effort translation. If any Korean speaker here is willing to look it over and tell me what reads badly, I'd really appreciate it.

[image loading]


Installing and updating

Project page: https://github.com/marianogappa/screpdb
Installation: https://github.com/marianogappa/screpdb/tree/main#installation

One small thing for Windows folks: it looks like a good number of you installed by downloading the .exe directly. That's completely fine, but the reason I recommend Scoop is upgrades. With Scoop it's one command:

scoop update screpdb

whereas doing it by hand every week gets old fast. Scoop also avoids the SmartScreen warning, since the binaries aren't code-signed.

Still fully free and open source, no donations needed, I have my own coffee. If you try it and something is broken or annoying, file an issue, that's the most useful thing you can do for it.

Thanks 🙏
ImbaTosS
Profile Blog Joined January 2009
United Kingdom1731 Posts
2 hours ago
#22
Very interesting, thank you. I'm coming back to the game after not playing for years, and working on playing a different race, so I'm curious if it can assist me to get deeper on learning the builds and counters.
EleGant[AoV]
Xeofreestyler
Profile Blog Joined June 2005
Belgium6786 Posts
1 hour ago
#23
Amazing work, thanks for sharing!
Graphics
Normal
Please log in or register to reply.
Live Events Refresh
OSC
12:00
King of the Hill #262
Liquipedia
WardiTV Invitational
11:00
WardiTV 10 - Group A
WardiTV2024
ComeBackTV 360
IndyStarCraft 119
Rex94
Liquipedia
Sparkling Tuna Cup
10:00
Weekly #147 (SHIN Mod Edition)
SHIN vs TBDLIVE!
TBD vs ByuN
ByuN294
CranKy Ducklings84
SHIN 54
CranKy Ducklings SOOP15
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ByuN 294
IndyStarCraft 119
Rex 94
SHIN 54
ProTech37
mouzHeroMarine 12
StarCraft: Brood War
Britney 36548
Bisu 3938
Jaedong 2111
Rush 347
Hyuk 283
Stork 215
Zeus 171
Larva 162
Leta 160
ggaemo 159
[ Show more ]
Barracks 142
Mini 118
hero 75
Snow 66
Killer 55
ToSsGirL 48
Mong 43
Shinee 35
soO 22
Hm[arnc] 19
Shine 16
sorry 13
SilentControl 13
JulyZerg 12
scan(afreeca) 12
Noble 10
Icarus 3
Dota 2
Gorgc5861
Dendi866
Counter-Strike
x6flipin545
markeloff141
edward140
Heroes of the Storm
Trikslyr43
Other Games
singsing1695
olofmeister1382
XBOCT841
B2W.Neo685
Lowko346
crisheroes215
Mew2King54
Organizations
Dota 2
PGL Dota 2 - Main Stream10359
PGL Dota 2 - Secondary Stream2323
Other Games
gamesdonequick591
[ Show 11 non-featured ]
StarCraft 2
• mYiSmile17
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• iopq 3
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• WagamamaTV156
Upcoming Events
PiGosaur Cup
11h 48m
Kung Fu Cup
22h 48m
The PondCast
1d 21h
Replay Cast
2 days
Korean StarCraft League
3 days
CranKy Ducklings
3 days
GSL
4 days
Yamato Cup
5 days
Replay Cast
5 days
Afreeca Starleague
5 days
[ Show More ]
WardiTV Weekly
5 days
Sparkling Tuna Cup
6 days
Afreeca Starleague
6 days
Liquipedia Results

Completed

Super Anchor Qualifying S3
Blizzard Classic Cup 2026
Big Dog Cup 2026 Div 1

Ongoing

ASL Season 22
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - GSA
Calamity Invitational
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026

Upcoming

Acropolis #5 - GSB
Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Copium Cup
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.