#making-mods-general
1 messages · Page 308 of 1
Oh, very neat, thanks! Saves me on a ton of dynamic tokens
Question, is there a way to prevent farm animals from walking on some tiles of a farm map?
I happened to notice its really annoying when farm animals wander under the walkable leaf tile hidden paths like the secret woods / forest farm have
there is an npc barrier tile property iirc, though it affects monsters as well
As far as I know, yes the vanilla wedding is bugged on several platforms. It has been reported on the forums but I don't know if there's any plan to fix it lol
hilarious
Smapi just spit a whole bunch of stuff at me starting with " Ignored The Wolf > Generic Dialogue > Data/Dialogue/GenericDialogue.json > Shane's Random Dialogue: error reading info. Technical details:
System.InvalidOperationException: Error parsing '}}' as a tokenizable string
---> ContentPatcher.Framework.Lexing.LexTokens.LexFormatException: Unexpected EndToken, expected StartToken or Literal" but VSC doesn't see any errors in my workspace and I"m having a helluva time figuring out what it means
!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.
🤯🤯 oh wow
If you share the json validator link we can have a look and try to spot the error
Ok so my farmhouse1 kitchen worked fine, but when I upgraded, the patch removed only the actual appliances and not this sideboard thing
it's definitely been removed in the patch I double checked
it's still doing it lol, even thought i fixed it
is the Curse back 
The sideboard is part of the second upgrade isn't it? So it would apply over your patch and you'll need to patch it again, I think.
I did a patch on the second upgrade though? that's why the actual kitchen isnt there
Line 24 is missing the opening curly braces and says il8n with an L instead of i18n with a one.
Yeah, no, that tracks..... I was maybe up a little too late working on the dialogue last night....
the tmx patch is definitely without a sideboard
Looks like you will need to patch FarmHouse_DiningRoom_Remove too, I think.
It's renovation related
is that a thing now???
Renovations?
I have yet to even play 1.4 new stuff never mind 1.6
Ah lol. Yes, you can make changes to the farmhouse with renovations in vanilla now. It definitely adds an extra layer of complexity to farmhouse patches lol
thanks for the info, that would've taken me a million years to figure out alone lol
To translate the error:
System.InvalidOperationException: Error parsing '}}' as a tokenizable string
---> ContentPatcher.Framework.Lexing.LexTokens.LexFormatException: Unexpected EndToken, expected StartToken or Literal"
The way it works is a state machine, reading the file left->right (top->bottom) one character at a time.
and when it is in a certain state, it can only accept certain things to transition to the next state.
Within the CP Lexer (which is a higher level parser than what the JSON parsing is) and while it hasn't seen a token yet, it is expecting two possible states of the world for the next character
- Seeing if a token is about to start (StartToken aka
{{) - Or anything else
Once it sees a StartToken it would transition into token mode, where it would expect some literal (token name, followed by inputs which may themselves be tokens, and finally an EndToken must appear at some point*
So if you see an error like it, theres two posssibilities:
- you have
}}somewhere you don't need - you are missing the
{{earlier in the string
Do you mind sharing your json for it?
Ahhh. okaay gotcha! It's still not loading my dialogue - I checked patch export too - my events seem to work fine
Your Target is wrong. It should be Characters/Dialogue/Shane
I didn't check that before because I was just looking for the token error before, sorry.
not an apples to apples comparison, but https://json.org does a great job showing how a state machine can describe parsing json
Ah, okay thank you! I wondered if that was maybe it
I gotta check my cinnamon roll dough but after that I'm gonna check it
i fixed it lol, i just copied the code for the stable
basically i just put the SourceRect values to 0
I am in need of help, someone here knows how to bundle code? since I'm using both CP and C# to code since the I can't find the "Building" guide in C#
as to, why not just used CP altogether, I need to do my tractor in a custom spritesheet size
and also can someone send me the github repo, for the code, like a library
You mean send you the code of the game? We can't do that but you can decompile it yourself.
This is how you bundle your CP mod with your C# one: https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig#bundled-content-packs
It's not actually necessary but it makes things easier if you prefer doing it that way
anything CP can do would be https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Edit_a_game_asset in C#
and if you are cloning TractorMod, actual TractorMod shows this in action https://github.com/Pathoschild/StardewMods/blob/develop/TractorMod/ModEntry.cs#L280-L317
you won't have asset specific guides in C# in the same way the Content Patcher documentation doesn't list how to edit every data structure
It still won't load. Target is right, json validator didn't see any issues and smapi gives me nothing either. I've also compared my files to similar mods and I'm not seeing anything different
Gonna try with some other mods uninstalled and see if that helps
what does patch summary <modid> say
Uhm. Like when it’s first loading or if I input that separately?
when you think the patch should be working
There’s a bunch of stuff that has x by it. And then it says “Content patches” the following patches were loaded for each patch loaded shows whether the patch is loaded and enables see destails for the reason if not then conditions then applied section and (filtered to content pack id TheWolf)
When I go try and talk to him
Events? Totally fine and good and good and fine. Dialogue. Nope.
(Can we see the log from when you did the patch summary thing SinZ mentioned?)
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 104 C# mods and 95 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
ah, there'd be your problem
your mod's unique ID is likely not just "TheWolf" based on normal mod unique ID rules
and by what it output
you want whatever's in your manifest, e.g. "UniqueID": "agentlyoko.rewrittenclint",
Ahhhhh. CacklingCaracal.TheWolf
you'll get better data that way from the log
Okie trying again
okay this time it gave me this https://smapi.io/log/04a921cbabd341a58f0d72af46fc88ba
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 105 C# mods and 98 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
It's loading but not applying, am I reading that right?
This one may be out of my wheelhouse - the includes not being "applied" makes sense IIRC, but the rest are supposedly also not applied, yet you see the event changes
SinZ might have to take back over here, but in the interim, mind showing the content.json + the dialogue edit json?
Through the json validator?
ye
Can you give the filepath of where the second file is located?
so to be clear (and this is fine) - you're bucking normal mod convention and the "Data" folder is within [CP] The Wolf, with content.json in that same folder?
(I'm used to people having an assets folder and the filepaths used are stuff like assets/Events/AbigailEvents.json)
content is in the main CP folder, and then the GenericDialogue is in Data/Dialogue folder. I've seen assets used before too should I switch?
eh, do what you want
I'm just used to seeing it one way, you can have it another way if it makes sense to you
yo
I put my json files into a data folder
That's what works for my brain so far
Then do that! I just was thrown for a second seeing the wrong filepath (to me). Anyway, hmmmm....
Are you just not getting any dialogue at all or is there dialogue present but it's the wrong thing?
trace indicates they're getting vanilla dialogue
nothing else in their log is editing Characters/Dialogue/Shane and they did load into the file
it's not giving me any of my dialogue at all. His new intro is supposed to be Congrats we've met. Now you can leave me alone
But he is talking?
but it just does the "I don't know you why are you talking to me"
wait. wait wait wait.
let me make sure I have the right log here because if so something is waaaaay off
....something is way off. They have SVE. That shouldn't leave a single person untouched
Can you do patch summary full once you've loaded into your file, then give us that log?
absolutely
a lot more should be being edited by the mods in your log. Seeing only what I do for a search of Characters/Dialogue is.... mildly terrifying?
Wow yeah that's a lot of missing editing.
Once I saw Sunberry wasn't doing anything either I got suspicious
then I rechecked the Content Patcher stuff and was like "wait. Hold on, there should be so much more!"
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 105 C# mods and 98 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Okay. Someone ping me when they figure out what in the everloving heck is going on with strawberry's log because this is weird
there's a lot of patches that should be applied - from MANY mods - that just.... aren't
although then again
Can you sleep one day, strawberry?
Hi, I'm very sorry for interrupting- I'm trying to make my first mod and I can't figure out why it's not loading my interior map/not warping me there- could someone help me when you have the time to? Sorry again
sorry, just noted you're on Spring 1 Y1 when you loaded the save
yeah let me load up the game
No worries, it's not a problem to interrupt. We'll need a little bit more information, so:
- How do you have it set up to warp you there? Is this a vanilla to modded location, modded to modded, a vanilla location but different stuff inside, etc.
- What happens when you attempt to warp there? Nothing happens? Red text in log? something else?
- Can you share your SMAPI log from when you've loaded in and are attempting to go to the location?
Trying to read that log on mobile was incredibly punishing, my goodness.
its a locked door warp, from town to a custom house
oh i didnt mean to send
no worries, it's still a good start knowledge wise
If it's not loading the location my first thought is tilesheet climbing in the map.
Means you're probably map patching town, the door exists on town, and you're using that lockeddoorwarp
Here's the new patch summary full log https://smapi.io/log/05ea60c73e94401eb04adac2cb4ec8c7
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 105 C# mods and 98 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
when i load in i get this "[SpaceCore] A warp from Town references YazzRoom2 which could not be found.", but it can find the outside of the house just fine?
then when i get to the door and click on it i get this "[game] Warp to YazzRoom2 failed: location wasn't found or couldn't be loaded."
https://smapi.io/log/6d40ebc5264d4ca49df52e4eccf91ad7
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 30 C# mods and 20 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Okay yeah, definitely leaving it for the C# reading wizards now, it's not the initial characters stuck on install thing. I really want to know what on earth is happening to cause all those dialogues not happening
15:32:29 TRACE Event Lookup Loading Maps/Custom_YazzRoom2 15:32:29 TRACE SMAPI Content Patcher loaded asset 'Maps/Custom_YazzRoom2' (for the 'Yazz Mazz' content pack).
Your map is named Custom_YazzRoom2, not YazzRoom2
i feel silly im sorry
Are you using CustomLocations? If so, I recommend switching away from that because it's deprecated.
so you'll need to fix the warp to the correct area. No feeling sorry! I'm guessing you might be-
abagaianye beat me to it
DW Lyoko you beat me to the original fix advice lol
yeah im following the wiki tutorial
Uh oh, there are no up to date wiki tutorials.
oh
Oh, never mind, I thought someone had made one
Might be a good idea to go through a deprecation heading pass on those or something, yeah...
Not it runs away
yeah
Right, well, I know what my Sunday is going to involve.
im sorry
No no you haven't done anything wrong!
Do not be sorry!
1.6 has been out for over a year now
If anything, this is on the collective laziness of the mod community 
It's very reasonable to assume that if you find a tutorial it's safe to follow it
I asked max for permission to update that tutorial months ago
I just...didn't do it... lol
Keep going on as you are for now and I will try to do the whole update tomorrow so you can then convert to current best practice if you want to. You don't have to, but since CustomLocations is deprecated it's unsupported and might break in future.
...I've opened too many of the tutorials. 
I have a window with at least 9 tabs open to various places on the dialogue and event wiki pages. that's a vibe
Maybe if I load an older save and try a full patch summary would that help?
I'm not sure tbh
ill try ^^; thank you for all your help
Is human?
Maybe.
Did you pass the captcha
I have no idea what is going on. Have you installed any xnb mods?
As far as I know, I’ve avoided that so far.
https://smapi.io/log/3ca2ec6cd8d14a9facbfea1a85a7b325 this is a pre-existing save that I loaded
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 105 C# mods and 98 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Looks the same, as far as I can tell. Can you try patch summary full asset "Characters/Dialogue/Shane" please?
Can you also talk to Shane first
Yes 🙂
Dialogue might be lazy loaded don't really recall
is it possible to make a cutscene with just content patcher?
If you mean an event like a heart event, yes
You can make a loooot with just Content Patcher
https://smapi.io/log/7c72101af85c47c1b07afde568426d6d another eye searing log with the patch summary full asset
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 105 C# mods and 98 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
It's saying that your patch has applied. Can you try putting this into SMAPI? debug loaddialogue Shane Characters/Dialogue/Shane:14 It should tell you it sent the command but there was no output and if you then alt-tab back into the game it should bring up a dialogue box with his line for the 14th of the month.
Dialogue is lazy loaded, got it
that's.... a little annoying for testing purposes buuuuuuuuut useful to know
btw how do i make it so, one commission per player, like once you built it you can't commission from robin to build another
can that still be done via CP?
I wonder if it's just due to patch order. CFDE is patching after strawberry's mod so it might just be overwriting because it touches so many lines.
it most likely is now that we know it's patching
Ok yeah his dialogue for that day popped right up and he said it
Portrait and everything
I believe so, I think there's a GSQ for building built
what is GSQ?
Game state query!
Yeah, making sure to patch after/over cfde is pretty much a common thing
Hahahah okay 🙂 that makes sense how do I do that
I think you can just set a false dependency on CFDE. That means you add it as a dependency in the manifest of your mod but you set required to false. That means that your mod's edits will apply after CFDE's if CFDE is installed.
Oooooh okay.
I also think you have some incorrect dialogue keys in there? summer9 and summer15 don't match any key format I know of.
I'll review those too. I copied that format from another mod - but if they don't work I'll reformat them
ok I did that, updated the dialogue key format and it still didn't load his new introduction dialogue
I'm gonna take a break and knead my cinnamon roll dough and come back to this later. Maybe practice pixel art or something
You can do the same debug loaddialogue thing with the introduction key to test if it's your line loading.
Was there a way to make VSC shut up about multi lines in events?
I think I remember something about some kind of extension being mentioned here, but no idea what it did exactly
JSONL format I think
Oh, nice, didn't know it existed tbh
Yeah, JSONL lets you have multi lines, and JSONC lets you have comments. Aba and others know tricks to make it do them both at once...
I learn everything I know from Aba 🫣
I doubt I'll need Jsonl for anything other than events (which I make once in... lets see... 3 years), so no need to bother with it 
Yeah handy for that, actually I've used it in targetting a bunch of assets at once as well.
I mean, multi lines, I didn't need jsonl for that little thing
Good morning, I hate to ask for help this early in the game, but I'm having trouble getting the modbuildconfig loaded in VS Code right out of the gate...
When I run:
dotnet add package Pathoschild.Stardew.ModBuildConfig --version 4.4.0
I get these 2 errors:
error: NU1100: Unable to resolve 'Pathoschild.Stardew.ModBuildConfig (>= 4.4.0)' for 'net6.0'.
error: Package 'Pathoschild.Stardew.ModBuildConfig' is incompatible with 'all' frameworks in project
I feel like I've followed all the steps I've seen mentioned a few times, tried setting my game path in the project file, I'm wondering if I should just try a different IDE?
Just be aware that jsonl suppresses all error reporting for the file completely so you're on your own with mistakes lol
That's fine, I kinda miss the gentle yelling in red wall from smapi 
Soothing red
Do you have net 6 setup
I installed the .net 6 SDK, and vs code seems to recognize it
Oh Chu, your MMAP made my current wip possible (or at least a loooot less annoying to make), so thanks a lot for the secret wood imitation function 
This is my current .csproj
If I add the package reference in ItemGroup, I get this error when building the project:
error NU1100: Unable to resolve 'Pathoschild.Stardew.ModBuildConfig (>= 4.4.0
)' for 'net6.0'.
You need to add the ModBuildConfig nuget package
Also, I recommend putting gamepath in a csproj.user file so you can exclude it from version control
Ah
Hmmm
Ahh that's what I really need to do
I haven't rebooted since installing the SDK, I guess I'll give that a shot
Modbuildconfig does already read from a user data file
Woods lighting 
Speaking of.. is there a way to add the falling leaves effect too?
No idea if I even need it, but just curious
But that game path is not needed as it's what it will try anyway without customisation
Can you try manually adding this to your csproj?
<ItemGroup>
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.4.0"/>
</ItemGroup>
Then running this in a terminal in the root of your solution?
dotnet package restore
I feel like the package restore is the one step that hasn't been tried so far.
Because it sounds like it's just not finding the package locally, but it knows to look for it because the reference to it was added.
Something may not be right with my dotnet install?
When I run dotnet packate restore I get this:
Hm i think that just happens randomly if your map is outdoors
package, not pavkate!
Huh, looks like it might have become dotnet restore now.
Really? I thought it was woods specific
Nvm then 😅
error NU1100: Unable to resolve 'Pathoschild.Stardew.ModBuildConfig (>= 4.4.0
)' for 'net6.0'.
I may just try a different IDE...
VS22 is much more straightforward to set up, imo
If dotnet cli is not working right i feel another ide wouldn't solve anything
So did u install like
Dotnet host 9 and then sdk 6?
OHMYGOD IT WORKS
Thank you to everyone who has spent the last several hours looking at my nightmare logs
nuget.org was not in my sources list
Had to run
dotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org
To get it in there and now everything works fine
...the official Nuget repository was missing? Well that's a fun one.
Not sure why that wouldn't have gotten added when I installed the SDK?
Yeah... real 'fun' haha
I appreciate everyone who offered advice, thanks all
Anyone know why I can't use SMAPI commands in the SMAPI console window?
Mod commands work but the expected ones from this list don't
https://stardewvalleywiki.com/Modding:Console_commands
Nor do they show up in help
if they don't show up in help, I'm going to assume your Console Commands mod is missing or broken
!log
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.
toss that in here, we'll verify based on that
Ohh, actually I think I know the issue. I have a custom mod-path
Didn't copy it over
Oh I've had that happen once. No idea why.
Tbh people have mentioned using the net8 sdk. I would, personally - there are a lot of nice language features you can use if you use that. You need to target net 6.0 but can compile with the net 8.0 sdk fine
That was definitely it btw ty
is HasVisitedLocation depreciated for event preconditions?
I'm trying to make an event that is only triggered after the player has restored the ginger island farmhouse
You probably need a GSQ for that. PLAYER_VISITED_LOCATION looks like what you want
hmm okay thank you
You can use a GSQ as an event precondition with "G" (e.g. /G PLAYER_VISTED_LOCATION arguments)
Np! Good luck 🙂
Speaking of events, does anyone know if the "eyes" command will pause the event or allow it to continue?
judging by the code, it should move to the next command immediately
Hiii does anyone know how to make an npc react to a specific item being gifted to them?
In their dialogue, its acceptgift with the id
"AcceptGift_798": "reaction", for example
798 being the item id
Thank you!!
this worked, ty!
it was my last event to figure out, very exciting
okay I lied I'm back
using SawEvent as an event precondition, is there anyway for it to trigger that day after seeing said event?
trigger what? a dialogue?
Now I delve into question forks and dialogue prerequisites
Any hot tips for question forks? I have some event stuff that determines what dialogue gets used for the conversation topic
to trigger an event happening - but I decided its not too big a deal
you want a delay of one day between EventA and EventB?
if yes you can do that using Conversation Topic to space them a bit
I’m trying to set it so that if you take the first route in the bonus 8 heart event he gives one line but if you took the second path he gives a different line
Currently I have set $p (insert first path response)#corresponding topic dialogue
Hey, guys, Is there a good reference to modding the ability for mod authors to connect to your mod, I wish to make one of my mods extensible.
This may be me just being stupid, I put it in the dialogue json yes? I did that and it doesn't work :( and also is there a way for it to change with how many hearts the Npc has?
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Integrations is a good place to start, probably. what does your mod do, and what extensibility are you wanting to provide?
if you're providing integration to content packs:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Framework_Mods
ngl this warning isn't very helpful [game] Changing net field parent for '' collection from '' to ''. ._.
My mod allows the farmer to gain friendship passively. I want mod authors to be allowed to add relationship data
oh in that case, check selph's tutorial link. custom fields or at most a custom asset is a good fit for that, i think
afaik on many linux systems (most wayland compositors) this wouldn't work bc keyboard shortcuts don't get passed through to programs that aren't the ones designated for handling them
also u should try and integrate w steam to check for steam overlay screenshots for steam deck users
the steam deck lets you bind a screenshot key and it just takes a steam overlay screenshot
wb the moon berry 🥺
iridium quality strawberry perhaps?
Hmmm I couldnt find something moon related
Would iridium quality be close enough in your opinion?
Hiii does anyone know how to make an npc react to a specific item being gifted to them? And if that dialogue can change depending on how many hearts they have/ I can add more than one line?
Thank you!
or just use $query I think
For multiple dialogue, I think you can use i18n randomization
there is also a feature for randomness in the base game dialogue
so you can see which approach you prefer
i'm team token and i18n combo
but atra and lemur do like using the c dialogue thing
I'm sorry to be a bother, this is my first mod I could use stuff explained in more detail
What about quickQuestion vs %fork if you need dialogue/events to resolve differently based on the responses given?
if we're gonna be passing data around between harmony patches in weird ways and need to use static values for that, is it a good idea to use ThreadLocal<T>? i've noticed other modders use PerScreen<T> for this instead -- what does that do?
You know how local coop is split screen
PerScreen is helper to keep static values independent in that mode
yeah, but wouldn't ThreadLocal<T> cover that case too?
The game is still single threaded even in split screen i think
oh
It just does funny static swapping
oh hmm
It is down to your usecase in the end, sometimes the harmony __state injection is enough
if i'm (re)setting a value in a prefix, reading/writing it in a transpiler (!!!), then reading the final value in a postfix, do i need to use PerScreen<T>?
i assume i never need to use ThreadLocal<T> because the game's always single-threaded (although that still makes me kinda uncomfortable bc what if that assumption changes)
Then it's modcapolypse
But you can do multi thread things as long as u don't touch draw or content
i mean more like
what if someone does somethign on another thread and calls the method i patched
Whether they should be doing that is question yes 
But i think harmony patches are 1 method at runtime so u r safe probably
but yeah ummm i assume PerScreen<T> is only necessary if the game might have the opportunity to switch screens while i still care about the value in the static, right?
I definitely have made things PerScreen just in case b4
I gotta ask if u actually need to do all that though
the game can't switch screens while a method is running, right?
Vs just doing whatever you want all in the transpiler
unfortunately it's slightly more complicated than that?
i need to be able to call the original version of a method before my transpiler was applied, but including all pre/postfixes added by other mods
Wow yes a job for reverse patch
reverse patches don't include pre/postfixes added by other mods 😖
noo
i need a separate method to be able to call a version of the method that's exactly the same sans my transpiler
including any pre/postfixes added by other mods
I feel like something is being overengineered somewhere
oh absolutely
But idk what the usecase and i support overengineering things on principal so pls have fun
did i mention that this isn't actually my mod, i'm just writing a pr
problem is this method is patched by a few other mods that i need compatibility with
For your original Q most mods don't try multi thread things because game itself is not multi thread and changing it is unlikely at the moment
I would just make whatever you want work in 1.6.15 and not worry too hard about future
anyways, my plan is to have a static bool that's normally false, but set it to true whenever i need to disable the effects of my transpiler
basically just wondering if i should make it a bool or PerScreen<bool> or ThreadLocal<bool> or ThreadLocal<PerScreen<bool>>
bool probably fine
okiiii
Change it when bug report trust
its not my mod i dont wanna create more work for the mod author if they accept my pr 😖
maybe i should do ThreadLocal<bool> just in case
Can u ask the mod author for opinion
Wow what kinda crime did i do
lmfao
machine control panel
I did have vague feeling it was that
https://stardewvalleywiki.com/Modding:Dialogue
i am speaking of the dialogue command $c
What is the particular issue you are facing
im tryna implement a feature that prevents you from using recipes that would be impossible in vanilla
as a config option
e.g. no more "aged sturgeon roe"
Impossible in vanilla 
or just otherwise impossible w/o machine control panel
Oh you mean case where a lower rule ought to have been blocked
yea
I'd just disable the rules control entirely then
Force read-only rules side, control on input side
ive already got it almost working
My concern is more about how the input data is not foul proof rn
Mods can put quirky GSQ that cannot be pre checked
oh hmm
idk im mostly looking to block the more obvious stuff (again like aged sturgeon roe)
If you have case like say
Rule 1: accept fruit only if on VMV
Rule 2: accept fruit
Right now mcp shrugs and just display the VMV gsq as is and then show all of fruit as valid inputs to this rule
no no i want to discard the gsq here too
disabling rule 1 should allow rule 2 while on vmv
i only want to block rules if they would be impossible per the basic item inputs
In the Item Extensions mod, does anyone know where I can find the documentation about the OnDestroy key?
but yeah umm
i made a transpiler for MachineDataUtility.TryGetMachineOutputRule that would make it do exactly what i need if i had a way to run the original version of CanApplyOutput
but i can't actually run "the original version" bc i need to include patches applied by other mods, just not your patch for CanApplyOutput
hence my plan is to add a static variable that makes your ShouldSkip functions always return false
Yeah so u need to probe it
I'm describing what i understand your desire
Not describe something to do sorry for ambiguity
okok
Yeah this sounds ok to me, make sure to test with automate though
ofc
That said i do have design wise concerns in that i think this interfere with machine rule a little too much 
At the moment the behavior with rules unchecked is just "as if this rule is not in the data"
What are the new usecases provided here that isn't already covered by turning off the input
like technical concerns or mod scope concerns?
Mod scope concerns yea
Cus i wonder if it'd be better to have third mode, ban certain outputs
tbf all this option would do is restrict a feature added by the mod
Since that sounds closer to what is desired
hmmm idk
At any rate if you raise PR now and it's a configurable thing idm merging it 
okiii
not gonna pr just yet since i need to finish implementing it and test it more but ty
oh and i need to make sure it works as intended w extra machine config's additional fuels, which i recently submitted a (draft) pr for slightly changing the behavior of
For window tiles in houses, does it use the day/night property or does it use the window light property
Selph is also here if u want to ask for opinions
oo ty
my current implementation of that pr breaks one of the mod's other features though so ill need to figure that out before its actually ready to accept 😆
i just wanna make apple cakes...
Back to this though i would be vaguely concerned about calling CanApplyOutput in multi thread
yea me too
GSQs don't have any sort of thread safe guarantee
Stardew is not thread safe at all
Tho vanilla ones r probably fine (?)
im prolly just gonna make it a ThreadLocal<bool>
just in case someones being weird and calls CanApplyOutput on another thread
I would not recommend doing anything offthread unless it's highly self-contained
The case where u can definitely thread things is when everything you are working with is your own data structures, a rarity for mods
im wondering whether to make code thread-safe, not whether to run code on another thread 😆 dww
So yeah i don't think u should worry about other people calling u in a thread (i definitely didn't
)
Don't bother unless you're using it yourself. Nobody writes thread-safe code, and the game itself isn't thread safe
that reminds me, how bad of an idea is it to use native libraries in mods?
i don't have a reason to and im not planning on doing it, just wondering
You would have to include it with the mod i think
Like that one mod which adds Doom arcade machine
I tried using imgui once but it just caused errors I didn't know how to fix
I didn't try that hard though so it might just be me doing something wrong
Also u need to pack 3 copies right
For windows mac linux
Doom mod incompatible with mac very sad
Smapi might not support native libs though, I'm not sure
I hope when that does happen there's a config option to disable it
are you supposed to use imgui in a process that's already running its own window??
No?
It's a generic library you can plug into any renderer, all it does is generate geometry
I was using a c# lib that hooked it into monogame
Mistyspring, creator of the Item extensions mod, is he the same one who has this nickname here on the server?
ohhh i got it mixed up w another library sorry
Yes they are
worse than that he is offline, I wanted to know about OnDestroy
btw u can check the table at https://stardewvalleywiki.com/Modding:Community
Misty goes by they/them just FYI
You can ping them if you need to and they'll see it when they get back online
Also that ^
I think one of the bots also has a command to see the mods someone has made
Ah yeah its /userinfo from governor
oh also @lucid iron, what's the purpose of ShouldSkipMachineInput_DayUpdate? it seems to only be called after ShouldSkipMachineInput has already been checked, but it never returns true if ShouldSkipMachineInput doesn't, so won't it always return false when it's actually called?
but won't it always either not get called (bc ShouldSkipMachineInput was already checked) or return false (bc ShouldSkipMachineInput returned false), making it do nothing?
I don't have code in my short term memory but iirc the path where that version is called is different than the normal version which happens when you input an item
im probably reading the il wrong 😅
Or i broke it when doing 2.0 cus i was focused on UI side 
ill dump the transpiled il and double-check but you mightve
I do remember testing that turning off worm bin works tho, so perhaps it's just leftover redundant code
okii
Where it says <spriteAssetName> is it asking for the name of my png file of the animal I'm trying to add? Or the internal name?
For event scripts
Or can you only add actors already in the game? (Not custom ones)
It's spawning the red error circle, nothing seems to be working aaaaa
Should be the internal name of the NPC, Animal or Monster
So whatever you added it as via Data/FarmAnimals
does someone knows how the game behave if you already learned a recipe that is usually sent by friendship cooking mail?
yes
if i do it by trigger action (which i plan to do for at least one) i will have a condition of not already having recipe
How are you?
a bit sick still but better
this time at least i didn't give english people a scare by using the wrong name for my sore throat
and you?
Sadly still not working. I'm adding 3 temp actors, will that be causing an issue?
All the same animal
Running errands! I'm kinda wanting to make my "bachelor's pad" mod idea an actual thing
You know
Bed on the floor. Laptop next to bed
How do they live this way, etc
did you load the textures into Animals/AnimalNameHere? the event command might need the part to be like that exactly
With multiple you might also need to use [override name]
This is what I currently have addTemporaryActor 8BitAlien.Lilybrook_Redacted 32 32 11 22 1 false Animal
So you're saying i should change it to Animals/8BitAlien.Lilybrook_Redacted?
the bed stand is a pile of book?
Worth trying
And probably \\ instead of /
Will try that now!
Nope, still error texture
I'm gonna try adding just one and see if that works
How are you loading in you custom animal?
My custom animal is in Data/FarmAnimals
did you load the animal texture into Animals/8BitAlien.Lilybrook_Redacted?
keep that command the same
you don't even need a Data/FarmAnimals entry I think
Do you mean in the event script?
Oh ok
The animal is already in the game as a farm animal so I thought I could use it lol
You can probably also just load it into Characters
Within my Animals.json?
wherever doesn't matter
did you Load a png into Animals/8BitAlien.Lilybrook_Redacted?
No, I don't think so. Will doing so affect how my animal works as a farm animal separate from this event?
yes no
Ohh I don't want that
Oh good then
load into that, change your farm animal's Texture field to using that path as well
Can you send the part where you load in your sprite for your custom animal? I think it would be easier to explain that way
"LogName": "Load Images",
"Action": "Load",
"Target": "Mods/8BitAlien.Lilybrook/Assets/Items/BabyRedacted1, Mods/8BitAlien.Lilybrook/Assets/Items/BabyRedacted2, Mods/8BitAlien.Lilybrook/Assets/Items/BabyRedacted3, Mods/8BitAlien.Lilybrook/Assets/Items/Redacted1, Mods/8BitAlien.Lilybrook/Assets/Items/Redacted2, Mods/8BitAlien.Lilybrook/Assets/Items/Redacted3, Mods/8BitAlien.Lilybrook/Assets/Items/icons",
"FromFile": "Assets/Items/{{TargetWithoutPath}}.png"
}```
It should be Assets/Animals?
keep your FromFile the same
that's where the images are in your mod folder
change the Targets to all forms of Animals/YourUniqueAnimalIdHere (if they load animals)
then switch your Data/FarmAnimals textures to that as well
So as an example, "Mods/8BitAlien.Lilybrook/Animals/Redacted1"?
no
Animals/8BitAlien.Lilybrook_Redacted1
or whatever
they must start with Animals/
Ok will change everything now!
then you can use the part after the slash in your event command
Ahh this is making sense now
addTemporaryActor can only pull from the Animals Characters or Monster folder
I thought mine was loaded as an animal though haha
yeah, it doesn't know or care that whether an animal, character, or monster actually exists in data, it just pulls the textures from those paths
Gotcha, thanks both! Lets see if this works
Which one is correct? "Texture": "Animals/8BitAlien.Lilybrook_Redacted1",
"Texture": "Animals/Redacted1",
For the texture
I have a few skins for the animal so I think that's what is confusing me
whatever works, like I said as long as it starts with Animals/
you probably want the former since it has your mod id
nvm this, i didn't notice a label somewhere lolll
and as along as that's what you loaded in the Load block ofc
All working now, thanks for your help 
Yippee
is there a property to see if a tile has the ability to receive water from watering can? like the pet bowl
or any other way
the pet bowl is a building now
i know, but i want to know if a specific tile has that ability instead of the whole building
Does anyone mind showcasing my new mod? https://www.nexusmods.com/stardewvalley/mods/33581
Modular Tools lets you upgrade your tools like never before! Attach different upgrades to customize how your pickaxe, axe, hoe, and watering can behave.
I couldn't think of a good one haha
That looks awesome
isnt earth upgrade just hoeing normally
its like how aang already knows air bend, farmer is clearly an earth bender by default
The farmer is Toph then?
Automatically applying fertilizer maybe?
If you could exchange it for different fertilizer
Or it stacked
Honestly something as simple as applying the first fertilizer to the right in the inventory from the hoe would be cute for an earth upgrade
Heyo, does anyone by chance know how to put a trigger action in item delivery quest dialogue? I am trying to trigger a lettter containing a recipe being sent after a quest is completed,
Would like to delay the letter being sent, but I can't seem to figure out if that is possible or not either
I just was made aware of the Dialogue Commands page 
Is there a way of making it so that an answer chosen with quickQuestion ends the event and doesn't play the rest?
yes; if there's an end command in the embedded script for that choice, the event will end.
you may need to follow that end command with two null commands (so it would look like end\\null\\null(break)) due to infelicities in how end works
another option is to use switchEvent in your embedded script, then have the target event end quickly
Thanks, that's really helpful 
(i use both of those solutions in that file, so check 156 for the switchEvent version)
Smapi doesn't seem to like my event key,what is wrong with it? "8BitAlien.Lilybrook_Anya10Hearts/LocalMail 8BitAlien.Lilybrook_Anya10HeartsMail/f AnyaLilybrook 2500/t 800 1800/w sunny":
"Invalid property identifier character" according to smapi
Here's my log https://smapi.io/log/5f3bdc3cae9f421cb07eaafef5cf24ea
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 16 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I managed to fix it 
One last problem: choosing the mean option doesn't switch the event. Where have I gone wrong? I can't see it:( //Beach Date (Anya 10 Hearts) "8BitAlien.Lilybrook_Anya10Hearts/LocalMail 8BitAlien.Lilybrook_Anya10HeartsMail/f AnyaLilybrook 2500/t 600 1800/w sunny": "breezy/42 18/farmer 38 19 1 AnyaLilybrook 43 19 2/changeToTemporaryMap 8BitAlien.Lilybrook_LilybrookBeachPatch/skippable/pause 2000/emote AnyaLilybrook 16/move AnyaLilybrook 0 0 3/emote AnyaLilybrook 20/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.01}}\"/move farmer 4 0 1/pause 600/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.02}}\"/pause 600/quickQuestion #{{i18n:event-Anya10Hearts.03}}#{{i18n:event-Anya10Hearts.04}}(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.05}}\"(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.06}}\"(break)switchEvent {{ModId}}_Anya10HeartsMean/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.07}}\"/emote AnyaLilybrook 60/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.08}}\"/pause 500/emote farmer 20/emote AnyaLilybrook 20/globalFade/viewport -999 -999/stopMusic/end", //Mean Beach Date "8BitAlien.Lilybrook_Anya10HeartsMean/LocalMail 8BitAlien.Lilybrook_Anya10HeartsMail/t 800 1800/w sunny": "breezy/42 18/farmer 42 19 1 AnyaLilybrook 43 19 1/changeToTemporaryMap 8BitAlien.Lilybrook_LilybrookBeachPatch/skippable/pause 2000/emote AnyaLilybrook 28/globalFade/viewport -999 -999/stopMusic/end",
remove the preconditions from your Mean event (the one you switch to with switchEvent)
it should just be written like a continuation of the script from that point on
so you don't put the music name, or viewport coordinates, or actors
If you wanted conversation topics the following day depending on which path you took how would you set that?
Ahh ok thanks, I will test that now!
So just like this then? "8BitAlien.Lilybrook_Anya10HeartsMean":"pause 2000/emote AnyaLilybrook 28/globalFade/viewport -999 -999/stopMusic/end",
I’m finally doing an event where the event actually changes depending on how you answer and I’m struggling to make sure the dialogue the next day lines up 😂😭😭
yep!
Oh it's still continuing the event. Am I doing something else wrong?
Im pretty sure you have 2 answers, with 3 outcomes, the 3rd unreachable one being your switchevent command
Yep I have 2 answers but now I'm confused lol
.06 is the dialogue acknowledging the mean answer if that helps?
Your three “outcomes”/paths are:
- speak AnyaLilyBrook <whatever>
- speak AnyaLilyBrook <whatever>
- switchEvent <event>
I assume you want 2 and 3 to be together, you don’t want that (break), that separates them
Should be speak AnyaLilyBrook <whatever>\\switchEvent <event>
3 and 4 are the answers, 5 is the positive dialogue from Anya and 6 is the mean dialogue. 7 is the continuation of the event if it's positive
This is so confusing aaa
I want her to say dialogue 6 and then end the event basically
Think of it as this
(break) signifies the start of an answer’s outcome, you have as many outcomes as (break)s and the number should match the number of answers
To have multiple event commands in the same outcome you separate them by \\
So I need to remove the (break) from after dialogue 6?
Yes, replace it with \\
So like this? "(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.06}}\"\\switchEvent {{ModId}}_Anya10HeartsMean/
Yes
I don't know what is happening now but at least it's trying to load the new event https://smapi.io/log/55fa87bf47e8465da0eb25d7c654a1ce
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 16 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I'm assuming prior to the switchEvent you had a temporaryMap teleport at one point?
I had a temporary map loaded yep
based on the error I think you need to changeLocation back to your real location to prior to the switchevent, or have your {{ModId}}_Anya10HeartsMean patched into Data/Events/Temp instead
as you are in the location Temp at the time, and the error is saying Temp doesn't have {{ModId}}_Anya10HeartsMean
How would I patch it in?
Events are so confusing:(
Forreal. I’m trying to follow along and apply their advice to my bonus 8 heart event. So. If I have the option of “reach out, tell him he’s not selfish” and “stay where you are and say nothing. After the break and speak Shane I would then put \switchevent {{ModId}}_Shanereachout and then \ switchEvent{{ModId}}_Shanestayput?
Well I just tried changeLocation and that froze the event and made Anya disappear so don't use that lol
Nooooooooo omg
So it looks like I need to patch the Mean version of the event into Data/Events/Temp but I'm not sure fully how to do that
Data/Events/Temp is just a thing that already exists. just use that as your target instead of Data/Events/LocationName
This is my full event { "LogName": "Beach Events", "Action": "EditData", "Target": "Data/Events/8BitAlien.Lilybrook_LilybrookBeach", "Entries": { //Beach Date (Anya 10 Hearts) "8BitAlien.Lilybrook_Anya10Hearts/LocalMail 8BitAlien.Lilybrook_Anya10HeartsMail/f AnyaLilybrook 2500/t 600 1800/w sunny": "breezy/42 18/farmer 38 19 1 AnyaLilybrook 43 19 2/changeToTemporaryMap 8BitAlien.Lilybrook_LilybrookBeachPatch/skippable/pause 2000/emote AnyaLilybrook 16/move AnyaLilybrook 0 0 3/emote AnyaLilybrook 20/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.01}}\"/move farmer 4 0 1/pause 600/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.02}}\"/pause 600/quickQuestion #{{i18n:event-Anya10Hearts.03}}#{{i18n:event-Anya10Hearts.04}}(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.05}}\"(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.06}}\"\\switchEvent {{ModId}}_Anya10HeartsMean/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.07}}\"/emote AnyaLilybrook 60/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.08}}\"/pause 500/emote farmer 20/emote AnyaLilybrook 20/globalFade/viewport -999 -999/stopMusic/end", //Mean Beach Date "8BitAlien.Lilybrook_Anya10HeartsMean":"pause 2000/emote AnyaLilybrook 28/globalFade/viewport -999 -999/stopMusic/end", } }, So I would split it into 2 EditData sections?
yes
I'm getting this error [game] Event '8BitAlien.Lilybrook_Anya10Hearts' has command 'switchEvent 8BitAlien.Lilybrook_Anya10HeartsMean' which couldn't be parsed: can't load new event from asset 'Data\Events\Temp' because it doesn't contain the required '8BitAlien.Lilybrook_Anya10HeartsMean' key.
This is what I have now { "LogName": "Beach Events", "Action": "EditData", "Target": "Data/Events/8BitAlien.Lilybrook_LilybrookBeach", "Entries": { //Beach Date (Anya 10 Hearts) "8BitAlien.Lilybrook_Anya10Hearts/LocalMail 8BitAlien.Lilybrook_Anya10HeartsMail/f AnyaLilybrook 2500/t 600 1800/w sunny": "breezy/42 18/farmer 38 19 1 AnyaLilybrook 43 19 2/changeToTemporaryMap 8BitAlien.Lilybrook_LilybrookBeachPatch/skippable/pause 2000/emote AnyaLilybrook 16/move AnyaLilybrook 0 0 3/emote AnyaLilybrook 20/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.01}}\"/move farmer 4 0 1/pause 600/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.02}}\"/pause 600/quickQuestion #{{i18n:event-Anya10Hearts.03}}#{{i18n:event-Anya10Hearts.04}}(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.05}}\"(break)speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.06}}\"\\switchEvent {{ModId}}_Anya10HeartsMean/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.07}}\"/emote AnyaLilybrook 60/pause 500/speak AnyaLilybrook \"{{i18n:event-Anya10Hearts.08}}\"/pause 500/emote farmer 20/emote AnyaLilybrook 20/globalFade/viewport -999 -999/stopMusic/end", } }, { "LogName": "Beach Events", "Action": "EditData", "Target": "Data/Events/Temp/8BitAlien.Lilybrook_LilybrookBeach", "Entries": { //Mean Beach Date "8BitAlien.Lilybrook_Anya10HeartsMean":"pause 2000/emote AnyaLilybrook 28/globalFade/viewport -999 -999/stopMusic/end", } },
you havent patched it into Data/Events/Temp
you patched it into Data/Events/Temp/8BitAlien.Lilybrook_LilybrookBeach
It's all working now, thank you!!
I’m about to test mine
Good luck c:
Thank you!!
ope. It doesn't recognize my original event
Which is what I get I suppose for trying to get it to happen in Marnie's Barn
what other libraries can i use?
It doesn’t matter where your event is, that won’t be the problem
I’m almost done switching out the dialogue for i18n stuff
wait okay without learning c++ is it possible to add a marriage requirement on a custom npc like "__ has to have 5 hearts with [npc]"
Stardew used c# not c++. Very different languages
And I don't think you can do that with marryability but you can add conditions to proposal iirc
Ah, okay, so something like this "LogName": "A Human Touch",
"Action": "EditData",
"Target": "Data/Events/AnimalShop",
"Entries": {
"TheWolf.Shane.AHumanTouch/f Shane 2000/e TheWolf.Shane.BanterBackfire/e TheWolf.Shane.JojaConfession/e TheWolf.Shane.2HeartRewrite/e TheWolf.Shane.UndertheBoardwalk/TheWolf.Shane.DarkBlue/e TheWolf.Shane.4HeartRewrite/e TheWolf.Shane.6HeartRewrite/e TheWolf.Shane.8HeartRewrite/z fall/w clear/t 1700 2300/ ": "icicles/25 8/farmer 22 7 1 Shane 25 3/skippable/pause 500/emote Shane 20/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.1}}"/emote Shane 28/pause 500/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.2}}"/speak Shane "/pause 500/emote Shane 16/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.3}}"/pause 500/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.4}}"/emote Shane 32/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.5}}"/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.6}}"/pause 800/speak Shane "{{i81n:TheWolf.Shane.AHumanTouch.7}}"/quickQuestion what do you do? #Reach out and touch his hand, tell him it's not selfish and he can stay as long as he likes. #Stay where you are and say nothing.(break)speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.8}}"/message "He laughs, one of his real ones."/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.9}}"(break)speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.10}}"\switchEvent{ {{ModID}} TheWolf.Shane.AHumanTouch.Stayput/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.11}}"/fade/end",
"TheWolf.Shane.AHumanTouch.StayPut": "pause 500/emote Shane 28/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.StayPut.1}}\"/fade/end"
or do I need to make another Log with the branching event?
!embedcode
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
A good mod idea just came to me in a dream: a HUD quest display showing requirements for ongoing quests. Is there any mod like this already? I couldn't find any "quest tracker" on Nexus.
'''json "LogName": "TheWolfAHumanTouch",
"Action": "EditData",
"Target": "Data/Events/AnimalShop",
"Entries": {
"TheWolf.Shane.AHumanTouch/f Shane 2000/e TheWolf.Shane.BanterBackfire/e TheWolf.Shane.JojaConfession/e TheWolf.Shane.2HeartRewrite/e TheWolf.Shane.UndertheBoardwalk/e TheWolf.Shane.DarkBlue/e TheWolf.Shane.4HeartRewrite/e TheWolf.Shane.6HeartRewrite/e TheWolf.Shane.8HeartRewrite/z fall/w clear/t 1700 2300": "icicles/25 8/farmer 22 7 1 Shane 25 3 3/skippable/pause 500/emote Shane 20/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.1}}"/emote Shane 28/pause 500/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.2}}"/pause 500/emote Shane 16/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.3}}"/pause 500/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.4}}"/emote Shane 32/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.5}}"/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.6}}"/pause 800/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.7}}"/quickQuestion what do you do? #Reach out and touch his hand, tell him it's not selfish and he can stay as long as he likes. #Stay where you are and say nothing.(break)speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.8}}"/message "He laughs, one of his real ones."/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.9}}"(break)speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.10}}"\switchEvent Stayput/speak Shane "{{i18n:TheWolf.Shane.AHumanTouch.11}}"/fade/end",
"StayPut": "pause 500/emote Shane 28/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.StayPut.1}}\"/fade/end" '''
The characters for code blocks are backticks. The ones on the same key as the tilde ~ (at least for my keyboard - I think they are for US keyboards too).
"Action": "EditData",
"Target": "Data/Events/AnimalShop",
"Entries": {
"TheWolf.Shane.AHumanTouch/f Shane 2000/e TheWolf.Shane.BanterBackfire/e TheWolf.Shane.JojaConfession/e TheWolf.Shane.2HeartRewrite/e TheWolf.Shane.UndertheBoardwalk/e TheWolf.Shane.DarkBlue/e TheWolf.Shane.4HeartRewrite/e TheWolf.Shane.6HeartRewrite/e TheWolf.Shane.8HeartRewrite/z fall/w clear/t 1700 2300": "icicles/25 8/farmer 22 7 1 Shane 25 3 3/skippable/pause 500/emote Shane 20/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.1}}\"/emote Shane 28/pause 500/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.2}}\"/pause 500/emote Shane 16/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.3}}\"/pause 500/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.4}}\"/emote Shane 32/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.5}}\"/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.6}}\"/pause 800/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.7}}\"/quickQuestion what do you do? #Reach out and touch his hand, tell him it's not selfish and he can stay as long as he likes. #Stay where you are and say nothing.(break)speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.8}}\"/message \"He laughs, one of his real ones.\"/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.9}}\"(break)speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.10}}\"\\switchEvent Stayput/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.11}}\"/fade/end",
"StayPut": "pause 500/emote Shane 28/speak Shane \"{{i18n:TheWolf.Shane.AHumanTouch.StayPut.1}}\"/fade/end" ```
What are you asking for help with? Oh, whether you need another CP patch to add the fork. No, you can do them in the same patch like you have here.
I do recommend putting all of your player-visible text into i18n though since you've done most of it.
ooooh okay! Awesome. The event won't trigger in debug mode
What command are you using to try to trigger it?
debug ebi TheWolf.Shane.AHumanTouch
Is it giving you an error?
yeah the event could not be found. I'll put the other dialogue into i18n format and try again and see what happens
It's not related to that, the game doesn't know about i18n because i18n conversion happens before the game gets the file from CP.
Do you have any warnings or errors earlier in the log about the patch being ignored?
Content Patcher Ignored The Wolf > The Wolf Events > Data/Events/TheWolfEvents.json > TheWolfAHumanTouch: Entries > 'TheWolf.Shane.AHumanTouch/f Shane 2000/e TheWolf.Shane.BanterBackfire/e TheWolf.Shane.JojaConfession/e TheWolf.Shane.2HeartRewrite/e TheWolf.Shane.UndertheBoardwalk/e TheWolf.Shane.DarkBlue/e TheWolf.Shane.4HeartRewrite/e TheWolf.Shane.6HeartRewrite/e TheWolf.Shane.8HeartRewrite/z fall/w clear/t 1700 2300' value is invalid: '{{i81n:TheWolf.Shane.AHumanTouch.7}}' can't be used as a token because that token could not be found.
Is the only thing that I see
Ah, that's because you wrote i81n instead of i18n.
okay oof. I have a bandage on one of my typing fingers it's been giving me grief all day. I'll do some tinkering and see if it'll trip
I see you have fixed it since then. DId you do a patch reload after fixing it?
hello does anyone know exactly how the bed texture transparency works in game? im not sure how to phrase this
like if i leave the sheet part visible underneath the blanket im expecting it to show when the farmer gets in bed and the blanket layer is transparent
but will that look strange ingame
I don't think the beds use any transparency in game?
Well, I guess it does in a way in that the top tiles of the blankets are not fully filled in.
i think i was misremembering then lol oops! thank you anyways
i think it just draws 2 times so if ur sheets is transparent it is transparent
Question about content patcher: How does it assign values for the custom portrait images? I'm expanding upon a mod I enjoy, and so I expanded the tile-sheet for NPC portraits, and added my own. However, I cant figure out what number the game auto-assigned for its portrait ID/cant find where in the content file you manually assingn those numbers. I've checked $1 - $60 and cant find the portrait when in an event. Anyone have any ideas?
This isn't a content patcher thing but rather vanilla game
$n is just sprite index
You should make sure your edit isn't getting overwritten
if it is, how can I get the game to assign it a new ID?
the index is just position in the spritesheet
a quick question. I want to make it so the Hyper Speed-Gro only shows up for sale once the recipe for it is obtained, but my brain is short-circuiting on exactly how it needs to be written into the condition for HasCraftingRecipe. is it Hyper_Speed-Gro, or something else?
would probably be (O)918
I was wondering if it was that, but I wasn't sure
I know sometimes the syntax gets weird and wasn't sure if it was for the item's object ID or if it had its own unique thing for being a recipe flag
PLAYER_HAS_CRAFTING_RECIPE <playerKey> <recipeName>
and recipe name here would be (O)918, I presume
would be the key in Data/CraftingRecipes
PLAYER_HAS_CRAFTING_RECIPE Current "Hyper Speed-Gro" (remember to escape when putting in json)
thank you very much, I appreciate it
also, today I learned that you can use \ to make jsons recognise " when I need to use them for names, like in the above :D
Yup backslash is the escape character in json. Also in discord actually. That's why you have to do triple backslashes to make a double backslash appear because the first backslash disappears in order to escape the second one lol.
\ is pretty much the universal character for escaping
Which is partly why windows style file paths are mildly annoying as anything needing to encode it has to escape it like crazy
it... is done
now I crawl to bed and hope that there isn't an explosion of bugs and conflicts... I'm hopeful...
Hooray!!!
nice! that looks neat, and I appreciate that there's a romance and a non-romance option. it's good to have choices!
There was a comment on Nexus recently about FONO for new marriage candidates, so I wanted to make sure at least most of the cutscenes could be seen no matter what!
I really hope I didn't miss any "babe"s or romantic dialogue, but I did my best for tonight
ah, I'm just one of those people who never bothers to romance people, so it's nice to not have that pressure to see the whole story, haha. also, the Canyons mod! I meant to download that one when I first saw it, but couldn't remember what it was called when I went back to look for it. the adorable tortoises will be mine!
I also love that there's a non-romance option!
I am increasingly aromantic when playing video games. I just want those intimate platonic relationships 
The sprites are so incredible...
And I agree on the romance thing...maybe I'll snatch it and add it to my mod as well
("Snatch" meant playfully)
If I want to remove an event from happening can I just patch it and set it to null?
Yup
awesome thanks
any feedback on this idea?
Is that instead of hitting F to open the quests page?
Sounds good. There is also a github for stardew mod ideas.
yeah, like a HUD reminder of what you need to do/collect. I'm thinking about a pin system where you can choose what quest(s) to show in the HUD from the quest list. I'm sure it would be very popular with the ADHD crowd.
itd be popular even with no adhd !!!! (me)
I wonder if Deluxe Journal already has it? I know that I can show my notes at the top left of my screen using Deluxe Journal but I've never poked at it enough to know if it could show quest objectives too.
If Deluxe Journal and/or To-Dew don't already do it, then yes it seems like it'd be a very handy thing to make a mod for. And if they do but you envision it differently, two cakes lol
Just took a look at these mods, and holly shit, they look amazing! They have a very impressive list of features, and I'm pretty sure it's possible to pin game quests to the overlay with them.
As promised, tutorial update! If you decide to have a look at it and spot any errors or confusing bits, please feel free to let me know ^_^
https://stardewmodding.wiki.gg/wiki/Tutorial:_Map_Patches_and_Warps
this looks so amazing, congrats for release! (would you like to be put on mod showcase?)
Amazing, thank you so much!
@acoustic summit sorry to bother you, i wanted to ask, do you have a public repo with your mods?
Sort of! I don't use git much but there are public repos for nature in the valley and skillful clothes revamped. If its a different mod you're after I don't mind making a new repo for it.
I have it linked in the forums somewhere, but the link is https://github.com/8AwA8/Skillful-Clothes-Revamp-1.3.5/tree/main/SkillfulClothes
thank you, i looked all over your nexus and couldn't find anything haha
Sorry about that! I'll put it on the main page now
no worries, thanks for sharing it
how can I add a file to be packed with my mod when doing a dotnet build? I'm guessing it's something to put in the .csproj but I don't know where to search how to do that.
So for smapi mod build config, assets and i18n is setup to be included by default
I want to add a "content.json" file to this
Question from a complete novice! I moddified a custom npc for personal use. It originally didn't dance in the flower dance, but I really wanted them to. I read up on the wiki to set the acceptance to null in the npc.json, and then add in the relevant sprites in the default index locations, but I can't find anywhere how the flower dance portraits will be loaded? :< Does it sort out itself aslong as I name the png correctly?
Is it a content pack
i think it is
you may need the field to be different than null, as null has some default behaviour specific for datable.
NPCs don't have portrait for flower dance by default
Nope, it's a C# mod (FF) but I want to add a default pack in the same directory
you can add one to the appearence system, but it's a bit extra step
hence the content.json file next to the dll
i would suggest to first manage to have them dance at flower dance then see about the portrait
Doing this just means the manifest of the pack gets checked
If you don't want that do Folder as suggested
Alright, I'll do that. Thanks for the reply. ^^
whatever but i suggest mods/yourmodid/yourasset
you load that, then use that in the mail data
oh sweet. Thanks!
// add letter BG
{
"LogName": "Load letter bg images",
"Action": "Load",
"Target": "Mods/Lumisteria.MtVapius/MtVapiusLettersBG",
"FromFile": "assets/images/{{TargetWithoutPath}}.png"
},```
VMV example, obviously don't use same exact path
That would work but I don't want to have 2 mods in a folder, so I'll try with Folder, I'm assuming it works for files too
Yeah it should
I'm also pretty lazy about this so if i was doing it i would toss it into assets subfolder and not think about it
Wdym "default pack"
If it's an example pack I wouldn't bundle it at all
Otherwise the content pack deploy is good
Not an example, an empty pack that can be targeted by CP to add stuff without making a proper Furniture Pack
If is base data structures assets (which is automatically packaged) is fine
Why do you need that?
{
"LogName": "Load letter BG",
"Action": "Load",
"Target": "Mods/CacklingCaracal.TheWolf/TWLetterBG",
"FromFile": "assets/images/{{TWLetterBG}}.png"
},
I don't think you need a real file at all then
Feature creep
Yeah okay I don't understand your use case and don't have time to understand your use case so good luck!
-# someone please buy me a coffee
e.LoadFrom(() => new Dictionary<string, QuestionDialogueData>(), AssetLoadPriority.Low);
Just do this in asset requested 
Probably want exclusive actually i keep forgetting to fix
I've been nursing the same pot of straight black french press coffee since like 7 lfg
I'm using IContentPackHelper.CreateTemporary to "create" it and pointing it to FF's mod folder, so that the content pipeline I set up loads content.json and stuff in assets/ directly from FF's mod folder
This seems like a lot of hoops to jump through when you can just make a normal custom asset lol
I could have a special case in the content pipeline to fetch the empty content file instead, but meh, it's more code
not sure what you mean here
Like just open leroy.FurnitureFramework/Data with type Dictionary<string, FurnitureData> (or whatever your model is called
Content Patcher mods can target that with whatever info
I never made a custom asset like that, and it's far too late to start making one. FF loads a JObject and parses it manually because the structure is full of optional nesting. Kinda hard to explain without pointing directly to the doc.
It's not that hard to make both usable cus it's ultimately just a way to get data
Anyway, this did not work. Here's what I added to the <ItemGroup>: <Folder Include="content.json"/>
You can choose to secretly transform the model you get from content pipeline into an FF asset pack on the inside, or other way around
It's also not a requirement to have exactly one target cus you can check for a prefix in asset requested and give a model just like a ff pack
Still no idea what you're talking about, and how it relates to what I'm trying to do... It's probably because it's 11 p.m. on a Sunday after 5 hours of Youtube tho
the 'folder' can be change to pretty much anything tho
- item1
- item2
- etc.
don't just use Folder to confuse your future self
trust me
instead of loading a fake empty "real" content pack to get a target to edit you just create the target in asset requested, is what chu is saying, and how the vast majority of people do it and the recommended and easy way to do it
I do not understand how .csproj works at all, I just copy-paste stuff. Can you explain that because the doc is full of keywords that I don't know
I see. As I mentioned, it seems simpler to put the content.json file in the mod dir than to add a check in the asset requested pipeline. Kinda don't want to put a json string in the middle of the code. And having a special case to load the json file ends up in the same place.
think of it as a collection of your build export settings. that's all
as with atra, I really don't understand the use case or intent process here enough, but it seems a helluva lot more complicated than the usual way, but good luck
then how do I make it work then? Cuz the content.json is definitely not in the exported folder after build
the only luck I need is to get that damned file in the exported folder... Everything else is already working
https://stackoverflow.com/a/78253943 this worked
Are you asking for help with this?
Just double checking to make sure it reads right
There was supposed to be a question after the json oops
nice
Is the token in the FromFile intentional?
No, and it’s not in the actual patch bit. It’s just the TWLetterBGpng.
Sorry I am not sure I quite understand. Your actual json is different to the json that you posted asking us to check?
it's just missing the {{ }} around the TWLetterBG, I'd just removed it cuz I wasn't sure it was supposed to go there
Sorry..I can share the current one instead.
the reason there were braces originally is bc in Lumina's example it was a token. {{TargetWithoutPath}} is not the name of a file itself, it's a Content Patcher token with specific functionality
so you are correct it should not be there around the text TWLetterBG
As long as your image is called TWLetterBG.png, then it looks correct (without the curly braces).
(and as long as that png is inside an images folder which itself is inside an assets folder that is next to your content.json)
It is indeed!
if your png is called that exactly too, you can also just reuse the same targetwithoutpath thing lumina did. you dont need to change that, jujst the target
for just one target though thats personal preference. exact same functionality either way
Perfect, thank y'all! It should be triggering in-game soon.
debug showmail mailid
I never use TargetWithoutPath because I don't use the Mods/{{ModId}}/FileName convention.
that convention is irrelevant to targetwithoutpath, though
Not when you don't want to name your files Abagaianye.HiriaNPC_ExampleItem it's not lol
im not sure what that has to do with the token
well it would be the end of the target that matters, so FileName
but what matters is having something working with your logic anyway
Because if your Target is Mods/{{ModId}}/FileName and you use TargetWithoutPath you can name your file FileName.png. Since my Targets are {{ModID}}_FileName, I'd have to name my files Abagaianye.HiriaNPC_ExampleItem.png in order for the TargetWithoutPath token to work.
i was just confused bc it seemed like you were implying TargetWithoutPath specifically cares about the Mods/{{ModId}} part is all, but if thats not what you meant then never mind
since its not linked to any one convention
(Though I guess in my case it'd just be the {{Target}} token since I'd have no separator anyway)
i think if you have no slash separator theyd just both work the same, tho i cant say ive ever checked
I was merely implying that the only convention I've seen is Mods/{{ModId}}/FileName and that that convention works well with TargetWithoutPath but my particular approach makes the use of the token unwieldy due to what it requires the filename to be. I know there are other things that people could do for their Targets but on the whole I don't really see people deviating from Mods/{{ModId}}/FileName. (And just for clarity: I was not intending to imply that TargetWithoutPath is aware of or cares about the convention of Mods/{{ModId}}/FileName.)
Thank you! And yeah, why not 🦆🦆🦆
want to write a blurb for it first?
FIASA was a test for myself as a modder, to bring together all the skills I've developed in other mods. It adds a boat where the player can purchase random items, just like the traveling cart, in exchange for foraged coral. There are two fully fleshed NPCs, one of which is romanceable if the player downloads the Romance version of the mod. Thank you!
CC continuing to bring us bangers at such a rapid pace, this is crazy. you are the goat
how texture field in cp edit data item works 😭
The texture field in item data is a string or null. If null, it will use the default texture ie. springobjects. If it's a string, then it's the name/key of the texture asset to use as the spritesheet for the item
[[Modding:Items]]
like, i can just path to a png file and it will work?
No, it's an asset name, not a file name. Have you read the getting started guide on the wiki?
oh ok srry
@acoustic summit hello again, i tried to make a small personal change to Skilfull Clothes Revamp but i can't figure out how to make the project work. How would you feel about making the suggested change official? it's just in LovingRancher.cs where you set the item quality to 4, i wanted to have it check if the item has any of these context tags category_milk, category_egg, category_sell_at_pierres_and_marnies instead of checking against the hardcoded list of vanilla animal products so that it also works on modded animal products
It's fine! I wasn't being critical, I just wanted to know if you'd seen it. It explains a lot of the common stuff, so I figured it would be useful if you hadn't seen it. sometimes though people just don't get it the way the wiki explains it and need another explanation.
so creating a asset for a shirt is
{
"Action": "Load",
"Target": "Shirts/AnyShirt",
"FromFile": "assets/path/to/anyshirt.png"
}
Yes. 'Load' actions say "Put the file 'FromFile' at the 'Target' address." and then you can tell the game to go to that adress when you want to give it that file
Keep in mind that these "addresses" are shared with all other mods and the base game, so you want to make sure that yours don't overlap with other mods by accident. The easiest way to do that is to prefix it with your mod id
For textures that's usually something like Mods/{{ModId}}/MyItems.
Yep I can do that! I think someone else suggested that change recently in my comments too
that would be great thank you! it's a very small change i just couldn't get the project to work
the arms disappear...
Can you put a "QuickQuestion" inside of the break of an ongoing quickQuestion? or will that break the event
i expect it will not parse correctly. try using switchEvent or similar to jump out to a different script where you can start with a fresh quickQuestion
If i do that, will it force a quick fade to black? I'd like to avoid that if possible
So, question about Alternative Textures. Is there a way to also line up the graphics to the television? I got this mod, and depending on how easy a fix would be, I could be convinced to fix this problem.
no
TVs are really hardcoded so AT would need to do special handling (and i dont think it does)
atm the only way to do custom TV bounds is furniture framework (which isnt compatible with AT)
Ah, pity. I was hoping it was just some oversight.
are there any NPC pathing restrictions inside the spa?
SMAPI is telling me that this manifest is invalid, but I don't understand why. it's the exact same manifest template that I used for another mod, which loads fine, changed to suit the new mod. can someone see what I can't?
hm the min api should be 4.0.0
nevermind, I'm just an idiot. I had the manifest, content, everything else filled out in VS code, but forgot to save before I moved everything into the folder in the stardew modding folder, so it was all blank XD
kinda, there's the woman and man room
is there a modding page about letters/mails?
im not sure how to send personalized mails to different players the same day
for C# side u can use addMailForTomorrow
there is this page but it is more about the syntax and slightly outdated https://stardewvalleywiki.com/Modding:Mail_data
i assume then that it depends on the NPC’s gender?
yes, ive tested this before
however npcs do not swim in the swimmy, they walk on the water 😭
i got around to doing this, it seems like original edit was blocked because external link
which. i need to fix in my next update, ugh
Thanks, I know my edit was blocked because of the link yes if that's what you mean. I created a new account for that edit so wasn't allowed
yea i think it is a global block here 
makes sense though!
need to ask margot (wiki admin) but for now i just put the instruction and trust ppl know how to google
awesome, I think it will be helpful for those not on windows
damn 😭 what if i cheated by making a schedule animation of just their shoulders up lol
SEE i was gonna do this and just. fucking forgot about it
lol 🙃
i think calcifer has/will have a feature for this
i believe i am the one who inquired about it
however ive heard little since and therefore dont remember
is calcifer a framework or a person?
framework
i just want the npc to hit a tile and do the farmer’s anim for jumping in the water rather than me having to manually set shit
bwahhhh
make npcs recognize the swim tile … or whatever it is we step on as farmers to hop in
one approach is schedule anim
i was also thinking about an animation just for her to sit on the side and kick her feet in the water back and forth
u can have em chill in the water
which i remember being suggested to do (i am lazy, however, and this does not allow for universal npc utilization)
yea i mean, go bully soph for updoot (no dont)
i am unfortunately of the communist variety when it comes to innovations such as this
nah i wont bother her
yeah it’s just the one NPC i want to do it for so schedule anim is probably what i’ll do
ill just put off the schedule anim til someone reports her walking on water on that schedule 🤣🤣
absolutely nobody goes to the bath house tho, so the chances of seeing that… slim to none
adds character 
[sigh] i just HAD to be different …
yeah i was thinking about this and having NPCs swim in the ocean too, like it should all be doable with enough animations and NPC passable tiles lmao
me when i sweem
Does anyone have an example of how to change the appearance of Data/Shops stores? I saw the VisualTheme option on the wiki, but since there is no template to test, I tried to do it by imagining what it would look like and it failed.
hey? do you mind if i add recolor compatibilty for your tilesheets?
i know on your outdoor tilesheets it says they're open but just to make sure and have it in writing!
look at Mr Qi's shop
QiGemShop?
yea
"Action": "EditData",
"LogName": "Criando uma nova loja",
"Target": "Data/Shop",
"TargetField": [
"SeedShop"
],
"Entries": {
"VisualTheme": {
"Condition": "true",
"WindowBorderTexture": "Mods/alichan.teste/background_shop_seed",
"WindowBorderSourceRect": {
"X": 0,
"Y": 0,
"Width": 18,
"Height": 18
},
"DialogueColor": "#FF0000",
"DialogueShadowColor": "#FF0000"
}
}
}```
I wonder what I did wrong
It didn't change the background or the color
oh
I think I spelled shop wrong
Now that I noticed
if it's for a recolor you have permission for
kk! i'll dm the person in charge of starblue too but i believe their permissions are open!
anyone know if cherry symphony on nexus is on here?
im switching all of my system and basically all quests will be assigned trough mails, i tought there was some framework mod that would simplify this but idk
thanks man you always have answers to all my questions lmao
calcifer💕
mhh the only things I need are:
mail that imposes a new quest (cant refuse it)
mail that notifies what punishment was applied after failing the quest
panel opening after clickign "receive reward" on a quest completition (panel will have a wheel to get the actual reward)
ye im reworking the whole thing again lol
well u can run trigger actions in mail
so yea u can do all that 
you may need to do something to queue the wheel menu to appear after the mail menu is closed
yea I really dont liek the idea of a menu closing and another opening
but basically im removing the wheel system entirely at this point
the whole thing that started this lol
idk I like the idea of random rewards here
so a wheel would fit it very wheel
but at the same time I can just add "receive random reward" button and play no animation no panel, just give the item/effect and send a mail stating what was the reward (or a on screen notification)
idk being my first mod maybe its better to keeps it simpler
What if you did like a fake slot-machine-style wheel? For items or could display the item icon and name, and for non-items it could have a custom icon and description text
how does one exclude a fish from the fishing collection
"ExcludeFromFishingCollection" set to true in object data

also is there a flag or condition for when a player has one and then two children? I can't find it on the wiki... though I also didn't find that on the wiki so
Do you mean "do something only if they have 2 children, but not 1, and not 3"
Cause there is a GSQ you could hook up to a mail flag with trigger actions to check for specific number(s) of children
I'm trying to add a dialogue patch for when a player has one and then another for two kids so I can add more dialogue related to them
Because otherwise he's uh.. kinda an absent father and does not mention his children 
(aka like when he does the 'fun leave' dialogue i want to have him mention the kid(s))
Well you could use the thing I mentioned if you wanted to change the fun leave one (or any other dialogue), use GSQ + mail flag trigger action and check for that on a condition.
Theres also OneKid_X and TwoKids_X in marriage dialogue you could edit if they are married to your NPC
I know about the one kid/two kid dialogue it's just he leaves the house a lot so that dialogue very rarely gets pulled
thank you for the GSQ suggestion :D
That makes sense! Its PLAYER_HAS_CHILDREN [player] [min] [max] just for clarification here 🙂
:3 yeah I found it! Thank you so much, sometimes I just don't think of those things even though I've quite literally done them before lol
Heyo, is anyone aware of why the WEATHER Here GSQ is not working for fish location data?
post your code?
They were all working on the prior versions of CP and Smapi and then I updated

can you clarify by "'not working"
if I use the WEATHER Here gsq the fish shows in game, look up anything shows everything but the season info and the fish will not be catchable when they have a weather gsq in their conditions
its showing in the location data as catchable as well
when I do a patch export
Are the weather names not case sensitive?
Sun vs sun, Rain vs rain, etc
I haven't looked at the gsq code recently so I don't remember if it's sensitive or not
it calls EqualsIgnoreCase so it shouldnt be
Ah. Then I've got nothing
can you send the full patch export + example where this happens
yeah
https://smapi.io/json/none/164c6b9c0897406ab81085aaa752d4fd
It happens at any location, I tested with the Secret Woods & Muddy Tetra - Sailfin & East Beach - Ghost Pike & Town
all have a weather gsq in their conditions field
hmm, everything looks totally fine
you can't catch it even with targeted bait?
and it works if you remove the weather GSQ?
Yep,
I was testing a quest activating by catching the legendary fish of the docks in my mod and thats when I noticed
Was the weather storm rather than rain? I think they're distinct
if you check the GSQ with the gamequery console command does it show true
@trim sand would you like me to credit you for the idea anywhere?
it was set to sunny but I have fish with sun/rain/windy
check the query
oh please no need. i give out ideas freely.
it is sunny and it comes back false
the conveyer belt is intriguing
I tested the GSQs in my own game and they come back normally
My custom location is reached by using the bus (central station) Do NPC's have an issue getting from the farmhouse and to that location? Asking bc my NPC isn't following their marriage schedule 
you cannot path to central station
Aaa I thought as much
you might be able to set up an NPC warp that goes from the bus stop directly to your location, but the bus entrance is set up to go to Desert so don't mess with that one or vanilla will become sad
And that will be why they are stopping at the entrance of the bus stop
Is that a map tile prop?
i forget how it's set up, i just know you shouldn't change or block it, so you can't use the bus door as a warp
