#making-mods-general
1 messages Β· Page 609 of 1
yep gen 4
hey
i can help you out
send me a DM with the zip file for ur mod
after dinner i'll check out the issues : )
(i do fishi mods all the time so dw ur in safe hands)
and yeah its more involved so id have to see your actual code
sadly 1 ss isnt enough
as i said earlier, feel free to shoot a DM and I can take a look
one screenshot doesnt help sadly
We do not know the hierarchy of your mod, and where all your data is stored, defintions for said fish, and more. It can be from a simple ModId mismatch, to a typo, and really anything else.
Also, we take it as SMAPI logs usually, screenshots are sometimes okay, but for this bug that your talking about, it may be better to share your codebase, either to me, or publically here in multiple json validation files.
Link: https://smapi.io/json/i18n.
Is there a way to set a certain location's weather to always be a certain thing?
(I think I once knew how to do this, but I no longer do. My memory is... flawed of late.)
LocationContexts I think
I will try this! Thanks!
Dude I figured it out all π I again messed up the IDs, I put "vortz.Fish" instead of "vortz.ModName.Fish"
Thanks for the help tho, if I'll need help about fishies, can I shoot ya a dm?
Feel free to ask in public channels.
This is why I used colored objects so much π
I am feeling free to ask here, thanks
For future reference, it's best to add some sections of your codebase inside the JSON validator, else, we wouldn't have been able to figure out that issue that you faced
Like the ModId, some defintions and then the issue your facing, other than that you were good
yes, mail flags are just strings in 3 hash sets, attached to each farmer and net synched; you can add or remove them whenever
also, set them as "received" so they don't change states or interfere with the mailbox; the other states are "now"/mailbox and "tomorrow" that gets moved to the others overnight
e.g. Game1.player.mailReceived.Add("your flag here") if you're on the host client
CP mods can read them too, and write them with events/triggers/etc (so whatever your implementation is, they should just be easily accessible flags)
??? It's my own code and I don't remember putting this as reward π
500???
Perfect for when you have to complete 500 museum collections
Or give dwarf 500 likes gifts
I have the following. How would I change what sprite sheet the Lave Lurker created should use?
Was curious if someone could help making a mod compatible with the mods I have. https://smapi.io/log/bc8ee88fe7bf4bbf89a089c42a3cd707
lurker.Sprite = new AnimatedSprite("texture asset target here", lurker.Sprite.CurrentFrame, lurker.Sprite.SpriteWidth, lurker.Sprite.SpriteHeight);```
assuming you want to reuse the existing sizes* and such
<https://github.com/Esca-MMC/FarmTypeManager/blob/master/FarmTypeManager/Utility/Spawning/Monsters/ApplyMonsterSettings.cs#L172>
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Unix 7.0.5.200, with 41 C# mods and 45 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Hi!
Quick question, is it possible to make an animal drop an item with a specific quality or qualities? For example, make my woolly mammur drop silver and gold quality fur?
Thanks! I'll probably fiddle around with this after dinner (I think I may have possibly but probably not figured out how to do a certain thing I've been putting off for ages)
The main/first player is referred to as 0 when it asks for <player> right?
Realized I probably won't be able to test that thing I've been putting of for a while, considering I need the pig to both grow up and for it to not be winter π
What's the context?
I have a $query checking current player health
Do keep in mind that often times a $query like that will be out of date.
in addition to the tech stuff, query targets are listed here: https://stardewvalleywiki.com/Modding:Game_state_queries#Target_player
you probably want Host
Also no if you're talking about game state queries, <player> is a target player like Current or Host
Would setting a pig's "Current Produce" to null let it keep digging for truffles?
https://stardew.button.gay/docs/betas/queries this is the mod i am using (probably should have said that originally)
Iirc one of either Stamina or Health isnt even netsynced
A good choice I'd say
That mod still uses regular game state query functionality though and the Target player is the same Host, Current, etc choices
and it can still be out of date
(But the other one is)
A quirk of $query is that it is calculated when the dialogue string itself is parsed, which is not always the moment you talk to them
One notable thing that makes it get parsed is an NPC starting to move to a new schedule point
this is just for spouse dialogue at night, so it should be okay right?
Or even just, hovering over them to get the "can talk to" cursor
Probably not
Depends on their spousal schedule or if the player happened to accidentally hover their mouse over the NPC without talking to them
(bc hovering your mouse makes the game check if they CAN be talked to in order to show the appropriate speech bubble cursor)
ah i see.
I seriously doubt it
Basically, the $query might work fine and accurately assuming the NPC never moved at all, or it might not
don't bank on it being 100% accurate
It's best used for things that cannot change over the course of a day
I'm trying to figure out where/how the game keeps track of how many truffles a pig can still dig up, and I can't seem to find it anywhere in the decompile (unless I'm being blind)
That was something i was worried about π I just wanted to have the spouse react if the player had really low health
If you're using BETAS already, you could actually try a SetNewDialogue trigger action action when the player enters the farmhouse
And just overwrite their dialogue completely
oh? how would that work :o I'm not super advanced at coding so I am kinda learning as I go haha
You could either give them a new dialogue line that also has the $query in it, or check in the Trigger Action you use to do this itself to only set new dialogue if the player's current health is low enough
(the latter might run into a situation where the player enters at low health, so the NPC gets new dialogue, but then the player eats food and heals before talking to them... but that might also happen with the first method too, where the player triggers the dialogue to be parsed but then eats food before speaking to the NPC.)
If it were me I would go with the second option and just write the dialogue to recognize that they were at the very least hurt when they walked in/when the spouse saw them walk in, even if not right at the moment they actually speak to the NPC
Thank you so much, you are a tremendous help!!!
Okay, I think I have pig related plan
Oh this is nice, I forgot to check my warp hub for compatibility, however it appears only 3 need to be updated for SVE. The Desert Pillars and Skull Cavern (unsurprisingly) as well as the mastery cave (also unsurprisingly)
is this enough fish
i can still see the house so no
Is something like this correct..?
"Format": "2.8.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_SpouseInjuryCheck": {
"Id": "{{ModId}}_SpouseInjuryCheck",
"Trigger": "LocationChanged",
"Condition": "LocationName = FarmHouse, Spiderbuttons.BETAS_PLAYER_HEALTH Current 1 15",
"Actions": [
"Spiderbuttons.BETAS_SetNewDialogue Sebastian dialogue$s true",
]
}
}
}
]
}```
omg yesss my warp hub map patches for SVE are working perfectly
Hooray with that detour done I can go back to doing stuff I actually want to do like adding 23 more forage!
I wonder if there's a better way to get clean modded location names
Cuz with more mod compatibilities I'll need to add more lines like these and it looks so bad π
No
sorry, I'm a little confusedπ is the "id": i put in incorrect? or was what you said an answer to the question.? Do I put my ModId in {{ModId}} instead?
when something tells you to write {{ModId}}, you just write {{ModId}}
oh!
currently i tihnk it'll error since there's no token called Pathoschild.ContentPatcher for it to substitute in
maybe just a warning? either way its not ideal
is there a debug command to set the happiness of a specific animal?
not exactly, but debug befriendanimals [amount] affects all of them currently in the room
https://stardewvalleywiki.com/Modding:Console_commands#Farm_animals
That works for me!
hmm... i dont think thats meant to happen... 
most advanced game of musical chairs
anyone happen to know how the game handles the garbage can reaction? My familiars are lookin at me weird and Ideally they would not react but I cant find what actually triggers it
not a garbage can authority, but i think like.. any kind of "living" thing will react to it?
I don't know directly, but if you want to poke around in another mod, I know 'the stardew squad' has a config that prevents people from caring
right, so its possible, thats a good start lmfao
it does that with a Harmony patch, apparently
if your familiars are defined in Data/Characters, you can choose the emote type & set the friendship to 0, but it still applies to any character other than horses
yeah I just found it too
I've been avoiding harmony thusfar
The reaction doesnt negatively impact familiar friendship, so im mostly just trying to get it to not pop dialogue / emote
or - is there a way to at least change what the dialogue says maybe? If i can change the emote and the text that pops up I can at least reframe it as like, " ? What are you doing?" or something less specifically negative
if they're a custom subclass, ig you could override doEmote on them, but otherwise you'll probably need to at least prefix something
the dialogue uses "DumpsterDiveComment" for that NPC if they have a dialogue asset, but otherwise it's just the generic Strings data line based on age
Data/ExtraDialogue rather
also in any case, ig it's going to do the multiplayer popup about getting caught too
bahhh im sure I'll end up using other small harmony patches anyways... it seems like the cleanest work around
success, that wasnt too bad
All that work just for these to be mostly blue π
:3
ok giving my hyper berries a whole bunch of random debuffs was fun but now that I gotta make 23 more I am NOT doing that 23 more times π
guess who had to do it over 50 times
this is so adorable :o
thank u!
It's coming along so well ^O^
Yippieee
I'm gonna go draw some koi fish now...
respect to anyone who does full dialogue rewrites, because this is a lot (i am likely making this way more complicated than it needs to be). no actually respect to anyone who makes mods because this is a lot
The pig power book is finished!
Anybody knows if there is any way to modify items obtained from hoeing the ground? I know it's possible to do it with artifact spots using:
"ArtifactSpots": [
{
"Id": " ",
"ItemID": "(O)",
"Chance": 1
},
]
but is it possible to do the same just from hoeing the ground like trying to get clay?
not without c#
I have coding questions, but I think I'm gonna wait to ask until tomorrow. In the meantime, I think I'll finally start working on some of the building textures
if youre anything like me, make sure you write them down somewhere so you dont forget after going to sleep lol
I think Imma start with Emily's tent
Jokes on you, I already have no less than 3 different TODO statements in my code saying the same thing
If that ain't proof I have ADHD, nothing is
-# u can always make them more big with moby dick
Someone said four funny letters
putting stuff on fences
Display
I can see it now; a fence surrounding the shipping bin, holding nothing but lucky purple shorts. A true display of your dominance, because Lewis has to walk in there to collect the stuff you ship.
question for those making character mods, what is the usual number of lines a character should have? how many words can we expect from one character? trying to figure out the writing budget
However many or few you want
you can go vanilla numbers or get crazy with randomization, world's your oyster
hmm okay maybe i should ask more specifically. what's vanilla like in terms of number of lines? also, let's say if we assume the character comments on not only festivals (before and after), but also on other vanilla character's major events... how many lines is that?
!unpack best way is to look yourself
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
marriage candidates tend to have more lines
selph literally stealing all the words out of my mouth lol
I think Abigail has the most lines among all vanilla chars
i wrote down the number of lines my NPC has (excluding events) somewhere. let me try to find it
Apparently Abigail has 151
but some of them are for things like breaking up or the "cheating with everyone" events
hmm apparently always raining in the valley as 1000+ lines for 3 characters, but since only sterling is marriagable i assume he takes most of the lines
That's also vastly more than vanilla
ten times vanilla
For modded characters, vanilla's probably your baseline and the sky's the limit, it can be anywhere in there
honeyfuggle has 214 lines
https://stardewvalleywiki.com/Modding:Dialogue#Conversation_topics This has conversation topics for events, but you can also do the eventseen_<eventid> thing to comment on specific events
my npc hassss one second
742, including gift dialog and movie dialog and such
waow
oh this might also have CTs from other NPCs in it
suddenly feeling very inadequate /j
My i18n is NOT set up for this estimation LOL
okay I think 661. Includes mod crossover dialog, gift dialog, movie dialog, excludes events
I did some stuff with dialog pool randomization
impressive! how many mods did you end up crossovering with?
Well it's via CTs or dialog pool additions, it's not full "we both wrote a scene together"
And some of it is gift dialog for modded items specifically
ohh
It just makes everyone feel more connected if NPCs refer to modded NPCs
yeah i really love that about many of the character mods here
So there's some lines that get added to the dialog pool with SVE, Ridgeside, East Scarp, and a whole lot of other things
and they all react to character events from other mods
I am told my compatibility section is immense, I'm Compatibility Georg
not all but enough to feel like it's all connected and not me downloading random character mods to putting them in one folder XD
and some of it's just moving stuff so other stuff doesn't collide, but I've got several lines and stuff in
Oh, Ayeisha does have a proper little crossover scene though
That's the first one I've got, though I there's one for Hurst (in alpha) too
ooh i just checked out mod
I like dialog pools because they're less immediate and in waves than CTs
I think a mix is ideal
but you can do whatever really
so you have 2 new characters in the mod. how many lines in total is that?
Alicia's mainly a desk who cameos other places, the numbers I gave were just Bill
ohhhh
Alicia's not friendable, she's got a handful of lines and a handful more if you use Central Station or Downtown Zuzu
where she can be a tourist or show up to the block party
and she talks in events
Hey modders, trying to fix my mizu's turkeys retexture right now (and get my unreleased reindeer retexture working, same issue) and running into issues - is there any workaround to target animal skins that use internalassetkey with a content patcher mod? And if so, what's the correct syntax here?
Chu wrote me a content.json forever ago for my metalcore goes cottagecore portraits that successfully managed to pull this off, and I've been referencing that trying to figure it out, but either the syntax is messed up or animal skins cant be targeted the same way and I. Don't know which it is 
ok from what i gather thus far, around 150 lines for vanilla, around 600 lines if including crossovers and randomised lines and etc
It depends on how fancy you want to get with the code too
you can directly overwrite the Texture fields to point to your own asset
- skins
With dialog pool randomizing, you can just add to the pool however much you want for daily dialog. With vanilla, it's set up in a very specific way
if your code doesn't work feel free to post it here
Ok lemme try one more time
You can do dialog on specific days, specific weekdays, specific month/weekdays, it's pretty time-locked. And you can change it out with when conditions if you want. If you're doing estimating, I'd highly recommend looking at Abigail for example and the wiki page on how dialog works to see how the keys work. That changed how I planned out my writing, at least until I got the randomizing figured out
and for dialog about other mods with vanilla style, it'd be in CTs. You write a key for the mod's CT and your NPC will say it when the event happens basically
i'd ask how many words since that's what's usually needed for budgetting but that's highly dependant on how verbose the character is - they could be the type who just utters a word, or they could be the type who speaks in paragraphs lmao
shane vs elliott
Also hard to estimate if you have lines that change after events! Or if you have a mod enabled
I'm definitely doing something wrong lmao
{ "Format": "2.8.0", "Changes": [ { "Action": "EditImage", "Target": "Mizu.Turkey/BrownTurkey", "FromFile": "assets/BrownTurkey.png" }, { "Action": "EditData", "Target": "Data/FarmAnimals", "TargetField": [ "Mizu.Turkey_Turkey", "Skins" ], "Entries": { "Skins": { "ID": "White", "Texture": "assets/whiteturkey.png", } } }, { "Action": "EditImage", "Target": "Mizu.Turkey/shopicon", "FromFile": "assets/shopicon.png" }, ] }
only the white turkey uses internalassetkey which is why its Like That
Flowing Mine Rocks updated for 1.6 https://www.nexusmods.com/stardewvalley/mods/9043
you indeed are sorry
you're currently inserting a new entry into Skins instead of replacing anything, because your code is telling CP to "get into Skins, find the entry with the Id Skins, and replace it with this entry"
you also did not load the png into an asset you want to use and instead is providing the png path
to fix the first you can either use TargetField deeper and replace only the Texture field in the entry with the Id White, or use the correct key (White)
{
"Format": "2.8.0",
"Changes": [
{
"Action": "Load",
"Target": "{{ModId}}/WhiteTurkey",
"FromFile": "assets/whiteturkey.png"
},
{
"Action": "EditData",
"Target": "Data/FarmAnimals",
"TargetField": [
"Mizu.Turkey_Turkey",
"Skins",
"White",
],
"Entries": {
"Texture": "{{ModId}}/WhiteTurkey",
}
},
// Other changes omitted
]
}
also it might be worth bringing up to Mizu if this isn't intended idk, then you can just wait for the fix on her end
thank you I have a really hard time wrapping my head around content patcher everything
I think it's probably intended bc all her reindeer skins use internalassetkey, but if I can figure out a workaround I don't have to bother her LOL, going to test it
I'M FREE
christ almighty, thank you selph you are my hero
i want to make a cp mod in which i change the texture of iridium bars and refined quartz to fit the rest of the bars. what would be the target i would write in the content.json
Maps/springobjects is where object sprites are stored
you need to find the coordinates though; feel free to use an image editor of your choice that supports 16x16 grids and showing x-y coords
ok, coordinates of which corner of the textures
which animal coop mod is that? like, the texture of the building. is so pretty
top left corner
top left corner
if i add multiple dialogue lines for the same item, im guessing it chooses one of them randomly every time, right? also do omitted gift -ables in npc gift tastes default to the universal? uh and should i bother adding i18n support even though its meant to be just a personal project..... i checked out some mods' dialogue & i18n files n it looks so much neater.................... ||zero experience in everything please bear with me π||
Wdym for the same item?
I see. I think thereβs a way for the game to randomize picking a line in the same dialogue entry. Personally, I just slot all of my lines to i18n and set it to random.
I donβt think my explanation is very good, let me just give you an example 
yeah! what i meant by it looking so much neater π
Take this as an example: "AcceptGift_(O)421": "{{i18n:CSS.GLH.AcceptGift(O)421_{{Random:{{Range:0,1}}}}}}",
My i18n has these entries, respectively: "CSS.GLH.AcceptGift(O)421_0": "Wow, aren't they just beautiful?$h#$b#These are my absolute favorite! Thanks, @!", "CSS.GLH.AcceptGift(O)421_1": "I love sunflowers! Aren't they the prettiest?$h#$b#Thank you!!$h",
I'm sure there's a way for you to just have one dialogue entry containing multiple lines set for randomization but I think this is just a cleaner and more organized way to do it. Nomori made an i18n converter for ease of internationalization
thank you so much!! going back and forth mods' dialogue and i18n files was too much for me π will check the converter out !
If it helps, I used to manually type in everything lol
good luck!
cats sleeping on cat trees, dogs sleeping in dog houses
At last.
At long long last omg 
cats sleeping and getting stuck in real trees
Finally, functioning pet furniture
Is... is this extensible at all? Like specifying a tile on the furniture for pets with a specific ModData or custom field or something to sleep on? 
Even if it isn't, completely worth it!
it's a content pack for Custom Pet Beds, so yeah, Custom Pet Beds is now even more extensible
here's what you can do now:
"Action": "EditData",
"Target": "aedenthorn.PetBed/dict",
"Entries": {
"Doghouse": {
"X": 12,
"Y": 20,
"PetTypes": "Dog",
"CanFlip": false,
"FrontTexture": "{{ModId}}/DogHouseFront"
}
}
Yes.
amazing release! just so you know, the manifest file has an error where there isn't a comma before UpdateKeys so the mod doesn't load
oops, thank you!
np β€οΈ
Regarding the custom monster framework or whatever it's called.
If I were to make a monster that uses the lava lurk as a base, how would spawning in an area work?
Will it automatically detect water/lava tiles in a space, modded or not, or do I need to somehow set something to work?
They won't spawn just using the framework, you need to make them spawn somehow
Oh yeah?
So you just use the framework to just make the monsters and their loot tables and such?
sorry, that's not quite correct, the framework has two fields that let you spawn them as replacements for other monsters
but they won't just spawn separately
You can use DMT to make them spawn, it should be pretty easy
Wuzzat?
Yikes.
Dynamic map tiles iirc
you really have to read the documentation for Custom Monsters, it's not a simple thing mostly because there are multiple ways of instantiating monsters. it explains about DMT as well as gives examples.
I've looked over the documentation of both mods. I'm set for life.
Although, I didn't quite get the DMT bit.
What's the difference between the values:
"DMT/monster_Enter";
"DMT/monster_On"?
Enter and On are the triggers, there are a bunch of different triggers you can use. On means when stepping on that tile. Enter is just a simple "when a player enters the location"... tbh I don't even think it works
Enter doesn't really have any business being in DMT, I'm not sure where it came from lol
oh right, yes, it could be used to change a specific tile when a player enters... but I don't see any code to actually make it work
Then how would I go around implementing monsters to pre-existing mines?
Would replacing them be the only option?
replacing them would be the easiest option
Would the entire species get replaced or would they just spawn in place of a random individual monster?
you can specify a chance, which is calculated for each vanilla monster of the right type
for DMT, probably Load is the trigger you want
that will trigger when the location loads
though in mines, I'm not sure how that works
bc they aren't really locations
You could also create a C# mod accessing the Custom Monsters API and spawn them as you like
If I were to have unique modded maps for the monsters to spawn in, would I do the same as in the example of Custom Monsters where I just edit the map?
Though I don't quite get the XY stuff, can you not make them spawn randomly in non-mine locations?
spawning randomly is a bit vague... you could use Content Patcher to specify your randomness
x and y are the position on the map
So I'd be forced to spawn monsters in specific areas?
I'll see what I can do. Thanks.
Oh, yeah, but how would this work anyway?
Although I'd assume if this were to be implemented in a custom location, I could just XY it.
But I'm unsure if it would start swimming in the ground after a while.
it would behave like a lava lurk, I'm just making a field for spawns in specific locations
I'm implementing something like this:
"LocationSpawns": [
{
"Location": "MyLocation",
"MinSpawn":1,
"MaxSpawn":4,
"MaxAmount": 10,
"MinTile":
{
"X":5,
"Y":5
},
"MaxTile":
{
"X":15,
"Y":15
},
"Respawn": "Daily"
}
]
MaxAmount is the max number of this monster that can exist in the location (they won't spawn more if it's that many or more already)
What's this for again?
I'm going to add this functionality to the mod so you can spawn a monster in a location as you like
no need for DMT
are you the one who blessed us with the custom monster framework this whole time
I might have created it
I'm just happy to see someone actually trying to use it lol
Are you kidding? After finishing my Vanilla monster retexture mod, I've been DYING to try and implement completely new ones to the game.
So, this would help with Vanilla and custom maps, seperately from mines, correct?
yes, it probably wouldn't work in mines
Good either way, as I plan on another mod that adds unique locations for equally unique monsters to spawn.
you can dm me if you have more questions, I guess this isn't the best place to have detailed conversations about this
Stellar, thank you so much.
Added LocationSpawns to Custom Monsters https://www.nexusmods.com/stardewvalley/mods/45642 :
LocationSpawns
List of entries for causing this monster type to spawn in specific locations. Each entry takes the following fields:
- Location - the name of the location for the monster to spawn in (e.g. "Forest" or "Mountain").
- MinSpawn - the minimum number of this monster type to spawn at once.
- MaxSpawn - the maximum number of this monster type to spawn at once.
- MaxAmount - the max number of this monster type that can be present in the location at once (if omitted, no limit).
- MinTile - the minimum x,y tile coordinates for the monster to spawn at.
- MaxTile - the maximum x,y tile coordinates for the monster to spawn at.
- Respawn - the period after which to trigger a respawn. Can be one of "Daily", "Hourly", or "TenMinutes".
Example:
"LocationSpawns": [
{
"Location": "Forest",
"MinSpawn": 1,
"MaxSpawn": 3,
"MaxAmount": 10,
"MinTile": {
"X": 0,
"Y": 0
},
"MaxTile": {
"X": 100,
"Y": 100
},
"Respawn": "Daily"
}
]
@west thunder ^
Hey so I have a question. I keep having issues setting up my portraits mod. Everything's working perfectly except Leo's portraits. I'm using Portraiture's HD Portraits framework and for some reason, when I try and load up Parrotboy to edit and replace the portrait, nothing happens. No errors on SMAPI, just the portrait doesn't get modified. But when I change the name and the png names to Leo, it does work. Which is strange, isn't it? The in-game vanilla file is called Parrotboy
Surely I'd be loading up /portraits/MOD NAME/parrotboy, not /portraits/MOD NAME/Leo?
Portraiture doesn't use the exact match than
dunno if it has docs
was gonna say, portraiture may not use sdv internal names
hmmm, maybe this is the issue thats making the game not recognize pierre
oooooo i forgot his direction.....
shit
hmm, I guess that explains why other HD portraits seem to use Leo, but non-HD portraits are using Parrotboy... I see
I guess portraire just like, uses their names.
The other issue I'm running into is that I can't figure out how to replace the answering machine file lmao. I have it set to edit and replace /portraits/MOD NAME/AnsweringMachine, which again matches the vanilla vile name, but it's not working? And I can't seem to find another mod that successfully replaces it lol. Everyone I've tried that has the answering machine portrait doesn't seem to work either
and no SMAPI errors show up either
any ideas what I could be missing?
not that i see
yeah I couldn't find anything π
is there any mod I can use that would let me know what the name of a given asset is in-game? or something like that?
Err wdym
Lookup Anything feels like what u want
Or do you mean like
Pngs and stuff
wouldn't help here
Oh wait I see lol
portraiture isn't using the names of the in-game assets
since portraiture doesn't always use the correct asset name that'd be useless :/
ah
Have we considered hardcoded
where is your framework iro 
for reference the in-game asset is called "AnsweringMachine"
but i wouldn't know how to gauge what portraiture uses
but basically, there is a chance portraiture simply doesn't touch this asset at all, so you can't replace it
oh hm
you can uhh use the code methood and not just placing stuff in files, might help
no, nvm, same issue
So far Dacar, Talkohlooey and Shie's portraits all don't work with the answering machine
hmm, it might actually be an issue with Portraiture...
maybe they just, changed how to refer to it, like how they did for leo
might be silly, but try Answering Machine
like add a space
That could also be it. Might try a few alternative names lol
maybe it's just "phone" π€·
maybe phone too-- yeah lol
the source code is out there so perhaps some C# wizard could like, check, but otherwise 
cmon CA, why is it called answering machine, it's a god dang phone /silly
i guess bc it works when the vendors arent there
i wonder if that was the original purpose, and he just scope creeped
sounds right for stardew
trying out some alt names right now lol, will report back
another funny quirk I've found: Mr Qi needs two files. MrQi AND Mr Qi
no idea why, but one is used in a cutscene, the other is just for normal dialogue
Qi^2
two of em
honestly on brand for him tho
yeah qi did that himself
hrm, phone, telephone and answering machine all don't work
I wish you could start construction projects from the phone (anything that isn't buying a good really)
Been thinking about this a bit, and writing is one of the hardest parts of modding (to me)
Relatable
I like event making, but itβs more fun after I can follow the script instead of writing it, I think
I understand that, it's taking me a bit to do event things because I'm stuck on the writing script part a bit
I donβt hate writing, but I procrastinate doing it so much lol
Itβs not fun in the same way art is to me. I know itβs the opposite for some people
I genuinely enjoy sprite making, and portrait making, and room decorating
My writing process is very iterative, and is usually only accomplished by waiting a while and seeing how I feel about it later. Sucks!
So you make first drafts and then edit them
(after youβve given the idea some time to rest)
There's a mod for that
pinging you to respond to this specifically, but my other npc concept would not be as good as it is now if I hadnβt just let the idea sit for a while.
Question: Should I feel bad about pushing out multiple updates for a mod in succession
No
I think I really needed time to figure the very basic foundation out
sweats
no
i updated every 2 days for a while 
Iβve added new characters to it too because I ended up making art I really liked lol. Wouldnβt have happened if I had created and finshed the mod last year
Alright. cuz I released the major update, first one in 2 years 2 days ago. Then yesterday I released 2 different patches, one to fix cutscenes and one to add SVE compatibility.
Today I was planning on releasing another for more SVE Compatibility and also new forage that is 100% unnecessary but a comment asked for it so
i dont think my npc process is as iterative as it could be but when i start on my expansion it will get much more iterative
The ui info suite alternative mod updating every few hours 
also maybe clark since i have to do rival hearts
mayhaps overkill 
As long as it doesn't reset config everytime I think it's fine
Two Questions:
A) do you think pigs with golden animal crackers would be too OP if they dig up 2 truffles at a time? Should it be a percent chance of happening?
B) how would a C# mod change what drops from a specific monster instance when killed (I can elaborate more on this later - I'm still waking up)
It's a scam
ohh
Like a discord one? I thought someone accidentally just shared the wrong picture
I can see that now though
well, that was quick
Yes. IDK what it does, but I've seen it occur a few times on a few different servers
unfortunate
i've seen it too many times now, I see the 4 pictures and auto ping mods x)
A small part of me wants to setup a secure VM to analyze it and see what it does
Idk what that is π
it's just a screen of a twitter post telling you how to earn money, then a picture of someone doing it then their filled bank account
nothing too fancy
VM stands for Virtual Machine. It's how cyber analysts analyze malware in a secure setting
simplest scam ever tbh
To be fair, I've never actually interacted with it π
I had the time to look through it once, I had pinged a mod in another server and, I swear, he just asked "yes?" in the chat and did not delete the post
oh wow
it took a good 10 minutes for them to realised what it was about
genuinely impressive
Yep! I'm more of a blue hat, as I find cryptographic algorithms fascinating (#math-nerd)!
-# I should clarify, I have a BA in cybersecurity and a Masters in Quantum Computing π
Very cool
-# i'm not sure the "hat" terminology is well known outside of the domain
My bad. Blue hat just means that I prefer protecting machines as opposed to attacking them
Oh, ok
Red hat refers to people who try to attack a system. This doesn't always mean they are malicious though.
red hat does have a subtext of malicious attacker
Right, Iβm vaguely familiar with that
A lot of red hats are hired by companies to perform security analysis
white hat hackers might be a term I've heard
there is another one for people specifically hired to attack systems to pinpoint vulnerabilities
-# i just know them as pentester because we don't use the hat terminology at work
White hat: Good hackers
Grey Hat: Neutral hackers
Black Hat: Bad hackers
And yes, pentester is the better word (I'm still a bit groggy π )
I am no math or computer nerd, but modding in general has helped me become a bit more computer literate
In basic but helpful ways
Red hat/blue hat is also more commonly referred to as Red team and Blue team iirc
That's excellent!
I can google some stuff 
And search for files lol
only in hackathon contexts usually, but yeah it happens
Yeah. They are also occasionally used in government settings as well (though not as often)
Interestingly enough, modding has also taught me little bit about marketing. There are actual skills learned in this hobby
Iβm mostly glad to be albe to put my pixel art to use though
I canβt make a video game
But I can mod one (this one)
and only this one lol
same ^^'
and "mod" is very broad, as I haven't really done anything for now lol
(my only mod has been entirely done with smithy, so I haven't coded anything yet
)
Iβm glad there are so many people willing to help newbies here lol
I wouldnβt have accomplished the stuff I have without help
Yeah, this is a good community!
Speaking of which, I'm gonna ask this again since I accidentally de railed this channel:
Two Questions:
A) do you think pigs with golden animal crackers would be too OP if they dig up 2 truffles at a time? Should it be a percent chance of happening?
B) how would a C# mod change what drops from a specific monster instance when killed (I can elaborate more on this later - I'm still waking up)
pigs are already OP, so anything making them do more will be 
for B) have you tried reading monster code
I have. They have a modify monster loot table, but it also seems to take in a Debris parameter, which confuses me.
Granted, I should probably reread it now that it's not midnight
would any of y'all be interested in music for one of ur mods or other projects? ππ
if you scroll down just a little from the top there's a top level field called objectsToDrop
I've been considering making music for one of my mods - it's been a while since I've done any compositions
Thanks. I'll take a look at it as soon as my laptop boots up!
This is what I get for coding at midnight π
i probably will be, but not before at least 3 months (i have barely started ^^')
@brittle pasture Would "Animal is a Heater" be possible with EAC?
sure!
oh what i meant is that im looking for a mod to compose for
cool! can i add you so you can message me later?
You're the best!
ofc ^^ you can also join my thread here, so you'll be able to see my progress :)
it's here: https://discord.com/channels/137344473976799233/1499458151093899334
Now that the Farmhouse is a moveable building... how resilient would the game be to a mod that just deletes the farmhouse?
well the game seems to be null checking GetMainFarmhouse in all but one case (some old save migration code which hopefully will not run ever if you intend the mod is to be installed on a new save)
I say go for it
after all if the game explodes it isn't going to be my fault
How would a c# mod add a number slider to their GMCM config menu?
I think that should be a number field with min/max/interval
Gotcha. Thanks!
done! check the latest uploaded version + docs
I sure hope no mod is relying on environment.numberOfObjectsWithName("Heater") returning an accurate count instead of just caring whether it returns 0
-# I saw my screen blinked
I currently have the following left to do for my book update:
- Add logic that adds monsters throughout the day around the player at Ginger Island
- Maybe add a boss monster to the caldera?
- The logic for at least 3 new books (at least one of which is going to be a massive pain to test bc it requires the desert festival)
I may also try beginning to figure out how to even begin approaching my traps mod, since that is probably going to be rather difficult to figure out (I'm almost certain it will require a new class).
Hello! Two quick questions:
"When": {
"Season": "Fall",
"Query: {{SkillLevel:Fishing}} >= 3": true
},
For an event (cutscene), is this the best way to check if the season is Fall and if fishing level is 3 or over?
Or is there better practice for this
Shouldn't it be SkillLevel:Fishing <= 3
Wait, nvm
I thought the original message was 3 or lower, not 3 or over π
if this is for an event precond just use the precond?
try to avoid conditional patching as much as possible
Season Fall/Skill Fishing 3
would skill fishing 3 only limit it to 3?
3 or higher
ah tyty
btw is there a doc for this? i know the conditions based on game states, but i just dont know how to transalte them to like "Skill Fishing" etc
like for event conditions like this
cause when I read event data i didnt see anything bout skill fishing originally
or in the game state queries page
Is there any way to make any item tagged as "has_shark_fins" to be used in a crafting recipe as an ingredient to make something? (This doesn't work)
only possible with spacecore
I got spacecore installed, how would I do that?
The most without frameworks is adding a context tag for it, if this is for compat with another mod
specifically the "Crafting/Cooking Recipes" section
for examples you can check out Flexible Cooking on Nexus
That feeling when you launch SV but accidentally forgot to build your mod first
or all your mods need updating
(i had it where 20 needed updating and cried)
Wow that was fast!
-# yeah I lowkey already have the code in place for a mod I'm not working on
(I'm going to choose to believe it's actually just absurd competence.)
Yay, it works!
2 Books Left to Go!
-# I still need to actually add the 3 remaining books, but at least one of their logic is finished
something that will probably come out in 2029
GOD DANGIT. STOP GIVING ME BOOK IDEAS TO STEAL
here's one more teaser because I delight in suffering by showing people what they cannot have
Though in all seriousness, I've felt a lot of my books have been doing what other mods do. Some examples include:
- Enabling ancient fruit to grow all year long
- Mining extra stone (granted, I just learned about a mod that does this)
- Letting you feed golden animal crackers to pigs
- Letting you age pickles
- No longer having fishing rods consume bait and tackle (I originally planned on having it still consume bait, but eventually gave up)
- Increasing slime hutch capacity
And probably a bunch of other things as well if I'm honest
Don't let that get you down. Having different options is always good; maybe a mod that lets you age pickles has ONLY that, and you'd want that feature along with something else but reduce your mod count; the option is there. Something something two cakes, and all that. Do what YOU want to do, and if there's overlap, that just means there's more of <thing> to download!
Does this seem too high a value? 
Wine should be 3x the price of whatever you put in, so no. The wine isn't overpriced; it's whatever you threw in there to make the wine lol
Well actually I set the prices myself and the multiplier is a little higher 
It's 3.75x base price - 5000
Oh right that IS also iridium quality
my cursor is over the star 
Oh I see the pixels now lol
yea that's my bad lol
Even then, that is a bit of a high price lol.
I mean... technically it being overpriced or not depends on the difficulty of obtaining the source item.
If it's a crop that grows in 30 days... maybe a bit much. 
True. We do need a bit of context in that regard.
It's a crop that only takes an hour to grow
It's forage with a less than 1% chance of spawning (after a 10%, 30%, 50%, and 70% chance for one of the loot tables to even roll anyway) thats locked behind the 7th out of 8 major bundle rewards in my mod that requires at least year 3 to complete as well as access to Qi's Walnut Room
It's basically meant to be an endgame money maker, this is the absolute highest value item you can get out of there and that's only from making it into wine and letting it age
Well if you think that the effort required to unlock it justifies the price, then that's fine!
If it had a few more digits, it MAY be a bit too pricey, but balancing is an endless process
It's not necessarily meant to be balanced just because it's gotten at a point in the game where like... there really isn't much else to be doing
Seems perfect to me then!
Awesome!
Fair. Plus, it is entirely up to you on its price, so by all means, stick with it!
I'm also including a warning when you unlock the Abyss saying that the stuff there is lowkey probably overpowered and encouraging people to ignore it if they don't like it
I might also make a config option to make the super duper high value forage even rarer, but I'll need to do like actual testing first
i also don't want to spoil it to players yet because technically this is all part of a secret thing 
so whats da secwet :0
The secret is basically everything I've been doing for the last 2 months 
This whole questline with Darkrai and such is technically a secret you access by drinking an item that hurts you for like -787 energy (supposed to make you sleep and force the next day) So like.. no one would realistically drink it
But I've been adding hints and stuff to generate intrigue around the item so hopefully people will try it and find there is so much more to this mod
Like I have just this image on the mod page with no context other than "...?"
wait
So I'm really hoping people will take a chance :3c
is this mod just about darkrai or
NOPE NOT AT ALL 
This is a mod about having the berries from pokemon as growable crops
DARKRAI WAS THE CRAZIEST SCOPE CREEP I'VE EVER EXPERIENCED
and also one of the first I ever experienced
quaint little mod about growing pokemon berries :3c
sip nightmare smoothie
Fully friendable NPC with a fucking community center-esque line of bundles to complete and BIG rewards for doing so
Yeah, like 80% of what I've added is only accessible after you drink something that on paper kills you 
And it does! but then the fun begins :3c
Community Center bundles are one of my favorite things in Stardew I love completing them and always find myself with struggling motivation to keep playing after I've completed them. So I figured with all these foods and berries I'm adding for my mod, I should have bundles to complete! And everything just fell into place with Darkrai and the fact that 2 years ago I made an item that kills you and does nothing else 
god that's literally how this all started, I saw the Nightmare Smoothie I made 2 years ago with an edibility of -299 and thought "this should like.. ACTUALLY do something" and now it's technically the most important item in the mod
Now I'm gonna expand the playable area of the Abyss where this forage spawns, because after adding 23 more forage and doubling if not tripling how many spawn per day, a 48 x 24 map with a good chunk of dead space might not be cutting it lol
OH RIGHT- That's also why I came here I forgot-
I wasn't sure if I should increase the height of the zone to 48, 72, or 96
Meow
I have a habit of yapping lmao
Okay, I think I have the pseudo code to make calico statues more likely to spawn.
Time to test it. I doubt it'll work
Would yall say having 9 statues spawn in a row would count as increased calico statue odds?
Uhhh yes I'd say so 
Okay, I've reached level 30, and only 2 floors did not have any statues
I'm pleasantly surprised that that worked
Always good when something wildly experimental works first try!
That also means that I only have 1 more book left to figure out the logic for!
But before I do that, I think I'm going to properly implement the shrine logic
Which means yall should expect to hear from me soon asking about how to draw over sprites and add animations π
I also need to figure out book titles
it does!
it also means there is a bug hidden that you didnt notice

i think it happened once where i did it first try 0 bugs in code
Man I just love making the most spaghetti pasta map shapes
It's not done yet but this is the general layout (spawnproofing out of bounds is gonna be pain with this one)
What are yall's thoughts on the following prompts?
-Dark Shrine of the Ancients-
Ancient evils who lay long dormant will be awakened, causing monsters to invade Ginger Island.
Make an offering of one Dinosaur Egg?
And
-Dark Shrine of the Ancients-
The ancient evils invading Ginger Island will be put to rest, preventing monsters from appearing on the island.
Make an offering of one Dinosaur Egg?
I got this as a comment in the errors section of my forum today lol If you skip the building event Jack doesn't show. I guess that's realism.
I actually wasnβt able to figure out why he doesnβt become visible again when I used the proper command before the /skippableβ¦ but I did add a trigger action as a failsafe since it doesnβt work. Heβll just show up a day late. π
Is \n how you force a line break in an i18n entry?
I think itβs a <#$b#> for dialogue?
It's going to be used in a yes/no prompt (the type that appears when interacting with the shrines at the witches hut)
So I should use ^ instead of \n?
my map string has a #
Yourβs is a map string too right?
OH MY GOD, WHY DOES THE GAME HAVE TO MAKE THIS SO DANG COMPLICATED
Probably π
Yes
ok
Then I think it should work
Because thatβs how I have it in mine when the map patch is examined
I have a plan. Since there's several line breaks, I'm just going to use all of them. One of them is BOUND to be correct π
You mean at onceβ¦. or in succession?
In succession
yknow u can just go look at decompile to find out for sure 
sometimes it might not even be supported anyways
Turns out it was ^
Now that that's settled. First of probably a few map drawing questions. I have the following tile sheet for a map. How would I go about conditionally drawing the items on the right above the skull on the left. (The vines should look like they are coming out of the skull, and the blob should appear in its mouth)
I ended up calling Game1.currentLocation.createQuestionDialogue
Hereβs what I can think of. Iβd separate the back of the mouth as a back layer, put the egg on a back 2 maybe, and then the rest of the skull as a buildings layer. You could do similar stuff with the vines
oh wait
I thought there was a way to do this without messing with map layers
Oh, then Iβm not the person to ask lol
I think you need to ask a far more experienced modder for this
I am barely getting by when it comes to JSON stuff
I think you'll need map layers for this
Editmap patchmode replacebylayer is probably the easiest option for conditionally layering stuff in there
Or overlay
Is there a way to toggle layer visibility? For example, if I placed the egg on a layer called "SFX" I could toggle that layer's visibility? (to be clear, this is related to my next question seeing as I just learned how to make animated tiles via Tiled)
Don't name layers weird stuff, they draw based on name
Overlay, you just put, for example, the egg on a layer like Building2 if your skull is on Building and have no other layers in the patch. And activate that map patch and it will put the egg on top of the skull.
Are you doing this in an event?
No. The plan is as follows:
- Have the vines be added based on a config value
- Add/remove the egg whenever the shrine is active or inactive respectively
- Add/remove animated flames to the eye sockets while it is active or inactive respectively.
like if it's just a map change, conditional map patches are fine
If the vines are based on a config, you could overlay them onto the skull image itself tbh
think that'd be as efficient as anything
Not that I'm saying there aren't ways to do this with CP, but if Nullnow is using C#, odds are timing things around patch lifecycles in CP instead is going to be rather unnecessarily limiting
And would that still work if the map in question is being extended to a different map (and yes, this is a C# mod)
oh, C#, that's over my head
I believe I could also add an animated sprite for the eyes via the AnimatedSprite class, but I could be wrong. I wonder if the same would also be true for the other textures as well now that I think about it
Does anyone have up-to-date tutorials on making hats and adding items to stores?
I am not able to help much with brainstorming a good way to do it now, but you might get some ideas from looking at the secret woods class in the decompile with the Gemberry guy statue
Since his eyes light up upon being activated
Conditionally drawing sounds easier than conditional patching, to me
I've actually been following along the shrines in the witches hut (I just found them, which is why I brought up the sprite idea π )
I could pull a hat example from my mod if youβd like.
It is not a purchasable item though
I am asking because the wiki tutorial for adding an item to a shop is marked obsolete, I can't see one for hats and I'm not sure what exactly is going on with the code of the mod I downloaded to use an example in tandem with the modding:hats page.
that would be much appreciated, thank you!
Iβll go get it
Modder's Pie has a section on adding items to shops, and the technique for hats is pretty similar to that for cooking recipes as far as how to interpret the modding wiki
...Seeing you typing is making me suspect that adding something to a store is part of modder's pie.
I was right!
TY!
I think I'll try my animated sprite idea sometime either later today or next week. I think I'm gonna take a break for now.
Here's my example you can use as well ```{
"Action": "EditData",
"Target": "Data/Hats",
"Entries": {
"{{ModID}}_JacksHat": "{{ModID}}_JacksHat/{{i18n:JacksHat_Desc}}/false/false//{{i18n:JacksHat_Name}}/0/\Hats\{{ModID}}_JacksHat",
}
},
{
"Action": "Load",
"Target": "Hats/{{ModId}}_JacksHat",
"FromFile": "assets/JacksHat.png"
},```
And here's the hat wiki page https://stardewvalleywiki.com/Modding:Hats
quick question? when making portraits for a custom npc? if they don't have outfits for different seasons how do i add that in my mod?
you mean you plan on not having outfits? or they dont have them now and you want to give them outfits?
no i mean this mod only has one outfit... how would i add extra sprites and portraits?
https://www.nexusmods.com/stardewvalley/mods/46075
essentially the author said i could make portraits and sprites for this mod
the appearance system, vanilla uses it for the winter outfits
where's the tutorial for that and seasonal?
thank u!!
so i would need to add that if their mod only supplies one portrait and sprite?
yeah
kk i'll have to set that up after finishing up the portraits hopefully it'll work
Do I have the right index numbering going on? I have two hats on a 40x80 vertical sprite sheet, with the silver one on the left and the orange one on the right. (and no i18n.)
{
"LogName": "Helmet Hats",
"Action": "EditData",
"Target": "Data/Hats",
"Entries": {
"{{ModID}}_SilverHelmet": "An silver motorcycle helmet./hide/false//Silver Helmet/0/\\Hats\\{{ModID}}_Helmet",
"{{ModID}}_OrangeHelmet": "An orange motorcycle helmet./hide/false//Orange Helmet/1/\\Hats\\{{ModID}}_Helmet",
}
},
There's also an extra comma 
(wrap your code in two pair of triple backticks ``` so it shows up properly and not hide characters)
you're missing the internal item name as the very first field
Just noticed that myself; it is now present
making it the same as the ID should work
yep, just ctrl c + ctrl v'd it
Main concern is double checking that the sprite index #s should be 0 & 1 and not 1 & 2.
TY!
How do you do a CP "when" condition mirroring the BUILDINGS_CONSTRUCTED gamestate query?
You don't, not directly, unless you use Esca's Modding Plugins as a dependency.
What you can instead do is set up a trigger action using that GSQ as a condition to send a mail flag, and then use the mail flag for your When condition
hiya guys, could anyone please help me troubleshoot my mod?
just ask.. rather than ask to ask π
just go ahead and explain your problem and ppl will answer if they can!
Well, I'm trying to add a seasonal patch to a custom map I made and I'm having trouble with it. No errors show up in my smapi log but the patch doesn't show up
!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 is the json link:
hey, is the event tester mod for speeding through them currently hidden?
because i can not find the modpage
Can I set up the trigger action using CP? And can you explain what you mean by mail flag? Obviously it's a marker for whether or not a letter has been sent/received, but I'm unfamiliar with the process.
the start of your json needs the format field added to it. Example:{ "Format": "2.9.0", "Changes": [
Mailflags are internal flags that the game can use as conditions ('when player has mailflag do x'). Letters are just mailflags that are set up to be visible to the player in game
Does it make that much of a difference? Cause I mean it works fine it's just the patch doesn't show up
Trigger actions can be done in cp, the modding wiki has examples on them
[[Modding:Trigger actions]]
I'm not sure it's actually working. You're missing a lot of commas after close brackets. This means that it will only run as far as the first close bracket missing a comma. ex:
"Action": "example",
"Target": "example",
"rest of action that will be completed"
}
{
"Action": "example",
"Target": "example",
"action that will not be completed"
}```
vs
```{
"Action": "example",
"Target": "example",
"rest of action that will be completed"
},
{
"Action": "example",
"Target": "example",
"rest of action that will be completed"
}```
[[Modding:Mail data]] has info as well
I don't see what missing commas you mean because im not getting any errors on vs code either for incorrect formatting
Make sure vscode is set to json schema
that's because the json checker apparently works the same way as the code in this. Often I've uploaded one and it only finds one comma or bracket error at a time.
how do i change it to json schema?
(I swear there was a command for how to do that but I can't find it)
and then when I check it again, it finds the next one
no idea what you're using, but in Notepad++ all I had to do was change the filetype it was saved as.
but shouldn't the smapi json validation show the errors as well?
They're not missing commas after their closing braces, they're just next to the comments
Ah. I am reffering to the validator as a checker.
do you know why the patch isn't working then? ;-;
Yes I know. The commas are in there as well and the validator reports no errors because there are none
Is this an Include file?
no, the one by SinZ
i dont think so?
If it's not being used in a CP Include action then you do need the Format part
how do i know which one it is?
Well, you set up the mod. Did you tell Content Patcher to load this json as part of an Action: Include?
the action is editdata
Or is this all inside your content.json file?
no this is inside a data json i called maps that edits the custom map
and i wanted to add a seasonal patch to the custom map i made
is that event tester mod retired?
If you haven't told Content Patcher to include that json, then that data json is doing nothing
oh it is included in content
Also, since this isn't your content.json, you do not put the Format part
Please send your content.json uploaded through the SMAPI validator
The Nexus page of the tester Si linked is credited as being authored by "SinZ163 and atravita"?
And the previous json you sent is Data/Maps.json? And you do have a folder called Data in your mod folder with a Maps.json in it, with matching capitalization?
@uncut viper i added the format part and now my whole custom map disappeared ;-;
If the previous json is your Maps.json, then do not add the Format part, as said
Format is only for content.json
yes correct
an Include file does not use Format
Which patch specifically?
this is how my mod is organized, if that helps. the first log i sent was the Data/Maps json
I'm trying to get the FallPatch.tmx to patch my original custom map ForestGarden
By ForestGarden do you mean your EditMap patch on line 32 in the original json you sent?
Or is there another custom location called ForestGarden
correct
Then your seasonal patches are targeting the incorrect thing
You have your Targets set to Maps/Forest/ForestGarden
It should just be Maps/Forest like your original EditMap overlay
huh! i'll try removing that and see if it works
wait but
i tried that before. i had it as maps/forest and it wasnt showing up
(sorry your original Replace not overlay)
Well Maps/Forest/ForestGarden is not a thing that exists
So it can only be an improvement towards finding out the actual issue to fix it to say Maps/Forest
okie ill try it rn. so do i just change Maps/Forest/ForestGarden to Maps/Forest?
Correct, just like your original patch that added your forestgarden.tmx to the forest in the first place
You're still editing the same map
and i should keep it as overlay or should i change it to replace?
That depends on whats in your .tmx and what you intend your patch to do specifically so I can't answer that
ill try overlay
If you're unsure you can reread what each mode does on the CP docs or just try them all one by one if you want
ohh
Sorry lol
@uncut viper okay so now the FallPatch worked but instead of patching it based on the season it's just like- permanently set as that. i did overlay btw
If you're changing time with CJB Cheats or something, you need to sleep.
oh, awesome! i tried that and it worked. thank you!
Content Patcher patches by default will only ever update when a new day starts, so that goes for all patches, not just your map edits
Which for seasonal edits is good enough
NP! It was last updated in '25, so it should still be in working order!
Hey, you can cheat mail flags as seen relatively easily right?
It would be a debug thing probably, ive just never used the command
debug broadcastmail mailflag_id_here
thanks
just to be sure, debug broadcastmail parcy.jack__hatGiven would be the correct format, right?
also realized while doing this that my mail flag has a double underscore lol. Too late to change that now
Yep to the format
You actually could change all instances of that in vs code by opening the mod folder in it and doing find and replace all
(I assume notepad++ has a similar feature but don't know for sure)
I assume it's because Parcy's mod is already released and players already have the other flag
yup
Ah fair enough
But you could also just set up a trigger action to send everyone the new flag if they have the old
CP might have a migrate mail flag trigger action already
assuming I did fix the flag correctly in 1.0.2
(it does)
Thanks. I don't think it would be worth it for that though. The double underscore is fine if changing it means more work π
I looked into all this btw to warn a commenter who might want to skip his last event on replaying the mod lol
I was not able to conditionally give the player jack's hat upon skipping the event unfortunately. It may be possible, but it was too complex for me to accomplish
at least when I was working on it anway
Is it sent via mail command in the event? You can put the mail command before the skippable command
so, this is kind of weird, but I've had issues using setSkipActions
putting that aside though
I meant without sstskipactions
Skippable commmand doesn't habe to be at the start of the event, you can put regular event cmds before it
The skippable command can be placed at any point during the event script
I would need to still use some kind of check that does not get ignored like setSkipActions so that the game still checks if the player has the right heart amount. I'm guessing I'd do that with more DTs?
I haven't deeply thought this thru yet
It would be related to the skip actions I think
Oh
I could maybe make that whole thing a conditional DT
(Not at my computer so I can't see what your script looks like atm) so an event could look something like
"eventid/t 1000 1400/f Penny 2000": "jaunty/20 30/Penny 10 20 1 farmer 11 20 1/action addconversationtopic ct_name 3/action addmail mail_here/skippable/fade/..."
Then the mail gets sent before the player has the option to skip it
right
so, this made me think
I have action AddMail Host {{ModID}}__hatGiven received
and I could add a setSkipActions to that
and then
I could put all that inside a DT that I use in the event
and I could make the DT conditional based on the heart level
so players below the requirement would not get any hat
would that work?
Managed to get the eyes at least somewhat functional via temporary animated sprites
Ooo
Now, I need to figure out how to make them not temporary π
are mail keys and mail flags the same thing?
The DT should work
I think I'll have to try this
No, the keys go in the i18n i think and provide the dialogue
the flags register the mail has been received
depends what you mean by "mail keys"
Depends on the cobtext, mail key as in 'key value pair' (which is the structure jsons use) is the same as a mail flag
Oh, ok
I am referring to their usage in https://stardewvalleywiki.com/Modding:Mail_data
There are contextual differences but colloquially people use them to mean the same thing. But I wouldnt
To me, "mail key" implies an entry in Data/mail, since that is indeed a key value pair
A mail flag is just a single string
(which would be identical to the key in Data/mail if it exists there, but does not need to exist there in key form)
I18ns use key value pair structure too, so key in both contexts actually refers to the same part of the structure lol
why does jason need so many keys... ?
So the "{{ModId}}_MailName" is the mail frame?
Cuz it opens lots of doors 
*flag
Yep
what are tas and how do I do them
I never asked myself before
If you're only using CP, a TAS is a Temporary Animated Sprite and it's only available to you in Events (or possibly some other times if frameworks are involved)
hm
you can apparently also just have a field for AddMailOnBuild when adding the building.
Hey, related to topic of setSkipActions earlier... is there any reason why this never worked? setSkipActions SetNpcVisible {{ModID}}_Jack
I checked my event, and I apparently have scrapped it from there entirely, but I had it written down in a note as not working next to my trigger action
Jack would not show up with this which is why I had to put a trigger action in place
Which - how do you arrange that field? : { "MailFlag", "MailFlag" }, ?
It's a list of strings. So,
"AddMailOnBuild": [
"StringOne",
"StringTwo",
"etc"
]
Random question, is there something special a C# mod needs to do to change the text shown when reading a book? Bc I've tried several things to try and change that message via the special powers utility mod, but nothing seems to work π
I currently have the following when creating books:
Dictionary<string, string> customFields = new Dictionary<string, string>
{
["Spiderbuttons.SpecialPowerUtilities/Books/Messages"] = Translation.Get($"{book}.Book.Message")
};
Thanks! I went back to the (Your?) intro to json before asking and turned myself around a bit. Still not doing things enough to remember that list = list (of strings).
List = [ ]
Object/Model/Data Model = { }
πββοΈ
List of Objects: [ { stuff goes here } ]
/Message singular, not plural, in the customfields key
OMG, I feel like an idiot. Thank you!
(partially my fault for mixing singulars and plurals in that key there. Special Power Utilities was my second real mod ever and my first framework and there's a lot i would do differently if i remade it today)
alas, backwards compatibility
IT WORKS!
If you're doin that in the C# remember to invalidate the asset when the locale changes 
I think I'm doing that already? I hope so at least
If you're invalidating Data/Objects whenever you detect a language change then that's good enough
Dammit. Misunderstood what you meant there then. How do I do that 
one of the events you can subscribe to (like AssetRequested) is one for detecting the locale changing
Don't remember which category it's in though
There are honestly good odds that a different CP mod in a players mod list is already going to be causing CP to invalidate Data/Objects when that happens, but yknow.
I'll add it to the docket!
BTW, does anyone know what function(s) in SVE spawn a bunch of monsters at night when you activate a certain shrine?
I plan on digging through SVEs code after dinner, but I'd be more than happy with any leads!
I don't know what it does, but if I were SVE, I would just set Game1.spawnMonstersAtNight
Unless you mean it spawns them right then and there when you hit the shrine
In which case I have no idea
It makes a bunch of monsters spawn every night throught the town every 10 minutes
Oh, in town? No idea then. Probably just a custom TimeChanged thing.
SVE is open source I think but you can also open its dll in ILSpy and try searching for wherever a Monster is initialized
OMG, I just accidentally got the CC cutscene after randomly walking around in my testing save...
... Its Day 16 of Spring, YEAR 4
It is open source. I briefly looked at it for something else I was doing a while back (IDK what though)
I need to make a mod that makes it easier to trigger that scene. I feel like a not insignificant number of my saves required me to look up how to trigger it
For
"Action": "EditData",
"Target": "Data/Powers",
Can I have the "UnlockedCondition": be a purchase from a shop NPC?
If you set the shop entry in the shop in question to do an ActionOnPurchase to set a mail flag, you can use that mail flag as the UnlockedCondition for your Data/Powers edit
Also, is it possible to detect if a player has a power, and if so, it increases the sell price of either given items or items from a specific tag?
a power is intrinsically something with a Condition
so checking that Condition would be same thing
ah u mean in content patcher land?
Yessir
if its a mail then HasFlag is the when condition
I'm not asking about the mail, I'm asking about a power made using Data/Powers
yea and im saying powers are thin wrappers around a condition 
so for example skull key power in vanilla has "UnlockedCondition": "PLAYER_HAS_MAIL Host HasSkullKey",
checking for the skull key power = checking for the mail HasSkullKey
they exist mostly for having pretty icons 
How would I go with increasing the base price of any given items, though?
they dont rly do anything themselves
well u might do something like
mailflag vortz.priceup
and then u do a HasFlag editdata Data/Objects
increase price there
then make a power conditioned on PLAYER_HAS_MAIL Current vortz.priceup so u can show a +money icon to the player
Data/Objects has the price info, which u can edit
watch out for "data change wont increase price of existing items"
(That said if a different mod changes the UnlockedCondition of the power, doing this would be incorrect. However, there is no other way to do this with pure CP and no frameworks.)
I'm willing to use frameworks
well i dont rly think its relevant to what u wish to do 
Well, do you know how the base game Bear Power, which increases sale price of berries?
C# stuff
I want a similar power that increases sale price of other items
I was using SVE's code as reference and I don't see that they have any C# code unless I'm blind
what u can do is, do the data edit first, then use BETAS to update the price of all instances of that object
But they managed to somehow achieve the price increase
(if you control both the power and the prices then yeah the frameworks for checking the unlock more precisely is unnecessary)
Can't find where though π
SVE has a whole ass C# component
Where?
Ahh makes sense
Tons of SVE is controlled via C#
Cool, cool
I'm trying to make my mod as a hybrid of CP and C#
So I don't mind using C#
CP is just the lazy and easy way
but anyways this will work without additional C#
u r borrow button's C# https://stardew.button.gay/docs/betas/tractions#ReloadItemField
(to be clear by borrow chu means use BETAS as a dependency here, not actually take my C# code and put it in your own mod)
i'd tackle this in this order
- setup the mail + data edit conditioned on mail
- check that this works for newly spawned objects of what you changed
- setup the trigger action so that u can update old objects
But wouldn't this affect everybody in multiplayer?
Though, I'm not familiar how powers work in multiplayer
If 1 player obtains the skull key, does everyone else get it?
for skull key yea everyone get it
if u r invested in only one player then i'd skip step 3 
in that case, items newly generated by the player who has the power would get the price increase
Wait, by "data edit" do you mean edit the price of an item?
Is that possible to do?
Okay, thank you
Though, I know I can override a value
Can I directly apply some multiplier to the price value?
nop
Only C#?
im not aware of any existing C# frameworks which does this so yea prob just gotta roll your own
remember frameworks are just someone else's C# 
π
i feel like someone was making something tho...
but i forgor who so that someone might as well be you 
item prices framework
I think it was @barren tapir who's working on a global condition-based price modifiers mod
Yes! It's one of my many mods I'll get to one day (tm)
In my defense, I'm concurrently working on several different mods π
-# It's been so long since I played SV
Why am I getting an error version of the helmet in the mail?
https://smapi.io/json/content-patcher/ad50cd2e4c824825b8b69e31d3017b8c
hats are (H) not (O)
you also need the qualifier in your shop entries because they default to (O)jects if not specified
ugh
"Id": "(H){{ModId}}_BlackHelmet",
right?
(the Id field does nothing but identify that shop entry)
all entries in Data/Hats are being created as hats. you need to add the prefix when referencing item IDs in contexts that are ambiguous and may or may not be hats
like how you shouldn't add (O) in the keys of Data/Objects
How much mental and physical damage will i take from even thinking of trying to add a turn based combat grid into the game
It's not fair sebastian is the only one who gets to play games
definitely sounds like a ton of C#
I can't think of any ways I'd make it without C#..
Oh god i would need to make a board game type map too
Urgh
Maybe i should just go back to working on the mod i initially was instead of... This isn't even scope creep this is me coming up with a completely different idea that is about 100 times larger in scale
To apply Alternative Textures to immersive scarecrows and sprinklers, I spawn a copy of the thing at tile 10000,10000 then make Alternative Textures think that I clicked on that tile with the paint bucket, then after the Alternative Textures menu closes, I remove the object from 10000,10000. Somehow this works π
Do you mean like a game you can play within the game? Like how Junimo Kart and Prairier King are games? or do you mean overriding the combat system entirely
Either way it's actually probably not that THAT difficult if you just make your own IMinigame. Definitely lots of C# though
(which is what I planned to do for my own turn based combat overhaul that I shelved a bit ago)
(as promised I have finished the flavored item tutorial: https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_New_Machines_(Or_New_Rules_To_Existing_Machines)#Output_item_flavored_after_the_input)
(please enjoy the esoteric and inescrutable wall of text explaining how everything works)
i love inscrutable explanations
A secret third thing, it's separate from the arcade machines or the combat itself. I had a (maybe bad) idea to recreate a game inside stardew just for fun, and the combat system in that game uses a grid for its combat. I haven't really figured out how any of this would work, even in the slightest outside of the non-combat elements, but the basic idea would be you press a button (or a map tile) and it brings you to the battle map.
I guess a minigame would work for this? Where you'd have something akin to chess pieces on the grid, and be able to move them around and use skills
That is exactly how Junimo Kart and Prairie King work
So it is the secret first thing /lh
an IMinigame class is very very DIY for better or for worse. You basically control everything that happens on the screen however you want
That does mean you would have to essentially make the whole game yourself, but it also means that you can just... make the whole game yourself largely the same as you would if you weren't doing it in stardew, except for the actual methods you use to draw and load textures
I also would be concerned about how saving would work, since in the game it's possible to save mid-battle.
Outside battle, the player would be "in the game world" and the game wouldn't progress unless the player specifically advanced to the next section, (basically a safe zone)
"very very DIY for better or for worse"
How saving works depends on how you make it work 
You can do ~anything~
hm, scary..
Well, I don't exactly plan on working on this massive project right now, but it's good to at least know "cursed diy minigame" will be what i need to look at
I made an entire NES emulator in an IMinigame for a mod so I wouldn't worry about limitations here, as long as you know C# to do it to begin with
I'll have to learn how to C# from scratch haha
Which is much easier when there is an end foal to be motivated for 
