Dodging Rain Competition

The Dodging Rain Competition (DRC) is a Touhou game competition that was devised by ZM and is held on the official DRC Discord. Two teams go up against each other in several different categories. Each player posts an arbitrarily long list of categories, ordered by preference, which can be either survival or scoring of any Touhou shooting game and any difficulty. They will be matched up against a player from the other team, in a category that both players had on their list. The teams and categories are determined by the DRC management team. Players are given two weeks to sign up for the competition, and once it starts, two weeks to submit a replay, which will be awarded points dependent on the rubrics. Runs done outside those two weeks are invalid. Players can submit an unlimited number of replays; the replay that is worth the most DRC points will count.

If you want to know how many DRC points a run is worth, the points for a given run can be determined using the calculator below.

Points Calculator

Scores can only contain digits, commas, dots and spaces. Survival runs are assumed to have cleared, scoring runs not.


  1. No cheating by using external programs or modifying the game FPS.
  2. Replays are required for Windows game submissions, while for PC-98 a video is accepted.
  3. All runs must be played using at most default lives and bombs.


The rubrics are the formulas and fixed values used to calculate the number of DRC points for a run. If you are curious about how your points are being determined, click the button below to expand.

Scoring Notes

  • The World Records are taken from the WR page.
  • If you achieve a new World Record, your points are equal to the maximum number of points; otherwise, the formula applies.
  • Some categories use a fictional WR. Click here for the list of them.
  • Some categories always use the WR of a specific shottype. Click here for the list of them.
  • MoF uses a separate system. Click here for said system.
  • DS uses a separate system. Click here for said system.
||Max * (Score/WR)^Exp||
GameMax pointsExponent
HRtP Easy30011
HRtP Normal32511
HRtP Hard35011
HRtP Lunatic40010
SoEW Easy3004
SoEW Normal3004
SoEW Hard3503
SoEW Lunatic3752
SoEW Extra3255
PoDD Easy3004
PoDD Normal3503
PoDD Hard4003
PoDD Lunatic4503
LLS Easy3004
LLS Normal3503
LLS Hard3753
LLS Lunatic4002.5
LLS Extra3509
MS Easy3004
MS Normal3503
MS Hard4003
MS Lunatic4502
MS Extra3754
EoSD Easy3504
EoSD Normal4003
EoSD Hard4502.5
EoSD Lunatic5002
EoSD Extra4502.5
PCB Easy3754
PCB Normal4003
PCB Hard4502.5
PCB Lunatic5002
PCB Extra4502.5
PCB Phantasm4502.5
IN Easy3754
IN Normal4003
IN Hard4502.5
IN Lunatic5002.7
IN Extra4503
PoFV Easy3754
PoFV Normal4003
PoFV Hard4502.5
PoFV Lunatic5002
PoFV Extra4502.5
SA Easy3754
SA Normal4003
SA Hard4502.5
SA Lunatic5002.2
SA Extra4506.5
UFO Easy3754
UFO Normal4002.5
UFO Hard4502
UFO Lunatic5002
UFO Extra4503
GFW Easy3758.5
GFW Normal4007.5
GFW Hard4507
GFW Lunatic5006.5
GFW Extra4507
TD Easy3755
TD Normal4004
TD Hard4503.5
TD Lunatic5003.5
TD Extra4502.5
DDC Easy3754
DDC Normal4003
DDC Hard4502.5
DDC Lunatic5002
DDC Extra4509
LoLK Easy3754
LoLK Normal4003.5
LoLK Hard4503
LoLK Lunatic5003
LoLK Extra4503.5
HSiFS Easy3753
HSiFS Normal4003
HSiFS Hard4502.5
HSiFS Lunatic5002
HSiFS Extra4502.5
WBaWC Easy3753
WBaWC Normal4003
WBaWC Hard4502.5
WBaWC Lunatic5002
WBaWC Extra4502.5

Fictional WRs

The categories in the table below use a fictional WR instead of the real one.

HRtP Easy13.4m
HRtP Normal13.4m
HRtP Hard13.4m
HRtP Lunatic15.5m
LLS Lunatic165m
MS Lunatic200m
PCB Lunatic ReimuB3.3b
PCB Lunatic SakuyaB3.6b
LoLK Lunatic Reimu2.5b
LoLK Lunatic Marisa2.4b

'WR' definition

The categories in the table below always use the WR of a specific shottype.

SoEW HardReimuB
SoEW LunaticReimuA
LLS EasyReimuA
LLS NormalReimuB
LLS HardReimuB
LLS ExtraReimuB
HSiFS HardMarisaAutumn

MoF Scoring

For each difficulty and shottype there are six thresholds, at which you will have set numbers of points respectively. Then, increments are done, dependent on how much higher than the threshold your score is. The maximum is 375 on Easy and 500 on Lunatic.

If score < 1st threshold, then: ||220*(Score/T1)^2||
ThresholdBase pointsIncrements
1.48b220+1 for every 3m
1.51b230+2 for every 1m
1.52b250+3 for every 1m
1.53b280+4 for every 1m
1.54b320+5.5 for every 1m
ThresholdBase pointsIncrements
1.5b220+1 for every 3m
1.53b230+2 for every 1m
1.54b250+3 for every 1m
1.55b280+4 for every 1m
1.56b320+5.5 for every 1m
ThresholdBase pointsIncrements
1.495b220+1 for every 3m
1.525b230+2 for every 1m
1.535b250+3 for every 1m
1.545b280+4 for every 1m
1.555b320+5.5 for every 1m
ThresholdBase pointsIncrements
1.495b220+1 for every 3m
1.525b230+2 for every 1m
1.535b250+3 for every 1m
1.545b280+4 for every 1m
1.555b320+5.5 for every 1m
ThresholdBase pointsIncrements
1.505b220+1 for every 3m
1.535b230+2 for every 1m
1.545b250+3 for every 1m
1.555b280+4 for every 1m
1.565b320+5.5 for every 1m
ThresholdBase pointsIncrements
1.51b220+1 for every 3m
1.54b230+2 for every 1m
1.55b250+3 for every 1m
1.56b280+4 for every 1m
1.57b320+5.5 for every 1m
If score < 2b, then: ||200*(Score/2b)^2||
ThresholdBase pointsIncrements
2b220+5 for every 10m
2.1b270+1 for every 1m
2.15b320+2 for every 1m
2.17b360+5 for every 1m
2.18b410+6 for every 1m
2.19b470+7 for every 1m
ThresholdBase pointsIncrements
2b210+5 for every 10m
2.1b260+1 for every 1m
2.15b310+1.5 for every 1m
2.19b370+5 for every 1m
2.2b420+6 for every 1m
2.21b480+6 for every 1m
If score < 900m, then: ||100*(Score/900m)^2||
ThresholdBase pointsIncrements
900m100+1 for every 1m
950m150+1 for every 500,000
975m200+1 for every 150,000
990m300+1 for every 40,000
994m400+1 for every 34,000
995.7m450+1 for every 25,000

DS Scoring

For each scene there are three thresholds, at which you will have set numbers of points points respectively. Then, increments are done, dependent on how much higher than the threshold your score is.

SceneBase pointsIncrementsThreshold 1IncrementsThreshold 2IncrementsThreshold 3
2-50+1 for every 12,500250,000+1 for every 2,333320,000+1 for every 1,167355,000
5-30+1 for every 30,000600,000+1 for every 2,500675,000+1 for every 833700,000
7-30+1 for every 37,500750,000+1 for every 4,500885,000+1 for every 1,667935,000
8-10+1 for every 37,500750,000+1 for every 3,000840,000+1 for every 1,667890,000
8-50+1 for every 70,0001,400,000+1 for every 16,6671,900,000+1 for every 11,6672,250,000
11-80+1 for every 65,0001,300,000+1 for every 17,3331,820,000+1 for every 4,0001,940,000

Survival Notes

  • For a main game clear, a shottype multiplier is applied to your DRC points, the result of which is again rounded. Click here for the list of them.
  • The Phantasmagorias use a separate system. Click here for said system.
  • For IN, you obtain 2 (1 on Easy) additional points for each captured Last Spell, with the exception of Imperishable Shooting, which yields 5 points.
  • For HSiFS, the first release adds 2 to n, and further releases add 0.5, 0.4, 0.3, 0.2, 0.1 to n.
||Max * (Base^-n)||
GameMax pointsBaseLost life (n)First bomb (n)Further bombs (n)
HRtP Easy601.04242
HRtP Normal1101.04242
HRtP Hard1501.04252
HRtP Lunatic3001.042102
SoEW Easy401.05221
SoEW Normal801.05231
SoEW Hard1201.05231
SoEW Lunatic2501.05251
SoEW Extra1001.1231
LLS Easy401.05221
LLS Normal901.05221
LLS Hard1401.05221
LLS Lunatic2901.07231
LLS Extra901.07231
MS Easy601.05221
MS Normal1001.05231
MS Hard1501.05231
MS Lunatic3001.07251
MS Extra1001.08231
EoSD Easy501.05221
EoSD Normal1001.05231
EoSD Hard1501.05231
EoSD Lunatic3201.05251
EoSD Extra1101.08231
PCB Easy601.05221
PCB Normal1001.05231
PCB Hard1501.05231
PCB Lunatic2801.05251
PCB Extra1101.08231
PCB Phantasm1101.08231
IN Easy451.05221
IN Normal901.05231
IN Hard1401.05231
IN Lunatic2901.05251
IN Extra1101.08231
MoF Easy601.05221
MoF Normal1001.05231
MoF Hard1501.05241
MoF Lunatic2901.05251
MoF Extra1051.08231
SA Easy501.05221
SA Normal1101.05231
SA Hard1501.05241
SA Lunatic3001.05251
SA Extra1101.08231
UFO Easy501.051.621
UFO Normal1001.051.631
UFO Hard1601.051.641
UFO Lunatic3151.051.651
UFO Extra1101.08231
GFW Easy501.09221
GFW Normal901.08231
GFW Hard1301.06231
GFW Lunatic2601.06241
GFW Extra1301.07231
TD Easy501.05221
TD Normal901.05231
TD Hard1401.05241
TD Lunatic2801.05251
TD Extra1101.08231
DDC Easy501.071.821
DDC Normal1001.051.831
DDC Hard1501.051.841
DDC Lunatic2901.051.851
DDC Extra1101.08231
LoLK Easy601.051.221
LoLK Normal1201.051.231
LoLK Hard1601.051.241
LoLK Lunatic3201.051.251
LoLK Extra1301.08231
HSiFS Easy501.06221
HSiFS Normal1001.05231
HSiFS Hard1501.05231
HSiFS Lunatic3001.05231
HSiFS Extra1051.07231
WBaWC Easy501.06221
WBaWC Normal1001.05231
WBaWC Hard1501.05231
WBaWC Lunatic3001.05231
WBaWC Extra1051.07231

PoDD & PoFV Survival

In the below formula, MaxLives is equal to 5 for PoDD, 7 for PoFV main game and 8 for PoFV Extra. NoBombBonus is a difficulty-specific No Bomb bonus for PoDD and a No Charge Attacks bonus for PoFV. RoundsLost is equal to how many rounds the player lost.

||Max - ((Max - Min) / MaxLives * RoundsLost)|| + NoBombBonus
GameMax pointsMin pointsNo Bomb bonus
PoDD Easy651010
PoDD Normal1052015
PoDD Hard1403525
PoDD Lunatic2606050
PoFV Easy401010
PoFV Normal701520
PoFV Hard1002030
PoFV Lunatic2103050
PoFV Extra851525

Shottype Multipliers

These are applied to the result of the survival formula for a main game run only; they do not apply for Extra, nor do they apply for HSiFS runs that use releases.For all shots not listed here, the shottype multipliers are equal to 1.

HRtP Makai1.05
SoEW ReimuC1.05
PoDD Reimu0.9
PoDD Mima1.1
PoDD Marisa1.1
PoDD Ellen1.15
PoDD Kotohime1.1
PoDD Kana1.15
PoDD Rikako0.9
PoDD Chiyuri1.2
PoDD Yumemi0.9
LLS ReimuA1.05
LLS ReimuB1.05
LLS MarisaB1.1
MS Reimu1.05
MS Marisa1.05
MS Yuuka1.1
EoSD ReimuA1.05
EoSD MarisaA1.1
PCB ReimuA1.05
PCB MarisaA1.05
PCB MarisaB1.05
IN MagicTeam1.05
IN ScarletTeam1.05
IN Reimu1.2
IN Yukari1.05
IN Marisa1.1
IN Alice1.3
IN Sakuya1.3
IN Remilia1.1
IN Yuyuko1.15
PoFV Reisen1.05
PoFV Lyrica1.05
PoFV Tewi1.05
PoFV Aya0.5
PoFV Medicine0.5
PoFV Yuuka1.05
MoF ReimuA1.05
MoF ReimuC1.15
MoF MarisaA1.15
MoF MarisaB1.05
SA ReimuB1.05
SA ReimuC1.1
SA MarisaA1.05
SA MarisaC1.15
UFO ReimuB1.05
UFO MarisaA1.05
UFO MarisaB1.15
UFO SanaeA1.05
GFW A11.05
GFW B11.15
GFW B21.05
GFW C11.15
GFW C21.05
TD Sanae1.1
DDC ReimuB1.1
DDC MarisaA1.3
DDC MarisaB1.05
DDC SakuyaB1.3
LoLK Marisa1.15
LoLK Sanae1.15
LoLK Reisen1.15
HSiFS ReimuSpring1.15
HSiFS ReimuSummer1.15
HSiFS CirnoSpring1.2
HSiFS CirnoSummer1.2
HSiFS CirnoAutumn1.1
HSiFS CirnoWinter1.1
HSiFS AyaSpring1.15
HSiFS AyaSummer1.15
HSiFS AyaAutumn1.05
HSiFS AyaWinter1.05
HSiFS MarisaSpring1.15
HSiFS MarisaSummer1.15