#making-mods-general
1 messages ยท Page 594 of 1
governor died
I had noted down a bug last night where sometimes when handing Darkrai a bouquet, sometimes it shows this instead of the rejection dialogue I set
!json
!json
sadness
:(
:(
:(
:(
ah yeah there's like a bunch of bouquet rejection lines.
you might have to cover all your bases
Dang. Annoying but workable
who put the shorts in the pot, Governor we need you ๐
{ "LogName": "Add Toshinori to 10 heart group event; rabbits foot",
"Action": "EditData",
"Target": "Data/Events/Saloon",
"Entries": {"195099/f Shane 2500/f Sebastian 2500/f Sam 2500/f Harvey 2500/f Alex 2500/f Toshinori 2500/f Elliott 2500/o Abigail/o Penny/o Leah/o Emily/o Maru/o Haley/o Shane/o Harvey/o Sebastian/o Sam/o Elliott/o Alex/o Toshinori/e 911526/e 528052/e 9581348/e 43/e 384882/e 233104/e 661700007/i 446/k 195013": "playful/-1000 -1000/farmer 27 19 1 Sam 36 20 1 Sebastian 37 19 2 Harvey 39 19 2 Shane 40 17 2 Elliott 41 19 2 Alex 42 20 3 Toshinori 42 22 3/animate Shane false true 200 20 20 20 20 20 20 20 20 20 20 21 22 23 24 24 24 24 23 22 21 20 20 20 20/pause 1000/message \"For some reason, you decide to place your hand in your pocket... to check if the mod is working\"/pause 500/message \"You touch the rabbit's foot, and feel a sense of relief...\"/move farmer 5 0 1 true/viewport 37 19 true/move false/pause 500/faceDirection Sam 3 true/faceDirection Elliott 3 true/faceDirection Harvey 3 true/faceDirection Alex 3 true/faceDirection Toshinori 3 true/faceDirection Shane 3 true/faceDirection Sebastian 3 true/textAboveHead Sam \"Hey!\"/textAboveHead Alex \"What's up?\"/textAboveHead Shane \"Oh, hey\"/pause 2000/move farmer 3 0 1/emote farmer 32/pause 500/speak Harvey \"You showed up just in time for the first ever Pelican Town 8-ball tournament!\"/pause 500/speak Elliott \"Don't worry, I've never played before, either.$h\"/pause 500/speak Shane \"It's easy, you just gotta put some mustard on the cue ball...$h\"/pause 500/fade/viewport -1000 -1000/pause 1500/message \"You played a round of pool with the boys.\"/pause 1000/message \"Sebastian won, of course... but it was still a lot of fun!\"/pause 500/end"}```
Starting with the rabbits foot one cause it's easier, i slapped him in there with the other ones, followed the format, but it only works if I *dont* put in the prerequesits so the "f Toshinori 2500", "o Toshonori", "e 661700007"
I've tried with the new updated proper ones too, doesn't work. My next try was going to be a when statement, but that is harder than i thought and I assumed it wouldn't show up anyway because then "when" wouldn't override the OG  i don't think, idk, i'm just a little guy
If this doesn't work then it's actually cursed 
is there any token for the farmers name? i am not able to find one on https://stardewvalleywiki.com/Modding:Tokenizable_strings
I DIDNT THINK IT ACTUALLY WOULDN'T WORK WHAT-
How big is your house
For what context? if you're doing dialogue you can usually use "@"
im trying to parse some strings in my C# mod
So what do I do if adding every single entry doesn't work? 
I assume you have him toggled on as datable in his NPC Dispositions character creation thing?
"CanBeRomanced":true,
Nope, cuz he isn't supposed to be but is supposed to have dialogue for trying to give him a bouquet
it be like that sometimes ๐ happened to me too
Ah, maybe something with the generic strings then...? You said it did work though, right? Like not every time but
Here's the intended exchange, which triggers sometimes
Indeed. It feels like completely random when it triggers
That's because it is, it's a 50% chance to get the generic dialogue instead.
BRO THAT'S SO LAME
Is there a way I can make it always trigger? Cuz this dialogue is tied to learning one of his loved gifts (and also the existence of Bouquet Ashes)
You can conditionally edit Strings/StringsFromCSFiles:NPC.cs.3955 when you're in Darkrai's location if you're sure there's not gonna be any other NPC in there, but it'll still just be the same kind of messgae box and not dialogue.
No.
(Not without C#)
Literally why 
Like I'm not even mad at this point I'm just curious
Because it's a 50% chance to get the generic dialogue
It's literally just flipping a coin to decide which dialogue to use, the generic or one of the other ones.
Why would it be coded like that I mean
Maybe I just wouldn't get it cuz I never date anyone in stardew
I don't think I've ever seen these dialogues in game
atp I just find it funny 
hello all. i'm working on a dialogue mod (using json files) and i need some help. i want to make it so that the player can use generic mod config menu to choose a certain title to go by (farmer, florist, brewer, etc) but i'm new to modding so i'm lost as to how to do so.
Anyway I wont worry about it then. It's not like it's Darkrai's only loved gift, and they'll also learn about it in one of the final bundles
any help would be appreciated ๐
thank you! i didn't know this existed
check out the other documentation as well super helpful for making content patcher mods
you'd basically want something like this in your main content.json
"ConfigSchema": {
"FarmerTitle": {
"AllowBlank": false,
"Default": "Farmer"
}
},```
and then use `{{FarmerTitle}}` in dialogue where needed
oh, and if capitalization needs to vary, I think you can use [CapitalizeFirstLetter {{FarmerTitle}}] at the start of sentences and such (and assume it's lower-case otherwise)
https://stardewvalleywiki.com/Modding:Tokenizable_strings
that's a helpful tip! i was thinking about that for the start of sentences so this is also necessary
(i am also learning, thank you Esca
)
(make sure the place you're doing this supports tokenizable strings)
(notably, mail does not)
Yeah mail doesn't, for one
i feel like i could get a good sandstorm like outcome if i added sandly color clouds into the screen, and have them be partially dispersed by the light area
sand is annoying in games and irl 
(yeah, I figured token strings would work in dialogue, but I'm not familiar with what checks it)
#making-mods-general message
this is a very rough list of what supports tokenizable strings
it obv does not go into detail about what specific parts of these assets support it and which dont tho bc i was lazy at the time
well if it isn't a claire
Happy birthday!
happy belated birthday claire 
The funny thing is, my birthday just passed by a few days ago (boooo iro) 
So Iโll apply the greetings retroactively 
happy birfth
R U SRS
happy birthday claire 
huh did my message fail
a very belated happy bday to u 
apparently my event's skip actions aren't working 
Maybe I just make this one event unskippable just cuz it does like several things
How do buff durations work? I decided to put buffs on some of my food items so everything isn't just +health and +stamina, but when I went to give a buff 120 for the duration, it doesn't last for 120 seconds. Kinda driving me nuts that most buffs have weird durations and I want to do a whole new mod that makes everything last for less insane times, like 12 minutes instead of 11 minutes and 41 seconds for example.
Why does it say Darkrai is on the farm??
I actually should not be testing things with my mood today..
cuz Bug Fixing is not something I'm in the mood for 
That sprite is so detailed tf ๐๐ซก /pos
It's just the PMD sprite, don't credit me 
Uhhhhh... I don't quite recognize that abbrev ๐๐
Pokemon Mystery Dungeon
are you testing with UIIS2 installed and no NPC Map Locations? cause UIIS2 can do this
Ohhhh okay yeah
In that case I wont worry about it, unless there's a super easy fix
I think tomorrow I just need to pick something to work on and work on that exclusively until it's finished. Because wow today has been a mess
Does anyone know if actions work with the $c dialogue command? Like does the mail in
"Mon": "$c 0.5#Thanks!#Thank you!#$action AddMail Current {{ModId}}_M1",
get sent out regardless of which dialogue appears, or will it only work if the second dialogue gets chosen?
Edit: aight did some testing with this dialogue:
"Mon": "$c 0.5#Thanks!#Thank you!#$action AddItem 591",
If the first dialogue is chosen, no item is received. If the second is chosen, the item is received.
On the other hand:
"Mon": "$c 0.5#Thanks!#$action AddItem 421#Thank you!#$action AddItem 591",
If the first dialogue is chosen, then item 421 is received. If the second item is chosen, both items 421 and 591 will be received.
So I guess the tl;dr is 'no, actions don't work well with the $c command' in case anyone else is searching for this. Though I guess you can have the player double receive a mail using the second method if that's what you're going for instead
duration is in milliseconds, so 120 seconds = 120000, etc (or the magic value -2 to last a full day)
https://stardewvalleywiki.com/Modding:Buffs
Oh, I overlooked that. That's gonna drive me nuts, but I'm now motivated to "fix" the buffs so they all last for exact minutes. Just gotta do a lot of number crunching it seems lol. Thanks.
more generally, some things run on game logic ticks or frames, which will be a lot less clean than the few things that check actual time (buffs, npc/monster movement in some cases, etc)
most often indirectly by checking the in-game time, ig
Is there a debug command to show what mail flags you currently have?
patch summary, maybe?
patch parse {{HasFlag}}
EMP also has emp mail (iirc) if you need to know which state they're in
https://www.nexusmods.com/stardewvalley/mods/9296
Using PeliQ, how would you have a shop add a flag when an item is purchased?
Really, I just need to add a flag without sending a letter
probably ActionsOnPurchase + the AddMail action
https://stardewvalleywiki.com/Modding:Shops
https://stardewvalleywiki.com/Modding:Trigger_actions
That's what I'm currently doing, but it results in the player receiving a blank letter
Do you know if this is possible for a cabin fireplace? I'm trying to figure how to turn off smoke from a trailer cabin that doesn't have a chimney (by design, if I can turn off the smoke).
I'm not sure why that would happen even if there's no entry in Data/Mail, but you can set it to received with the optional argument in its description
So it'd be AddMail Current <Flag> received?
Got it
In theory, yes? You'd just have to null the ChimneyPosition for both Cabin and the Trailer Cabin skin's metadata
As each cabin seems to set its own custom ChimneyPosition in the skin's metadata, it might even not impact the other cabin types, but I am not certain.
(This happens because the mailbox TAS doesnt check if there's an entry. It checks if there is something in the farmers mailbox. Modders responsibility to not put non-existent things in the mailbox instead of mailReceived)
i just found out one of my schedules aint working and idk why 
why do i keep finding broken shit when i am doing soemthing else
: โจ magic
so what i wanna know is what exactly is making Constance void walk in this schedule point...32 34 is free to walk to
615 Beach 32 34 2 \"Characters\\Dialogue\\{{ModID}}_TheFishmonger:{{ModID}}_constance.squidfest.000\"/
Is this on a fresh save, Void?
Ok that sounds promising. I've found ChimneyPosition on the wiki and understand this is likely an EditData change, but my experience hasn't gotten this advanced. It sounds like Metadata is in the save file too (?). Any suggested structure?
Metadata is the name of a field in the Data/Buildings entry, nothing to do with the save file.
i found the issue, siiiigh. for some reason the face direction was gone, but i swear i had it last time because i tested this damn schedule OTL
Thank you - That's the page I'm on, but it's not forming concepts in my brain yet. My data/buildings file (unpacked) doesn't have cabins or metadata mentioned. I'm clearly missing something (likely) obvious. -- oh wait, I found it. Search is not helpful on these files.
It's definitely in there
man, i should fix her fishing sprite...her hands doing a lil magic trick detaching from her arms and all
Yes found cabin and metadata now - searching within the file is not accurate apparently. Thank you!
OMG ITS FINALLY MOSTLY WORKING!!!
Would it be possible to provide both "received" and "now" to this? AddMail Current <Flag> received now?
not in a single action use, but ActionsOnPurchase takes multiple actions, for example
"ActionsOnPurchase": [
"AddMail Current flag now",
"AddMail Current flag received"
]```
or some such
though there's usually not a reason to worry about multiple mail states at once
What's the intended use case for applying both, out of curiosity? I'm just having trouble picturing why you'd want to do that because received skips the mailbox and now adds it to the mailbox.
For whatever reason, it isn't adding the flag until I've slept
will this work? i want to make it so that the event only plays when the config token is NOT Joja
Don't you need to prepend it with query:?
no clue
Is Tilly's Route the name of one of your config options?
yes
Looks right to me (I usually do it without the spaces)
then you shouldn't need to prepend it with query IIRC
Query is not required for that
great!! thank you guys
Yall, I just realized there is like a 0% chance that the mod I'm working on will work in multiplayer ๐คฃ
That depends on if your conditions rely on checking the host for flags rather than the Current Player. ๐
Well, here's the thing I'm just beginning to realize. Of the 5 or 6 powers this mod adds, only about half of them know who's calling them ๐คฃ
Would looking at data from the Host in C# default to the player in a singleplayer game?
I've never played multiplayer stardew ๐
I'm pretty sure it'll be the player in singleplayer yeah, since they created the world I'm assuming they're considered the "host" (I don't know for sure but idk why it wouldnt)
Setting the mailbox to received will already immediately add it to the farmers list of mail flags, it doesn't require sleeping. The default is tomorrow if you don't specify it, which will only add the flag to the mailbox the next morning. Setting it to now will put a blank letter in their mailbox again.
(tomorrow also puts a blank letter in the mailbox)
(assuming you still don't have a Data/mail entry)
Okay, so providing now does indeed send a blank letter, however without it, the flag isn't added until the next morning.
I wonder if it has something to do with PeliQ? Regardless, it isn't a huge deal ๐
If you do AddMail with the received mailbox, it is added immediately. Tokens and patches will not update until daystarted by default.
My cabin is still smoking. I'm getting an error for the building id, which I pulled from the Data/Buildings file. Is there a different way to refer to this building? Error text: {{Trailer Cabin}}' key is invalid: '{{Trailer Cabin}}' can't be used as a token because that token could not be found.
"LogName": "Disable Smoke Trailer Cabin",
"Action": "EditData",
"Target": "Data/Buildings",
"When": { "Use": "Trailer Cabin" },
"Entries": {
"{{Trailer Cabin}}": {
"ChimneyPosition": null }
}
},```
Okay so
through the power of searching, I did find an answer to my issue of not being able to edit the pre-conditions for a vanilla event. You have to Null the preconditions of the vanilla event first. (updating the 10-heart group event to add in a unique NPC)
However Nulling will probably cause issues if there's another person trying to add characters to the event, since they will need to null out their preconditions, but it's basically been "moved" via my mod. Is there any elegant way to account for that? it is just kinda of an SOL situation? 
that thing is under Metadata iirc
and u need to TargetFields into there like
Cabin > Skins > Trailer Cabin > Metadata > ChimneyPosition
I changed my target to this, but get the same error:
"Target": "Data/Buildings/Cabin/Skins/Trailer Cabin/Metadata/ChimneyPosition",
Yea that's what I thought ๐ either leave it alone or break it.... sooo I guess I'll just break it and have fun with it
๐
the Target is still just Data/Buildings
Why are you editing the preconditions if you're just adding in a new NPC?
also "When": { "Use": "Trailer Cabin" }, does nothing remove that
If it's the group event for having 10 hearts with all the datables of their gender, then the precondition would be to require also having 10 hearts with their custom NPC, I imagine
(I'm just guessing it's that event, it's the only one I can think of that fits "10 heart group event")
There'd technically be a way to change the preconditions while preserving the original event, but it's require marking the other two events as seen to make sure they don't show up instead, which may be undesired if other mods are checking whether you've seen that event for something
Maybe you'd be able to mark it seen on LocationChanged or something if you know it's about to play anyway
Can't you just null the event but very late
I'm loathe to mark it seen because what if someone like checks for it
How do you plan on getting other peoples edits to the event if you null it
That's why I suggest marking it seen only right before it plays naturally, to let yours play instead, if a locationchanged trigger action would do that quick enough
Because since event scripts are run through the tokenizable string parser, this is a totally valid event script:
"myEventId/GameStateQuery TRUE": "[LocalizedText \"Data/Events/HaleyHouse:195019/f Haley 2500/f Emily 2500/f Penny 2500/f Abigail 2500/f Leah 2500/f Maru 2500/o Abigail/o Penny/o Leah/o Emily/o Maru/o Haley/o Shane/o Harvey/o Sebastian/o Sam/o Elliott/o Alex/e 38/e 2123343/e 10/e 901756/e 54/e 15/i 446/k 195012\"]"
Some progress maybe - the error changed to this: [Content Patcher] Can't apply data patch "(CP) Farm Buildings - ES Meadow Farm Style > Disable Smoke Trailer Cabin" to Data/Buildings: the field 'Trailer Cabin' doesn't match an existing target. This is what I have for it now:
"LogName": "Disable Smoke Trailer Cabin",
"Action": "EditData",
"Target": "Data/Buildings",
"When": { "Use": "Trailer Cabin" },
"TargetField": [ "Trailer Cabin", "ChimneyPosition" ],
"Entries": {
"ChimneyPosition": null }
}, ```
This would grab the original event script with any other edits applied, but be attached to your own preconditions
Null it super duper late priority if your npc is not at 10 hearts
Edit the script with the event preconditions otherwise
you are missing the "Cabin" and "Skins" portions of the path
So still discarding other peoples edits?
im assuming this one's the vanilla cabin skin and not a custom thing
and u still need to remove "When": { "Use": "Trailer Cabin" },
Well. You're trying to add a precondition, right.
So you're trying to get it to not play in this one condition
I don't actually know if they also want to edit the event itself tbf
to clarify ur target field should be this
["Cabin", "Skins", "Trailer Cabin", "Metadata"]
Then use text operations hell to edit the event yourself and hope that doesnt break terribly :P
(it definitely will, if other people do the same)
(Unless you're only setting up a character)
They're trying to add a condition to when it plays, I think. Not just not get it to play in a condition
I do see what atra means though, if you null thme until your own condition applies then its efectively the same as adding a precondition
It'd be harder the other way around though (removing a precondition)
This is great though
Are tokenizable strings recursive?
ah I see
They are recursive
Well
Okay big asterisk there
If you put a tokenizable string inside a tokenizable string, i.e. [LocalizedText [CustomToken]] it will work
But in the above event script, since there is only one tk string to begin with, it gets replaced with the whole script, and unless the token parser is called again on the result, tkstrings that come about as a resulkt of that remain unparsed
What if I have [LocalizedText blah] where blah is [LocalizedText Mrep]
So this little hacky workaround probably won't work in 1.7 (or 1.6.16, i forget which merges all the localizxed events into one)
Ah ok I see now. Alright, I have that corrected and no longer get a smapi error. But she still be smokin'.
did u reload game
Well, maybe you can convince Pathos to make token parsing recursive
do patch export Data/Buildings and see what it says
There is a chance I'm wrong and it would actually work, it's been a while since I tested it
So I would only ask when I've made sure I'm not being an idiot ๐
But I don't think it'd work
This is for the boys, but ๐ so you're saying, mark the OG vanilla one as seen, so it doesn't show and then make a "new" event which is basically the same event but with my preconditions?
Wouldn't that still mess with other people that might be trying to add their own NPC's into that event?
Anyone know if this is include/include exclude/exclude, or is it include/exclude include/exclude
I did a patch reload not a full shut down and restart the game. I did the patch export and it has this:
"Id": "Trailer Cabin",
"Name": "[LocalizedText Strings\\Buildings:Cabin_Name]",
"NameForGeneralType": null,
"Description": "[LocalizedText Strings\\Buildings:Cabin_Description]",
"Texture": "Buildings\\Trailer Cabin",
"Condition": null,
"BuildDays": null,
"BuildCost": null,
"BuildMaterials": null,
"ShowAsSeparateConstructionEntry": false,
"Metadata": {}
}```
I'm restarting the game now to try that.
If they added it via fancy textoperations to the original one, this way would still perfectly preserve their edits. That said, I would actually go with atra/working towards self sufficiency's method here
And i do, I'm adding in a character to the event. And I need his Pre-conditions added in, but the event won't register any edits to the precondition, unless it's nulled
If you are not using fancy text operations to add your character into the event itself, and are just editing it with Entries and overwriting the whole script, the point is moot bc you're already ruining peoples edits and might as well null the whole thing out
Button I've written toooooo much stupid code to handle environment variables at work lately I'm loopy
I don't think anybody adding their NPCs to that specific event would work very well compatibility-wise if they want the precondition.
You should write SQL for a stardew mod instead
like they're gonna have to have the same fight you are here
yea, I am using entries and not fancy text operations. But fancy text operations wouldn't work here either, would they?
can you use fancy text operations to target the pre-condtions?
If everyone else adding to that event also did atra's null method then they'd all work together
Not the preconditions, the event itself
atra?
I like getting paid thanks
You can edit individual fields of an event script with text operations (or Fields but mostly people use textoperations)
working towards self sufficiency = atra
during the 1.6 modpocalypse mitigation, I was effectively doing PowerBI to analyze what mods were having problems and what were the most common problems
^this is atra
atravita
Atra of the Temp Gimmick Username
You're already going to be fighting SVE over it, I imagine
Okay yea, that wouldn't work then. Since if the player wasn't 10 hearts, dating, or hasn't seen their 10 heart event, they would stil get the event with all bachelors, even though they haven't techincially met the conditions, and I know someone, somewhere, is going to make a bug report about it on the mod ๐
I'm not talking about the preconditions here
I am talking about how you are changing the event itself
I was just editing the whole thing as is.
If you are just re-including the entire original script itself then that will always potentially break peoples edits regardless, so there is no point in worrying about how to maintain the same original preconditions, you can jsut null it out because compatibility is already out the window
This is what i had before I nulled out the pre-conditions
that make sense
sorry i've been spending hours on this ๐ trying to get it to work and seeing if there were any better ways to do it
But thank you 
...I think SVE just has a version of the event that happens if you happen to be dating the added NPCs, if I am reading this correctly
(SVE being the first thing I look at when I think "is this compatibility going to be a Thing or what)
i thought they just had their own events
I mean I could just leave it out too 
it'll beee fiinneeeee, if I see a lot of complaints about it, I'll just remove it
(I just tested it and sadly, I am correct, token parsing does not work recursively in that way)
No this is the 195019 ID, this is a version of the event that shows up if you are dating Claire, Olivia, and Sophia
Same ID, different preconditions
It probably could be recursively done if you just keep checking "does the string still have [ && is the string not equal to the last time we tried parsing"
in a while loop
They do also have a different confrontation event if you try to date Victor and Olivia at once
which you might be thinking of
please note that I mentioned you will need to null both the Trailer Cabin AND the actual base Cabin for the smoke to potentially go away, because that's how the farmhouse had to handle it. (nulling only the skin's ChimneyPosition makes it default to the base Cabin's ChimneyPosition rather than actually nulling it)
How do I add pool/cave steam effect to a map c# free?
MMAP
For the ChimneyPosition issue, you will need a second patch that uses the Target Field for ["Cabin", "Metadata"] instead to make sure you are hitting the base cabin also.
I have this in now, but still smoking. I was looking at the Chimney Position upgrade level on the wiki and tried that but nothing changed.
"LogName": "Disable Smoke Trailer Cabin",
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [ "Cabin", "Skins", "Trailer Cabin", "Metadata" ],
"Entries": {
"ChimneyPosition": "null" }
},
{
"LogName": "Disable Smoke Cabin",
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [ "Cabin", "Metadata" ],
"Entries": {
"ChimneyPosition": "null" }
},```
I also tried changing to coordinates instead of null, and the smoke location didn't change at all when I did that.
Just to confirm are you reloading your save when you make these changes? The ChimneySmoke in particular doesn't seem to redraw until you reload, so using patch reload by itself isn't necessarily gonna help here.
I'm doing a patch reload mostly though I did restart a couple of tries ago.
But that was before putting in the Cabin version.
My Farmhouse Variants skin mod has a known issue in bold letters that tells people to reload their save to see the smoke changes, specifically because of the weird quirk of the smoke not changing position according to the entry until the save is loaded again.
I saw that - I will restart now and see. Thank you!
It's working!!!! as in, it's no longer smoking!!! @latent mauve @lucid iron thank you thank you. For your patience and teaching, I truly thank you.
My default cabin isn't smoking either. But I am OK with that ๐
Er I spoke too soon - default cabin is smoking but about half a cabin to the left. Huh...I will have to examine that.
u have to bonk the Metadata on the default cabin too prob
(based on their code block, it looks like they did bonk the default cabin's metadata, chu)
Not sure why it'd be moved but not gone unless you forgot to change it back to null after testing the swap of the coordinates though
all includes go in the first argument, then a space, then all excludes
spawnGroupId location all/includes/here all/excludes/here
e.g. spawnGroupId location 0,0,5,5/20,20,5,5 1,1,3,3/21,21,3,3 should spawn things in two hollow rectangles from 0,0-4,4 and 20,20-24,24 (assuming I'm writing that correctly)
Thank you, that's what I thought was the case but I've got more than one thing potentially going wrong so testing wasn't helping lol
Ya it does seem a little random. But progress is progress!
Hi there, as it is keeping me awake right now could anyone be bothered to look into my crafting issue withing modded tech support? 
Please wait patiently for a volunteer there, there's no need to ask this in multiple channels.
well, yes 
I am sorry, just been biting that nail for a week now myself and every time it comes up I have a hard time sleeping because of being lost in thoughts ๐
Fully my issue, but I figured I can't fix it without some help
@loud sandal i merged your PR and did a lil cleanup, more importantly I added MinTargetCount to go with MaxTargetCount so if u want a non random count you want to set MinTargetCount only
Hi, i was told this was the channel to go toโ
(Context, I just started conquering my fear of computer jargon yesterday)
Trying to make a simple sprite recolor mod. Made some edits in Pixel Studio. Saved them as pngs, put those into the smapi json validator, andโฆnothing. Tried a random online json converter. Nothing.
please point out what Iโm missing here, Iโm sure itโs something foolish but I will appreciate you forever
what you're missing is that you don't need to convert your images to json. you need to have a few json files as well in order to tell content patcher what to do with your .png images
!startmodding the first links here about content packs are good reading to start with. you'll need a handful of files inside a folder in order to construct a working content patcher pack
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.
to wit, you make a folder named whatever you please, which will contain your mod. e.g. Sillyboy's Sprite Recolors.
inside that you need a file called manifest.json, which will tell SMAPI about the mod, and also a file called content.json, which gives Content Patcher your instructions about which game assets to replace with your versions. and lastly you'll need your pngs
I do have these files, and I followed the formatting with I'm pretty sure the correct commands. I just put the pngs in the general mod folder and reference them for the assets/png_name line, right? or do I do another thing with them? (also thank you for helping me)
sounds like you mostly have it. you can organize the files in your mod however you please; it is customary to have an interior folder called assets, but it is not required. what matters is that your FromFile values match the file paths in your mod folder
but since it isn't working, can you start by showing your mod folder's contents? (a screenshot of the folder should suffice)
ah, yes
ok there is an option you should turn on now in your file explorer. i think it's in the View menu and it should be called something like "filename extensions"
the first problem here is that your json files are called content.json.txt and manifest.json.txt, so SMAPI is not loading your mod
when the .txt extension is visible in your file list, rename the files and remove that part. windows will probably warn you about changing the file type, but say OK and allow the rename
ahhh okay yes I did that and it changed the error message when I tried to run it again. manifest is invalid now
... well i managed to make a dust trail
You need to save the file first (I'm fairly certain that circle icon means you have unsaved changes)
You sure it's a dust trail? ๐ญ
its more like a racecar dust trail lol
Yeah..
I thought it was seaweed
the second problem here is that your FromFile values should include the .png filename extension. e.g. "assets/BabyGirl.png"
Wow you did a good job with it, I like what you did how there's like a range instead of a ceiling and the validation for when MinTargetCount > MaxTargetCount it doesn't fail outright, it it normalizes MaxTargetCount up to MinTargetCount.
With the Random.Shared.Next(MinTargetCount, MaxTargetCount) does that include the max or just the values up to max?
(but we'll get to that when the manifest is sorted out)
I think it's max inclusive? Forgor tbh
random.next i believe includes min but excludes max
I wasn't sure how Next(Int32, Int32) returns a random integer within a specified range
Jk it says exclusive
e.g. Random.Next(4) gives one of 0, 1, 2, 3
ok progress! no more error message, but doesn't appear to actually be working in game
wait let me make sure changes were saved and try again
Ok cool, I'll keep it in mind then, looks good!!
Thanks for being so quick with it, now I can work on my trinkets hahaha
rats, still didnt work
The other thing I was gonna do is improve the tile picking ability args
Maybe I'll add a grass planting ability 4 fun 
i think i've noticed CP itself using inclusive min and max random for its bounds when specified
Oh that would be awesome!
!log okay next step is to upload a SMAPI log.
close and reload your game, play enough that you should be seeing your texture, then follow link instructions and paste the resulting link here so we can see what's going on
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnโt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
How would a C# mod check the Stats of the player and/or the Stats of the host if in multiplayer?
Isn't that cus cp is actually choosefrom sort of rand
you can't reliably check stats for other players since they aren't synced
So ofc it'd include all members of the set
i may also be thinking of SDV in one or other of the data models with a min-max range, like forage spawns or something
CP is just choosin from a list yeah
I'm not trying to do that. I want this mod to only look at the host player when in multiplayer.
anyway i use random(min, max + 1) when giving min-max as a data model
as you should ๐โโ๏ธ
as chu should ๐โโ๏ธ
Smh
at least chu doesnt load textures in the draw call
I think I already chose exclusive for a lot of other things though
what ichortower said still applies
sinz (renowned performant mod author) backs me up and that's all i need
The host is still a farmer that needs to be synced to the farmhands
But i probably never noticed cus it was randoming on a float or a double
each player only has reliable access to their own stats; in theory you can sync them by other means (multiplayer messages, mod data, etc), but it's not available on demand
it surely cant be better than having the load done once outside the draw. i know its not the worst bc of the cache, but still!
I can probably better explain what I'm trying to do tomorrow (It's very late rn ๐ )
i can only imagine it's a method call and a dictionary access further removed from just holding the cached instance yourself
New quote added by atravita as #7928 (https://discordapp.com/channels/137344473976799233/156109690059751424/1495970923084386305)
every cpu cycle counts
Well, also smapi asset name normalization
We love all our cpu cycles equally
they hated jesus because he told the truth
Except the ones I kill by going time.sleep(1)
Button u drew the world twice i think blueberry can get a pass
Feasibly, could someone use a stat increment to set a mailflag on the host player and then check that?
Oui
Or would it run into the same sync issue
Yeah, but the second world I'm drawing is just a single texture
When did u draw world twice
It's for shader stuff atra
Agromancy
Oh
I needed the world to be blurred and grayscale
you don't get a say after mirror mode
hmmmm, what do you guys think of a boss kinda like moldorm from a link to the past as a concept in stardew 
Mirror Mode doesn't redraw anything
I see shader i run in the opposite direction as quickly as I can
I don't think there's a single draw call in mirror mode
I'm pretty fast so this is some distance
surely mirror mode uses cpu cycles all the same
Surely all game uses cpu cycle
like the clappers, i'd assume
(Disclaimer: I've not looked at Mirror Mode's original code in a while. But most of its mirroring is done entirely by just editing the assets themselves to be mirrored)
nightshade adds multiple full-screen draw calls per frame and i explain them all upfront in the mod description. none of us is free of sin
It might turn on spriteeffects.fliphorizontally for some things
We must save the cycles for the important stuff, like doing lots of math for electronic money
It's different when you cannot feasibly avoid using cycles. But Load() inside a draw...
cardinal sin
Make a boss framework so I can use it 
We are all sinners.
๐
short of detecting stat increment calls on the host, it'd still have the issue of not being immediately available on the same tick (probably), but that'd work fast enough for most purposes
Mirror mode uses 0 cpu cycles and 100 selcyc upc
You'd have to be the one controlling the stat increment though
stat sync is mainly an issue of a) deciding how to do it, b) not expecting it to be available and accurate without delay
And have it be something that can also do the mail at the same time
Like, you can't react otherwise to, say, EggsHatched being incremented
(I blame stepsTaken for it not just being a net field)
(bad example perhaps as thats an overnight thing. stepsTaken then)
lol, im not really sure how i would do that. it would kinda just be a boss where it has like 3 hp with long iframes and the player can only do one damage at a time, and also melee only 
We need like a hot path stats and slow path stats
idk, but the concept of a boss is super cool
It's only one 64 bit value per tick smh
And only sync when slow path updooted
That isn't too bad. Have u seen how directions are synced
Haha yeah ikr, the scope creep is insane, I wish I had the time to do it
i thought about doing a monsters framework but i thought better of it in the end ๐
every little bit helps cause that steam server error about too much data
I assumed fire was having the farmhand tell the host to set a mailflag
This is fine. This is specifically synced
Out of the people currently here I think chu is the most qualified to make a monsters framework
Smh. This is what batching is for
im still stuck trying to do the maps for my mods
they're so massive with a lot of systems that its taking forever
yeah, setting a flag on the host would work, but afaik it's just not available at like a same-tick pace
but ig that's true in a lot of net field refs, really
Presumably though, the reason its stats is because a mail flag wouldnt suffice in the first place
Meh, you'll not notice three ticks
This may be an incorrect presumption
I'll help chu if it happens lol
how does one even make a framework
With C#
C# and making assets that tell it what to do, the way SDV itself does
make a C# mod and give mod authors a way to put data in it
(or similar methods etc)
What does a mod do?
Tell us to stop being off topic
As long as you accept the content pipeline and let people edit your assets, you're golden
"We're going up up up...."
ps now that I recall what I'm thinking of, I'm picky about stats due to briefly trying to make them sync for my CP stat token
and I don't trust any method to make that make sense, so it's just local-only
I still think you woulda been justified to ignore stepsTaken for that token 
probably 
I think there was one other spammy one, but it'd probably work, I just didn't want to think about it more
I can't think of any reason why someone would want to use that stat as a token anyway
Smh what if Runescape agility skill
I did a stats mod just coz I wanted to see my stats change in real time based on what is equipped and that's just purely local Game1.player
I don't get it
inventory item pedometer, ig
That wouldnt work anyway!
with, uh, warp updates
Inventory item pedometer but IRL
Use the Google fit API
yeah, those would make 1000% more sense for anything with text
Or pedometer item descriptions 
Your edit makes me look silly now
Hope you're happy
Anyeays
I'm retroactively accurate with my phrasing
That's my favourite kind of accurate
Someone should make an actual in game agility skill based off of irl steps taken
New quote added by spiderbuttons as #7929 (https://discordapp.com/channels/137344473976799233/156109690059751424/1495975020847960155)
anyway iirc I just added the stat token as part of a goal of "let CP do math" and lost track of practicality
(better, I mean) (with variables)
Plz shake ur phone for stardew and not just Pokรฉmon go to the polls
Maybe if there was an API for it that didnt cost a billion dollars I assume
Also no one wants to have to ask nexus for permission to upload their mod
okay I went and ran this, updated a bunch of stuff it said was out of date, and then saw this. so. the issue is the pixel art itself. how do i go about fixing this? is there a place that can show me the limitations of the area/how to read the dimensions it laid out here, yk what i mean?
Does Health Connect cost money?
I think it'd be easier to hook up a wii fit board to your mod
oh, your image is too big. looks like you saved it at 3x?
you'll need to keep it at the original pixel scale. 88 pixels wide by (presumably) 192 pixels high
My attempts to get people to touch grass are often not successful
Possibly vrcsuse I keep touching ants or wasps
Wow goofy mistake. Out of everything Iโve done heh
But it WORKED
THANK YOU THANK YOUUUU im so very happy and i would never ever have been able to figure that out without you thank you
And also thank you for being so patient and likeโฆbeginner friendly heh
sure thing! that's what we're here for 
(and also complaining about loading textures in the draw call, and wii fit boards, and so on)
:))))
โ certified performant pattern
I'll file a complaint to the certification board
i never once complained about you doing this. i was making fun of button just now
in truth i've only done it for two half-baked features in an unreleased half-baked mod as a shortcut to testing if it even works. but i stand by it all the same
Smh u of all people should know better. 30 minutes at 425F with the lid on, 25 minutes at 375 with the lid off. Add ice, and dont be afraid to be mean to the dough
Are we making bread..?
using the word bake in any context gets you conscripted into bread-making 
๐ณ๏ธโ๐
Does it support making them different parts of the prismatic colour set from each other
So they aren't always identically prismatic
only for multicolored items
multicoloured items my beloved
this may or may not be sneak peek into Cloth and Colors's next version
Blueberry is the one who loves french cooking
Never thought that nights in SVE look that deep fried before trying Gentle night Lighting
you call it deep fried, but Iโd call it vibrant ๐
Not sure where to ask for help figuring out mod features so I'm just gonna put this here
In SVE's frontier farm, how do I get Robin to build/move buildings on the frontier land section? And is it possible to move buildings between the farm sections? I've been looking around for a while but I can't seem to figure it out
That question is more suited for #modded-stardew but I believe the frontier section shows up in robinโs menu (not sure about moving buildings)
Do you still gain Mastery Exp from Farming even if it's via Auto-Grabber? I can't keep track of my Exp increase, but I'm sure I haven't harvested nor petted my livestock (I use Auto-Petter), but something's causing it to increase (Mastery Exp).
I checked behind the codes, specifically the save file, and I notice my Farming skill goes up by the day, which led me to this assumption.
I feel like you would gain exp from collection
At least, it would make sense
Collection? Wdym by that?
did you give it a 1x1 object size?
What topics would I look up to make my own compatibility patch where various NPCs refer to Ayeisha instead of Marnie as the person who brought the new pet to the door?
This thing officially hates meeeee. I did everything from scratch this time and it still isn't loading.
https://smapi.io/log/2de85437328e40f58c35311973aa7617
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 24 C# mods and 8 content packs.
Your tilesheet path is wrong (again)
I assume it's because you're missing the proper path as to wherever the tilesheet was loaded to initially
Rightt okay. So what does that mean, exactly?
So smapi is saying it can't find the tilesheet, and therefore your map won't load
Check whatever the tilesheet mod loaded the tilesheet to
64273005 is the EventId for cats and 64273006 is the EventId for dogs, they do not set a conversation topic for these event I believe. They do for rejecting the pet, PetRejectionAyeisha. You can have NPCs talk about the event with eventSeen_(Id).
The map will need to look for a tilesheet that actually exists in the game, but it looks like you have it as the wrong name
You can rename the asset my opening the tmx in a text editor
Thanks!
Although it then might not open so well in tiled if the asset name is different to what it's actually loaded to in-game (so just rename the asset itself when you need to work on it)
No problem, hope it works 
Okie dokie. I will go try changing the names now (I have absolutely no clue what to rename it though, So I'll just try random things)
I am having troubles again- How do I get the messages to pop up when I interact with items in my npcs house? All that pops up when I interact with it is something to do with strings? Maps strings, I think. I forgot to get a photo-
Buildings Action Message <string messageKey> Loads a message with the given key from the Content\Strings\StringsFromMaps.xnb file and displays it in a dialogue box.
which is an editdata action on "Target": "Strings/StringsFromMaps", with whatever keys you made in your tmx
I'm really sorry, but I'm still confused. Could you explain in a different way?
You can try checking from here!
#making-mods-general message
lily explained to me how to do a strings from map entry which you can then use on your tmx (+i18n)
Ooh cool! Thank you!
{
"Action": "EditData",
"Target": "Strings/StringsFromMaps",
"Entries": {
"YourStringKey": "Your text here or your {{i18n:}} token"
},```
then you do an `Action Message "YourStringKey"`
Like this-? I'm kinda just making this up as I go-
halfway there!
now you need to add the strings to the actual maps
Rightt okay- So what part do I add?
you can open your TMX and add a TileData item on the purple Buildings layer over a Buildings tile, then in the map properties, you want to have an Action Message "YourStringKey"
so for example, Action Message "FamiliarPlush"
i can't remember if you need the quotations i feel like no
but i genuinely cannot rmb
it might be easier to look at an existing map, you can open any vanilla map
So like this?
yes
again cant remember if quotes are needed or not
so
test with and without xd
(or look at any other map)
Needed
wem, I'm doing an update to Ayeisha and can add TIlly to the love token event delivery that I Ayeisha does if it's something TIlly would do. Main question is what item would you like her to give? (usually gems/food/flower)
sorry I'm not familiar with Ayeisha, what is the love token event delivery? 
OHH postal
i thought that sounded familiar
im not sure what the love token event is though :3
Okay so that's the thing- This is literally what I've been doing. But it still isn't working- This is what pops up instead
At this point I think maps hate me-
she comes to the door, with a special delivery from an NPC the player is dating with an item and a note attached that says "A token of my love - (npc name) xxx"
have numerous custom NPCs in there, just missing a lot of newer ones that have come out
okey dokey
she wears pearls and i think food options would be too on the nose for her 
oh tea? really? the tea-loving librarian? shocker 
what's the action for this
i dont see it in ur json i think
Katrielle is fun as she gives the player an item you can't normally get (as she is a 'glitch' NPC if you've not used her)
ive seen her and she looks super cool. that makes sense 
the art on the modpage is so cute
Is this what you mean?
yeah i just dont know which one it is
oh i see it now
hmm
huh a glitch, I've seen glitch npc before but I'm not sure it's katrielle, gotta check
did u try restarting the game? idk if that helps
do you have default json in i18n folder?
i feel like there's only katrielle
oh IT IS katrielle!
Yes and yes.
they have one open so hopefully 
Hm. This is confusinggggg
ive encountered these errors before i just cant remember how i solved them
I can add your NPC too, to the "love token" event if you think they would and tell me the item they would send.
some of your tokens seem to be invalid me thinks
mb that somehow messed the thing up
theres coma instead of the dot
Oh- Huh, I didn't even notice. Thanksss
that most likely not it but it still worth a shot
maybe check the other ones just in case
btw you have this error here as well
what does it say
Oooh I think that's for my disposition thingy. I'm not finished it yet so-
Just checked-yeah it is for that
Okay- I think fixing that one dang line actually worked. I loaded up my game to see and yeah everything is working now-
Thank you for your assistance everyoneee
yay

sure, they already give the player a bunch of stuff anyway haha (like random dialogue, when gifting items, events, gift giver fr fr)
She could probably give a gold bar ๐โโ๏ธ
okey dokey
I suppose that vsc and smapi/cp react to random comas differently
and while vsc won't do anything crazy, those two will just break everything and explode at the end
be thankful your system32 folder is intact ๐ญ
I have no system32 at all
altough you could argue I have multiple due to wine/proton/etc
Very cool that windows protection very suddenly started treating Vortex as malicious software 
was it/the containing folder whitelisted beforehand? i've had win defender screw up on me like that, very annoying
I don't know cuz it's basically always worked just fine until today. I've got it fixed but man it's annoying
What do you guys use to view the coordinates of map tiles? For making npc schedules and such
You could either load the map up in Tiled or use Debug Mode to view them in game
https://www.nexusmods.com/stardewvalley/mods/679
If you need a link for Tiled I can find it
thanks
I think I have the link open somewhere in my 50+ Browsertabs
Anyone with experience making IPA files, could you help me a bit?
Iโm currently learning how to mod recolors for an IPA file to play on iOS.
But after unpacking and converting the PNG files from Nexus mods into XNB files to put into the original game files, I noticed that some files are missing while others are extra.
If I just forcefully replace everything, will it cause any issues?
Thank you very much.
My Mind: Random Bs Go!
I'm not even sure I did it right lol
https://smapi.io/log/be0c3cb6706d4b559162572ca51bcda1
For some reason, changeMapTile is not working on those 2 morris tiles facing forward
Oops, couldn't parse that file. Make sure you share a valid SMAPI log.
(the link just has the errors i was given)
removeMapTile worked I think
but i dont want to remove him entirely
wait is he part of the map tile
the one facing forward yes
is he not just an antisocial npc?
that's so funny
jojamart map
join us thrive etc
I mean he doesn't move anywhere... bro lower than skeletons
yeah but i need him to disappear for that event
so i can place morris on the right
I made a thing that patches the map after an event :0
its a bit janky th
but it happens during the event so good enough i guess
my issue is why is changeMapTile not working
is it a cutscene?
yes
would it possibly be easier to just make a copy of the map and change it?
i mean yeah i just hate doing that
and it should work
like why is it not working
im circumventing the problem instead of fixing it
maybe he's just a load-bearing morris
And you are absolutely certain you have the correct coordinates and layers for all the pieces of Morris?
yes
Your screenshot cuts off before showing the tile coordinate, so I had to ask
playing with no other mods that might be doing their own thing?
Did you make Morris an actual NPC in your mod?
no im just using the base game's
There are a few mods that change Morris, so you're not using any of those, right?
And no recolors or anything that might have accidentally included Morris's image as part of a replace patch instead of doing an overlay patch
no i dont think so
And slimming down your mod list to just your mod + dependencies doesn't fix it?
Which just rules out all the above
let me try
yeah still not working
no errors either
is it because it's an animated tile?
does that have any effect
youโre not even getting the โno tileโ error anymore?
which did you just test
Yar if removeTile works then the coordinate and the layer is right.
So there's some shenanigans happening with how changeMapTile works.

ive done it on static tiles before and it worked
is it really just the animated tiles?
i could see that being an issue but presumably animations are stored on the tile itself so to speak so idk
hmm
im not sure
i dont see how i could do that
because changeMapTile only refers to the x y
ill just do a tempMap but this wonky
I do recall someone having a similar issue with Gil in an event before
A while back
hmmm yeah hes animated too
can always do a sanity check and change a tile that is not-morris and see if that is changing
Hey, does anybody remember how to get the keybind for the movement keys? In C#?
I can't seem to recall.
I think i found it, if (Game1.options.doesInputListContain(Game1.options.moveUpButton, key)){}
Wait, I think i have check the other way around.
Found that discussion
#making-mods-general message iro did in fact confirm that animated tiles have the weirdness to them
grr
im curious why you dont use removetile if it works :0
It's better to store a KeyBindList and then use IsDown, at least for customizable keybindings
Removetile removes the tile for the entire day, so Morris would be gone.
ohh damn
no great loss
That's why the secondary part of the RemoveTile suggestion for Gil was to also add a map patch
-shifty eyes-
So you could add him back in
hmm i already did a temp map but i could just do that
Yeah but could you add him back in right after the event ends?
The key is an OnLocationChange patch and forcing the player outside after the event so it fires, if memory serves. Or finding another way to invalidate the map.
Sable might (joja sales associate here) /silly
i would ask if make invisible works but its got some weird dimension stuff
Funny potential for Sable to freak out because the boss suddenly stepped out and left them on their own though
It would be even tricker. What's need to be done is to make him gone just for the duration of the event.
But there's really no reliable way to just patch him invisible at the start of the event.
Creating a custom event command that worked on AnimatedTiles was another suggestion but that's beyond my skillset as it lies in C# land
request for .16 maybe?
I think .16 might change how it works for those two characters anyway with the new ephemeral characters system but I could be wrong
I couldn't find a direct reference to the tile animation issue in the 1.16.6 thread
Wait ephemeral is .16 and not 1.7?
I didn't wanna deal with the animated stuff and just patched the map while my event happens and patch it out when the event is done lmao (I made it update on location change, but it's only included if you can even trigger the event that day to avoid making smapi load it unnecessarily every time you change location for the whole game)
its goofy but well. I guess it works
Ephemeral is in the 1.16.6 alpha, yes
map patches slow the game down dont they?
im just trying to gauge whether temp map is more efficient than map patching
yeah thats why I made sure it'll trigger as little as possible, but to avoid the goofiness a temp map is easiest
every change slows things down a little bit
i kinda had to with mine since it's supposed to be there for days (but can be removed mid-day)
Idk if this is stupid or not but could you do editimage with the gsq being IS_EVENT (ID) to just remove the image temporarily?
I always find it amusing how many people actively try to avoid using TemporaryMap xD
ah that makes sense
Guy what the heck is going wrong here https://smapi.io/log/5f71b355afc84a10a018bab1b41e39fa
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on macOS Unix 26.3.0, with 13 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
its honestly not difficult at all but it FEELS like it
Yar I do trigger action shenanigans to ensure that the map patch only apply for a day after the event ends.
haha I needed mine to trigger on the same day right after the event ends
so I had to make some goofy things to avoid smapi loading it too often
You are trying to use a .png file asset as a Texture game asset, which has to be Loaded to a Target with no file extension
But aren't I loading it to a target with no file extension?
(use an "Action": "Load" first to create the game asset and then use that in your Texture field instead)
Post your Load JSON?
Also is this a content pack for CP or a framework?
Yup, that's what we were using before, the character creation menu doesn't have proper keyboard nav, so we added dedicated keybinds to move to next items and change slider values and all, also since there are too many options all over the place, it would've been slightly confusing for first time blind/visually impared players, so we went with the dedicated keybinds and moved between elements in a certain order which is different visually.
But now the problem is that by default these keybinds are set to the arrow keys, so as to not interfere the existing logic of movement keys, many new people get confused since all the other menus use the movement keys for nav and end up asking questions in our discord server, and I'm tired of pointing them to the docs, also it was dumb of me to not have suppressed the original logic beforehand lol.
(sorry for the wall of text)
Edit: I ended up doing this btw
if (Game1.options.moveRightButton.Any(e => Game1.input.GetKeyboardState().IsKeyDown(e.key))) {}
It's for BroadcastAPI, but it's just listed as a dependency
Gotcha, I am taking a look at their documentation now
Can you turn on file extensions in your file explorer and confirm that .png is the file extension on your image?
It's def a png
Only other difference I am seeing is your dimensions but the framework implies those don't need to match the ones in their example
Like the rest of the format is normal CP. I copied and pasted the code from the BroadcastAPI documentation to write a version after a downloaded content pack failed. The EditData works (confirmed with a patch export) but the channel doesn't show up. The Load works if I load to Characters/Emily_Winter (I tested that 'cause I'm married). But it doesn't work if I load to any other things I've tried, including "Mods/{{ModId}}/FarmIcon" directly from the CP docs. I've tried other .pngs that definitely load in their respective mods (like the one in the screenshot). I tried different CP versions.
Yar, the framework shouldn't affect a Load action, else something there went terribly wrong.
Is it just this image that you fail to load?
Oh wait you said so.
The dimensions of the image I tried had the same dimensions as the example, I tried other pngs I had on hand at different dimensions (a bit of sprite sheet, and a single icon)
Just in case the first file was corrupt or somehting
I am going crazy.
can you send the image here?
running your exact CP file doesn't cause any errors here, so it may be the image or a system issue, yeah
You could try combining all images into one, maybe?
Can you try writing out the Mod Id just to rule it out?
And just specify the area through the framework patch.
tried that too
(honestly my next move would have been to assume something went wrong with SMAPI or CP and reinstall it if changing the image didn't work)
These are the two images of mine that I tried, that I know work when loaded as an actual object texture and as a character texture.
I'm going to reinstall SMAPI I guess
But the weird thing is it's working for like, my existing mods (like the one the salad is from).
Oh I will first try launching not with stardrop, just have to move a bunch of stuff out of my mod folder
(yep, the first image displays on the TV with your content.json, no errors)
Same problem after reinstalling SMAPI
and no mod manager?
if so, we're probably reaching "ask Pathos directly"
though someone might've seen the issue before, it's tricky to search
And same with no mod manager.
I thought someone would recognise the issue. Any other Mac users trying this?
I'm on Linux too, so could test myself, but have you tested on Linux Esca? In case it's some obscure OS related thing
I haven't, it just works fine on win11
Can you send me your working test? DM if you want.
one sec, lost the files in a subfolder
alright, this + the current CP and BroadcastAPI seem fine
OS issues aside, bezajel could try overwriting content.json with this, in case it's an issue with weird invisible characters from a text editor or something 
Only MacOS related issue I would know to look for is due to case sensitivity.
I was going to try that. I've been having trouble with invisible characters coming from VSCode
is there a way to have an npc start with a specific amount of friendship? like just start out with 500 friendship points? (sorry if dumb question, i'm just getting back to modding after 6 months
)
I always use exact case :/
-# oh shoot my name is still wumbus
yeah just have a trigger action with no conditions on day start that doesnโt repeat
You might be able to have a TriggerAction assign those points
jinx lol
ohh right my beloved trigger actions
Nic beat me to it 
tyty ๐
Macs haven't been case sensitive (by default) for many many years. They do case Preserve tho', and people will just auto assume the default is sensitive.
All I know is that I have run into far too many "this doesn't work" comments when a Mac user is getting an error that says something can't be loaded because the file asset is not capitalized in the code but is in the mod folder, LOL.
So writing code in the correct case is instinctive now.
it's best practice for Linux users anyway :p;
when that voices mod first came out there was an issue with that and backward slashes so on LInux and Max it was looking for an extremely long file name with backward slashes rather than folders :p
I love how I said I would just pick one thing to do today and do nothing but that, but then immediately got sidetracked with something else 
had to hex edit to fix it ๐
how did my extra clone get out..
So I've tried Esca's version and I get the same problem. Then I went into a working mod of mine and changed the Load target and asset name in that (as well as the actual asset name) from:
"Action": "Load",
"Target": "Mods/{{ModId}}/DemetriusFruitSalad",
"FromFile": "assets/DemetriusFruitSalad.png"
},```
To:
``` {
"Action": "Load",
"Target": "Mods/{{ModId}}/Channel",
"FromFile": "assets/channel.png"
},```
The first works normally, the second does not. Also, the error message shows up only when I try to patch export. Before that it just isn't applying the patch (patch summary shows conditions met, but patch not applied).
Ohhh okay, so now the second one is working, after only changing another part of my code to use the texture Mods/{{ModID}}/Channel. This makes no sense guys.
the previous pack's target was also {{ModId}}/Channel (without Mods/), so without another reason to load, patch export would be the first thing causing it
So the load won't load until there's a reason to? As in, the patch export failed because the load has had no reason to run yet?
yes, none of CP's changes actually alter assets until something asks for the asset, including load
Okay, so then the root of the problem is not the load failing, but the BroadcastAPI not making the channel
SDV or a mod ask for a specific asset like "your mod ID/Channel", CP sees which packs can load that, then sees which packs want to edit it, then all of that actually happens
the System.Object error from the original log seemed to be implying something tried to load it, but I'm really not sure since I can't reproduce it
I thought it wasn't making the channel because the load was failing, but the causal order is the other way around?
(presumably looking at the TV channel list)
The thing trying to load it was the patch export
Yeah when I look at the TV channel list, my channel doesn't show up. I've been trying on existing saves though. I did try patch reload and sleeping a night, should I need a new save for new channels to show?
I don't see a patch export in the console here, but it may help to test the actual TV channel then, since patch export doesn't always know what type an asset is
(whoops, missed the reply link)
^
ig maybe chat commands don't show up in logs the way normal ones do, if you were using those
at any rate, your channel worked with my test pack when I tried on existing saves that didn't have BroadcastAPI or the pack before
testing on a new save generally helps, though
Gonna try with a brand new save
This is where I should be seeing the new channel, right?
Like, there's no hidden custom channel location?
Well, the SMAPI log says it's made the custom channel, but it's not on the list even after a sleep. At this stage, I guess I'll just report the error to BroadcastAPI and hope they can figure it out.
Or maybe I'll check my Content Patcher is up to date first
it is. Well thanks everyone for trying to work it out!
I have no idea how to set a query I just needed something to stop this from applying while the conversation topic exists ๐ซ
The didnt see anything in the docs on how to incorporate HasConversationTopic so I just followed the closest thing I could find to it
query isn't necessary there, tokens like that can usually use contains:
"HasConversationTopic |contains={{ModId}}_ShopBaited": false,
Oh, Okay
Although hilariously it kinda seems to have worked 
Oh shoot.. I think the shadow of the bush above is rendering on top of the part of the sprite that's on the building layer.. uhhh what can I do about that?
as far as I know, not much, that'
's all hardcoded; you could edit out the bush, but they're persistent objects & would still be there on existing* saves, unless you do more work to remove them with BETAS or make people reset with RTF
I guess.. wait.. it's not there as soon as it rolls over to 6 and the Slurpuff goes to sleep?
OH- Cuz the bottom part of the sprite is ALSO on the front layer at that time
Well that gives me an idea.
Ah- yes... that might be why that solution is not valid 
what happens if you put an invisible tile on the front layer there?
If it's invisible, wont the shadow still render cuz there's no pixels drawn in to actually cover it?
as opposed to an empty tile, there would still be a "tile" there, so if the shadow is trying to take the same space, it might not?
or am I misunderstanding which layer the shadow is rendering on
I'm assuming the shadow is on the Paths layer
Since the bush is spawned by the paths layer
I would imagine so
bushes don't actually exist on the paths layer, they're like trees etc, paths just spawns some
I'd expect it would
Wait wait wait hold on maybe you're right
Cuz the top part of the shadow isn't showing, the part that's under the part that on the "front" layer
I'll try the invisible tile on the front layer
Realistically there's no harm in trying it regardless so that's my bad for brushing it off before
I mean, it's absolutely possible that the shadow is rendering on a different draw layer entirely and this will do nothing, but it's worth a try.
My thought is that the shadow's cut very flat at the top, which makes me think the rest of it is being covered by the tile on the front layer
alright rats it didn't work.. unless I just didn't implement it correctly
anyway i honestly didnt notice at first haha
Honestly this effect is EXCELLENT for making it look super sinister, but it's not supposed to be ๐ญ
to be fair, there's a lot of weirdness with bushes and furniture placement due to how the things behave in the game already xD
See: Bushes placed strategically behind benches
So.. what i COULD do is up the brightness of the sprites on those pixels so that when the shadow appears over them they go down to the desired brightness
Making a content patcher mod for the first time and I'm so confused with the content file not working o_o
I'm not shocked that the bush weirdness extends to map/building tiles.
I mean good damn luck with that, it may not just be a brightness thing
Some shadows have a color to them too
share the json?
!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.
It's just a thing drawn and then made low opacity
oh thank god doveregon rok
I guess I'll learn what it is when I find the right bush in the asset files
wo
Whole thing?
Hold on, gotta send it to my phone first (i don't have discord on my laptop x3)
Or i could just take a picture of it
It would be best if you copied it to the website and shared the link from there
preferably not a picture
TntDove: It's likely the one from spring shadows, and all of those are #2e001a at 40% opacity.
oh GOD wait do the shadows change depending on season-
I've spent way too much time adding/correcting shadows on things for new buildings and such, I have the opacity memorized. xD
Oh damn i didn't even notice that's possible x3
https://smapi.io/json/content-patcher/63a7f7465f6f44b98890ce3d909af3a7
Yeah, they're all different colors per season from the looks of it

I'm just removing the bush 
Yeah not all the shadows are the same color, so I am not surprised it happens by season
And it's not serious enough of an issue to worry about the bush still being there on existing saves
If you use BETAS, you can kill that bush on existing saves
I use it to keep trees and bushes out of my building
oh yeah I guess I could do that, I've already got BETAS as a dependency
Yeah, if you already got it, may as well
Aight how do I do that
https://stardew.button.gay/docs/betas/tractions#ClearObjects
"Id": "{{ModId}}_RTF",
"Trigger": "DayStarted",
"Actions": [
"Spiderbuttons.BETAS_ClearTerrainFeatures Town All 23 40 32 51",
"Spiderbuttons.BETAS_ClearObjects Town All 23 40 32 51",
"Spiderbuttons.BETAS_RegeneratePathsLayer Town 23 40 9 11"
]
}```
Here's the documentation, and mine as an example
this clears all the stuff off a square where my map patch is and regenerates the paths layer
For that particular set of shadows, I used the eyedropper in Krita on the shadow and then reduced the trasparency until it matched visually:
Spring: #2e001a, 32% opacity
Summer: #3a1423, 32% opacity,
Fall: #310017, 34% opacity
Winter: #230738, 50% opacity
In case anyone actually cares for later things xD
like new shadows, I guess
In Photoshop, I can just see what the opacity is with a mouseover
Adobe is banned on my personal PC, it aggravates me enough at work with the constant UI changes xD
You went an extra mile LOL
also I hate to tell you, but you can't even guarantee all the shadows are the same on the same season
They are very variable, like one will be 26% and one will be 35%
I usually reference similar things on the season I'm working on and hope for the best
Did CA just do them based on vibes? x3
I would not be surprised
he probably did 
He do be silly like that ยฏ_(ใ)_/ยฏ
Aaanyways i kinda still need help with this if anyone has time to take a look at it...
It's very juvenile but I find this name for the trigger action very funny
Dare I ask why you are loading vanilla tilesheets in there? And why Shane's marriage dialog is listed as a PNG?
from looking at that, I'm just not sure what you're doing or why
Looks like a mod for a Blue Horse? Like Shane's blue chicken
maybe, but dialog would not be a PNG and I don't know why vanilla tilesheets are being loaded
- shane dialog was a typo i think
- it's my first time doing a mod and this is how i thought it's supposed to work based on the guide linked on the wiki
You don't need to load vanilla tilesheets, the game already loads them
Honestly I'd say that's a fair mistake for a first time modder to make
I fucked up worse my first time modding tbh 
Yeah, I'm just trying to figure out what's happening here: So it's just dialog and a texture load?
Replacing some textures and a single line of dialog
Aha, okay!
Also, for my defense, this is the first example used in said guide
YEAHAHAHHH FUCK THAT BUSH IN PARTICULAR! 
Ah, in that example it says that it's replacing Abigail's portraits, and presumably their portraits are also named abigail.png
Again I'd say that's a fair mistake to make, though
No, it's fine, you're a beginner, it's just hard to figure out what you were doing with it to give advice on how to fix it. We'll need to see the dialog json too
The tilesheet bits made me think maybe you were loading a map
Also, judging by this, you need more brackets in your content file
I think the tilesheet one was for Horse:the book
Ah, the book, well you definitely don't want to replace the entire image for that. You want to replace just the bit you changed
On top of the issues Midnight is pointing out, I believe it needs to be formatted like this
"Format": "2.9.0",
"Changes": [
{
"Action": "Load",
"Target": "Animals/horse",
"FromFile": "assets/bluehorse.png"
},
{
"Action": "Load",
"Target": "TileSheets/Objects_2",
"FromFile": "assets/objects_2.png"
},
{
"Action": "Load",
"Target": "Characters/Dialogue/MarriageDialogueShane",
"FromFile": "assets/MarriageDialogueShane.png"
},
{
"Action": "Load",
"Target": "Maps/springobjects",
"FromFile": "assets/spring_objects.png"
}
]
}```
{
"Action": "EditImage",
"Target": "Maps/springobjects",
"FromFile": "assets/fish-object.png",
"FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16 }, // optional, defaults to entire FromFile
"ToArea": { "X": 256, "Y": 96, "Width": 16, "Height": 16 } // optional, defaults to source size from top-left
},```
Here's the Content Patcher documentation example for replacing just a part of an image
That's possibly why the content.json is failing to load at all
That's possible?
Makes sense...
https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editimage.md which I got from here
Replacing the whole horse is fine because there's just one horse, but you can replace just the book that way. And you want to change the marriagedialogueshane asset to .json
Already changed it to .json
Just making sure. Trying to keep track of more than one thing at once
I basically just changed Indoor_Night_0 from sth about him wanting to drink some beer before bed to "Do you think people are mad at me for painting every horse in existence blue?"
Honestly, i could just cut that change if i can't get it to work
Hooray my 6 hour detour is technically complete!
I need to stop thinking that modding can be a quick process 
This works! :D
Still gonna try to implement this tho x3
Yeah replacing the whole thing works, but just replacing the book will make it work nicer with other mods
Btw, the main reason I'm making this mod was because i needed one more thing to add to my portfolio to apply for uni, do you two want me to credit you for helping me fix it if (IF) i ever end up releasing it?
If you want? I don't think it's really necessary, though
same
ooga booga
Regardless, thank you all so, so much
I'll give you an update when/if i can get it to work :3
what study if I may ask? ๐
Intermedia design
ooo
Basically you begin doing a bunch of different art/design stuff and then you can either choose to specialize on one medium or keep doing a little bit of everything from how i understand it
What does it mean by end of file expected?
looks like a few missing commas between the blocks
and also missing the top level block encompassing the whole thing
also Format should ideally be 2.8.0
your top level block closes too soon
Format and Changes should be on the same level
also still missing commas between the blocks in Changes
doesn't changes need square brackets?
Changes itself should be- yes
it should be { format changes [ ?
i think
i never trust myself to set up a json from scratch so i just copy and paste an existing json i have
Anyone familiar with Producer Framework Mod? Trying to get my custom flavored item to retain the color of whatever I put in, and that's the only thing I'm not getting right. Got my custom item, got the recipes working, no errors in the logs, but I just can't seem to figure out how to make it actually color my item. The template provided in PFM has ObjectColor, ObjectDyeColor, and DefinedColor as the OutputColorConfig options, but the only one that seems to work is ObjectDyeColor, and that just turns my item into a single color rather than the area I assume I defined (second frame of the item sprite). I'm so close to what I want, but this last step is bugging me.
Can I get scribbles telling me what to do please? 
this might also be worth reading https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md#get-started
ah yes tab creep
looking at this now and it is so helpful :P
Praise pathos
It works :D
is that a joja horse??
I dont think many people knows PFM at this point, but vanilla machine data supports what you want with CopyColor
though the whole object color being tinted issue sounds like you need to set ColorOverlayFromNextIndex in the output item's object data
So wait, I didn't need to download a whole framework for custom flavored items then? Cause I'm not using Wine or anything from vanilla. I was under the assumption I needed a framework like PFM for that.
nope, vanilla/CP supports that now

All that effort and pain for nothing
So, is there documentation for dummies like me that explains how to make custom flavored items? Because until just now, I was being guided by years old comments from reddit and whatever else Google crapped down my throat because I didn't know it was doable in content patcher
Also, ColorOverlayFromNextIndex did work, so thanks for that. Was driving me nuts.
admittedly not much other than examples like Cornucopia or Wildflour
Something tells me those aren't small mods that are easy to navigate, but that's still a lead, and a lead is better than nothing. I'll go see how they handle it then, thanks.
the relevant things you want to do is:
- add machine rule
- set PreserveId to DROP_IN to set the flavor as the input item
- set CopyColor and CopyPrice
- set PriceModifiers to multiply your output's price from the input
- add {0} to the output's internal name
- set display name appropriately
[[Modding:Machines]] more relevant docs
wiops forgot
- Set PreserveId to DROP_IN
I should add this stuff to my basic machine tutorial some other... month
Idk why I thought to do this from scratch
I hope I'm done with this part
why is there yes xd
bc I don't follow directions very well :3
pff
is that the last ting tho? Are the squiggles normal under the green text?
Yes
yes
you need to the language to jsonc for your editor to support comments - smapi is fine with them but they're not technically a part of json
putting // in front of something turns it into comments
ohhh ok
