Template:Festival Placement and Dialogue in CP

From Stardew Modding Wiki
Jump to navigation Jump to search

Want to add your new custom NPC to all the vanilla and custom festivals? Or doing a personal conversation of an old NPC from TMXL? You can use the template below!


{
	"Changes": 
    [
		//Replace all instances of CustomNPCName with your NPC's internal name
		//The example positions given here are Jorts's, so please change them and don't step on the kitty.
		//Check Custom NPC Tiles for positions: stardewmodding.miraheze.org/wiki/Custom_NPC_Tiles
		{	
			"LogName": "Egg Festival",
			"Action": "EditData",
			"Target": "Data/Festivals/spring13",
			"TextOperations":
   			[
   				//SetUp
				{
   				    "Operation": "Append",
   				    "Target": ["Entries", "Set-Up_additionalCharacters"],
   				    "Value": "CustomNPCName 26 62 right",
   				    "Delimiter": "/"
				},
				//Festival animation - if you want any of your NPC's animations during a festival, uncomment this code.
				//{
				//"Operation": "Append",
				//"Target": ["Fields", "set-up", 5],
				//"Value": "/animate CustomNPCName false true 100 28 28 28 28 28 28 28 28 28 28 29 30 31 32 33 34",
				//},
				
   				//MainEvent - during the actual hunt
				{
   				    "Operation": "Append",
   				    "Target": ["Entries", "MainEvent_additionalCharacters"],
   				    "Value": "CustomNPCName 57 21 left",
   				    "Delimiter": "/"
				},
			],
		},
		{
			"LogName": "Egg Festival - Dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/spring13",
			"Entries": 
			{ "CustomNPCName": "",
			},
			
		},
		{	
			"LogName": "Flower Dance",
			"Action": "EditData",
			"Target": "Data/Festivals/spring24",
			"TextOperations":
   			[
   				//SetUp
				{
   				    "Operation": "Append",
   				    "Target": ["Entries", "Set-Up_additionalCharacters"],
   				    "Value": "CustomNPCName 22 41 up",
   				    "Delimiter": "/"
				},
				//The actual dance - note this is pretty crowded, so you may want to just remove this, especially if they weren't near the dance to begin with/don't want to watch.
				{
   				    "Operation": "Append",
   				    "Target": ["Entries", "MainEvent_additionalCharacters"],
   				    "Value": "CustomNPCName 23 41 down",
   				    "Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Flower Dance - Dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/spring24",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		{	
			"LogName": "Luau",
			"Action": "EditData",
			"Target": "Data/Festivals/summer11",
			"TextOperations":
   			[
   				//SetUp
				{
   				    "Operation": "Append",
   				    "Target": ["Entries", "Set-Up_additionalCharacters"],
   				    "Value": "CustomNPCName 43 25 up",
   				    "Delimiter": "/"
				},
				//MainEvent - during the actual tasting. Again, it's pretty crowded, so you may want to delete this part.
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 44 25 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Luau - dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/summer11",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		// Pelican Town Potluck changes the Luau to a Potluck, so you may want a variant of dialogue.
		//{	
		
		//"LogName": "Luau - dialogue - Potluck compat",
		//"Action": "EditData",
		//"Target": "Data/Festivals/summer11",
		//"When": { "HasMod: |contains=LenneDalben.PelicanTownPotluck": true},
		//"Entries": 
		//{ "CustomNPCName": "",
		//},
		//},
		{	
			"LogName": "Dance of the Moonlight Jellies",
			"Action": "EditData",
			"Target": "Data/Festivals/summer28",
			"TextOperations":
			[
				//SetUp
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 28 13 left",
					"Delimiter": "/"
				},
				//MainEvent - during the boat launch. Most characters don't move, but not all of them will be visible.
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 28 13 left",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Dance of the Moonlight Jellies - Dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/summer28",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		{	
			"LogName": "Stardew Valley Fair",
			"Action": "EditData",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": false},
			"Target": "Data/Festivals/fall16",
			"TextOperations":
			[
				//SetUp (non-SVE) - I don't believe there is a "main event" one for this"
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 36 24 up",
					"Delimiter": "/"
				},
			],
		},
		//SetUp (SVE) - SVE changes the fair a lot, so you may want different positions.
		{	
			"LogName": "Stardew Valley Fair - SVE compat",
			"Action": "EditData",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
			"Target": "Data/Festivals/fall16",
			"TextOperations":
			[
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 30 22 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Stardew Valley Fair",
			"Action": "EditData",
			"Target": "Data/Festivals/fall16",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		{	
			"LogName": "Spirit's Eve",
			"Action": "EditData",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": false},
			"Target": "Data/Festivals/fall27",
			"TextOperations":
			[
				//SetUp - again, no main
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 67 36 up",
					"Delimiter": "/"
				},
			],
		},			
		{	
			"LogName": "Spirit's Eve - SVE compat",
			"Action": "EditData",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
			"Target": "Data/Festivals/fall27",
			"TextOperations":
			[
				//SetUp (SVE) - SVE changes the maps from year to year but I don't know the specifics, so you may need more than one set of positions for SVE compat.
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 68 55 left",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Spirit's Eve - dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/fall27",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		{	
			"LogName": "Festival of Ice",
			"Action": "EditData",
			"Target": "Data/Festivals/winter8",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": false},
			"TextOperations":
			[
				//SetUp
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 31 74 down",
					"Delimiter": "/"
				},
				//MainEvent - during the actual contest
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 31 74 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Festival of Ice - SVE compat",
			"Action": "EditData",
			"Target": "Data/Festivals/winter8",
			"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
			"TextOperations":
			[
				//SetUp - SVE completely redoes this map too, so depending on where you are you may need compat for this.
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 31 74 down",
					"Delimiter": "/"
				},
				//MainEvent - during the actual contest
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 31 74 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Festival of Ice - Dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/winter8",
			"Entries": 
			{ "CustomNPCName": "", },
		},
		{	
			"LogName": "Feast of the Winter Star",
			"Action": "EditData",
			"Target": "Data/Festivals/winter25",
			"TextOperations":
			[
				//SetUp - I think there is a MainEvent, but only during the actual gift-giving cutscene.
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 24 56 right",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Feast of the Winter Star - Dialogue",
			"Action": "EditData",
			"Target": "Data/Festivals/winter25",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		//Solstice Winter Star changes the Feast of the Winter Star to a less Christmas-y version with food instead of gifts, so you may want a dialogue variant.
		//{	
		//"LogName": "Feast of the Winter Star Solstice Compat",
		//"Action": "EditData",
		//"Target": "Data/Festivals/winter25",
		//"When": { "HasMod: |contains=Airyn.CPSolsticeWinterStar": true},
		//"Entries": 
		//{ "CustomNPCName": "", },
		//},
		//},
		
		{	
			//Ridgeside has two exclusive festivals and plenty of room!
			"LogName": "Ridgeside Gathering",
			"Action": "EditData",
			"When": { "HasMod":"Rafseazz.RSVCP" },
			"Target": "Data/Festivals/Fall20",
			"TextOperations":
			[
				//SetUp
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 78 51 up",
					"Delimiter": "/"
				},
				//MainEvent - a concert on stage. Pretty crowded, so you may want to remove this.
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 79 51 up",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Ridgeside Gathering - Dialogue",
			"Action": "EditData",
			"When": { "HasMod":"Rafseazz.RSVCP" },
			"Target": "Data/Festivals/fall20",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		{	
			"LogName": "Ember of Resolutions",
			"Action": "EditData",
			"When": { "HasMod":"Rafseazz.RSVCP" },
			"Target": "Data/Festivals/winter28",
			"TextOperations":
			[
				//SetUp
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 38 34 down",
					"Delimiter": "/"
				},
				//MainEvent - during the bonfire lighting. Characters do move around but it's not packed in.
				{
					"Operation": "Append",
					"Target": ["Entries", "MainEvent_additionalCharacters"],
					"Value": "CustomNPCName 39 34 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Ember of Resolutions - Dialogue",
			"Action": "EditData",
			"When": { "HasMod":"Rafseazz.RSVCP" },
			"Target": "Data/Festivals/winter28",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
		
		{	
			//Fireworks Festival - Added by Fireworks Festival mod on Nexus
			//There are many other custom festivals you can add compat for: Surfing Festival, Ferngill Fashion Festival, Love Festval, Downtown Zuzu's Block Party, and more! Just swap in the day the festival occurs and the proper unique ID for the festival's mod. Or if you don't want to deal with additional festivals, just delete this section.
			"LogName": "Fireworks Festival",
			"Action": "EditData",
			"When": { "HasMod":"violetlizabet.CP.FireworksFestival" },
			"Target": "Data/Festivals/summer20",
			"TextOperations":
			[
				//SetUp
				{
					"Operation": "Append",
					"Target": ["Entries", "Set-Up_additionalCharacters"],
					"Value": "CustomNPCName 22 43 down",
					"Delimiter": "/"
				},
			],
		},
		{	
			"LogName": "Fireworks Festival - Dialogue",
			"Action": "EditData",
			"When": { "HasMod":"violetlizabet.CP.FireworksFestival" },
			"Target": "Data/Festivals/summer20",
			"Entries": 
			{ "CustomNPCName": "",
			},
		},
	]
}