Enums¶
Every enum-typed property takes the member name as a string. Values below are exact. They're taken from the framework's own enum declarations.
Direction¶
Campgrounds.Framework.Models.Enums.Direction
Which way a tent or visitor faces.
| Value | Notes |
|---|---|
North |
The default for VisitorTile.Direction and the VisitorFacingDirection tile property. |
East |
|
South |
The default for CampgroundMapDetails. |
West |
Used by: VisitorTile.Direction,
the VisitorFacingDirection map tile property,
CampgroundMapDetails.PlayerTentDirection, CampgroundMapDetails.GuestTentDirection and CampingTentData.GetTileSize(direction).
Two different defaults
VisitorFacingDirection defaults to North when absent or unparseable. CampgroundMapDetails defaults to South.
VisitorSpots¶
Campgrounds.Framework.Models.Enums.VisitorSpots
Which of the three visitor sites in Cindersap Park an advanced visitor needs. The value is the site's cardinal position within the park.
| Value | Site |
|---|---|
SW |
The south-west site. |
NW |
The north-west site. |
SE |
The south-east site. |
Used by: MapVisitorSettings.RequiredSpot and the VisitorSpot
map tile property.
There is no NE
The park has three sites, not four. NE is not a valid site.
Only advanced visitors name a spot
Standard visitors have no RequiredSpot and can
fill any of the three. Sites are filled in the order SW, NW, SE.
Not to be confused with Direction
Direction is which way a tent or visitor faces and uses full names (North).
VisitorSpots is where in the park a site sits and uses two-letter abbreviations (NW).
Sites start overgrown
Each site is repaired by the player through the PeacefulEnd.Campgrounds_RepairVisitorSite tile
action, which sets a world-state flag. Until then the park map keeps its overgrown tiles patched
over that area. A visitor requiring an unrepaired site is simply
not selected that day (no visitor, no map patch and nothing logged).
Currency¶
Campgrounds.Framework.Models.Enums.Currency
| Value | Notes |
|---|---|
CampRations |
The only currency. Spent on campfire foods. |
No content pack property currently takes a Currency value. CampfireFoodData.RationCost is a plain int and Camp Rations are implied. The enum exists for the framework's internal use and likely anticipates additional currencies later.
CampDialogue¶
Campgrounds.Framework.Models.Enums.CampDialogue
Identifies which dialogue slot is being requested. Not written in content packs. It's how the framework selects between your VillagerData lists internally. Listed here so the mapping is legible.
| Value | Maps to VillagerData property |
|---|---|
InviteAccepted |
InviteDialogueAccepted |
InviteRejected |
InviteDialogueRejected |
InviteCooldown |
InviteDialogueCooldown |
LikedDayOf |
LikedDialogueDayOf |
NeutralDayOf |
NeutralDialogueDayOf |
DislikedDayOf |
DislikedDialogueDayOf |
LikedDayAfter |
LikedDialogueDayAfter |
NeutralDayAfter |
NeutralDialogueDayAfter |
DislikedDayAfter |
DislikedDialogueDayAfter |
The three *DayOf members are all served by VisitorDialogueOverride.DialogueDayOfOverride and
the three *DayAfter members by DialogueDayAfterOverride, which is why overrides can't distinguish sentiment.
Note that InviteAccepted, InviteRejected and InviteCooldown have no override path. A campground cannot
change how a villager responds to an invitation.
InviteCooldown also differs in its fallback: when a villager's InviteDialogueCooldown list is empty, the framework uses the general dialogues.general.inviteOnCooldown translation rather than a per NPC line.
PatchMapMode¶
StardewModdingAPI.PatchMapMode
How a MapPatchModel merges its source map into the target. This
is SMAPI's own enum, the same one Content Patcher exposes as PatchMode on EditMap patches.
| Value | Effect |
|---|---|
Overlay |
Only non-empty source tiles are copied. Empty tiles leave the target's tile showing through. This is the framework's default. |
ReplaceByLayer |
All tiles in the target area are replaced, but only on layers that exist in the source map. Layers absent from the source are untouched. |
Replace |
All tiles in the target area are replaced, including with empty ones. Clears everything the source doesn't define. |
Used by: MapPatchModel.PatchMode.
Choosing a mode¶
Think about what should happen to whatever is already on the map underneath your patch:
Overlay: you're adding a tent and a campfire onto existing grass. The grass stays. This is the default because it's what an additive visitor patch almost always wants.ReplaceByLayer: you're redefining the ground and buildings but want to leave thePathslayer (spawn points, grass placement) alone.Replace: you're clearing an area completely, including anything another mod put there.
The framework's default differs from Content Patcher's
MapPatchModel.PatchMode defaults to Overlay. Content Patcher's EditMap PatchMode defaults
to ReplaceByLayer. If you're used to writing EditMap patches, the default here is not the same.
DayOfWeek¶
Not a framework enum. This is .NET's System.DayOfWeek, used by
VisitorData.PreferredDays.
| Value |
|---|
Sunday |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |
Season¶
Not a framework enum. This is the vanilla StardewValley.Season, used by
DateModel.Season.
| Value |
|---|
Spring |
Summer |
Fall |
Winter |