• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 02:07
CEST 08:07
KST 15:07
  • 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] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9Serral wins HomeStory Cup 2915Serral wins Maestros of the Game 244
Community News
StarCraft open world shooter announced at BlizzCon55Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10Official StarCraft website teases new content ahead of BlizzCon?165Stellar Fest TWO the Moon (Dec 16-20)9Weekly Cups (August 24-30): Patches' balance mod takes over3
StarCraft 2
General
StarCraft open world shooter announced at BlizzCon How do you feel about the StarCraft shooter announcement at BlizzCon 2026? Balance hotfix patch 5.0.16b (July 16) Team Liquid Map Contest #22: Results and Winners Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism
Tourneys
RSL goes to London! 2026 Offline Finals Nov 21-22 KSL Week #92 IntoTheTV X SOOP SC2 League : Weekly & Monthly 2026 GSTL Announcement Sparkling Tuna Cup - Weekly Open Tournament
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 542 The Ascended Mutation # 541 Binary Choice The PondCast: SC2 News & Results Mutation # 540 Dodge This
Brood War
General
Official StarCraft website teases new content ahead of BlizzCon? BGH Auto Balance -> http://bghmmr.eu/ Broodwar Prediction Market Practice Partners (Official) [D] Brainstorming a balance patch for Brood war
Tourneys
[ASL22] Ro16 Group A [ASL22] Ro16 Group B Escore Tournament - Season 3 Small VOD Thread 2.0
Strategy
Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation Game Theory for Starcraft
Other Games
General Games
Diablo IV EVE Corporation Nintendo Switch Thread [Maplestory Hardcore] Let's Play~!! General RTS Discussion Thread
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Trading/Investing Thread US Politics Mega-thread UK Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Diablo Animated Series on Netflix Movie Discussion!
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
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Virtual Romance, Real-Life C…
TrAiDoS
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
LOCKPICKING NOOB
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6571 users

screpdb: new Starcraft reporting tool

Forum Index > BW General
Post a Reply
iCCup.Trent
Profile Joined May 2005
Argentina462 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
Croatia9555 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
10365 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
Argentina462 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 States7584 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 States10847 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
Germany3710 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
Belgium7022 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
Argentina462 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
Argentina462 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
740 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
Argentina462 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
Argentina462 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
Bulgaria1564 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
Netherlands5889 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
France3546 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
Argentina462 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
Argentina462 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.
Please log in or register to reply.
Live Events Refresh
Next event in 3h 53m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
FoxeR 68
StarCraft: Brood War
Shuttle 3292
Aegong 66
Stork 61
910 60
yabsab 24
Dota 2
ODPixel314
NeuroSwarm166
Other Games
summit1g11499
JimRising 530
PiGStarcraft308
RuFF_SC244
KnowMe12
Organizations
Other Games
BasetradeTV226
[ Show 14 non-featured ]
StarCraft 2
• Berry_CruncH399
• Sammyuel 23
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• masondota21914
• lizZardDota2102
League of Legends
• Jankos967
• Lourlo664
Upcoming Events
Sparkling Tuna Cup
3h 53m
WardiTV Invitational
4h 53m
ByuN vs Percival
Cure vs Classic
Shopify Rebellion Sundays
8h 53m
Spirit vs Mixu
Clem vs TBD
RSL Revival
9h 53m
Serral vs Rogue
BlizzCon
12h 23m
IdrA vs MC
Replay Cast
17h 53m
Afreeca Starleague
1d 3h
Light vs JyJ
Soulkey vs hero
WardiTV Weekly
1d 4h
Monday Night Weeklies
1d 9h
Afreeca Starleague
2 days
Snow vs Shinee
Shine vs EffOrt
[ Show More ]
GSL
2 days
PiGosaur Cup
2 days
The PondCast
3 days
Kung Fu Cup
3 days
Replay Cast
3 days
KCM Race Survival
4 days
IntoTheTV X SOOP
4 days
Replay Cast
4 days
IntoTheTV X SOOP
5 days
Replay Cast
5 days
GSL
6 days
Replay Cast
6 days
Liquipedia Results

Completed

Acropolis #5 - TRS
PiG Sty Festival 8.0
Big Dog Cup 2026 Div 1

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
ASL Season 22
Super Anchor Qualifying S3
CSL 2026 AUTUMN (S22)
Acropolis #5
Blizzard Classic Cup 2026
Blizzard Classic Cup 2026
RSL Revival: Season 6
Calamity Invitational
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 - GSA
Acropolis #5 - GSB
Acropolis #5 - GSC
SC4ALL II: Brood War
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
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
Logitech G Play Connect 2026
SL StarSeries Fall 2026
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.