#making-mods-general
1 messages · Page 355 of 1
how do i set a condition to check if the player has crafted something or maybe to check if there are bigcraftables placed anywhere in the world
i just checked the wiki and doesnt seem like there's conditions for that. maybe i could just check if player has the crafting recipe?
this is all of the base mod character related files
(i got distracted earlier by my own modding stuff sorry for forgetting to tune back in but glad it got resolved anyway)
vanilla has nothing to check those conditions you want. BETAS does if you wanted a dependency, otherwise simply checking the recipe being known is the best you can do
please use the json uploader, dont send json files directly
!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.
json uploader?
the one linked to in the governor message right above yours, Hazel
i just checked the BETAS docs to see if it does, and since it does i might add it as an optional dependency, and if the player doesn't have betas i just use "PLAYER_HAS_CRAFTING_RECIPE" but if the player does i use the betas query? would that work?
the validator
?
(also no worries at all, thanks for helping and it turned out to be a silly mistake by me haha)
yes. That's how we can help you validate your json.
dialogue
disposition made for 1.6 https://smapi.io/json/none/0860897af7b34a93bed41cea78286ba3
festival dialogue and locations https://smapi.io/json/none/e4d4e0d0657144e7968eb96fb1c24996
marriage dialogue https://smapi.io/json/none/f6c38d8094af4bec92b65addb05546bd
as long as you were willing to set up the conditions required for replace your patches based on whether or not BETAS was installed, thatd work just fine
your schedule is still targeting jorts from the tutorial!
(and if you do use BETAS sugar, id recommend the PLAYER_HAS_CRAFTED_ITEM query (or w/e it is i forget) and not the one that checks if the item exists anywhere in the world)
i could've sworn i fixed that 
yup! im planning on using that one
and your gift tastes aren't targeting the correct thing either; it should look like this
"Target": "Data/NPCGiftTastes",
"Entries": {
"CharlesRowland": "Oh, this is brills! Thanks, @!``` etc etc
does this work for when the player doesnt have betas?
"Condition": "!{{HasMod |contains=Spiderbuttons.BETAS}}"
}```
i do see why you made that mistake though. have you unpacked the game files yet? i didn't truly understand target until i started looking at how vanilla files are structured and named
Got it
i thiiiink this should be : false instead of !
Searching the world for my lost calculator every frame
no.
"When": {
"HasMod |contains=Spiderbuttons.BETAS": false
it said this on the wiki though?
also Hazel, you have lines in your regular dialogue that assume the farmer and Jx are dating without making sure they are. And I don't think you're using Fri10 etc correctly, but I could be wrong (I think it's supposed to be <Day><Date>? so you can't have Fri10 AND Thu10)
Conditions and When are entirely different concepts
a When condition is not a game state query
it is only for Content Patcher
and has Content Patcher exclusive syntax
what you see on the wiki is how to use a token inside a Game State Query
ohhh okay got confused
when I was looking through the tutorial it had it written like that for the heart levels
Right, there are things written like that, but they aren't referring to what you think they are
the 10th is always a Wednesday iirc
i do think that's the correct way to write heart level dialogue by day though?
thats what i thought when i was going through like six tutorials
i just checked mine haha
so is there anything else i need to fix and work on?
my brain melted
lowkey, i don't blame you. it is death here where i am
oh also @sweet wharf one more thing about your dialogue, i noticed that some of your ... are ellipses and some are actually . . .
the game won't recognize ellipses, so make sure you're typing out ... every time and not copy pasting it from a word processor or anything that automatically converts it into ellipses
is there an override for babyGirl and babyBoy if Jx and the farmer are married? (or does it not work that way lmao)
same goes for smart quotes versus straight quotes i believe
because having your spouse tell you I heard you have a baby girl now, I know Jas will be excited to have another girl in the valley to play with. might be a bit confusing 
that's another thing I was thinking about when i saw it. because what ever tutorial i found in my rabbit hole journey, said that it could work if they were and weren't married
I'm sure it works technologically but it's a bit confusing in universe, so I'm wondering if there's a way to override it
the jorts and jean thing is because I was using the tutorial as a guide, but if you found more jorts and jeans things, yeah i think my brain was on autopilot when i was working on it at like 2 am
do conversation topics require dependencies?
no they don't, that's why I deleted it 
oh lmao
again I blame the heat, until it goes away and I have to find something new to blame
i only just started looking at using them yesterday, so i'm in no way an expert
because I thought I saw a mention of them in a regular non-jorts and jeans CT but I didn't haha
it truly has been an ungodly hot summer
which is strange because here at least, may was weirdly cold and rainy
Strange and weird? Must be climate change
iT's A cOnSpIrIcY tHeOrY
soooo anything else i need to do?
Wondering if there’s a quick way to test dialogue lines in-game, like how we can test events using debug ebi?
i recommend booting up the game and testing if Jx works now
there are console commands for dialogue yep!
debug loaddialogue
hey I have a question! I'm writing out the dialogue for my npc right now, and I was wondering if I need to write for everyday. I'm writing right now for the heart levels (Mon2, Mon4, Mon6, etc.) but I don't know if I should write all the spring_1, spring_Mon2, etc stuff. sorry if this was a messy explanation
you don't have to, but you can if you want!
Thanks!
does it change much? what will come up if I don't? just the heart dialogue I'm assuming
coding takes time
I don't mind writing a lot, I'm curious as to if it'll make things better or if it changes much
hey guys where would i learn wehre to put files and when to end a file
the more you write, the more fleshed out your character will feel, but the more time it will take to do so. also it's not likely players will see every single line of dialogue you write depending on how quickly the befriend your character
is this for CP? you can organize your files however you like as long as you have a manifest.json, content.json, and all your other files Included somewhere
I see, thank you!! :)
Specifically, debug loaddialogue NPCName Characters/Dialogue/MarriageDialogueNPC/:Key or change MarriageDialogueNPC to Dialogue if it's just regular lines 
any tutorials
I’ve noted it down ❤️
sadly he still stayed in his bed and wouldn't move from his spot 
It really depends. I'd suggest starting off with th<DayoftheWeek><Hearts> keys first
if you want to copy how another mod organizes its files, you can download one that's similar in function to yours and poke around inside of it
thank you I'll do just that :3
sleep a day then see
and does the dialogue work now?
For specific seasonal dates, I usually curate my lines based on certain events. It could be anything e.g. weather, birthdays, personal relationships, festivals, lore, etc.
Day of the week + heart level is a pretty good baseline for a custom NPC (and more than vanilla ones)
i slept a day and he wouldn't move or talk 
and you fixed the target of both gift tastes and schedule? hm
send your updated jsons again please
are there any errors in your log?
do you need certain .json files?
Yeah! When you're ready to go for lines that are day/seasonal-specific, go for it. Just note that the player won't read or maximize all your lines (and that's okay!).
whatever you edited since last time
okay that sounds good to me!! I'll just write until I run out of steam lol thank you :)
the target of your gift tastes is still wrong, which is why nothing else is working. make sure you're targeting NPCGiftTastes like i showed you in the example i sent
(i'll be back in a few, gonna go get lunch)
i fixed that but he's still not moving 
any tutorial on cpatch
did you reload since fixing it?
type patch reload YourModId in the console
!startmodding
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.
i just reloaded it, now I go in and try to see if he's workin?
yep
he still won't move 😭 
does the dialogue work?
no
ok that sounds to me like there must still be an issue with either gift tastes or some other vital component. can you please remove unnecessary mods from your setup, then run a patch summary and send the resultant log?
okay
so to send it would i put it through the smapi log parser?
yep!
generally anytime someone asks for a log they want it through smapi.io
same with json
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 1 C# mods and 2 content packs.
i think i figured out what it's doing, because my mod id has .jx_Jx and it shouldn't be that
heavenlyhazel.jx is your mod id
the _Jx is the internal name of your NPC i assume
oh is this about the message it's giving you? that's not actually an error and i don't know why it sometimes says that
hm. weird
your blank json load looks a little odd to me for the schedule. can i see the patch where you load your blanks?
how do i do that? Im quite confuzzled
a patch is inside {} and has an action. whichever patch you wrote that has "Action": "Load", "FromFile": "assets/data/blank.json", i would like to see that
(or whatever FromFile path you have)
i think i have that in my content.json
okay, do you mind sending that again
aha yep look at the target; you have Characters/schedules/{{ModId}}_Jx schedules/{{ModId}}_Jx
remove the repeated element
this should hopefully fix your dialogue issue as well since a spring schedule is also bare minimum for an NPC
i hope so
hmm for some reason the recipes do appear in shops, but the description is the torch one and when i bought it i didnt get the crafting recipe.
shops.json: https://smapi.io/json/content-patcher/670eaf5eaef8464c8559ce1b4f3c0bd5
craftingrecipes.json: https://smapi.io/json/content-patcher/6d02e53941cd4fecaf6c47b9a4440947
are your entries allowed to/supposed to have (Recipe) in them? i'm unfamiliar with selling recipes at shops but that struck me as odd
if it's normal or required ignore me
idk, i just put that because the vanilla fish smoker shop entry has it - i think it makes the item display name have (Recipe) in it
gotcha
can you post your BC data
here - it's only catcrows, but dogcrows is the same but all dog instead of cat
https://smapi.io/json/content-patcher/129e09e026134b0fb11a3a768f057a69
The Name is the issue; if you don't specify otherwise the recipe unlocks the recipe with the Name of the object
ohhh so the id and the internal name should be the same?
in this case it's trying to unlock the recipe with the name CatRarecrow
yes, highly recommended
heyyy, im back. well he's still not talking, and it says there's something up with the schedule so just give me a sec and ill get you the report
@sweet wharf You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 1 C# mods and 2 content packs.
this is saying you have two entries for spring
interesting, i have one for summer time, so is that what it's confusing it for?
it shouldn't be. share your most recent version of your schedule?
okay that's really strange because you definitely don't have two entries for spring and your spring schedule looks okay at a glance
are the coordinates of the first schedule point meant to be 40 13 1? the other entries all say 40 13 3
well, i didn't know if that would matter since it was the way he was facing, but i think maybe i could change it
it's just the only thing i can think of 🤷
maybe someone more eagle-eyed than me can spot something wrong
yeah, we're a bit too overheated
welp, guess i can take a break and just wait for someone to see if they can find anything
a930 backcalculates to 630
You have too many schedule points tbh
It takes longer than you think for npcs to walk from map to map
yeah, the error here is multiple 630 keys, so a910 SeedShop is probably being calculated to a 630 departure time
this is EXTREMELY TRUE
if anything, the npc probably doesn't have enough time to get there on time, yeah 
citation: when I walked around after my guy to his schedule points and realized he literally just got to one of them and now he's immediately heading to the next one
(tbh that might be worth something asking for a fix/safer error handling for in 1.6.16)
(since sometimes its not up to you whether or not it gets calculated like that. sometimes another mod may put too much stuff in the way or add another warp somewhere and suddenly it changes it enough to calculate to a duplicate key)
yeah, starting to wonder if a can be made to clamp to previous step + 10 or something
What r the chances of a warp schedule point
it's easy to think of IRL stuff like "And he goes here for half an hour" but then you put it ingame and man it compresses time hard
imo it might be better to replace the .Add(time, path) with just thedictionary[time] = path
That'll cause void walking lol
or at least a TryAdd instead of an ADd
i dont know who you're replying to here
Tbh it's accurate to living with adhd too
You
how would it create void walking
Because you're overriding the travel to the previous point
then just do the tryadd thing and log a proper error
Possibly this but they won't arrive on time lol
Another solution js making npcs hurry
@thorn jacinth The approach is to use content patcher to editdata Data/Machines
Add new rules for fruit tree
C# approach would be either doing data edit based on Data/FruitTrees or perhaps just custom output method
I'm going to need to do some research cause i have no idea what any of that means ToT
!startmodding
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.
Check content patcher tutorial
Thank youuu
I definitely have a lot of reading ahead of me
Small question. What's the protocol for making a mod that alters bits of dialogue from other mods? Like changing a vanilla character's name.
Do I need to contact each mod author, or do I check the permissions on the mod to see if it's allowed, or something else?
I want to do it right and not break conventions.
If you're making a separate addon mod that does not include any assets or code from the other mod, permissions don't matter.
That said, authors often like to see how the community interacts with their mods, so it would be nice to give them a shout and let them know what you're doing
It is quite a task u sure u wanna do it? 
(Tbh I would contact the other author)
You might not get an answer but they can do localized text fun to sub in the name of the npc
If you are including assets or code, then yes, you absolutely must have or get permission to publish
Which is automatically compatible with all mods that rename npcs
So, out of curtesy, contact the authors.
the animal scarecrow mod is now published! ill be posting in #modded-stardew 
how do i make a translation request? im not super familiar with github so im not sure how to format everything.
like a pull request or an issue?
I'm 97% sure the translations github is dead
an issue?
oh.. i used to translate a lot on there, but yeah it seems pretty inactive
im looking for translations for my mod, its just config options. i translated it into korean myself though
yea nowdays you just post and maybe ppl translate for you
reach out through comments and such
k it's not super needed though for functionality or anything since it's not like a dialogue mod
good to know
heeey so back with another question about using SpaceCore to do recipe overrides with context tags..
So I have four different groups of objects with the context tags: milk, eggs, meat, and butter (using the context tags milk_item, egg_item, meat_item, and butter_item respectively). I can get the first three to work, but for whatever reason the butter one still only accepts the butter added by my own mod as a valid input without allowing for the use of butter from other mods (like Cornucopia, SVE, Wildflour, etc). It's not showing any errors in SMAPI or the JSON validator. Does anyone have any ideas as to what could maybe be causing this?
Files in question:
context tags file: https://smapi.io/json/none/d041a56f768b447ea23e80f5e99af0e0 - this adds the meat_item and butter_item tags to various items
cooking override file: https://smapi.io/json/none/ab8083a5d7f54b058a0c1e709a012e7b (the first recipe with butter is the Brownie one starting at line 150)
If you hold up the butter item in question and do debug listtags does it have the tags you need?
what's the best way to implement an npc that has two different stories depending on if you want to romance them or not?
theres some feature in spacecore to control whether your npc is datable on a per player basis
also a feature to start dating as part of event command
your SC patch is "Use Other Butter": false,, is that intended
for research purposes, what data does stardew valley send in co-op games to synchronize player data between devices
that's a very general question, but there's 2 main paths
game itself uses Net[Whatever] types associated with a NetRoot
smapi provides mp mod message for mods to use
Players all have netroots that are always synchronized, as is NetWorldState. Aside from that, it's just locations that are synchronized, and only some of them. I think there's a location data field that determines that?
on which line?
if it's the one on line 9 then yeah, that's intentional. There's a few recipies that use both butter and meat items, but whether or not they're generalized is handled by two different config settings. The first section handles the case where a player has enabled the generic meat config option and disabled the generic butter config option
yeah I see the other patches now. one more stupid question: are you sure you included that file
I'm like 99.99999% sure
I see it in the content json file, and I even tested it by just having that one included by default instead of cooking.json
can I see your cooking recipes file
sure lemme grab that rq
Cooking: https://smapi.io/json/none/c344ac78051a4a829a4cc725885528ff
Cooking replacement with cornucopia: https://smapi.io/json/none/3715ec1576c345ddb2f7014c71a226f2
Content.json: https://smapi.io/json/none/8d8f7733301a4de8b0b41f1318520b61
In content.json, puffs and pastries additions start on line 337
cooking_replacements and cooking_replacements_cornucopia are similar, just one uses only vanilla items and one uses some crops that are added by cornucopia. But which one gets included is based on whether or not you have More Crops installed so it's not a case where they're both being added by mistake
The only thing I can think of is if it's got something to do with where I'm pulling the category image from. Cause the other three categories I have all pull the image from the Maps/springobjects file, but the butter one pulls it from the mod's spritesheet
it just shows the butter image added by my mod
which it's supposed to cause that's what the coordinates are for
4
sorry, Empanada
in which patch?
with generic butter on
2
ok, that means SC is indeed applied (your butter is position 2 in the SC patch but position 3 in the real recipe)
hmm everything else looks fine, strange
yeah I had to shift the eggs cause SC doesn't let me do the -6 shorthand for the category
its the ActiveLocation field in Data/Locations's CreateOnLoad block
the ActiveLocation field also cannot be changed once the location has been made as its only read once when making the location and read from save afterwards.
The other location that is syncronized is the one the farmhand themselves are in
yeah it's really weird
it is, I'm asking those stupid questions because I can't see anything you did wrong otherwise
one last q: you're not using any cooking mods like LOCS or YACS?
oh don't worry I get it, I have to ask all sorts of stupid questions at work whenever customers come in looking for ink
what are LOCS and YACS?
O.o ink?
Love of Cooking/Yet Another Cooking Skill
I had Love of Cooking installed, but I removed it from my dev farm cause I knew that it caused issues with my mod's cooking
I work at an office supply store. the amount of people that come in not knowing what ink their printer takes would astound you
oh no
the other mod I know that uses the cooking override feature is Cornucopia Artisan Machines for the cheese cauli to accept Cornucopia's Vegan Cheese/Goat Cheese, I suppose you can test that one works
I need some help, my music mod is crashing, and I can't tell what the error log means. I think all my brackets are closed, but I can send the content.json if I need to
https://smapi.io/log/b1b569c3118a4298bf6160cb922320b2
and the smapi log for reference
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 194 C# mods and 528 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I know that, Governor
!json your json is invalid, yes pls post what you have
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.
(pls use the parser at smapi.io/json)
shoot, sorry
Yeah that one works. Honestly I might just try rewriting the file from scratch and seeing if that fixes it. Might have a typo somewhere I'm just missing
ty for the help Selph ^_^
Ah, I see.
(Me and some other people are fountain pen enthusiasts.)
missing ] between the last two lines to close out the [ on line 3
Thank you!
In the Data/PaintData.json file
All items have Building, Roof, Trim, will they always have all 3, or could a building not have one of these items?
from the wiki:
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.5#Paint_buildings
Each paintable building also has a separate mask texture, like Buildings/Stable_PaintMask for the stable. The masks use three predefined colors: green (roof), blue (trim), and red (walls) matching the order in Data/PaintData (other colors are ignored).
not only are other colours ignored, but you can completely omit any of these colours without any issues
There are two values for each part, do these values have to do with color?
likewise, you needn't necessarily even have the paint mask's RGB colour regions match up with roof/trim/walls; you might make a wishing well with transparent G for colourable water, full R for a paintable bucket, and maybe use B to change the colour of some birds on the roof
from the same heading:
Data/PaintData lists the buildings which can be painted, the group names shown in the UI, and the relative ranges for the brightness slider.
i'd imagine you're looking at the brightness slider, which is explained in the big quote block in the link
it probably involves a bit of guess-and-check to get it how you like it, but that's an exercise for the reader hahah
So it can have other names, not necessarily Building Roof and Trim
Hi, I'm new to the server and to making mods. Can someone help me get started and make a mod? I honestly don't know where to start. So far, I've only been able to rely on pre-made codes, but I don't think there are any codes made for what I want to do.
!getstarted
If you would like a guide to setting up mods for Stardew Valley, check out the getting started guide! https://stardewvalleywiki.com/Modding:Player_Guide
um wrong command
!startmodding
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.
yeah that was what i was thinking of 😅
also checking pinned messages might help for getting started
welcome! the links governor provided above ^ will give you a lot of what you need and good references.
if you don't mind letting us know what you want to do, maybe we can give more targeted guidance?
And to avoid communication errors, I read everything very carefully to understand it well, and that's why it takes me a while to respond.
thanks nwnw
nwn
What is your native language?
spanish
In this example, the color blue and even green are omitted, but I didn't see, for example, the color red being omitted.
"Building": "//Roof/-25 0/Trim/-25 -8" << Would that be correct?
"Building": "////Trim/-25 -8"
"Building": "Building/-50 -10///Trim/-25 -8"
yay posted my mod on naver... even as a korean that site is sooo hard to navigate
Knowing what I know of the game, I wouldn't try that
Why would you need that anyways
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 7 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Nevermind, I forgot a mandatory dependency.
@urban patrol I did it, he moves!
yay!
Richmountain, did you mean to post that here? This channel is for creating mods, not playing with them
He follows his schedule, but I still can't get his dialogue to work so I'll work on it tomorrow
HE REACTED WITH DIALOGUE WHEN I DUG THROUGH THE TRASH
I'm just trying to understand the possibilities, as I'm creating a Python class library to compile code into JSON for the content patcher. If it's possible to omit a specific color, as I've been told here, I need to make that possible.
(not related to your question but that sounds very cool, good luck!) /lh
i don't think you should make questionable inputs like this possible
Does anyone know if theres a trigger action condition for an npc receiving a certain item?
e.g. gift Caroline a tuna, next day receive mail from her with fish tacos
there arent any built in queries but betas seems to have it? https://stardew.button.gay/docs/betas/triggers#GiftGiven
you can use a special dialogue for it too
"AcceptGift_(O)120": "Oh a tuna!$action AddMail"
syntax prob wrong but u get the idea
That writing is art™ chu
oh what you can set dialogues as conditions?
looks promising ill check it out, thanks all
Use the dialogue as the trigger action action, bypass trigger action entirely
sorry can you elaborate, I'm kinda slow 
You can use actions in places other than trigger actions. Dialogue, events, etc. What chu is suggesting is that you use the dialogue action command to directly send the mail from Caroline after you give her a tuna instead of writing a trigger action.
If you ctrl+f for "action" in the dialogue page it will show you the action command
Ah alr, is there a way to get the DayEnding trigger from trigger action in there? In the dialogue example it reads like I'm getting the mail instantly after gifting (unless I'm wrong). Can it be tweaked so that I receive it next morning using only dialogue?
you could use the dialogue to set a mail flag instead and then also add a trigger on DayEnding to check the mail flag that sends mail (separate from the mail flag)
No, go look at the trigger actions page
It shows the arguments, which have a "tomorrow" option
I checked the mailflag list but I didn't see what I was looking for-- just in case I missed it, is there a mailflag or world state specifically for when a player has completed ALL of the Monster Slayer/Adventurer Guild board tasks?
AddMail <player> <mail ID> [type]
oh that's simpler
If [type] is tomorrow it will add it to their mailbox the next day.
I'm really hoping to not have to list them one by one for this event precondition.
(I just realised I could pull my Photopea tab out into a separate window so I could open my Stardew group of tabs without risking losing my Photopea work)
There are some fields but I don't know how to check them. However, completing all of the Monster Slayer quests gives the player an achievement and there's a GSQ for checking achievements?
afaict that GSQ can't check the monster slayer one, since it takes an integer ID from Data/Achievements and the monster slayer one isn't included (or displayed in the game's achievement list, etc)
Oh that is unfortunate
i just noticed this--should i be concerned that the second key (the one with the red arrow next to it) isn't registering green like all my keys normally do? this is in notepad++
i've had issues with this one's preconditions before (incorrectly spelled NPC internal name) so now i'm worried
Someone said they've found that N++ stops colouring field names properly when they get too long so I'm guessing that's what's happening here.
oh that would make sense! this is my longest one by far
You should be able to check by just cutting a random bit out of it to make it shorter and see if it gets coloured again.
it does indeed 
most IDEs have limitations like these, so it’s worth knowing about for sure
Looks like a thing N++ does.
IDK how big your event file is, but for me VSCode doesn't do this even when my events are 100000+ characters long (but a lot of things is commented out, after all...). Just letting you know, not pushing you into VSC at all!
And also, if I may suggest a few things I noticed:
- I'd recommend using full preconditions instead of aliases (thanks Aba for noting that!)
- Intentional, I guess, but that 5 hearts event is not i18n. This link might help you converting it: https://nom0ri.github.io/sdv-i18nifier-app/
- Events can be multilined (https://stardewvalleywiki.com/Modding:Event_data#Multilining) for better readability; however, programs might struggle with its formating, saying that it is incorrect while it isn't, or (the worse one) not saying incorrect things when it is incorrect.
Just a friendly suggestions I noticed!
oooh this is the stuff I do actually know about! so some more context about all three of these points for anyone wondering why:
- To be precise, the short preconditions are deprecated, so while they do currently work, there’s no guarantee they’ll continue to work in future versions. All new mods should use the long ones.
- Anything not i18ned can’t be translated in the regular way. Please i18n all in-game text.
- To make IDEs correctly understand multiline events, you can use jsonl or json5 instead of json as the “language format” (in VSCode you can set it in the bottom right of the editor) because these formats support multilines (base json doesn’t)
3.5. However be aware that setting it to jsonl will take away your error checking so make sure you're confident with your patch syntax before attempting this
(which error checking? it will still check json syntax)
It will not still check json syntax ^_^
hmm, interesting. I would expect jsonl to complain about this. I’ll check in vscode in a bit
N++ with JSON5 just screams non-stop about the multilines
I don’t trust N++ anyway 
Aaand I don't have anything but JSON for Sublime so I must investigate its options
Yeah, jsonl definitely not picking that up as an error. Weird!
strange. is that vscode?
It's because it views each line as a distinct entity so it can't check the line above it, iirc
That's how it allows the lines
It does change colours if you break a rule inside a line...but it still doesn't actually error
…well that’s a strange way of implementing jsonl
I wonder if that’s the format spec or implementation weirdness
Like so
This is raw Microsoft VSCode, yeah.
Yeah, it doesn't even complain about this monstrosity.
That's... close to being completely broken I'd say, honestly.
Hence my warning that people only use it if they know what they're doing haha
VSC doesn't actually complain too much about multi-lines with jsonc
That's why I wrote that
Okay I did just switch to jsonc and now I have 80 errors...
I think json5 outside n++ should have some multiline support but I could be wrong
not too much
But they're very consistent errors so they're easy to ignore in favour of the actual errors
someone should write a language server for stardew flavour json
dh I nominate you
…I do wonder how hard it is to write one ngl
Apparently Sublime doesn't support json5 or jsonl
Hey, I joked about a VSCode extension that prevents removal of closing braces! 
It really does feel like that would solve a huge amount of problems for people.
(And cause others.)
okay but what if we take the textmate grammar for json and customise it…
jsonl is a format where each line of the document is pretty much considered its own json document, I'm surprised it doesn't error out more and vaguely accept normal looking formatted json
Oh, so it's essentially for... a file of lots of minified individual JSON files?
its a way to something thats closer to csv than json
CSV but better is what I gleaned from the JSON Lines website
["Name", "Session", "Score", "Completed"]
["Gilbert", "2013", 24, true]
["Alexa", "2013", 29, true]
["May", "2012B", 14, false]
["Deloise", "2012A", 19, true]
is valid jsonl, as is
{"name": "Gilbert", "session": "2013", "score": 24, "completed": true}
{"name": "Alexa", "session": "2013", "score": 29, "completed": true}
{"name": "May", "session": "2012B", "score": 14, "completed": false}
{"name": "Deloise", "session": "2012A", "score": 19, "completed": true}
Yeah, so it really is just one complete JSON "entity" per line.
That's actually pretty cool.
Not much help for us here, but cool nonetheless.
using the jsonl proper sites validator, throwing normal json just spits out a bunch of errors, so the vscode plugins kind of a meme
so it doesn’t work in that regard either 
I like that it keeps my familiar colours
Even putting invalid JSON on a single line ({ "Thing": [ { "one": "two" } { "three": "four" } ] }), it doesn't complain.
So I really think it's just... normal JSON auto-formatting, and completely useless otherwise.
false negatives are arguably worse than false positives
Excuse you, DH. It is doing its one job! It's keeping everything JSON coloured for me!
Syntax highlighting is kinda pointless if you are having to manually play find the missing comma because it will never say theres an error
What about CP's JSON schema?
That I just have in all of my JSON files by default.
json schema is for the contents of the data structure, not the syntax itself
I'm good at not having syntax errors 
Ah, my bad!
(But yes this is the reason that I give caveats when I suggest multilining haha)
making an alternate textmate grammar might not be as difficult as it seems… I’m gonna have a look, maybe we genuinely can get a stardew flavoured json language extension 
And rarely suggest jsonl for it
It's still on my todo list to do a proper LSP, at which point I can have newtonsoft do it
I wonder if Pathos just ignores the errors or if he uses jsonl
I can’t remember what lsp stands for
ah right
But Pathos tells people about multilining
Perhaps it's a "for thee but not for me" situation lol
I think he mostly uses visual studio anyway
but looks like its ignore the errors, as Central station does use comments
Rider is still the smothest JSON editing experience I've ever experienced. 
VS doesn't allow for picking languages?
it would have a different language list
oh visual studios json editor out of the box seems to not care about comments anyway
unless he has some config somewhere in the project or filesystem that made vs happy with it
hi im back again ^^;;
there are 2 tiles that have collision that arent supposed to
and 1 tile that is supposed to but doesnt..........
there isnt anything in the buildings layer that would give them collision
in the meantime, vscode is licensed under MIT including the language servers, and enabling comments and trailing commas in json is a single line change... 
and the entire ladder is in the building layer but the top part doesnt have collision
tiledata wouldnt give them collision either i dont think
so im confused
should i add the tilesheets aswell? idk what the rules here are abt sending zip files..
sure, and sending zip files is fine if it's your own stuff afaik
Unrelated, but none of your tilesheets should be in other folders
The top of your ladder is not on the Buildings layer, it's on Buildings2. Buildings2 doesn't have collision, only Buildings does. So just move that tile onto Buildings and that'll be fixed.
ouhhh
And the two spots you can't go onto have tile 1482 present on the Buildings layer. That's an invisible tile which is why you thought it wasn't there.
as for the tiles that have collisions that shouldn't, you have an invisible tile on the buildings layer
oh, dammit aba 
ooohhhhhhhhhhhhhhhhhhhhhhhh
But as you can see when I hover over that spot, the number 1482 is visible inside square brackets down at the bottom of the screen. That's the tile ID for the tile present on that spot on that layer.
If I hover over the tile next to it you can see it says [empty] instead.
thank u both so much...
Sowwweeee! I saw an opportunity to procrastinate eating my tea...
The best way to spot invisible tiles is to use this tool and select somewhere you know is empty! it will highlight all your empty tiles
for example in your case
Don't forget what I said about the folders, by the way! You shouldn't ever be telling Tiled to look for tilesheets in another folder unless you enjoy giving future you problems they will have to fix later xD
they're in a folder called "Tilesheets" (and one is in a "recolors" folder inside it)
they should be right next to your map
Them being in different folders is good for when it's in game because you want the map to use the tilesheets in the game's contents rather than in the mod folder. But when you're editing them they need to be in the same folder so you don't give them a broken tilesheet path.
(the other possible thing to do for when they're in the game is to just add a . to the beginning of their names, and the game will ignore them and use the content ones)
Yes, I always slack on telling people that part haha
SOLVED (all by myself I'm very proud) - version has to be a floating point number, can't contain letters...
Heya, I'm new to modding... got an issue when trying to build the example mod on the wiki (https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Create_a_basic_mod), trying to build the project results in an error stating The "DeployModTask" task failed unexpectedly, without any other indication to what caused the error. ModBuildConfig version 4.4.0, sSMAPI version 4.2.1, Not sure what other details I can add, any help would be extremely appreciated :)
csproj: https://hastebin.com/share/ayoxotavud.xml
manifest.json: https://hastebin.com/share/qaraqacedo.json
Is there any advantage of AT over CP for furniture?
If you like the approach of having lots of skins listed under the same piece of vanilla furniture, yes. Worse performance though. And I'm not a fan - I convert any AT furniture packs I download into CP because I hate having to know which furniture item to check to find things.
im gonna keep this in mind for when i attempt furniture in the future 
Worse performance in what way?
Yes the looking which furniture it was can be frustrating if you have many
Alternative textures can affect your performance negatively, especially if you have a lot of at mods
Ooh
And what's better, if i have a lot of items, one big sprite sheet or many small ones?
One big spritesheet is better
Is there a template grid for furniture?
you can just make a blank sheet with a width in multiples of 160, because 1 tile is 16x16
furniture coding depends on tile index to give your furniture the appropriate texture. a multiple of 160 works best because the index numbers will be easier to determine
To make it easier for self you can try to put same size furniture together
What program are you using?
GIMP
not sure if this would be of any use to anyone but i saw the discussion about json editors from earlier -- i edit smapi/content patcher json files with an editor based on gtksourceview, and this is the json.lang config i use to make comments and newlines work right
i have this file in ~/.local/share/gtksourceview-5/language-specs but different gtksourceview editors (e.g. gedit) might need it to go somewhere else
Hi everyone! My custom TV channels framework is almost finished. Can someone help me come up with a name for it?
Custom Channels has a nice ring to it!
"Custom Channels for Television" or similar lets you abbreviate it as CCTV, which is a fun goof
+1 for cctv
note I want to do more interesting stuff than just the syntax highlighting.
I want to do stuff like being a highlighted error/warning if you are doing EditData on an asset that isn't loaded
Can one implementation extend another? I think it'd be useful to have a general one for relaxed JSON (e.g. comments, multiline text, etc), in addition to the more specific one for Content Patcher features.
To see the grid : View -> Show Grid (also recommend View -> Snap to Grid), set the grid size to 16x16 in Image -> Configure Grid. Don't know about numbers, but it's pretty easy to count anyway
I have a Google sheet that breaks down the vanilla furniture data for the first set of furniture, including the tilesheet indexes and dimensions of each item, if that helps.
The folks here have already explained how to count your custom furniture indexes, but I definitely needed a visual when I was first learning how to do furniture sheets
This will be useful, thanks to both
Do GSQs work in data/character fields like "CanBeRomanced" or is that strictly true/false only?
@woeful lintel hey do u know off hand if FF furniture can be PIF doors
You could use a dynamic token in CP to achieve something quite similar I'd assume
no idea what that is, but FF Furniture will register vanilla Furniture to generate the object if that is the question
is the id just a normal one or special format (i.e. how do ppl know what put)
Have used content patcher condtions in the past. Gets weird in multiplayer.
the usecase is someone make big castle furniture and wanted to go inside the big castle, normally you make building out of this but i was thinking maybe you could make just the door of castle a pif door, and then go into a pif room (locked to just that door)
i was actually in the middle of i18nifying my events when i noticed that 😂 which is why the above one is! i’ve been using that tool and it’s been super useful. and i’ve tried multilining before but i find wrapping text is good enough for me at keeping it readable without N++ screaming at me lol
the ID is defined in the FF format, like:
{
"Furniture": {
"<Furniture ID>": {
//Furniture definition
},
//Other Furniture
}
}
and it is not namedspaced or anything right 
ig it is just seeing whose performaction patch win
nope, the authors have to insert their ModID themselves (with a token)
CanBeRomanced only accepts bools, it is not a string. however its important to note that every GSQ is already also strictly true/false in output only. so something like EMP's GSQ token would work.
I need a big ass house. Like 4-5x bigger than the farmhouse. Something to fit the church from SDS. Is there a way to make it?
you can make a building but u need a bigass farm to fit it 
There are many!
i also dont think furniture has any real upper bound on how big they can be
So if i make a reskin of a house it will be enough? (I bet not)
you can make it happen yea, but it might mess with events so i recommend no
Uuuuuu
Oho thank you
Worth a try
Since there are the collision squares i was afraid i'd have to make a map for it
so furniture can't have complex collision in vanilla
but buildings can
there is CollisionMap thing you can set for this
Amazing
@tawny ore Hi! I always feel so needy pinging people but you said on your mod page I was allowed to (and I hope that goes for this channel as well). I'm trying to edit custom bushes added by other mods for Stardew Valley Balance Overhaul. I want to use CP to change the min and max stack of Growable Forage blueberry bushes (doing this instead of changing prices makes my life a lot easier since I wouldn't have to adjust any related cooking recipes), but my attempts are failing pretty badly.
If you want to share how you're going about it, I can take a look
(I searched you last message to see if you were online and it was in the pre alpha channel and I didn't check first 🙃 )
!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.
"Action": "EditData",
"Target": "furyx639.CustomBush/Data",
"TargetField": ["(O)481", "ItemsProduced"],
"When": {
"HasMod": "furyx639.CustomBush"
},
"Entries": { "MinStack": "3", "MaxStack": "5" }
},```
This was my last attept, but I haven't really gotten close.
This gives me:
"Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Growable Forage and Crop Bushes.json #1 > EditData furyx639.CustomBush/Data > entry #1" to furyx639.CustomBush/Data: failed converting Integer value to the expected type 'LeFauxMods.CustomBush.Models.CustomBushDrop': Error converting value 3 to type 'LeFauxMods.CustomBush.Models.CustomBushDrop'. Path ''.." errors
ItemsProduced is a list, so I don't think you can target the property MinStack/MaxStack without knowing what entry in the list you're editing
All I had to do was add a #0 and now I feel a little bit silly for asking
But thanks for your help either way! Sometimes all I need is just a little nudge 😇
👆 they can with FF
Another day another bug
I'm having trouble getting my conditional textures to load if anyone has insights
the texture never changes from the first one loaded (the NoTail version)
i thought the priority would fix it but its still not working
I don’t think that’s how you conditionally change textures because they might not get invalidated in time? but I could very much be wrong
try adding the opposite condition to the initial patch
(though again, I don’t think it works like that, someone who knows more about texture modding should come in and clarify
)
i may be wrong but i'd suggest you use the appearance key for switching conditional sprites?
toothless is a pet
Yur
ohhh nvm
is the intent to switch the sprites during the event?
hi button, you know things, save us please
I think the intent is to change it from then on, from what I remember of the movie’s plot
not necessarily
the way i wanted it to set up was
after this event, i want a different spritesheet to be used so i can use it during the next event
and then do that again with a different spritesheet
(i mostly aks bc im not sure whgat "Wem.Toothless_Play" is supposed o be)
sorry yeah those are events
so after that event, i want to use a different spritesheet which will then show the sprites i want to use in the next event
and you're sleeping a day after the events?
tokens and conditions are by default not re-evaluated until the next DayStarted
Is event toothless the pet or just a temp actor or some sort
ah okay
the pet
they will not re-evaluate after an event, the soonest you can do is after the next time change
i use petactor for most of the commands
LocationChanged may be good enough if the event warps you somewhere and then warps you bacjk before ending
okay that makes sense i will test the events doing that
I wonder if u can swap the breed somehow
the events are meant to be played across different days
so yeah i should test it that way anyway lol
Then u fine probably
well, even if its on different days, if one of the events involves putting the tailfin on, you would see toothless without the tailfin again after the event finishes
bc the condition is not re-evaluated
thats okay he doesnt actually appear outside of events until you adopt him
and then he'll be using the tail-on sprites
then it probably is fine then
thank you for the help!
also yeah the priorities dont matter at all here
i thought i was going insane
actually theyre Loads
so they do matter a lil bit
but you dont need Low/Medium/High
if you made the first one require having seen neither of the event then it doesnt need priority bc it simply wont apply if you have seen em
right
and same for the second one requiring not seeing the third, and the third then needs no priority
but im only explaining this bc you implied you werent sure if priority would help
its not actually necessary
if the events are set up that you must see the previous event to see the next event, would that matter then
leaving it like this is still just fine
by default a Load action has "Exclusive" priority, and only one patch may Exclusively Load an asset. so you would need to make sure the first patch specifically did not patch if another one was meant to patch. you'd have to turn the first patch off essentially, rather than relying on turning later ones on
oh i see
which is when priority stuff matters, at which point you can do it by turning the patch off OR by the way you're doing it now
both are valid
yours happens to have 3 different states so a simple Low/Med/High works out nicely but if you had more than 3 then you'd have to start doing like, "High + 1" or w/e i think and itd get unwieldy
oh my events can be triggered without sleeping a day
how do i make it so that you must sleep a day
you could only patch in the 2nd event with a CP When condition checking if theyve seen the first
you can also m,ake the 2nd require a mail flag and only send that mail flag on daystarted/dayending if theyve seen the first
yep
okay perfect thank you
what are CTs
make an event rely on NOT having a CT active, but that CT gets set at the end of the previous event
Conversation Topics
ohh right
so like:
Event 1 requires: Nothing. Event 1 starts "MyCT" at the end of it
Event 2 requires: Seen Event 1 AND "MyCT" is not active
event 2 will only work once the CT expires
which you can set to expire after any number of days you want (default 4)
i see
right
okay i will tinker around with that thank you! and the sprite changes are working now yay
If it's just the day u can set a mailflag that u unset at end of day
Yeah, although u can only use it once right
you can reuse it
"HasSeenEvent": "Wem.Toothless_Play", "Wem.Toothless_GetTailfinRecipe",
is this the correct format
or is it "Event ID, Event ID"
this one
the only time you'll see quoted things separated by a comma like that is if theyre directly in a list [ ]
@alpine mortar
Hi all im just wondering does anyone on here use stardrop to mod if so is it possible if you could help ?
for using mods? this wouldnt be the right channel for that, this is the one for making mods
you'd want #1272025932932055121 i believe for issues with stardrop
hmm my removeQuest commands are not working in my event but the addQuest ones are. I looked in the game files and removeQuest is always at the beginning, is that a requirement?
nvm fixed it
sigh, now the decision on if i want to manually put in every item id i want to correspond to this gift taste line or not...
maybe just giving each item context tags would be better, but then i feel awkward tacking on like 3 different tags onto items
🤔 if you have a unique gift dialogue for a whole category, and then have a unique dialogue for only one item in that category, will that line be displayed when gifting the item, or will it just default to the category line
It prefers the more specific line, so it should go line for item > line for category > line for regular gift taste.
hm ok thats good. 😅 i just love being overly specific in gift taste dialogue...
even if it means more work for me...
...and even if i might be the only one who will see all the lines....
But you know that the lines will work and that you made them, so you’ll be happy. That’s worth it imo. 
(Please actually try it in-game, though. I definitely know it’s possible because I took a similar approach with my Everlasting Flowers, but it’s been a while since I made it.)
(RejectItem keys override any level of gift taste, even from a more generic level than a specific like/love, so beware of that)
hmm i cant get my custom pet to actually move
i used the code for the cat pet but it still wont move
Did you copy all the behaviors over from the cat?
yes
And are your frame sizes the same or bigger? If they are bigger you might need to tweak some things from the original code
the pet fits with 32 x 32 is that what you're asking?
i hate vs man i hate the snipper system
Yeah, that's the same size then. Do you mind posting your Data/Pets JSON code?
!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.
Yes! I have to leave for dinner but if you any suggestions I will add them in after I’m done
is it a bad idea to leave comments turned off on my mod page? the bug reports tab is still available
it's your mod page do what you want
how do i link quests together with the same name? like a questline? it doesn't look like mr. qi's quest does that in vanilla (it says null for the next number), but somehow they still link and i'm like 
or does it just matter that the ID is different, the name can be the same
In the quest modding page
It says you can add another quest to trigger after completing the first one
yeah i realized i figured out the answer after asking 💀 the id just has to be different
It’ll be a different ID but that’s how I did it
u want a quest with multiple stages then yea just multi quests it's fine
thanku friends
Line 32, you used Name instead of Id
For Walk
another question: i want the player to gather 4 items, but i don't say what the items are in the description. is there a way to make it so that when the player picks up the right item, it lets them know? like how if you pick up robin's lost axe?
Ohhh okay thank you!! I’ll test that when I get home
also, would it be better to make this part of the quest a special order? it probably would
Yeah, you'll want to change all of your "Name": fields under Behaviors to "Id": instead, Name isn't a valid field there. Looks like you did that for all of the behavior types.
I see okay that makes sense
I don’t think I would’ve caught that on my own thank you so much
In the Robin axe quest, does it let you know when you pick up the axe?
Sorry I don’t remember the quest well 😭
i think it does yes
but i dont see any.. like, string in the quest file
so im like ??
yeah
I edited that line for my NPC Overhaul mod, lemme see where I found it
ah-ha, yep
Which line specifically is needed?
nvm its the strings folder
ya i found it heehee
yeah, it's definitely in strings
i wonder if i can make. new strings.
You can.
I've added new strings and then called them with the TileData Action Message property before.
Trigger action on item entering inventory?
PLAYER_HAS_ITEM <player> <item> [min] [max] GSQ for the Condition, yeah
can i make a string appear when that happens? omg
in the actions list theres just addmail but no display like.. a dialogue box 😔
when do GSQs update?
wait BETAS might have something
I don't know if there's an immediate action to prompt a dialogue without using something like BETAS
it does
mr pathoooooooooooos i need this game in my vanilla fuuuunctionsssss
Does anyone know where is this map in the game files?
where is this map used?
thats a furniture
found it in furniture.png in tilesheets folder
@uncut viper hello sweet angel, in your BETAS is there an option for a trigger to occur Now? or when a player gets a certain item? i see CropHarvested and it's almost what i want, but i was just wondering if i had missed something
anyone know where the seasonal decor item is in the tilesheets?
iirc its under the craftables tilesheet
im trying to find that in vpr redrawn and am struggling big time 
I had to use Esca's Modding Plugins to trigger an event when a player got a mail flag. The one I used was Esca.EMP_TimeChanged
As far as I can tell, that's the closest thing that would work
maybe that Spiderbuttons.BETAS_ITEM_IN_WORLD?
thats a gsq though, i need a trigger
It's the closest thing I found
And I don't have lots of experience with CP, but can't you make it so when this GSQ is true you give a flag to the player and a trigger action for when the player acquires the flag?
the issue is making the trigger fire as soon as that happens
currently there's only daystarted, dayending, and locationchanged
but i need it to happen at that exact moment lol
surprised neither IE nor BETAS have that yet, I wonder why (performance?)
like IE has a bunch of "item and inventory shenanigans" triggers except for the former entering the latter lol
the one i posted is the closest you're gonna get i think
😔 another dependency it is
basically i wanted my event to trigger once the player eats the secret woods stardrop
i couldn't figure out another way to do it
though ive been thinking about switching it over to dynamic map tiles and using a custom trigger instead
Does BETAS or no other framework have a trigger for mail flags?
I think you're confused as to what the requirements are
wdym? They want a trigger when they get an item, don't they?
I might be able to do a mailflag trigger out of smd but it'll be pretty constrained tbh
or did I get this wrong?
Also smd will likely see no release in 2025 because I'm lazy
That's what I am talking about. Make it so when this GSQ is true you give a flag to the player and a trigger for when the player acquires the flag.
GSQ is not the same thing as a trigger
then the action should happen instantly no?
I know.
cant, because of when it's applied
The confusion is on how often GSQ is checked for the Condition, yes?
Or is it on how often the triggeraction is checked?
the only time this condition gets checked is on the day started, day ended, or when you change location
i need it to be checked... and then applied in that moment, not the next day
(sorry if I'm not getting it, my brain is tired)
i am going to use the esca thing for now lol
nah ur good, trigger actions are evil lol
Oh, so they mean that it won't check when the GSQ is true or not in the needed time? I thought it checked every tick or something.
yesss, the first thing
(vanilla) trigger actions are only checked the three times above
nodnod
Ohhhh, I see the misunderstanding I didn't mean to put it in the conditions field I mean as a separate check using "when". Like I said I don't use CP so I don't know if this will work.
ur all good, i appreciate u trying to help anyways haha
NVM I just looked at how "when" is used and yes I am stupid don't listen to me 😭
I thought they were more like "if"
Hi all. I am modding the beach map to include a little "shack" with my own NPC who sells stuff on it. How does this work with events like the Luau? like, will be NPCs shack be visible during that event? or do I need to code somethig
you will have to patch the luau map in order for it to show up
I didnt notice those had maps too! thanks, that makes sense
I found this from EMP. EMP_OneSecondUpdateTicked
I may just put it on the water then so it doesnt interfere cuz it looks like the beach luau is quite packed lol
That would be cute!
Huh now that you said that I wanna put a little shop in for my NPC too
circles typically indicate a space where an NPC stands.
Not every spot an NPC stands is marked by the circles, though.
those tiles have special meaning in the movie theater/spouse room maps, but are otherwise unused and/or for informational purposes
waves Hello folks. Does anyone know of a mod/framework that allows one to change the starting position of the farmer's bed in the initial farmhouse? The tile property "DefaultBedPosition" does NOT work.
The level 1 farmhouse's bed position is hardcoded IIRC?
DefaultBedPosition only applies when you upgrade your house.
Yes, it does look to be that way. I was kind of hoping Misc Map Actions Properties might be able to do it, but it looks like it only applies on upgrade (and I'm not sure it applies to the bed there, either.)
do u want it lol
Yes? 🙏
it is indeed hardcoded to 9f 8f yea 
but hm
even without me doing anything u might be able to relocate the bed
it'll be a little weird but let me try real quick
Thank you! ❤️
yea as expected it does work but it makes you wake up on the floor lol
Hehe, well slightly better than starting out in the void like I have been
you'd be in the void if ur farmhouse tile 9 8 are in the void
is not like this moves the player 
Yup
I'm working on a custom farmhouse map. I wanted to start with it at full size, but found I couldn't because it puts the player's bed in the void.
I'm actually torn about whether I should start it at full size or not. It's a "Broken Farmhouse" mod, where the player cleans and fixes the rooms progressively. I'm trying to decide if it makes sense to have the whole house there from the start (with certain rooms inaccessible until fixed/upgraded) or to start with smaller rooms as in vanilla
The full Farmhouse2 map has void at 9,8, and since I used that as the base, that's where the bed went ^_^;
I don't know, what do you folks think? This is the starting farmhouse I've currently got:
Do you think it's better to leave it like that, or to see the whole map?
LOL
Maybe I should just make an option to remove the flavor text
And the trash
i guess it really depends on whether the upgrade is happening while you are in the map or not
The full map looks like this:
I thought that might be overwhelming though
(I'm still tweaking it and adding things)
if you plan to just have robin "upgrade" the farmhouse as is then i would just do it like this for starter yea
That was my original plan, but now I'm using Unlockable Bundles to allow the player to patch one part at a time. First clear away the Living Room trash, then fix the walls and floors, then move on to the kitchen, etc
The end goal being that the player has to spend more resources but less money to upgrade the house - once the Living Room is cleaned and fixed, the player is automatically upgraded to level 1, and so on.
I think it's more fun to have more bundles, but I like bundles XDDD
oh neat it really does look abandoned
There was a really old mod that had a broken initial starting farmhouse that I liked, but it was defunct years ago. So I started from scratch and built my own. I've been working on this mod for years. The scope creep got me. x_x;
Oooh
hm wait i put it on farm map 
i wonder if it'd be nice to just
have farmhouse furniture on farmhouse
That would be so nice. Currently I can customize it, but only for vanilla farm maps. For custom maps, it still puts the furniture on the map, which is a problem
Fully custom maps that don't replace vanilla maps and have their own location, I mean
(Is it just me, or is it weird that the starting furniture is defined on the farm map instead of the farmhouse map?)
Same thing with starting seeds position
Are you using the FarmHouse Furniture property to put the bed in, @lucid iron? Is it usable as a bed?
i was out of the house and the others already basically summed things up for you (not possible in BETAS or IE etc) but a trigger happening "Now" is... kind of redundant/a truism or w/e bc thats just what a trigger is
like the CropHarvested trigger is "Now" as long as "Now" is when a crop is harvested, yknow?
as for why BETAS doesnt have an item collected trigger, its bc i DID have it at one point, but couldnt figure out a good way to make it only fire for new items received (which was my intent with it originally) and having it fire for every item received seemed like it might be bad for performance, like selph guessed.
(that trigger also had a bug in it that made people lose items as soon as they got stacked which was oopsie so i just disabled it and never re-implemented it)
you COULD make the trigger yourself with BETAS harmony quite easily, but it would be a "for every item gained" situation and so it'd fire any time something goes into your inventory, basically
i wouldn't be able to make it OnItemReceived(specific item key)?
or like allow the user to provide said argument/key
BETAS Harmony would let you run a trigger action after every time, say, Farmer.OnItemReceived() is called in the games code. combined with the If action you could do If PLAYER_HAS_ITEM whatever # do thing
but the trigger itself would happen for every item
what if i used Quest.ItemRevceived
still the same thing?
because this occurs only during a quest
quest.ItemReceived is just called from Farmer.OnItemReceived and does nothing when its not attached to a quest
ah hm
i mean doesnt CA do that with the gunther artifact quest thing
so its not... super horrible.. for performance?
is this a basic quest?
uh it can be if i need to convert it
the artifact quest thing manually checks for an artifact not every item
but doesnt it check every item to see if its an artifact?
you dont need to convert it i was just curious
no it checks it when an artifact happens to be created
like when you dig one up
and then when you pick it up
tldr what i wanted to do was -- when you pick up x item, display a message with BETAS
and then it never happens again
yeah
i patched Farmhouse.AddStarterFurniture
its fine there bc CA knows nothing else will ever care
its a performance problem potentially for trigger actions bc if i added an ItemReceived trigger
then it must always check every trigger action that uses it
even if none of them will apply
Ah, with C#?
so it has to check your GSQ every single time
so solution is to.. manually place an item?
and the GSQ of anyone else using the same trigger
you could do that but if it is attached to a quest then it might actually work to postfix Quest.OnItemReceived
since then it only happens if the player actually has a quest
to explain the performance thing a bit more its like
every time a farmer changes location, every LocationChanged trigger must be checked, bc they may need to be applied. if there are 100 mods using LocationChanged triggers then it must check all 100 of them. however, this is fine since LocationChange doesnt happen constantly and it has a loading screen anyway
but imagine if 100 mods all used ItemReceived
then all 100 triggers must be checked every time the player receives any item
but what if it's just mine 
which happens quite a lot
it might just be yours! but it might also be everyone
just like one single mod using TimeChanged update rates is fine
ill just place em in predetermined locations i think
what about special order
yeah this is a special order
that said evne if its placed like a lost axe that wont fire any action or anything when the player picks it up
special order is like "hey answer my riddles three and bring back these items" and when u pick one up and it. clears the requirement
oh, tile property
when player picks it up 
unless i do lostitem but i cant do that in special orders
but what if.... i could.

(i still think BETAS harmony postfixing Quest.OnItemReceived is actually fine, though it requires me to genuinely recommend BETAS harmony, which im hesitant to do)
might go a little crazy and mess around with LostItem stuff
who knows. who knows.
yeah i think lostitem might be the way to go
unfortunately
Nobody else has the failed to deploy the mod error in VS every time they build for the 2nd time without restarting VS?
Nope
It's driving me absolutely crazy
like VS can't let go of a lock on the mod dll file or something
That didn't used to happen, months ago. I have no idea what changed 
ok is there rly no "HasSpecialOrder" token in cp
or does it fall under HasActiveQuest
@twilit quest so i think what ill do is make 2 new map properties for usage in FarmHouse
one of them works just like the Farm level FarmHouseFurniture
the other one will remove furniture at coord
hasactivequest does not do special orders

(as far as i know. i may be incorrect)
(depends on whether or not Special Orders go inside Farmer.questLog which i dont think they do ?)
theres a GSQ for it though
made it a mail flag we are out here
Oooh very cool!
{
"Action": "EditMap",
"Target": "Maps/FarmHouse",
"MapProperties": {
"mushymato.MMAP_FarmHouseFurnitureRemove": "9 8",
"mushymato.MMAP_FarmHouseFurnitureAdd": "2048 4 6 0"
}
}
must be on new save to work since it is specialized
this says "remove furniture at 9,8; add (F)2048 to 4,6 with rotation 0"
Awesome! I will give it a shot. ^_^ Is it possible to make it override all Farmhouse Furniture added by the map property on the Farm Map without specifying every possible coordinate?
"mushymato.MMAP_FarmHouseFurnitureRemove": "ALL",
SWEET
special value
lmk if bug 
Will do. Give me a few to finish up the current thing I'm testing and then I'll pop it in and experiment
oh great i typoed
Hey, all you map gurus -- is there any way to change the color of the lights when they are rendered in game?
I'm talking about the "Light" map property. The wiki covers how to add them to the map and change the shape, but I don't see any options for color
Ambient light is probably not the right thing
Hmm. There was a mod that made colored light lamps https://www.nexusmods.com/stardewvalley/mods/8292
Nice! Thank you very much. I'll see if I can figure out how they managed it
Good luck! I don't know if it's possible to build it into the map or not; I haven't seen that done
spacecore and mmap both have color lights
Yeah?
the spacecore one is a map prop while the mmap one is a tile prop so pick what u prefer
can i use a valuetuple for the key of a ConditionalWeakTable 
nop 
if you don't need it too frequently, serialize the value tuple into a string, use string as key?
well i dont think that'd work for a cwt
but i will just use a cwt<key, dict<key2, value>> as i am terrible 
yeah, that is an option... simply bury your values under multiple keys
No but you can use a Tuple (different type)
Note that cwt keys on the memory address of the key
Not the hash
but would that actually give me the weakref
Have funnnn
thats the concern
Exactly!
nou
whoa, use for a tuple that doesn't use a valuetuple
i think atra is scam me somehow
How am I scamming you
i dunno thats why it's a skem
I told you exactly what the pitfall is
(Note that serialization into a string has thr same pitfall(
It works great so far!
yay
Do you think it might be possible to do something similar with the FarmHouseStarterSeedsPosition?




