Score Formula

Changes from SIF

The score formula for each note in SIF2 is very similar to the one for the original SIF (via Kouhi). Apart from the missing features (no bonuses from attached items or from bond, because those features don't exist), I have seen the following differences:

  • Instead of using floor(), the game uses ceil() on two occasions (in other words, if the result has a decimal part, it is rounded to the next integer).
  • The last combo length multiplier (x1.35) starts at 800 instead of 801.
  • Hold notes now add score at the beginning and at the end of the hold, instead of just at the end. The accuracy multipliers are also simplified, since each of those scores uses a separate one. The end result is that, while they still count as 1 for the combo length, they now give double the score (in case of non-PERFECT accuracy, they give even more than that!).
  • The team points after selecting a guest center don't include the added points (in both games you see how many points you gain from the guest center, but in SIF this number has already been summed to the team points, while in SIF2 it hasn't).

Team points

The team points are obtained by adding the points of each of the 9 members in the team:

TEAM_POINTS = MEMBER1_POINTS + MEMBER2_POINTS + ... + MEMBER9_POINTS

To get the points of each member, we start with the member's points for the song's attribute. After that, we add each of the center skill bonuses separately:

MEMBER1_POINTS = MEMBER1_BASE_POINTS + ceil(MEMBER1_BASE_POINTS * CENTER_SKILL_BONUS1) + ceil(MEMBER1_BASE_POINTS * CENTER_SKILL_BONUS2) + ceil(MEMBER1_BASE_POINTS * GUEST_CENTER_SKILL_BONUS1) + ceil(MEMBER1_BASE_POINTS * GUEST_CENTER_SKILL_BONUS2)

You can get between zero or two center skill bonuses per center skill: center skills increase the points of one attribute for all the members in the team, but some center skills also increase that attribute's points for all the members of a certain subunit.


Score per note

We split the note score formula into two parts, the base note score and the final note score. Each of them are rounded using ceil().

BASE_NOTE_SCORE = ceil(TEAM_POINTS / 80)

FINAL_NOTE_SCORE = ceil(BASE_NOTE_SCORE * ACCURACY_MULTIPLIER * ATTRIBUTE_MULTIPLIER * GROUP_MULTIPLIER * COMBO_MULTIPLIER * NOTE_TYPE_MULTIPLIER)

Note: this means that increasing the team points by less than 80 will sometimes have no effect on the song's score.

Tecnical note: to get results closer to the real ones, you need to use float32 precision.

Accuracy multiplier
PERFECT GREAT GOOD BAD MISS
1.0 0.88 0.8 0.4 0
Attribute multiplier

This multiplier is 1.1 if the tapped member's attribute matches the song's attribute. Otherwise, it is 1.0.

Group multiplier

This multiplier is 1.1 if the tapped member belongs to the song's group. Otherwise, it is 1.0.

Combo multiplier

This multiplier depends on the combo length before the note:

0 - 50 51 - 100 101 - 200 201 - 400 401 - 600 601 - 799 800+
1.0 1.1 1.15 1.2 1.25 1.3 1.35
Note type multiplier
Standard Hold Swipe Swipe with hold
1.0 1.25 (start), 1.25 (end) 0.5 0.5 (start), 1.25 (end)

Note: the star icon in a note doesn't affect the note type.