(in lieu of finding the xkcd that ofc exists to explain it because what HASN’T xkcd covered, tl;dr for anyone curious, classical probability uses measurable previous data like atra making the most progress, Bayesian probability also considers contextual knowledge, like atra being retired, and you don’t need either one of those to know there’s a 100% chance I should go to sleep)
#making-mods-general
1 messages · Page 236 of 1
im extra dumb bc until just now i thought you were referencing a previous conversation, but no, that was cartesian
I remember mentions of cartesian products but not why 
oh, content patcher crimes
.xkcd 1132
…uber?

hmm, uber’s xkcd command isn’t working rn. Edit: I think it’s been disabled in this server 😭
i would bet you $50 atra would make it but good luck collecting
no time limit on the bet
Are we allowed to elect people to make mods that don't want the job, because if so I have a few suggestions. 😀
omg the sprites, portraits and dialogue is actually, GOOD?! for this npc I made it should be bad
I feel like we can elect whoever we want to make whatever mods but it turns out they often don’t actually do the thing?? Wild, really
As someone who hasn’t made a new mod in…idk a year or more
If I am elected, I can promise continued no new mods
i think elizabeth should make the wind turbines and water wheels mod
The occasional mod update if the game has a major version change
And a whole lot of bullshit
Ok that does sound really fun
I elect both mathpeople to continue their fabric crrafts and hopefully keep putting up with us
I mean I also already did the code lol
I’m not sure my art skills extend to waterwheels
There is a nontrivial chance I will hit the publish button
But not before I get back from China
is it content-packable?
Atra you’re so much less retired than I am xD
that wasnt in the project specs
I bet you even check your nexus notifs more than once a month
Once every two months
wheres my 50 bucks, iro
well it’s what I meant and you should have read my mind
bayesian statistics should tell you id take any technicality
not published yet and also I never agreed to it technically and also nuh uh
Project specs: just devs work. No publish
If someone elects me to make a mod I'll only consider it if it results in me scrapping it 5 times over before deciding on something
I feel like Atra claims to be retired but publishes mods, and I claim to be not retired but never publish mods. If Atra ever stops publishing I’ll have to see if this magically makes me start, to maintain balance in the world.
There will come a day when I’m not teaching a new class from scratch, I swear
I am going to China for two weeks
huh, getting a fruit to not make wine is harder then I thought 😛
hi selph
The machine rules have hierarchy I thought
targetfield (BC)12 > OutputRules > Default_Wine > Triggers > ItemPlacedInMachine_Fruit > RequiredTags
machine rules are mentioned i understand
lmao
yeah, I did that
and add !id_o_youritemid to ban it
are you trying to get something else out of keg
{
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"(BC)12",
"OutputRules",
"Default_Wine",
"Triggers",
"ItemPlacedInMachine_Wine",
"RequiredTags"
],
"Entries": {
"#-1":"{{ModId}}_non_wine_fruit"
}
},
or just ban froot
you need a ! to negate
that just makes it so only items with that tag can be used to make wine
oh, I had it negated before, I unnegated to to see if the change was working at all
ah it should be ItemPlacedInMachine_Fruit as I posted above
you're editing the second trigger, which is an extra case for non-fruit items
oh, yeah, same deal, I had it as fruit before, I swapped to the other one just to make sure my target field in general was working
I wasn't sure if the fruit entry was "special" somehow
can you post what you did have?
{
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"(BC)12",
"OutputRules",
"Default_Wine",
"Triggers",
"ItemPlacedInMachine_Fruit",
"RequiredTags"
],
"Entries": {
"#-1":"!{{ModId}}_non_wine_fruit"
}
},
I'm reloading this to re-test
these are the context tags of the fruit I'm trying to ban:
"ContextTags": [
"{{ModId}}",
"{{ModId}}_Crops",
"{{ModId}}_non_wine_fruit",
"color_dark_purple",
"dye_strong",
"season_spring",
"season_summer",
"season_fall"
],
Just do what my lecturers did, take the lecture slides some guy made five years ago that have been reused ever since, do no prep, add some mistakes and then stop teaching the course after a year
gotta get those sweet sweet repeatable lessons and assignments, half the effort
also apparently earlier this year an ipad exploded in the maths lecture theatre during a lecture at my (ig old?) uni and the lecturer just went “well, there’s probability to learn” and kept going 
love that lecturer though. dedicated enough to take time out of a y1 probability lecturer every single year to draw frogs on the whiteboard for one of his assignments. 10/10 would recommend frog
might not be wrong time but probably wrong channel
oh wait! these fruits were harvested before I added the tag, they may not have them
yeah but if i post this in the memes channel then it wont be understood, its a modding meme
yeah that might be the case if you havent exited your game and have been patch reloading all this time
context tags are cached
yup, that was it
I just got a new harvest of berries and those hit the right recipe
@rigid musk report monster quests not respecting targetMessage to the wiki
quick question - can I use reflection to set a readonly field
I'm very certain it was meant to work.
seems like it was an oversight, at a glance
that sounds highly illegal
it sounds… pythonic almost
u probably can since readonly is just a suggestion right
do you plan on testing if no one has the answer
readonly is not a suggestion
i assumed it was just for the compiler to yell at you
I can't recall if C# runtime checks the readonly or if thats a compiler only check
but idk much about anytyhing
it's a compiler only check in framework and actually enforced in core
oh fun, I'm sure that differentiation has never caused problems 😛
lets be fair here, its at least 2 randos
none of this is virtual
coulda changed it in the past 15 years though
:grumbles: none of this is virtual
this is ancient.
are you gonna stop the crimes channel from doing crimes atra
the main wiki? I can’t find any mention of targetMessage there at all 
please do not change the value of readonly members at runtime
or attempting them at least
to the forum sorry
does this mean selph simply has to target netframework4
like i'm sure with enough effort we can remove members entirely but we do not do that
that is not what we do
i would love to do it
that means I have to dig through code to figure out what targetMessage is intended to do and satisfy my curiosity though 
what do you particularly want to change selph?
why is linqpad so unusable
I'm trying to make custom furniture description show up in the crafting menu
and dw I already have another route, I just want to know if the least effort way is desirable (apparently not)
isnt the least effort way like, patch the tooltipy
thank goodness I asked before committing a felony then
i would like to change a readonly value still
...I swear I tested this before and it threw an error at me
can you do it more than once
well there u go assault is possible
it could be jank nonsense in monogame 
stopping u for unrelated reason
Is it possible to make a tile so that you can plant crops and till them without it being on the farm?
maybe it was a static readonly
you can make anywhere plantable now
AHAH
it WAS static readonly
(because the jitter wanted to optimize that shit)
question to the linqpad-users
7 works fine on my laptop
8 is laggy as fuck and keeps crashing
why
Will this work or do I need seperate objects?
CanPlantHere
cursed
theres also location context
I dont use linqpad and also a dumdum pls gib answer
though hm ig that one didnt have planting related stuff (i thought id did)
I'm updating linqpad again
Will this work or do I need separate objects?
what even is linqpad
it’s generally not great etiquette to bump a message when your previous one was two minutes ago and still visible on screen. If we had an answer we would have answered.
anyway it works, crimes free
does the TABLEMACHINE make tables?
so it works but is boring and reliable
yes
just so you know CanPlantHere is a location data
to make the tile tillable you need tiledata dirt, which the default spring outdoors has already
Oh good lord, the farmer base sprites are terrified
I just made it diggable
so it's a self replicating table? the mother of the table apocolypse? I'm down
😆 can't do that if the class has never been taught before
you know, sometimes I think roslyn could do a little more constant folding
these days you could probably feed the sylabus into chatgpt and have it make slides for you
they'll be wrong, but that's true of the 5 year old slides as well so /shrug
what subject do you lecture in? maths?
engineering is maths but you’re tired of mathematicians’ bullshit
and are a little less off your rocker than cs
I might end up having to learn to make some frameworks I want but seemingly don't exist
Is there a right facing cash register sprite?
there're the flatscreen-looking things in jojamart, if those are any help
oh i hadnt considered those actually
i was thinking of the one you see at Pierre's shop 
thats fancy
https://www.nexusmods.com/stardewvalley/mods/32021 Filled out missing furniture color pieces, flipped them to the side and back, flipped chimneys to the side, and added more deco items.
Would appreciate if someone could boost for me with that update info. I've been really happy messing with them as decoration myself in testing
i need something like the one from pierre
orrr
maybe i can try that one
Why are there no sideways doors either 😭
Update from @ornate locust:
https://www.nexusmods.com/stardewvalley/mods/32021
Filled out missing furniture color pieces, flipped them to the side and back, flipped chimneys to the side, and added more deco items.
Thank you! I really liked redoing my map using these pieces and I hope other people will have fun with them
Huh u can replace the special
Yeah it does damage
But wait what is the cp thing giving it an enchantment
Last i checked that was c# land
Advanced Melee Framework
Right ok 
What happens if you add an item to the players inventory during a player.inventorychanged event listener?
Does my event listener finish running before the another event triggers the listeners again?
Are u using the smapi one or the game one
I think the smapi one? It's the ones listed in the modding wiki for events
Ig it's probably important to ask what u wanna do too
The smapi one might need next tick, unsure
stardew and smapi are both singlethreadded, so there wont be concurrency.
so only one event handler can be running at a time, and all the event handlers need to finish before smapi/stardew can go back to doing other things
Oh ok nice
But that doesnt stop other events from triggering as a response to what you did in your event handler
Explosion AoE
For example, during a LocationChanged event handler, you can mark an asset as being invalidated, which would trigger the invalidate event to occur and all those event handlers will run, and assuming a vanilla asset, during that invalidation will be smapi telling vanilla to load it again, which will cause the AssetRequested event and its handlers, etc
and only after all of that, will your original locationchanged event handler finish, and the next locationchanged handler wil lrun
Wait so if my listener is do a, invalidate asset, do b, and there's a listener for asset invalidation that does c, is the order do a, invalidate asset, do c, do a?
Last one should be do b oops
Like do the other listeners that get triggered by events queue up waiting for me to finish first or do they just go immediately
smapi events trigger immediately, there isn't a queue
for example, this is a ContentPatcher warp event (LocationChanged in CP jargon), but within it, is a bunch of asset invalidations causing assetrequested events, all having to be handled while that original warp event handler is going
Profiler builds a logical stack to track it, because my original logic of just timing events in isolation got weird things like "why does content patcher sometimes take multiple seconds to do a warp", but its due to triggering other events and they took ages
I think I did the layout correctly for a rotating furniture, type as bookcase but it looks like this when i go test it
this is what the tilesheet looks like and the cabinet load in the game perfectly fine
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Custom_Furniture_With_CP
might be an issue with spacing, furniture spritesheets are a little picky
Stardew Modding Wiki
This tutorial explains how to add custom furniture using the new 1.6 game update features and Content Patcher. The tutorial assumes you already have the game unpacked and that you have some basic familiarity with the Content Patcher format. The mods referenced as examples in this tutorial are Bonsai...
scroll down to Sprite Indices
😔 hmm ive been using a lot of hxw tilesheets for my maps and stuff, but i wonder if it's better to make furniture stuff from scratch instead
i have the indices correct since the front facing furniture loads and is placed down fine
you mean the coding or the art?
hmmm i enjoy doing it from scratch while looking up pixel art inspo
Hxw does lovely work so i see perfect for a starting point ^^
since i already have to make a lot of custom furniture for my maps, i feel like maybe it would just be better to go all-in
i say do it hehe
i think making your own furniture is nice c:
good practice for objects imo
hm still have no idea what to name my mod
the front facing furniture is easier to check for, and its good its working right
Its what comes after (like side and back view) thats a little more difficult 😭
i had the same issue with some of my objects, its why I thought it might be a spacing issue

does the side have to be the same size as the front facing?
i believe there's some funky rotation stuff that goes on in furniture
no it doesnt have to be the same size, looking through the wiki link i sent earlier has a lot of furniture that arent sized the same but works fine
its a matter of nudging things around in my experience
thank you 
😔 for some reason im weirdly bothered that i drew vanilla styled furniture
it's just not really something im used to
i wouldnt have believed you, because your buildings look so good with vanilla style 😔
you have the eye and knack for it forsy
i'll probably take a whack at making my own grocery store furniture first
since it's the map i have the most confidence in
😅 i dunno how vanilla i'd manage to make it though
I have a question. If I want to make a map change on a specific day and for it to stay for the rest of the game, how would I set up the conditions on that?
when in doubt, open towninterior
sounds like a When condition
using Day
and Season
But wouldn't the change just exist on that day and then go away?
yeah, im trying to look through docs rn to see how to make it permanent
Yeah that's the part I'm not sure on
i havent fiddled with it myself yet, but I thiiiink Mail Flags are what you want
or GSQs
(Game State Queries)
maybe those are good starting points
Ah, GSQ, I at least know where the documentation is on that. Thanks, I'll have a look
(hello more experienced cheetos, if im wrong, you have every right to pulverize me to cheesy pauder thank u)
ooh Date Range might do it
hell yeah time to test
"Action" : "EditMap" , "Target" : "Maps/MunicipalFloor2" , "FromFile" : "Assets/Maps/MunicipalFloor2Fish2.tmx" , "ToArea" : { "X" : 15 , "Y" : 3 , "Width" : 2, "Height" : 3 }, "Condition": "DATE_RANGE Winter 14 1", "Priority": "Late",
This does not work, so I assume I'm getting the syntax wrong
I think I'm gonna do "days played"
CP doesn't have a condition field directly; DaysPlayed should be fine, but the alternative is using a trigger action to set a mail flag, and have your map patch look for that flag in "When"
(I did add a GSQ token in EMP, but it's overkill in this case
)
i am looking for mods to play in multiplayer. if anyone knows ones to make the mines better mainly. i am not fully sure. i would just like to find mods to play with some of my friends. if anyone ahs a list can you pm them to me
Well I have almost got the supermarket and another NPC done, 1 more building and 2 more NPC's
I got three more character spritesheets done today! 😄
Still working on:
- Wolf Link (side view)
- Nabooru (side view)
- Purah (side view)
- Robbie
- Midna
- Tingle
- Sidon
- Mipha
- Ghirahim
- Addison
And then if I'm not burned out on spritesheets, I can try to knock out the optional/post-release charcters: Urbosa, Riju, and Daruk.
But that's ALL THAT'S LEFT for the mod art!
OMG YOUR MAKING THE ZELDA BOTW CHARACTERS IN SDV?!
Also, can someone help? My warp isn't working.
what's the problem with the warp exactly?
It just doesn't work
Like it doesn't exist
Days Played works fine. Minor annoyance: Setting the day with CJB does not increment days played so you gotta hit the bed over and over and over
oh right, looks like it should be Warp instead of Warps https://stardewvalleywiki.com/Modding:Maps#Warps_.26_map_positions

Does anyone happen to know what these sprites for the Shadow Brutes and their dangerous variants are used for, or if they're used at all?
Been a while since I last played, and I don't recall them ever using these.
If they're not used for anything, then that would make creating variants for these much easier.
I know, but they usually just run at you. At least as far as I can tell.
The wiki didn't mention any special attacks for the normal and dangerous version.
god i regret taking on this giant project, but im in too deep now
sunk cost fallacy
Is there any way to invoke right/left click by c#? I want to play game only with gamepad but some mod need mouse click.
So I tried to make mod to right/left click event mod, but I cannot find document about it.
can't you use Steam Input for that
You can get a mouse cursor using a gamepad with a right analog stick. This works even better if you disable "Controller Style Menus" in the game settings. With the cursor active, A & X act as left and right click.
For handling clicks in mods most menus and objects have their own receiveLeftClick and receiveRightClick callback methods that you can hook into. There is no global click handling.
It's actually debouncrd
That event
You'll get another inventory changed the next tick
is it possible to edit fruit cave loot using FTM?
Eee!
Nice
if i put /w tuesday/ in my string of code for heart event will it make it were it has to be tuesday to see it?
also idk if anyone would know this because it's for the loft apartments mod but would I put this code in my content json?
like would I put that in the json for my character npc?
/w is for weather, isn't it? https://stardewvalleywiki.com/Modding:Event_data
I'd try /DayOfWeek Tue, but no guarantees.
It's better if you use the new names for event preconditions rather than the old way of using single letters. So use DayOfWeek Tue.
Oooh ok
And yes, it looks like you need to put that into your content.json (or another file) and then edit it to what you need it to be.
ok ty sm!
https://smapi.io/json/content-patcher/fd6db501749444aa91fff571b278dc9a
it says I need to put quotations I believe but shoudl I put them like
"x": 54
"7": 21
and do set properties with quotes?
It was more than that, here is the fixed one:
https://smapi.io/json/content-patcher/04fb02f94a7640c2a5818d90ad281ee2
OOh I see what I did wrong now, thank you
Hmm, I did something else wrong as it doesnt appear to have locked the door
Hi,
maybe a stupid question, but when I extracted the Strings\Movies.xnb file and opened it, I found out that for films like Brave Little Sapling, there are all dialogues, but for another ones, like Mysterium, there are some missing (for Mysterium it is 3, 4, 6, 7, 9), so... Where to find the missing ones?
i forgot I set my friendship up with her in this save ☠️
Well, that might be it
im so bad at writing dialogue but I guess that'll come with practice
It will, don't worry...
You can do a find in files search over the entirety of the Stardew content. But I just did that for Mysterium_Scene3 and got nothing, so my guess is that either there are scenes without dialogue or the numbering just doesn't match up (maybe it was longer but he cut content).
I'm trying to play around with tilesheets and things aren't working like i thought they would, so maybe i'm misunderstanding something fundamental here: can you use a (already loaded) tilesheet with EditImage or are you only supposed to use tilesheets in tiled for map making?
Are you trying to use the loaded tilesheet as the source image or the target image? You can target a vanilla or other mod's tilesheet that has been loaded by the game. You can't use one that's been loaded to edit another one, since EditImage requires a FromFile field that points to an actual image file in your mod folder.
as the source
i know it works as a target, but i wasnt sure the FromFile needs it in the folder
(since EditMap can apparetly do that - if i can read the documentation right o.o")
No, you can't use EditMap to edit one map in the game's content pipeline with another.
i was looking at this part:
Content Patcher will handle tilesheets referenced by the FromFile map for you:
If a tilesheet isn't referenced by the target map, Content Patcher will add it for you (with a z_ ID prefix to avoid conflicts with hardcoded game logic). If the source map has a custom version of a tilesheet that's already referenced, it'll be added as a separate tilesheet only used by your tiles. If you include the tilesheet file in your mod folder, Content Patcher will use that one automatically; otherwise it will be loaded from the game's Content/Maps folder.
Which part are you interpreting to mean that?
the "Content Patcher will handle tilesheets referenced by the FromFile" .... i read that as "you can use/reference tilesheets that are loaded into the game's Content/Maps"
but like i said: i might have misunderstood a fundamental here x)
so that is only for maps
Yes, you can use tilesheets that are in Content/Maps in maps. The reason you can do it is because the maps themselves are just xml files that contain instructions that the game uses to build the visuals we see. Part of those instructions are information about which tilesheets tiles are pulled from and the game code looks in certain places for those tilesheets.
yeah, i looked into those which was when the "wait a moment ... am i misunderstanding this?" came ^^
Here's an example of that from one of my maps using the townInterior tilesheet
and since you have the . it skips the local file and uses what is actually loaded
Yup that's right, though that's just for testing because I would not actually include the townInterior.png file with my mod when I release it, since that'd just be needlessly distributing an unedited vanilla asset.
I probably won't bother actually removing the periods from the image source line though because I am lazy lol
I have custom tilesheets too but they also won't be in the folder with the map when I release it. Instead, they will be in a subfolder called "tilesheets". I'll Load the tilesheets into the game's content pipeline so they will function the same way as vanilla tilesheets. I will do that so other mods can edit my tilesheets if they want to (for things like recolours or if someone really wants to replace my furniture with ones they've drawn instead or something).
For editing a tilesheet itself, if you wanted to, say, recolour all the beds in town to be bright pink, you'd need to create a tilesheet containing those beds that you would publish and use EditImage with your tilesheet as FromFile to target the relevant vanilla tilesheets.
that part i know pretty well, just misunderstood how you're supposed to use tilesheets provided by others ^^
Ah, I see. Sorry, I thought you were trying to use one tilesheet to edit another tilesheet, not use a tilesheet mod like Lumisteria's Tilesheets or HxW Tilesheets in your map. The reference to EditImage threw me off I think.
It's very easy to use tilesheets from others' mods in your map. You treat them exactly like vanilla tilesheets except that you add a dependency to the tilesheet mod in your manifest before you publish.
So: in your map folder during editing, delete before publishing.
(Or you put your map into a big tilesheet-filled folder for editing, move it into your mod folder for publishing, if you prefer).
I am very confused about what you're doing then
How are you trying to use a tilesheet?
You may not have permission to use someone else's tilesheet if you're not using it to make a map like I described.
i was thinking you could use a tilesheet mod (in this case DNT), to edit the mine tilesheet
as far as i know that is allowed for personal use?
If it's for personal use, yup.
And I assume this discussion helped you realise that in order to do so, you will need a copy of DaisyNiko's tilesheet in your own mod folder to make the edit?
Or edit DNT to add the edit code patch in, if you'd rather do it that way and don't mind the risk of losing it if DaisyNiko updates it.
i learned how you are supposed to use tilesheet mods, i think? for mapmaking, not editing other tilesheets
^^
Well, for personal use you can use them to edit other tilesheets if you want to.
You just can't do it the way you thought you might be able to.
ye, it's gonna be good old frankenstein a tilesheet and never show anyone my personal mod folder 
i'm very well aware of the "you need permission if you want to use other peoples art in your published mods" - there is a reason i dont share my ui mod for example: if i dont get explicit permission, that thing stays on my pc ^^
even if it's "just" a color scheme, it would feel wierd to share that
That's cool. Sorry to mention it before but some people do not know the rules and/or etiquette and I like to give people a heads up about it so they can make decisions that are right for them (keep as personal mod vs ask for permission vs change idea, etc) ASAP.
i appreciate the heads up anyway - better for everyone to know what they can and can't do
I have another probably stupid question, or maybe just a confirmation:
Is
"summer_Thu": "{{Random:GOTO spring_Fri, GOTO spring, GOTO summer}}",
correct schedule randomization if I have these schedules (and also many others):
"spring": "610 WizardHouse 5 15 2/930 Town 72 54 2/1700 WizardHouse 12 2 2/2100 Custom_WizardBasement 13 5 0/2400 Custom_WizardBasement 23 6 2",
"spring_Fri": "610 WizardHouse 5 15 2/1300 Forest 16 30 1/1800 WizardHouse 2 16 3/2100 Custom_WizardBasement 13 5 0/2300 Custom_WizardBasement 23 6 2",
"summer": "610 WizardHouse 5 15 2/1100 Forest 52 98 0/1630 Custom_WizardBasement 13 5 0/2230 Custom_WizardBasement 23 6 2",
Should be fine
when a target is looking for Maps/[name] where do i find the map name
lord i dont know what im doing
I'm trying to make a personal patch for MixedBag tilesheets and dirt to grass for vpr but im not sure what the map would be
or where to find it
i've never coded before
So this Target is the load target of the tilesheet you want to replace
Or edit
You have to look at the mod you tried to edit (dirt to grass?) to see where it loaded their things
But hm, are you actually trying to like
Edit mixedbag sheets that have dirt and replace them with the ones that are just grass?
yes, i need to overlay a grass layer over the dirt in the mixedbag tilesheet
So then you would need to look at Load patches in the mixedbag tilesheets mod
Find the ones loading dirt, then just change FromFile to equivalent grass
This is bad for actually publishing but u can do it if it's just personal edit
i am very confused, my apologies. i want to overlay grass on the dirt of six tilesheets in this folder, will it overlay if i change the fromfile?
No, you need to change the Target, not the FromFile
What is the original mod doing?
Original Mod
"FromFile": "assets/somewhere in this mod/some tilesheet"
"Target": "Maps/some tilesheet the original mod targets"
Your Mod
"FromFile": "assets/somewhere in your mod's folder/some tilesheet name"
"Target": "Maps/some tilesheet the original mod targets"
if you do this arrangement, you will edit the same thing as the original mod (make sure your edit applies after theirs or your edits will be erased by them)
the original mod, dirt to grass, is adding a grass overlay to the dirt in vanilla stardew
what i want to do is add the same overlay to the dirt in MixedBag's tilesheets
im trying to find the target but im not sure how to
You cannot target their tilesheets directly. You can only target things in the vanilla game.
You can, however, target the same thing they do, but afterwards, as a way to target their effects
i don't think i understand, but thank you for the guidance! i'll see what i can do
how do I switch from the normal sprite to the beach sprite? Is that possible?
sorry im like stupid
Err... What do you mean?
Beach sprites that NPC have?
Your farmer's look?
beach sprites that NPCs have, such as my custom character
By custom character you mean your farmer (the one you play for) or custom NPC you creating?
the custom npc i am creating, apologies.
No problem.
Something like this should work:
"LocationName |contains= WizardHouse, Custom_WizardBasement": "true"
}```
But honestly I'm not sure how the game handles beach sprites/portraits.
Alright, thank you!
Wait!
"LocationName |contains=Beach": "true"
}```
This is correct! (hopefully)
I used an example from my custom NPC, in which I use that one...
Don't do that use appearances
Stardew Modding Wiki
If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...
Yeah, using these are better, but I couldn't for the love of god make them work...
That said beach (aka ginger island resort outfits) are special
You gotta make sure your precedences are correct
But yeah pls use those instead of editimage
They r already used for vanilla winter outfit
I'll try to do them again.
It's a shame the monster framework hasn't been updated
Adding weapons made me want to add a bunch of new enemies to use them on
You can spawn enemy reskins if you want
And make dungeons with spacecore
The thing that lack real framework is unique monster AI
Hmm that sounds intriguing
But i always feel that sdv combat in general limits what kinda mod u can make in that area
Players do not have that many choices
I agree
for once you wake up (or shortly thereafter
):
you have to target Maps/fall_z_dirtpath and the remaining seasons in your code
here's the original code block taken from the aptly named dirtpath.json { "Action": "Load", "Target": "Maps/fall_z_dirtpath, Maps/spring_z_dirtpath, Maps/summer_z_dirtpath, Maps/winter_z_dirtpath", "FromFile": "assets/{{Variant}}/{{TargetWithoutPath}}.png", },
This is kind of why i ended up pivoting to non combat abilities with trinkets 
I want to make some trinkets too
Yeah sure ask me anytime
Thanks will do 😁
Yeah I was looking at that framework last night actually
The hard part imo is
Making the animations
Ability wise it's fairly simple tho ofc dependent on what u want to achieve
Right
Im gonna try to figure out how to add more magic to the game, have some ideas already
I'm now working on two mods at the same time lol
My mead mod and now this weapon pack
Ok, schedule question: I'm thinking about adding a marriage schedule that paths to a spot in the SpouseRoom (for a particular NPC, not for all of them). Is this safe or is this a bad idea?
I know that stuff in the farm house is fraught with danger generally
I didn't even know you could do schedules in the farm house
Wouldn't u break every modded farmhouse
You can't normally path in the farmhouse
You can kinda fake it but it becomes messy in MP
Yep, so basically what I was expecting. Glad I checked in first with you guys
I was just kinda hoping that, since it was the SpouseRoom (which is mostly constant) that it would be ✨ special ✨
!mapmaking
If you want to make mods that add or edit maps:
-
Use Tiled to edit .tmx or .tbin files.
-
Refer to the Maps wiki page for details on how maps work in Stardew Valley.
-
Content Patcher allows you to create custom locations through editing Data/Locations
-
Vanilla Maps can be edited via Content Patcher as well: EditMap
To use this command, type !mapmaking.
thank you!
ok quick question about tiled, if I want to create a map should I use Springoutdoors tilesheet for that for the grass and dirt or is there a more optimal tilesheet to use?
aaah ok
There's a few more actually
Grass dirt border tiles added in 1.6 and used in meadowlands
Can someone guide me to a doc on CustomFields in CP?
And you can grab modded tilesheets if you need
There's not really a guide because customfields is a string string dict specifically for mods to pass data
What are you trying to do is my question
Basically I made a very simple framework, and it currently only works for the ShopID that I specify. So, I want it so if someone adds a true value in CustomFields it activates the framework for that shop.
I just learned how to make the tile smaller so i can grab just grass lesgo
From C# side it'd be something like
if ((data?.CustomFields?.TryGetValue("yourModID.YourCustomFieldName", out string? truthyStr) ?? false) && bool.TryParse(truthyStr, out bool truth))
From CP side it'd be normal edit data
What does the framework do
Hi, one question, the messages that are accompanied by the query message "ConditionalDoor", where can I find them?
Never mind, i thing so finded
Thanks Chu! 
It adds filter tabs to catalogues or any custom shop menu you want.
Since modded catalogues can't have filter tabs.
Happy home designer 2 
You should rewrite the shop menu it'll be great and Compatible trust
omg making maps is so much fun but omg i did not anticipate hpw big i would need this map to be >.<
the tiles sound like more than they are does anyone know how many tiles is in the town or another map for example
i wanna make this decently sized lol
Something i recommend is making a small map and make sure u understand everything needed to load a map into game first
hmm 🤔 i guess thats fair, then this will be a practice map 
There's a lot of fiddly around maps for sdv that tiled doesn't handle bc it's a general program
I assume editing the tile sheets is allowed?
like turning them
because some of these almost fit but they arent turned right for me
You can rotate and flip tiles yes, as long as you save a tmx
yippe
does anyone know what tilesheet the till is? the little ticket thing for using the train/bus
So I thought I could easily check if a item can be currently donated for a CC bundle by calling the couldThisIngredienteBeUsedInABundle function from the CommunityCenter class, but that doesn't seem to be the case. It could be also how I'm getting the desired items. I'll explain my code and then explain the issues to give context.
So I'm getting bundlesIngredientsInfo from the CommunityCenter object as I thought that would tell me all of the items needed to complete the community center. While it technically does, there are some bundles that accept more items than there are slots, like the Exotic Foraging Bundle. That's issue #1 with this data structure. When I convert the data from that variable into an item, I am taking up space with unnecessary items as I don't need them all in a list.
The second issue I have is that bundlesIngredientsInfo doesn't seem to be giving me the correct information all of the time. I completed all of the bundles except except the ones in the Boiler Room and Bulletin Board. So I would assume that the bundlesIngredientsInfo would only have data related to those items. But it only has the apple (issue #2) which I have no idea why.
There are other issues with this, but I believe these are the main two I'm stuck on that I have no idea of figuring out. I really just want to way to know which bundles are incomplete (if any), how many items slots are empty, and what are the valid items for that bundle. Here's my code on github. Does anyone know any other variables I should be looking at?
https://github.com/BlckHawker/Instant-Community-Center-Cheat/blob/main/ModEntry.cs
Does anyone know how to convert from Button to Keys? I made a mod to change the keys in the game Journey of the Prairie King.
And I'm trying to implement it with the generic mod menu so that people can choose which keys they're going to use.
But the generic mod menu to map keys uses the class: StardewModdingApi.SButton, while the mini game uses Microsoft.XnaFramework.Input.Keys.
Is there any way to convert the keys from one format to the other?
There is a tryparse extension method iirc
And how does it work?
what is the correct way to update portraits/sprites for spirit's eve so they use the alternative version for the festival but not if you see them somewhere else that day?
appearances probably
the answer to all of life's questions, if said questions involve conditional npc appearances
i can’t mod but i saw this comment and wanted to share it lmao
have a wiki or github link by chance?
Does anyone know if there is a way to register keystrokes in the generic mod menu using Microsoft Framework.Input Keys, instead of using SButton?
Thank you, citizen
why would you want to
Because I capture the keys in the generic mod menu, they come in the SButton format, and I want to pass them inside the key code of the game Journey of the Prairie King, which uses the Keys format of the Microsoft XNA Framework.
or would there be a way for the generic mod menu to capture the key in the format I need, or a way to convert the key from one class to another
feel free to add this screenshot to the mod ideas repo with a link to the video it's on if it's SFW haha
I didn't understand how to use this, the code is incomplete, it doesn't explain in this image what to do. It's a bunch of ifs
I mean the horse is an NPC, they should be allowed to have dialogue 😌
Maybe familiarize yourself with C#'s TryGet convention because it's commonly used for a lot of things
I think it should be an event 
do you think we can convince dolphin to make a horse portrait? seems up their alley 
https://smapi.io/json/content-patcher/3f7f8bb1070d4b849b663c911684a7b5 there are other issues with my event, but to start, why does my NPC walk off the screen? he didn't do that before i added the move EdwinPayne 1 0 0 before the move EdwinPayne 0 -1 2.
other random issues:
- random rug tile showing up when it's not in Tilex
- viewport -1000 -1000 doesn't seem to put the camera out far enough/it's like it gets stopped
- i would like for the
waterSloshes to play the whole time he's stirring and the farmer is walking, and i'm not sure i wrote that correctly in the code - the cauldron front/back layers aren't displaying like i'd hoped--is there a way to have the cauldron on the front layer like it's supposed to be, with his animation over top of that?
- my fork is clearly messed up
@pine elbow here's a random blog post I found about the TryGet pattern, it's relevant to this method, and it would be good for you to understand since it's used so frequently in C# code.
https://zogface.blog/2017/08/03/using-the-tryget-pattern-in-c-to-clean-up-your-code/
try a pause between the stop anim command and the move
sometimes you need to pause stuff so they have actually time to finish
my experience with another event was that not having time to properly finish the anim was causing issue
sick i'll try that
Is it possible to set up an extra dialog for the "Mines_PlayerKilled" command for spouses?
It was difficult, but I think I understand, thanks, I'll try
if(Instance.Config.MoveUp.TryGetKeyboard(out Keys key))
{
____binds[GameKeys.MoveUp] = new List<Keys>(new Keys[1] { key });
}
like this?
I think if you're using lang version latest, you can shorthand that to just = [key] but don't quote me on that.
I forgot to move the NPC's default tile after moving his room... oops.
doesn't seem to have fixed it unfortunately :( what's ironic is that it was working before i put the first move command in
@pine elbow this should work
if (Instance.Config.MoveUp.TryGetKeyboard(out var keys))
{
___binds[GameKeys.MoveUp] = [keys];
}
Hmmm I tried this and nothing seems to be happening during the festival: "Appearance":[ { "Id": "Default", "Portrait":"Portraits/{{Russell}}", "Sprite":"Characters/{{Russell}}", }, { "Id":"SpiritsEve", "Condition":"IS_EVENT festival_fall27", "Portrait":"Portraits/{{Russell}}_SpiritsEve", "Sprite":"Characters/{{Russell}}_SpiritsEve", } ]
Look up precedence
(Thanks, Matt)
I'm vaguely checking in in between waiting for work software to do things so I'm not really paying attention
That was it, thank you!
Omg poor penny
isn't that a vanilla line? I recognise it for some reason
No I wrote it, at least I think I did?
I have a question for people who know things about Fashion Sense: Accessory layering. Does anyone else have a problem where an accessory is set to ignore color information, but that immediately fails and changes the color when any other accessory (even the same one) is layered?
just spent 20 minutes trying to figure out why a schedule wouldn't work, i had the numbers in the wrong spots
Trying to understand how to apply SpaceCore buffs to an item, doesnt appear as though I did this right, how would I go about fixing this?
My NPC isnt doing the animation in their schedule, can someone help? https://smapi.io/json/content-patcher/7cd8ec11768a458e89b3b9322df6fc63 (Line 52 and Line 77 are relevant)
CustomFields, not CustomAttributes
do you need to set how to interact with certain tiles in the tile sheet before you put them on the map, is that what tile collision is?
collisions are based on what layer you put them on (i think)
aah ok
you mean how much health and energy it gonna give? wiki states
energy (edibility × 2.5) and health (edibility × 1.125)
That looks great, can't wait to see Shannon's costume.
i have come to the realisation i must watch a video about how to use tiled
Got to start somewhere
Heyo, quick question about recipes for crafting/cooking, is it better practice to use your mod id in a recipes key or just the name for the item like "{{ModId}}_SushiRoll" or "Sushi Roll"
Best practice is to include the ModId for the internal names/ID
Never know when someone else has also added their own Sushi Roll items.
Yea I have less vaguely name items but noticed I should probably fix that before adding more recipes to save future me XD
the example I was looking at does not so I was wondering if it is a formatting thing but that answers that too
Thank ya : )
I have vague memories of spacecore having health/stamina overrides for foods/drinks
Yup, SpaceCore's Vanilla Asset Expansions has overrides.
are you trying to have him loop three frames or just one?
I just want to get these frames running so that I can add more later
i was trying to see if by not doing the animation you meant he’s just standing there or if he appears frozen
did you sleep to reload the schedule?
Your code has only one frame in the 'repeating frames' section if your animation description, so if you are looking to have them repeat you may need to add the other frames to the middle section of the / marks so it's persistently animating?
<entry frames>/<repeating frames>/<leaving frames> is the format, IIRC.
i just want the 1 frame to happen then i can add more frames when i get it working#making-mods-general message
Ah, sorry, I saw that comment but misunderstood
All good
does he go about his schedule except for the animation? have you double checked that the sprites are in the correct location on the spritesheet?
Ugh, imagine breathing. Couldnt be me
Do NPCs only breathe if you set "breather" to true
Yes
okay so i checked the sprites and it was wrong
Why is spacechase0.SpaceCore/HealthRegeneration killing my character rofl
Oh cool so i can just make my NPC not breathe
wish i could do that with pierre
Ayyy the animation works!
Poor Pierre, gets all the hate 
Can I make the animation go a bit slower? Like do "17/18 18 19 19/20" so it does 18 twice so it is a bit slower?
yes, each frame is 120 ms i believe
Your description may be too long
it shouldn't be a problem... probably a SC bug
Maybe no description at all
Wacky
I mean no description fixes it lmao but no way to know how much HP they restore
They dont even get a name or anything lmao
no hover popup at all
Well if there isnt anything I can do about it, best to not worry about it I guess :p
OH MY GOD FINALLY i have been trying to find a spot for my NPC to stand and do an animation so the animation looks good and I finally found a spot
I don't think dale wants to put up with me anymore
you can use an offset instead of pathing him into the counter
I want to replicate the text line of the "ExtraDialogue" file the one in "Mines_PlayerKilled_Matu_Spouse" But for another character, is this possible?
Oh the bottles are so cute
Yes, love the bottles
I really dont understand maps, do i use code or something within tiled to make it register as a specific thing? like a door or something
If I remember right, there is an entire guide to doors. Let me see if i can find it.

Stardew Modding Wiki
This is a mildly advanced guide for modders that assumes familiarity with Tiled, Content Patcher, and map modding fundamentals such as the difference between Map Properties and Tile Properties.
Interior doors, such as the one in Figure 1, are interactive map elements with hardcoded behaviour (see InteriorDoor.cs). There are three types in the b...
Stardew Modding Wiki
This is a mildly advanced guide for modders that assumes familiarity with Tiled, Content Patcher, and map modding fundamentals such as the difference between Map Properties and Tile Properties.
Interior doors, such as the one in Figure 1, are interactive map elements with hardcoded behaviour (see InteriorDoor.cs). There are three types in the b...
ty ill give this a read :3
making maps is a bit confusing but im excited for when i make it work 
Oops, it went twice.
https://smapi.io/json/content-patcher/4579b75a0a16428fa4bf75c756948b0a does anybody have advice for how i can time the explosion/flash/sprite animation better for when the cauldron explodes? also, i can't seem to write my fork properly. it keeps giving me [game] Event '019160002' has command 'fork laughAtEdwin' which couldn't be parsed: can't load new script from event asset 'Data\Events\Temp' because it doesn't contain the required 'laughAtEdwin' key.
oh and also the weird fade at the beginning--i can't figure out how to get the viewport to move to an all-black area
If I am understanding correctly, it's because you move to a temp map after starting the first event and then when you try to fork it's trying to find the laughAtEdwin key in the entry for that temp map instead. You'd have to either switch back to the actual DeadBoyAgency location before the fork or try editing Data/Events/Temp to add the fork entry into it (not sure if the latter will work).
I strongly urge switching to string event IDs instead of numbers, by the way. If you prefix with your mod ID they're guaranteed to be unique and a string is going to be a lot more descriptive than a number.
oh it doesn't have to be numbers? i'd much prefer to name it something like "edwinpayne_2hearts" or something. i haven't been using {{ModId}} in stuff even though i know it's good practice, because i was getting a weird error when i first started about containing . and so i just made my character names as unique as possible.
i'll try editing Data/Events/Temp, and if that doesn't work, i did end up making that temp map a real location, just not accessible from anywhere, for testing purposes. could i define the fork in there, do you think?
No, 1.6 made it possible for event IDs to be strings and it's now strongly encouraged to follow the unique string ID format. You should've seen that on the events page of the wiki - if you're following a tutorial for making events, make sure you cross-reference any information it gives you with the events page because every tutorial we have is out of date in one way or another.
As for not using {{ModID}}_, maybe try changing this event to use it and see if it works this time? You'd need to load a blank json into Data/Events/DeadBoyAgency (which should also ideally be using the unique string ID format) first.
If editing Data/Events/Temp doesn't work then you can try using the changelocation command instead of changeToTemporaryMap and putting the fork in there, yeah.
yeah, i'm doing a mix of following the wiki and studying how other mods do events. i cross-checked that huge spreadsheet of other mods' event IDs, but i'll happily change it to a string!
I'm not sure how to make the transition to the temp map smoother off the top of my head, so I'd suggest looking at vanilla events that use changeToTemporaryMap and also if you have some NPC mods try doing a find in files for it in them so you can see how they manage the transition. In addition to that, I'd experiment with pauses and the globalfade commands. A lot of event making is just tweaking a command, saving, then running patch reload and debug ebi.
I hope you are testing with debug ebi rather than exiting your save and reloading it or anything.
umm... i can now...? 😂
Same advice about experimenting with the timing for the cauldron explosion.
It makes things much easier because you can trigger the event regardless of precondition and you can run it as many times as you want.
if my event ID is {{ModId}}_edwin2hearts, would i use debug ebi {{ModId}}_edwin2hearts or replace ModId with the actual name.title
The latter
CP tokens don't exist anymore by the time the data is in game, because their purpose is to get CP to replace the token with the intended value before it passes the data to the game. That's why you can't use tokens in content that you Load, because CP passes that data directly to the game without editing it so it does literally send the {{ModId}} as a string instead of replacing it with your actual mod ID.
i see i see
hm i had an idea to "hide" an npc's room by making a door open into nothing, and just having the player warp to their room instead
since even if you're too low friendship to get in
for people who make furniture mods, do you have an easy way to see the tilesheet indexes? it's really hard for me to find wher eeverything is without manually writing it out
you can still see inside of it
Forsy, couldn't you just make the NPC's room a new location and use LockedDoorWarp to not let the farmer in until high enough friendship?
yes that's what i was thinking of
Yes! Aseprite provides index numbers!
Oh I got confused about the "player warp to their room" and thought you meant that a player with too low friendship would warp back to the farmhouse when trying to get into the NPC's room xD
Oh no XD
That would be very funny for a grumpy magic user though
Idk maybe im getting really particular but i want to write an npc who is utterly closed off, so you can't even see what their room looks like until becoming friends with them
I know Aseprite has this but it doesn't really help me
Specifically you have to set your grid to 16x16 and then set it to show and then when you hover over one of the grid sections it will show you the index number down at the bottom. In this example you can't see my cursor but I'm hovering over the top tile of the leftmost plant above the Christmas tree and it's showing that the index is 1376.
Sorry, it took a moment for me to get the screenshot for the explanation.
oh my god this would have saved me so much time with my valentines day furniture mod thank you Aba
You're very welcome! I discovered it completely by accident when I was doing my AT to CP furniture conversions and it made everything so much faster.
You can use it for wallpapers and flooring too, you just have to change the grid size to 16x48 or 32x32 respectively.
"(This is just my guess, but I think it can be fixed by setting a dynamic token to the translation key. Something like 'use translation X when config Y is set to Z' might work out?)"
Once again I am met with my mortal enemy: Dynamic tokens
I have no clue how to use these and only just barely was able to get the schedule ones working with A LOT of help
(this is a part from a comment on my Qi mod about a translation not working for the tokens I have set for his his name, his name for the farmer, and his term of endearment for the farmer)
If I could get help with it... like im a wee child that you're trying to teach how to walk who doesn't know anything ever, I would appreciate it
i think more context is needed, i dont really understand what that comment is saying to do
I was about to offer help but Button is here
Time to design another map.... Yayyyyyyy...
If they're referring to using a dynamic token to change the i18n key, that's straightforward.
...Why on gods green earth is the museum called "ArchaeologyHouse"?
because its where archaeological artifacts go
Yeah but it could be called "GuntherHouse" or "Museum", something a bit more... straight forward
depends on what the original intent was. its not like it would matter to CA when its all internal game stuff anyway
eh, true
I mean, Robin's place is called ScienceHouse even though it houses the Carpenter shop
And Alex's house is called JoshHouse
The Casino being called Club makes sense but it also annoys me because I have, on multiple occasions, called it 'Casino' when referring to maps in my code... Also a lot of the maps are named weirdly
My apologies heehoo - Mistyspring translated my mod into Spanish but the translation tokens I use that people can change via configs to switch what Qi calls them, and what his title is, don't change via the translation at all.
(i attatched the image they sent) They suggested I do Dynamic tokens for it but I don't really know how to do that at all
for context it looks as though it should be showing as this, not 'Kid' still
Can you show that line in the dialogue.json, the default.json, and the es.json?
as far as i know that just translates it on the config screen, it doesnt touch the actual value
Alex's house is called joshhouse so
so you will need dynamic tokens yes
"Aos.FriendQiEvent4HAR2": "Remember {{QiPlayerTitle}}, there's never enough of anything.#$b#You might think you're done, you might think you could never need anything else, but when you least expect it you'll need more, want more.#$b#Always keep pushing, it'll be worth it.",
"Aos.FriendQiEvent4HAR2": "Recuerda {{QiPlayerTitle}}, nunca nada es suficiente.#$b#Puede que pienses que estás list${o^a^e}$, piensas que no podrías necesitar nada más, cuando menos lo esperes necesitarás más, querrás más.#$b#Siempre sigue empujando, valdrá la pena.",
it doesn't show up in the dialogue json because it's from an event but the command is:
"(break)speak {{ModId}}_TheMrQi \"{{i18n:Aos.FriendQiEvent4HAR2|QiPlayerTitle= {{QiPlayerTitle}}}}\"
Also I figured I would (considering it's what they suggested) but Dynamic tokens really... really confuse me, like REALLY confuse me
"DynamicTokens": [
{
"Name": "QiEndearment",
"Value": "{{i18n: QiEndearment_MyHeart}}",
"When": {
"QiEndearmentTitle": "My heart"
}
},
{
"Name": "QiEndearment",
"Value": "{{i18n: QiEndearment_MyDear}}",
"When": {
"QiEndearmentTitle": "My dear"
}
},
]
you will need several of these tokens for each version and to then put the titles in your i18n
atra's example is good to follow
I think I get it I think
(i edited the name of the token a bit itll be the same for all of them)
you will change the Value of your QiEndearment token to a different i18n depending on what the config is set to
an example with at least 2 is probably better so i updated my snippet for that too
Ohhh I see
what a fun venture this will be... I was hoping to not put out another update for like.. a week
then instead of using {{QiEndearmentTitle}} (the config token) you would use {{QiEndearment}} (the dynamic token) in the dialogue
remember that dynamic tokens cannot have the same name as a config token
To make it so that I don't have to change all of that out could I just change the config tokens
like change the name of those
yeah probably
because I would rather fade into the abyss than go through every single instance of that being used
im not sure what that affects with already existing config though
resets them to the default at the very least, i expect
for everyone
you can also do find and replace in your entire mod folder to replace the old tokens
though
if you're using them in anywhere other than dialogue, thatd be bad
the tokens being used from the config are in events an dialogue and in his npc name and a few other references throughout ... so a lot of places
TBF they should, theoretically, already be deleting the whole mod folder when installing new versions anyways...
(should)
i mean, i never delete the whole mod folder when updating a mod
unless the mod page tells me to
I always do cause I never know if someone restructured their mod for whatever reason y'know
for things that are displayed to the user the find and replace should be fine i meant more like
if you're using them for When conditions
Overwriting usually cause more issues at least from what ive done for mod updating... then again im neurotic about updating my mods
I will simply instruct them to delete the folder... the only thing it would really affect would be the config file anyways
I don't know where all of the instances are that I used the tokens but I know it's a lot and I know how I am and if I have to go in and find and replace all of them... it would probably end up with a disaster
or at least delete the config file to reload it
I also always delete the original folder - though I usually remove the config file first so I don't have to redo my config.
Very fair, I do the same thing unless the mod author mentions the config needing to be redone
Maybe if I put in big capital letters where you click download that they have to delete it it'll be fine... right... Right
I thought that Stardrop preserves the config and I was so disappointed when I found out it doesn't 
I thought you could change it so that it does 
I've only used it once or twice though so I could be wrong
tbc like i said i dont know if there are any issues besides resetting config. id expect not, but i just cant 100% confirm it one way or another
deleting the folder makes no d ifference in what happens here
(assuming there is no other issues)
it would also make it easier for the translators since they would only have to edit the config section of their jsons and not... the entire thing
the work for the translators is the same either way
I meant for the ones who already released translations not the new ones
the work for them is also the same either way
you are adding 11 things to your i18n, there is only 11 new things for a translator to translate no matter what you do
Not really? The tokens are referenced in their document, so they'd have to go through and change those (still a lot easier than what id have to do since they only have to find and replace for three things on one document) but -
no i meant for the tokens
if I change tokens referenced in the dialogue they would have to change it too
whereas if i just change the config tokens its easier on me and they also only have to deal with that section
no they would not
How so? it wouldn't be referenced right via the dynamic tokens no?
the tokens you would be using in dialogue would be your Dynamic Token, they dont touch those
either way, you need 11 more things in your i18n for the various titles and endearments. they are translating those no matter what
you use those i18ns in your dynamic tokens
exactly - but currently the tokens used via the configs ARE the tokens in the dialogue
there is no difference for the translators between you using the config token in dialogue or a new dynamic token in dialogue
"Aos.qiancientcacti.text": "@, ^Me di cuenta que has vendido una cantidad decente de fruta milenaria. Tu habilidad cultivando un cultivo tan elusivo me hace confiar en tu capacidad para intentar cultivar otro. Tiene condiciones de crecimiento muy específicas, así que debe ser plantado al interior o en un lugar abrigado. No las pierdas, hay muy pocas en el mundo. ^^ -Tu amigo, {{QiNameTitle}}Qi",
what I mean by that is this- if I had a Dynamic token that became "QiName" and referenced the config "QiNameTitle" I would have to change the instance in this dialogue line (as would the translator) to "QiName" instead of "QiNameTitle"
unless im understanding that incorrectly
okay, i misunderstood what you meant, thats my bad
i thought you thought they had to translate the dynamic tokens themselves, not the things they are used in
OH sorry! No that's not what I meant 
quick question though
"config.QiEndearmentTitle.values.My_heart"
does this actually need to use an underscore instead of simply a space?
have you actually confirmed that it even does work with an underscore if the value itself does not have one?
Question about something that came up in the modded chat. They are an android player so I am guessing that is why. But they are able to use all the NPC warps. The ones the player is not supposed to have access too. Just wondering if anyone know why that would happen. More because I am curious how it would be possible then anything else. I told them to report it to the android people. So feel free to not engage in my speculation request.
I don't actually remember, I didn't see an example of a config using spaces... I figured it'd work with an underscore mostly because that's how other space conventions work? I suppose?
I'll be honest I did not confirm if that worked or not though I can see
Can CP mods include sounds?
i might be missing an obvious reason why this wont work, but it has me wondering if you even need to use a dynamic token at all
That can be called to like sounds can in other places
Yes
Awesome, ty!
If you have a config token called QiEndearmentTitle for example, and it has an allowed value of My_heart with an underscore
and you have i18n so that on the config screen it actually looks like My heart with a space, so thats fine
Then if, for example, QiEndearmentTitle is currently set to My_heart, could you not do {{i18n: config.QiEndearmentTitle.values.{{QiEndearmentTitle}}}}, which would then show up as My heart?
since that is a valid i18n key in your default.json, after all, once it becomes config.QiEndearmentTitle.values.My_heart after the inner token resolves
(which is why it'd need an underscore i think, otherwise im pretty sure the space might break it in the i18n token? not sure though)
if t his worked though while you would get rid of dynamic tokens, it would also still need all the tokens to be replaced, so its not like, without its disadvantages
you could combine both, and make one dynamic token whose value is that i18n token, and do the thing with renaming your config
which would still require translators and you to fix the config section of your i18n json, but it'd mean only one dynamic token should be necessary for each of the configs, i think, so 2 in total instead of like, 11
Okay so... I got kinda lost with trying to understand what you were saying, but it looks like the underscores AREN'T needed (and in fact actually make it so the config translation showing properly doesn't work so that's... something I should have tested)
that is in line with what i woulda expected
if you're willing to do a test, can you change your i18n from "config.QiEndearmentTitle.values.My_heart" to "config.QiEndearmentTitle.values.My heart" (with a space)
and then see if {{i18n: config.QiEndearmentTitle.values.My heart}} works?
if it does, then people dont even need to lose their configs
Okay I did a test, (removing the _) and it works for the config display but I will still need something else for the translation...
I'm not sure what you mean by the second part though? Do you mean changing all of the tokens to that?
i just dont know if the space in the "My heart" part would make the i18n token not work correctly
so i guess you dont actually need to change anythingy ou can just open the game and do patch parse "{{i18n: etc}}"
the space made it work actually - it wouldn't show any changes in the config otherwise (i.e. when it was set as my_heart if I put "TEST" in as the translation it wouldn;t work, but it does when I just have it as my heart)
i dont mean in the key of your default.json
i mean if you try to use an actual i18n token
Do you mean like... putting a token IN the default json?
does patch parse "{{i18n: config.QiEndearmentTitle.values.My heart}}" in your smapi console work
does it correctly parse it
hmm
It shows up with what I have there in the config section... so there's that? I guess
this tutorial video im watching (its for another game so im checking in that thsi is correct) it says after you save your map you need to export it, what do i export it as?
they work differnetly so that doesnt surprise me
can you try patch parse "{{i18n: \"config.QiEndearmentTitle.values.My heart\"}}"?
sad. well, people will be losing their config no matter what then lol
okay, so, to recap, you will be changing your config names from QiEndearmentTitle, QiPlayerTitle, and QiNameTitle to just QiEndearment, QiPlayer, and QiName, so you dont have to change the tokens everywhere else
That's the intention yeah
you will also want to replace their allowedvalues
to replace spaces with underscores
so instead of "AllowValues": "My heart, My dear" you'd have "AllowValues": "My_heart, My_dear" for example
I already did that for those since I realized (which thank you very much for pointing it out, i dont know why I did it I think I just thought you needed the underscores for stuff with spaces like how you do in some parts of the other code)
just to be clear, i mean you want underscores, so if you removed them from your default.json, put them back
you want e.g. "config.QiEndearmentTitle.values.My_heart" not "config.QiEndearmentTitle.values.My heart"
even if the second one works for the config section
(ofc you also want to remove the Title from them since you're renaming the config)
This is why code takes me so long to do. Some places you want spaces others you want underlines, and in others neither is needed. Code should be like math! The rules are always the same.
"DynamicTokens": [
{
"Name": "QiPlayerTitle",
"Value": "{{i18n: config.QiPlayer.values.{{QiPlayer}}}}"
},
{
"Name": "QiNameTitle",
"Value": "{{i18n: config.QiName.values.{{QiName}}}}"
},
{
"Name": "QiEndearmentTitle",
"Value": "{{i18n: config.QiEndearment.values.{{QiEndearment}}}}"
}
]
i believe then that this should work
this means that your existing tokens in dialogue, events, etc dont need to be changed. translators (aka mistyspring) w ill still need to rename their config token names in their i18n json, but they wont need to remove any underscores, and they wont need to add new translations just for "My dear" or "My heart" or whatever
since they already translated them once for the config, we can re-use it instead of adding new lines to the i18n
because the AllowValues of our config have changed, though, players will lose their saved config values for these three config options
but, that would happen no matter what, because you are renaming them
(i said 2 total earlier but thats bc i forgor QiNameTitle)

Thank you Button I really appreciate it
happy to help
Congrats :D
i would probably let mistyspring know about the change since it might be hard to spot otherwise
once you post the update
Yeah I added comments around the parts that changed, but I will definitely do that for the them and the other person who translated the mod :3
oh i thought it was just misty, in that case yes better to let em both know 
On tiled for the layers which layer would you guys reccomend for benches, I want to make them sittable but idk what layer that would be good to put them on (im thinking front but im not sure)
You like doing the hard stuff. First doors, now benches
buildings for sittable/interactable things is the usual thing kandi
the maps page has more details if you want to take a peek for what else you can do
ooh ok
Misty posted theirs today, someone else made a Korean one that was posted nearly the day after I posted my mod 
this is a crime, (forage with the "torch_item" context tag)
it looks kinda pretty though
ahh, they just didnt list it as a translation on nexus
Yeah it was posted on ... oh im blanking on the name
Does it let you replace it. Because that would be cool to collect and then use as a torch on the farm.
Also would anyone have any idea as to why someone would get locked in a room / not be able to leave with a locked door warp property of LockedDoorWarp 30 10 Club 600 2600
since that's literally the entire day they shouldn't get locked in, right?
Unfortunately not XD
I honestly can just remove that and make it a 'walk out' situation ...
Someone meaning a player?
in tiled how do i set a unique id name for my map?
yeah someone reported getting stuck in his room for whatever reason and it just showing 'it's locked'
or is that like a file name thing
they sent a video of it... and it was 2 in the afternoon in game so
the name of your tmx file has no bearing on the map id
ah ok
when you Load the tmx (or EditMap it) the Target is what the name would be
Why is there a lockeddoorwarp to get out of the room?
minus the Maps/ part
i wanted to click on the tile to leave and that's the only way I knew how to do it lol
There are most definitely other ways
im filling out one of the stop code formats for central station and i wanna make sure i put in the right id
You can do that with an action warp
Also on buildings layer?
The action warp? Yes
ok i need help i am clearly doing something wrong lmao XD lketn me get my log and content folder
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 5 C# mods and 1 content packs.
Have you got two "Front" layers in your map?
Well I just spent like 20 minutes trying to figure out why this sprite was getting cut off like this... only to discover that SpaceCore's Skills page is drawing its own background on top of the one the GameMenu draws.
So that's how my evening is going.
im going to assume there should just be one and i need to merge them
You can't have multiple layers with the same name. If you need to use more than one Front layer so that one of them draws on top of another, the other should be called Front1 (if it draws on top of Front) or Front-1 (if it draws underneath Front).
OH
ok nice!
man this really gives a new perspective to all the hard work people do for mods
There's definitely a lot to learn, yeah.
can i change the path that it goes to take from tielsheets
i didnt put them in the same folder first and i dont wanna have to do this whoele map again lmao
you can edit the .tmx directly in notepad++ to change the tilesheet paths
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
To use this command, type !tilesheetclimbing.
While this is hilarious, I should probably not just force the menu to be wider if there are more tabs.
weedses
what is Honk

i don't know what i expected.jpg
Testing my API with ```cs
API.OnPageCreated(API_OnPageInstantiated);
void API_OnPageInstantiated(IPageCreatedEvent e) {
if (e.Page is OptionsPage page)
page.options.Add(new OptionsButton("Honk", () => Game1.playSound("Duck")));
}```
try passing "" as the pageId
how does one find the unique id for their map
you dont. you make it up
ty i was about to go look for gmcm sauce
how are you loading your map?
(Honestly I think I might leave the honk button in just to confuse people, lol)
content patcher
You already did, it's KandiKraze.TheNeigborhood_NeighborhoodMap
honestly not a bad idea. i'm here for it
i meant how are you using it so far to load it, like your Load patch
(it seems Aba has more context than i do though, so defer to them)
im using a map location loader for a warp and it says the location couldnt be loaded
Look further back in your log then, because there will be an error showing why the location wasn't created.
Speaking of menus, while you're here button, do you want me to send a PR to Special Power Utilities for Better Game Menu? It should be a very simple thing.
if you find the time for it then feel free, i planned on doing it Eventually™ i just dont have time to work on mod stuff atm
i dunno when you planned on releasing it so the Eventually might just end up being before then anyway if it was gonna be a while
the only error it gives it "warp to KandiKraze.TheNeighborhood_NeighborhoodMap failed: location wasn't found or couldn't be loaded."
I was planning on end of the month ish
Can you share your log?
sure thing
i could probably find time between now and then, so like, feel free to make the PR low priority compared to other things
Probably only take me like 5 minutes, but yeah I'll make it low priority.
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 5 C# mods and 1 content packs.
UI Info Suite and some others will be more involved I expect
if i forget and havent done it by the time you're coming up on like, wanting to release soon, feel free to also just ping me if you want and i can put in a self rush order to do it
You tried to warp to your map but you can't. You have to warp to a location. And your location is named KandiKraze.TheNeigborhood_TheNeighborhood not KandiKraze.TheNeigborhood_NeighborhoodMap. So try debug warp KandiKraze.TheNeigborhood_TheNeighborhood instead.
actually working on mods is just also a low priority for me rn
i am not allowing myself to open Rider or else i know im gonna get sucked into doing mod stuff instead of my actual responsibilities
Oooohhhhh
Mood. I am meant to be preparing for a cyclone, no modding allowed!
make sure to download the CP docs so you can mod in case the internet goes out /j
WHAT IS ITTT
please
i must know
or else i will cry
does it just make a honk sound
man I play ONE in-game day and I've already got more little mod project ideas meanwhile my actual released mods have bugs I should be squashing instead
real
🪿

wow yes
Getting back from memes, this might not be too bad a way to display lots of tabs.
im installing just for this
(The real trick is when pressing the honk button secretly spawns a goose somewhere in the world to do... goose things.)
oh no
have we considered untitled goose but in stardew
like it just runs around a random map each day being a menace
what is the mod name
i 100% want to play stargoose valley
what if you spam the button, will the map be filled with geese
I do not have a secret goose mod, just a secret game menu replacement mod. Better Game Menu, coming end of the month.
i do like that look
if i do not see it on nexus at 12:00:00 on the 1st of April i will wage war
when walking behind a building i can't really get behind it because of an invisible wall, if i make it passable through coding the building will that let me walk behind it or is that a different thing altogther
You would just put whatever you need to walk behind on the "Front" layer
or the "AlwaysFront"
With MEEP + Extra Animal Config this is probably already possible
tell me about this MEEP
Meep Meep
it's a framework that among other things allow spawning farm animals outside of farms
But what if the geese could steal food from your animals or eat the crops?
no. please dont make this a feature
I'm not too sadistic to implement that
the idea of a carnivorous farm animals that require eating other farm animals did cross my mind
i dont think MEEP let u give advanced goose menance tho
Bahaha, make it a reality someone
not yet at least
with EAC we can at least make it relentlessly attack the farmer
-1 health, -1 health, -1 health
ok i wouldnt mind that, i play with inf energy and inf health anyway
This genuinely sounds like a good mod idea though /g
is /g genuine or is /g like. /garfield
/g for goose
Garfield of course
Lasagna
I mean the goose is supposed to be annoying too but not like... annoyingly annoying
If that makes sense
Then do I have a mod for you
hm?
you have caught my attention
which is hard to do
show me your secrets
void chickens will now try to kill you
if you have SVE or VMV, their goose will try to kill you too
Anyways, seems like 21 is the limit of how many tabs I can comfortably fit on top of the menu without having to resize the built-in menus. I suppose this is... a good number to target for a first release. I doubt people are going to shoot up to 22 tabs over night.
is there controller support?
Woohoo it works, now to find the right tile for use with central station
Of course. Controller support. And split screen support.
And it technically fits in 1280x720
Though it gets a bit... tight, lol
(I just want to be lazy and not implement tab scrolling for the first version. Scrolling is annoying.)
and here I thought scrolling is the favorite feature to implement for GUI modders
I already implemented perfect scrolling once. I earned the right to be lazy. 😛
i have some stuff set as buildings and yet I still walk over them
like benches is this possibly due to later order?
They have to be on the Buildings layer, not any of the numbered ones. So not Buildings1 or Buildings-1.


Oh