Default
Animal Crossing Letter Scorer

Animal Crossing (GCN) Letter Scorer Tool

QUESTION How does this tool work?

Letter Score: 0 pts
Villager will not send a reply.
Characters: 0 / 192

Length Check:
0 pts
Trigram / Run-on Check:
0 pts
Present Check:
0 pts
Check A:
0 pts
Check B:
0 pts
Check C:
0 pts
Check D:
0 pts
Check E:
0 pts
Check F:
0 pts
Check G:
0 pts

Letter Scoring:
Sending an unprompted letter to any resident villager will cause the letter's body to be scored through seven different checks. This letter scoring affects the villager's response letter, as well as your friendship with them and your odds at receiving a present in return!

Possible Outcomes:

Letter ScoreVillager ResponseFriendship Change
100 pts or morePositive reply
50% chance at receiving a random furniture / clothing item
+3 if no present attached
+6 if present attached
50-99 ptsNo reply+3 if no present attached
+6 if present attached
Less than 50 ptsNegative reply-2 if no present attached
+1 if present attached

Check A: Punctuation
Adds +20 pts if the letter ends with punctuation, so long as the letter body does not take up all 192 characters. Also checks the next three characters following every occurrence of a punctuation mark. If there is a capital letter within those three characters, adds +10 pts per occurrence. If there isn't AND there is any other non-space character present, -10 pts per occurrence.

Check B: Trigrams
Adds +3 pts per valid trigram found within the starting three characters of each word. A trigram is considered valid if it is found within the game's internal trigram tables. Note that these tables are bugged in the North American / Australian versions of the game, resulting in each trigram table being much longer than intended. This tool takes into account this bug and scores the letter as the game would. More information about this bug can be found here.

Check C: Leading Capital
Adds +20 pts if the first non-space character in the letter is a capital alphabetic letter; -10 pts if not.

Check D: Repeating Characters
-50 pts if any letter of the alphabet is repeated sequentially three times or more.

Check E: Space Ratio
If the ratio of spaces to non-space characters in the letter is greater than or equal to 20%, add +20 pts. If the letter empty, all spaces, or is less than 20% spaces, then -20pts.

Check F: Run-on Sentence
If the letter has at least one punctuation mark before the final 75 characters of the letter, check after each punctuation mark for an instance of 75 sequential characters without any punctuation. If there are 75 sequential characters without punctuation, then -150 pts.

Check G: 32-Character Space Groupings
Checks every 32 sequential characters in the letter for at least one space. -20 pts per group of 32 characters that does not have a space. This check does not occur if a grouping is not at least 32 characters long. For example, a letter 63 characters long will only check the first grouping of 32 characters and will not care about the remaining 31 characters.

Quest Letters:
Whenever you ask a villager if they need anything, there's a chance they will tell you that you should write a letter to them! This triggers the start of a questline where, if you mail a letter to a villager who has this quest active, a different ranking system is used instead of the normal scoring algorithm. This specific quest letter can rank between 0 and 11, with guaranteed rewards depending on your letter's rank. After mailing this letter, you can then talk to the villager again and your mailbox will update with a letter from them. If your letter ranked 3 or higher, this response letter will always have an attached present, which differs depending on the rank. The attached presents are consistent every time, meaning you can guarantee specific rewards if you pre-calculate your letter's rank! These rewards, and information about the quest-specific checks, are detailed below.

Quest Rewards:

Letter RankResponse Letter's Attached Present
0 - 2No attached gift
3Random clothing item
4Random furniture item
5Random carpet or wallpaper (50% chance each)
6Your town's native fruit
7Random clothing item
8Rare clothing item
9Random, non-native fruit
10Rare furniture item
11Rare carpet or rare wallpaper (50% chance each)


Length Check:
Quest letters have a length check that simply counts the total number of non-space characters in the letter. If there are 49 or more non-space characters, your letter gets +2 rank. If there are between 17 and 48 non-space characters, your letter gets +1 rank. Otherwise, you get no rank added.

Trigram / Run-on Check:
This check calculates the total percentage of valid trigrams in your letter, as well as a special "run-on" check for repeated characters. A trigram is defined as the leading three characters of each word, and the game has an internal list of "valid" ones. This trigram check uses the same tables as the normal letter scoring, meaning this check is bugged in the North American / Australian versions of the game. More information on trigrams and this bug can be found here.

The game calculates valid trigrams by getting the total number of words in the the letter and comparing it to the total number of valid trigrams. The actual calculation is: (VALID_TRIGRAMS * 10000) / (TOTAL_WORDS * 100)

Further, a letter is considered a "run-on" if any letter of the alphabet is sequentially repeated three times or more. The exceptions to this rule are these characters, which can be repeated sequentially up to seven times: ! " _ - 💢 % @ ·

After this, the check calculates the rank, which is best summarized via psuedocode:
          
              RANK = 3

              if ( TOTAL_WORDS < 3 )
              {
                  if( TOTAL_NONSPACE_CHARACTERS < 5 )
                  {
                      RANK = 0
                  }
                  else if( RUN_ON == TRUE )
                  {
                      RANK = 0
                  }
              }
              else if ( VALID_TRIGRAMS >= 30% )
              {
                  RANK = 3
              }
              else if ( RUN_ON == TRUE )
              {
                  RANK = 0
              }

              return RANK
            
          
If you think this is programmed strangely, you are correct! Since this check defaults the rank to 3, you can purposefully write a letter to avoid the RANK = 0 conditions to still get +3 rank. An example of the easiest letter to write that gives +3 here is just "!!!!!"


Present Check:
Simply adds +6 rank if you include a present in your letter.

Source code for this project can be found here.
Tool created based off datamining and decompilation done by Cuyler, James Chambers, and myself.

© Hunter R.. Some rights reserved.

Site last updated January 25th, 2025