#making-mods-general
1 messages · Page 84 of 1
is the upcoming beta build out yet tho
oh ok i saw update though
thank you for your preemptive testing choop
[SMAPI] SMAPI 4.1.0-beta.5 with Stardew Valley 1.6.9 'beta' build 24303 on Unix 6.11.5.1
is that the latest
24304 is the new one
oh i swung my steam back to 1.6.8
Meanwhile, me, doing mod development in 1.6.4
i'll try again whenever steam deem me worthy of 24304
can't you get a diff
like, wouldn't it be easier to just look at the diff or something
I did look at the commit diff
But some things were done in a way I'm not 100% sure that it won't break (especially since I don't recall the SpaceCore implementation of the top of my head since I wrote it ages ago)
And I think one of the patches is a transpiler, which can always make things a little more iffy when refactoring is concerned
(ah, you have found the bizzare)
unfortunate (SMAPI 4.1.0-beta.5 with Stardew Valley 1.6.9 'beta' build 24304 on Unix 6.11.5.1)
[SpaceCore] Failed to apply 'SpaceCore.Patches.SaveGamePatcher' patcher; some features may not work correctly. Technical details:
System.InvalidOperationException: Can't find method StardewValley.SaveGame.GetSerializer to patch.
at SpaceCore.Patches.SaveGamePatcher.Apply(Harmony harmony, IMonitor monitor) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceCore\Patches\SaveGamePatcher.cs:line 49
at Spacechase.Shared.Patching.HarmonyPatcher.Apply(Mod mod, IPatcher[] patchers) in C:\Users\space\Programming\StardewValley\StardewValleyMods\SpaceSharedPatching\HarmonyPatcher.cs:line 21
@ Pathoschild 😠
he really did kick the hornet's nest
ok im back
I gave up and downloaded Hope's Character Mod and am working on editing some of the outfits there
I'm editing the .png of the shirts sprite sheet file. there are also a .xmb and a .yaml of the same name
.xnb is a nono
i haven't touched either
is it too late to sneak mod type save serializer into vanilla
if i just replace the png with my edit will it work with the one I made?
Older mods, older repacker had an yaml file
Ignoee
so she does nothing
i don't know what you settled on, did you want an item in every single possible thing for the farmer?
just starting with a shirt
you do not have to edit the same sprite as vanilla
1.6 let you load your own spritesheet
@uncut viper look, you're on the front page!
i'm an absolute beginner and making my own will make my head explode rn
i recommend that you do so
it's actually harder to replace vanilla than it is your own spritesheet
aaaaaaaa
simply crop the image down to just your shirt
putting anything into your content(unpacked) folder will do nothing to the game
ah
do you know about content patcher
vaguely
i'm just trying to retexture one shirt from the existing set atp
oh, that was never intended to reach trending. kind of terrifying, given how rushed/sloppy it is by nature of being a mod jam entry
it is very late and am tired
is good to have a good sleep and come back to it if you've never looked at json
i need a mod that stops hoedirt under giant crop from unhoeing
as a biased user this mod solves every problem with giant crops forever
So once stardew valley 1.6 drops on mobile, how long will it usually take for smapi to support the version?
so that cornucopia watermelon go zoom
infinite amount of time never ask again \s
when smapi mobile gets a dedicated developer (it doesn't have one)
That's crazy
would you like to become the android smapi dev?
Hell nah
post's open
then i guess you're gonna wait 5evr
stardew megalophobia
hmm what does it do that my ol chopper doesnt
well its a scythe so
it'll harvest both normal and big crop
im attempting to give it a bigger range it's not going too great
5,000 range
vs making a whole new npc, how hard would it be to resprite and redialog every* vanilla npc?
longer than creating an npc with 2 dialogue lines
you can make an npc that depends solely on vanilla dialogue, not write a lick of it, and have it published in under 5 hours if you're fast at it
why is it like that, an Atra asks, once again
I had an idea to turn stardew valley into Transformers
why is it not a loop
what if i patch that and make it the area
do u think there r mods dependent on the fact it is doing a border
Is it used in vanilla?

does anyone know what's crashing my map? I've been working on a custom map for a while which has been working fine. I made some additions and now it's not working, I'm not sure what broke it
https://smapi.io/log/c7bb34b73c234fab8e5ccc029961aba8
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 39 C# mods and 138 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
what's your edit looking like?
What’s at 62,10
It's been a while since I test ran it, but I mostly just added lighting to the map and audio
Absolutely nothing, that's what's really confusing me lmao
Forage?
is it json assets related 
I don't even think I have any JA mods anymore. The map was working perfectly fine this morning, too
well this is also not isolated, so i don't really know if it's you or if it's any of the mods you have
you don't seem to have json asset mods anyways just get rid of it and see
looks like you're doing a farm map though? is it because somewhere the pathfinding couldn't find the farmhouse?
the farmhouse usually sits on uhhhhhhhh 64/15
I think I realized what it is
unless I'm tripping but, I'm using the meadowlands farm map
I know maps that change the location of the farmhouse, maybe they're doing something different
I think the game is trying to place the coop directly on top of that tile
O
well that'll do it
which had a path on it
rofl
what a stupid bug dude I've been tearing my hair out over this for the last hour
I downloaded your mod and had a look. Your event is getting in game - it doesn't work properly because it's written incorrectly, but I can play it. Have you been trying the command debug ebi HalfAlive.SpiritFieldsContentPack_82345679?
is there a mod that makes it easy to spawn entities for testing? Im respriting some modded enemies and wanna test them out
this mod will break in 1.6.9
there's still the monster console command if it doesn't get fixed
wonder if there will be a way to make the game not update XD, I wanna play not wait for stuff to be fixed
Just the normal routes of going offline, making backups of your folder, etc
I set it to not updating unless i launch the game
So i can make (yet another) backup of sdv
Can't remember if that asks if you want to update, I thought it did but then one of my games that I had that set updated so maybe it's changed now
so i can have 3 copies of sdv on my computer...
it's a really easy thing to fix
It would be nice to just have access to all builds, like Minecraft Java has the launcher with all versions availables
except, don't make a launcher, launchers are annoying
I assume changing the setting would just make it so when you launch the game, it updates (?)
There are ways to make Steam games think they have updated when they haven't (I do it with Beatsaber and Oxygen Not Included) so you can still play online without being forced to update. Not sure it works with all games.
What if we all make separate mod launchers
i think rokugin reported the dupe LooseSprites\buildingPlacementTiles and is therefore the culprit
my "no launcher please" opinion is only driven by the hate of the CIV6 2K launcher that takes as long to start as the game itself (too long) only to click a single button.
But I did it the laziest way possible (stealing the file from an old version and re-adding it)
Because I wasn't about to figure out how to target a specific part of cursors for that shit
I think it was AchtuurCore, need it for Better Planting lol
inb4 smapi rewriter loads these obsolete assets using the existing files
Yeah the deleted asset is 4x bigger lol
i think blueb's originally reported the winter_boat being in loosesprites and that made the cascade of "yep get rid of the 4x tilesheets"
So much feral blaming energy lmao
i take responsibility for the uhhhhhhhh
farmhousetiles one
but that's maps
shrimpy become unhinged, make a copy of 168
I think they said they have 3 different versions lol
I have three different copies but they are all the same version haha
there was a copy of 1.4 on my old laptop, and i have 1.5.6, and 1.6.8
Retro modding 
i still have a backup of stardew 1.2 i think it was with the multiplayer mod saved
casey's harmony-less multiplayer?
probably, unless there was another mod for it
reminds me of the unhinged person in modded-farmers who were trying to start a new game in version 1.0 and increment the version every ingame year
Oh no
Truly unhinged
that sounds neat in theory but what the f
(as for why they were in modded-farmers? they wanted to install mods. in their 1.0 game. and migrate mods over.)
.....
When are we gonna have a throwback thursday mod jam

Only smapi 1.0 mods allowed
no xnb characters
the winner of the throwback mod jam gets their soul stolen by xnbzola
idk anymore TuT
the file in question
schedule.json
{
"Changes": [
{
"LogName": "Character Schedule - Empty Load",
"Action": "Load",
"Target": "Characters/Schedules/Duke",
"FromFile": "assets/NPCData/Blank.json"
},
{
"LogName": "Character Schedules",
"Action": "Include",
"FromFile": "assets/NPCData/Schedules/Duke",
}
]
}
Duke.json
{
"Changes": [
{
"LogName": "Duke Schedule",
"Action": "EditData",
"Target": "Characters/Schedules/Duke",
"Entries": {
// 0 up, 1 right, 2 down, 3 left. Default down.
// time location tileX tileY facingDirection animation(optional) dialogue(optional)
"spring": "700 Custom_SunnyfieldShops 62 14 2",
// "summer": "",
// "fall": "",
// "winter": "",
// "rain": "",
// "GreenRain": "",
},
}
]
}
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
this code looks fine, but what about your content.json that loads this schedule.json?
though i'm unsure why you've split the schedule even further if you've already set the load of a blank
if you do have a content.json that's loading this schedule.json it kinda looks like this:
content.json -> including this schedule.json -> schedule.json including this schedule edit
so it kinda turns into a spiraling mess
cant you load blank json and then stick everything into the schedule.json
you can
hm yeah so 🤔 i think setting it up like this is confusing
😊😊I posted json file and Thank you so much for your work.
heres the log: https://smapi.io/log/40c2dc8c22a94b87b7b93c5ee7fa0f02
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Pro, with 26 C# mods and 13 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Your FromFile for the include is missing a file extension, but also that error is saying that you're trying to load a file called "assets/NPCData/schedule.json" somewhere
I'm assuming you have a code block somewhere that you forgot to remove
from the content.json
{
"LogName": "NPC Schedule",
"Action": "Load",
"Target": "Characters/schedules/Duke, Characters/schedules/Claes, Characters/schedules/Zina, Characters/schedules/Sora, Characters/schedules/Thew, Characters/schedules/Percy, Characters/schedules/Momo, Characters/schedules/Soren, Characters/schedules/Aki, Characters/schedules/Aoi, Characters/schedules/Oji",
"FromFile": "assets/NPCData/schedule.json"
},
the schedule.json having more characters added
{
"Changes": [
{
"LogName": "Character Schedule - Empty Load",
"Action": "Load",
"Target": "Characters/Schedules/Duke, Characters/Schedules/Claes, Characters/Schedules/Zina, Characters/Schedules/Sora, Characters/Schedules/Thew, Characters/Schedules/Percy, Characters/Schedules/Momo, Characters/Schedules/Soren, Characters/Schedules/Aki, Characters/Schedules/Aoi, Characters/Schedules/Oji",
"FromFile": "assets/NPCData/Blank.json"
},
{
"LogName": "Character Schedules",
"Action": "Include",
"FromFile": "assets/NPCData/Schedules/Duke, assets/NPCData/Schedules/Claes, assets/NPCData/Schedules/Zina, assets/NPCData/Schedules/Sora, assets/NPCData/Schedules/Thew, assets/NPCData/Schedules/Percy, assets/NPCData/Schedules/Momo, assets/NPCData/Schedules/Soren, assets/NPCData/Schedules/Aki, assets/NPCData/Schedules/Aoi, assets/NPCData/Schedules/Oji, ",
}
]
}
I think you meant to make that Load an Include
unless that schedule.json is blank?
The one inside your content.json, I mean
No the second code block is the schedule.json, I think
at first, i thought i'd add something in t he schedule.json hence the attempt but i might just straight up move this block in the content.json
I can't remember but i think we discussed this... is it possible to make an invisible person visible again partway through the day? Say after an event?
You also can't have multiple items inside a FromFile
AAAAAAAAAAAAAAAAAAAAAA
fromfile can get multiple things with the {{Target}} key
Yeah should be possible with a trigger action (or just $action somewhere in the event or in dialogue)
but you cannot specify that
And ypu just use invisible and it toggles?
I make Hiria visible partway through the day, let me go find it hold on
I want an npc to leave and come back it would be kore immersive if she wasnt wandering around town first
This is specifically a time-based trigger using SpaceCore that makes Hiria visible again at 6pm.
"{{ModID}}_Dentist_Return": {
"Id": "{{ModID}}_Dentist_Return",
"Trigger": "Manual",
"MarkActionApplied": false,
"Actions": [
"SetNpcVisible Aba.Hiria"
]
},
{
"Action": "EditData",
"Target": "spacechase0.SpaceCore/TriggerActionExtensionData",
"Entries": {
"{{ModID}}_Dentist_Return": {
"Times": [ 1800 ]
}
}
},
oh, you do have a comma in the character schedules include
you can actually have multiple fromfiles in an include action, but you have a comma at the end of your includes
dunno how that affects things, probably not good
(and just in case it was easy to glance past from Aba's snippet, its not a toggle, its a separate action. SetNpcVisible)
Ah cool, love spacecore!
(Yes, thank you for clarifying that Button!)
Right so im basicslly spicing up Jades heart events.
(i've on more than one occasion glanced past similar bc my brain just was already expecting e.g. SetNpcInvisible and read it as the same, so)
(Not in a saucy way but maybe a little (implied) for the date)
ok so i made changed the Load to Include (the one in content.json) and added .json in the FromFiles in schedule.json
i hate thiisss
honestly i believe seeing an entire folder structure for an npc with separated .jsons is the way to go, especially since i can't really infer how people have set things up
Remind me in 12 hours to recheck my releases.zip for edelweiss on github please
ooo not sure if I can count that high but I'll give it my best shot!!! (#6332224) (12h | <t:1730312896>)
Im gonna have to redo my i18n file at some point... thata not gonna be fun. Its a sprawling mess
I think ill deconstruct it then reconstruct it
idk if i had mine set up mixed or weird xd
If the coming back is right after the event, it is probably easiest to put the SetNPCVisible action inside the event itself. My way with the SpaceCore manual trigger means dealing with some fussiness around schedule as the NPC won't move after becoming visible again until their next schedule point starts (which in my case means Hiria stands in front of the bus for ten minutes before moving - it looks kind of weird but I'm willing to bet most people won't be hanging around timing her lol)
probably cleaning that up is best, i know that you have multiple npcs from what i can see
i've personally condensed everything i possibly could about an NPC into a singular .json just so i wouldn't have to go around digging
You could just have one schedule.json file with everyone's schedule edits in it, if you preferred that to having to Include a bunch of files.
that reminds me, i have to set caseSensitivity to all of this because of linux
for extra measure i'm keeping it caseSensitive to even the dumb ones like Characters/schedules
I'll give it a go!
I hope I dont accidentally leave any special characters behind XD
HAHAHAHA i feel for you xd
😔 now it's time for me to beat up my npc's portraits for the 17th time
(i am making 0 progress)
Hooray my SVE compat is incredibly minimal!
I have split far too many things into separate files considering how small this mod is 
Ohhh I thought today was my last day to get this done but I have tomorrow as well!
Wait there’s a modding contest?
Oh cool
There’s this one NPC that is sitting on my mind for like 2 years now that I wanna make, and I think I’ll finally do that XD
For the modding contest?
I'm finally wrapping up this one heart event it feels like I've spent ages on...
I can breathe now
Okay I was going to say you're going to have to run like the wind to get that done haha
XD
Some people - cough Aviroen cough - could manage that but it'd be intense
Considering I have no idea how to actually do sprite work it will take some time
just like me
listen, i just have an active skeleton i can pull from because i wrote the tutorial
I just noticed you have Gallagher on your profile XD
Don't worry, I didn't know how to draw at all when I started!
moooooooooove. xd
i did a big cleanup. idk where i messed up (prolly here and there spaghettiiishh) but atleast its working as intended.
I'm not amazing at it now or anything but I do okay
I can only do stuff like items
But an artist friend of mine will probably help a bit
i do everything myself, including portraits
Sorry
Damn that’s impressive
i beg my world sprite artist to take care of my expansion, we'll see if she'll be willing to do so for the amount of bs i plan to do
Hi. I am to ask for your help, I would like to add to a vanilla map a tile warp, what should I add to this? {
"Format": "2.3.0",
"CustomLocations": [
{
"Name": "Custom_DwarfRoom",
"FromMapFile": "assets/DwarfRoom.tmx"
},
{
"Name": "Custom_KrobusRoom",
"FromMapFile": "assets/KrobusRoom.tmx"
}
],
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/Mine",
"AddTile": ["48 9"],
"FromFile": "assets/Scala.tmx",
"ToArea": {"X": 48,"Y": 9,"Height": 1,"Width": 1}
},
{
"Action": "EditMap",
"Target": "Maps/Sewer",
"AddTile": ["34 17"],
"FromFile": "assets/Botola.tmx",
"ToArea": {"X": 34,"Y": 17,"Height": 1,"Width": 1}
}
]
}
😔 it takes a loong time
i do not know but this is like elementary flag ceremony. I can sleep today QuQ **Thank you guys.
**. Next problem will be tomorrow's meal.
Do you have any pointers where to start?
I also do everything myself! High five!
it looks like you're missing different fields:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-tiles
https://github.com/Aviroen/Mycology/blob/9e5cceebe249e6b6dfa723c61a90970eb0906168/data/Location.json#L182 << live example of adding a warp to a new map
CustomLocations is deprecated so I suggest you switch to the new way of adding custom locations https://stardewvalleywiki.com/Modding:Location_data
I will leave the rest for Avi because she beat me to it
Weird, my trigger action condition has defaulted to null instead of true
honestly no, because im the type who does whatever is on my mind 😔
it's not bad per se to use the custom location if you're not going to do anything with it, but you don't get the fun of setting the bgm, fishing, digspots, etc if it's an outdoor
XD makes sense
I do! Download Jorts and Jean, make a copy of it, start changing things to your own IDs. That's where I started with Hiria 6 months ago.
!NPC
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
Or this
No I guess not, unless Pathos decides to remove it completely from CP in the future
you can go my crazy route, find your favorite mod of an npc expansion, dissect it, give yourself a headache because you're expanding an SVE NPC
You forgot "get cross at users, consider removing your mod from circulation" :P
considering SVE still uses custom locations i doubt it'll be wiped anytime soon, unless the core of vanilla changes
I meant in the spiriting section, but thank you for the resources!
true, i am tired of the entitlement 
In that case, get a bunch of vanilla sprites to trace/copy, a bunch of non-vanilla ones to reference, and start editing.
Hiria is based on Sam with a hint of Demetrius
tia's guide does have the sprite sheet layout for the correct sizes
Hiria, for context for my suggestions
tbh i start at portraits because i hate world sprites
I also start at portraits but for me that's because it's hard to figure out what my character is going to look like just via sprite
And my advice about editing vanilla with non-vanilla references applies to portraits as well - Hiria's portrait is mostly based on Sam too
Though I hope by this point she feels distinctly herself
Also the character will effect other stuff in the future (it adds a new movie to the theater)
Nice
Hmm looks like the wiki might be wrong about trigger action conditions defaulting to true
I will investigate....later
Well, I think I’ll start writing some general stuff about Nicolas now
Does anyone know where I can find a tutorial or example of adding skins to animals? Like with the white/brown cows and chickens? I have a bunch of horses and would rather do it that way then adding each of them to the catalog
XD believe it or not i actually just started with a 64x64 canvas and have been resizing it as i go
The fuzzy boots ohhhh slay
(changed)
is there a command that lets u trigger or repeat a dialogue? (like Introduction, or cc_Begin, etc)
💀 i tried to draw a flower, it looks like texas
debug loaddialogue Abigail characters/dialogue/abigail:Introduction I've never actually done it with a CT, but give that a go
Bleh, I don't understand enough C# to find the trigger action condition default
Like what Condition defaults to if you don't put anything?
Yeah. The wiki says it defaults to true, but mine and SVE's are defaulting to null and then the game throws an error
Are you putting anything in the field or just omitting it?
Omitting
[game] Failed parsing condition 'Null': 'Null' isn't a known query or alias.
Hm
It gives me the same error if I set "Condition": "true", or "Condition": true, or "Condition": "", as well.
I should check with an actual GSQ just in case I've somehow done something unrelated to cause this
Hummm it is still telling me that it's failed parsing the condition when I have "Condition": "SEASON spring",
What's your json look like?
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 22 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Time to see if my PC will run Satisfactory and SDV at the same time 
Hmmm actually depending on when DayStarted runs, my changes might not be affecting my existing save
iirc daystarted =/= saveloaded
Nope still getting the error on a new save
That's not ideal, SpaceCore giving me an error now
Patch export of data/triggeractions. I see no null conditions!
{
"Id": "Abagaianye.tricktreatCP_Buff",
"Trigger": "spacechase0.SpaceCore_OnItemEaten",
"Condition": "ITEM_CONTEXT_TAG Input trick_treat",
"HostOnly": false,
"Action": null,
"Actions": [
"Spiderbuttons.BETAS_RandomAction TRIMMED",
"spacechase0.SpaceCore_ShowHudMessage \"Trick or treat!\""
],
"CustomFields": null,
"MarkActionApplied": false
},
{
"Id": "Abagaianye.tricktreatCP_Letter",
"Trigger": "DayStarted",
"Condition": "SEASON spring",
"HostOnly": false,
"Action": null,
"Actions": [
"AddMail All Abagaianye.tricktreatCP_Graveyard now"
],
"CustomFields": null,
"MarkActionApplied": true
}
I'm not having any issues actually receiving the letter.
what mod do i have that has a trigger action on hand.....
If I recall correctly, DayStarted vs SaveLoaded only matters in a C# context, for CP you don't have to worry about that really
My mail mod with no Condition is still working
if you're on 1.6.9, roku, spacecore needs to re-serialize because of the midnight beta patch
Re-serialize?
uhhhhh save serializer changed again
Right but do I need to actually do something about this? lol
I wish I could get more information about what condition it's trying to parse as null
I'm gonna guess maybe wait for the next SMAPI release
i'm trying to dig into aba's raw log but that's 1.6.8 so time to squint
Is it my mail entry itself?
{
"LogName": "Add Graveyard Mail",
"Action": "EditData",
"Target": "Data/mail",
"Entries": {
"{{ModID}}_Graveyard": "You may find something of interest if you visit the graveyard.^^P.S. Tell no one of this.^^P.P.S. Burn this note.[#]A spooky note"
}
},
nope
Bleh, I don't want to submit an entry for the mod contest that has an error in it
It's bad enough that my witch gives the item before he says the thing about giving you an item.
I didn't have a null condition error for the buff trigger action

[18:19:13 INFO Profiler] [250,047.99][Fast] Warped FarmHouse -> Farm (0600)
[18:19:13 INFO Profiler] [250,049.41][Slow] Warped FarmHouse -> Farm (0600)
[18:19:14 TRACE Event Lookup] Loading LooseSprites/letterBG
[18:19:14 ERROR game] Failed parsing condition 'Null': 'Null' isn't a known query or alias.```
I am so baffled
it's saying somewhere there's a "Null": null ? maybe? i don't know either though
It is something to do with my AddMail action or something because I just changed the action to the spacecore showhudmessage instead and didn't get the error
And I don't get the error when I do "AddMail All Abagaianye.tricktreatCP_Graveyard received"
There is something specific to checking the mailbox that causes the error
are your..... letterBGs missing?
Nope
Yeah will do in a second, just want to rule out my C# mod
i think i still have dev smapi
Okay I am literally down to Content Patcher, Console Commands, and my mod and it's still happening
Let me tidy the files and zip it for you
Have at ye
I got so many other errors lol
Trying to run mine?
Yeah, I'm missing some stuff I guess
Hmm I think I've commented out the BETAS and SpaceCore stuff so you shouldn't be missing anything
Did indeed get errors when opening the mailbox
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 9 C# mods and 4 content packs.
[Content Patcher] Can't apply patch Trick or Treat > Include Aba_maps > data/Aba_maps.json > Load Apollo House map to Maps/Abagaianye.tricktreatCP_ApolloHouse:
StardewModdingAPI.Framework.Exceptions.SContentLoadException: Trick or Treat loaded map 'assets/maps/Aba_ApolloHouse.tmx' with invalid tilesheet path 'Particle FX 1.2 Free/Spritesheets/Smoke-Sheet.png'. The tilesheet couldn't be found relative to either map file or the game's content folder.```
This was the first error I got that I think caused more after it, but didn't stop the mail from happening
also sorry forgot to remove my own bs
Oh I must not have actually removed the tilesheet from the map even though I removed all the tiles, whoops. Thanks
Hi! Yeah, it's pretty cool
Except for times like right now where you have an error that you can't find or understand haha
I need repo access so I can debug...
Yea, idk how to help. Complete new at this
Shouldn't have kept putting off asking lmao
what happens if you split the trigger actions, aba?
actually i can just do it myself one second
Well, the copy you got only had the one trigger action in it anyway
I'd commented the other one out
What if you add the mail for tomorrow?
oh
I'll try tomorrow
The fact that it's happening when you open the mailbox makes me think it won't matter
It's so weird that it's happening then because the conditions shouldn't matter at that point
i never use anything except "Current" for my player targets so i have no idea
And when I make it "received", no error
Doesn't that not put it in the mailbox though?
Can someone explain the bases of making a mod? I’m curious
But it shows the trigger is running without getting that error
!startmodding right?
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
My mod is somehow messing up the action of checking the mailbox
I wonder if it's interfering with vanilla mail too
IT IS
I have broken the game
With a CP mod alone
huh
It was same day mail
I'm going to check if it breaks different day mail too
Yup, it affected Willy's mail on a different day
i wish verbose told me more than just what 'null': 'null' is
Is this just all mail
Trigger action to add mail
Okay, I commented everything but the trigger action out and it didn't do the error
What do you mean everything but the trigger action?
Like everything in my entire mod except the trigger actions?
Yeah, like everything in Changes but the Include for your trigger action
Was it a blank letter?
And the mail I guess
Did you comment out the Buff trigger action?
So the mod now consists of one trigger action and one piece of mail?
"Mon": "$action AddMail Current {{ModID}}_welcomeflag now # {{i18n: apollo.welcome|ModID={{ModID}}}}", this?
I put everything back, commented out objects, still got the error. Commented out the NPC's json and no error
What do you have for apperances
I notice you have a lot of "Null" and "True" and "False" in this character data
OH
I'm fairly certain those should just be null true and false
Appearance
"Appearance": [
{
"Id": "Blue",
"Indoors": "True",
"Outdoors": "True",
"Portrait": "Portraits/Aba.Apollo_blue",
"Sprite": "Characters/Aba.Apollo_blue",
"IsIslandAttire": "False",
"Precedence": "0",
"Weight": "1"
},
{
"Id": "Purple",
"Indoors": "True",
"Outdoors": "True",
"Portrait": "Portraits/Aba.Apollo_purple",
"Sprite": "Characters/Aba.Apollo_purple",
"IsIslandAttire": "False",
"Precedence": "0",
"Weight": "1"
},
{
"Id": "Green",
"Indoors": "True",
"Outdoors": "True",
"Portrait": "Portraits/Aba.Apollo_green",
"Sprite": "Characters/Aba.Apollo_green",
"IsIslandAttire": "False",
"Precedence": "0",
"Weight": "1"
}
],
I don't actually need most of the fields in the data/characters bit at all anyway but I was testing fireredlily's NPC data creator for them
I am pretty sure if you use strings in the spots that expect null it fails
my net died
Not sure about true and false though
But i got 6/12ths of my portraits done yahoo
"FlowerDanceCanDance" was the only one that threw an error about being "null" but that would make sense if the others aren't liking it either
Yeah, in general don't put in fields if you're not using them
It's just bizarre that checking the letterbox was the time it decided to complain, instead of when actually talking to the NPC or something
I don't, Atra
Appearances was it?
nope i changed all of the data/character
Oh ok lol
to unapostraphe'd true/false/null
Okay this is excellent to take back to fireredlily then
Test failed successfully
A shame about the panic spiral
good catch tho roku i didn't even bother looking in the npc data
I'm going to take all the optional fields out completely for tidiness but I'll tell them about it so they fix their creator
Thank you both for helping me 
I am stressing slightly about the amount of time i have left to polish and release this mod haha
I employed the good ol' "remove everything and put some of it back until you find the culprit" method
"have you tried plugging in your usb into a different port?" me @ my old job
"Start by unplugging the phone from the wall, I'll wait"
Things like Age, Manner, SocialAnxiety, and Optimism don't affect non-social NPCs, do they?
they will affect very minor dialogue things
Seems like those all have defaults, not sure how many of them will come into play though
Like your NPC is probably not gonna catch the farmer digging in trash cans
But if you don't set DumpsterDiveEmote, Age automatically chooses one for you
off the top of my head it will affect whether or not your NPC says hi to someone when walking around and how they react to you drinking mayonaisse
😓 the way i actually forgot my npc's birthday
That is so specific lmao
I do not think I care enough about the possibility someone will drink mayo in front of him to bother testing that lol
then the only other thing it'd possibly affect is them commenting on things they've bought that you've sold
i.e. "i bought some of the blueberries you sold to pierre the other day"
It affects which slots they can take at GI too
It's mostly used for generic dialogue stuff though
I wouldn't have thought a non-social NPC could go to GI
that is correct i was skipping over age bc its mostly irrelevant
Does anything in the data/character actually affect isSimpleVillager?
Nope
Hooray, I did a test run of the entire experience and no errors!
That's just code for "simple npc mostly generated by code."
The front layer hates to be understood
oh noooo
The tree is majestic tho
i've walked around this map for literally years in real life how have i never noticed every single front tile is wrong
Shouldn't the whole tree be on the same layer to avoid issues like this
if every part of the tree is on the same layer, how're you gonna layer trees over eachother
what do you mean?
say a whole tree is on Buildings, if you try place another tree behind it, it's also going to be on Buildings and you'll have replaced the tiles of the tree in front
plus Front and AlwaysFront have other uses
i just didnt think at all
Buildings2: Tree Boogaloo
Ok, I actually don't understand how map layer works
From what I know about the game, the depth is a linear function of the vertical coordinate
For trees I would put the bottom tile on Buildings, the one(s) right above it on front and then everything else on AlwaysFront (or AlwaysFront# if i want to overlap things)
I think the problem there is that hats ignore Front
hats.... why
The problem is more like the farmer rendering is fucked rather than the Front layer
yeah, ok I see, the tree takes up tiles where it's drawn, not where the base is
Any hat that sticks out a lot will really show off just how bad it is
that's annoying as hell for map making
you say that, but this chara also has her hair clipped off by the pillar being half on Front
which it WASN'T LAST NIGHT
DID SOMETHING CHANGE
even this rule is broken everywhere by the game itself, so I can see how the player depth would be messed up too
Oh interesting
@ STARDEW DEVELOPER ROLE
Time to yell at Pathos
i have replaced SO MANY front tiles
grumble grumble maybe i just fucked my location draw calls somehow
oh my god
I can check in like 2-ish hours lol
what the hell is this
oh my god that was it. drawing birds in my location was replacing the entire gd sorting
very glad i didn't ping stardew developer 😌
now we learn how many history states tiled keeps (wow, actually lots. 🥳 )
baby
reminds me of that time I had a game crash because I was deep-cloning a struct with a whole ass Texture2D and SpriteBatch
What
Also getting trinkets to clip doesn't count
I haven’t. I know about that event, but for some reason, my partner said to omit the mod ID when attempting to call that event, which makes zero sense to me.
It's possible that they saw that you can't use the token {{ModID}} in the SMAPI console and thought that meant you remove the mod ID from the event ID entirely, perhaps. But if you try copying and pasting what I've got, you should find that it does start. By the way, you don't actually have to give your events numeric IDs - you can give them string names instead if you like.
It’s best practice, though, so that’s what I do.
It's definitely not best practice to use numeric IDs in events! It used to be before 1.6 (well, actually, it wasn't possible to use anything but numeric IDs before 1.6) but it's a worse practice now because it's less human readable and has no benefit (that I know of).
Oh.
Event IDs were numeric pre 1.6 and that's why any pre 1.6 mods only have numeric ids, 1.6 changed them to strings so now they can be anything (For example I have a {{ModId}}.Introductions event id in one of my mods)
Using your mod ID in the event ID as a prefix (like you have) is best practice to ensure your event ID is unique. So if you keep the {{ModID}}_ part and just change the numbers to words, you'll be keeping with best practice and have easier to understand event IDs :)
I see. I’ll do that next time I open the code.
I can see where you could've gotten that impression about the numeric IDs though because there's still a lot of pre-1.6 information out there and many of the most popular mods still use numeric IDs because they existed before 1.6 and don't want to risk breaking saves by changing now.
I’ve never played Stardew Valley prior to this project, so that could be part of it (This mod is a project for a modding class).
The fact that people make mods for classes is wild to me
yea
We made transistors
they're probably not EEs, atra
you don't make transistors for fun?
(i'm also not an EE)
hey friends, i am creating a GameLocation on demand (linked by id/name to the farmer who requests it). it's a normal GameLocation so it is making it to the save data just fine.
on load, it is being ignored (unknown location). should i be adding it to Data/Locations after creating, or do i listen for LoadStageChanged? (or maybe both?)
Me: I am sad that GMCM doesn't let me replace my AllowValues with the translated values
Also me: forgot to change the name of the config option translation key to the actual name of my config
(i am not clear on the life cycle of a location when loading save data)
Yes, add it to locations on a LoadStageChanged
Noted, I will go back and remove the " " around all of the field values in the NPC Builder that accept null, as that seems to be the issue?
doesn't it allow this with something like "formatValue" or the like?
Yup, that was the issue.
I just woke up and am catching up on the chat
is it like an instanced location
Yes, and now I do have the translated values now that I have made my key match my actual config options lol
I'm glad you did because I was going to go check if you'd already made that change but had to go eat dinner and forgot 
Whoops, now I forgot to make my config actually do anything >_<
i don't think i know what that is!
every farmer gets exactly one, created on first request. is that what that means
I had removed all the quotes around null the last time, but not around true or false in the same field sets
instanced location like the inside of a farm building
though it doesnt sound like that so carry on 
i guess it's sort of like that (they share map data), but instanced to the player and not to the building
It's possible I missed one though
I'm not sure whether it will complain if the true or false are in quotes, but since it can accept true/false without the quotes it's probably safest to remove them.
ah sorta like how pif uses instanced locations then
maybe, although i could not find pif's source code so it's conjecture on my part
Yeah, should I keep the quotes around "true" and "false" if it's a field that can take a GSQ, or still have the quotes stripped out if true or false is entered?
it create locations in LoadStageChanged like what atra said
https://gitlab.com/delixx/stardew-valley/personal-indoor-farm/-/blob/main/PersonalIndoorFarm/Lib/DayUpdate.cs#L85/
I can check for you whether either way throws an error shortly, if you like.
That would be very helpful, thank you!
now that i have hot reload working, i hate when i leave it up and reflexively save a file but am not ready to reload the hecking game
did you ever sort out the console issues?
Odd, most of my tile animations seems to be going too slowly.
is it possible to do
"marriage_spring_3": "GOTO 3",?
since married npcs ignore non marriage schedules typically
Yes but they sfart at the farmhouse still
yeah, by opening a second terminal to send input over a fifo. part of the annoyance is the extra terminal pops up and i'm not expecting it
i am chronically out of screen space so usually it covers something else
perfect 🙂
So it seems like the GSQ-value fields can take any of true, "true", false, "false", null, or "null" with the exception of three fields: CanCommentOnPurchasedShopItems, WinterStarParticipant, and FlowerDanceCanDance - the three of which can take any of the true/false/null values except "null". No idea why those three are different. I also don't know if the game is interpreting "null" as an actual null for the other fields - I just know that it's not giving the failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Could not convert string to boolean: null error and it's not giving the Failed parsing condition 'null': 'null' isn't a known query or alias. error.
In the process of testing this I have somehow managed to break my C# mod.
FlowerDanceCanDance isn't mentioned as a GSQ on the wiki, but WinterStarParticipant is
CanCommentOnPurchasedShopItems isn't mentioned as a GSQ either
maybe the WinterStarParticipant started as boolean then evolved in GSQ but some parts of the code weren't updated?
Oh yeah thank you for checking me on that, Lumi. I think I started at the top of the list of NPC data on the wiki before remembering I was meant to be checking GSQs.
The two that aren't GSQ-value - FlowerDanceCanDance and CanCommentOnPurchasedShopItems - break the patch entirely if not set to a bool for null - though they don't break it if they are set to "true" or "false". WinterStarParticipant is the only one that caused the Failed parsing condition 'null': 'null' isn't a known query or alias. when checking the letterbox if the value was set to "null" instead of null.
So what you're saying about it being a GSQ that started as a boolean makes sense to me, Lumi.
So for the sake of my tired brain: did I just miss quotes on a null for FlowerDance or do I need to change the "true", "false", null options to remove the quote marks for all of those?
And if I tell my formulas to remove the quotes on "true" and "false" will it break anywhere else?
I told you about the FlowerDanceCanDance one a while ago, so I think you're already fine with that one as-is. You just need to make sure that CanCommentOnPurchasedShopItems and WinterStarParticipant also have "true", "false", null as their quote setup.
I think you're better off not removing the quotes around true or false, because if someone wants to use an actual GSQ that will need to be inside quotes.
And null is the only value for WinterStarParticipant that must be without quotes.
Yeah, if you had told me those needed to be true, false, "GSQ" it would have been annoying but I could have done it
Just didn't want to go through that effort and then have the error yell that it got bool when it expected a string
I did test several of the GSQ ones with bools and they do accept true/false as bool values but for the sake of users I think it'd be better to make null the only bool value
Lest you get people trying to write GSQs without quotes
Yeah
Okay, so on a review of the latest version of the builder, I had already resolved all of those null issues EXCEPT for adding the possibility of a null value to CanCommentOnPurchasedShopItems
I'd already fixed WinterStarParticipant
Ah okay, sorry for all the faff then!
No worries! There's no way of updating copies you made, so it's good to make sure it's just the copy that's out of date.
Hm, ive got a question about npc spritesheets
So
For the flower dance and wedding sprites, those are hardcoded, right? Like you can't move those around
For custom characters, there is in fact a field that will tell your sheet which sprite frames to use for some animations. Nevermind, was thinking of something else
But I think that may be new to 1.6?
I thought that was for the kiss sprite(?)
Lemme review Data/Characters to make sure I'm not thinking of a future feature or just the kiss sprite
Yes flower dance and wedding sprite positions are hard coded, you can change the kissing sprite in the dispo
Yeah, I was thinking of the kiss sprite
My brain merged kiss sprites and animationDescriptions logic in my head
Male and female npcs have different positions 🤔 i read that if you leave your npcs's gender as undefined, it'll default to as if you had it say female, so is that where that would come into effect (?)
(Also, as a note, we need to edit the wiki to use a static image link instead of a discord image link for the example sprite sheet, since it's broken now)
🤔 this one?
the one from TheLimeyDragon, so if that's the same one, maybe?
Discord autobreaks hotlinks after 24 hours, so that's why it's dead on the wiki
i think this is generally true, since gender used to be a boolean called isMale, but there is probably at least one situation where it is handled better/differently instead of using behavior compatible with the old flag
"This content is no longer available" tells me the hotlink is dead, LOL
Huh
It won't break within Discord, just externally
Discord did change their policies to be less conducive to image hosting
Well ill figure it out if i marry my NPC and the game dies on me
At some point sort of recently
this link is broken for me/dead by Discord's hotlinking policy change
just to be clear
I might be looking at the wrong page then rip
I'm on the main SDV wiki on the Modding:NPC_Data page, if you're looking at Tia's tutorial, for instance, they might have the image hosted somewhere static so it doesn't break
Ah i see now
Can you add “Help Wanted Quests?” I don't know where the data is...
i think it requires C#, since if memory serves the set of options is mostly hardcoded and builds a quest mad libs style from parts
OK, thanks for letting me know!
still stuggling to update my npc to 1.6.. can i just pay someone to fix it for me😭😭
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 63 C# mods and 184 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
marriage dialogue - https://smapi.io/json/content-patcher/0854f11d1a874bfe80e6f80611e41e87
and then im working on getting my dispo changed but i dont know what folder to put it in because each tutorial i follow is different
i would appreciate any help
can NPCs walk onto the farm?
Game1.Random can do decimals?
mk
Is this the entire JSON? Because you're missing the Action block to actually tell the game where to use these dialogue keys.
it is- it hasnt been updated at all since june so theres a lot of stuff missing
this doesn't look like a Json D:
and i am so confused
Okay, yeah, so this just looks like a series of entries, so you need to include the entire action block.
ah there it is.. update to validator xD
what's the issue I can help you
i guess i just dont understand the new format? i used your npc creator when i first made this npc in janurary, and i'm trying to copy the github example but i dont understand where the sprites and portraits go, where the festival data is supposed to go since the content file is different now
all agreed formats aside, there isn't a specific place, so long as you content.json is correct
how about you send me a copy of what you got
I can get you on to the next stop
no no... I meant send me the mod
ooh ok
Spaces don't impact anything in the LogName as long as they're enclosed by " " marks.
this is what i have in my mods folder, ive been editing it so it might be a bit of a mess
so i apologize lel
np
first lets update to character data
{
"LogName": "NPC Manifestation",
"Action": "Include",
"FromFile": "assets/disposition/Disposition.json"
},
``` change this to this: ```json
{
"LogName": "NPC Manifestation",
"Action": "Include",
"FromFile": "assets/Data/Tenko.json"
},
ok thats been changed
okay.. for the marriage dialogue, you don't need the Changes as it's a Load action
that was what was confusing me in the examples, cause it says like assetts/character/data but i never saw any folders called character or data in the github example
yeah.. because I haven't finished updating it since I lost all my source code xD
so i should change it to load
the marriage dialogue you sent me is correct
so use t his
okay.. I don't see anything else that would stop the NPO from loading
Just be aware that loading your dialogue like that will prevent you from using tokens of any kind, including i18n
yep.. you will have to fix that later.. I'm just getting it running
"Target": "Characters/Dialogue/{{ModId}}_tenko", is right? I think I have it wrong in the json
ok let me try loading it
you might want to work with this: ```json
"Home": [ //sets the npc's spawn point
{
"Id": "Default", //the default of where they spawn
"Condition": null, //game state query-able condition if they change homes
"Location": null, //specific location from data/location
"Tile": {
"X": 0, //x position where the npc idles
"Y": 0 //y position where the npc idles
},
"Direction": "right" //direction that they face while idling
}
],
I don't think you gave your NPC a spawn
They'll just spawn in town if they don't have a home so if they don't show up the lack of a home is not the culprit
is that so?
that's a nice change
I really never thought to do that 
this will make things easier
how will it handle that, and if there were multiple NPCs with no spawn
I don't remember the exact coords they spawn at. I'm pretty sure button's mentioned it in here before though.
My guess is that they will spawn on top of each other
I've been quite busy from my job so I've never read it
whenever 1.6 came out xD it's all a blur to me
Ah ha, 29 67
march 19th is when 1.6 came out and updated the character data format
wow its been a lot longer than i thought it was..
Yup it's also been a really long time since we hit 1.6.8
game is still loading up but smapi said this [Content Patcher] Can't apply data patch "Tenko Shimura > NPC Manifestation > assets/Data/Tenko.json > Data/Character edit > entry #1" to Data/Characters: failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Error converting value "unknownuntilmet" to type 'StardewValley.GameData.Characters.CalendarBehavior'. Path 'Calendar'..
ill link the parser once i get in game
I've got Event Repeater and Dear Diary restored... I decided to make a stronger Investment mod... and NPC Creator has been hobbling on the old code for a long time
I really need to build that from scratch
building a translateable randomized mail is rough xD
Are you using the NPC wiki page for reference for filling out your data/characters info? https://stardewvalleywiki.com/Modding:NPC_data
Like the contents of a letter being randomised?
there's a lot of stuff needed to make an NPC... but honestly, it's technically easier than it used to be
The unknownuntilmet is probably from me
I'll have to check back as to what are the actual values
yep, don't worry I got a system Pathos suggested.. It's just tedious writing it out. I came here to ask something to see if I can make a shortcut..
https://docs.google.com/spreadsheets/d/11botrgeisuyBDAfzRWnm5K7IR9umaqT3Z9xX3re13Yo/edit?usp=sharing Here's my WIP 1.6 builder sheet if you need to reference it. I'm not opposed to Miss Coriel pulling from it to update their builder either, since this only handles some elements of the character.
because I'm lazy
oh goodness hes upside down
That'd be easy with i18n, I think. It'd be the same as doing randomised dialogue.

Size is off
Argh being on my phone makes it so hard to find examples
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 64 C# mods and 185 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
oh yeah.. i got that part done
What's the difficult part then?
the way pathos told me can be done differently
lines 3 and 4
string store = this.Helper.Translation.Get("stockNameClint");
string action = this.Helper.Translation.Get("stockDecrease");
string reason = this.Helper.Translation.Get("clintFailA");
string mailText = this.Helper.Translation.Get("your-i18n-key", new { Store = store, Action = action, Reason = reason });```
well.. making a separate money system would be messy in CP
SMAPI blocked asset replacement for 'Characters/Dialogue/MarriageDialogueTenko': the 'Tenko Shimura' content pack incorrectly set asset to a null value.
I think this happens if you haven't done a Load to 'create' the MarriageDialogueTenko file yet
https://www.nexusmods.com/stardewvalley/mods/9253 I'm re-writing this from scratch so I can make it function far better
Cool :)
@crystal yarrow
and thats by changing the change to load right?
{ "Changes": [ { "LogName": "Characters/Dialogue/tenkoEdit", "Action": "EditData", "Target": "Characters/Dialogue/{{ModId}}_Tenko", "Entries": {
this thing
It depends how you've set your marriage dialogue file up now
That one's for the normal dialogue, the error is about the MarriageDialogue file.
miss coriel also mentioned this, so should i remove the changes? im sorry if im making yall repeat yourselves in so lost
is that any different than just adding a new alternative money system? /gen
OMG i think i found my issue
You need to either load a blank json file and then use that editdata block to populate it with your keys or you need to load the dialogue file directly. And like fireredlily said you need one for dialogue and one for marriage dialogue.
It's just a banking/Stock investment system.. used right it can be OP
ah (has no understanding of investment/stocks)
It's not that complex at least x3
I think your quick-fix would be doing a load of a blank.json to both targets so your EditData will find the file to work from
So, a JSON file named blank.json that's just {}
so sorry but how to i do a load? i added the json but then what
The cheaty thing i did with it was to get a loan to buy the CC safe to give me a crystalarium super early
and it goes in the data folder
"Target": "Characters/Dialogue/Tenko, Characters/Dialogue/MarriageDialogueTenko",
"FromFile": "<your file path to blank.json in your mod folder>"},```
Don't include the < >
So if your mod folder has blank.json in an assets folder inside your mod folder, it'd be "FromFile": "assets/blank.json" for example.
However, you're also getting errors about invalid JSON, so, if once again, you only have the entries in your dialogue files without the rest of the EditData action block, you may need to fix that too.
I'd put the action block I put above in your content.json just to rule out issues with the actual file failing to load.
Do you have a size field in your data/characters edit?
it shouldn't need that
[Content Patcher] Can't apply data patch "Tenko Shimura > NPC Manifestation > assets/Data/Tenko.json > Data/Character edit > entry #1" to Data/Characters: failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Error converting value {null} to type 'System.Int32'. Path 'KissSpriteIndex'..
[Content Patcher] 'Tenko Shimura' has multiple patches with the 'Exclusive' priority which load the 'Characters/Dialogue/MarriageDialogueTenko' asset at the same time (Tenko Shimura > Load Characters/Dialogue/MarriageDialogueTenko, Tenko Shimura > Marriage Dialogue). None will be applied. You should report this to the content pack author.
No it shouldn't but if they have one and it's wrong it could mess with the sprite
https://smapi.io/log/cc3559d98a9d4e988beb8cc60b5a14cf here instead of me copy and pasting whoops
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 64 C# mods and 185 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Or their sprites could be in the wrong spot on the sprite sheet
the sprites were working perfectly fine before. I know i turned the kissing sprite so it would work with the hugs and kisses mod
Then it's probably best just to ignore the sprite problem until the obvious issues are sorted
Is it okay if I download your mod folder and try to fix it all up and send it back to you?
i would actually love you forever if you did that because i also have a class in 10 mins
Getting advice on it piecemeal like this is stopping you from being able to properly understand the changes that need to be made, I think
Okay if you want to send a new copy feel free to otherwise I'll just work off the one that you sent before
yea, there's so many little things and its hard to keep track
i'll send you a new copy
Okay do you want me to dm it to you when I'm done or just ping you with the file?
just dmed you!

hmm
since SpouseRoom and SpousePatio both use MapSourceRect, can I make a singular model to cover them?

How do these keys work specifically? The first three are obvious, but not wanting to see a movie isn't actual standard behavior, right? And I assume the last one covers all of them at once?
perhaps it's for a disliked or hated movie, #4
But by default you CAN invite NPCs to any movie (and the wiki does not say otherwise unless I've overlooked something) so this token gives them the ability to reject them?
perhaps?
guys i have two mods that edit the same asset, and one is overlapping the other. To fix that i tried to set priority as late (high) in the mod i actually want to edit the asset, but it isn't working. Any help? this is the part i'm trying to edit:
"Changes": [
{ "Action": "Load", "Target": "Characters/Mariner", "FromFile": "assets/Delphine.png", "Priority": "High", "When": { "Mermaid": "Delphine" } },
i've only put the "priority" part there
i got no errors from the json or cp validator except that priority should be set as low, medium or high no early or late
after that i edited it to high priority
Hello
It's undocumented on the wiki, but for movie tastes, aside from love, like and dislike you can also set reject to make the NPC not go in the first place
coool
you cannot load two things at once
You can if neither of them have exclusive priority
i know that's why i put priority on the other mod, both mods edit the same asset but priority should fix
or the game will load in alphabetical order
If you just switch one from a Load to an EditImage and add a false dependency of the other mod in the manifest it will ensure it patches afterwards and will edit the image to what you want
hello!
i am actually back from work, and I wanted to start working on an NPC, but the most important part is the portraits.
the problem is that i have no spriting knowledge and i wanted to learn how to do stuff.
do you have some useful resources about how to sprite them well?
well if i'll have that much work i should just delete the asset the other mod is overlapping trought the one i actually want xD
!pixelart
Where to Start With SDV-Style Pixel Art
If you've never done pixel art before, don't stress! It's easy to pick up the basics - the key is to start small, ask for feedback, and incorporate that into your work.
To start, you'll want an art program. See a list of recommended programs in the !software command.
Here's some good beginner tutorials!
http://pixeljoint.com/forum/forum_posts.asp?TID=11299&PID=139322
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2d1e31a5ceab
To start off, try opening an existing portrait and changing the outfit. Start small: edit a shirt pattern, change a jacket collar, or remove a scarf and draw the clothes underneath. Ask for feedback too! The best way to improve is learning how to identify what's wrong and why, so then you can work out how to fix it.
Here's more good tips from the artist of "Celeste":
General pixel art 1: https://www.patreon.com/posts/pixel-art-1-6971422
General pixel art 2: https://www.patreon.com/posts/pixel-art-part-2-11225146
Outlines: https://www.patreon.com/posts/outlines-14106192
Shading: https://www.patreon.com/posts/shading-13869731
Portraits: https://www.patreon.com/posts/portraits-8693396
SDV has a few quirks to remember too:
- Colour limits: Limit the number of shades you use - stick to six including the outline.
- Hue shifts: Rather than making shadows and highlights lighter or darker versions of the base tone, SDV shifts the hue too. Eg. a base orange will have yellow highlights and red shadows. This goes for skintones too!
- Light source: SDV uses a top-right & slightly forward light source - check the vanilla art for reference.
Most importantly, don't hesitate to ask questions and get advice from people. Have fun!
but i wanted to make the priority thing work bc if i ever make a mod in the future it would be a good thing to know
to know how to make it work i mean
It's really not much work though? It's one word edit in the content.json (or wherever that load is currently) and one line in the manifest.
You're rarely going to be working with opposing Loads when you're making mods
Because if it's your own mod's asset then you of course should be loading the asset and if it's not your own mod you should be using EditImage/EditMap/EditData anyway.
i'll have to edit the two mods like that wont i?
No, just one mod
The one that you want to have the asset from
The most you have to do with the other mod is open its manifest file so you can grab its UniqueID for use in the other mod's manifest dependencies section
but you said i should add a false dependency in the other mod manifest, i'll have to edit both then
No, you should add a false dependency in the mod you want the asset from
how's that? why would that work?
When I said "false dependency of the other mod" I didn't mean "edit the other mod"
Okay let's call these mods A and B. You want the asset from mod B, so it needs to patch after mod A.
So you edit the manifest of mod B to give it a false dependency on mod A, telling it "you need mod A to work, so make sure you don't load until after mod A does".
That ensures that the patches performed by mod B happen after the ones by mod A, so you end up with the mod B asset you wanted.
oh i get it now
i'll try that if the editimage doesn't work, thx
but why just setting the priority itself isn't working, that is so weird
keep in mind priority overrides false dependency when it comes to patch order
What priority are both mods currently using for their Loads?
i'm pretty sure the mod i don't want the asset have none, and the other mod, the one i actually want the asset, uses none too but i've setted priority in one of the actions it have, in the one it edits the mariner asset to replace it
If either of them have none specified then they have exclusive which means all other patches for Load are ignored.
So if you wanted to go with priority for Load you would need to edit both mods.
If both get loaded into the game with a Load of the same asset with no priority specified, they will both have exclusive priority and Content Patcher won't Load either of them.
But if mod A has exclusive for its Load and mod B has a false dependency on A and an EditImage instead of Load, she should see the asset from mod B, right?
strange, that's not what is happening, the other mod is overlapping the load and it's asset is the one being used, not the base game asset
yes, but that's true with or without the false dependency
"Action": "Load",
"Target": "Characters/Mariner",
"FromFile": "assets/Mariner.png"
},
Ah okay I wasn't sure if the false dependency was totally needed
the other mod is just like that
Neither of them should be loading at all given that it's a vanilla asset
As in, as far as good mod practice goes the mod author should not have chosen load
but the one i don't want to is the one loading, i just checked
And that's even without your added Priority line?
when i remove this mod the other one works fine though
yes i'll set to exclusive to see if it works
yeah it still doesn't work
i'll just delete the other asset file, but i tought i was doing something wrong
it worked now even without deleting the other asset. CP validator from wiki said i should define priority as low medium or high but smapi said it should be default, early or late, after doing so and with editimage instead of load it worked fine
thx
do we have a clear format for the data in Data/Fish.json? like how the fish values are declared
there are two different sets of keywords for priority: one for loads (low, medium, high) and one for edits (early, default, late), since they behave differently
Have you already read the wiki page for it? https://stardewvalleywiki.com/Modding:Fish_data
the difference is: for loads, CP is deciding which patch applies. for edits, it is deciding the order the patches apply
oh that is perfect! i wanted to make a fish that you can only catch at a specific time in specific location, so i hope it will work for that
(this is also true in SMAPI/C#; CP uses SMAPI's asset priority values, as one might expect)
So characters can have their schedules changed when they're married- is there a way I can make it so marrying one character also changes another character's schedule? My two new NPCs are sisters who are inseperable and I want to make it so when you marry one, the other moves in as a roommate
changing schedule based on conditions is possible but no, there is no way to make that directly with just CP, because farmhouse is hardcoded
the game is not set up to support this, so good luck. you can change the other character's schedule with conditions but the farmhouse is special, as lumina says
you'll need a mod to change the relationship of the other to roommate AND a mod to allow multiple spouse and roommate
i suggest rather having the married NPC visit the sister often
which is easier in term of code and requirement
alright, that's kinda what i figured but thought i'd check! Thanks y'all
@velvet narwhal: recheck your releases.zip for edelweiss on github please (12h ago)
is WinterStarParticipant a bool?
It's a GSQ
(See the field docs for reference.)
A game state query
(You can click that game state query link in the description for more info about them.)
a game state query is always a string. that string can also just happen to be "false" or "true"
that's what i needed
(or null if the field accepts nulls)
i didn't know if i should make it a bool or a string
It is confusing because it also accepts (at least doesn't complain about) true or false
I'm coding to make CP mods... sooo if CP accepts it a string will do
(That's because there are actual game state queries named TRUE and FALSE. The names are case-insensitive, and setting it to true is equivalent to "true". Essentially the system was specifically designed to support true/false values in content packs.)
@latent mauve pinging you so you can see Pathos's explanation as well.
the GSQ stuff were never clear to me.. DX
Thanks Pathos. Some of the GSQ fields in Data/Characters also accept "null" while WinterStarParticipant does not so that was definitely confusing for us lol
Thanks for the ping!
You can set any game state query field to null to use the default behavior, including WinterStarParticipant. For that field, setting it to null will enable it for NPCs with "HomeRegion": "Town".
as long as they are sociable, too
Some fields specifically accepted "null" with the quotes, which was the confusion, I think?
No I mean several of them don't complain about having a string "null" versus null.
Yeah, that ^
There's no game state query named NULL, so in theory they should all complain about it. But the warning would only be logged when the game happens to use the field.
I can't actually say what their behaviour was because I didn't test that, but they didn't throw any warnings or errors, while WinterStarParticipant did (but only when I was checking the letterbox).
I guess the game checks for WinterStarParticipant when you look for mail in case you're getting your winter star letter?
(it does)
it looks for the %secretsanta command in the letter and replaces it if its there
That will be why it waited until then before it complained, and I guess the other ones just didn't complain because I hadn't come across a situation where the game checked for them yet.
since you could in theory put that in any letter you want
That makes sense of my extremely confusing experience earlier this evening!
thats the only reason i know that is because going to look after your confusing experience lol
So definitely no "null" in GSQ fields 
no "null" only null
unless a mod adds a GSQ named NULL. hopefully they dont, though
is BreatherChestRect like this? BreatherChestRect: { "X": 0, "Y": 0 }
no examples and description has no example
its up to me to add a NULL gsq to BETAS that always returns false, just for maximum confusion.
I don't have a copy of the breathing stuff after I was absolutely mutilating Hiria and gave up and made her a non-breather lol
That field is a "A rectangle pixel area" in the docs. You can click that link for an example.
I got a rectangle model I can use.. i just needed to see what to do.. it says it's a Point
oh i read the wrong one xD
probably why i was confuzzled

For maximum confusion, hack my accounts and put it into spacecore, for a wider reach
i can only assume thats your blessing
doesn't space core make creating windows easier?
Fashion Sense lets Content Patcher packs edit items added through Fashion Sense. Does anyone know if it's possible to add items through Content Patcher instead, and EditData them into Fashion Sense's data (e.g. so they appear in the hand mirror)?
Good note on the rectangle pixel area, I fixed my builder sheet too
in a bit, I will share my Model to see if we synch up
SpaceCore does have a UI system, though focustense's mod is probably better
Hi, does anyone know the item ID for carrot seeds? Im trying to create a new mod that starts with carrot seeds instead of parsnips, I can change parsnips to other items that were <1.6 but not any 1.6 items as the ID's arent available
I would love to have a system I can use that makes creating windows easier DX
!itemid
(Doesn't look like focustense released their framework on Nexus yet, but chu is using it, so there's definitely a way to)
so the usable one is the shared project solution
Why aren't the item IDs on the official wiki?
that one builds all the classes from stardewui directly into your dll, no mod dependency
Even before, the IDs on the wiki were in a linked spreadsheet, right?
the wip thing is the mod api solution
They dont have the id's for Carrot Seeds on there, just the name.
No, they used to be in the official wiki and then got removed.
1.6 uses strings for IDs.
CarrotSeeds is the id
But it's really unclear on what belongs on the official wiki and what doesn't.
The main wiki person doesn't like that information on the individual pages, as far as I remember (though its' been a while). (Kinda feels like they don't like modding stuff on there at all, given some of the other discussions that happened)
thats annoying because the error coming up is saying it needs to be integer :/
definitely should not be. where are you trying to use it?
Sounds like you're using a pre-1.6 tool?
even all the old items that still use numbers are still actually strings now
example mod using the shared project version of stardewui https://github.com/focustense/StardewPenPals
Glancing through the code, maybe through the Data/PeacefulEnd/FashionSense/AppearanceData asset? It's a Dictionary<string, AppearanceContentPack>, with AppearanceContentPage being: https://github.com/Floogen/FashionSense/blob/development/FashionSense/Framework/Models/Appearances/AppearanceContentPack.cs
I would love to have a way to dump Ids of whatever I want onto a json so I can use them for ||nefarious purposes|| reference
cant u just patch export
It's an abstract model, so I think Content Patcher would be able to edit an existing entry but not add one? Also not sure if Fashion Sense would correctly register a new item added to that field.
Feel free to depend on SpaceCore and use the UI classes in there - I still haven't written documentation for it, but there are some of my mods that use it, like Preexisting Relationship and Satchels (and S&S, but the source code for that isn't public, and most of that is in the ES alpha or dev builds and not released on Nexus)
sorry just retried it, I am stupid and forgot that its case sensitive and had it spelt CArrotSeeds
Ah, case sensitivity errors. Right up there with the missing commas error, we've all done it once. 😛
I'm not sure - when I was looking, I did see watching for the asset to be invalidated: https://github.com/Floogen/FashionSense/blob/24d60f62c730610688b2a241d8d86c0e3de4a768/FashionSense/FashionSense.cs#L347
But it doesn't actually use the loaded value... maybe it does it elsewhere?
you can use patch export with any asset you want to dump; for example patch export Data/Objects for every item in your current game, including mods
yeah.. but i want it dumped straight to a file not clog up my console
(I know I sometimes don't cache custom assets and just load them when used since it isn't frequently... probably should fix that)
patch export does put it in a file, the console only tells you where
(tbf, so does the vanilla game a lot of the time lol)
lol that was what happened after loading it without case.
I see.. but I want to format it in a way I can send it to NPC Creator so I can generate Keys for items, Music, and SoundIDs
it is a JSON file, you can whip up a Python script to parse it and output it as something else
I mean, you could write a script to post-process it. Or make a custom SMAPI command that does the same thing but outputs it the way you want
I am of that mind..
I just been real lazy and kinda sad and i am only barely really starting to pick up
how should I implement CustomFields in the Model
model of what, your script output?
for the NPC Character Data.. how is the Custom Fields Implemented in CP
it's just a dictionary of abitrary string keys to string values
custom fields are just string to string dictionaries (mostly)
theyre a game thing, not a CP thing
i have no info about them
they do nothing in the base game, however mods can use them to enable their features
"CustomFields": {
"Spiderbuttons.SpecialPowerUtilities/Tab": "{{ModId}}"
}
this is an example of using customfields
a string key and a string value
you can add any number of key-value pairs to the CustomFields dictionary
and since it's arbituary i don't need to build a model
I'll just need to think of a way to save them
im not 100% sure what you mean by that
NPC Creator has to be able to recall any data you put in it right?
so if you made custom fields for an NPC, you're going to expect not having to rewrite them x3
(ive not used it, so i dont know how npc creator works)
I'm unfamiliar with how you're saving/loading your data, but maps/dictionaries is a common data model
It's just a way to make NPCs with less errors
i know what it is, just never used it
I am working on it's newest version atm
there is probably something you can use
as for the GUI, maybe an extendable table with two columns, one for key and one for values?
say what if you use newtonsoft's json schema builder would that work
yaaay 2/12 expressions done

them if they do