NPC Helper 2/Docs
You are reading the documentation for v2.2.0. Switch to v2.4.0

Authoring

NPC Definition

Configure an NPC's name, personality, birthday, home, romance options, game options, and gift tastes.

The main file is <Name>.toml in the NPC's folder. Tables may also be placed in the matching supporting file, such as Dialogue.toml or Schedule.toml. Values and table names are case-insensitive. Quote text values.

Identity and basic properties#

toml
Name = "Rei"
DisplayName = "Rei the Baker"

[Personality]
Gender = "Female"
Age = "Adult"
Manner = "Polite"
SocialAnxiety = "Neutral"
Optimism = "Positive"

[Birthday]
Season = "Summer"
Day = 12

[Home]
Region = "Town"
Map = "Hospital"
X = 9
Y = 7
Facing = 2
Field Accepted values Default
Name 1–64 letters, combining marks, digits, _, or -; no spaces or dots Main file name
DisplayName Any text shown to players Name
[Personality] Gender Male, Female, Undefined Male
[Personality] Age Adult, Teen, Child Adult
[Personality] Manner Neutral, Polite, Rude Neutral
[Personality] SocialAnxiety Neutral, Outgoing, Shy Neutral
[Personality] Optimism Neutral, Positive, Negative Neutral
[Birthday] Season Spring, Summer, Fall, Winter Spring
[Birthday] Day Integer from 1 to 28 1
[Home] Region Town, Desert, Other Town
[Home] Map Game location name BusStop
[Home] X, Y Non-negative map tile coordinates 10, 10
[Home] Facing 0 up, 1 right, 2 down, 3 left 2

The game uses the home region for certain character behaviors, including some seasonal events. Use one of the three listed region values.

Romance and options#

toml
[Romance]
Datable = true
Marriageable = true

[Options]
Language = "Default"
SocialTab = "AlwaysShown"
Calendar = "AlwaysShown"
EndSlideShow = "MainGroup"
CanReceiveGifts = true
CanGreetNearbyCharacters = true
PerfectionScore = true
Field Accepted values Default
[Romance] Datable true or false false
[Romance] Marriageable true or false; enabling it also enables dating false
[Options] Language Default, Dwarvish Default
[Options] SocialTab UnknownUntilMet, AlwaysShown, HiddenUntilMet, HiddenAlways AlwaysShown
[Options] Calendar AlwaysShown, HiddenUntilMet, HiddenAlways AlwaysShown
[Options] EndSlideShow Hidden, MainGroup, TrailingGroup MainGroup
[Options] IsDarkSkinned Boolean false
[Options] CanReceiveGifts Boolean true
[Options] CanGreetNearbyCharacters Boolean true
[Options] PerfectionScore Boolean true
[Options] CanCommentOnPurchasedShopItems Boolean Game default when omitted
[Options] IntroductionsQuest Boolean Game default when omitted
[Options] FlowerDanceCanDance Boolean Game default when omitted

Gift tastes#

Set the NPC's reaction categories in the [GiftTastes] table:

toml
[GiftTastes]
Love = ["Diamond", "Coffee"]
Like = ["Blueberry"]
Neutral = []
Dislike = ["Copper Ore"]
Hate = ["Joja Cola"]

Supported groups are Love, Like, Neutral, Dislike, and Hate. Each entry can be:

  • An English object name, such as "Coffee".
  • An unqualified or qualified item ID, such as "74" or "(O)74".
  • A numeric category, such as "-75".
  • A category name, such as "category:Vegetable".
  • An item context tag, such as "egg_item" or "category_fruit".

Item names are resolved using the game's object data. Unknown names can be dropped or treated as a possible modded identifier with a warning; check the SMAPI log if an item does not behave as expected.

Gift taste data controls which gifts the NPC loves or dislikes. It does not write the NPC's spoken response. Define response lines such as AcceptGift_Loved in [Dialogue]; see Dialogue & Schedules.

Item categories#

These are the game's category names and numeric IDs. You can use a numeric ID such as "-75" or the readable "category:Vegetable" form:

Category ID Category ID Category ID
Gem -2 Fish -4 Egg -5
Milk -6 Cooking -7 Crafting -8
BigCraftable -9 Minerals -12 Meat -14
MetalResources -15 BuildingResources -16 SellAtPierres -17
SellAtPierresAndMarnies -18 Fertilizer -19 Junk -20
Bait -21 Tackle -22 SellAtFishShop -23
Furniture -24 Ingredients -25 ArtisanGoods -26
Syrup -27 MonsterLoot -28 Equipment -29
Seeds -74 Vegetable -75 Fruits -79
Flowers -80 Greens -81 Hat -95
Ring -96 Boots -97 Weapon -98
Tool -99 Clothing -100 Trinket -101
Books -102 SkillBooks -103 Litter -999

Validation notes#

  • Unspecified fields use their defaults.
  • Invalid fixed values reject the NPC and are reported in the SMAPI log.
  • Unknown fields and tables are reported, which helps find spelling mistakes.
  • Quote text values, for example Gender = "Female".

For all schedule key patterns and accepted stop formats, see Dialogue & Schedules.