• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 23:53
CEST 05:53
KST 12:53
  • 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
Serral wins HomeStory Cup 2914Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
IntoTheTV X SOOP SC2 League : Weekly & Monthly4Clem: "I don't have that much hope in Blizzard"4ZeroSpace Early Access is Now Live!29Weekly Cups (July 13-19): Terran & Protoss rise; Zerg falters2Balance hotfix patch 5.0.16b (July 16)95
StarCraft 2
General
How would you feel about frequent/monthly balance patches for SC2? Clem: "I don't have that much hope in Blizzard" 3kb/s downloading patch..... are we back to 1998? Balance hotfix patch 5.0.16b (July 16) Reynor: GSL Loss Wasn't About Preparation Format
Tourneys
RSL Revival: Season 6 - Qualifiers and Main Event PIG STY FESTIVAL 8.0! (13 - 23 August) IntoTheTV X SOOP SC2 League : Weekly & Monthly INu's Battles#18 - Cure, herO, Rogue & ByuN Master Swan Open (Global Bronze-Master 2)
Strategy
[G] Having the right mentality to improve
Custom Maps
[M] (2) Industrial Park New Map Maker - Looking for Advice - Love or Hate
External Content
Cara Menghubungi Call Center Scoot Airlines Mutation # 536 Railroad Switch The PondCast: SC2 News & Results Mutation # 535 Assembly of Vengeance
Brood War
General
BW General Discussion ASL22 General Discussion BGH Auto Balance -> http://bghmmr.eu/ Recent recommended BW games screpdb: new Starcraft reporting tool
Tourneys
Escore Tournament - Season 3 2v2v2v2 Tournament [Megathread] Daily Proleagues Star Con San Diego 2026
Strategy
Simple Questions, Simple Answers PvT advise for noobs Fighting Spirit mining rates Creating a full chart of Zerg builds
Other Games
General Games
ZeroSpace Early Access is Now Live! General RTS Discussion Thread Nintendo Switch Thread Path of Exile Diablo IV
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
US Politics Mega-thread Artificial Intelligence Thread Russo-Ukrainian War Thread European Politico-economics QA Mega-thread How to buy a book - shipping from Korea to Europe
Fan Clubs
The IdrA Fan Club The HerO Fan Club!
Media & Entertainment
Movie Discussion! Anime Discussion Thread Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread 2026-27 Football Thread placeholder TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
Northern Ireland Global Starcraft The Automated Ban List
Blogs
Games, Hormones, and "Dark" …
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
An Exploration of th…
waywardstrategy
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6115 users

screpdb: new Starcraft reporting tool

Forum Index > BW General
Post a Reply
iCCup.Trent
Profile Joined May 2005
Argentina460 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
Croatia9545 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
10353 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
Argentina460 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 States10802 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
Germany3703 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
Belgium7009 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
Argentina460 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
Argentina460 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
731 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
Argentina460 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
Argentina460 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
Bulgaria1549 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
Please log in or register to reply.
Live Events Refresh
Next event in 7h 8m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RuFF_SC2 185
Nina 175
FoxeR 74
StarCraft: Brood War
GuemChi 3958
Free 167
Mind 81
ZergMaN 76
Noble 61
sSak 61
Leta 49
Larva 38
NaDa 36
JulyZerg 35
[ Show more ]
GoRush 21
yabsab 8
firebathero 0
Dota 2
NeuroSwarm240
LuMiX0
Super Smash Bros
hungrybox575
Heroes of the Storm
Khaldor109
Other Games
summit1g10900
JimRising 808
WinterStarcraft443
C9.Mang0330
Maynarde142
Livibee80
Organizations
Other Games
gamesdonequick1196
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• practicex 8
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush970
• Lourlo817
• Stunt135
Upcoming Events
WardiTV Weekly
7h 8m
Sparkling Tuna Cup
1d 6h
INu's Battles
1d 7h
Cure vs herO
ByuN vs Rogue
PiGosaur Cup
1d 20h
The PondCast
2 days
Kung Fu Cup
2 days
Patches Events
2 days
Replay Cast
3 days
CrankTV Team League
3 days
OSC
3 days
[ Show More ]
Replay Cast
3 days
Escore
4 days
CrankTV Team League
4 days
Replay Cast
4 days
Afreeca Starleague
5 days
RSL Revival
5 days
ByuN vs SHIN
Solar vs Lambo
WardiTV Summer Champion…
5 days
Afreeca Starleague
6 days
RSL Revival
6 days
Clem vs Serral
herO vs Rogue
WardiTV Summer Champion…
6 days
Liquipedia Results

Completed

Acropolis #4
SCTL 2026 Spring
Eternal Conflict S2 Finale

Ongoing

CSL 2026 Summer (S21)
KCM Race Survival 2026 Season 3
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026

Upcoming

Escore Tournament S3: W5
ASL Season 22: Qualifier #1
ASL Season 22: Qualifier #2
Acropolis #5
CSLAN 4
ASL Season 22
Acropolis #5 - TRS
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Light Tournament 2026
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 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.