#making-mods-general
1 messages Β· Page 181 of 1
yay
love love love love love
void could prob go for bigger blade 
this will be a MMAP feature (a mod that is suspiciously less and less about map
will MMAP icnlude the turbine?
this whole thing is #modded-stardew going wind turbine!
inquiring minds want to know
yea
BuildingData.Metadata mushymato.MMAP/DrawLayerRotate.<DrawLayerId> [rotation] [originX] [originY]
niice
you put buildings on maps. seems like a map feature to me
classical mathperson green energy mod?
ez
in fact almost everything a player can do or see happens on a map. you've got free reign to do anything
sometimes things happen in a minigame
junimo kart has an overworld map
and prairie king has maps
i know those arent the only Minigames
a lot of the other ones still have maps in em
hi selph
selph i expect mill ex nihilo rules in emc tmr \j
mill ex what
lol now I'm debating adding machine support to buildings
can't run away from my demons forever
the turbine is supposed to create battery from nothing which mill rules (item conversion) cant do atm
also this test building is uh, 1 tile
need it to be 2 tile to be able to have input and output chest i think, if we go with the sap = battery meme
I think you can do a chest that's both input and output; it would bring up the chest UI though so it's not totally seamless
It did not work u_u
especially considering this idea of a mass transmutation engine I'm rotating
though I'll 98% sure I'll roll C# with that one
XD
@ornate trellis
Need
https://github.com/Mushymato/MiscMapActionsProperties/releases/tag/1.3.2
- have a way to set a mail flag (ie. a recipe)
- use CP to change the building data to said recipe via mail flag
remove unused
even putting an npc warp directly in his room didn't work... which is ... odd?
probably not very scalable though, I'd need to add flags for every minerals in the game
I figured out why Sebastian was missing from the Spirit Eve festival btw. It wasn't because of a weird conflict with schedules or something. It was because I had edited Data/Characters and accidentally nuked most of his entry because I didn't know how "TargetField" worked.
maybe .... my recent track record says no but my heart says yes
+1 for reading documentation xD
flags for every minerals sounds miserables
oop bye bye seb
we got wind turbines, now we need
- solar panels (yes we have them, but consider beeg ones)
- water wheels (building must have at least 1 tile in water?)
- geothermal plant (two part building, a hole "building" that can be "upgraded" to the actual plant)
maybe put a geothermal node in the quarry? Just for accessibility
Fwiw, water wheels would be awesome. I'd put them on my house just for the vibes
if you're making a geothermal plant, it must be more efficient if you build it on the island
I was considering more of an "energy through human history" mod, where the progression tracks with the evolution from ancient sources of energy (doing things by hand, ancient egyptian shadufs, bronze smelting) to medieval-era things like windmills and waterwheels, up to industrial revolution era looms and factories and the bessemer process, through modern era nuclear plants, with some kind of pollution tracker than has an effect on the valley's ecosystem (more pollution = less fish)
"LogName": "Qi Room to Nut Room",
"Action": "EditMap",
"Target":"Maps/AngelOfStars.Mrqifriendable_QiRoom",
"MapProperties": {
"NPCWarp": "13 11 QiNutRoom 3 6"
},
},
{
"LogName": "Nut Room to Qi Room",
"Action": "EditMap",
"Target":"Maps/QiNutRoom",
"MapProperties": {
"NPCWarp": "7 7 AngelOfStars.Mrqifriendable_QiRoom 23 9"
},
},```
Just to check - these NPCWarps are formatted correctly right? They *should* work? I don't see why they wouldn't considering the others are formatted similar/the same but .. who knows at this point
It also could really just be that the nut room is weird because its the nut room and of course its weird because this is mr qi and why wouldnt every single thing i do be weird
There would be some fairly severe effects on game balance with this focus on energy βΒ to motivate gathering energy there would need to be energy used to power machines, etc
you need batteries to run every machine... 
I don't think the nut room is actually weird
I think the nut room is horrible and terrible and the cause of every problem ever /hj
other than the draw functions for the twinkly lights stuff
i also hate that its called nut room :(
It wouldn't be a very fun energy mod if it just made the game harder, and it could definitely get boring to just pass batteries around, so probably at some point you would learn how to make batteries
i hand wrote my schedules before making them for clarity's sake and the amount of times i had to write "Nut Room" was too many
There's also different routes to go down, like the bessemer process for steel
In conclusion, I have too many things to say about metal
You could look at Minecraft's Create mod for some ideas. They have a whole gearing system in place that takes load balance into place. Is the end goal to automate everything?
Harvesters and conveyer belts and the rest?
I don't really want to try to be in line with other mods (and I know basically nothing about minecraft), my inspiration is much more heavily human history and I guess tantentially like Civ-style ideas?
I don't particularly care about automating things, but I think there's some game balance that would naturally happen in the direction of mass-manufacturing
Conveyor belts are not only a huge pain in stardew, but there's a ton of people who have made them before
I adore the Civ series, just trying to picture what this mod offers. For example, you can buy junimo huts to automate gathering stuff, but there is currently no way to craft things except by hand (I think)
to be clear this mod exists only in the depths of my brain
Why would I make a solar plant? What's the benefit? (besides it being very very cool)
I think I drew half a lighting rod once
Mmm my heart just skipped a beat at the thought of a control panel to auto-craft when resources become available in a chest within range π
all of that sounds like UI...horrors...
π No worries, I'm trying to put it in my brain now, too
OH GOD make an assembly line a-la-palworld and make junimos work at it to craft things for you when the above is true π π
I mean, I think if i were to make this mod, the benefit of a solar plant would be easy access to batteries, which would replace coal as a fuel for a lot of thingsΒ β plus motivation to get over the tech tree hill towards reducing pollution instead of increasing it
every coal you burn = adding to the pollution counter, and Demetrius can tell you how polluted the valley is
Does anyone know if the Nut Room has any general restrictions on like... npc pathing or anything like that?
Other than the Island West restrictions (which wouldnt apply here)
I don't think it's special-cased
It is not special in the graph of locations, since it's just got the one in/out warp
(Being a dead end means there wouldn't be any good reason to special-case it)
Ok, now that makes sense to me. I hate using coal
Is it normal for Stardew to not show the windowless bordered option in the settings? It doesn't appear for me in both vanilla and modded
(lol)
a furnace? π
I'm adding a special order to get to LVL 200 too B)
it's a heavy furnace
i think most of my saves I never even make it to 100
Trying to think of more special orders to add to Mr.Qi's thing is annoying though
that quest just lives in my journal forever
oof, same
(i use skull cavern elevator so i like to go down to like 1000...)
Yeah honestly I just build all the staircases known to man and go down DEEP before I even start using bombs to harvest. So I've probably gone that deep before, but I can't remember. It's been a while. Thank goodness for that elevator mod, I can't play this game without it π
(tbh I also like, don't know how most people play.)
I reach 200 regularly but that's because I am very ill about this game
what i learned from atra is that they're way better at combat and fishing than i am
the skull cavern elevator mod is very cheaty i definitely wouldnt try balancing around it
it's not cheaty if you hate going into sc and never use it 
id say the average person gets to around level 80-120 in regular playthroughs though
relatedly the desert festival drives me nuts
i love going to the skull cavern and use it a lot
i have to stop myself from going to the desert festival because it makes me so frustrated
for why
i don't love skull cavern, but i do love the volcano
i never get very many eggs, and I spend the whole day panicking about eggs and then all the shops close and I don't even get to buy anything cool
oh yeah, whenever my partner and i go there we just pause time, i feel you
want me to write you a five minute mod thatt prevents the eggs from vanishing after the festival?
Who needs skull cavern when you can just have your farm spawn ore! 
'decidedly retired'
my fiance does not like cheat-y mods so we do not pause time, I just make him do it alone
i have some bugged eggs from one time when that happened randomly!
they might have vanished next go around, i forget
I'm looking forward to new volcano layouts
i can write an eggs mod myself if i need one π I have rider and everything
(I may have updated mountain farm to spawn like 40-65 rocks/nodes a day scaled to your mining level), definitely not cheaty right?
no need to break your retirement for me
If I had a nickel π
(this is not a realistic request)
Every time it just decides to do weird things for no reason
and then I spend hours trying to figure out WHY the weird thing is happening and there's never an answer I enjoy
it keeps you on your toes
I do not enjoy :(
full of the spice of life
It's like when everyone was trying to figure out why you couldnt properly buy the weapons if you just teleported to the damn nut room
Because apparently you HAVE to finish the cc/joja because Qi is always watching or whatever
Mine eyes have read the words 'nut room' far too many times this evening π
It is all I see
Unfortunately this is literally one of his two primary schedules so I HAVE to fix it but theres not really... anything thats obvious to fix it
I hate this blue man
I was going to make a joke about how Qi is always watching and it's all you see, and we should call you Qily but upon further thought, and attempts at pronouncing that out loud, I vote to abandon that line of thought π
the worst part of modding is when you spend a bunch of time making a crazy wall about the weird shit you keep finding, and then you ask about it in here and somebody says "oh yeah, the blorf is all wrong on that one. you gotta frobnicate instead" because they figured that out a while ago and it lives only in the hive mind
I did add a Qi scarecrow to the game so he truly is always watching
Or, when you fear you've broken everything somehow, but turns out your pc was just out of RAM π π₯²
Qi watches over your crops, qi watches over you... what doesn't he watch over? :) dont worry about that
Yeah the hive mind is real
we've all done it. none of us is free from sin.
part of the problem is that updating the wiki is a lot of (thankless) work
oh yeah, my brain is full of lots of horrible little fun facts about the game
i tell my friends that it's not that I play stardew, I just read the source code as a hobby
pants..........
Look at it! It DEFINITELY doesn't have a camera in the glasses!
shut up shut up shut up shut up
The funniest one is a while back, when you loaded a save for the 2nd time without restarting the game, tiles would unrotate themselves if the map had rotated them, and the info spread for like 4 months, BUT NOONE TOLD PATHOS, who once they knew, fixed it in 5 minutes.
"decidedly" now has been redefined to "only sort of"
it's ok, they can't hurt you, they're not real....
atra releases more mods than I do
and I am pretending I'm not retired
If I'm still here I'm not retired right?
yup, totally
I'm technically retired. I was inactive for over two years π I just... brain go *brrrr *sometimes and I had to follow the dopamine π
maybe that's the trick. if you say you're retired you'll make more mods
talking about stardew on discord is definitely the same as releasing mods
the equal-opposite of 'im going to post my amazing progress here' and then never releasing the mod
I have to say, you were around and active when I was, and it's been nice seeing a familiar name β€οΈ Makes me feel less weird and out of hte loop lol.
Yup, totally not retired, even though I haven't published a new mod in a year
But have you updated your mods and kept them functional? That's what really counts tbh
Uhhh this week I did?
See? Counts
work was not given an explanation as to why I'm so good at deciphering code
Ye finally 1.6 compatible
(I have not.)
lol
you just updated event tester
oh my god it just suddenly started working
yes, because ~5 out of 37 mods working is a good record XD
and none of the cool ones work
(I have not either, it's okay. For... over half of my mods, I think π Working on it. A lot's changed since pre 1.4 π I have to completely re-learn how to mod, it feels like)
i think event tester is cool
I've been working on finishing islands farm today, still gotta debug a few things tho
@De
@blissful panther do you hear
@ De
to be fair now we're into january it's not very festive
Probably have a new map from me today or tommorow 
wow I cant believe christmas is just a week away
I just released a new greenhouse mod, even though half my existing crap is broken
π
just a week away! oh wow
I'm so happy about this information
i've done that, making new stuff is always fun, and patching..... isnt
Train Station 2.0.0 is released!
You can now add train (and boat) stations through Content Patcher, no separate Train Station content pack needed.
Wow rip transport framework
well on one hand two cakes
but on the other hand not needing content packs
transport framework lets you add things to the bus, boat, and parrots tho
(The rewritten code is designed to allow easily adding other networks like buses and parrots in the future. Possibly custom networks too.)
Wow rip transport framework
Rain schedules don't apply to npcs in the desert do they... 
Get past one problem only for another to pop up u_u always forever
Now that Pathos is wrapping up the ChroniclerCherry mod updates, I feel like it's time to inherit another set of mods /s
I just look at that and wonder if i'm going to get a volley of pings about stardew aquarium, cuz it uses train station to get there 
I wonder what percentage of mod downloads is a pathos mod
all 800 of aedenthorn's mods
Does Smapi itself Count? and do Inherited Mods count?
itd be an easy thing to write a script to calculate
did button tell you that we found out that LockedDoorWarp doesn't lock people out in winter 
lmao i knew about that one
(Fun fact: that's a deliberate decision if I remember correctly, because CA didn't want to lock players outside in the cold.)
that's what i heard, too (pathos's comment). but i forget when i learned it
fine fine, my warp network is still locked behind mailflags though, so no sneaky trickery about that
its just about the only (and best) reason i can think for it being there so thats unsurprising
its a cute touch
oh since you're around, pathos, was it a deliberate decision for default.json to supercede the default folder? i don't know if it was asked (in regards to the new i18n foldering)
casey was the one that implemented that iirc
the i18n folders in general i mean
it was also like, intentionally coded in. like its not an accident that it happens
the warning specifically tells you thats what itll do
then the other question would probably be "why not the other way around?" but that'd probably be for casey when she's back from vacation
Yep, you need to choose one i18n format or the other; you can't mix and match them, which would lead to a very confusing structure.
its not about not mixing and matching, rather
its about that if you do mix and match, smapi chooses one to use, and it chooses non-folders
Is there a way to make a Desert NPC follow a rain schedule for when it rains in the valley (other than to just randomly insert it in or something)
meaning if a mod updates from non-folders to folders, users will almost certainly get warnings about needing to reinstall the mod (bc if they drag and drop the update in, they will have non-folders and folders now)
and if they dont theyll have broken i18n potentially
assuming new i18n was added at the same time, anyway
I guess so, but the same problem would apply in reverse if SMAPI did the opposite: a mod which simplifies its i18n would have issues instead.
while true, there wouldnt be a mod that can do that when the feature was released
bc folders werent an option before
Yep, but the feature isn't only designed for how it'll be used right after release; it's also meant to make sense for mods written 10 years from now for example.
so having SMAPI choose non-folders by default makes it more of a pain for people to upgrade for no benefit, whereas the other way around would make it at least functional when upgrading (could still log a warning) and harm no one on release
that is also true but 10 years after release people would know which has priority
(unless the standard changes again)
I wouldn't have been opposed to discussing which has priority before the feature is released, but it's probably too late to change at this point unfortunately unless there's a really good reason to introduce potentially breaking changes.
yaml i18n, when?
i'm pretty sure the yaml for cp works
or in other words, having folders be priorities would guarantee functionality for all existing mods and mods that update to folders. having non-folders be priority guarantees fuinctionality for all existing mods but not future updated mods
i didnt know it was that way before it was released 
Hey Matt, I wanted to let you know that there will be a very small change to the Radial Menu API in the 1.0 update, just changing an enum parameter to a boolean (or possibly a different enum). Are you good with putting out an Iconic update in a week or two?
it would only be a breaking change for people who have switched from folders to non-folders, if there are any who have done so
but that isnt me saying its worth it though, i dont think its worth a breaking change at this point either, even if i dont think its likely someone would actually be affected
Yeah, sure not a problem.
that said though given how often people ignore warnings potentially in a sea of yellow i do still kinda half think the warning about it should be an error instead, since the mod will have broken i18n if theres new i18n in the update
isn't it also only a problem if a mod is updated by overwriting instead of reinstalling? (or if a mod ships their new folders and also the old flat files, for some reason)
but i also understand errors only being for like, yknow, actual bugs and crashes and whatnot
yeah, and reinstalling is what the SMAPI warning tells you to do
Time to start recommending people use mod managers /s
but the point is less that its a big problem and more that there didnt need to be any problem
(you could probably get away with hard when patching a schedule in: "{{Weather: valley}}" "Rain"
)
its not like im tryin to say its a big deal or anything either, i was just trying to explain my viewpoint since it came up
(For what it's worth, it most likely would have been changed if we had that discussion before it released.)
take all the stuff im saying with an excess of casuality and whatnot
its worth something! 
hindsight is 20/20 
afaik the undertaking of separating the default.json to the folderized is too heavy a burden for the older mods that probably needed it, so i'm not really expecting that many problems going forward about it
Now I'm curious, are there any pending feature proposals for SMAPI sitting out there
its also fine if you just tell users they need to completely reinstall the mod, too, if you know ahead of time which is gonna have priority
There's one pending feature currently: console auto-complete. That would involve potentially breaking changes to the console command API though, so there's no ETA for when it'll be merged. I'll need to look into it when I have a bit more time.
i just didnt know at the time until my update had already been out for a while, bc i didnt have non-folders in my working folder anymore 
Oh hey, I didn't see an answer to my question earlier about child menus not being disposed by the game - deliberate, or bug?
Oops, forgot to reply. Probably a bug, but no idea when we'll have another game update.
If you're willing to break the Console API, sounds like a good time to update it
(i still lost the bet
)
I've been meaning to rethink the console API, but that'll be something to discuss when we start gearing up for SMAPI 5.0.0 (which won't be for a long while yet).
we're in the long haul now, time to go back to the tried and true method of writing "Community Bugfixes" mods /hj
Haha, well not a huge worry to me personally because I control the exit method, but those vanilla menus are probably causing resource leaks.
Ouh how would I format that - I looked at both parts of it and it kinda confused me
btw @ivory plume would the beta community still be a good place to report bugs?
you'd effectively overwrite your Characters/schedules/NPC
so you set the:
"{{Weather: valley}}": "Rain"
}```
and then just override your own schedule keys that you have
Ohh I see waht I did
You can still report bugs there, but the forums might be better at this point.
(im curious what is the beta community)
(We had a small set of players beta-testing the Stardew Valley 1.6 content before it released to all players. This was mostly focused on active players, unlike the wider mod author beta.)
ahh, gotcha. neat
I haven't logged into the Forums in forever. One of my only posts was an unofficial update to Mega Storage which I think was my first mod https://community.playstarbound.com/threads/updating-mods-for-stardew-valley-1-4.156000/page-61#post-3359395
In the meantime, if what you wanted out of Quality Products was the non-furnace machine goods being Quality, you can use my mod! It's PFM, so it has...
Almost 5 years of modding
https://smapi.io/json/none/8a0c70c905f74481875844c496828750
It's saying that it cant parse it as a tokenizable string :L
I could also be separating the when conditions wrong
it could've been my syntax, i'm not used to it tbh
ah i think it'd just be:
"Weather: valley": "Rain" without the brackets
O thank you
i did see the brackets on the CP documentation page (which also confused me)
you cant use the outer brackets in When conditions
but they should be included everywhere else
and only for the outer most brackets
would there be no way of keeping backwards compatibility, but the old commands just not having auto-completion?
if you use a token inside your token in the When condition, you use the brackets
i am up to my eyeballs in brackets right now
and also because i try my bestest to not when patch unless absolutely necessary 
I'm glad to get use out of my dynamic token a second time by doing this at least I guess... even if I had to write two entire new patches to his schedule :|
Yep, that's how SMAPI usually handles breaking API changes (i.e. by keeping a deprecated older API until the next major version). But a new API would involve a lot of planning, discussion, testing, etc; and the priority before that will be updating mods for all the breaking changes in SMAPI 4.x and Stardew Valley 1.6.x first.
i'm just saying it may not have to wait for 5.x
not saying it's a priority though
btw. i've done some Pintail updates in the past weeks, but nothing too critical, so didn't ping you about them
they're optimizations
Sure, I can update Pintail in the eventual SMAPI 4.2.0.
so it turns out the way I loaded the map in CP DID cause some MP issues when I tested
Turns out when you tell Content Patcher to Load Version 1 If Ingame Value is under 6, and Version 2 if It's 6, causes a Stroke for a farmhand because it doesn't have access to the value to know which one to load until it enters the file, which it cant' because it can't load the map, because it doesnt know the value so it cant meet either condition.
But its fine for the host, somehow π
can you do unconditional load and then editmap conditionally?
what you say makes some amount of sense, I think, and it's fine for the host because the host is the source of all truth and also locations themselves
I need mod making assistance. So atm my smoked items appear smoked while i'm holding them, but they don't once placed, even tho normal smoked fish does have the animation while placed. Any idea on how to correct this
yeah, thats what I ended up doing to make it work. and that works fine.
I did it the original way in the hopes it would be less edits and thus slightly less lag, but π€·ββοΈ
wdym placed
i put it on display on a table
hmm might be weirdness with how smoked fish are colored objects, and those force the full drawing logic instead of just grabbing the sprite from the item data
try adding CopyColor true to the machine rules that are making the smoked meat
and retest with new objects
idk if its relevant bc idk the difference between draw, drawInMenu, and drawWhenHeld for ColoredObject, but the latter two specifically check for an ItemId of "SmokedFish" to call a special drawSmokedFish function
I'm operating under the assumption wiz is using EMC's custom smoke feature
context is very important
nah just learn to read minds /s
i am using emc
in that case i leave you to selph and/or you're on your own but wlightheartedly with a good luck attached
Is there a difference, as far as the game's resource usage is concerned, between Loading (and replacing) an image to be X pixels tall, and using EditImage ToArea to add sprites around X pixels down?
- adding onto vanilla tilesheets is a recipe for conflicts
- technically less textures = better, as texture swaps are what's slow
I know Loading would replace the whole thing and thus be worse for compatibility but I think I can ignore that for the situation I'm looking at
Is there anything else, besides the hardcoded part in Object.cs, that is responsible for sprinklers/enrichers? I want to trigger the enricher manually and it looks like the game is calling Objects.cs -> placementAction()
There it's going through all location.Objecs and call HoeDirt.plant() if everything matches.
Or am I on the wrong path?
(It turns out Sprites in Detail causes EditImage patches to no longer be able to extend sheets, but Loading an image that's the needed size to begin with apparently works fine)
(Oh, no... what am I?
)
Anyone here speak Mandarin?
i heard about mandarin
someone called decidedly something summoned me from the abyss
@winter dust (Just in case ping!)
qhar
Look up!
Oh, do you speak Mandarin Butter?
Can you take a look at some pixel art I'm doing in #making-mods-art please?
i speak canto daily in fact
Are the areas of the world always loaded or does it require a player to be in that area?
Example: Can I grow a plant or water dirt through code anywhere in the world or only in areas that have a player in it?
There's UpdateWhenCurrentLocation() in GameLocation, but also updateEvenIfFarmerIsntHere() in subclasses like Farm. So to summarise, I don't know exactly!
Manually doing something like that... good question, but simple enough to test at least. I'm fairly sure it should work?
(dont expect it to work in multiplayer)
though if a location can grow crops, odds are it should be AlwaysActive, and it will actually work in multiplayer
but locations in general are not always "real" for farmhands
It's ok if it requires a player in that area, was just curious
Is there a mod that adds more language options for people?
Like lets say Italian, Brazilian Portuguese, Dutch, Swedish, Ukrainian etc.
https://stardewvalleywiki.com/Modding:Custom_languages
https://www.nexusmods.com/stardewvalley/mods/7052
Yeah: Vietnamese, Thai, Indonesian, British English, Ukrainian off the top of my head.
I wish we had a list of them.
That would be a really good page on the wiki, yeah...
Can we get a mod that translates everything into Wingdings?
(Italian and Brazilian Portuguese are vanilla, I believe.)
Oh, then it's regular Portuguese I'm thinking of?
well fun fact, PathFindController quite literally IS the "Go there" method
so at least for now I will be using it and after I do my core mechanics if needed I'll look into pathfinding again
Is there a vanilla method to get all Crops at a Location/GameLocation or do I have to loop through the Location's Objects?
arent crops in HoeDirt which is in turn in terrainFeatures
aside from garden pots which are objects which contain hoedirts
though objects will catch forageables
I need forageables as well, so
A crop is in a field on a HoeDirt which is a TerrainFeature, yeah. Forageables are just Objects in the location's object dictionary.
Except... some special forageables like the spring onions.
I've asked a similiar question and someone gave me this piece of code that works great :
{
if (feature is HoeDirt soil && soil.crop != null)
{
}
}```
you should be able to get any terrainFeatures in any location you need with this just change the values
this is for crops on the farm specifically
(There is also Utility.ForEachCrop(), though I'm fairly sure that does every crop in every map.)
Oh wow, that would be handy. Gonna debug that
It just takes in a Func<Crop, bool>. The return value can be false to stop iterating at a certain point, or true to continue.
Hi
Hello!
So it's pretty much the same as the code piece Marci posted but also includes Garden Pots. That should do what I want. Nice find
There are a lot of useful things like that in Utility. Well worth looking there if something's going to involve a lot of iteration over things in multiple maps.
If I want to take an item from a container/chest, do I have to RequestLock/ReleaseLock in the process?
Found a piece of code in Object.cs, now I'm unsure.
Or is it safe to just decrease the stacksize with item.Stack--?
I'm not one of the chest experts (that would be matt/khloe), but I think that isn't necessary if you're running your code when you can be reasonably sure no one is touching the chests (e.g. dayupdate)
otherwise using a mutex is probably a good idea yeah
well, better safe than sorry
Does anyone know how to mod the game to make the male farmer 1 pixel shorter than he currently is? I'm guessing that if I change the sprite and do nothing else I'll end up with misaligned clothing/hair/hats/accessories/etc., hence the question.
i dont remember if there's mods to make both farmer same size
you can try and see if there is and how it's done
I can't find anything so far, but I may have missed something.
youd need C# for the hat and everythign stuff you mentioned
Hey Folks,
Sorry for the disturbance β€οΈ
I am looking for a couple of links I can study to help me create some basic SDV mods with my daughter.
No problem decompiling files and altering values, etc. we've been messing around for a while now, but if you had a link to a wiki or repository of starter tips that would be great. I'm no expert at all π so just the basics would be plenty
Thank you, any help is much appreciated and will make her day β€οΈ
H&Z
!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.
Depending on what you want to edit, you can make some basic Content Patcher mods very easily and won't need to decompile or anything like that π
(Does Elizabeth's new infographic have a command yet?)
Thank you so much Governor β€οΈ
This is a pretty good indication of what you can do with what!
Generally if you have a starting point in mind, people will be able to direct you to more specific resources too
I mean... Look, I can give us infinite money, or 500 defense, right, thats no probs... But she has seen me do those things now and thinks I am some kind of computer God π. Her last request was to move the train station onto the farm. The void between whet I can do, and what she thinks I can do is quite vast
Oh, stardew modding is very much bird identification xkcd
Now that I think about it, I would love to have a personal train station in my farm :D
This is fantastic ππ thank you
Okay, moving the train station onto the farm is going to be very difficult lol π Though you could create a custom farm map that has a fake train station built into it and maybe set up minecart warps to go places with it?
I have an LNH farm map with a train in it! So cute
Or perhaps an item you can get to put on your farm that warps you directly TO the train station ... though a train on your farm would be pretty damn cool
Right?! Dude she wants to be able to take the train to Zuzu
Thank Classical MathPerson (avoiding the ping) for this, not me! Though don't ping her just to thank her, that might be a bit much. 
Ty Elizabeth 
You don't need to ping me on reply when I'm actively chatting π
considering you can technically take the bus to zuzu if you download DTZ you could use the trainstation mod to make it to where it also takes you to there
Actually, thinking about it, you probably could add a working ticket machine now that Train Station uses CP
TS 2.0 adds ability for other places to use the train station menuing
(In CP)
My main concern was how it'd interact with farm maps, since those can be weird sometimes
Might be fine though 
Here's a smapi log for my issue trying to move some CC bundles to different rooms: https://smapi.io/log/9a777710a283468990808e0248878ee2
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.
Someone asked in the comments of TCC if the mod would be made βcompatibleβ with the geology mod and the Dwarven expansion mod, what does this mean?
ask them
Okay
https://www.nexusmods.com/stardewvalley/mods/29911 This might also be of interest, where you could even add animation of the train (or any transport) arriving and departing if you want.
I had a feeling. I've only made content packs so far, so that's going to be an adventure.
What's the full name of your mod?
I had a twitch streamer (nino kito) play my mod yesterday (law and order sv) and it's actually so satisfying to watch someone else enjoy your work
I totally did not just waste hours of my life because I forgot to turn pixel value of getPosition() to tile value

but if anyone knows of a good way to get the tile position of an NPC that I missed like the dumbass I am I will gladly listen
Toniβs Crystal Clear
It currently just adds rocks to the mines, which was why I asked for clarification
Npc.Tile
I believe - at least relating to Dwarven Expansion - they mean the jewelry thing? Otherwise I think they're just confused and think that your nodes would overwrite other nodes - which, as long as they are named properly and not just the exact same internal name as those other mods, should not be of any issue (and should inherently have some base compatibility with Dwarven Expansion's gem polisher and such)
I would presume so
I have asked much dumber and will ask even worse in the future, don't be afraid to ask us things if you're struggling! 
Considering there's no list of what the mod actually adds, they may also be wondering about whether it adds duplicates
(oops, forgot to @ you in the above, sorry)
Im assuming I know the answer. BUT im going to ask anyway in case im wrong. In order to move the furniture (on farmhouse upgrade) to a specific spot. (ex a chair at 12,15 gets moved to 20,22 on upgrade) that would require some C#, yes?
no easy magic way
are you trying to make the furniture automatically move in a farmhouse you're adding?
Yeah. Long story short Im trying to fix an issue where furniture looks all wonky after an upgrade
I think that's a known issue with farmhouse mods because of exactly that
Yeah, I understand what is happening. Like ive tested and delved down that rabbit hole. Just trying to figure out if there's an easy fix, or if I come up with a creative solution
Sounds like I need a creative workaround
I wonder how the game arranges the furniture after upgrade tbh. I think it just puts it all in the middle room in the same layout that it was in except for the bed?
if you have a room in your farmhouse that the original room could fit into, the c# shouldn't be too tricky
Based on what I can tell, the first upgrade just adds space to the right and spawns a bigger bed. So nothing has to shift. Since the next map is bigger it is hard coded to shift the furniture down and to the right
to align with the next map
So I just need to get the exact specs of the hardcoded shift and design my map accordingly
Alright. Thanks for helping me talk through that Iro
another possibly dumb question but-
Point SpouseTile = new Point((int)spouse.Tile.X, (int)spouse.Tile.Y);
is there a better way or is this fine
this is converting Vector2 to Point
No worries! And you're right - @thin hamlet you might want to add more documentation for what your mod includes/adds gem wise
Utility.Vector2ToPoint(Vector2)
Used that today
ah, thats good to know
in this case you can also do it like this..
Point SpouseTile = spouse.TilePoint;
Im blinder than darkness itself
Don't worry, we all suffered from being blind before
if you don't want to make a new variable, you can also do (Point)spouse.TilePoint
Iβll get that going when I have free time
good to know 
Alright now time for a little bit less stupid question: making the loop wait until movement is finished before initiating next iteration, right now I have a working code but it works by just constantly looping and checking if the canContinue flag is true, which becomes true when the npc is checked to be on their end point. Any takes?
what are you trying to do? (sorry if you sent it before haha)
making the npc walk to a bunch of dynamic(any specific not raw data) points
interesting, what is this for, if you don't mind me asking?
npc scheduling in stardew is pretty fragile and can interfere with a lot of other mods unfortunately, but I'm pretty sure there should be easier methods to make them walk to a given point
Imma show you literally all it takesx
I was surprised myself, remember kids, always ask chatGPT when coding
{
PathFindController controller = new PathFindController(npc, location, destination, finalFacingDirection, null);
npc.controller = controller;
}```
this is the "go there" method
please never ask chatgpt when making stardew mods π for starters, stardew's underlying code had changed a LOT since chatgpt last updated its info
well I mostly use it to error check my own code, but this was a very surprising find
I'm gonna expand that to just never ask GPT anything
error checking your own code is much more reliably done by running it haha
not if it's fine, but it doesn't work and you have no idea why
then I recommend asking here! where real humans with sometimes encyclopedic knowledge of the game code are almost always around to answer questions
like seriously, you'd be amazed just how much some people here know about the inner workings of this game
Roku and iro have also released multiple C# mods apiece, I'd trust them to know where the good advice vs. the bad advice is 
alright alright you convinced me
regardless, you're looking at the pathfinder, but I think you also need to look through some of the scheduling code for spouses for this
ANYWAY we are getting extremely sidetracked here lol
Watch test and millions of other Stardew Valley videos captured using Medal.
uh, Avi told me where to look for that once, I'll go find that 
Try asking me about festival code some time ;P
serious question: how hardcoded are festival events? If you want to change, say, the egg hunt to be, idk, a quiz show, is that theoretically possible with CP?
oh trust me, if I have to mess with it I will 
well I already managed to find the pathfinder!! as you can see on the video
though you guys are welcome to ask me about... horses and drawing over maps ig? 
What about Nick Cage?
yes, I said you were already looking at the pathfinder haha. It's the spouse scheduling code you need to look for now
that was shockingly easy to do, hold on let me send pretty much the whole code here 
If you rewrite the festival script? Yes, though you'd have to do some horrible things with trigger actions to manage awards, since you wouldn't have access to festival score
Ooh, that's interesting to know π
There was discussion at one point about how to rework the Egg Fest so that it's not not!Easter but the egg hunt was always a sticking point
pretty much entire marriageDuties goes to trash with my mod
I think you could reframe the egg hunt and keep it tbh
Yeah, the main concept discussed there was to change the egg sprites and make it some sort of treasure hunt, I think
It was pretty loose brainstorming π
There was a mod idea complaining about how the festivals are always the same, I labeled it as a SMAPI mod because I thought things were more hardcoded
I don't think egg hunts are necessarily an easter thing though
They weren't real specific about what they wanted since they were complaining, but
the egg hunt isnt very associated with yoba tbh
you should still look at it to see how it handles pathing to a given location
Aren't they? I've only ever seen them happen at Easter
I guess with enough dialogue edits, you could reframe it to be a general spring thing, but I think it'd still have an Easter association for a lot of people
Well, some things are hardcoded, but scripted stuff like the egg hunt usually are made of hardcoded commands glued together in event scripts
Hmmm, can I mix manual and annotation Harmony patches?
or to multiple at once ig
yea
PatchAll for the annotations and Patch for manual
idk why you would do this though
Because I normally do manual but I need to change when one of my patches happens to avoid a conflict
And I don't want to change entirely to annotations if I can avoid it
i wonder if HarmonyAfter works on manual
I do also wonder, I kind of assumed not since manual patches don't really use annotations otherwise
Of course, the other major issue with changing the festivals too much is all the mod-added NPCs who reference it π Stuff like Kailey's Feast of the Sun works okay since the soup is still the same, but compat would be a nightmare if a mod removed the egg hunt
My family celebrated ostara when we were kids, and although we didn't do an egg hunt, we did other egg-related things. The reason for eggs was the association with spring and new life and growth
It does
var harmonyPostfix = new HarmonyMethod(postfix)
{
priority = Priority.Low,
before = ["that.other.harmony.user"]
};
looks like its a field of the harmonymethod
You can also just use annotations
With the manual
I did that and it worked
Ahh gotcha, good ol' Christian festivals assimilating pagan traditions strikes again, huh? π
DO NOT ACTUALLY DO THIS IN A MOD IS2G
private void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
if (e.DataType.IsEquivalentTo(typeof(Texture2D)))
{
e.LoadFromModFile<Texture2D>("Path/to/nic/cage/asset.png");
}
}
the full nic cage mod 
but android compat
Reminds me of my unreleased Everyone is Grandpa mod.
It does exactly what you would expect.
I hadn't heard about ostara before, learnt something new 
Oh no... won't someone think of the children android compat?
have you ever seen a video of what I just sent in action? because I did run this 
oh wait u meant to look at how the game actually executes movement right?
Lol
...no, but I want to.
the spouse duties code already has a spouse go to multiple dynamic points afaik, so I meant you should look at how it implements that
it does? all I see is raw schedule data
oh I only have screenshots
(1 is the backwoods, 2 is the farm)
So when's the release?
now.
you should see how lovely and red it makes the smapi console
The code that makes spouses go to various points is in farmhouse.updateevenwhenfarmerisnothere

The code that runs all that shit is in character.update
Or npc.update
Something.update
actually this reminds me of Homestuck
I also made a boncher version and found out that this straight up will not load a save if you use certain textures
it will only really work with HD images for some reason
The two random trees
some assets don't get replaced because they expect specific sprite sizes, judging by the smapi errors
mostly bushes and trees in this version, the boncher version had a lot more unchanged stuff
the main menu is the best part tbh
I had to do something slightly different for Everyone is Grandpa:
public static class Patches
{
private static AnimatedSprite grandpa;
private static List<NPC> npcsWithChangedSprites;
public static void Init()
{
grandpa = new AnimatedSprite("Characters/DecidedlyHumansCurse/Grandpa", 0, 16, 32);
npcsWithChangedSprites = new List<NPC>();
}
public static bool NPC_draw_prefix(NPC __instance, SpriteBatch b, float alpha = 1f)
{
if (!npcsWithChangedSprites.Contains(__instance))
{
__instance.Sprite = grandpa;
npcsWithChangedSprites.Add(__instance);
}
return true;
}
}
I had to make a custom grandpa walking animation that definitely wasn't just hopping in place.
List, DH, seriously?
DecidedlyHumansCurse
stopping in real quick to post "everyone's name starts with J" (too long for a discord blob)
https://github.com/ichortower/TheJClub/blob/prod/Main.cs
I love how your code still tries to implement the everything replacement in a kind of logic-based way and meanwhile I went for the "nuke everything" option 
Aw man, what's wrong with List's? I like List's...
half the time, I make arrays but end up using Linq methods then converting them back to arrays again lmao
the spouse npc has very few movements at all, mostly warping between kitchen/porch/patio/bus stop and otherwise following a schedule on certain days, only having any meaningful walk AI by walking in random directions in the farmhouse
anyway yesterday I almost wrote Dictionary<string,Dictionary<string,int>> or something as the type of a generic method and decided it was probably time to stop and refactor 
I don't think there is any piece of code dedicated to npc movement that would consider back-to-back movement like mine
For a lazy zero effort mod that was never going to be released, absolutely! 
oh my god what is this
Glorious is what it is.
ohhi Decidedly, may I DM you something about a possible compat between our mods? 
Oh, yes, I was going to get to the reply on the issue this week!
but also... anyone knows where to get specific event IDs? I forgot which file has them
or anyone happen to know the id of any event that has a question in it? π
I think it's just all in Data/Events/LocationName?
will check
thanks
if I ever learn C#, my goal will be to make Atra and chu disappointed in me 
Just learn from Avi
she's managed to get both of their disapproval at least once
Avi truly has that gift
have you looked at NPC::addToStackForSchedule? (it's a private method, you will need to use reflection probably)
I haven't, but now I will
(and, by extension, the methods that call it)
List is fine when you don't need fast lookup
Smh
Know your types
Anyone know how to load an arbitrary texture onto the floor during an event? Tried "addFloorProp Mountain-footprints 8 7/" but obviously the game doesn't like that
I figured out how to load the texture in with my config
But don't know how to use it now, since it's not replacing an existing tile or sprite
Bjarne Stroustrup would be ashamed of me.
alternatively, idk how different animal path finding is from npcs but you could always look at that too
since they are pretty dynamic
In comparison to an array? I know dictionaries are faster but I know very little otherwise 
Pretty sure Dennis Ritchie was already pretty disappointed in Bjarne for adding objects to his language
I believe so!
should I be worried?
yes shame on you
No -Wall, no problem. /j 
0 errors 0 worries imo
Turn on details for the warnings. At least it compiles
Wait, no, that's not the flag I'm thinking of...
sometimes that catches something that you really should take care of
generally its prob just null warnings and should be easy to fix
Hashset
Hashset
Oh my god
less noise is easier for u in long run
My favorite is when VS tells me about a null warning, I tell it "no thanks" then I launch the game and get a null reference exception like 
Id care more abt warnings if I didnt get 40 warnings about comparisons of assembly reference versions
is your workspace cursed 
hmm re-sorting a list of potentially hundreds of objects every second on average doesn't seem like a good idea does it
How many hundreds? Every second is like nothing
how many crops would you be willing to plant on a big farm
Hm, personally no more than 100 or so is usually what I aim for, but I know some people are unhinged
(btw, there is somewhat of a reason why nobody has done the dynamic pathing for spouses yet, even though the idea has been floating around for a long time - personally the closest I'd get to touching that with a ten foot pole is by dynamically adding new things to the schedule and forcing it to refresh somehow)
Well, if I were to tackle something like that, I would be very wary of dumping any vanilla mechanics out completely
And trying to work in the confines of the marriage systems is... obnoxious
moving the spouses manually feels like a very dangerous idea too, personally, knowing what little I know about how these things are handled (even if you don't try to account for things like multiplayer, or the headache that cross-compatibility with other mods will be)
HashSet, Dictionary, etc can get their value in 1 step, because they jump to the right spot by hashing the key you give them. Lists and arrays require looking at every value until they're the one you want, so it takes anywhere from 1 to [# of values] comparisons to find something, based on order. 
(if you want to do something to each thing in the list, though, they're the thing to use)
I will have to explore hash sets more, I'm not really familiar with them at all
they're basically just Dictionary<thing, bool>, they either have your key or they don't
not a great description, but they're valueless, just to check whether you've seen a key before or some such
for example, I believe that the pathfinder for npcs has them mostly walk over objects (idk how the nondestructive one does it but that's how the destructive option works). Also, if your npc ever walks over a warp, they will warp to that map afaik and continue their movement like before, so you have to check for those
actually
they don't
not all at least
idk I tested with sprinklers xD
I think they might still destroy forage?
But they shouldn't break anything actually important
I can easily work around that
@median dune You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
https://smapi.io/json/none/985b55d9a3a1417590ea13ce4207e38a
Could someone take a gander at this - specifically the schedules under "Qi Rain Schedule 1 No SVE" and "Qi Rain Schedule 2 No SVE" and let me know if Im doing something wrong there? It defaults to his generic spring schedule instead (i set it to spring instead of rain since, much like the last one which is the "Qi Alternate Main Schedule - Nut Room" it should load) I also did it in that order so those would override the nutroom schedule which I think I did right? But the patch itself isnt applying when it rains in the Valley
:o
the warp thing is definitely one to look out for though, it's caused a lot of issues in the past
I mean, you really would have to try to get that to happen
like, who the hell would place anything or something next to the warp
if you're making an NPC walk around the farm, that might include building doors
Is there a reason you aren't using the rain schedule key?
I just read the rest of your response
ohhhh
I will have to test that
but still I should be able to work around it if need be
as with all things (with enough C# anything is possible)
But I still don't get why you aren't using rain, Lily, since spring shouldn't be used if a rain schedule is present and valid
And if you conditionally patch the spring schedule to take effect during weather, it will take effect too late for the pathfinder to use it unless you have multiple rain days in a row
That whole 'NPC checks the schedule and pathfinds before the new day starts' thing
Kinda dumb, but you can get the upper limit to how many crops are possible to plant on the farm by figuring out the total useable area (+ greenhouse?). Then you can decide if sorting your list is fast enough or if you need to change
You might not need a hash for a couple of hundred things on modern hardware. But test it with the largest size that your list can actually be (the area of the farm)
why do u need to sort every second 
Also, why re-sort the list every time? Why not keep it sorted?
What they said xD
Insert into the correct position in the list when you add. It will stay sorted
i was thinking more use a heap
and do the heap insert on terrainfeature change (i.e. whenever hoedirt)
Sure. That would also keep it sorted
also if we're talking about purely crops (I'm guessing for something like harvesting?) there's a fixed amount already planted each day and then more will only be added by the farmer planting new crops, so you could probably keep a heap/sorted list from the beginning of the day and then use a harmony patch to only update when a new seed is planted?
you dont need to use harmony
is that something you can hook onto directly? even better
can detect hoedirt coming into exist with location.terrainFeatures.OnValueAdded
well that's not exactly the point, what I wanna do although unnecessary is having a bit of randomness in the movement instead of pre-sorting the list and following it
u dont have to sort a list for random do u 
unless you want a BIT of randomness and not have them go from a crop on one end of the farm to the other
can that also detect planting, or would you just need to assume that a tilled tile generally will eventually be planted? out of curiosity 
Im sorting it by distance to the NPC
Yes, but, one hash can be more expensive than a half-dozen comparisons, so don't do it for tiny lists, and be careful what you use as keys.
that is also something I thought about
u can detect change to netCrop one hoedirt
onfieldchangevisible
there is also something else I was thinking about, to prevent them from going snake and walk somewhat methodically, meaning they prioritize the surrounding 4 tiles before moving on
I should learn more about netfields from the sound of it 
is there any way to force a special order to appear? I have one that plays a pivotal role in my mod but one user reported they didn't get it until year 4 which is pretty late.
I was gonna say, I saw atra's comments on the special order mod page 
You can trigger action it
There's that mod that allows you to just reroll special orders
giving it to people based on events/triggers/etc is possible, skewing the board is Rough
I have backup mails for Stardrop Breakfast's special orders for those who aren't getting it for ages
Plus a tongue in cheek reference to everyone being on the board
(I also have a framework to create another board with a specific subset of orders, and I think somebody else might've done that too
)
OK, thank you, I see this now on the trigger action wiki that's helpful
he's a desert npc so the rain schedule doesnt actually work :|
Anyone know how to make a crop produce flour or beer?
I did initially have the schedule set as just 'rain' and 'rain2'
Do you mean grow beer and flour or like, be produced into flour or beer
produce like if i put in the mill it'll make flour, put it in the keg it'll make beer
you would have to edit Data/Machines for Kegs and have your crop be an additional output for beer
not sure about mills though
so like wheat does right now, basically?
Data/Buildings I think
it'd be two separate crops, a root veggie like cassava that can be made into flour, and an oat that can be made into beer
oh those r just normal crop then
But to further elaborate - I was doing this last night but I found out that he just wouldn't trigger the Rain schedule(s) at all which I do believe is specifically because his home location is the Desert, which means it would (standardly) never rain there. So I asked for a general solution which was to have another patch that uses the 'when' condition for weather in the valley when it's raining.
Which I did in a single patch with 'rain' and 'rain2' as his schedules - and then neither of them worked so I figured maybe it was because they were still called rain and rain2? ... so I switched them to just be the 'spring' schedules instead figuring it would work much like his NutRoom Schedule (which I figured out by just not routing him through the office btw, IDK why the office made it impossible for him to go there but it did so I just took out the middleman and put a warp in his room that I may or may not add the ability for the player to use later on at a higher heart level)
besides the Data/Crop u also need to add Data/Machine for beer and Data/Buildings mill for flour
It would be Data/Buildings to edit for the Mill right?
yep edited
I was right about something I feel very cool
You can use Cornucopia [the mod] as reference for how to add Mill produce and Keg recipes
Do you happen to know which file to reference? There are many haha
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
assuming u know the general gist of content patcher
They'd both be in the machines folder
And this too
ah i see. thank you
For the vanilla data, Data/Machines > search up "(BC)12" which is keg
And then Data/Buildings > "Mill"
someday I'll get all these fence variations saved into the proper folder directories so I can start code π«
Is this really something people want though? I have yet to see anyone use YACP in a mod other than myself.
Made a new mod: Iridium Scythe Harvests Ginger
https://www.nexusmods.com/stardewvalley/mods/30642/
Question for anyone willing to peek at the game code: Is there any behavioral difference if an NPC's HomeRegion is set to Other instead of Desert? The wiki only mentions situations where other values in the character data become true if the HomeRegion is Town.
Since Lily pointed out that the rain schedule doesn't seem to fire for NPCs that are in the desert/have a Desert HomeRegion, I am curious as to how you'd get around that and if the HomeRegion being Desert prevents rain schedules from happening or not.
Or if it's just "NPC is present in the Desert, so rain schedule does nothing because it's not raining locally in the Desert"
Other may work - I don't think all the expansions are labeled Town but I don't know of any that don't obey rain schedules in town
@rigid musk ^ with this in consideration, can you try changing MrQi's homeregion to other and see if the rain schedule key works?
Hi guys, me again! I have this code
private void OnRenderedWorld(object sender, RenderedWorldEventArgs e)
{
// Render all circles from the list
if (circlesToDraw.Count > 0)
{
var spriteBatch = e.SpriteBatch;
// Iterate through all circles and render them
foreach (var center in circlesToDraw)
{
float layerDepth = ((center.Y + 0.5f) * Game1.tileSize) / 10000f - 0.00001f;
spriteBatch.Draw(
circleTexture,
Game1.GlobalToLocal(new Vector2(center.X * Game1.tileSize, center.Y * Game1.tileSize)),
null,
Color.White,
0f,
new Vector2(-2, -2),
Game1.tileSize / 20f,
SpriteEffects.None,
layerDepth
);
}
}
}
That draws a circle on the floor where you click with a chalk tool I've made but it currently draws the circles at the wrong layer depth where the player walks under them
need to fiddle with this stuff float layerDepth = ((center.Y + 0.5f) * Game1.tileSize) / 10000f - 0.00001f;
it is big pain sadly
Yeah I thought so, that's what I've been reading but didn't want it to be true π¦
u can ref TerrainFeatures/Flooring.cs
Oh, thank you!
another possibiliy is to just make it flooring 
limitation is that well u cant put real flooring if u do that
That should be alright, the only place you'll be using it is outside so I guess it could block paths but it's gonna be in a cave so should be all good
r o t a t e
w h a t t o ?
The rain schedule checks whether it's raining in the NPC's current location when schedules are updated. HomeRegion is never involved in scheduling and just affects some other logic, like exclusions from town gossip.
I imagine if the NPC's overnight location (their house, warp room, etc) was in the Default context instead of Desert, that might make them recognize weather from it. Just speculating based on the code, though.
(Oh, and the base game only ever checks whether home region is "Town". Desert and Other should be identical unless a C# mod specifically cares about it.)
ngl I have no clue what you mean π
i was replying to a comment but i guess discord decided that i dont deserve the reply
Ohhhhhhhhhh cute, gotta love discord
r o t a t e
omg eat, love me some wind power β€οΈβ€οΈβ€οΈ
π
yea i was gonna
some assembly required
do the other 2 transpilers needed lol
that wind sure turbines
it adds character
points to pre-release tag which absolves me of all crimes
it fucken wimdy
im think we might need to get rid of the building shadow tho it looks rather odd with the stalk being roundish at the bottom
btw the wrong stone is used in hte recipe if you hadnt noticed
πͺ¨ The item ID for Stone is 390.
some kinda off stone
I feared itd look out of place but i love the turbine already
i just debug build <building>
turbine cannot do wrong
cant believe chu doesnt test their mods
im caveman cuz i cant fucking remember commands :B
dats why i put "UniqueID": "VWW.CP.WindTurbine", to hide my tracks
i think that might be a crime-
more seriously, its prob most sensible if u release the mod in the end 
since the C# stuff is just new framework feature on a existing mod
O:
okay but now something I cannot find: emote Id's
for events?
Tiny teaser. I like the way it's turned out so far.
The following are the IDs for the overhead bubble emotes:
Note: When using emotes in events, use the first frame's number (e.g., if you want the heart emote, use 20.)
The table was taken from a Pathoschild reply on Reddit:
β
ah, so unfortunately, that means if your NPC's end of the night location is in the Desert, the rain schedule key will never be called, correct?
meaning you'd need to put their bedroom or what have you in the Default location context somehow
(I'm assuming Lily is using a 'rain' schedule because their NPC of MrQi travels to and from the island, but uncertain exactly where they go)
yeah, their default location or whatever would need to technically have another context (which might also affect rain sounds and such, I guess)
I wonder how difficult it would be for someone used to C# land to make a rain_location schedule key that lets you specify Valley or Island. xD
probably transpiler territory, the TryLoadSchedule rain check is in the middle of various other keys, but it could be done
(plus the pressure of taking responsibility for scheduler logic
)
Hey so I don't have to load everything in one json right, like if I wanted to break up my products into their corresponding bases I could do that into separate jsons?
yes, you can do that using includes in your main content.json i think
for reference, NPC.TryLoadSchedule() has this bit in the middle
if (base.currentLocation?.IsRainingHere() ?? false)
{
if (Game1.random.NextBool() && this.TryLoadSchedule("rain2"))
{
return true;
}
if (this.TryLoadSchedule("rain"))
{
return true;
}
}```
Perfect bc my json was getting too long for my liking
what if u just rain in the desert
so i got the flour to work but the keg wants to make oat juice instead of oat beer. How do I override it?
I mean, that'd likely be easier, yes, since the issue is that it doesn't rain in the desert as far as the schedule check is concerned. (addressed to chu)
I've noticed anvil/trinket tinkerer's anvil allows for reroll / sprite change respectively--is there any way to have the anvil not reroll, but just directly "level up" a trinket instead?
I would ideally want to make a "rare candy" item that you use at an anvil to level your Pokemon trinket.
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
this is an item query, which you can use in machine rules
I love yall so much thank you 
it's like raaaaaaaain on your newDay()
(honestly, I'd still find a rain_valley key useful because it seems fun to me that a desert NPC might be like "I heard it's raining in the valley, I must experience this phenomenon.")
and probably a GSQ to check current level and current variant of a trinket 
Hey guys can someone help me with something? I'm trying to test my greenhouse mod on stardew and I'm using some custom tilesheets like DaisyNiko's. I have the pngs from the tilesheets on my assets folder, but from what I understand you need to remove those before publishing, yet every time I try to remove the pngs the mod won't load in the game. Is there something I'm missing here?
(tbh it doesnt seem like a particularly difficult transpiler)
I see what you did there... xD
I know island visits are hardcoded, but it'd also be fun to have Sebastian visit the island on a rainy day and be like "I wonder if I'll find any tropical frogs"
are you checking it on a stormy day maybe? you only have "rain" in the conditions, so you need to add "storm" as well, since right now it'll only activate on rainy days without lightning (unless that's on purpose)
i did a similar thing for a spouse npc (since they don't normally have rain schedules), and i had the key when it was raining be "{{season}}_{{day}}"; would that work instead of "spring"?
(sorry if im repeating something somebody else said, i tried to check previous messages but theres a lot)
Do you have her tilesheet mod installed on your test save setup and do you have it as a dependency?
wait. idt "weather: valley" works in the "when" condition anyways
it does
i swear when i was trying it, it never worked, but maybe my syntax was wrong
It'd be something like "When": { "weather:valley":"rain"} right?
depending on what you were doing with it, it mightve just not been applied at t he time you thought it would be, due to the order in which things update
correct
well put quotes around rain
but otherwise yes
yeah you got it 
yeah, sorry, I defaulted to true/false in my code and had to rewrite it to rain and forgot quotes, LOL
i am quite stuck i don't see anything that hints at an override in the cornucopia code
Too used to HasMod and HasFlag, ha
(for the C# people who know schedules better than me, would it be a significantly infeasible task to just patch TryLoadSchedule to let people load custom keys based on like, a GSQ)
Yes to both, but I might've done something wrong
The manifest is looking like this:
{
"Name": "Genrebear's Nicer Greenhouse",
"Author": "genrebear",
"Version": "1.0.0",
"Description": "A nicer version of the vanilla greenhouse.",
"UniqueID": "genrebear.GenrebearsNicerGreenhouse",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
},
"Dependencies": [
{
"UniqueID": "PinkStations.Tilesheets",
"IsRequired": true
},
{
"UniqueID": "DaisyNiko.Tilesheets",
"IsRequired": true
},
{
"UniqueID": "hxw.tilesheets",
"IsRequired": true
}
]
}
Are the other two showing up okay? It's just DaisyNiko's that's not?
Nope
None of them are working as far as I can tell
I'll try adding one at a time to see if the problem is a single one
You didn't change the names of the tilesheets when you added them, right?
I am absolutely not one of those people but my understanding is that schedules get handled on day start before patches get applied, so that may have to be changed too?
I assume it also works if you do have the .pngs in your folder, yeah?
(Atra is the schedule expert, I'd ask them
)
when you made your map, did you embed the tilesheets into the map or did you create tilesheet files?
the idea would be calling a custom asset that people EditData into to define their schedule keys on like, gamelaunched to prebuild a list, and then insert the checks at the right points inside the existing TryLoadSchedule with a transpiler
I only changed the tsx files to start with z_ but not the pngs
shouldnt be any reason to lock a schedule patch behind a When condition either, since any tokens you might need can be used in a GSQ Condition too
tho ig if they need to update
so you made tsx files that are now in your asset folder?
i guess you'd just have to know you might be a day behind
and try to do what you need with just GSQs
I created the tilesets from the tilesheets
Yep
having done something like that island schedules, which are the method call right after NPC.dayUpdate:
things like CP tokens would fail to work consistently if anyone used them in an asset like that, though some GSQs would work depending on what data is involved
the tokens would work if the value never changed though, right?
I got island schedules to work consistently by skipping them during _newDayAfterFade, then calling them at DayStarted after CP was updated
if they don't vary between days, yeah, but most of them do
The asset folder without the modded tilesheet pngs looks like this
most tokens can also be replaced with a GSQ, too
when you create a tileset, iirc you should be choosing the βembed in mapβ option rather than creating .tsx files (somebody else please correct if wrong)
the main thing is that when players sleep overnight, the tokens won't update until after that method, but when they load a save, CP will have the new day info
How can I do this?
can you send the main map file here? Iβll be able to look at it in like half an hour ish
i dont know all the tokens off the top of my head (what a bad modder i am, right), are there any that a) do change constantly and b) dont have an equivalent GSQ?
I'm not sure if any GSQ info would be inaccurate if called overnight, or if it'd conflict with the results of calling it right before DayStarted on a load, though
Sure! Do I send just the tmx?
there should be a checkbox in the new tileset menu saying something like βembed in mapβ
Ooooh
I'll try remaking the tilesets and report back
well. how would the existing schedule keys have the right info if it didnt happen on the right day
Tysm
like if you have a schedule key for spring_2 or whatever. it has to already be spring 2 for it to accurately know that
idk if this will fix your issue though, so please do back up your current version and send the map here!
same with rain
things like that would probably be consistent, yeah, it's just possible that some GSQs check certain information that hasn't been updated by schedule time
(I don't know that any have that issue, though)
is there any harm in just calling TryLoadSchedule again at the end of _newDayAfterFade?
I'm not sure if that'd have any side effects or not, personally, I haven't gone over the whole logic for it
im just lookin thru it atm to see what comes after the schedules out of curiosity
the island scheduler already basically overwrites the schedule and is separate from dayUpdate, so it's a bit more limited
passive festivals seem like theyd be out of date
true, but it happens like, immediately after the dayupdate call
like, the next line
overall, I think the main thing is that you'd want to warn people to avoid CP tokens in your asset and just rely on GSQs
(or cache the thing somehow to prevent inconsistent values)
passive festivals, mail removed automatically overnight, items removed overnight, lost and found mail, perfection completion, and overnight farm events
those are the major things i see happenin after the schedules are loaded
the first two being p;otentially pretty significant
(idk what "items removed overnight" entails, i dont know items it applies to?)
yeah, updating the schedule in the way that IslandSouth does doesn't seem to have side effects fwiw, but some of that other stuff might resent being delayed or multi-called
(oh qi fruit i guess)
anything that happens in the players currentlocation resetForPlayerEntry also happens after the scheudles
maybe ill fuck around with it just for fun
Also SO stuff like the ectoplasm if you happen to get more than one overnight, I bet
poking around a bit, I don't see any obvious issues with re-calling TryLoadSchedule() after DayStarted, and the game does it indirectly in a couple niche cases

and/or the specific key overload, though you'd need to avoid overwriting island visits and all that
I tested this with one of the tilesheets and it seems to have worked! Tysm guys!!!
i was probably just gonna call the island schedule loader again too lol
i looked in there and I don't like it
I guess that's safe too
difficult part would be trying to insert key checks at the right points among the vanilla keys
the no-args loader basically just seems like series of conditional loads to begin with, so transpiling custom stuff in there somewhere would be the ideal, but not required
i didn't wanna potentially break anyone else that might transpile in there already for their custom checks
and prefixing something as important as it feels sinful
also I think re-calling the island scheduler might be redundant, because it saves to a different spot that's checked by this? it's been years since I parsed out the island visits, though
if (!string.IsNullOrWhiteSpace(this.islandScheduleName.Value))
{
this.TryLoadSchedule(this.islandScheduleName.Value, this.Schedule);
return true;
}```
oh that would make things easier
apparently y1 green rain is the only thing that overrides the island visit
can you even get to the island by that point?
probably not, but I forget the conditions for it
i though it was cc completion
requires CC completion and then a payment, yeah, so only debug/etc would really trigger that
i guess it leaves room for mods
it's just technically above the "if island visit, load that schedule instead" bit
Could you theoretically get Joja route CC completion by y1 green rain?
are there time gates in the joja route at all? I've never done it
I don't believe it is time gated
hm. then yeah I suppose you could
it's rare enough that I could see it being buggy, but yeah, I never ran into issues with Exclusions overwriting schedules after DayStarted
(and it still does that even in 1.6, since there wasn't a safe way to convert old mods to GSQs there)
so undoing an island visit probably wouldn't break anything either
Hey folks! I come, once again, in need of help 
I'm working on adding some extra crossover content between my mod and SVE and one of the ideas I had was for some characters to hang out together.
So here's the problem. Two of those characters are Sam and Shane. Here's how their new schedules look:
For Sam:
"winter_7": "610 SamHouse 15 13 0/830 Town 19 91 1/910 BathHouse_Pool 15 5 1/1410 BathHouse_Pool 4 7 2 2/1620 BathHouse_Entry 6 5 3/1750 SamHouse 22 13 1 sam_sleep"
And for Shane:
"winter_{{Meet_up.Day}}": "630 AnimalShop 24 5 0/800 Town 20 92 0/910 BathHouse_Pool 18 5 3/1410 BathHouse_Pool 9 10 3/1620 BathHouse_Entry 4 5 1/1810 AnimalShop 27 4 1 shane_sleep"
Everything works mostly fine for the both of them. They visit the spa, they walk around, and they leave at the right time, but Sam heads up to the train station and TPs to Grampleton Fields while Shane goes home normally.
I don't understand why Sam's schedule is not working? At first I thought maybe he wouldn't have time to go home but Shane does, so why doesn't he?
No error messages pop up in the smapi log. I tried running it without Grampletonfields as well and Sam still heads up to the train station and disappears. I don't have the train station mod installed.
If anyone could give me some light, I'd really appreciate it!
this is all very good information, thank you 
Your AB/XY buttons are wrong
? is that not how they are supposed to be
only acceptabe layout
ehhh
these look like xbox buttons layout though
Yeah, they are
which is he default Steam Layout as well
Honestly that was the biggest issue switching from playing on Switch to playing on PC
see i was the opposite, im too used to xbox buttons to manage using switch properly
Ended up buy an 8Bitdo and just set it's buttons to copy the Switch layout
Usually if they wander off into the ether there's something on the map that's interfering with pathing
It won't matter if they don't have time to get home or not - Jorts and Jean never do since they're in town until after midnight.
You leave your cats out all night?
I'm sure Linus rounds them up and takes them home once they pass out
Did something change with how the game handles tiles that were reversed in Tiled? I'm doing some minor bug fixes and found this
they are unconstrained by human sleep schedules 
If you use a tbin instead of a tmx, the game won't register the flipped tiles
Gotta save as tmx
Yeah, they're saved as tmx... π§
Then I wonder if you have a mod changing the base tilesheet?
I don't mind fixing it, I just hope it hasnt been this way for long and people just assumed the duck pond looked like that LOL
Jakk, try sending Sam somewhere else instead of his home (also is it actually called SamHouse? I don't recall if that's one of the weird ones)
I havent done any real upkeep of my mods in a month or so, I suppose things always naturally break as things update
Yeah, I used to reverse them all the time π«£
Thank you!
I'll see if I can get Sam to go somewhere else(not his house) and then go home from there. Not sure it'll work but meh it's worth a try.
If he goes to the location after but not home (to the same destination) then you know that's the problem 
If this were for a retro emulator, I'd agree. But alas, it's for a regular PC game that assumes normal (i.e. xinput or equivalent) PC controllers.
I wonder, does the bed location work?
I have only ever tried using bed in marriage schedules
Say how do u feel about square/regular ui style background
I can confirm that SamHouse is the correct location name, though
Idm the βͺ and it's good that i can put in hex color, so it is just matter of aesthetics
afaict it should; if they're not married, it looks at their default/spring schedule for the last entry and sends them there
(or their default location/x/y if they don't have those for some reason)
Are there any free-to-use NPC sprite/portrait assets for modders? Even templates or placeholders.
if itβs a placeholder just doodle whatever till u get a better asset lol
Update smapi
Oh, it's always that simple, isn't it? π
Well, I'd like something that actually has the right animations, but I'm really not an artist and it would be easiest for me to have a base to work from or at least something to stand in so I can work on my mod before having to do a bunch of sprites.
Well in this case I know what changed so
Yeah
Thank you! Yeah, fixed some other nonsense too
could use a vanilla sprite as your 'base', that's what I have mostly done.
^
Yeah, I could. I wasn't asking because I hadn't considered the obvious β just wondering if there were better alternatives available!
Some general RPG asset sites might have basic walking sprites as a base, but on the whole, the animations you need can be pretty different from character to character, so there isn't a single template (outside of colored rectangles to label the SpriteIndexes)
And it's kind of a tricky thing to get around with using bases, because credit is often needed depending on how the art is licensed.
OK, thanks for the insight. I was just wondering if anyone had specific info. No worries if you don't.
And unfortunately some people will try to use the bases without attribution and the SDV community is (rightfully so, imo) very hard on 'stolen' or unattributed assets.
If you wanna use any of the sprites/portraits from my mods Coal Point Farm or A Pelican Town as a base, go ahead; although I agree w everyone else. using vanilla sprites/portraits as ur base would be the best option since you don't need to worry about credit
That's very generous β thank you! If I do so, and if I ever get to the point of publishing my mod, I would of course credit your work. As I mentioned in my first post, I was interested in free-to-use art only. This kind of thing does exist in some creative communities, but I understand it's not always out there.
Yeah, it's no problem!! Art was definitely difficult for me in the begining, and so many eager modders seem to drop out by needing to learn
As long as it's not just recolors go crazy LOL
Thanks again. If it were just static images/portraits I think I could handle it myself but the thought of creating all those animations was stressing me out!
At the end of the day, listening to people in #making-mods-art over and over is gonna make it better
(it's pretty much how I learned!)
Your mods look cute! I'm glad there are some dark-skinned sprites to work from in there too. If I ever get my ideas off the ground, and if I use yours as a base, I'll run it by you to make sure you think it's different enough. :)
one of the key tricks i was taught is base stardew has a weird thing that when it changes intensity in a color it also actually slowly moves on the color wheel too
Interesting β that seems right, thinking about how a lot of the NPCs seem to have red, blue or green shadows.
I'm getting this error StardewModdingAPI.Framework.Exceptions.SContentLoadException: (CP) Walk to the Desert Redux loaded map 'assets/maps/Cave.tmx' with invalid tilesheet path 'mine_desert'. The tilesheet couldn't be found relative to either the map file or the game's content folder. and it doesn't make sense to me.
The game has a mine_desert texture spritesheet, but for some reason when it tries to "find" one it can't?
Did CA rename it?
the mines tilesheets are in a subfolder of maps, the game only default looks in maps
Mine maps are located in a Mines folder, they're not in the base Maps folder
so the mines are an exception
Mines/mine_desert
I usually just load it myself, or shove it in the mod itself as a relative to sheet, but thats the old school fix, i dont know if there is a new one.
<tileset firstgid="1" name="cave" tilewidth="16" tileheight="16" tilecount="320" columns="16">
<image source="Mines/mine_lava.png" width="256" height="320"/>
</tileset>
if u edit ur map in the unpacked Maps folder to begin with then it should already be set correctly
o shit, that works now? cool
I was just about to link that, LOL
Tiled saves the path to whatever sheets you use, so if you save/exit when they're in the right folder at first, you can adjust it by just editing the text
(or in this case, it probably said source="mine_desert.png", so you can fix that)
there is this mod for accessing not Maps/* but u dont need that for Maps/Mines
(personally i feel like smapi should just let ppl do it
)
dear god, I've made a monstrosity, these roads, are angular!!!
the drivers r very skilled
Stardew Cars are pac-man cars, they only move in cardinal directions.
Well, other mods just do roads like this, so if someone wants this (for whatever reason) they can enable it.
its your mod and your aesthetic 
i do think the middle horizontal road feels narrower for some reason
They are.
Vertical is five wide, horizontal is three wide.
Not sure why Tarniyar did it that way, but I think it was for perspective.
i guess so, it is hard to reasonabout perspective with sdv


