Story Rank Info

How we calculate your story rank

The full source code is available on GitHub

Story rank is based on three independent sets of ranks, that each individually can trigger a rank up

Thresholds
Battle StarsStory EpisodesGhost Battle Wins
201030
502060
10030105
40040150
100050210
200060300
300080420
5000100570
7000140750
10000200960
+50003001200
...4001500
5002100
6003000
7004500
900+1500
1100...
1500
2000
2500
3000
3500
4500
5000
8500
17400
18000
+500
...

We also generate the rank names, which can be seen below

  
export const rankNumbers = Array.from({length: 9})
  .map((_, i) => i + 1)
  .reverse()

export const rankNames = ["C", "B", "A", "S", "SS", "SSS", "SSSS"]

export const ranks: Rank[] = [
  {name: "N"},
  ...rankNames.flatMap(name => rankNumbers.map(number => ({name, number}))),
  ...rankNumbers.map(() => ({name: "SSSSS"})),
  {name: "SSSSSS"},
]

export interface Rank {
  name: string
  number?: number
}

  
NCBASSSSSSSSSSSSSSSSSSSSS

N

C9

B9

A9

S9

SS9

SSS9

SSSS9

SSSSS

SSSSSS

C8

B8

A8

S8

SS8

SSS8

SSSS8

SSSSS

C7

B7

A7

S7

SS7

SSS7

SSSS7

SSSSS

C6

B6

A6

S6

SS6

SSS6

SSSS6

SSSSS

C5

B5

A5

S5

SS5

SSS5

SSSS5

SSSSS

C4

B4

A4

S4

SS4

SSS4

SSSS4

SSSSS

C3

B3

A3

S3

SS3

SSS3

SSSS3

SSSSS

C2

B2

A2

S2

SS2

SSS2

SSSS2

SSSSS

C1

B1

A1

S1

SS1

SSS1

SSSS1

SSSSS