#making-mods-general
1 messages · Page 183 of 1
i was mulling over how feasible it might be to act on that one comment i got on special power utilities however long ago where a user wanted to be able to click on the icon in the Powers tab to toggle the ability on and off
why not just patch the GSQ itself
bc the conditions for each of them tend to be different
and the GSQ is just for the icon
not the actual power
why not just patch every GSQs
the GSQ thing was an example
idk what if i didnt even use the gsq to implement my power
oh, derp, if i'm looking for the Content Patcher Config stuff, I should be looking under Content Patcher github 
bc sometimes things dont check the GSQ
some things would need manual compat
some things i wanted to be able to automagic
and i wanted to get other mods that might use them too
also some powers dont even make sense the turn off 
like what
do u unlearn dwarfish
yeah like, why can't i just unlearn it on the player
i never said any of this was a good idea
what if i'm tired of using the online translator 
I like to say sometimes players want nonsense
if every power used the same check in the code as it did on the powers tab itd be easy
i gave people debug commands to unlearn portable hole's upgrade powers if they need to for some reason
but instead i need to check if the GSQ for the icon asks for an event and then search all the code everywhere to see where it checks for that event
and whatnot
I forget every time how high you have your movement speed 
10 is not high enough
perhaps u can just offer ways for a C# mod to add ways to disable a power 
and impl the vanilla power disabling
no like, do it in ur ui
in fact Special Power Utilities does already offer power disabling
but its not toggleable
and only for powers that support it
chu this IS me trying to figure out how to do it in my UI
like can u click on it in the powers tab and make it go away?
no thats what this user wanted to be able to do
the thing i was imagine is more, i hand your API a ToggleMyPower delegate
u call it for me whenever user press the icon on the ui
i dont think concernedape is gonna use my API for the vanilla powers tho
yea but there is a finite amount of vanilla powers, it wouldnt take much effort to do em right
would u like to write all those transpilers for me
1.7: CA adds 42 new powers
not even that unreasonable. 1.6 added something on that order
Hw much don you guys know about the "we listen and don't judge" meme
It's toxic
one of the power icon GSQs is just PLAYER_HAS_MAIL Current HasTownKey
thats already going to be annoying to transpile every single place that checks if the player has that mail flag
cuz they definitely dont always use the GSQ form to check
doesnt every vanilla power either use mail or stats
then u dont let ppl toggle it 
but chu the whole point was to be able to toggle every power
okay, mail, stat, events
in my unbiased opinion any powers that dont use these are fake and shouldnt be supported
but hm back to actually doin this from button side instead of api
how do u detect what patch
i just had the urge to do somethin with Special Power Utilities recently but i dont know what
and i still dont know how to make it more of a framework for custom powers
what do you mean
like decide between postfix, prefix, and transpiler?
I say this before immediately remembering one of my powers use none of these 
i can construct transpilers dynamically
im dropping support for Selph's powers in the next SPU update
(it reads a CustomFields ModData on the host farmer with a custom GSQ)
evil
farmer has customfields?
ModData
why did u need this instead of mail flag
out of curiosity how does ur custom GSQ differ from vanillas
well it's because it's a number value and the GSQ is "is this number higher than 0"
Lol
so toggling that off would require a custom code to set that value to 0, while also remembwring what it was so you can revert it back when you reenable it later
Isn't that just stat
unfortunately stat isnt synced MP, and this stat is one I want to sync
it is just a stat tho
But with proper syncing!
Right
(Aquarium writes the last donated fish to the farm's moddata)
anyway i did get my original answer sorta which is yes i can get every relevant assembly if i need to
but i probably wont act on this information any time soon anyway
but if any of y'all have better ideas for turning SPU into a framework proper im all ears
otherwise keep an eye on your assemblies
panik
because
I guess I could save it on the farm
i think the thing with powers is that they dont have strong unifying theme 
can you at least cecil a property into networldstate if you're gonna do that
they r almost more like key items
yeah theyre all very highly specialized and i cannot think of a single real way to make them more accessible to CP than they already are
Enjoy!!!!!@
i mean it would be easy to support toggling your power then
i would just toggle it visually and not actually change anything and if the user complains i tell them to report it on your page instead (but your page has comments disabled (win win))
ive already got other ideas on my theoretical plate anyway
i still wanna make an in-game ilspy
no real reason why i just want to
how would that work 
how wouldnt it
do u load in the ilspy decompiler
ive not put much thought into it
Hmmm, can I Automate a global inventory?
no no
I mean automate does junimo chests somehow
i mean. maybe. if theres a piece i can load to translate il into c#
yea kind of, if its a chest
They also have a physical chest, mine is just a placeholder object
mostly i just thought itd be neat to be able to see live values of things in game, like fields and properties
but for any field and any property
Oh it calls out to native code to do the hamminf
otherwise uh, harmony patch automate to support ur object
Lookup Anythinf covers a lot
that can just be another hotkey
I had the chaotic desire to make a new UI for LA, it passed thankfully
i dont hav enough keys on my keyboard for every field in every class
I had the chaotic desire to make gloves
worse comes to worse you can add integration with the automate API yourself
i dont really understand how ilspy helps with this, cus that seems more like problem u solve with reflection
i think though if theres one major theme across all my mods is that i dont really care if theyre useful or enjoyable to anyone but me
because i just like to code them for fun
the end goal is mostly irrelevant
i was just comparing it to ilspy
like the UI and stuff
not actually loading ilspy in game
it would be all reflection
(I see the emote and I would like to say that the automate API is pretty robust, there is no need to fear)
NGL, as someone who likes debugging, I would love to be able to poke around that level of information in game 
It's the fact that Pathos is too smart for me and I just stare at all his code like a little vegetable 
i realise now that i have -2 idea what you mean here because i only use ilspycmd bolb
i'm ngl my eyesight's been blurry all day so being flashbanged actually made everything clear
thats not a bad way to do it either
i just prefer using ilspy
unless i need to search for specific strings or smth inside invidividual functions
ilspy takes up practically nothing in terms of system resources so i can just easily keep it open all the time
Discord is currently taking up more resources than ILSpy, which is baffling to me
just electron things
hi! i’m a beginner on modding. Is there a way to make the characters (spouse or dating) react when farmer reaches a high heart level with other character? (with a event, dialogue or something)
Haley has dialogue for if you marry or divorce Emily but i dont know if thats limited to just NPCs that are listed in the character datas "friends and family" field or if its just any name will work. but you can also add conversation topics based on heart levels too and give NPCs dialogue for those topics anyway
depends what kind of reaction you want and when, but theres a number of ways to achieve the general idea of it
thank you for replying! i will search more about it starting from those topics u said!!
electron apps go brr
Just conditionally edit the characters dialogue based on the other characters hearts
This is the opposite but
Discord's crapulence is not Electron's fault.
Like that
oh ofc, but the resource usage is definitely not helped by it being electron. Dangerous combo of electron being resource-hungry and discord being discord
But my emojis
But then how would they spy run analytics on you?
ASCII art
Also what I'd I want to send you a blurry photo of my cose
ASCII art again
that's a thing
I dunno the name
well what help are you then /j
it was enough to make me google it though and you seem correct
which is pretty neat
also most modern terminal emulators can actually display full images
Okay but it would be funnier if they were painstakingly converted to ASCII art instead
you dont even need to do manual conversions, there's a lib for that
the lynx cmd browser uses it
theres gotta be a mod that lets me talk in discord from within stardew right
Someone went to the trouble of doing it for Twitch (apparently), so I'm sure Discord is not far off.
i would unironically love to be able to just have making-mods-general in my chat while im testing my mods
any time theres an image embedded just download it from the internet and load it up into an image viewer menu as a reason to have a stardewui dependency
How's that different from having it in a separate window, though? Especially when you've got 3 monitors.
I think the images are the one thing you don't need Stardew UI for. Literally everything else would be a chaotic mess.
yeah but i want an excuse to finally try out stardewui
The text chat without images will give you plenty of practice with that. Just try to build an infinitely scrolling, wrapping text layout with vanilla.
i would just send the messages to the actual in game chat box
I never use the in-game chat box, does it support such modern and groundbreaking features as a movable cursor or copy and paste?
i thiiiiink so? i also dont use it
(I ask because the vanilla text box widget clearly does not)
its a different kinda box
Looks different, yes. Don't know if it's implemented differently.
In any case, if you wanted to add anything fancier like @ popups then you'd have to go outside the chat box.
I remember one that automatically put u in a discord group chat when u join coop
Or avatars, roles, hyperlinks, etc.
that said its not something id try anyway bc i forgor that using discords api is meant for bots only and they really dont like you connecting your actual account through the api stuff
id rather not risk my account for silly discord mod for sdv
Never imagined it was a serious plan to start with.
i did go look at their C# library to consider trying it out before i remembered
I think a regular bot can read any message sent in a channel and therefore "forward" the message to ur game
cant send messages though, iirc
if it uses the bot api, which isnt allowed for actual accounts
Not as a user
i mean. yeah if you made an actual bot account you definitely could
but im not gonna make a bot account and ask the junimos to invite it to this server so i can talk with it either
(they have said unofficially that they don't care as long as it isn't used to break the rules, but officially selfbots are indeed banned and so are third-party clients, so this is very valid)
I remember this one bot that was able to let non nitro people use nitro emotes
my account is far too important for me to wanna risk it. i mean self-botting already is breaking the rules
nqn!
It worked by changing its own pfp and name to match whoever attempted to use the emoji
Very strange
yeah, it's still around, but I'm pretty sure every server I've ever been in that used it realised it's not worth it
nobody ever bothered to use it because you'd have to type out the emote yourself, you couldn't edit or delete the message afterwards, etc etc
Hey all, feeling really dumb trying to put doors inside my custom NPC's house. I've had no issues figuring everything else out but I just cannot figure out for the life of me how to make working doors inside the building. If anyone would be willing to help that would be so greatly appreciated
Youll want to read this tutorial
https://stardewmodding.wiki.gg/wiki/Kailey's_Interior_Door_Guide
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...
Wow thank you so much!! I hadn't seen this resource before! Appreciate you
Good luck with your doors ! And no problem i am but a humble messenger 🙏
Ooh, maybe I should link that in my EMA stuff for the doors
Its super mega useful
I had to learn the hard way 
Reading that I'm like wow I was doing it all wrong!! No other online source makes it this easy so like EXTREMELY grateful hahaha
Thats so real
When i first started doing the same thing for my own custom map i was completely lost
It just so happens that around that time Kailey was in the middle of planning out this tutorial
haha its like you think you are comfy and know what youre doing until one thing comes along and is like chilllllll slow down for a day or two hahaha, bless Kailey for the effort to help us all
you guys make maps? 
Is it possible to prevent a mail to be sent ? 🤔 I want Emily and Shane to behave more like others bachelors and make theirs recipes (salad, red plate, pepper poppers and strange bun) available elsewhere
Sure, you can just edit Data/Mail & set the mail to null
note that those recipes have the generic "unlock at heart level" conditions, so you have to modify their unlock condition in Data/CookingRecipes
generally blanking out the mail works for preventing mail gets sent, but in this case those are just the generic "you have hearts with me so I'm sending you this recipe" letters
so I think you'd just get blank mails in your mailbox with the recipe
I'm not sure though, maybe blanking the mails will indeed prevent them from getting sent, but regardless I still recommend changing the recipe conditions in Data/CookingRecipes
When trying to create a map how can I make an object transparent when the player passes behind it?
A lot of c#
There isn't a way to make this happen with a tile property? I just want it to behave like a tree, when you pass in front of it nothing happens, but when you pass behind if fades a bit
no, there's no way. C# is required
Maybe u could make a fake building
@thin hamlet so one thing you should consider (mostly from a compatibility point of view) is ensuring that your mod id is included in your object identifiers (so instead of "Ammolite" for the entry key, use "{{ModId}}_Ammolite" that way if someone else also adds an entry for Ammolite, you don't conflict and have weird results based on the load order of the mods. Content patcher is smart enough to replace the literal string {{ModId}} with the mod id in your manifest as well, so you can use that as a placeholder in all mods and it will automatically handle it for you
I ended up just changing the object to one that wouldn't get in the way
It's inside a greenhouse so I don't think making a fake building would work
It would but it needs some shenanigans
Buildings included let you spawn in building iirc
You can just make ur greenhouse buildable on the inside ofc, i did that
I do that in TCC
ohhh you mean in the IDs?
Then I did that for MCGM iirc, but i can check
I’ll do a mod rollout tomorrow then, updating the IDs and tweaking a few things
Well, careful, changing the IDs can adversely impact your current users
Okay, so what do I do then?
You can leave it for the current items and just make new ones match, release a patch and warn folks it is only for new games, or release and let folks know the existing items will become error items
Or duplicate the items and make your nodes start dropping the new one for a few versions then clean up the old ones
The last would be horrid if people have already donated to the museum
.-.
Unless that isnt affected
Yup! Honestly for TCC you could probably get away with a swap since it's super new, the other one has been around longer so it might not be worth changing
Especially if you aren't going to add new stuff to it
I thought MCGM had unique IDs already
(I assume new stuff you'll be adding to TCC mostly?)
I patched it early on iirc
TCC mostly yeah
MCGM is the conversion mod, not much besides compatibility with other mods probs
I can check again but it didn't look like it
Oh
I'm at work now so I can't look until this evening
Is it possible to create mods on the cell phone?
I just realized it was logs i changed
I mean they are unique with respect to themselves, but since they are the names of the mineral the likelihood of conflict is higher
Since it's a natural thing to call it
Is there a way to remove error items from the museum, or…
Not sure
dies inside
Depends on you & what you want to make. If you've got a text editor app that can save in json, then you can make Content Patcher mods at a minimum, and there's several apps for doing pixel art
Recommend me a text editor
I really would not recommend changing your item ids for minerals tbh
The museum is the issue
Thats what I figured
I’ll make a note to add unique tags from now on
Good thing its only rocks and nothing more yet i guess
Changing tags shouldn’t be a problem though right? Looking through the files, I missed a crystalarium ban in MCGM
Tags are fine to change
Id assume pretty much everything besides vital stuff like ID would be fine
I definitely want to balance prices and stuff later
As more are added
If your adding tags anyway, i could add compat for all future minerals you add without changing recipes if you have them a common tag
Could I, say, use a tag to be able to draw a random mineral from a rock box once each day?
Probably not, mostly tags are just for categorizing, some piece of code has to use the tag to make them do something specific
Okie
But if you mean like make a machine that picks a random mineral
I figured that might have a bit more work to it
And only the minerals that have a specific tag are options
Yeah something like that
Then yes
But you'll have to add the machine (that's the bit of code that respects your tag)
Okie
Does anyone here have an issue with FPS with my Event Repeater?
Running with it, version 6.5.8, no problems for me so far...
any others?
Are you still updating Event Repeater? I thought it was made obsolete in 1.6 since CP can do repeatable events now
Wait - it is possible to do an event that can be repeated, using only CP? If so, how?
OH! I haven't read this part of wiki in detail... Thanks!
Hey everyone! I just wanted to let everyone know that I just published my greenhouse mod! Thank you so so much for all the help you have given me!
Here's the link if anyone is interested: https://www.nexusmods.com/stardewvalley/mods/31098
It's a complicated example, but my mod A Secret Forest Walk uses trigger actions for a yearly repeatable event 😄
would you like me to post your mod in the showcase channel? just let me know what you'd like the post to say and i can publish it there
You can set all sorts of conditions for it too, so you can make it repeat however you want. Make it repeat weekly, once per season, once per year, repeat only until you've reach a certain threshold, all sorts of options
Funny visual of breaking a rock and suddenly Pam disappears
The literal crystal of death 
(trigger actions are super cool and open up a lot of capabilities for content patcher. a great new 1.6 feature
)
That would be lovely! You can just put "A greenhouse with plenty of space for crops, trees, decorations and everything else you need, without being overwhelmingly big" in the text
Thank you so much!!
you're welcome! all set 
Quick question, it doesn't hurt for sprite sheets to be longer than what the game is needing right? So like if I have a vanilla sheet that's 6 rows long but there are 7 rows on my sheet, vanilla's not going to have an issue with that right? it'll just call from what it needs and ignore the extra space right?
Depends on the context
if im adding my fence as a new craftable, in the changes section of the content json do I still use editimage for seasonal changes or something else. my brain is just not functioning right now so I dont know where to go beyond the config schema atm
honestly I havent even figured out how to add the fence as a custom item 🤪
This is for character sprites, specifically the wizard. I just have a really beefy mod that, if I could have the game just read from the same sprite sheet would reduce the mods size drastically... and my work load...
character sprites use frames for their drawing source rect so if you do not reach the additional frames then you are fine to put whatever there
However, i don't recommend loading random object sprites onto character/wizard bc that'd be fairly confusing
XD
No what's going on is there's a whole slew of different romancing the wizard mods...
And so they all use a -simmilar- but not the -same- sheet
Ah yes the young and dashing wizard genre
Honestly, most of the romancing mods are going to be incompatible or throwing out the earlier sheets anyway
So merging them won't help
So what i recommend would be, have 1 image that's the generic shared wizard sprites
Have the per wizard romance mod extra sprites on their own images
Use editimage to put these extra sprites on the right places
So there's actually not overlap?
You may extend the spritesheet down as u like, using fromarea and toarea
This way you have no dupes
They're largely identical.
The only one that overlaps is that last squatting one overlaps with some of the kissing ones but the kissing ones don't actually work? so there's no issue
Yeah so just isolate the different ones to their own images
I... Am unsure how that is better?
Also leave the consistent blank spaces, those are necessary because certain spriteindexes are for things like flower dance and weddings
Well imagine if you want to tweak wizard walk right sprites in the future
If there is only one shared image then you just edit that and done
If you have 4 variants u need to copy that over 3 more times
You'll have the same number of files, but they'll be smaller files and easier for you to manage, basically
Only other way to significantly reduce things would be to cut compat with something
Being that I have 56 images already this sounds like a horror show. I suppose I did this to myself
the core feature is working, so now i have to do... the other stuff
Yeah, I know how that one goes, comes with the seasonal outfits territory 😆 DSV has over 12k images lol, managing it is a pain sometimes
Yea, if I could just... Have it all call to the same group of 12 sprite sheets that would make my life so much easier... Especially because I'm not that good at the coding part.
There is a clearmuseum debug commands but im definitely not making people do that because they donated one rock i updated the ID of
It removes EVERYTHING
so ill just add the mod ID in the names going forward
@brittle pasture I can use Additional Tree Equipment mod, Dalion update his mod so they work together. 😀
Unfortunately that'd require changes to the mods you're adding compat with. If you rearrange the spritesheet to have all the unique sprites in different locations though, it'd break events since the character would go invisible or use the wrong sprite
For the wizard though, since there is so much overlap, you could get away with having a shared set of sprites like Chu said and then just patch in the crouch or kiss sprite depending on the mod
12... k...
They don't overlap though?
The portraits are gonna be the sticking point though since they're all different
Sorry, awkward phrasing, I meant overlap as in they share the same sprites
I've got that set up how it's going to have to work
Not overlap as in different ones on top of each other
Why would it be an issue that they use the same sprites in the same position?
I'm really confused right now
This is also not taking into account all of the add-ons 😆
It's not an issue, that's what I'm saying
The ones that use the same sprite in the same position are the 'group' sprites that we are calling an overlap, they exist across multiple versions of the sheet
Ok but they do use the same sprites in the same positions?
Yes, that's what we're saying
Correct, nobody said they didn't
Ok so why do I have to make multiple sheets then?
So, for example, if you made a png of JUST the greenhaired sprites and the two under it (not any other sprites), you could then use a ToArea patch only when the mods that use it are included
Ok but WHY would I do that when the green haired sprite is in the same place for all mods?
Because the mod might update in the future and put a different sprite in that location
Unless every single mod has that sprite, which I know they don't because RomRas & LFL don't have it
An immediate example is the sprite right above the flower dance(?) sprites, that one is different but in the same location
As I said before, the squatting one that covers the kissing sprite is the only thing that's in competition and the kissing sprite isn't getting used corectly by any of the mods that use it.
Potentially the other mods could do the same thing in the future, romancing x NPC mods don't usually care about compatibility with the other romance mods because they don't expect you to use multiple of them at once
It's a best practice thing. You can go ahead with copying it across all of them if you like, but it might come back to bite you
That is very fair.
Thank you for the explanation. I'm a little hard headed and that's a lot of work for the right now while I'm just wanting to fix how the kissing isn't working, but... I can certainly see what you're all on about.
If this is for your own mod, you CAN change the kissing spriteIndex via the Data/Characters entry if memory serves
If it's not set, it uses 28, but some of the mods might be changing the index in the code (and not the image in that index)
12k?
Oh god
It's for a mod I post publicly so I do want it to work for the largest number of people possible. shrug and 28 has a kissing sprite on all but romras, I might jsut go through those and see if that fixes it without need for any other crazyness before I get too hogwild
Haley has 886 of those! 😆
How!!!!
combinatorics, i think (hard of hearing variant can be set independently of ethnic background, if memory serves)
She has lots of outfits! 😆 Plus three variants, compat stuff (NPC Adventures, for example, adds a scared jump sprite, so that needs to be patched with all of her outfits), hair cuff overlays which could theoretically have the duplicates removed but it'd be a pain in the ass to code, hand overlays for the HoH config that needs to match the skintones for the three variants, makeup overlays, her cow photos...
It adds up, lol
I should remove the NPC Adventures compat now that it's dead, thinking about it, but that'd be effort 😆
felt
just re-code it all to use localtokens templates 
should only take you an afternoon or two or many
Honestly, my first thought once the local tokens finally clicked was "can I use this for DSV to streamline things"
but then my second thought was "that sounds like a nightmare and I'm not overhauling the code again if I don't have to" lol
good to have in the back pocket for DSV 2 /j
There would be some stuff I could use it for to reduce the coding, but that wouldn't help with the images
i'm not sure how much it can reduce complexity, but it can sure reduce boilerplate, which is still nice but maybe not worth an overhaul right now
convert it all to C# to dynamically construct images pixel by pixel
Just got a question on my mod page about if it's okay for a NSFW NPC to use an apartment and I am confused as to why it wouldn't be? Did Boarding house or the Saloon second floor limit theirs in that way?
One of my long-term dream concepts for DSV actually has been a paper doll model where characters would randomise various pieces individually (like shirt 1+jacket 1, shirt 1+jacket 2, shirt 1+accessory 2, etc) so that you could see more variety with the existing art assets, but that would involve overhauling the art too and that'd be more of a process than overhauling the code 
(plus I couldn't get the shadows to work nicely)
(so that it's established: so long as the room isn't intentionally breaking someone else's room, I don't care who moves in)
Probably just asking because some authors aren't comfortable with NSFW aspects?
I suppose, but it's not like the NSFW is being baked into my mod, it's a separate NPC mod that I can choose not to use
Yeah, but it's still your mod that they'd be using. I feel like it's pretty respectful of them to ask 😄
That would be cool
I am just wondering if this got asked of the other mods that used to fill this niche, I guess xD
I would definitely want someone to ask before adding anything NSFW to one of my mods, because chances are I would say no to it
If I had a character that they were making NSFW then yeah, I might care, but it's literally just a building with rooms in it
Not that I'm aware of, but BH never got that many applicants to begin with and Saloon Second Floor's only been out like a month or so
Now, if they want to make the building itself romanceable... You do you, I guess?
other people might care, though, so i think it was respectful to ask. there's an association effect, even if minor, if a NSFW mod requires your mod to work
That's fair, I just don't think it makes sense to restrict it on my end
also fair! that's a perfectly reasonable decision
What is Saloon Second Floor?
i think it adds a third floor to the saloon
Adds a second floor to the saloon with rooms to rent for standalone individual NPCs
Probably not the actual mod name, I am blanking on it, but it adds a second floor 'inn ' of sorts
Nah, that is the actual name 😆
Aptly named then, if my half asleep brain got there
reading the decompile for a function over and over again, jumping around to other places in the codebase, utterly not understanding how this feature works, until finally: there was a ! in that condition and i didn't see it so my brain deleted the subsequent block and i never read it 
who (ILSpy) would write a condition this way
!(commandToken == "$action")
(related: the decompile for this particular function, Dialogue.parseDialogueString, is maybe the worst one in the whole codebase. it's ridiculous)
I'm looking into how to create dialogue mods, but I can't find the default marriage affection dialogue in the character or character marriage file. Where is it?
I mean, you can definitely create your own for the character which will take priority, but a lot of the defaults that get reused by multiple characters are in StringsFromCSFiles, I think? It's called something like that.
there's a default marriage dialogue file at Characters/Dialogue/MarriageDialogue (without any particular spouse's name). the character-specific ones override what's in there
Is it possible to have shops accept context tags as trade items instead of specific ids?
Like put everything with a specific context tag in the shop?
no, i think TradeItemId requires a specific id
i dont think thats possible
You would have to make separate item entries for each possible trade, can't just do it via context tag, yeah
Yeah accepting it as currency requires items
Ah, yeah it looks like it. They aren't explicitly labeled but that's alright. Ty
Putting all of an item in a shop is possible, but not "any item in this category can be used to buy X"
My guess that will never really be possible without C# Because the game draws the item used to trade
So if you put in an entire category, You need to make a label that instantly makes the person think say "furniture"
And a user would be confused if it randomized the furniture image per day
i think (but could be wrong) chu was doin somethin with context tags at one point and made the item like, switch between a different item in the category every second or smth
i might also be misremembering
That might be possible for a limited number of items!
could also add a like "hover over the applicable items when you highlight over the shop entry" thing
er, highlight the applicalbe items
But as limit x approaches infinity It would just constantly change the image
That would be a more elegant solution
thats true. it works well enough for minecraft mods though
i think the only problem would be like
if you have multiple things from that context tag, how do you decide what it used as payment?
like lets say a shop accepts book_item as currency
and i have 4 books in my inventoryt
which is used when i try to buy it?
Oh damn yeah
i dont have a good solution immediately in mind that doesnt involve a special trading UI
You either have to create a second menu to have the person choose every time like a trading interface in an MMO, Or you would have to do something like take the lowest value item
Unless it's furniture where everything is zero g from the furniture catalogue, In which case you'd probably do a random
I am very much not volunteering to do a trading ui as a C# project XD
any way that isnt 100% user controlled seems like its just asking for nexus comments saying "this shop ate my [item i didnt wanna sell] and i lost it forever!"
That was one of the initial idea for display but i never implemented that
*displaying things that match a context tag
i couldnt remember what you eventually ended up with
What if you could just select an icon to represent the possible trade items like Better Crafting does with its categories?
For this bit, I mean
that was one of lyokos suggestions too but given that theres no limit to what a context tag can be it can be kind of impossible
and even if you can come up with an icon that encompasses it, a user would still have to figure out what all items it applies to
True 😅
So the 🗒️ and transparency indicate it's not a specific item, and u click on it for a modal
hmm
i like that f or that but i think for a shop it wouldnt work as well bc it wouldnt be very expected to click on it
given usual trade item behaviour
i think a pulsing ? that opens a tooltip would be good, yeah
but then it might show a lot of items
opens a tooltip on hover*
everyone loves hovering over pulsing question marks
Another way is to include the tag as it is, but highlight items in ur inventory that matches
that was also suggested
the main problem is still the "determing whats used to pay" thing tbh
Yeah
Idk just make crafting recipe at this point
Can crafting recipe take money yet
money isnt an item so i doubt it
Bolb
i dont think making a crafting recipe would have the same feel to it anyway
id rather a shop entry
Hi,
sorry for this (indeed stupid) question, but is it possible to use an entry "{{ModId}}" instead of "Eleanor" in Data/Characters (and, of course, reference it properly, so instead of"Characters/Eleanor", I'll use "Characters/{{ModId}}"?
(I ask because I think it would improve compatibility between mods, and as I am writing an NPC mod, I want it to be as much compatible as possible)
I tried it, and it looks like CP doesn't recognize "{{ModId}}" properly, or what because it couldn't load the NPC. So I ask if it is somehow possible to use "{{ModId}}" in entries, or if I have to write the manifest mod ID (in my case StrojvedouciDenis.Eleanor) manually.
you can use the ModId token inside the Target yes
there are very few places where you cannot use tokens inside a content patcher mod
entries as well (i slightly misread your question i think but yes even/especially inside Entries)
Huh... so I guess I did something wrong, somewhere... Anyway, thanks for your answer!
if you are using Load to load some data, tokens do not work in files loaded that way
Oh, so that is the problem - I use load indeed, so now it makes sense why it won't work...
its not recommended to use Load for things like dialogue or schedules or whatnot. you want to load a blank.json where needed instead, and then use EditData on the target you just loaded
Wait, can you show code
a blank.json being a json file that just says {} in it
I think we may be miscommunication
Yep.
Content.json:
https://smapi.io/json/content-patcher/7665e010c9244daba6917451aceba083
For example - NPCgraphics.json:
https://smapi.io/json/content-patcher/78a72b99cd8b4b0889c9b6dc5a119dbe
oh, you're using Entries instead of Fields in some places
{
"LogName": "{{ModId}} - marriage disposition when turned on load command",
"Action": "EditData",
"Target": "Data/Characters",
"Entries": {
"{{ModId}}": {
"CanBeRomanced": true
}
},
"When": {
"{{ModId}}_marriage": "true"
}
}
this is resetting every other field inside your character data to default values
use Fields and not Entries when changing only specific fields. what Entries is doing here is essentially overwriting your character data with a new one. and this new one only has data for CanBeRomanced
same with other patches like the one above it to change their home
and any that may be in included files
Oops... I should fix that ASAP! How should it look like?
just replace the wordEntries with Fields
Really? Is it THAT easy?
its what the difference between Entries and Fields is
Entries replaces an ENTIRE entry. Fields replaces only the fields inside the entry that you specify
You also don't have to namespace your dynamic tokens t
(or your config schema)
Yeah, I thought that, but I kept it named like this for now because I have like no knowledge of what naming is enough for CP to make it unique for each mod.
Configschema if you export it you might have to namespace... but admittedly thay might auto be done, not sure
export it?
other mods cant do that (CMCT excepting)
what C# mods do is create a custom CP token that just returns the value of their config
and CP always auto-prefixes custom tokens with their modid
So it auto does that, got it
and ofc C# config is an entirely separate beast from ConfigSchema, as they do not use it
ConfigSchema is entirely a Content Patcher concept
(the auto prefixing is also for all custom tokens in general, whether they correlate to a config option or not)
So I don't have to/shouldn't/it isn't necessary to use {{ModId}} in both "ConfigSchema" and "DynamicTokens", correct?
Re this, i actually feel like a mailflag is more flexible if it's a true/false
It's hard to invalidate the mod provided token
unless you dont want other mods altering it
not necessary at all
Still a C# thing ofc
sending a mail flag for your config means other mods can trivially mess with that mail flag, i.e. remove it or send it outside of your control
and you no longer become a reliable source of truth for your config
and if you do what cornucopia does with sending the mail flag and removing it on day end and stuff, then it means some things that might want to rely on your config, no longer can
because some stuff happens overnight in between the mail flag being removed and being resent the next morning
also, a token can return different values depending on other logic or other configs, if some things are mutually exclusive or only rely on specific things to be enabled
so a mail flag is like by definition less flexible
Surely i can trust ppl to not faff about with me flags without good reason 
why would you
The benefits is mostly in being a vanilla game system rather than a content patcher system
But hm what if u make a GSQ for each of ur config 
content patcher mods are the ones that would need your config token, though
you could do that but cant use GSQs outside of places that. parse GSQs
And limited to bool yea
luckily someone made a mod that makes getting configs via tokens easy anyway 
id consider adding use for C# mods to use CMCT too but like they can already get other mods configs if they really need em so
and i think in C# land getting string-only representations of config is probably less useful but i dunno how to do anything else. pintail or something probably but fuck if i know how that works
What if u give object and be like cast that to what u want
would it even really be useful at that point
exactly
and if you're a C# mod author who needs it but doesnt know how to reflect for it theres like 4 people in here who will tell you how
in 5 different ways
how do we add items to the game nowadays? Last time i did it was with JsonAssets
kk~ Thanks!
(or whatever other data asset you need if you're making like a shirt or a furniture or bigcraftable or whatever)
I have an issue with targetting - it should be easy to fix, but I feel like I'm missing something basic. I want to modify the StackModifiers parameter when a mod is installed. This is the machine code:
"OutputRules": [
{
"Id": "ChocolateBunnyChocolate",
"OutputItem": [
{
"Id": "ChocolateBunnyRandomChocolate",
"ItemId": "RANDOM_ITEMS (O)",
"StackModifiers": []
}
]
}
]
},```
Plz make me a hat
"(BC)nachonline.mes_ChocolateBunny",
"OutputRules",
"ChocolateBunnyChocolate",
"ChocolateBunnyRandomChocolate",
"StackModifiers"
]```
And this is what I am targetting
But it says that it doesn't match an existing target
you need to target OutputItem
between ChocolateBunnyChocolate and ChocolateBunnyRandomChocolate
Wtf, how did I miss that, I thought it was already there
does raised garden beds work on 1.6?
ohh, thanku moving there!
Can someone point me in the direction of maybe some info on how to code in a custom fence (sve does this with the small hardwood fence, but I can't discern what kind of files I need to reference)
Ah, I remember what was complicated about this map now....
lots and lots of depth layering visually, splits with 2 and 4 height cliffs, with heavy variances across the map, so i had to keep mental track of the "altitude" of each section
I'm not sure about specific references, but fences consist of a Data/Objects entry (the in-inventory fence item), a Data/Fences entry (how the fence works when it's placed), and probably a Data/CraftingRecipes entry (to let you make them)
looking at it now, no wonder it always made my head hurt, i made a bunch of mistakes on depth
can the "LogName" be anything?
pretty much yeah, its just there as an Identifier for you, and errors so you know where to look
okay! I didn't know if it had to be something specific to avoid breaking the code or if it could just be something dumb like "scoopy doopy" lol.
If you name it Scooby Doo and something breaks there, you can imagine the bug saying “and I would’ve gotten away with it too if it weren’t for you meddling kids”
XD
Is there any guarantee that 60 ticks = 1 second, or does that depend on frame rate?
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events#GameLoop.UpdateTicking
It says approximately 1 second.
If I had to guess, it would probably be more accurate to say that 60 ticks ≥ 1 second. Various things such as trying to select text in the console will freeze the game and the ticks.
That’s just a target but can definitely be affected by poor performance.
I need to tick down a timer, but I'm only doing it every 30 ticks to save on performance.
So I can't use Elapsed since that's only since the last tick.
I was wondering if I can actually assume the elapsed is fixed
And SMAPI's UpdateTicked does exactly that
public bool IsOneSecond => Ticks % 60 == 0;
So this property should actually be called "IsAtLeastOneSecond" ?
if you’re ticking down a timer, can’t you use the game’s total milliseconds counter in Game1.currentTime or whatever it’s called? rather than relying on ticks being tied to a specific duration
You could think of it that way, but everything in the game will slow down if the ticks slow down, so there's really no need to worry about that unless you're making a Real-Time-Attack speedrun timer. In most cases you want the timer to slow down if the game "simulation" cannot keep up.
There is actually already a method in SMAPI for your use case of only running something every half a second:
OnUpdateTicking(object source, UpdateTickingEventArgs e)
{
if (e.IsMultipleOf(30)) // run every 30 ticks
{
// ...
}
}
See: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events#GameLoop.UpdateTicking
I find it hard to imagine that a timer -= elapsed and then if timer <= 0 would be serious perf issue to run every tick
I think i've finally fixed all the elevation issues? took like an hour to find and fix them all, this map is going to be..... complicated to play on. and im only halfway done with the outline of building layers
Hi again to the community! I am trying to get my dialogue loaded into my game but keep getting this same error. I don't know the best way to upload files/images so someone could help me, but is there someone who would be able to support me with my coding?
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Thank you sm. I'll use these resources quick!
I'm gaining even more respect for all of you who write dialogue/events for custom NPCs or vanilla expansions... this is a ton of work
Dialogue: https://smapi.io/json/content-patcher/cfde58b041b14415a06b78ee5a933e90 Content:https://smapi.io/json/content-patcher/5fdd266993284dcbbd31863f4bf8907d LOG: https://smapi.io/log/0c25d880af0b49cab083839f0b20e333 The error is at the end of the log, there are mods removed and added for compatibility tests so thats why theres all that text before it!
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 25 C# mods and 46 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I do not believe the issue is out of date mods! but if im wrong pls let me know, I know they need to be updated.
can you upload and send your estelle_dialogue.json file?
that should be the first link!
then you are using Load incorrectly, you want to Include it
and you will need to Load a blank json file to that target first
a blank json file meaning a json that just has {} in it
Ahh! okay thank you so much
Includes do not have targets
they just tell Content Patcher to treat another file like a second content.json
that actually explains questions I had seeing other mods with the blank file!
you will also need to remove the "Format" part from your other jsons
only content.json is allowed to have the Format line, other included jsons should not have it
amazing. thank you for your help. much appreciated
I was wrong, I found another section that is off 
And if you're curious as to the map my brain is having a hard time keeping straight the elevations of at a glance as I construct it, its this.
Draylon do u draw irl maps
no
I'd be convinced if you said yes
I do like drawing maps, but I've only ever really done it for stardew and tabletop world and battle maps. 
It could simply be the higher resolution/size but ur work remind me of topology maps
The kind ppl pull out for tabletop wargames
The detail of the stairs being half the height going up as down to match the topology in the left hill. I mean its reasonable but I feel like its also easy to miss
its just one of those things i notice if its off, so i try to perfect it.
How do I use this with animals with spaces in the name? purchasedAnimal_Void Chicken? Or purchasedAnimal_Void_Chicken?
hard to give an answer without the context of what this is. is that a mail flag or a convo topic or what
I've never gotten into wargames myself, but when I say stuff for like tabletop world maps i mean things like this, I made this one for a Pokemon Tabletop Campaign.
That's the auto-generated conversation topics for a few game milestones
then it will be whatever the DisplayName of the animal is, unless its a brown or white chicken, in which case its just Chicken
i dont see anything trimming off spaces or replacing them
so presumably purchasedAnimal_Void Chicken if Void Chicken is the displayname
I see, thank you
if you're using it in a GSQ you should be able to wrap it in quotes to protect the spaces
for a dialogue key it should just work without anything special
...Although I just realized this wouldn't actually work because you don't technically buy Void Chickens, but it's good to know anyway
yeah tihs only happens when specifically adopting an animal from Marnie
so any other means of animal acquisition wont work either, unless they call AnimalHouse.adoptAnimal
(so debug commands will work, for insance, but another mod that handles animals themselves may not)
also correction it doesnt hjave to be from Marnie (i thought her house was called AnimalHouse) but it does still have to use that function
which, actually, addNewHatchedAnimal does, so it should work forincubated void chickens
Yeah, I did see that Unique Gift Dialogues has dialogue for Marnie and dinos
Thanks for the extra confirmation on that
https://smapi.io/json/none/08229873659342b3ba2c862e63be86e7 : My content json seems to not have an error but the game cant apply patch for Edit data buildings and pops up this error
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
please post errors using this website
oh i did link it
the error. not the json
oh right
on my giant monitor that screenshot is practically ant text
not through the json validator, through the link button sent please
for now this is fine bc i found it but for future reference please use the log uploader not the json uploader for it
the one linked in the log command from governor
yep will do!
DrawPosition needs to be an X, Y string, CP/SMAPI has issues converting to Vector2s from objects like that
so "DrawPosition": "0, 0" though if its 0,0 anyway you might not need it at all
you might tho so dont quote me on that. try it with just "0, 0" first
oki lemme try that first
yay it shows the option to build now, but the texture wont show up . for texture do i put the path to the image file png? or the path to the specific png itself
the path to the Target you loaded your png to
which you have not done yet, so you need to
alternatively you CAN use an internalassetkey token and point to the file itself, but thats not recommended
bc it means other mods cannot edit your textures if they need to
i see, but can you target when its adding a new building?
you do a separate Load patch
{
"Action": "Load",
"Target": "{{ModId}}/WhiteBreadOven, {{ModId}}/GreyBreadOven, {{ModId}}/BeigeBreadOven",
"FromFile": "Buildings/Bread Oven/{{Lowercase: {{TargetWithoutPath}}}}.png"
}
you can remove the Lowercase part and just do "Buildings/Bread Oven/{{TargetWithoutPath}}.png" if you rename your files to match the capitalization of those targets
then, in the Texture fields, instead of putting the path to the file, you write e.g. "Texture": "{{ModId}}/WhiteBreadOven"
(you can also make the targets all lowercase)
oooo a bread oven mod
yeah im trying to update my brealovers mod to 1.6
(but having nice capitalization just looks nicer even if it doesnt matter at all. personal preference and up to you
)
but it was so heavily dependent on like other mods so my head is spinning
If i use the above do i still need to specify the skins?
yes
Loading those textures does nothing on its own
neither the game nor content patcher know or care where you plan on using them
its on you to use those Targets in the relevant Texture lines
if my png is in Buldings/ Bread Oven/ Skins and then the png would this be
"FromFile": "Buildings/Bread Oven/Skins/{{Lowercase: {{TargetWithoutPath}}}}.png"
im not sure what target withoutpath means
or do i replace the file name
so, in that Target line up there, one of the targets i wrote is "{{ModId}}/WhiteBreadOven"
that is one of the 3 targets, separated by commas
TargetWithoutPath is a content patcher token that will take that target and remove everything before the last /
so {{TargetWithoutPath}} will become WhiteBreadOven
and then it will be {{Lowercase: WhiteBreadOven}}
which will become whitebreadoven
So then finally, it will look like this: Buildings/Bread Oven/Skins/whitebreadoven.png
it will do that for all 3 of the targets defined
What is this Softonic website?
https://smapi.io/json/none/348796039f71499c8792a7bbac21dad8 : I tried adding load but i seem to be missing something and the skins still wont show up but the bulding builds
Just came across this
https://walk-of-life-immersive-professions.en.softonic.com/stardew-valley/mod
That's the kind of URL I'd be afraid to click on an unpatched Windows OS.
(i love adding Large Blocks to games)
Definitely legit, you should put your credit card number in there
oh no softonic found stardew mds
ruh roh
it's not like auto-scraping downloads or anything (or if it is, the organization's so bad i can't tell), but yeah, it's one of the fishy rehosting places that's been around
some of the mods are actually downloadable straight from softonic 😭
they have a report option, though I doubt it works quickly or well, having done that elsewhere
anyone familiar with how honey works? can i make a honey type that grows from a crop or does it need to be flowers?
doesn’t even include a copyright option
you can technically flavour it with anything you want, but you'd need a custom item query to get a nearby crop
ah
FLAVORED_ITEM Honey NEARBY_FLOWER_ID is what regular honey does
where NEARBY_FLOWER_ID is a query for the flavouring ingredient to parse
is that just hardcoded somewhere?
i poked through the jsons a bit and didn't see anything relevant
hey guys, i need some help. My smapi is installed properly, no errors and it says waiting for game to launch and then closes
item queries are specific C# functions yes
idk how to fix it
ok
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
thanks
need Better Beehouses
i'll skip that particular feature creep encounter then lol
which is a C# mod
(also very pendantically speaking it's not an item query thing, NEARBY_FLOWER_ID is a manual substitution inside the item query in machine rules)
(i support pedantry in this regard)
(compromise: its just about as easy to add a new one as it is to add a query)
(New in the upcoming Train Station 2.1.0: support for bus stations.)
busbusbus!
I read that as Quarry, and i was like, "Wow, thats easy then." then i realised its query, and now i have no idea.
(Cross bus train travel?)
(Me in starting blocks to make and release a bus to train station mod, which may not even need cross travel that much, which is why i should go to sleep)
Anyone know where store hours are controlled via CP? Did a lot of searching but couldnt find it
Tile action or closed message in shops
Tile action? I want the building itself to be open longer
Depends of what you prefer/need
Don't care about the actual store
Still a tile action i believe, in the warp one
It's a map mod?
Didnt airyn made a mod to have longer opening hours?
good night! i was making my first mod and this appears when i try to launch with the mod:
these mods could not be added to your game
Mountain test because its manifest declares ContentPackFor without its required UniqueID field.
can someone help me?
Is this a mod for content patcher?
I'll see if I can look it up
yes
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
Thats what you want to put, your current ContentPackFor is probably empty
Good night lumina 🙂
thank you so much!!
ya, its a LockedDoorWarp
ooooh, nice. I have no idea how those work yet, but I just made my first map patch yesterday so this is a good time to try and figure it out XD
Than you!
ive only done warps on new maps so i am not too well versed with editing existing ones, but this is a start at least xD
(audio bullshit) is there a way to know the duration of a sound effect from an ICue? or should i be checking IsStopped/IsPlaying instead?
Afaik I haven't found a length yet which did make atra sad jn the past but also I didn't look toooo closely
And atra is pretty dumb so
(My code is compiling)
there's nothing obviously suitable in the interface definition, but this is also presented without any comments whatsoever so ???
float GetVariable(string var);
you can probably do math on the sample rate or smth
woah, knitting
that said i would try to get the actual Cue instead of the ICue
(also yes there is gonna be like no documentation on available variables. if you want to know, use Reflection to get the actual Cue and then reflect further to get the variables backing field. then loop over them and print their names. this is the easy way)
how well does pintail handle event mapping?
if I do something like public event EventHandler<ISomeEventArgs> can it handle that or will it be sad?
Should work
@ornate trellis Got it working! You can absolutely patch map properties with CP
yup
based on button's suggestion, some variables that exist:
var cue = Game1.soundBank.GetCue("coin");
var realCue = Helper.Reflection.GetField<Cue>(cue, "cue", true).GetValue();
var variables = Helper.Reflection.GetField<Array>(realCue, "_variables", true).GetValue();
foreach (var thing in variables)
{
var name = Helper.Reflection.GetField<string>(thing, "Name", true).GetValue();
Monitor.Log($"Variable name: {name}", LogLevel.Info);
}```
[TestMod2] Variable name: NumCueInstances
[TestMod2] Variable name: AttackTime
[TestMod2] Variable name: ReleaseTime
[TestMod2] Variable name: OrientationAngle
[TestMod2] Variable name: DopplerPitchScalar
[TestMod2] Variable name: Distance
[TestMod2] Variable name: Charge
[TestMod2] Variable name: Volume
[TestMod2] Variable name: Frequency
[TestMod2] Variable name: Pitch```
(searching for monogame/xna mentions might help, but this stuff was never documented clearly)
(or is just straight up deleted now)
there were also a bunch of actual paper books on it, iirc, so those might not be very searchable 
im pretty sure the answer for cue length will lie somewhere in the _currentXactSound and then inside its XactClip[] soundClips
each XactClip has a ClipEvent[] clipEvents and clipEvents have a timestamp. do i know what the timestamp means? no
Cue._soundEffect._effect.Duration?
does ichor care about getting the duration before it plays?
bc a SoundEffectInstance doesnt exist until it is played
im also not 100% sure if a SoundEffectInstance is the entire Cue or just one chunk of the Cue's currently playing sound
why does the cue have AttackTime
(im not sure its NOT, im just never sure of much when it comes to Cues. but i know there is no SoundEffectInstance stored on the Cue itself until you try to play it)
you can probably create a SoundEffectInstance from Cue._currentXactSound.GetSimpleSoundInstance(), which is what Cue.Play() does, but _currentXactSound also doesnt exist until right before then in the play function, which is assigned based on choosing a random sound from Cue._xactSounds
no. i only care about after it has started.
right now i'm trying out IsPlaying and friends. if that is satisfactory i won't need to care about the duration
thanks for checking, esca! 
Could maybe harmony patch CueDefinition to record the SoundEffect Duration whenever SetSound is called and cache it somewhere
oh, I honestly thought it was just an artifact of how xna sound banks tied into gameplay 
(SDV's code just reads all the variables from elsewhere, figured they might be non-functional)
i had a vague idea of what it and releasetime were but i dont know what charge is
from what i could tell from looking for old, half-deleted documentation (where in some cases the only surviving docs are stackoverflow responses), i think the Variables stuff is like. stuff that the sound/music creator builds into the audio itself, when using whatever XactAudioCreator tool or w/e
nothing happened when i changed any of those variables in my testing but i couldve been doing it wrong, who knows
the obvious solution to all of this audio stuff is to play the game on mute /lh
some of them might basically be read-only info about each sound, yeah; SDV itself only ever edits Volume and Frequency
if CA used that tool to create the audio he could make up whatever variable he wanted. could make a variable called "warblesFactor" that just warps the audio based on how high it is
if i ever finish this silly thing you may change your tune /lh
(oh, and pitch, it's a single call
)
but if the audio isnt designed to react to those things then they do nothing
fascinating 🖖
Watch in up to 720p for high quality Video, and Audio
This Video explains how to achieve car gear shifts using RPC (run-time parameter controls) in Xact
Created By Daniel Gooding
Xact Download
http://creators.xna.com/en-US/downloads
Click this link to download the Xact template, the finished result, plus the Viper Engine Loop
http://tiny.cc/G...
oh, and iirc from ages ago when I had to actually touch those vars, you might need to stop and restart cues or something to get changes to apply
this is one of like two things i can find that survive to tell the tale of Xact RPC variables
and its 14 years old
you dont need to stop and start them if you call enough of their _update functions yourself 
anyway, IsPlaying is probably good enough for what i'm doing, but i probably need to test some more stuff about it
Anyways, if I ever start showing interest in audio code someone should take me out back and hit me very hard over the head with a 2 by 4
looking back, I didn't actually need to worry about whether they applied correctly, because I just made a wrapper-wrapper and intercepted the game's volume setter 
https://github.com/FlashShifter/StardewValleyExpanded/blob/master/Code/ClintVolumeControl.cs
I see Esca has a 2x4 prepared
so who knows
(if you do need it though, Cue._UpdateSoundParameters() seems like the most important one)
then again i forgot that im also harmony patching two other important functions so really theyre all kind of important
whats with all the thinking. i dont even think that much about it what reason do y'all have
smh
I am making conditional draw layer hm
Is it bad to check a gsq every second while player is on map
i think you actually have to run a lot of GSQs per second for it to actually get noticeable but that does still have a bad feeling to it
(and it depends on what exactly the gsq does ofc. probably less GSQs per second if they all looped over every item in the game and invalidated things every time)
But maybe i could settle for time changed
i yearn to run my code less often
why does it need to change so rapidly
code that doesn't run is super fast
A common usecase here is night tiles for buildings
Which should be fine at time changed which is the every 10min thing right
every 10 minutes b y default yeah
I could soon make a mod that just
Go and add lights to every building in vanilla
Along with window lighting sprite
-2 desire to art tho
I need a mod that adds flickering and dynamic lights so the range of illumination expands and contracts. It would be great for map making and ambience 
I’m not smart enough to make it myself unfortunately
Why’s that?
radius is a net field so it'll be 3 frame lag
Would that matter tho since the other coop players wouldn’t be able to tell? Especially if it’s not an animated light source to match the illumination animation?
they will be able to tell?
I guess I’m thinking of it like you’d need to see both players screens to see the delay

no they r LightSource : INetObject<NetFields>
that said map lights might be fine actually
i think they get made independently in coop
i didnt realize they were net things
also GOAT what chu meant is that if something IS a net synced thing, then that means the farmhands sync up with the host every 3 frames
so the host will update the radius for the farmhand every 3 frames
Ohhhhh
the case where it is issue would be GameLocation.sharedLights is used
So it would be choppy for the other players basically
yea
yeah
although, i think there is a no additional mods way of doing things 
if u have a light that is regular fixed size
but animate the lanturn texture underneath
then it's kind of hinting at a blinking light u know
whether this is sufficient is ymmv ofc
I did that on my current maps and it somewhat works but not the best for ambience but I could try 25, 50, 75% opacity pixels for expanding the lighting around eg the lantern
Would that work? I gotta try this now
But idk how smooth it’s gonna look
Stardew lighting doesn’t seem pixelated to me. Idk what the proper term is but it’s more of a fade then using different opacity for pixels to simulate light
But I guess it could still work well if they were barely visible maybe? I’ll see what happens
it is pixelated, there is a light map used
but its not at the usual 4f scale
scale is the size of light in this case
I see, so yea it will still look off then
Dang 
This is just as bad as not being able to use an animated tile for day/night tiles 😭
can you just prefix/transpile the Draw method to have the client ignore the radius field if the light ID is prefixed with your pulsing light mod id
and just use its own radius
perhaps a radius built into the ID itself to be parsed
(starting radius*)
i did that and sharedlights didn't like it
thats why trinket light sources are still broken in coop
Huhhhh
i think it's cus i added 1 new netfield (texture path)
might have been fine without that
Is this a Stardew limitation?
like the feature u want for blinking lights?
there's a few ways to do it i think, i like the one button said
as for the subclassing lights thing, that's some sdv netcode limitation probably
but the goal here is to avoid netfield to begin with since it'll look bad
I see now,
i need to actually
play more than 0 days of sdv today lol
but maybe i can be convinced tmr

mmap already has a map lights feature so it won't be that much effort to add
If this can be done I’ll sell my soul 
Is there anyone around who's familiar with making Alternative Textures content packs? I've never made one before, and I followed the directions exactly AND used an example from nexus to try to make a quick AT pack for the shed, and it just will NOT show up in game no matter what I do. I don't know what I'm doing wrong.
subclassing lights is seemingly fine if you want custom draw behaviours, just don't sync the visuals and you're good
is there a tutorial somewhere for that? I haven't heard of skins packs
check "Cabin" in Data/Buildings
or "Pet Bowl"
i dont really know any mod that focus on making this (you can be first!), but vmv has one for slime hutch
Okay, except I'm lost and don't know how to do what you're suggesting 😅 I opened the Data/Buildings file and see the section on cabins where it says Skins and has a bunch of data... but like. Explain it to me like I'm 5, maybe?
[[Modding:Buildings]]
Also, I'm still kind of frustrated that the AT pack I made won't work and would love help actually figuring that out instead of being told to do a completely different thing that nobody has really done yet
scroll to skins
if you still need help with the AT skin maybe you can post code and/or smapi log
{
"Action": "Load",
"Target": "{{ModId}}/alt_big_shed_1",
"FromFile": "assets/{{TargetWithoutPath}}.png"
},
{
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [
"Big Shed",
"Skins"
],
"Entries": {
{
"Id": "Alt Big Shed 1",
"Name": "{{i18n:alt.big.shed.1.name}}",
"Description": "{{i18n:alt.big.shed.1.description}}",
"Texture": "{{ModId}}/alt_big_shed_1",
},
}
},
but yeah I recommend the CP route if only a lot more ppl here is more familiar with it
although hm
- more performant than AT
what exactly happens to skins when people upgrade a shed 
i would've suggested doing it via skins anyway if only because they're builtin
none of the vanillas have upgrades
Okay, see, with an explanation behind it I'm less frustrated at being directed to do a different thing lmao. Ty Selph.
to test real quick u can do
debug build "Big Shed"
debug bsm (while standing in front of the new big shed
i think AT tools also pick up skins but someone double check me on that
How do the skins work? Would that have to be repainted through robin's building menu?
I'm very used to just grabbing the AT paint bucket to change things
atm u can only pick them on build, through debug bsm, or through a mod (like AT?)
AT bucket should also work with vanilla skins
the main benefits are, ppl can use ur mod without AT if they want
and it works in coop
you don't have to use lights, you can just do direct lighting draw
oh and AT had a issue where tools dont work on buildings outside of farm
dunno if that ever got fixed
yea this is more for ppl building stuff on say, RSV summit farm
last updated nov 2024
so nop
it's also a one line check lol (location is Farm)
but I understand PeacefulEnd has been busy
anyways if after all this propaganda u still wanna AT here is a recent buildings AT pack
what exactly would "mod that let you change building skin" look like
do u just have some more diegetic way to call debug bsm lol
a tool, perchance, that you can use on buildings
maybe it can resemble a paint brush, or a can
... so literally what AT does
Does anyone here do map commissions? I was thinking of commissioning a tiny map which connects Train Station's boat, bus, and train networks in one place (maybe a Spirited Away-style railway island or an exchange station or something). I can message people on the commissions page or just try doing it myself if not though.
@unique sigil would you be interested ^
I have one slot open currently! (details are in the linktree in my bio)
@light bramble does map comissions and is free to do a project 🙂
She might be interested, Pathos
So are you thinking a map that has a bus, boat, and train depot on it?
I'm not entirely sure of the particular design; I'd probably discuss that with the person I commission. It could be something like...
- an interior central station?
- a little railroad with building entrances with boat/bus signs?
- something else?
Basically just a way to easily access all three networks from one place, which will also act as a sample content pack for Train Station.
I see! It'll be interesting to see what they come up with. 🙂
in my city, there's a part in the subway where you can change to a boat
to go to the island
if there is a boat network, i feel like an outdoor map would work best tbh
Funnily enough, my original draft map of the Pelican Valley Loft exterior also had spaces for a bus and a boat. xD
I’m just interested in helping out
but i suppose it depends on the kind of assets there are. i am opening map commissions, but already booked in terms of custom assets for a longer term project.
My backup plan if I couldn't find a space on the vanilla map was to use a bus to get to it
Though if you’re going with Kisaa that’s alright too
I'd be fine with something which only used vanilla tilesheets; that's what I was going to do if I did it myself anyway.
Well, from what it looks like, you need a central area. I mean I can definitely whip something up for you. (Starting tomorrow cuz I’m tired AF rn)
I think it would be cool to have like, a transit connection station, with a railway next to a canal and one of those bus loops on one side
And if you want vanilla tilesheets done with it I can definitely do that too. Might make a few edits to the tilesheets (in which case I’d make a custom tilesheet for the map/mod) but it’s still something that can be easily done
I think it would also be useful to have a minecart dropoff there, but I realize that might be difficult to theme
a minecart could be a bonus but i suppose it depends on where the hub map will be located in

