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#
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#
[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:
[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.