• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

SkillKeeper - TrueSkill™ Rankings Bookkeeper

Zankoku

Never Knows Best
Administrator
BRoomer
Joined
Nov 8, 2006
Messages
22,906
Location
Milpitas, CA
NNID
SSBM_PLAYER
I don't currently think there's a solution to expanding BCN files, unfortunately. It mostly has to do with the fact that the files only contain player profiles and match history, and then scores are calculated from there by running through the entire timeline.

And yes, it's important to have the final bracket matches all take place after the pool matches.
 

OninO

Smash Journeyman
Joined
May 19, 2014
Messages
289
You can make the bracket take place after pool by setting the date one day later, it shouldn't throw anything else off.
 

MattCBR

Smash Rookie
Joined
Dec 12, 2015
Messages
1
You still need an API key, but it doesn't require you to be an owner of the bracket.
I'm still a bit confused on this, so I put my challonge API then put the link to the bracket in the tournament box? Or how would I pull from a bracket that isn't mine?

edit: nevermind found it!!
 
Last edited:

TTO Crim

Smash Rookie
Joined
Jan 13, 2016
Messages
9
Is there any particular reason that pools are disregarded when importing a challonge bracket?

also, is there any chance we could have a way to import more than one bracket at a time?
 
Last edited:

Son1x-

Smash Apprentice
Joined
Sep 1, 2008
Messages
88
Location
Slovenia
Is there any way to make the challonge import function import game wins rather than the set wins?
 
Last edited:

CraigUK37

Underscore HERO
Joined
Feb 1, 2008
Messages
193
Location
Telford, England
NNID
CraigUK37
Is there any way to make the challonge import function import game wins rather than the set wins?
If you change how you do things in challonge you can, don't think you can do it through Skill Keeper, just report matches as 1 - 0 sets, should work?
 

RedSunEternal

Smash Rookie
Joined
Apr 16, 2015
Messages
3
Location
Georgia
Zankoku Zankoku Hey, just wanted to say I love the program and have started using it to help out our PR board for the Georgia Smash 4 group, it's awesome! However, I've run into a little bug a few times and I wanted to bring it to your attention.

Sometimes when I go to save the world, it glitches and overwrites the file as a 1 KB file with no players or results. I believe it may occur when pulling results from a bracket that had group stages, though as there's no error being reported I'm not sure, that just seems to be what causes the bug from when I import brackets.
 

Son1x-

Smash Apprentice
Joined
Sep 1, 2008
Messages
88
Location
Slovenia
If you change how you do things in challonge you can, don't think you can do it through Skill Keeper, just report matches as 1 - 0 sets, should work?
Didn't know you could that, so I tested it out. Unfortunately it still ends up being a 1-0 win.
 

Yikarur

Smash Master
Joined
May 29, 2007
Messages
4,595
Location
Germany
Is it possible to manually add round robin pools so that the calculation is done at the end of the round robin (so every game is treated simultanously) einstead of after each set?

How does SkillKeeper calculate Round Robin Pools from a TIO file?

E: did some tests, apparently it calculates from top left to the top right chronologically.
This should NOT work like this. Every match should be calculated under the value the players had when the pool started and after the pool finished, the appropriate points should be added/substracted.

So this programm needs something like a "pool mode" if you want to consider round robin pools.

Or does anyone else have a better solution?
 
Last edited:

TTO Crim

Smash Rookie
Joined
Jan 13, 2016
Messages
9
Is it possible to manually add round robin pools so that the calculation is done at the end of the round robin (so every game is treated simultanously) einstead of after each set?

How does SkillKeeper calculate Round Robin Pools from a TIO file?

E: did some tests, apparently it calculates from top left to the top right chronologically.
This should NOT work like this. Every match should be calculated under the value the players had when the pool started and after the pool finished, the appropriate points should be added/substracted.

So this programm needs something like a "pool mode" if you want to consider round robin pools.

Or does anyone else have a better solution?
I think it should just take into account the order the matches are put in. if it can't do that, it should just go in order of when the matches were supposed to happen by rounds.
 
Last edited:

Wassabi1320

Smash Cadet
Joined
Nov 22, 2014
Messages
30
I downloaded it and am using winebottler to open the program. Whenever I try to submit a challonge bracket it just crash
 

Missile

Smash Apprentice
Joined
Dec 27, 2008
Messages
95
I can't find if it's been asked before, but does the program have some kind of hard-code built in that deducts points from a single tournament absence automatically, and then doesn't deduct any more points to consecutive absences?

For example in my PR, using this program, I have players whose scores have gone like this:

5000 (first tournament they go to)->4800(absence 1)->4800(absence 2)

The deduction occured just from being absent to a tournament, but there was no deduction for being absent to a second tournament in a row.

Did I miss a feature where this is adjustable or is it hard-coded this way?
If it's not a feature, it'd be nice to have a feature where you could penalize players for missing more than 1 tournament consecutively.
 

OninO

Smash Journeyman
Joined
May 19, 2014
Messages
289
I can't find if it's been asked before, but does the program have some kind of hard-code built in that deducts points from a single tournament absence automatically, and then doesn't deduct any more points to consecutive absences?

For example in my PR, using this program, I have players whose scores have gone like this:

5000 (first tournament they go to)->4800(absence 1)->4800(absence 2)

The deduction occured just from being absent to a tournament, but there was no deduction for being absent to a second tournament in a row.

Did I miss a feature where this is adjustable or is it hard-coded this way?
If it's not a feature, it'd be nice to have a feature where you could penalize players for missing more than 1 tournament consecutively.
That sounds more like the decay interval procced after the second tournament (the first step down from 5k to 4800) and then hasn't procced again. You could set your decay interval to really short if you wanted to penalise players for missing tourns.
 

Missile

Smash Apprentice
Joined
Dec 27, 2008
Messages
95
That sounds more like the decay interval procced after the second tournament (the first step down from 5k to 4800) and then hasn't procced again. You could set your decay interval to really short if you wanted to penalise players for missing tourns.
The new power ranking began in January 1st. The third tournament was in Jan. 23rd, decay is at 6 months regardless, lowered to 3 as of last week.

The point deduction happened before the 23rd. It seems to happen every first tournament the player is absent to (whether there are consecutive absences or not, an X amount of points with seemingly no logic behind it gets deducted)

Last year's power ranking did something similar where points would get deducted from absences after each ranking update. Updates were pretty frequent (almost every other week) and decay was at 6mo.
 
Last edited:

OninO

Smash Journeyman
Joined
May 19, 2014
Messages
289
I dunno how you're encoding absenteeism? Do you just enter their name in the tournament and then have them go 0-2?
 

Yikarur

Smash Master
Joined
May 29, 2007
Messages
4,595
Location
Germany
how is the decay calculated? How many points are you losing after a decay period?
 

TallandGangly

Smash Cadet
Joined
Apr 22, 2014
Messages
38
Location
Livingston, NJ
Any reason why I'm getting this error?

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.Aggregate[TSource](IEnumerable`1 source, Func`3 func)
at SkillKeeper.SkillKeeper.fileImportChallongeButton_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.6.106.0 built by: NETFXREL2STAGE
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
SkillKeeper
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Nick/Desktop/SkillKeeper.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.6.93.0 built by: NETFXREL2STAGE
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Moserware.Skills
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Nick/Desktop/Moserware.Skills.DLL
----------------------------------------
ChallongeApiWrapper
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Nick/Desktop/ChallongeApiWrapper.DLL
----------------------------------------
RestSharp
Assembly Version: 104.1.0.0
Win32 Version: 104.1.0.0
CodeBase: file:///C:/Users/Nick/Desktop/RestSharp.DLL
----------------------------------------
System.Xml.Linq
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Is it because I did not input a subdomain? If that is the case, it is because I'm not sure what I'm supposed to input there :/

Can anyone give me some help with this?
 

emb1234

Smash Apprentice
Joined
Mar 8, 2007
Messages
184
Location
Asheboro, NC
Any reason why I'm getting this error?



Is it because I did not input a subdomain? If that is the case, it is because I'm not sure what I'm supposed to input there :/

Can anyone give me some help with this?
Can you share the inputs you used to see if we can reproduce?
 

Mx|Edd

Smash Rookie
Joined
Apr 1, 2015
Messages
15
Location
Mexico City, Mexico
NNID
edderramirez
Is there a way you could add in the next update a Weight Index for the tournaments? Is sad that weeklies have the same weight as monthlies in my PR :(
 

Piman34

Smash Lord
Joined
Nov 15, 2006
Messages
1,309
Location
Phoenix, Arizona
3DS FC
3454-0406-0497
Zankoku Zankoku or anyone else I'm having trouble with the Challonge settings (I'm assuming). I have the account login, and the API key, but when I try to import brackets it comes up blank. Here is the Challonge page: http://naussj.challonge.com/ so you can see there are indeed completed tournament brackets on the account.

Here's what I see when I try and import the bracket:
.

I've tried messing around with the Challonge settings but can't figure out why it's doing this. My only idea is that it has to do with the url for Challonge since it's different from the typical challonge.com/user/piman34 setup. Any advice or suggestions would be so great!
 

emb1234

Smash Apprentice
Joined
Mar 8, 2007
Messages
184
Location
Asheboro, NC
Zankoku Zankoku or anyone else I'm having trouble with the Challonge settings (I'm assuming). I have the account login, and the API key, but when I try to import brackets it comes up blank. Here is the Challonge page: http://naussj.challonge.com/ so you can see there are indeed completed tournament brackets on the account.
It works out for me. What are you inputting in the boxes?

When I open the Challonge import dialog, put my API key in the first box, then just "naussj" in the subdomain (second) box (without the quotes), all the tournaments appear.
 
Last edited:

Piman34

Smash Lord
Joined
Nov 15, 2006
Messages
1,309
Location
Phoenix, Arizona
3DS FC
3454-0406-0497
It works out for me. What are you inputting in the boxes?

When I open the Challonge import dialog, put my API key in the first box, then just "naussj" in the subdomain (second) box (without the quotes), all the tournaments appear.
Yeah I feel dumb now. Everything earlier said to leave that blank so that's what i was trying to get work. But I entered the subdomain and it worked fine.

Can you tell me when the subdomain is necessary and when it's not? I'm a bit confused. So say I don't have the API key for a Challonge account, can I use my API key for my personal Challonge with the subdomain of that group, like "naussj"?
 

emb1234

Smash Apprentice
Joined
Mar 8, 2007
Messages
184
Location
Asheboro, NC
Yeah I feel dumb now. Everything earlier said to leave that blank so that's what i was trying to get work. But I entered the subdomain and it worked fine.

Can you tell me when the subdomain is necessary and when it's not? I'm a bit confused. So say I don't have the API key for a Challonge account, can I use my API key for my personal Challonge with the subdomain of that group, like "naussj"?
In the newer version of Skillkeeper, you should be able to use your personal api key for an individual tournament or subdomain.

If you want all the tournaments from a url like this:

[subdomain].challonge.com

then you want to use the subdomain.

If you just want a specific tournament, and the url starts off as just 'challonge.com/[name]' then you only need the name part. If it's '[subdomain].challonge.com/[name]' then you still need the subdomain.

At least I think that's how that all works.
 

TheSlurredNerdJake

Smash Rookie
Joined
Apr 27, 2015
Messages
3
Is there a way to import a Challonge bracket results without being the owner or having the API?
 
Last edited:

Stami

Smash Rookie
Joined
Jan 26, 2016
Messages
1
Location
Utah
NNID
dodongo122
Is there any work around for round robin tournaments?
 

Toony

Smash Journeyman
Joined
May 13, 2009
Messages
241
Hey just wanted to say I love your program, use it for local rankings in our Smash Scene. I had a question though, would it be possible to make this into a plugin for wordpress at all? I wanted to display it on our Smash website somehow.

Appreciate the response!
 

KimiNewt

Smash Rookie
Joined
Feb 16, 2015
Messages
21
You can use http://sandpr.com to display only the leaderboards if you like. Unfortunately I don't have time to work on it anymore (maybe in the summer when I'm done with school) so there aren't going to be any new features.

In the meanwhile I figured I'll share some stuff I had lying around:
https://pypi.python.org/pypi/pyskillkeeper/ - A Python package that allows you to read and work with BCN files produced by SkillKeeper. If you don't like it (or me using the name) let me know and I'll change / remove it.
Usage example:


Also, you can access the SandPR database via REST api (in Python as demonstrated or in any other language):


I've used this for integration with our stream overlay (see bottom right):
 

Toony

Smash Journeyman
Joined
May 13, 2009
Messages
241
Ah that's sweet! I'm trying to make a new group though and it requires a beta key?

Thanks for your help so far!
 

Piman34

Smash Lord
Joined
Nov 15, 2006
Messages
1,309
Location
Phoenix, Arizona
3DS FC
3454-0406-0497
I'm not very tech savvy, so when I try to important a Challonge bracket, what exactly is a subdomain?
In the newer version of Skillkeeper, you should be able to use your personal api key for an individual tournament or subdomain.

If you want all the tournaments from a url like this:

[subdomain].challonge.com

then you want to use the subdomain field.

If you just want a specific tournament, and the url starts off as just 'challonge.com/[name]' then you only need the name part at the end of the url. If it's '[subdomain].challonge.com/[name]' then you still need the subdomain, as well as the name.

At least I think that's how that all works.
 
Top Bottom