File information

Last updated

Original upload

Created by


Uploaded by


Virus scan

Safe to use

About this mod

Shows the locations of NPC and farmers on the map page and on a minimap. Uses a modified map page that is much more accurate to the game.

Permissions and credits
Shows NPC locations on the map. Uses a modified map page that is much more accurate to the game. Includes various settings to customize when to show NPCs. Includes a lot of support for custom mods.

This mod is not yet fully featured for farmhands (non-host players) in multiplayer. Only the host can see the NPCs.

Mod Configurations

Using the Mod Menu:

- For Keyboard + Mouse: While the map is open, press the 'TAB' key to open the mod menu.
- For Controllers: While the map is open, press the 'Y' button to open the mod menu.

Changing Tooltip Placements
- For Keyboard + Mouse: While the map is open, press the 'SPACE' key to change tooltip placement modes.
- For Controllers: While the map is open, press the 'RIGHT/LEFT BUMPER' buttons to change tooltip placement modes.

Changing Mod Hotkeys:
- Go to the config.json file inside of the mod folder. Open it up with a text editor of your choice and find the line with the key you want to change
("MenuKey": "Tab", or "MinimapToggleKey": "Tab",)
- Replace "Tab" with one of these keys:
- For example, to change it to the tilde (`) key you would change it to "MinimapToggleKey": "OemTilde",

Using Recolored Maps
In order to use the recolored mod maps for Eeemie's Map Recolour or Starblue Valley, you must have the CONTENT PATCHER versions of those mods installed. 
- For Starblue Valley: Go into the Starblue Valley/assets folder in Mods/ and remove map.png.

Using Villager Sprite Mods
The mod crops the villager heads from the sprites to create map markers. For any custom sprites or sprite retextures, this will have to be adjusted.
- Go into the NPC Map Locations mod folder and open config.json with any text editor (Notepad++ or Sublime recommended)
- Find "VillagerCrop": {} and inside of the brackets, add changes to villagers by adding "[Villager Name]": [Pixel Offset From Top], where a positive offset lowers the sprite and a negative offset raises the sprite. You will most likely have to do some trial-and-error to figure out the exact numbers.
- Example for Adarin's Bachelorette Mod:
"VillagerCrop": {
"Alex": 3,
"Elliott": 2,
"Harvey": 5,
"Sam": 2,
"Sebastian": 3

Using Custom NPCs 
- To add custom NPCs, you can follow the steps for Villager Sprite Mods with a few changes:
-  Find "CustomNpcs": {} and inside of the brackets, add changes to villagers by adding "[Villager Name]": {"crop": [Pixel Offset From Top]}
- Example:
"CustomNpcs": { 
"ConcernedApe": {
"crop": 3
"Pathoschild" : {
"crop": 1


Using Custom Locations
- To add custom locations, you need to change two things inside of  config.json.
- Find "CustomLocations": {} 
and inside of the brackets, add changes to villagers by adding "[Location Name]": {[Specs]}

- Example:
"CustomLocations": {
"JunimoMansion": [ 
        "MapX": 154,
    "MapY": 325
"MegaFarm": [
        "TileX": 0,
        "TileY": 0,
        "MapX": 330,
        "MapY": 237
        "TileX": 80,
        "TileY": 65,
        "MapX": 514,
        "MapY": 386

- When you only specify "MapX" and "MapY", that will indicate that when the player is in JunimoMansion, the player's marker (center origin) will show up at [MapX, MapY] on the map. This is the absolute position relative to the map in pixels.
- When you specify more than one "TileX", "TileY", "MapX", "MapY", you are specifying the mapping of the region from the tile position to the absolute position on the map. You need to specify more than one such mapping because you are specifying a rectangle on the map that this region will cover. It is recommended that you use "TileX": 0 and "TileY": 0  and "TileX": [Width of Custom Location] and "TileY": [Height of Custom Location] along with the corresponding absolute positions "MapX" and "MapY" on the map. This will create a bound from the top left corner of the region to the bottom right corner of the region to calculate the player's movement within the custom region.

Adding Custom Image For Custom Locations
This is used to add any custom images/markers to the map for your custom locations. You must provide the images in the customLocations.png image file. You then need to specify which portion of the image you will crop for your custom locations. Users who have made mods for Content Patcher will fine this process more familiar.

Note that your image will be scaled 4x when it is actually in the game, so it will appear pixelated.

- Get the top-left point of the custom image you are cropping and specify as "X" and "Y".
- Specify the width and height of the crop as "Width" and "Height".

- Example:
  "CustomLocationRects": {
"JunimoMansion": {
"X": 37,
"Y": 0,
"Width": 10,
"Height": 7
"MegaFarm": {
"X": 0,
"Y": 0,
"Width": 36,
"Height": 39

Common Problems

Duplicate villagers when using other mods with NPC tracking (UI Info Suite & Foxyfficiency)

UI Info Suite and Foxyfficiency have a feature to show villagers, and as a result having it installed along with this mod will show duplicate villagers. To continue using this mod, there are options in UI Info Suite and Foxyfficiency to disable just the NPC tracking (look at the respective mod pages for more info).

Vanilla Map shows instead of Mod Map
This is most likely due to a conflict with a Content Patcher mod that replaces the map. You will have to manually remove the map from the conflicting Content Patcher mod (see Using Recolored Maps above) to resolve the conflict.

Why use NPC Map Locations when mods like UI Info Suite do the same thing and more?

  • A lot more accurate tracking, that much is guaranteed.
  • Tracks players as well. This would be hard to implement well if it were not accurate (made possible by redrawing the map among other things)
  • QoL features including differentiation of NPCs drawn over each other, different draw order based on priority
  • Also shows farm buildings including cabins in multiplayer
  • A lot more customizations and configurations including when to show/hide or showing quests and birthdays
  • Support for any custom NPCs or npc customizations (sprites/names)
  • Support for custom locations or location customizations (extended farms)
  • Support for all localizations
  • Minimap HUD feature

There's no denying that UI Info Suite is generally more useful, but since NPC Map Locations is very specialized, it does this one thing very well.  With all that being said, I don't think there's any reason to use one mod over the other when you can just use both ¯\_(ツ)_/¯ 

Reporting Bugs

Refer to the stickied post in the POSTS page.

Source code is available on my github.