#making-mods-general
1 messages · Page 334 of 1
You'll get people being very unhappy with you if you advertise that you're making a mod that really violates what an OG modmaker wants for their mod (usually pretty gross and offensive stuff), whether personal or not, but outside of that I doubt anyone is going to be upset.
i also frankensteined someone's xnb hair mods a long time ago into my own hair replacement mod with CP 😭
its fine
thats fair
Fair lol I just didnt want to be a rude by doing so. I do plan on talking to the original mod authors if possible at some point and will GLADLY hand over my files if they want to post them. I just wanted to make one giant bundle file to get every portrait in this style to work together >:D
can some take a look at this?:https://smapi.io/json/content-patcher/1b2fac11287c420f8847ed38ef1e874a
the painting thing is not working idk why, im getting tilted lol
there is no error and everything is loading properly, the paint menu is showing but the colors are not changing T^T
Are your paint mask images just the vanilla ones renamed? Or did you edit them in some way?
There's no PaintColorRegions field; did you see that somewhere?
Yeah the mmap feature wouldn't be able to replicate this exactly 
I guess what you can do is, use the trigger action version and have a LocationChanged trigger that makes 10 fireflies at select places
Can random the tiles a little bit but it'd all be fairly manual
just starting to edit to only be 80x112
If your texture files are just renamed vanilla ones it's probably important not to change anything about the paintmasks too.
i tried with both the unedited and edited still dont work lol
idk if the one with complication is my code(no error and everything is loading properly) or the game
@ivory plume Is the tree texture supposed to reload on location change? I encountered a problem where the texture in WildTrees reloads like that whenever I put RANDOM GSQ in the Condition field. The wiki doesn't mention anything about reloading on location change, so I assume it is a bug?
So, I'm having a bit of an issue with my content pack that I made, I edited Shane's hair color and I wanted to add the portraits and sprites to the game, but every time I try to load it, SMAPI tells me that my assets folder is empty even though I have the new portraits and sprites, if anyone can help, please do
Yep, the game code has trees check for a new texture when you enter their location. (That's mainly to support farmhands, since they can't update all trees across the world on day start.) If you want it to only be randomized on day start, you should use the SYNCED_RANDOM game state query or a Content Patcher When instead.
Can you...
- upload your SMAPI log and post the link here;
- and post a screenshot of what's inside the
assetsfolder (with the full path at the top visible)?
The paint mask asset name needs to be Buildings/<building type>_PaintMask; does that building have the exact type/ID {{ModId}}_Trailer Cabin (including the space)?
is this what you are referring to? the exact type/ID
Normally it's based on the type/ID (which is {{ModId}}_TrailerCabin3 there), but technically it's the texture asset name + _PaintMask if you have a custom texture asset name or skin. So if you have no skins, that should be correct.
this the thing that i need to change right?
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 31 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
If you remove the custom Texture field you set in Data/Buildings, yep that would be fine.
So the error is:
Skipped mods
--------------------------------------------------
These mods could not be added to your game.
- [CP] Shane Black Hair Blue stripe\Assests because it's an empty folder.
Which means SMAPI is trying to load your 'Assests' folder as a mod. Do you have the manifest.json file in the [CP] Shane Black Hair Blue stripe folder?
Well, that's a shame. I just want some of the trees to have different textures, but SYNCED_RANDOM applies the same texture to all of them since they share the same key.
Yes, I have it and I have it with all the required field filled
In addition to what Pathos said, your folder is called "Assests" with an extra "s" before the "t".
I just saw that, I fixed it
okay i'm having a look through my code:
this needs to have a value right? not just null
They don't need to. For example, you can do this if you're editing the asset through Content Patcher:
"Condition": "SYNCED_RANDOM Day tree_{{Random:{{Range:1,500}}}} <chance>"
(would this not choose the same random for every tree using this condition?)
(Oh right, true.)
Can you share a screenshot of your [CP] Shane Black hair blue stripe folder please?
No, that's the C# type; it should usually be null.
oh ok thanks thanks
last question before i sign off, should the pixel size of the mask be the same as the size of the building texture?
Probably, since it's overlayed onto the normal building texture to set which parts of that texture are paintable.
Neither of those files are actually json files. They're manifest.json.txt and content.json.txt. Try turning on file extensions and you'll see what I mean. And then once you've done that you can rename them to remove the .txt bit.
(To enable file extensions, click View > Show > File name extensions at the top.)
I think it's under View up the top but I'm not - there we go lol
(I wish Windows didn't hide them by default, I feel like it causes more issues than it solves.)
I'm not very familiar with Win 11. Only ever seen it in tech support screenshots.
oh ok thanks, thanks for helping everyone, ill continue this again next week lol
I fixed that, but now it's giving me a different error message
That is usually what happens when you start making mods. Please share your new log. Not via screenshot - please use the log parser again.
!json However, the issue is that your json syntax is wrong. If you upload it to the json validator it will tell you where the error is. If that doesn't help you can share the link here.
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.
okay i found a mod called "MorePaintMasks" and in the assets folder it hat a .xcf file, what is the file?
It's the original GIMP file with the layers and such, which gets exported to the PNG file. SMAPI / Content Patcher will ignore it.
Judging atra for leaving that in main mod
You need to add a comma after every closing curly brace } except the last two
I have absolutely no idea what I'm supposed to do to fix the error so, simple terms
In case you didn't notice my reply in between yours: #making-mods-general message
I got it to work 🥳
so i know the SaveLoaded SMAPI event goes before the SMAPI DayStarted event, but does it... not go before the in-game DayStarted trigger? cuz this trigger action i have is apparently trying to run before the save is even loaded according to SMAPI (and of course failing, because it relies on data collected during SaveLoaded)
(use Visual Studio Code and set it to jsonc in the bottom left)
changing it so that instead of using SaveLoaded, i use the specialized LoadStageChanged and do my work when the load stage is "Loaded" (which is right before "Ready" which i assume is equivalent to SaveLoaded?), and it works correctly now, with the trigger action being run after LoadStageChanged but before SaveLoaded. this is like... fine i guess, especially since i think im gonna refactor this to not use either of those SMAPI events anyway, but is it just common knowledge that DayStarted trigger actions run before the SaveLoaded event (which runs before the DayStarted event) that im just only now finding out
peeped around smapi's source and it seems SaveLoaded is raised directly before DayStarted (the smapi event) is
i know for sure the SMAPI event order is like that, i just also always assumed that DayStarted event = DayStarted trigger, too
yea me too 
but i couldnt even find like, what was calling trigger actions in the middle of save loading functions anyway
(i didnt look TOO too deeply into the games update loop, though... theres a bunch of it)
(we should definitely edit the wiki to add a little more info on when exactly the loading/day event runs, stuff like DayEnding running before newDayAfterFade/etc.)
New quote added by atravita as #6413 (https://discordapp.com/channels/137344473976799233/156109690059751424/1381292279670636598)
i think this is where SaveLoaded is raised: https://github.com/Pathoschild/SMAPI/blob/16234fe5f423901968f0986efccf4e11f2520163/src/SMAPI/Framework/SCore.cs#L834
It's so people can make their own paint masks 
is it even intentional that SaveLoaded happens after the DayStarted trigger though?
i been assuming that DayStarted (trigger) happens after newdayafterfade this whole time
suppose its good that u added the morning trigger button
Same
@ivory plume is this how these SMAPI events are supposed to line up?
Is there a way to pass synced random the tree's x and y coordinate
i so rarely use SaveLoaded for anything in general, let alone something that must run before the very first DayStarted, so ive just never had a chance to notice before i guess
I helped /lh
Aba did help its their bug that made me find this
'Day started' means something different in the base game code (where it's used to initialize data for the day start) vs SMAPI mods (where it's used to react to the day initialization being completed). So if you need to initialize something before the game has finished its day-started initialization, you'll need to use a more specialized event like LoadStageChanged.
No, the only value passed to the conditions are the location and player.
is SaveLoaded meant to come after that day initialization too, though?
Yep, SaveLoaded is just a shortcut for 'first day started after the save is loaded".
if its intentional and known thats fine, though i hope you wouldnt mind me editin the wiki for the SaveLoaded event to make it a bit clearer
since it mentions coming before DayStarted and people like me might also falsely assume the equivalewncy between trigger and event
Well, the wiki says "This happens right before DayStarted" (where 'right before' is meant to indicate immediately before, i.e. the same game tick).
but it doesnt say that DayStarted != DayStarted (trigger)
yea the smapi event DayStarted and the trigger DayStarted r named same but completely different timing
the SaveLoaded event coming before the DayStarted SMAPI event is clear
what isnt clear is that trigger actions that run on DayStarted will run before both
despite sharing a name
Hmmm
Yep, clarifying that on the trigger actions page would make sense.
Could it be passed in?
If I wanna edit a schedule that would be "Characters/NPC/Schedule?
would you prefer i didnt make a note of it on the API Events page as well and only put it on the trigger actions page?
Smth like SYNCED_Random %X_%Y
(id understand if so, since thats a rather more important page)
"Raised when the player starts a day, after either sleeping or loading" - trigger actions page
(to me, "after loading" would also imply "after SaveLoaded"
)
I'm fine with making it clear on that page too, but ideally it should clarify that it happens after the game's day-start initialization in general (of which trigger actions are just one part).
(If it helps, SMAPI applies the C# event naming conventions: started means after the start is completed, starting would mean before it happens.)
Raised after loading a save (including the first day after creating a new save), or connecting to a multiplayer world. This happens right before DayStarted, but after the game's own day-start initialization process; at this point the save file is read and Context.IsWorldReady is true.
how's that?

like BOBBER_X and BOBBER_Y hmm
Exactly!
You'll be doing it before I get home from the gym right?
(Yes, that entire conversation was in between sets)
i have great desire for formal syntax with passing X and Y to trigger actions and GSQ in general
if by you you mean me then no you
Learn to type with your toes
I could look into that for 1.6.16. Keep in mind though: the risk of adding a base-game feature to support tree variety is that a future version of the base game might use it, potentially superseding the mod.
Something something briar rabbit asking to not be tossed in a bush
Ok I stayed awake for the DayStarted drama. Time for DayEnding for me /j 
(I am in the camp that likes it when the base game adopts a feature from one of my mods.)
It's an honor whenever it happens.
Does anyone know what these missing items are
Also less work on my side, especially now when I don't have the time to be able to maintain mods reliably anyways
Like.
And a "Whew! One less feature to maintain" thing.
#modded-stardew , also try lookup anything
I'm literally chatting with you guys ☆in between sets at the gym☆
Oh, so there's a chance that tree variety might become a base-game feature in the future? I'm hyped.
Oh no, I'm just tinkering with that feature, haven't drawn anything yet.
The main idea is making use of Tree Size Framework, which add height variety.
But since the RANDOM didn't work in both TSF and vanilla data, I stopped making it.
so if you did sync random, you would be able to random it on a day to day basis i think
Tbh realistically what I want is tree variety but persistent tree variety
Ie, this is tree variety 17 and it stays Tay until I cut it down
Yes. It stays Taylor Swift
Variety 17 has glitter boots
i guess maybe u can do something silly like
BETAS to write moddata
EMP to use the moddata as a token 
or u just PR this feature into tree size framework
From what I tested, SYNCED_RANDOM isn't 'per tree', the texture will change daily, yes, but all of trees will have that texture applied.
I mean, it might be possible.
yea i think what you have in mind is closer to the animal skins feature
where the tree entity gets a texture picked on planting
definitely nicest to impl it via C# 
Or wait for Pathos to add it as base-game feature.
you can use AT
does at support the new trees yet
dont think so

I don't think AT support GSQ.
And obviously not Tree Size Framework nor spaceCore animation.
anyways do u want this mod to exist i really think it is not that hard n fit for a beginner C# mod
I know nothing about C# (lol).
proposal
- hook SMAPI TerrainFeatureListChanged to add a new entry to modData to record the variant to lock down, it can be an index to WildTreeData.Textures, though it is annoying that theres no Id field to use here
- harmony patch Tree.ChooseTexture to always pick the variant that is locked down
prob also want some CustomFields thing to decide which variants to random between for a given season
Hello folks! New to modding here. How does someone add more skins/textures to a new farm animal through content patcher?
reading the animal data page on the wiki and I'm still a bit confused
farm animal skins are stored in "Skins" under the farm animal entry
is shape like this
"Skins": [
{
"Id": "{{ModId}}_Skin1",
"Texture": "Your loaded texture (or {{InternalAssetKey: skin1.png}}",
// "HarvestedTexture" for things like sheep
"BabyTexture": "Your loaded texture for baby (or {{InternalAssetKey: skin1baby.png}}",
},
// put more as desired
]
OHHH okay!
I think I understand now
Thank you Chu 
also for reference, GSQ means growth stage right?
no it means game state query
its a system to check a true/false statement, such as checking what current weather is
some game data fields accept a string that it will parse as gsq, and usually fields like this are called conditions
writing that down and saving the link, thank you
@calm nebula: take a look (76h ago)
Remind me in 6 hours to take a look
don't you have like a cell phone or something atravita? it can do the same gosh darn thing and then I can be lazy. but okay, I'm on it. (#6722814) (6h | <t:1749426644>)
honestly I wouldn't be surprised if atra didn't have a phone
Hello! @ivory plume ! I'm led to believe that now is the right time to request features for the upcoming 1.6.16. In that case, I was hoping it could be possible to customize the money counter in shop menu?
hey gang has anyone ever had an issue w/ macos where jsonassets correctly picks up the content pack but not the actual .json within it? mb if this is not the right chat to ask this in ❤️
Is there a mod by any chance that makes this guy always appear with the full possible shop stock?
Hi! At this point in pre-alpha, I'm mostly focusing on architectural stuff, bug fixes, and small mod requests. Requests like that which would need mod testing will mostly be handled later during the next mod author beta (assuming we have one), so that the change can be tested as soon as it's done (since we don't want to accumulate changes in development that haven't been fully tested).
(I love that crow portrait though.)
You could make one. Easily
file names on mac is case sensitive, maybe that
(also I'm obligated to point out that you shouldn't use JA in the modern day)
Thank you for the answer! I'd bring it up again during beta then (assuming we have one).
(you should probably let whoever led you to believe that that there's a ways to go yet
)
I have no idea where or how to begin, and don't want to step on someone's toes if this mod has already been made.
two cakes ☝️
are you purposely skipping 1.6.16 or is that a typo
(RIP 1.6.16.)
I was looking at it for a silly reason - I wanted the crow to have penny's other decor after her event 🙈
thank you! 😄 was not aware that JA isn't the best to use... what would you recommend using instead?
Content Patcher
I can't count lol
in that case i think probably 1.6.16
I'm betting it will be 1.7
I second this and also pls let inventory inherit the shop theme
Pathos what if we start a talk page on the migration page for suggestions (perhaps not now but eventually)
i would think thatd just be a 1.6.16 mod author beta thread when the time comes
like the 1.6 alpha thread
I feel that's easier for you to look at that ppl pinging you at random places in discord
Yes but discord is move kind if fast for this isn't it
Whereas talk page is all sectioned off (usually)
it is, but if the entire thread is dedicated to 1.6.16 suggestions and stuff, then its all relevant
also can be limited to actual mod authors
tis true 
one downside i will admit though is the lack of thread search
i wasnt around for alpha and we did not have a thread for 1.6.9 so idk what it was like
but otherwise imo a thread is much better
well pathos can always abuse junimo powers and make a channel if thats the concern 
thats true
it is weird that u cant just search within a thread tho discord pls
too busy adding scam vpn sponsorships
Idk if i have that many requests that r like, reasonable to implement in a patch version of game
Vs i just go make the mod
i am the opposite in that i have one request that i think is so easy to add and reasonable for the base game that i think it does not belong in a mod (aka BETAS where it would go) (its a CompleteQuest action)
well i do have more than zero of them some of which happened 
What would this CompleteQuest action entail, out of curiosity
CompleteQuest <quest id>
literally just calls quest.QuestComplete
or completeQuest() w/e it is
bc the existing RemoveQuest does not do that. it just deletes it
it would let you control quest stuff with trigger actions and thus achieve fancy objectives
so you cannot manually Complete a quest with trigger actions, which means Basic Quests with freeform goals are not usable via CP
well, you can RemoveQuest the basic quest ofc, but then the player is not notified that its actually been completed
and they dont get money from the quest
unless you do all that stuff manually
(and even if you did, they wouldnt be able to collect it from their quest log. also, they dont get a fancy Ding! sound)
as vinilla mentioned, content patcher. you can read up on the guide on how to use it to edit game data, and then reference the modding wiki to see what the data looks like
[[Modding:Index]]
A wiki talk page isn't really the best way to track requests like that (particularly since I'm probably the only game dev who'd see that page). If it's a small quick idea, I might just add it to my to-do list directly; otherwise the official forums might be a good place to track suggestions for now.
I've done evil things.
Oh dear
How evil is evil
First my mods, then I just had to do SMAPI.
Thats not too evil
Cool, I would even say
https://github.com/AlanDavison/SMAPI/actions/runs/15521581785
Just ignore the amount of test runs it took. It was too many because of this: https://github.com/AlanDavison/SMAPI/blob/09320903c46bfb1aee0ae83f825cfaf0a6ca1160/build/unix/prepare-install-package.sh#L14-L27
...in combination with one little prior test step I forgot I had in there causing it to find the empty "$HOME/.steam/steam/steamapps/common/Stardew Valley" path, overriding the GamePath being set by ~/stardewvalley.targets.
But it works. The only downside is the reliance on the reference assembly repo (which is missing a couple of assemblies, so I had to temporarily make another one for testing).
someone streamed themselves playing my mod on twitch! i'm very happy but also very scared at being perceived
how can I ensure my loop only continues after temporaryAnimatedSprite has executed and finished?
safest way is to set a pause after it
waitForAllStationary exists, but might cause unexpectedly long delays
the thing is, it's not bound to the farmer
?
Can you give a little bit more context, I'm confused as to what you mean by that.
the animation is tied to an npc, but it's not a schedule thing and has it's own code running in the background
this is in c#, isn't it
yes
oh good, I'm gonna let Atra answer then, because that's out of my wheelhouse
can you tell us what you want to achieve
hold on I might actually have an idea
anyways, just assign to the endfunction of your tas
huh, seems awfully convenient. Is there any documentation of this? the best I found was tas in events
which only includes the raw fields and flags
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
yeahh that explains it, I kinda hoped I wouldn't have to this time
it's not something I can initialize in the tas constructor is it? I have to define it right after I create it
not exactly the most straight forward without documentation some more context would really help tbh
i want to get started learning c#, i do have some experience with coding but not a lot... are there any good online tutorials?
!yellowbook
A good book for learning c# is https://www.robmiles.com/c-yellow-book
yea u just set it https://github.com/Mushymato/ExtendedTAS/blob/main/src/TASExt.cs#L134
also in this file is TemporaryAnimatedSprite.GetTemporaryAnimatedSprite which u should use to get the pooled TAS
this?
yea 
does it like take the first tas (far as I've seen it's a list) so I don't have to bother with referencing it?
a list wdym
its like making new TemporaryAnimatedSprite
but u get one from the pool instead of constructing a new one
and what exactly is "the pool"? I also see it in code now and I would like to understand it
if u look at TemporaryAnimatedSprite.Pool u can see how it just clears any assigned field values to default
so that it is ready for reuse
to make TAS actually show up in a location u need location.TemporarySprites.Add
(there r other tas lists u can add new TAS to but this is most common)
yeah that's what confused me before but I realised
so... the idea is that there is only one instance of tas that I'm just changing around instead of creating my own multiple new instances?
from itemId and preserve index, how can I create that flavoured Item? for example 348 and 454 for Acient Fruit Wine?
Hello! Does anybody know how do I make an object appear only during a cutscene?
is there a mod i can place torches on top of fences and other items like sprinklers??
you can use a temporary animated sprite https://stardewvalleywiki.com/Modding:Event_data#Event_scripts
you'll want to ask in #modded-stardew
did so! thanks
For the theory behind and why you would want to use a pool.
Is there a randomizer yet?
if i want to apply gift tastes to an item im creating how would i do it, like...what would i put in the content json
ooo alright thabk u
Hi there! Somebody know how to add AT textures to the Farm Island mailbox? I read in the manual that can be texturized but I failed trying to orz
I think that one's a map tile right
i think so? personally it would make sense to me
since its apart of the farm house archetype i think
so AT can't retexture it, you'd need to patch the island spritesheet
Archipelago supports Stardew Valley, apparently, but this is probably off topic for this channel unless you're looking to create a randomizer https://archipelago.gg/
you can ask kaito.kid things if you need help with it
I was thinking the same -until I saw it mention in the AT manual- but maybe I misread it ;w; thanks you for your help!
so much creative flow rn i literally made a pinterest board of inspo for future projects
if I understand correctly in your case "Def" is just a template you defined somewhere else?
Def is a data model
but its used to initialize the record here
internal sealed record TASContext(TASExt Def)
ik this code doesnt show it bc it is just a shared project for helper but i get TASExt and init a TASContext
data model? whats that exactly? Ik it's no longer even necesary for me bc I see that I just have to pass values into the getTAS method, but I'm curious if you don't mind
ohh is this like the json thing?
so to put what this thing is in context
this is a feature where people can make a temporary animate sprite happen by editdata target mushymato.MMAP/TAS with all these fields
after a content mod does all this i can get the values they put in by loading the asset, with the right data model
and then i feed it into a temporaryanimatedsprite 
there r actually more fields that i havent defined (TAS has so many...)
eventually hope to cover all the useful things ofc
I see, so it deserializes the data that can be easily edited/expanded by content mods
yes tho the deserialization isnt done by me but content patcher 
from perspective of my mod i am just loading an asset from the content pipeline
well I haven't touched CP yet, although I did try implementing deserialization by code I'm yet to actually test this part
for smapi modding you can just use newtonsoft.json
but usually u dont actually need to do anything urself
https://smapi.io/log/967598c5b9604a53b625111f774c1aea
https://smapi.io/json/content-patcher/6495c655e6b7486fa4498f1ecc3a5efd
anyone know what "Input string was not in a correct format" is referring to? i've only attached one of the two schedules throwing an error because they're p much identical except for coordinates
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 16 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
yeah that's what I did
damned be the awfully convenient tools forcing me to learn them 
If I want to have a cutscene on a custom map, do I need to do anything besides setting the mod name in the target field?
if you're using the content pipeline you're not actually using CP either, things just happen in the background in the AssetRequested event
you'll need to load a blank.json to Data/Events/YourLocationId first before doing EditData on it
but after that its just the same as editdata for a new event anywhere else, just use your custom location id
thx!
quick question, does the tas use rectangle from xTile or Xna?
New framework mod from @uncut viper !
Custom Museum Framework is now released!
This is a framework for mod authors to use to create their own curated item display similar to the vanilla museum. Unlike the vanilla museum, however, Custom Museum Framework offers a lot more flexibility in how your museum is managed, what items can be displayed, and where to display them. Features include but are not limited to:
- Author-defined donation criteria
- Unrestricted item pedestal placement
- Custom item pedestal interactions
- Custom lost books
- Museum quests
- Museum-related triggers, actions, and queries
- Full multiplayer compatibility
Feel free to take a look at the documentation to view everything that Custom Museum Framework is capable of. You're not limited to mimicking the vanilla museum one-to-one here!
tis good right

usually if u see a Rectangle it's the Xna one not the xTile one but ofc exceptions everywhere
thank you chu 
just dont System.Drawing 
I hate that xtile has all its own special boy structs
I think it's meant to be portable but tide only advertises desktop and xbox IIRC and xna is on both
Tiled/.tmx/.tbin itself works with a lot more than just XNA though
so probably good reason to not be limited to xna if you can reasonably avoid it i suppose
i thought xTile is actually for tbin
An object reference is required for the non-static field, method, or property 'TemporaryAnimatedSprite.GetTemporaryAnimatedSprite(string, Rectangle, float, int, int, Vector2, bool, bool)'
uhhh
shrugs
oh hell yeah!
did u use the wrong overload
theres one GetTemporaryAnimatedSprite that is indeed an instance method
I have to check but it is possible
those darn overloads always get me
public TemporaryAnimatedSprite GetTemporaryAnimatedSprite(string textureName, Rectangle sourceRect, float animationInterval, int animationLength, int numberOfLoops, Vector2 position, bool flicker, bool flipped)``` aha, found the culprit I think
thanks, it would take me way too long to realize that

well that's just my luck that I managed to stumble on the only one that isn't static
quill do you have an entire server for froge
is the one I need to use seriously the one with all the parameters of fields I don't use
yummy
@calm nebula: take a look (6h ago)
@lucid iron so I can assume that the pool() values are like "default" ? Since I have to pass all of those and for now I don't have a reason to mess with them
just looking for reference
yea things reset to default by pool
however u r using some overload of GetTemporaryAnimatedSprite that sets at least a few fields
public static TemporaryAnimatedSprite GetTemporaryAnimatedSprite(string textureName, Rectangle sourceRect, float animationInterval, int animationLength, int numberOfLoops, Vector2 position, bool flicker, bool flipped, float layerDepth, float alphaFade, Color color, float scale, float scaleChange, float rotation, float rotationChange, bool local = false)```
I think this is the same one you used
and as far as I see the only one I can use
yea but theres a public static TemporaryAnimatedSprite GetTemporaryAnimatedSprite() right
thats y u gotta decompile game 
yeah figures... still overloads are a pain

the only one without parameters is the one that resets to defaults... right?
okay no this IS the only viable one
Im 99% sure, maybe, positive-
i don't think you need to worry too much about which param list overload you use for this method, you'll usually end up setting a bunch of fields immediately after
simply getting an element from the pool will guarantee it's been reset to defaults already; that's handled for you by the pool
elements are reset when they're freed for use, and if no elements are free and the pool doesn't add a new element, an in-use element will be reset and given to you
what information gets saved in a save file? Like if I edit an object's itemid, will that change still be present for the next time i open the game?
What do you mean by edit an object's itemid? You can create a new object using Content Patcher and as long as your mod is present, then it will be as well.
the answer is a lot! and it's mostly arbitrary. the only sure way to know which properties are saved is to either open the save file itself and see what's there、or decompile the game code and see which fields aren't marked with [XmlIgnore]
editing the itemid alone might not give the results you want, since it'll have a lot of other data saved from its lifespan, like the price
I guess the context is that I'm in csharp trying to figure how out to deal with autograbber's placement action creating a chest but not setting the itemid
is this vanilla behaviour, or your own?
afaict the not setting of the itemid is vanilla behavior, i see it in the decompiled code, but i could be looking in the wrong place
without the code in front of me, I'd imagine it simply calls ItemRegistry.Create("(BC)Chest") or something similar
It does autograbber.heldItem.Value = new Chest()
hm both itemid and qualified item id are xmlignore, how does the game save items? like i would have though youd need that to recreate it on load or something
yep, I should've specified that often there are properties with backing fields、where only the field is serialised
I see what you mean about the chest now though, that's simply used as an item container for all the grabbed items, it's not expected to be interacted with by the player at all
in the texture name do I have to specify anything other than the file path?
Remind me in 96 hours to take a look
ooo not sure if I can count that high but I'll give it my best shot!!! (#6723315) (96h | <t:1749775491>)
Chests visible to the player have ids
There are four vanilla chests
I wonder how extensible it is
You need an asset path not a file path
yeah the game absolutely does id checks on chests in normal circumstances
How many cats are in chat at the moment
but this one's just being used as an accessory to the autograbber
2.5
More importantly. How many of y'all have cat pictures
do I have to load it with helper? I'm seeing somethiing like that
Blueberry you can provide blueberry pictures
oh no, you're not doxing me that easily
Look, you know that I'm a literal orange cat with a power drill
so you're passing a texturename param to a TAS getter, right? is this a vanilla asset or your own?
my own
I remember passing a texture to a TAS was weirdly painful
then you'll need to handle the asset load yourself! either with CP or with an event listener
I did it in Fireworks Festival
I just had to load it more than felt like was necessary
It’s not that bad, just more bad than I expected
yeah it is for the actual ctor iirc, but for the pool getter it's fine
You can look at my code if you want, Fireworks Festival is on GitHub
Might not be the same thing as this tho from what blueb said
I think it's fine as long as you do it before you add the tas to the list
It's in post that make it hard
Loading a texture via CP or C# is not hard, to be clear
In CP it’s a simple load action
Just do AssetRequested then u good
holy parmeggiano I have to whip out another tool and hours just to see a 3 frame animation play out
forgive the phone code, it's something like
this.Helper.Events.Content.AssetRequested += (object sender, AssetRequestedEventArgs e) {
if (e.AssetName.IsEquivalentTo("my funny asset name"))
e.LoadFrom<Texture2D>("my relative file path");
}```
which you can put in a one-time method like Entry()
Don't you have full on mods that are only in mod.entry
yeah those mods have the same energy as people who live off the grid in a caravan
Blueberry, in my heart of hearts I want to be that person
In a van
In the desert
Enjoying a midnight coffee and a book
Between me and that goal however is just a couple million dollars of savings, easy.
and the slight difficulty of getting coffee and books in the desert
Shhhhh
This took more effort than necessary.
(autopet pets)
Kids will now have a chance to pet/play with your pets, applying the auto pet flag (fake) that I'm still working out.
hi! i'm making an event, and idk how to format this type of question... answer0 will have a response but continues event with no effect, answer1 will have a response as well and continues event with no effect, but answer2 has a fork.
Tbf there are easier ways to do animation than temporary animated sprite 
Sometimes doing it urself with spritebatch.Draw is all you need
ah but that won't emit it in multiplayer on its own. plus it's generally good to use what's in front of you
Got it. Using my Tupperware and fork
I'm not gonna pretend I know whats going on: csharp Cannot implicitly convert type '(object sender, StardewModdingAPI.Events.AssetRequestedEventArgs e)' to 'System.EventHandler<StardewModdingAPI.Events.AssetRequestedEventArgs>'
oh, maybe you don't need object sender after all
again this is breakfast phone code, not guaranteed to work out of the box hahah
What about
this.Helper.Events.Content.AssetRequested += (_, e) {
if (e.AssetName.IsEquivalentTo("my funny asset name"))
e.LoadFrom<Texture2D>("my relative file path");
}``
Phone coding hours
I'm eating dinner chue
all meals are phone coding hours
lol
fixing that is an exercise left to the reader
yeah I'm trying to just thought it's funny
I'd contribute but alas I'm on my PC right now so there's a good chance my code will be correct
do i just make a separate fork for just the response of answer1?
I need to see the full context
did you try with just (AssetRequestedEventArgs e)
inshallah we shall eventually guess the correct format
I always just make the ide give me the right signature
Something about anon event handlers rub me wrong
yeah sadly we all have intellisense(tm) brain rot
letting ai do all our work without us learning...
im taking you guys out of my mod will
Button out there writing artisanal smoked handlers
id still like to eventually set up in my dotnet template somethin thatll search my assembly for a function whose name matches a SMAPI event and automatically assign it that way ill never have to worry about it again
but im limited to one such dotnet template improvement per mod
Button out there selling out the brand to Big Reflect
id rather sell out to Big Reflection than have to restart SMAPI again bc i forgot to assign my handler after writing it
Dats why i gotta start with the intellisense pls gib signature 
YourEventHandler(object one, object two)
done
maybe YourEventHandler(object?[] params) if youre feeling spicy
(idk if thatd work)
im very lazy, ok
if i could stuff something like that into my dotnet template in a sane way i would
I go away to hang laundry and this is what I'm greeted with
im a pioneer
question... you guys structure of implementing this is totally different from what the wiki suggests (and VS auto-completes)
coding is free
so like... why what where and when
please do not take my methods ive posted seriously
but the way blueberry initially posted and atra corrected is just different but still valid C# syntax
just a way of assigning a function to an event handler without writing a whole "public void etc etc() { ... }" thing
(not just used for event handlers, but in this context it is)
I see
heres the 1 time i did a load of some textures from mod asset
Oh button you released the museum framework mod... now I feel legally obligated to add a museum to my expansion 
(sad to report this does not in fact work)
Feel? You are legally obligated. Subject to §1.5.73.56
in my unbiased opinion i agree you should be obligated to do so
Everyone should be obligated to make a museum now
Museum fun time
in c# there's plenty of ways to skin a (silly) cat - the one above just happened to be the one with the least time spent writing on mobile lol
haha I got it, I just retreated to the classic structure and the API docs, I'm gonna crack this tmr bc I'm eepy
(works btw)
typically you wouldn't do that exactly if you wanted to remove the handler later (with -=, because it needs to be assigned to a symbol you can reference) or if the inline right-hand-side delegate definition were more than a couple lines long (for readability)
just remove all the handlers from the event 
Im curious does anyone know how to make visual novel style portraits with the dialogue display framework
what do you mean visual novel style
Currently i have just been borrowing the code from the bountiful beauties mod to get it to work in my game
the event works, but now I gotta figure out how to actually request the thing
and my poor class structure isn't gonna make that easy
And I want to figure out how to do it on my own in a independent mod so I dont have to explain why I have a gooner mod in my game to people
By visual novel style i mean what i put in the making mods art channel
it gets requested when you do stuff like Game1.content.Load<Texture2D>("my cool asset name")
that seems to easy to be true
then, the content loader will call your AssetRequested function if my cool asset name hasnt been loaded and cached
everyone always uses "cool" in their example filler text. always "my cool asset name" or "my cool mod name"
where are the examples that say "my lame ass mod name"
everything I touch is cool because I am that cool
excuse me i literally used "my funny asset name" for this exact example
okay.. now am I to assume that tas already does that once I provide the name?
yes
so having the event set up, after providing the name to tas it should somewhat work out
yep! the TAS will also automatically free itself to the pool when it's done animating, leaves the map, or fades to alpha 0、so you don't need to worry about that either
I really need some sleep, thanks a ton guys have great days
(what is a gooner mod...)
not one to be discussed in this server
don't you dare
you don't wanna know old man
ah sexytimes ok 
you should ask mangupix about it bc they r preparing a big update of some sort to DDFC
perhaps u can be early adopter to whatever new content format they go with
not related but DDF two caked itself right
well tbh gooner is more like nerdy romantic/anime stuff ex. visual novel style, there is a similiar but more direct phrase for such
its called mitosis
(... that was at selph just to be clear to anyone who wasnt around to see the messages get sent at the same time)
i say DDFC is more of a budding process
quickQuestion where answer 3 has a switchEvent command in it
bringing this back
Hi Pathos, I just return from some busy work days IRL to continue the Automate PR weeks before: https://github.com/Pathoschild/StardewMods/pull/1117
Most logic had been done but I stuck at getting all chest types for GMCM. All the Item in ItemRepo seems to be plain Object (as img embedded, noticed the len of petentialChestTypes is 0 then checked the repo item data)
I have not checked all game code related, guess that chest is Object in player inventory, and wiil be converted into concrete Chest type when set down to ground? So I can only come up with the idea to set down the item virtually to get the concrete type and use for filter(but it's indeed weird, and seems a bug maker) @ivory plume
your railroad replacement schedule should just be locationName X Y FacingDirection
its not a replacement for the entire schedule, its just a replacement for that specific piece in your summer schedule
Seems the item-to-chest logic is in Object.placementAction, where it's hardcoded by item ID. The supported item IDs there are...
(BC)BigChest
(BC)BigStoneChest
(BC)130 // chest
(BC)232 // stone chest
(BC)236 // Junimo chest
I guess we could hardcode those item IDs, and support a context tag like chest_item so custom-chest mods can make them configurable through Automate?
ohh thank you
oh I thought it's data driven...Now I can (maybe) hardcode the IDs without shame... BTW how about setting down a custom chest added by mod? Are they handled manually in mod?
I assume so; you could try looking at a custom-chest mod's code to see what it does.
i think expanded storage is the main custom chests mod rn
this is pretty random, but does anyone know where the animation desc for marnie's laughing is? i believe it's triggered when you wear the lucky purple shorts, but ihnc where that could be. i checked Data/animationdescriptions.json
that's hardcoded in C#, look at NPC.checkAction
thanks ill have a look on their impl
ohh ok, i just wanted to know the frames. i havent decompiled it so i cant check i think?
thanks! just 100ms each frame, right?
180ms, except for the first frame which is 150ms
thank you sm!
@pine elbow sorry - removed your timeout - masked links/markdown text aren't allowed here until you reach a higher level!
I see. My bad, then. I will resend it without the masked link.
Hello. So I'm trying to make a conversion of this mod: Woomewoong's All Npc Portraits and Sprites (1.6 incomplete)...
But I am having a tough time "installing" the output as Stardrop is "unable to load" the mod.
Maybe I did something wrong, or missed some steps?
!json Can you share your json via the validator website linked below?
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.
Okay, hang on.
Here is for the manifest.json file: https://smapi.io/json/manifest/8f9f7a299419485da8b8b4daf38a7af9
And here is... for the content.json file. Idk where I can categorize it in the website.
That's the Content Patcher option
Your format should be 2.7.0 instead of 1.28.0
And you should not have the .xnb file extension in the Targets
those are artifacts from the converters
The Target field never accepts a file extension
I think the extension is fine?
Nope
Any extension fails
Oh, and they need to be Portraits/Abigail (for portraits) and Characters/Abigail (for sprites), not just their names.
yeah, the converter requires that you organize the loose XNB files exactly as how the vanilla assets they replace are organized
(unless someone does a very bad thing and gives their asset a name with an extension)
I see. So the converter I used just did the conversion part, but I still need to do the organizing part, or...?
so it can pick the Target field automatically for you
there is a CP version though
since these are portraits you need to put Portraits before every character name in the Target fields
It is outdated and pre-1.6.
just replace those w new ones and save yourself half the work
I think the mod author hasn't made a version with 1.6 in mind (aka with the winter outfits).
basically before you did the conversion you should have put all the xnb files into a blank folder named Portraits
but since you didn't you'd have to put Portraits into Target yourself
Ah, just copy/pasting the files from the 'asset' folder?
"Target": "Abigail", -> "Target": "Portraits/Abigail",
...or do what lani said, it's faster
proposal: gun mod
Woomewoong also made sprites for the characters, and there are alterations for these Cursors.png and townInterior.png files, presumably from 1.5.
you can always make one yourself :]
Which would mean I'm gonna have to move stuff since 1.6 has more sprites in those files.
I don't think 1.6 added new stuff to those files
could be wrong though, but the new stuff are in new sheets like cursors1.6
Ah, okay, then. But there seems to be a Korean text they replaced in the Cursors.png file, and my game is set to English.
I'll have to try and replace it with an English text version. I don't know how necessary is that, though.
you could just do a partial image patch rather than targeting the entire thing, that would fix that
Also, there seems to be two folders in the Content Patcher version's 'Portraits' folder: emoji_O, and emoji_X...
emoji o is emojis in portraits, emoji x is no emojis in portraits
1.6 adding a new file called Cursors_1_6 is a true masterstroke of teasing the modders /lh
like a sweatdrop, or an angry vein thing, etc
interesting, thanks for the correction
I just replaced the KR text with the EN version via Photopea. Nothing much was moved in the sprites there.
So it was fairly easy. I'm examining the content.json of the Content Patcher version and there seems to be KR texts there. Hopefully they're not of concern?
depends on what it is, i guess?
if they r just LogName or // its whatever
Since Woomewoong also edits overworld sprites, I'm guessing they're there to edit like the drunk Shane sprite in cursors and the Morris in towninterior.
It's actually the sprite of Morris in the Cursors.png where he's with some Joja Mart employees congratulation the farmer on completing their route.
The banner above them says probably "SUCCESS!" in KR, so I reverted it to EN from the game's original files.
In the townInterior.png, I'll go change if there's any changes there for 1.6 and move things around if necessary.
Nvm, there doesn't seem to be anything new, just replaced two.
Just a stray thought: most of portrait mods don't seem to edit Alex's mother, do they? And intro Grandpa even less so.
I guess they only appear once.
plus a lot of ppl skip the intro
^ im one of those people
I haven't noticed that yet.
But based on Woomewoong's mod, they seem to have edited Alex's mother's sprite/s.
(flashback to that one mod that made your grandpa a twink)
a what.
Having trouble copy/pasting the image files to the Content Patcher's version's assets.
Gonna have to compare each of them if necessary, due to the 'emoji_O' and 'emoji_X' folders, when the XNB version doesn't even have that.
The extracted XNB-to-PNG files don't seem to have those emoji effects, so I assume they're for the 'emoji_X' folder mainly?
But then, what of the one for 'emoji_O'?
See, this is what's confusing me.
On the left is the 'emoji_X' folder, and on the right are converted assets so I can copy/paste them.
Does this mean, I have to manually add in the emoji effects for the version I'm going to paste in the 'emoji_O' folder?
Is highlighted folder is where I was with the left side of the image above.
Here's the two-window screen like from above, but instead of 'emoji_X' on the left, it's 'emoji_O'.
Well, then the XNB version doesn't seem to actually have emoji.
The CP version gives you a choice in the config.
There wasn't a config file, though. And I accidentally downloaded the CP version for Stardrop, which warned me that it can't load the mod either.
config file only gets automatically generated after you load the mod in-game.
I downloaded CP version again manually so I can edit the main asset files before zipping it into a ready-to-use mod.
If the XNB version doesn't have an emoji version, you can just ignore that part. Erase the Config part in the content.jsonand the remove all the When conditionals from the portrait loads.
That shouldn't matter. Every line that starts with // wouldn't be read by the game.
!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.
u should get a editor that has json syntax highlighting, in particular jsonc support
@devout otter Ohh! I just realized, I guess the ones with emoji effects are optional? If I don't want any choice or option for that, I'll just plainly put the files in the 'Portraits' folder?
It depends on how the mod is structured.
Basically you'd need to look into the content.json and look from where does it load the files.
There's a version for both, it seems. Guess I'm gonna have to make a 'emoji_O' version because the updated files only contains XNB for the X version.
those are the author's comments about the code, so you may want to translate them for your own reference while you work, but you won't need to replace them in the file
I think it'd be simpler to just delete the emoji_O version patches from the content.json.
Nah, it's fine. I'm kinda bored so I wanna do the O version. Comparing the two back-to-back, it seems Woomewoong is updating the portraits altogether.
Btw, is it okay to distribute these image files for reference?
It would probably be better if you zoomed in on them and then took screenshots, both so people could see better and so that you weren't sharing a mod file directly.
i wanna make a mod how do i
simple mod i can give info on what i wanna do to know difficulty
youd need to tell the idea first, thatll affect how difficult it is
oh
child expansion mod
i wanna make it so penny, jas, and vince can have a "field trip" on the farm
along with making vincent asking to say something to you without penny or jas
then he says he likes jas (kindergarten romance, hear me out ok its not bad)
then the player says either
- You're too young
- You should tell her!
- She probably wouldn't like you
thats start of it
it sounds like you want an event mod
also this is all bc vince called me about if i have piggies on my farm
something with cutscenes
yeah
!unpack
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!
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.
and content patcher
difficulty level goes up a little if you don't actually have the game hahah
doomed then
i guess this is theoretically doable as xnb mod 
with her eating a gem
terror
abby eating a gem as a statue
recipe unlocked by marrying abigail and getting 10 <3 with Caroline and Pierre then getting 14 <3 with abigal with the letter
"You like Abigail. Would you like to prove that?"
is the letter, along with the recipe
its
- 10 Amethyst
- 3 Abigail Portraits
- 20 Iridium Bars
- 250 Gold Ore
- 10 Battery Packs
when placed, abigail tells you
"Oh, <player>, is this me?"
"Well, I'll tell you one thing."
"It's accurate!!!"
Then you respond either
- I knew you'd like it!
- It was such a waste
- (ask for child)
if you pick ask for child she says
"<player>, what?"
and cutscene ends
if 2 children,
"<player>, we have enough."
gives 1 amethyst every day and if you beat Journey of the Prairie King, it becomes an arcade machine for it, along with having multiplayer like in the heart event
it would be a 3x3 statue
SORRY FOR SPAMMING THE ENTIRE CHAT, IS THIS POSSIBLE OR A GOOD IDEA
well, most of that is doable with content patcher
i have few opinions about good/bad ideas but many strong opinions about what's feasible 
what isnt doable
you are not going to get very far on a platform without smapi unfortunately, unless xbox meant gamepass
then u good, go take look at the content patcher tutorial and how to script events 
oh scripting? nvm
welp
i respect your boundaries
i have 200 pairs of Lewis' purple shorts.
OOH PURPLE SHORTS STATUE IDEA-
just a statue made with x100 of them
5x5 statue
well, what did you expect with events that has people moving around and talking at intervals
sure
why is gamepass important tho
^^^
when you said xbox we thought the console, which doesn't allow modding
if it's on PC, it's fair game
i have it is it possible tyo play gamepass through pc
Installing SMAPI for Gamepass requires extra steps. Please see the guide here https://stardewvalleywiki.com/Modding:Installing_SMAPI_on_Windows#Xbox_app
yay ty
events are so fun but its soooo time consuming lol it took me like a total of 8 hours to make a single event (tbf im a beginner and it had forks which took a while to figure out) lol
HUZZAH the basic functionality of my mod works! now to see if editing planting conditions is do-able enough
thats the best feeling in modding lol
the best, right after the rush of dread when you get a bunch of errors in smapi
all in non-human language lol... just a wall of incomprehensible red text 
wdym by this
sorry for late reply my socket extension died :bcedead:
could someone possibly help me fix this error with the texture loading? im uncertain how to fix it

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 6 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
can you send the json where'
oops
where you're loading the image and such?
(sorry for sending that early, i have a new keyboard and im getting used to it :L i didnt realize how different it'd feel when using this vs a laptop)
heres some of the jsons i assume are involved- ive never done this before so i was trying to use forage of ferngill as a reference
૮꒰◞ ˕ ◟ ྀི꒱ა
https://smapi.io/json/none/555c3e974cb349fa82d21c28d7a4c52a
does your png name have a space in it?
yes
your target needs to match your texture
whatever you load the png to should be what you put in the texture field
so in this case "Texture": "GbsForaging-CollectorsEdition/objects",
ohh ok thank you ill give it a try

yall have been so helpful thank you so much otherwise i likely wouldnt have managed this at all

i want assist with one mod i want to create
im looking for a mod like Bathroom after 2nd Houseupgrade
without bugs
I don't think anyone can guarantee a mod wouldn't have bugs
i want to make but i dont know how
are there existing mods that do it but they have bugs, or is this a new idea?
what do you mean "but better"? better than what, and in what way?
more decorated
okay, do you specifically want to make one or would you be happy if one already exists? (both are valid!)
if i cant find bathoroom mod i will make it
the mod i mentioned has a specific bug and its a bit outdated
oh, I asked you and you said there wasn't one
can you link to it?
can you link them anyway so we can see what we're looking at?
why wont the shirt i created work??? it keeps saying folder empty whenever i try to run it 😓
we're going to need a little more detail than that
hold on ill do something again if it doesnt work ill send
Hi Iro :D ( also bye because im going to bed cause i have to get up in 6 hours-) but Hi!
i based this off a working mod, uhh (mb abt the design was just testing it first) whenever i launch it it says
these mods cannot be added to your game
- (mod name) because its an empty folder
That manifest.json file is actually a manifest.json.txt file. You need to turn file extensions on and then rename it to remove the .txt bit. You can turn file extensions on in the View menu.
OH MY GOD THANK YOU YOU SAVED ME
So the args is something like Mmap/_critter X Y crittertype count, you can use to Random to change the X Y on a day to day
several silly questions (sorry 😔)
- whats a location changed trigger?
- whats a count?
- does this mean that it randomizes the 10 coordinates to spawn the fireflies?
sticker unintentioanl
I didn’t see this but hiiii!
heeyyaa, so far as I see I managed to fix any errors with loading the asset, but I can't get it to actually show in game for some reason
can you send your current code (using the json uploader if it’s a content pack or something like github for c#)?
!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.
Did u actually spawn the tas yet, like adding it to the location tas list
yes
but I'm trying to find some way to debug that now
okay so I see the method returning the tas and called by temporarySprites.Add(method) IS executing properly (forget the deleted message if you seen it)
hold on
the position is in pixels not tiles is it
Yup
holy
it works
Hello! I would like to request the Mod Author role 
I made this mod: https://www.nexusmods.com/stardewvalley/mods/34053
you need to DM boncher
It said to ask in this channel
Either works!
But Bouncer is more reliable, since it doesn't depend on one of us being in the channel. 
I just messaged bouncer as well
Okay, well I very much know the mod is real, so the next step is to add yourself to the community page on the wiki: https://stardewvalleywiki.com/Modding:Community
I just know that that’s where I got sent when I applied haha, straight to boncher
(And I miss the public cheeto-ings. They used to be exclusively in-channel!)
too many cheetos now. no more public cheeto dust
alright now to figure out
a) why the animation plays like one tile down
b) how to hide the npc sprite for the duration
c) that there are other ways I should have done this entire thing in the first place lol
chee to chee to chee to
it's not an event, its more of a background thing
Or making something akin to schedule animation
I did ask what the desired effect is but u didn't answer 
are you asking all of us or just chu? because you straight up ignored me before and I’d like to know if I should bother lmao
I ask for myself always
oh I meant if they’re asking everyone chu, not you haha
oh wait I'm sorry I forgott
But yea if u r making something like the aerobics animation for ur npc to do
The correct thing is schedule anim 
Done!
You did the pixel art for the sprite and portrait, too?
Yes, I did. And some pixel art for the custom map, spouseroom and patio
The weapon and shirt too
Then get the pixels part added on the community page, because that qualifies you for the pixelsmith role, too! 
Ohhh!

Thank you!
Orang
cheeto
Matches my pfp's hair lol
What is that emoji
It's from SMC! It's just the puffer holding a cheeto. 
(chanting) pixelsmith, pixelsmith
I'm trying to make npc's interact to certain objects placed by the player in a custom setting like a festival I guess? considering it would totally break any schedules I don't mess with the main logic for now
Then you are in an event of some sort i think (festivals r like that)
festivals are events, it's true
Why is mod-showcase using the old embed grumble grumble
Are you envisioning a minigame
festivals are pre-coded through aren't day? and my goal is to make them react if there is an object present and where
quite on point indeed
they say there are only two hard problems in computer science /lh
Well i think tas is valid here if u need higher degree of control
Could also fiddle with their AnimatedSprite, but u would be bound to the 16x32
The amount of time my professor in OOP has gone "wait, why it is doing that?" when showing his own code as examples is hilarious
it's hard to describe, kinda want SV rts minigame starring the villagers 
brb implementing final fantasy tactics in stardew's engine /j
It will add unnecessary co-op sync overhead
When i was making trinkets i started off using AnimatedSprite and eventually just changed to a simple custom controller
well tbh I kinda hoped I would develop at least okay-working framework for real-time npc - world interactions eventually
rts?
i only know it as Real Time Strategy
but that confuses me as a minigame concept
tbh realtime anything confuses me as a concept for a minigame in stardew, a game that’s not really real-time (if I understand the gaming use of the term correctly?)
anyway i only know a little about the NPC scheduler in stardew but my understanding is that you are likely to regret interacting with it. good luck to you
that is what I’ve heard from everyone who’s dealt with it too tbf 
i'm also a bit wary of the potential hurricane of bug reports that other NPC modders receive if your thing ends up screwing with their schedules
also just in general you shouldn’t change other modders’ npcs’ schedules for etiquette reasons
you don’t mess with other people’s mods from your mod
It's sensitive enough I had to make the decision to not allow you to pick up NPCs with Carry Your Pet.
Even that was enough to make 'em void walk.
favourite reason for void walking is a single misplaced warp in the bus stop making emily step all over your farm sometimes
(and through it and into the void)
hey iro this is unrelated but i have seen you say "an smapi" several times and i must know if you pronounce the five letters individually instead of saying "smappy"
NPC scary

What if Critter
I also say ess cue ell
I thought everyone said smappy...
If a cloud can be a critter anything can
I do pronounce out SQL, though!
But it's sequel
(this trick also works to determine how people pronounce "SNES")
Smampy
sneeze
Ssness
usually it's one of "sness" or "ess en ee ess"
what if ess-ness
jail
For me, it's more... snez?
(I honestly have no idea how I pronounce it in my head for some reason. Maybe snez? maybe super en ee ess?)
anyway what if we compromise and call it ess-mappy
or smay-pea-eye
@fading walrus, get the hammer. /j
smay-pea-eye it is! sold to dh
Swampi
Okay, slight upgrade time. Attestation gets automatically added to the release now. 
Animals yes, horse... nope!
Which does mean you can carry MEEP animal-powered fake NPCs, but... that's fine. 
Ess en eee ess
DH how do you carry the animals and does it compete with throwing them
haha yes the default key is left shift what else would it be /lh
Left shift plus interact! 
yeah that is tater toss's default as well
Wait, really?!
yeah. it's configurable
I guess at least we know nobody's had a problem with it yet!
tee hee
╰─> gh attestation verify --owner AlanDavison /home/alan/.local/share/Steam/steamapps/common/Stardew\ Valley/Mods/BetterReturnScepter/BetterReturnScepter.dll
Loaded digest sha256:e0a90a9702f4057249c9e01f7668fe5f4fd1bd5b459cab73297fa672ee23498e for file:///home/alan/.local/share/Steam/steamapps/common/Stardew Valley/Mods/BetterReturnScepter/BetterReturnScepter.dll
Loaded 1 attestation from GitHub API
The following policy criteria will be enforced:
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Source Repository Owner URI must match:... https://github.com/AlanDavison
- Subject Alternative Name must match regex: (?i)^https://github.com/AlanDavison/
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com
✓ Verification succeeded!
The following 1 attestation matched the policy criteria
- Attestation #1
- Build repo:..... AlanDavison/StardewValleyMods
- Build workflow:. .github/workflows/manual-release.yml@refs/heads/master
- Signer repo:.... AlanDavison/StardewValleyMods
- Signer workflow: .github/workflows/manual-release.yml@refs/heads/master

Now for the fun process of uploading a "new version" of the same version of all of my mods so everything lines up.
Did you implement DRM for SDV mods? /lh
No

(I had Dutch class.)
I think I figured it out. I opened Elliot's map to see an example 🙂
so going back to the original question lol, in time I will look into other ways to do that but for now if I play a temporary animated sprite how can I hide the original sprite?
I finished my Custom NPC room!
If you're doing real time npcs i wouldn't do that at all
I would use the animation system on npc
AnimatedSprite
What mods are you making?
Me? The last time I released a mod was May 2023.
And what was it?
well at least I learned something from all that, now time to learn another something 
I release mods in batches when I'm ready to
I think that was the group with camera pan, shovel, not sure what else was in there
What is the purpose of your question
Mine?
Yeah if u want to talk about playing with mod perhaps #modded-stardew better
This channel mainly for getting help with creating mods
Writing dialogue, and I have Evelyn scripted to mention a 'flea market'. Is that too colloquial, or should I let potential-future translators worry about it?
Or is 'bazaar' more Stardewy
wait. Rummage sale.
id say “flea market” is the most stardewy
rummage sale sounds british, which stardew isnt
And recognisable, personally!
Oh ok. Just the other channels were a bit empty
And here ppl were talking
Sry @chuv
are there any premade ways of summoning particles, or is it also done by tas and some content spritesheet?
Yeah TAS is usually what u do
For example u can look at how cauldron smoke in the wizard's house is a combo of scale change alpha change motion
so there are no "prefabs", and I have to find and tas it on my own then?
as in no collection of common particles ready to be called \
I love how farmer, tools, and for example a water from the watering can are all separate tilesheets lol
You can try to find in the decompile where the game creates a similar set of particles or whatnot that you want, but... they're just all over the place.
yeah I see
There's a utility method for creating sparkle particles i believe
Specifically sparkles
Hey all,
I'm a blind Stardew Valley newbie, with some programming nuances. I'm looking for a way of creating custom farm maps without a dedicated software (I can't use Tiled because, well, I'm blind and it isn't accessible at all).
The problem is that the map boundaries appear as blocked tiles when I play. If you think about it, it does make sense, since the map was intentionally made to have a certain shape, but I would really like more freedom. I'd love a big, rectangular farm map, with enough space to fulfill some ideas (paths connecting objects, nice fences separating huge planted areas from the buildings, etc.).
Do you have any suggestions (avoiding the one to consult a sighted person to help me with Tiled or to create the map for me, please 😅)? Is there any programmatic way of creating a map within my mod? I know they are somewhat complex, but at the end of the day, they are just a data structure (ideally in C#, potentially a .tmx file). I'd stick to the vanilla tilesheets for obvious reasons. 😉
Thanks in advance for any tip, advice, idea, suggestion... Every kind of help would be really appreciated.
i’m not sure how helpful this would be, but if you open .tmx files in notepad++ or another type of text editor, the tile layout appears as rows and columns of numbers that correspond to the tile that’s been been placed there
This might be helpful: https://stardewvalleywiki.com/Modding:Maps#Making_changes_with_SMAPI
If I read it correctly, it is possible to add maps using C# only (having .png tilesheets), but my C# knowledge is very poor.
The underlying structure of tiled files is XML - I would do what nic said and look at some of the existing ones for how they're structured, since we really don't have any documentation for it right now unfortunately
Hm i think there are some big rectangle "cleaned up standard farm" mods
I've actually made one myself haha (but they asked to only be given advice on how to do it themselves)
mine isn't published or anything but I can throw it here if anyone does want it
i think the biggest problem would be identifying what numbers go to what tiles without documentation of the vanilla tilesheets in that regard
its XML but without knowing what to write in the XML its difficult
Depending on how much programmatically you mean there is https://github.com/anotherpillow/tmxpy but you'd have to modify an existing map with it
Here is a newish one at least https://www.nexusmods.com/stardewvalley/mods/20952
As for just making the map programmatically i guess if have a special tilesheet whose tiles are layed out logically and only for function of "being diggable" or "being water" it's possible to generate a thing like that
Most maps aren't this cus they use game tilesheets and those have funny rearranging going on
a custom tilesheet laid out specifically for this and documented seems like itd be the best way to me too
Thanks to 1.6 u can just make whole new map as farm
No need to worry about keeping vanilla sheet
@winter relic tl;dr it is possible that asking sighted people for help to some extent is unavoidable because there just isn't documentation of this stuff right now (but if you let us know more about the accessibility tools you currently use we may be able to give slightly better advice?)
If you use c#, you can create a map entirely programmatically via the asset pipeline
Nobody has before, as far as I know, so you'd mostly be in uncharted territory, but it's definitely a thing you can do
Tiled isn't allowing me to add multiple Custom Properties: Actions, but I want two different warp points within the same room. Is this the best way to format the two options?
TouchAction MagicWarp 4 10 Town 57 64,
TouchAction MagicWarp 9 10 RahielLamp 45 6
Casey is probably the closest to having completely procedurally made maps...
I guess u basically just gotta construct all the xTile things by hand if you want this right
What are you trying to add those to? The Map properties or a single Tile property? I don't think you can add two of the same properties like that - you can set the warps using TileData on specific tiles on the Objects layer, for example - so each of your warps is on the right tile already
Hello! Thanks for the ideas.
I'm using the NVDA screen reader, with the Stardew Access mod to make the game accessible.
I'm definitely going to check TMXpy, since I'm way better in Python than in C#, but the latter might also be an option if I figure out how to do exactly the thing I want to do (by trials and errors, of course, and a lot of hours spent in VS haha).
Yep, some existing farms/maps similar to the described one would also be a good option, so throw them without hesitating. 😄
