Home | About | Tournament Winning Decklists | Forums

~300k OCTGN game stats

For competitive cut stats top 31 of this page would work (almost but not quite 1600+ elo)

Cheers man. I’ve just signed up to your patron programme and recommend others who play on OCTGN to do the same, You can pledge as little as $1 a month and support the great work he does and also get latest datapack news. Wanna know when Order and Chaos will be rezzed on OCTGN? https://www.patreon.com/db0?ty=a&u=66113


yeah just did as well, much easier than trying to remember to manually donate every couple months. was already donating monthly to octgn but the client is useless without the anr support. go @db0, can’t wait to play O&C shortly

1 Like

Just a reminder, if you sub at 3+, lemme know your usernames to supercharge you :wink:

SO I have the export but I’m struggling for time to anonymize and release what with O&C out. It’ll have to wait a bit

Done: SHL2 Stats now available


so sick

Awesome. Downloaded the 400k dataset. Lots of code to run.

Did any results ever come from this?

Hey db0 is it possible to get the dataset for the SSCII ?
Would be awesome to get some more detailed stats for this tournament.


I have results and plots, but no article yet.

Did people use a special [Tag] to mark it? If so, maybe. If not, not :wink:

I know some people used [SSCI], but I don’t know if it was done universally.

I think I just used SSCI in my title, no brackets

Everyone put SSCI / [SSCI] in a way or another in their room name.

I’ve been working on using a TrueSkill implementation to work on the data. My main objective right know is to analyze how skill affect the outcome of the matches between the different Corp-Runner match-ups. When I group them by the result of the games I get this:

AgendaDefeat | 184346
DeckVictory | 1
AgendaVictory | 132282
Flatlined | 3
FlatlineVictory | 70442
Conceded | 7902
ConcedeVictory | 9945
DeckDefeat | 1902
(8 rows)

Is there a difference between: Flatlined and FlatlineVictory, DeckDefeat and DeckVictory?
Which sides wins with ConcedeVictory and Conceded.

I know I could exclude these, and right know I’m doing that, but it would be nice to know.
also if anyone is interested on an specific report, or the raw data with the ratings added just send me a message.


1 Like

DeckDefeat= Corp decked
DeckVictory= Runner decked the corp.
FlatlineVictory= Runner killed
Flatlined: Runner Killed

think your safe to discount flatlined and deckdefeat.

looking at the code both sides submit there results. DeckDefeat is the same as DeckVictory, corp decked, so there should be the same number. Would imagine the single DeckVictory slipped through dbo’s formatting.

@db0 is your man for more info.

‘Victory’ is defined with reference to the Corp:

if result == 'Flatlined' or result == 'Conceded' or result == 'DeckDefeat' or result == 'AgendaDefeat': WIN = 0
   else: WIN = 1

This means DeckVictory is a win for the Corp, not the Runner. And Flatlined is a loss for the Corp, which actually means there’s a bug in my code (I rate players with Glicko and look at ID matchups).

You can also see the definition at work in the enemy reporting a little further down:

   # The victorious player also reports for their enemy
   enemyPL = ofwhom('-ofOpponent')
   ENEMY = enemyPL.name
   enemyIdent = getSpecial('Identity',enemyPL)
   E_IDENTITY = enemyIdent.Subtitle.replace(',','').replace('.','').replace('#','').replace('@','').replace('#','')
   debugNotify("Enemy Identity Name: {}".format(E_IDENTITY), 2) #Debug
   if result == 'FlatlineVictory': 
      E_RESULT = 'Flatlined'
      E_WIN = 0
   elif result == 'Flatlined': 
      E_RESULT = 'FlatlineVictory'
      E_WIN = 1
   elif result == 'Conceded': 
      E_RESULT = 'ConcedeVictory'
      E_WIN = 1  
   elif result == 'DeckDefeat': 
      E_RESULT = 'DeckVictory'
      E_WIN = 1  
   elif result == 'AgendaVictory': 
      E_RESULT = 'AgendaDefeat'
      E_WIN = 0
   elif result == 'AgendaDefeat': 
      E_RESULT = 'AgendaVictory'
      E_WIN = 1
      E_RESULT = 'Unknown'
      E_WIN = 0

think this is wrong.

if currentHandSize(me) < 0 and ds == 'runner': notify(":::Warning:::{} goes to sleep, never to wake up again (flatlined due to excessive brain damage.)".format(me)) #If the target does not have any more cards in their hand, inform they've flatlined. reportGame('Flatlined')

deckDefeat is definitely corp decked.

if confirm("You do not have enough cards in your R&D to draw. Continuing with this action will lose you the game. Proceed?"): notify(":::ATTENTION::: {} cannot draw the full amount of cards. {} loses the game!".format(me,me)) reportGame('DeckDefeat')

The only point DeckVictory is reported is when the enemy has reported deckdefeat.

FlatlineVictory is the same as Flatlined a corp win.
DeckVictory is the same as DeckDefeat a runner win

It appears dbo just filters one side out.


Oh good, so I was right the first time and don’t have to change my code. Woo!

Edit: Python is definitely not my native tongue.

1 Like