Spiral Knights Income 2021-May
Mission | Crowns/Hour | Crowns/3 Seconds | Crowns/Run | Minutes/Run | Depth | Difficulty | Runs |
---|---|---|---|---|---|---|---|
9-3 The King of Ashes (Sell Tokens) | 19142 | 16 | 10468 | 33 | 24-28(5) | Elite | 16 |
5-2 The Sovereign Slime (Sell Tokens) | 16273 | 14 | 3676 | 14 | 15-17(3) | Elite | 18 |
9-3 The King of Ashes | 14570 | 12 | 7968 | 33 | 24-28(5) | Elite | 16 |
9-2 The Gauntlet(skip 2 depths) | 13388 | 11 | 2231 | 10 | 24-26(3) | Elite | 6 |
5-2 The Sovereign Slime | 13174 | 11 | 2976 | 14 | 15-17(3) | Elite | 18 |
5-2 Rise or Fall | 11392 | 9 | 2184 | 12 | 11-13(3) | Elite | 2 |
6-2 Built to Destroy (Sell Tokens) | 10793 | 9 | 3238 | 18 | 15-17(3) | Elite | 1 |
6-2 Built to Destroy | 9043 | 8 | 2713 | 18 | 15-17(3) | Elite | 1 |
8-2 The Vile Engine | 8256 | 7 | 2064 | 15 | 20-22(3) | Elite | 1 |
2-3 The Collector | 7903 | 7 | 922 | 7 | 2-3(2) | Elite | 1 |
7-3 Beyond the Axes of Evil | 7560 | 6 | 1890 | 15 | 19-21(3) | Elite | 1 |
7-3 Spark and Roar | 7493 | 6 | 1998 | 16 | 19-21(3)+Boxes | Elite | 1 |
4-2 Oilers in the Boilers | 7474 | 6 | 872 | 7 | 9-10(2) | Elite | 1 |
3-1 Alien Ooze | 6710 | 6 | 671 | 6 | 2-3(2) | Elite | 1 |
Public Domain
Code for tracking your own data:
- Copy the code into a file and name it SK Data.htm
- Open the file in your browser and see how the const data2 corresponds with the data, that appears in the table
- Add or edit name, depth, difficulty while keeping the same format for square brackets []
- Each line of curly brackets represents 1 run {} by default or many runs, if stated, for example Runs:3
- You can use Timestamps Start and End or Minutes and Hours or just Minutes
- The 0 at the end of name, depth, difficulty is for crowns made by tokens per run. If a boss drops tokens: (NPC item value*tokens per run/tokens needed for item)
- I used the values 25000*3/30 for Vanaduke, 3500*3/15 for jelly king, and 3500*3/20 for roarmulus twins
- If there are any errors, right click and inspect. If it shows a red symbol, you can click on it and see if the hint has line numbers. If your text editor does not have any line numbers, you can press CTRL+U in the browser to view the source code with line numbers. The most common errors are likely to be with brackets or commas. If nothing works, you can copy the original code again and insert your data from the beginning step by step.
- The crown summary at the end of each run in Spiral Knights only lasts for a minute. To avoid missing it, you can type your amount of crowns at the start of the run as negative number and the amount of crowns, that you have after the run as a positive number(-a+b) or (b-a)
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Spiral Knights Income</title>
<style>
*
{font-family:verdana;
background-color:#000;
color:#fff}
table *,
table
{padding:5px;
margin:5px;
border:5px ridge #33f}
::selection
{color:#fff;
background-color:#88f}
table
{border-collapse:collapse;
width:calc(100% - 10px)}
td:hover,
td:hover~td
{background-color:#55f}
</style>
<article>
</article>
<script>
const data2=[
["9-3 The King of Ashes (Sell Tokens)","24-28(5)","Elite",25000*3/30,
[
{Crowns:8400,Minutes:35},
{Start:"11:49",End:"12:26",Crowns:7854},
{Start:"23:34",End:"00:11",Crowns:8771},
{Start:"06:19",End:"06:48",Crowns:-251385+258947}
]
],
["9-3 The King of Ashes (Sell Tokens)","24-28(5)","Elite",25000*3/30,
[
{Crowns:8400+7854+8771,Minutes:35+11+26+26+11,Runs:3},
{Start:"06:19",End:"06:48",Crowns:-251385+258947}
]
],
["9-3 The King of Ashes (Sell Tokens)","24-28(5)","Elite",25000*3/30,
[
{Crowns:25025,Hours:1,Minutes:49,Runs:3},
{Start:"06:19",End:"06:48",Crowns:-251385+258947}
]
],
["9-3 The King of Ashes","24-28(5)","Elite",0,
[
{Crowns:8400,Minutes:35},
{Start:"11:49",End:"12:26",Crowns:7854},
{Start:"12:34",End:"13:11",Crowns:8771}
]
],
["etc.","Depth","Difficulty",0,
[
{Crowns:2000,Minutes:15}
]
]
];
let table='<table><tr><th>Mission<th>Crowns/Hour<th>Crowns/3 Seconds<th>Crowns/Run<th>Minutes/Run<th>Depth<th>Difficulty<th>Runs';
const data=[];
let Duration=0;
let Crowns=0;
let Runs=0;
let End=0;
let Start=0;
let Hours=0;
const adddata=par=>{
const dataobj={};
dataobj.Name=par[0];
dataobj.Depth=par[1];
dataobj.Difficulty=par[2];
Duration=0;
Crowns=0;
Runs=0;
Hours=0;
par[4].forEach(x=>{
if('Start' in x&&'End' in x&&x.Start.length==5&&x.End.length==5){
End=parseInt(x.End.substr(0,2));
Start=parseInt(x.Start.substr(0,2));
Hours=End-Start;
if(End<Start)Hours+=24;
Duration+=(60*Hours+1*(x.End.substr(3)-x.Start.substr(3)));
}
else{
if('Hours' in x)Duration+=60*x.Hours;
Duration+=x.Minutes;
}
Crowns+=x.Crowns+par[3];
if('Runs' in x){
Runs+=x.Runs;
Crowns+=par[3]*(x.Runs-1);
}else Runs++;
});
dataobj.Runs=Runs;
const CrownsPerMinute=Crowns/Duration;
dataobj.MinutesPerRun=Math.round(Duration/dataobj.Runs);
dataobj.CrownsPerRun=Math.round(Crowns/dataobj.Runs);
dataobj.CrownsPerHour=Math.round(60*CrownsPerMinute);
dataobj.CrownsPerThreeSeconds=Math.round(CrownsPerMinute/20);
data.push(dataobj);
}
data2.forEach(x=>adddata(x));
data.sort(function(a, b){return b.CrownsPerHour - a.CrownsPerHour});
data.forEach(x=>table+=`<tr><td>${x.Name}<td>${x.CrownsPerHour}<td>${x.CrownsPerThreeSeconds}<td>${x.CrownsPerRun}<td>${x.MinutesPerRun}<td>${x.Depth}<td>${x.Difficulty}<td>${x.Runs}`);
document.querySelector('article').innerHTML=table;
</script>
Public Domain