#making-mods-general
1 messages ยท Page 204 of 1
Feature Creep is attacking me
, I want to flesh out the internals of the transit cave instead of just having it be a warp.
Ok so basically if I included this clause and added in my specific fields. And added a spacecore dependency in the manifest, it would work just like that?
I'm not familiar with SpaceCore features specifically, but in theory yep.
Central Station 1.0.0 is now released! 
Yayyyyyy!!!!!!
That sounds crazy
How'd you get Mod ID 8000?
Oh, are you the admin of the Stardew Valley mod category on Nexus?
Nope, I don't have any special access on Nexus. A mod author who left a while ago transferred their unused mod pages to me, and this is one of the IDs they had unused.
Crazy.
(You can see the history of any mod page on the 'logs' tab if you're curious, including changes before it was published.)
Pathos are you going to publish to showcase? 
oo
Does central station do anything without other mods? Like where can you travel to if you don't have other mods?
Done!
How do you publish to the mod showcase again?
You can travel to the Central Station (which has its own built-in content like shops), and to vanilla destinations like the desert and island if you unlocked them. It's mainly meant to be used with other mods though.
right click -> apps _. publish
Cool. At least it has a purpose till others add thier mods too it.
it already has aquarium support, yeah?
I submitted changes for Stardew Aquarium and Downtown Zuzu so far, but they haven't published the updates yet.
Well, Garden Village will be using it when I finally finish updating it.
(One little benefit of Central Station even without other mods: you can travel to Central Station and then to the desert, without needing to wait for Pam to slowly walk to the bus stop.)
I hope VMV uses it too. Less ticket boxes makes me happy.
Yep, I think the VMV author is already working on it.
Yes she plans to update today (europe timezone)
But schedules are very important not only for trains but sleep too ๐
(It will be an optional compat but should have some small bonuses like earlier train option on saturday)
Okay?
(Don't worry, Central Station's trains run on time.)
Could I ask a modding question here? I'm running into an issue
If you are having troubles making mods, you are in the right place. If you are having troubles using mods, please report in #1272025932932055121
Gotcha, it's a making mods question.
Basically I'm updating my mod, and I'm having a tileset issue when trying to load the map. It seems to not be using the default tileset in the Content folder. How do I make it do that?
Log found, uploaded to: https://smapi.io/log/caf12a1f6f044245871be7aab1bd95c5
How often does CP check flags when loading patches?
I was considering putting a bunch of conditional patches into one include file (rather than putting the when condition on each patch), but I don't want things to get missed because CP hasn't updated the flag
Whoops, wrong log. Lemme try again
!log (use the site directly this time)
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.
every token and when condition is checked according to the update rate of the patch it is on. by default, that is once at day start
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 15 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Ok, good to know that it is configurable. I'll go take a look at more documentation then
Thanks, Button
it is "configurable" as long as you choose one of three values: OnDayStart, OnLocationChange, or OnTimeChange (might be slightly misremembering the names)
you cannot make them update any differntly from those three update rates
without the use of the patch update console command or another mod to call it for you (such as BETAS)
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
I see it's trying to pull the tilesheet from my stardew valley stuff folder.
this bot command describes that error and how to fix it
this happens when you, when making the tmx, load the tilesheet from a different folder than the folder your .tmx is in
and is why its recommended to either put your .tmx inside your unpacked Maps folder when editing it or to copy the tilesheets you need into your mod folder alongside your tmx, before loading the tilesheet images
but it is fixable
What she said. This tripped me up a couple of times, too!
Button, do you just memorize all of the bot commands, or do you keep a spreadsheet?
๐
the common ones i remember as they come up a lot
otherwise, i just discord search for words related to a bot command i know exists to find a post from governor with the command name in it
Nice. I was thinking you had a photographic memory or something because you are always so on point with those
So I have tried opening one of my maps to change the source for the tileset. But it looks like it already is shortened to just the tileset name, not a directory.
(also, Greatscoot, are you following an old tutorial or are you updating an older mod, perhaps? I noticed CP says you're not using a 1.6 format)
I am updating a mod I made back in 2022. I've used the new 1.6 versions of the maps and made the same edits to them, along with a few other things.
are you 100% sure that the .tmx you have open there is the same one in your mods folder, and that Stardrop isn't doing something weird there with an older version of the mod overriding it or something?
im not sure how Stardrop handles its profiles or moving things around but i know in the past for some people it can lead to weird issues sometimes
like is it actually using that exact profile folder of mods
I believe it is, here's a video
does it still give the same error if you put Content Patcher and your mod into your Mods folder and run it via StardewModdingApi.exe directly? there shouldnt be another scenario that leads to the error in your log
I can try just running smapi instead of through stardrop
I'll try that
Ignore the lofi
would you mind sending your farm .tmx in here for me to take a look rq?
you have a second tilesheet in it also called Paths with a tilesheet climbing source
its on line 2059 in the .tmx, dont know where it might appear in Tiled
did you accidentally embed the tilesheet twice?
(there are similarly duplicated sources for the other tilesheets its complaining about too around the same line number)
Mmaybe? I might've been trying to use a different tilesheet... I forget
im not sure what the consequences are if any of having duplicated tilesheets like that
ahh
it might just be fine if you fix all the duplicates to not tilesheet climb too, idk
Sooo... should I just delete this?
i imagine deleting that would break your tmx as some stuff does use the duplicate instead of the first one
Or just delete via tiled? I assume it's the ones with the empty tilesheet things
so for now id just try fixing just the source= part
if you want you can try deleting them via tiled and then fixing any tile errors that pop up
by replacing them with tiles from the real tilesheet
whatever's easiest 
would depend on how broken your tmx was after removing the tilesheets, i suppose
So just replace the directory in source with the tileset name? like source=path
?
it might not be broken much or at all and it might just be useless data in the .tmx
yeah just fix it like you would all the other ones so source="paths"
likewise for the duplicate spring_outdoorsTileSheet a little below it
and whichever other tilesheet it complains about in the log
you will have to repeat this for the other maps it complains about too
So I'm gonna assume if I ctrl-f this directory I'm gonna find the other problem tileset entries
almost certainly
I'll try replacing the sources and see how that goes
Thanks for help so far ๐
One is named untitled tile sheet. That's... normal, right?
ahh but it's calling to the spring_outdoorsTileSheet
when it comes to vanilla maps im, not sure. i dont remember if they need to be in the same order or not. another map modder would know better than me how to answer that but i dont really do much map stuff
Gotcha, guess I'll find out
the name doesnt matter in terms of the actual source, but im not sure if the game expects for example "untitled tile sheet" to be loaded before "paths" is for an existing map that uses them

I think I just need to fix the Towns map now ๐ค
Is there a vanilla flag or something that I can check to see if the Dark Shrine of Selfishness has been used to erase an NPC's memory?
Alright, I've fixed those errors. Maps seem to be loading properly now
Except for FarmCave
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 15 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
there's a player stat called exMemoriesWiped which you can check with the GSQ PLAYER_STAT
but that won't tell you whether a particular NPC has been wiped, only how many times it's been done in general
When we want to do a negative token within GSQ, do we just do it like this? !{{Trader|contains=Scholar}}
At first, the map loaded when I entered the farm cave, but two of the warps were incorrect. So I exited the game and edited the Warps. After that, I got this error and it no longer loads.
does Trader|contains=Scholar resolve to TRUE
In this case, yes.
that should work fine
case shouldnt matter
if you're worried about case regardless CP has tokens for converting to all caps and all lowers
I'm confused... is it supposed to be trying to run something in D:? I don't know how to read this error
Alright then, thanks!
The important bits are Unable to load map ... [CP] Scoots Map Tweaks 2\FarmCave.tmx ... Invalid tile gid: 139. That means your FarmCave.tmx map references tile index 139 in one of its tilesheets, but that tile index doesn't exist in the version of the tilesheet that was loaded by the game.
Ah, the return of tile gid
I think something weird happened with tilecount= cause it was set to 0
I ended up finding using the copy of the file I had in my Content(unpacked) folder instead. Seems to have worked, but one of the warps still isn't working going to Island_N
also known as "ya didn't edit the map with all the tilesheets" as I've learned
what happens when you attempt to go to Island_N?
Blood in the log, or just nothing?
[18:16:20 ERROR game] Warp to Island_N failed: location wasn't found or couldn't be loaded.
๐ i learned the hard way
fairly certain it's IslandNorth then
Doh
I know Island West is IslandWest
IslandSouth is where the resort is right?
ye
So the naming scheme is probably consistent
it is
I cracked open IslandSouth
36 11 IslandEast 0 45 36 12 IslandEast 0 46 36 13 IslandEast 0 47 -1 11 IslandWest 105 41 -1 10 IslandWest 105 41 -1 12 IslandWest 105 41 -1 13 IslandWest 105 41 17 -1 IslandNorth 35 89 18 -1 IslandNorth 36 89 19 -1 IslandNorth 37 89 27 -1 IslandNorth 43 89 28 -1 IslandNorth 43 89 43 28 IslandSouthEast 0 29 43 29 IslandSouthEast 0 29 43 30 IslandSouthEast 0 29
so the place to port is IslandNorth
Thank you! Just knowing if it is > 0 is probably enough for this
At least I dont think there is any way this map can tempt me with scope...%$&^ I just thought of another thing I could do....
I just did some entirely unplanned pixel art for a map. So yeah, I feel you
I kinda maybe just added 4 more sub-maps, for a total of 10 maps now.
Sounds like you're cooking to me
It wooooorks ๐
I've been daydreaming about cave maps
Hey, in this very simple event script, why is the message not showing up after the viewport is set to show the player?
"{{ModId}}_Event_test": "{{ModId}}_PoolAmbient/-1000 -1000/farmer 5 8 0/viewport 5 4 clamp true/message \"MY MESSAGE HERE.\"/emote farmer 40/end",
I get the message showing up over a black screen
So FYI, we got visual confirmation that it is being destroyed by an NPC. I am both embarrassed and amused to say that the cause is Jorts.
Try putting a pause inbetween the viewport and the message?
Cats, am I right... They destroy everything
The pause was enough, thanks! But is there any way to end the event without blacking out the screen?
"My mod is being sabotaged by my other mod" is not a bug I expected to have, but it is very funny
i don't think you can end without a fade out of some kind
Foo. Alright, is there any way to make a message pop up when a player enters a map without going into an event?
trigger action maybe? 
can you tell us what exactly you are trying to do?
(Apparently Google Translate uses generative AI now, and will sometimes just make up translations that aren't part of the text? I just use it to double-check text from translators, but I guess beware.)
Player enters bathhouse entry map. A message pops up. Player continues to Bathhouse mens locker room (which is unlocked because I already modded the bathhouse entry map)
That's it
I've heard DeepL has better translating fwiw
I was using a "lead in event" to play the message
pathos do u want a chinese translation
Soo going around my farm, I notice there's a lot of these invisible walls or something. What's happening?
ill do it by hand
And I checked, there's nothing in building layer there
Sure! Someone translated it into Chinese already, but there's one part they missed (and corrections are always welcome). I'll commit both new translations once I finish reviewing this one, and I can send you a link if you're interested.
this is faster than fansubs back in the day 
(Also it's fun to see how translators deal with some of the puns/idioms in the Central Station dialogues.)
There is likely an invisible tile on the building layer, or you added passable to a back layer tile (Which turns the back layer impassible, as it actually is a reverser of the normal rule, not makes everything passible as the name implies)
hi guys, im new here, i just install the smapi for steam, but when i open the stardew valley folder, i can't find the "stardewvalleymodding.exe". ๐ญ
[game] Failed loading texture cryomancer.walkingmushrooms for item (H)cryomancer.walkingmushrooms_MushroomizedHat: asset doesn't exist.
is the (H) stuff messing up my files getting loaded or something? haven't done hats before
@lucid iron I just pushed the new translations. Here's the translation status table with all the i18n file links if you're interested!
a way to check for invisible tiles on the building layer is hover over that tile on the building layer, and in the bottom left it will say something like "31, 54 [empty]" if its empty or if it has a tile in it, it will say "31, 54 [421]" (The tile ID instead of empty.)
no, the error is likely correct, because you wrote Mushromized instead of Mushroomized, and i imagine your filename doesnt have the same typo
the typo exists in both the hat entry and the Load at the very top of your file
lol I just scrubbed the building layer with my eraser and i think it worked
FWIW: looks like I might be able to add a message to the Buildings layer of the map file. Going to try that now
(@lucid iron They just sent corrected translations though; I'll push the updated version in a couple of minutes.)
this one is SMAPI
it looks solid yes
oh ๐ญ lol im really new at this
if i got anything i'll just send PR once the initial tl settles down
do i need an item data entry for a hat too or nah?
hats go on data/hats right
think so
are you trying to do anything weird with it
i don't think you need or want a Data/Objects entry for hat
nah
it's still not seeing the texture, somehow
[game] Failed loading texture cryomancer.walkingmushrooms for item (H)cryomancer.walkingmushrooms_MushroomizedHat: asset doesn't exist.
sure looks like i got the typos eliminated
maybe it needs that other \ thing
ur texture is wrong
yeah that's the problem, needed the \ stuff in the hat data instead of /
the double slash
yep / is taken

i suppose if its ur custom texture u can load it to like
{{ModId}}-hat
to dodge this problem
"{{ModId}}_MushroomizedHat/{{i18n:MushroomizedHat.Description}}/true/false//{{i18n:MushroomizedHat.Name}}/0/{{ModId}}\assets\MushroomizedHat"
works
hmm can a hat get an offset to be higher up?
cryo, hear me out.
can we find a way to have the mushroom hat fuck up your directional controls every 20 seconds or whatever it is
if anyone knows how i'd love to know
BETAS can do it
button to the rescue
ItemEquipped -> Add mail flag -> DelayedAction for 20s -> If mail flag, add weird control buff (im assuming thats a thing already?)
ItemUnequipped -> Remove mail flag
why do you assume weird control buff to be a thing 
If mail flag, add weird control buff and also set another delayedaction again*
i dont remember this
i was gonna ask why betas can fuck up your controls though
ok then BETAS harmony patch the button pressed events
it was in earthbound yea
"it" is how long the delay is between swapping around your d-pad directions
i'd also like to get an effect to make everything pink like this https://www.youtube.com/watch?v=d3TEf_-d59I
Because a lot of MOTHER 3's Chapter 7 can be completed out of order, the player can reach Tanetane Island without a full party. This is a showcase of the differences that occur when not everyone is together to suffer through the hallucinations!
โ Dark Aspects of MOTHER/EarthBound series playlist: tinyurl.com/k2c6pp58
โ Subscribe: https://www.y...
but i don't think that's easily done either
oh well, what if u just invalidate spring_outdoors with a pink version
a custom C# debuff to scramble controls probably isnt difficult
that's an interesting idea
yeah, i would just make the debuff cycle between remappings (like it does in mother 2) on its own
"When a party member is mushroomized, the directions the d-pad controls will rotate 90 degrees every few seconds"
itd actually be really easy with the ButtonPressed events and suppressing the original if the debuff is active
would anyone like...want to wear a hat that does that tho lol
no but id want to give it to my partner without telling them what the hat does
haha
well ichor if that's within your ability to make happen i'm down
(i also dont know anything about earthbound, is also why i assumed "it" was an existing debuff)
yeah it's a status effect mushroom enemies can put on you
messes up controls until you find someone to buy the mushroom off your head
Reversing controls is maybe a little friendlier than scrambling them entirely, and there's lots of precedent for it.
(I never played the Earthbound games but the Mana series did that)
it's not a full scramble. if memory serves, it picks randomly between reversed, 90 degrees clockwise, and 90 degrees anti (and normal)
yeah wiki says it's just 90 degree changes
it's been a bit since i played mother 2
i'm gonna take a break to do some dishes but PM me if you wanna talk about it
cool
in fact i'll send you my current files
Just reading the words Mother 2, I can hear all the sound effects in my head
I love that there's no music in the game on rainy days. Listening to just the rain is so soothing. Especially when I'm actually alt-tabbed out of the game doing dev work lol
reminds me of https://youtu.be/0nOEy00XoyI
I would probably get extremely confused if I listened to that because I would forget about it and then try and figure out where the bwomp noise was coming from lol
haha yeah
hat that adds touch fuzzy, get dizzy when
Hello! Might be a dumb question, but is there some way to reference what's needed here so VS stops warning me? It builds fine so idk if it's just normal
do u have <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.2" />
in csproj
yep
seems like some issue with the IDE language server then
im not really sure what do since i dont use VS but i guess double check if ur gamepath is right?
what does it show if you hover your mouse over one of the red squiggles? it should show what the error is
adding gamepath fixed it, I thought it already had it as when building it automatically found it, thanks for the help!
Hi, I was wondering if a custom NPC can be involved in two custom areas. I'm creating one for Cape Stardew and Stardew Peaks.
Also, has anyone used Miss Coriel's NPC Creator 3?
thereโs nothing really stopping it, but I think itโs good courtesy to ask the authors of those mods for permission, just fyi
and afaik the npc creator hasnโt been updated for 1.6
I'm on the Cape Stardew server and they're okay with it. I'll have to check on Stardew Peaks. Is there an updated NPC creator tool?
Or just the tutorial?
not that Iโm aware of. The tutorials are the best way
!npc There's fireredlily's NPC creator spreadsheet and Avi's template.
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
You can also use Miss Coriel's NPC Creator tool, I think that still works.
Unless she recently updated it, Miss Coriel's NPC creator is NOT updated for 1.6 yet
It's advised to use the new 1.6 Data/Characters data model when possible because of the new features.
Sometimes I wish there was a STF converter.
A lot of converter tools have been made by helpful members of the community to update outdated mods or convert existing mods to modern or alternative frameworks, and for 1.6. Here's a list:
- Convert XNB mods to Content Patcher
- Convert pants/skirt spritesheets to Fashion Sense
- Convert Custom Furniture mods to DGA/1.6 Content Patcher
- Convert visual Content Patcher mods to Alternative Textures
- Convert BFAV mods to work with 1.6 Content Patcher
- Convert TMXLoader mods to 1.6 Content Patcher
- Convert Custom Music mods to 1.6 Content Patcher
- Convert Shop Tile Framework mods to 1.6 Content Patcher
- Convert hair spritesheets and JSON Assets shirts & hats to Fashion Sense
- Convert regular Content Patcher to i18n format
- Convert JSON Assets to Content Patcher
- Convert fish data from field names to slash delimited values
- Convert markdown text to Nexus' bbcode
- Convert Custom Ore Nodes and Custom Resource Clumps mods to Item Extensions Framework
- Convert Content Patcher Animations to SpaceCore
- Convert More than Necessary to Content Patcher
- Convert SAAT to Content Patcher
That !converters command is a bit hard to read, since there's so many options. Any thoughts on this potential redesign?
Converter tools from the community help you update mods to newer formats or frameworks:
- Convert to Content Patcher from Custom Furniture, Better Farm Animal Variety (BFAV), Custom Music, JSON Assets, More than Necessary (MTN), SAAT, Shop Tile Framework (STF), TMXLoader, or XNB.
- Convert to other frameworks:
- Other tools:
Tentatively changed it, but we can always change it back if people don't like the new one.
I cannot find this shadow in Tiled on the map at all. It's not on any of the layers! What is happening? 
Does anyone know how to use a portrait in an event when there isn't actually an NPC attached to it?
Sorry about your shadow issue I have no clue what's going on there
I even went through and used the eraser on every layer on these tiles to be sure. Besides Back, of course.
Building shadows are hardcoded
No, that's the cliff shadows from spring_outdoorsTileSheet
They are placed on the Back layer
Wait that isn't a building shadow
i don't really know what you're doing here though, so I can't help any further 
But the shadow is not showing in Tiled D:
I'm trying to get rid of this shadow that's a leftover from the cliff in the FourCorner farm.
I also can't use the hoe there.
they're right there in the vanilla map (tiled preview)
i don't know why it's not in yours 
Funnily enough, I'm updating my mod, and I edited the vanilla map to get this. I had this problem on the map from 1.5.6 as well 
I feel like I'm going crazy
Do you have the latest unpacked game files?
it's good practice to re-unpack the game with every version update
I do but I was making my edits using that. I'll have to rerun the tool again
I'm coming back from not playing since 2022, so I'm a little out of it. And this is the only modding I've ever done ๐
huh... this "ShadowRemove" effect mentioned wouldn't have anything to do with it, right?
no
Is there anyone who's good with events around 
technical or... idk, story-telling wise? :p
Technical - I'm trying to figure out how to use a portrait for a character that isn't actually an NPC... or a character really, in the cutscene
are you sure this is the map you load?
can you do patch export maps/Farm_FourCorners and check that?
and with patch summary full check that no other mod patches it?
(map -> maps, forgot an s)
Well, I just tried using the unpacked vanilla fourcorners map, and removed the shadows there too. Loaded it by replacing my modded fourcorners map, and it's ALSO still there
Behold, video proof I am not crazy
need to load it into Portraits and then use the changePortrait command I guess?
or maybe it works if you just add it as temporaryCharacterand have corresponding images in Characters and Portraits
Maybe someone else should try doing it on theirs. Maybe it's actually a glitch or something
But I swear, this ALSO happened on my old 1.5.6 map too. I remember 
Oh no way
you need to edit the vanilla greenhouse map replacement texture
It's the greenhouse shadow 
idk its proper name xD
But my greenhouse is... not there. So why is this STUCK here?
Did I mod that too? Can you not move the greenhouse? I don't remember
vanilla 1.5 (iirc) allowed moving the greenhouse. so vanilla has map patch that is applied to the place where the greenhouse stood if you move it
before, there wasnt a "ground" below the greenhouse in the map because you couldnt move it
thats the one you want to edit
it's def a non-obvious mistake tbf ๐
if youre not a mod creator this is better in #1272025932932055121
i forgot this exists tbh. this is so stupid 
i will be making a log of my experince making a new location mod (using central station)
Log 1: Impending doom. Knowing I will have to make all this stuff and I am going in the deep end.
for dev logs, it might be better to make your own thread so they don't get lost and nobody's messages get buried (you can do that as a cheeto or I can make one for you if you want!)
Mod author, the orange role we have.
Ohhh
sorry, should have clarified that haha
all good lol
If you take a look at the threads in this channel or #making-mods-art you'll see that a bunch of us have individual threads for our own stuff. It lets us be more self-focused with what we post without annoying or overwhelming the main channels or having our messages get lost if we want to refer back to them.
i use mine for documenting my bad ideas in real time as I discover how bad they are
Iro and Button have both got one in here and I've got one in art. I don't think there's any rule behind which channel to make a personal thread in, we seem to be spread across the channels pretty randomly.
I use mine as a list of bad ideas that pop into my head 
These days I am mostly using mine to set Uber reminders for myself haha
I did mine here because I don't use making mods art haha, so just pick whichever you prefer!
But another thing that threads are useful for is letting you brainstorm extensively with other people without totally taking over a channel. One time I had like 4 or 5 people helping me think through something for Hiria across several hours and that would've been really extreme to do in a channel but worked really well in my thread.
Is there an event creator tool?
not that Iโm aware of, but even if there was Iโd recommend against using it. Most people here have the ability to figure out the event syntax if they look at the tutorials and ask questions for help, but if you use a tool you wonโt know how to fix things if they break and we will have trouble helping you (also you wonโt learn how to do it for next time, so youโll have to use it every single time)
We do have some good event guides on the modding wiki though.
I know how to do events, I just don't want to sit here manually doing them. Manual edits, over and over and over again.
not sure a maker would help with that part tbh since youโd still be choosing what it does itself so youโll still have to test, go back, edit, test again etc
I can't picture how a tool would take away much of that work since all it would be able to write for you is the actual commands like speak or move and that's pretty much the smallest part of writing an event anyway.
there's a bunch of niche cases in event making that you just inherently understand when you're writing them yourself, like the whole showFrame and a move command making the npc stand in their walking animation, that's inherent in understanding that faceDirection forces the standard stand + breathing
and tbh if you write enough events you'll eventually get the hang of the pacing, how things feel in terms of pauses, how fast npcs move, and your debugging drops down from the tens to just like, a handful 
Already switched my buslocations compat across to central station ๐ i am using minecarts for an east scarp bus link so ive also added Central Station to that. Hope its okay.
in the meantime i wish nexus servers would be as reliable as central stations trains
because my upload is taking forever and a bit
but yes lemur, i believe compat is welcome
I added it as a minecart entry on the ESBusNetwork
Which functions like a minecart but looks like a bus
Prob gonna add some cameos too. Its fun ๐
Can now ditch bus locations
then is is a compat with CS?
Esr will be, yeh
ah ok! i misunderstood what you meant
No worries, im rambling! (EsBusNetwork uses minecarts which Central Station doesn't touch so for consistency sake i had to add it manually). I also added the destinations to Central Station (Scarp Crossing and Zuzu suburb).
I don't know how to get the mod build package to recognise that my bundled content pack is meant to have a version number of 1.0.1 because I'm updating the mod (and have already changed the C# manifest to 1.0.1). Please someone explain what I am doing wrong?
weird error ๐ค
does one manifest depend on the other and are the versions adjusted there too?
tho thats not what the error says anyway
The versions are the same in both manifests and it happens both with and without the dependency. It's checking the CP manifest because of this line in the csproj <ContentPacks Include="[CP] ApollosTrickOrTreat" Version="$(Version)" /> but I don't know how to make it understand that $(Version) should be 1.0.1 now instead of 1.0.0.
I haven't tried cleaning, I don't know what that is. Do I need to back anything up before I do that?
That should be fine so I will try that, thanks
No effect on the error, unfortunately.
I can get around it by manually changing it to Version="1.0.1" but I can't tell from the docs if that's what I'm supposed to be doing anyway or if it's meant to work keeping it as $(Version) (docs in question: https://github.com/Pathoschild/SMAPI/blob/develop/docs/technical/mod-package.md#bundle-content-packs)
im still inexperienced in this field so i can't help that much on this 
That's okay, thank you for trying!
not too sure about detail of $(Version)
but usually in my project i used to have this
<PropertyGroup>
<Version>1.0.0</Version>
</PropertyGroup>
in my csproj for version control
Well, adding that worked, so thank you!
Hey, is it possible to change the fruit position on a custom fruit tree?
no(t without C#)
I remember someone was working on a framework mod for it
I dont think it's released yet
Ok thanks, will take a look into C#
for those who remember game/C# code, at what point does the FormerCharacterNames in Data/Characters run?
Only on swap from 1.5.6? Any time on save load?
it's checked each time any save loads, from the look of things
SaveGame.Load -> getLoadEnumerator -> loadDataToLocations-> MigrateLostVillagers -> GetFormerNpcNames
Hmmmm
Does anyone know where the dialogue for the level 100 Skull Caverns event is stored? And also what the event ID would be
Alright. I'll look around at the code. The short version is I'm troubleshooting why a couple of my NPCs aren't properly migrating. They didn't for a while, then Pathos fixed it because their prior home didn't exist and he managed to get it working, but for whatever reason even though Data/Characters is exporting properly and my save only has their OG counterparts in the save file (I checked for the internal name of the new versions in my save and they DNE in the file) I'm still getting them as unmet instead of 10 hearts
And I really, really, really don't want to have to cheat them there
It's in Data/ExtraDialogue. The key is SkullCavern_100_event_honorable.
(And SkullCavern_100_event.)
O: thank you!
facepalm found the issue, but I'm not sure why it happened and it makes me a little sad
Gimme a moment to retest something to make sure it was likely an error on my end somehow rather than a bug
Huh. Okay. I somehow managed to do two mistakes, neither of which I saw prior. In short:
- I managed to have two copies of characters in the save file and saved
- My original search for the internal IDs in the save file didn't come up with anything when I did my usual search, but doing a "Find in files" revealed that the new version of the NPC did, in fact, exist in my save
Good news is I've only played one day since the previous migration, so I only lose one day! The bad news is the day I thought I broke the mod curse I actually didn't and all that is now gone again ๐ฅน
how do I make mods?
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itโs easier to start with making content packs, since you don't need to learn programming.
thanks
does anyone have an example of the new food buffs added in 1.6.9 being used? I used the names on the wiki and opened the code and confirmed them in the BuffEffects class and they seem to match, but the buffs never seem to apply when eating the food
Which buffs specifically are you referencing? I don't know which buffs were added in 1.6.9.
Object buffs can now also set these buff attributes: CombatLevel, AttackMultiplier, CriticalChanceMultiplier, CriticalPowerMultiplier, Immunity, KnockbackMultiplier, WeaponPrecisionMultiplier, and WeaponSpeedMultiplier.
I've tried CriticalChanceMultiplier, WeaponPrecisionMultiplier and WeaponSpeedMultiplier, and so far those didn't seem to have an impact, I may add the rest just to see
apologies for the diversion just wanted to share this
I believe most of those last ones lack a default display, Weapon Percision is the only one that isnt used
Well, it isn't used by default
Which wiki page are you referencing? I really don't think those buff effects are new to 1.6.9
whats new is that you can add them via object buffs
(previously they were weapon buffs)
I wonder if I have to set those ones by Id, instead of using the CustomAttributes section
ooh, the format may have changed, there is a special method for reading the old format:
/// <summary>Get the main effects in the pre-1.6 <c>Data/ObjectInformation</c> format.</summary>
/// <remarks>This is a specialized method and shouldn't be used by most code.</remarks>
public string[] ToLegacyAttributeFormat()
oh, nm
Just checked; Editing them as food buffs def work
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"921": {
"Name": "Squid Ink Ravioli",
///The rest cut for length
"Buffs": [
{
"Id": "Food",
"BuffId": null,
"IconTexture": null,
"IconSpriteIndex": 0,
"Duration": 1000,
"IsDebuff": false,
"GlowColor": null,
"CustomAttributes":
"WeaponSpeedMultiplier": 100,
"CriticalChanceMultiplier": 600,
},
///The rest cut for length
},```
This made me crit just about always and swing super fast using a galaxy hammer after eating squid ink ravioli, for example.
did it show on the food as a listed attribute and give you an icon?
if not, maybe it's working for me as well
No most of the later effects lack icons or effect descriptions.
ah ha, thats it then, I was expecting to see them listed on the item like attack + and defense + etc
You might be able to get that effect by making a new Buff with those effects and referencing it via ID, or atleast provide a tooltip to say what the real effects are.
yeah, I'll give that a shot
Also I forgot to update the buffs section in the food wiki when I updated the buff's page itself v-v
Thats why they aren't synced, which I will now fixxx
oh I hadn't even looked at the Buffs page
In what conditions can previously seen or expired conversation topics for NPCs repeat, if re-added via trigger actions and such? It seems wildly inconsistent to me
Should be always; the game doesn't check (or track) whether a conversation topic was previously active.
(Central Station is trending on Nexus!
)
fyi 8AwA8 the description and name show, but the listed effects are still just +3 Attack
but weapon speed for sure has increased, if I use a slow weapon it's quite obvious
does anyone know why I cannot sell my crop? https://smapi.io/json/content-patcher/5bd61328b7474080a99018f15e4438f9
i can sell the seeds tho ๐คทโโ
try adding "Type": "Basic", and seeing if that fixes it?
Ok i'll try it
iirc type is required
Can confirm
The conversation topic itself repeats
Each individual npc's dialogue per conversion topic does not
Unless you unset the <npc name>_<conversation topic> mail flag
Precision is useless
There are no monsters in vanilla with a dodge chance
well SVE and RSV does add monsters with dodge
SVE specifically gives the infinity weapons 100 precision, making them basically mandatory when fighting the 50% evading freaks of nature in the badlands
but yeah no effect in vanilla
I can sell the crop but i can only sell them in stacks of two or less ๐ญ https://smapi.io/json/content-patcher/6283fe14208948769f2ff335ecd23345
did you make sure to spawn new items
existing items wont have their Type updated
trash all stacks and try again
I believe NPCs track whether theyโve said the line before or not, but thereโs no limits about how many times CTs can repeat
Hello can anyone please help me on figuring out my mapping? https://smapi.io/log/80c126b759f24cc286afd6616367e5e6 Ignore the event.son and the schedule blank
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 14 C# mods and 12 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Stardew Aquarium 2.2.0 updated to using the new Central Station mod! (thanks Pathos)
https://www.nexusmods.com/stardewvalley/mods/6372
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
ooh okay thank you
Hi,
I was testing schedules for my NPC Eleanor mod (full release coming soon!) and found out that my code is not working properly. For the schedule that doesn't work, I have this when condition:
"On/off": "on",
"HasSeenEvent |contains=StrojvedouciDenis.Eleanor_Intro": false
}```
The first one should be OK, as I have that config set to on. But for some reason, I suspect that there is a problem with the second one. As I didn't trigger that event, I expect that `StrojvedouciDenis.Eleanor_Intro` (the name of the event) is set to false --> my conditions are set properly.
However, the schedule won't work/load properly. I expect my NPC to spawn and thus be on tile `23 6` on the map `Custom_WizardBasement` (map added by SVE), but instead, it is on its normal spawn location, tile `10 17` on the map `WizardHouse`.
Could someone help me?
schedules.json: https://smapi.io/json/content-patcher/c7eb40482b7c4633880a4bcf3543c0e9#L24
log file: https://smapi.io/log/3eb7fab692884a059e164c429829f21b
full mod code: https://github.com/DenisSilent/Eleanor/tree/main
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 64 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
adding to my NPC's likes
Oh, well good to know, I'll add the others for the attack potion then
Have you slept a day or two after loading the character into the game and setting the config? New schedules can take a bit to kick in
Actually, no! I'll try it in a moment and will report back!
So, that sadly didn't help...
Does that schedule work when there aren't any when conditions?
Checking out...
As a general rule
You should either use all 0 schedules
Or no zero schedules
Because the code that handles zero schedules in the game is fuckinf bonkers
OK, thanks for pointing that one, but I already used 0 scheduling (https://smapi.io/json/content-patcher/c7eb40482b7c4633880a4bcf3543c0e9#L83) and that one works.
It doesn't, so something is wrong with the schedule code itself...
Maybe it needs a tile that the NPC would move to? (like that setting only the spawning point by this method is broken/not enough)
No, you use them in some blocks but not others
Err... I'm sorry, but I'm not 100% sure what do you mean by that.
Some blocks have entries that start with like 'a610', and some have entries that start with 0; you should make this consistent for all the schedule blocks, even the ones not currently being used
OK, but may I ask why? Due to things atravita said, the game code?
Anyway, this will make my coding interesting...
BTW, I don't need nor want to spawn my NPC like that, I only wanted to check it this way (using 0) if it is using ONLY this schedule and not the normal one.
Yeah, that's mostly to keep the code from getting confused when switching between schedules
For the schedule you're currently testing (on/off set to 'on' and seen intro event set to false), can you add another step to it so the character has somewhere to go? To check if it's just the spawning that's the issue or the entire entry
One more thing to try: use 'spring' instead of 'default'
Not sure, but used this below (both with and without 'when') and it didn't work:
"LogName": "Eleanor - schedule before intro event",
"Action": "EditData",
"Target": "Characters/schedules/StrojvedouciDenis.Eleanor",
"Entries": {
"default": "a610 WizardHouse 5 15 2/a1630 Custom_WizardBasement 13 5 2/a2230 Custom_WizardBasement 23 6 2"
},
},```
Good idea!
That is the fix!
Looks like the game doesn't quite like default schedule key...
Thanks! 
Why are you trying to make them arrive at 6:10AM? Is that right next to their spawn point?
a schedules mean they arrive at that time, not that they leave at that time, so I imagine your NPC is having problems getting to that spot in ten minutes unless they're on top of it.
NPCs don't like moving at 600 either, which they'd need to do to get anywhere a610
Is that potentially why they clone, atra? Because I had no problems with it until I edited Kataryna's schedule to add one 0 schedule in amongst a bunch of non-zeroes and... she cloned.
Is there someway I can censor the password with Generic Mod Config Menu or do I need to do custom code?
might try the formatAllowedValue option, though im not sure if that'll still work if allowedValues is null
assuming you are in C#
if you're not in C# there's nothing you can do
looks like that's discarded in the API without allowed values, so yeah, that'd need a C# custom field
if (allowedValues?.Any() == true)
this.AddChoiceOption(mod, name, tooltip, getValue, setValue, allowedValues, formatAllowedValue, fieldId);
else
this.AddSimpleOption(mod, name, tooltip, getValue, setValue, fieldId);```
Even with code, I don't think it's possible in GMCM unless you're willing to Harmony-patch it.
I'd assume AddComplexOption could do it, if you recreate the text field features but only draw * characters
(never actually touched that myself, though, and none of this applies if it's for a CP pack)
True, though you'd have to reimplement the entire event loop, handle virtual keyboards, etc. Probably more work than a patch.
Keyboard input is one of the significantly messier parts of Stardew's already-messy input logic.
interesting, buff duration on objects is in in-game minutes while buff duration on the Buffs themselves are in milliseconds ๐
thanks for all the answers! I ended up doing the least headbreaking solution and just show it as * when opened, even if it doesnt censor while youre writing, it should suffice
Errr, you know if they resave the config it's going to overwrite the password, right?
It's expected in a UI that a password showing up as asterisks will still be preserved if you OK/Save out of the UI, in this case it will replace the actual saved password with asterisks.
My custom NPC is saying '...' when gifting her certain things (eg. an apple) but has the other likes/dislikes etc working normally. Any idea why this is happening?
!json send relevant json links?
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.
You might actually be able to work around that issue by by checking if value is just asterisks in setValue, and if so, ignoring the save entirely and keeping the old password.
(That being said, quite frankly I feel that this is all a little silly considering that the config.json is saved in clear text)
You mentioned apple, but what else does it happen with
I'm pretty sure it's things that aren't included in her gift tastes as an item id. A friend playing with my mod told me about it but theyre currently asleep so can't ask
oh, that makes sense
Anything not in those fields as an item id will just go according to universal tastes, ๐ค or they should, in theory
How is the egg in incubator handled and can the Sprite be changed? For an Ostrich incubator with different egg.
That's what I thought too, very strange. Don't know how to fix it lol
Fixed that, thanks for noticing!
I believe it's just an "is working" texture change, let me confirm
the incubators are just machines
i don't think you can add a second incubator though 
unless ostrich incubator is nicer than the regular incubator
you probably can, but the wiki and release notes are pretty specific that animal houses shouldn't have multiple
no i mean, the effects of "incubator" is guarded behind some checks for their specific Id
oh, I think 1.6 fixes that
"IsIncubator" is now a flag on the machine
I have a custom incubator in my cave building
I'll try and think of something, nothing is coming to mind right now... ๐ค
thanks, I appreciate it!
are you trying to modify the vanilla incubator in the coop Lemurkat or a custom one?
with a custom one I think you could do it with multiple outputitem rules and different "IncrementMachineParentSheetIndex" values (with conditions to pick the correct rule based on the input)
but wth the vanilla one I don't know that would work
you might be able to handle it with a conditional working effect though
actually no, same problem, you can replace the frame with that, but not the base sprite
How can I design a hill? I am having quite a bit of trouble
making-mods-art might be a better room, but I had the same issue and ended up making all my "hills" flat so I could use vanilla assets ๐
What do you mean by "flat"?
I just want when the egg is in the ostrich incubator for it to be yellow
yeah, it's just an alternate texture on TileSheets/Craftables for the version with the egg, but interestingly the Ostrich Incubator doesn't use "ShowNextIndexWhileWorking" so I'm not sure how it handles moving to the next index
ah, I bet you could add a workingeffect and use a TemporarySprite record that was conditional
for your egg input
let me try really quick, one sec
i wll just do it as a bus instead of a train
incubators are a bit weird because their inputs are dictated by the building, n ot the machine
I think either way you'd need to extend the craftables tilesheet to achieve the effect you want
or make the ostrich incubator use your own tilesheet (and break compat with retextures)
i vote for make second big craftable
it can be crafted back and forth from ostrich incubator it's fine
so far it doesn't seem to respect an input condition, but I may have messed something up
to answer the original question (since it doesnt seem to have been answered from backreading) the sprite index moving is handled by animal data's IncubatorParentSheetOffset field
What tilesheet is the crops in? Like when you plant a crop there has to be a tilesheet for them.
TileSheet/crops
Thank you!
It all sounds very complicated. Maybe ill just leave it as is.
@devout otter hey, since i know you've been using BETAS DialogueBox stuff recently, if its not too much trouble, could I ask you to give this, er, beta version of BETAS a test to make sure that what you've done still works when you get the chance? I had to fix a bug with DialogueBox which involved changing some things in the parameters and logic of the command that should hopefully not be a breaking change and not require any action on your part, but if it does break things for you it would be good to know so i can see about making it perfectly backwards compatible, as i dont wanna break any of your stuff like right after i helped get it working lol
i got this log for machine control panel
https://smapi.io/log/b69d7a8b682246809a46d4b2680a3d93
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 33 C# mods and 35 content packs.
it doesn't look like my fault (probably) and instead their issue is that the item query ALL_ITEMS in general doesn't work for them
any guess for what could cause this?
it's a very strange error, stranger that is happening specifically with furniture it looks like?
maybe something to do with Calcifer? that does stuff with furniture right?
No, that means two things didn't deterministically sort for some reason
yeah but only for furniture?
Yeah no idea
that's why my mind went to Calcifer
yea i dunno, i went back and asked for harmony summary
(Sorry. This puffle is tired.)
originally i thought its the Magical Witchy Kitchen mod being migrated wrong
Otherwise I would be more helpful
It's not very easy to give different value to comparer
im not even sure how I would if I wanted to, short of literally overriding the comparison operator on a class
even then though I imagine it should be sorting strings anyway
say how do i have a sub menu in a menu for vanilla
crie
no...
ugh, there's a way that I don't recall, it's like childmenu or something
i just want to page me item grab menu 
I think crie is good second step
the only reason im not using stardewui is cus this menu is like
just simple enough that vanilla should work
this seem sketch to me
well. is it working
it's a strange sort but I don't see how it could be non deterministic
so, determinism isn't exactly it
I'm looking for a location where <left, right> would give 1 and <right, left> would also give 1
a bool called numโฆ
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 20 C# mods and 3 content packs.
(I just want the error explained to me, not solved please)
something would have to both Start and Not Start With "Floor Divider" for it to possibly return 1 there, I think
hm. so this is. unexpected? Is it because i left their gender as "undefined" in the character data?
decompiler jank
yea its gendered
num typically means "no info for variable name"
there was some stuff about ungendering this
i know the game defaults to female for things so i was just surprised to see it as boyfriend
I made a transpiler for avi that allows you to set your own per-character overrides for this, is this something people would be interested in having as its own mod?
empty/jank TileData somewhere in the map, I think
ohhh i added all those tile data's for later so i could easily just throw in the action, ty tho!
youโd literally just need to set an i18n key for your npc with whatever that npcโs override is
yeah that'd do it lol
i think that would be pretty handy, is it something that allows custom titles? like more than just boyfriend/girlfriend
basically, the game has labels for five relationship statuses - single, partner (boyfriend/girlfriend), engaged, spouse (wife/husband), and ex-spouse (ex-wife/ex-husband). The way I did it, for your npc, you define a custom override for each one
so it could literally be anything you want and it will only override that npc
I want that so I can override my NPC to say "Who's asking?"
have I ever sent my maru ones here lmao
i don't recall but I don't recall much usually
hm, i thought bool num came from the ldc_i4_0 i've seen in place of false in the il
so yes, to answer your question, you can do whatever you want for the label 
and the decompiler just figured that was for an int var num
See kids? This is why you should remember to put lighting in your maps! (and make sure everything is on the correct layer)
maru identity crisis
Sure! I need to do some errands first, but I'll test this as soon as I'm able.
anyway, purely from that snippet you sent, Iโm struggling to see how? you would need both bools to be different but also both be trueโฆ unless the issue is in CompareTo
The manifest is still version 2.12.0, right?
where is the default pendant acceptance line stored?
Calicfer does not patch the relevant function
no rush! and yes the manifest version is the same
that's fun
I learned that the runtime, if you're sorting an array small enough, uses HeapSort
im sorry for distracting u from eep atra
go to sleep? oh sorry i thought u said go to heap
System.Comparison`1[StardewValley.Objects.Furniture]
I might even be looking at the wrong damn comparer
how do context tags...work
on funriture
contextually
is furniture an object
no was incorrect, yes
does furniture set .Category
public class Furniture : Object, ISittable
looks like an Object to me
argh, this should all be deterministic
three times in a row?
sun's very active lately
its pretty consistent i think i had em run debug iq ALL_ITEMS
did you get harmony summary
not yet
wouldnt "PatchedBy<uniqueid>" appear where it was relevant anyway in this case
it might not if it's the side effect of some other patch
i have hard time imagining any other mod in this fairly short list doing this though
how would the side effect run that deep into the Comparer without patching the Comparer functions itself
no like, if some other function made a ??? furniture
How do I mess with the lighting in custom maps? I try to use the lighting png's in loose sprites but they are too bright.
I just want to have normal lighting, later it gets, darker it is.
i dont see how a ??? furniture would break things either. a Comparer is supposed to work fine if two values are equal, innit
the issue here is that it got a case where one of these things happened
- ThingA > ThingB AND ThingB < ThingA
- ThingA != ThingA
not necessarily both
yea either case
my point is tho i dont see how that can happen from a side-effect upstream
it can happen if Comparer's compare is unable to catch some edge case in the values
as for how well, i dunno

perhaps the value mutated between compares
the values would have to change, and they'd have to change in the middle of the comparison, no?
yea somehowโข๏ธ
so if something was going to make that happen, it'd have to have patched in the comparisons
or something called during the comparisons
would that not also appear in the stack trace
this second case is where u wouldn't see PatchedBy directly
hm
its a map prop
ty
@uncut viper I'm happy to report that the dialogue box still works perfectly for everything I need.
No problem! Thank you for considering me.
Where am I supposed to put "AmbientLight 95 95 95"? In the .tmx file, content.json?
it's a map property, so you can do it either way
memeememememe i want this 
sorry if I didn't read enough context, but I think I see where a problem could be?
if any mod is adding a furniture item with an empty name ("") or a non-SObject item with one, the comparison would be inconsistent 
Item.CompareTo uses the wrong variable in one of its various checks
string thisName = ((this.Name == "") ? this.DisplayName : this.Name);
string otherName = ((otherItem.Name == "") ? otherItem.DisplayName : otherItem.Name);
if (otherName != thisName)
{
//if they're not both SObjects:
return string.Compare(thisName, otherItem.Name); //this should probably say "otherName"
}```
depending on direction, it compares "this display name" to "other name" or "other name" to "this name" (blank)
wow how terror
alright i need some assistance understanding how to make mods now that i have decided to mentally invest into a project idk if i can 100% handle :D
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itโs easier to start with making content packs, since you don't need to learn programming.
thank you chu
Dumb question I thought of while procrastinating going back to learning C# (I'm probably doing so in a moment.... it's gonna be dictionary learning time) - is there a (sane) way of doing something like changing whether a mod is a true or false dependency based on if certain mods are installed and/or by a config?
I'm assuming no, but figured I'd ask
you wouldnt be able to know what mods are installed until the mods were already loaded
most importantly, your mod wouldnt be able to know until it was already loaded
You can always print out a message and disable the rest of the mod
theres also not much point in going from a false to a true dependency after things have loaded
you can mess with HasMod in CP or ModRegistry checks in C# to pretty much disable your whole mod, but yeah, the literal manifest requirements are permanent
Gotcha. Like I said, I figured it wasn't - and trust me when I say the use case for this particular scenario isn't worth a different config
I am way too lazy for that
Is there a mod that adds scarecrows that I can reference? I want to add some scarecrows to the game as a craftable item not as a replacement. Is that a thing, I don't see any on nexus, they are all replacements.
Fun fact, I had a theoretical use for this
i am curious
CP requires a true dependency for part of the API
oh, that kind of dependency, same here then 
I considered having it be false, reflection on my own manifest to switch ot to true if CP was installed
And then calling the CP API
What would be a cool name for a company that rivals Joja? But it's basically better in everyway.
does seem like a strange limitation even though i see the merit in requiring it
in that case i would also reflect
I waffled about workarounds to that for a while & eventually just decided everybody has CP anyway
this is true
BETAS actually has an unlisted hard dependency on CP (my own mistake, will fix eventually) but no one's complained about it yet so
Walmart
๐
Joja name is taken from Coca-Cola so maybe something from Pepsi-Cola. LIKE "Tetsi" or "Wewsi" following the naming pattern.
What do you mean "better in every way"
Side note, nothing is better the Joja!
Join Us Thrive!
@ivory plume (Sorry for the ping but since I am using your framework I kind of need you) The stop won't appear in the menu. https://smapi.io/json/content-patcher/9ca0e16f4af14b01bcfc14e6969ddac4
(I havnt put in the ticket machines yet, I was planning to do that after getting the stop in the menu)
Hi! Can you try it again, then upload your SMAPI log and post the link here?
Can you send me a zip of the content pack so I can try it?
Tetsi made me think of Tetris and Tesco lmao.
Well, Joja is Coca-Cola and Walmart combined, I shouldn't have to say why they're bad.
Bunnings warehouse, Lowest prices are just the beginning.
I gotta make snags available.
Of course, my version will allow you to have onions as well.
Can I not have my shop open until 1am the next day? I'm assuming that's a limitation with the game?
I mean, specifics help
Accel is shady the way GE was. Questionable accounting
But they are unionized
Joja employs skeletons, I saw one working in the intro movie. They are open to diverse hiring.
Welcome to the underground-
Predatory business practices, they ruin countries that they operate in, Coca-Cola has decimated Mexico peoples dental health, Walmart is making communities it operates in more impoverished from recent studies, there's more but I don't wanna flood this channel with that.
I should add a trace log for it, but the issue is that your target location FarmersMarket doesn't exist. You can change the target to {{ModId}}_FarmersMarket to fix that.
Ah, Thank you!
Hey Pathos, do you know much about TIME game state queries?
I'm trying to make my shop open from 8pm on one day to 1am the next day, is that not possible?
That would be 0800 to 2500 in the game's time format; is that what you're putting?
I was going to say 2500
Ah no, honestly I should've done it that way but I thought the game wouldn't like 2500 so I did 100.
You beat me, that was one I knew the answer too
In the game logic, the next day doesn't start until you actually sleep; so the hours just keep ticking up past midnight until you do.
Isn't that just the one Night Owl mod? 
Now that I think about that, I wonder if shops close past 2am...
(And The Long Night, one of my old mods.)
(Found the old Reddit comment which inspired my mod. Sadly it broke in Stardew Valley 1.3.20 and was abandoned in favor of Night Owl.)
Well, I forgot my NPC desides to wander off from my shop at midnight for a scripted event that never got finished by Tarniyar.
So, at least I know for the future.
That's so cute!!!
Is there a map property I can use to stop players from leaving the boundries of the map?
just put stuff on the Buildings layer. you can use invisible tiles if you have to
no, block it off with building tiles
ty!
i recommend not using invisible tiles for this, because they bother me, but it's valid to use them.
(i would rather see a map designed with natural, visible barriers blocking unreachable locations)
even if the barrier is silly, like a waist-high cat or an impassible toilet or whatever. at least there's some justification
it's also my personal opinion that I prefer a small, well designed map
i will try to make a natural barrier then
over large amounts of empty space
the snorlax is asleep. you may not pass
(is that from an actual pokemon game?)
It's from several
you can see how much pokemon I've played
i prefer random dance troupes
My favorite (from pokemon) is when you aren't allowed to enter a city due to blackouts
"We're practicing here. come back later."
that one was used in pokemon B&W iirc, actually
Though the random psyducks was good too
every game has at least one comical non-obstacle blocking your path, if memory serves
random dancing junimos make excellent barriers
A few hundred lines of dialogue into a mod and I see why large dialogue mods aren't super common
There are a lot of conditions haha
writing dialogue is exhausting
Yeah, this is definitely going to be a marathon and not a sprint
The challenge of a dialogue modder: Add more and potentially get to burnout level? Or less and it might not feel as immersive in game?
In short, always be ready to take breaks and set limits with people if you release a mod
Or focus only a few characters and make the mod feel incomplete
That's definitely good advice though, thanks
Never, ever, ever feel bad you can't put out dialogue. I say this as a dialogue modder myself
Honestly I'm mostly making the mod for myself and my girlfriend, which helps limit the scope
(one reason why I recommend doing one set of npcs at a time.)
start a dialogue overhaul, welll
you can see the first commit in the project was DECEMBER 2022 https://github.com/atravita-mods/StardewMods/commits/alpha/ContentMods/[CP] Atra's Dialogue Expansion?after=3a6b53c6b3c850a813ee0c8138ec91231cdfed33+279
Oh lord
My mod has 10 characters and I think their combined dialogues are less than a typical single custom NPC...
Hi sdv modders ๐ Thought I'd try my hand at something simple. Not sure it even counts as a "mod": parsing the old/new save file w/python running in background to get items shipped, money made, items stored/withdrawn from chests, XP gained per skill, energy spent, etc..saved to local db for later analysis.
I see a couple examples of dashboard apps that track progress, but nothing tracking day-by-day. Or anyone know if what I'm talking about already exists?
it just occurred to me you can't use item queries in $action ADD_ITEM
quick: how do you give a player a flavored jam in an npc dialogue
ยฏ_(ใ)_/ยฏ
i can confirm my one mouse has more dialogue than dolphin's ten mice /lh
that makes sense bc in the metric system 10 mice is equal to 1 mouse, its a base 10 system
(maybe I'll add a mail equivalent once I feel like fist fighting mail parsing)
loool Selph
at least what you have now is still technically usable for mail
just wont appear in the lil box
guess what I wrote and pushed last night when I was supposed to be sleeping
genius, delegating that work to your own asset
basically, yeahhhhh
something something sun tzu winning without fighting
i dont think you even need an asset for it
@ivory plume So I think we've found a vanilla bug. FlowerDanceCanDance works for vanilla NPCs regardless of romanceable status, but seems to do nothing for custom NPCs specifically - they must be set to "CanBeRomanced": true in order to actually offer a dance. I can send you a sample mod, but I've confirmed both with a nonromanceable character (Jorts) and a romanceable character who does work, until you set romance to false/candance to true. Do you want a bug report or want to confirm yourself first?
just add a custom Trigger Action that doesnt actually do anything and look for it in the mail text
There isn't really a distinction between vanilla and custom NPCs in the code (they're all just NPCs from Data/Characters), so I'd be curious to see what it's doing differently. Just as a test, does it work if you copy the entire Data/Characters entry for a vanilla NPC into your custom NPC (changing only the minimal fields like NPC name)?
i know what you mean by vanilla bug, but it's still a bit funny to call it that since no vanilla characters use the field 
doesnt that still require parsing or is there mail convenience I'm missing
seems fussy
what if I wanted to add more to LetterExtensions later?
That I've not tested yet, I can try though. And yeah, they should be the same which is why I'm confused, but between Avi and me we've tested it on 3 different custom NPCs with the same results.
sure, I have no ideas NOW but I might have LATER?
itd require parsing but you can just postfix and split the originam ial text by %%s yourself
original mail*
but lazy
yeah, and how do I fit the entire ItemSpawnModel into that lol
dont have to worm your way into the actual parser
you dont but in this case Selph already has an action for it
ahh fair.
anyway once there's demand for sending ancient fruit wine over mail I'll add it to EMC (still touching grass, and got more higher prior mod updates on top)
hey friends, i'm looking to commit some input crimes by messing up the player's directional inputs.
suppressing directions should be fine, but for this i think i also need to synthesize the confounded ones (e.g. generating the reverse direction instead). how serious of a crime will i have to commit to do this, and can anyone help me do it?
hmm can you even configure numpad directions
Okay, I copied Evelyn's entire dispo into one of the test NPCs, adding only FlowerDanceCanDance, and he still refuses to give the dance prompt
probably postfix Game1.isOneOfTheseKeysDown
let's do something stupid
theres like a million functions related to movement or smth
but thats what i would try first
you don't need to postfix anything
just mutate the player's controls
these four
rotate them, rotate them back, flip them, just save the previous state somewhere
i didnt realize those were stored anywhere bc you cant actually even change them can you
hmm so you can
sure, the player could open the settings menus and fix shit but that seems more annoying that playing with reversed control
yeah, it's in the settings menu
interesting
also this is for a gag! so i don't care if people find a workaround
thanks atra, that's extremely helpful
i thought i was gonna have to do way more crimes than that
tbh if i was doing it id still postfix them anyway just to prevent the workaround 
even though i know the workaround is not practical
i talk a big game about liking harmony to run my code less but this little mod looks like a pretty good fit for just using normal smapi events and i like it
yeah, I get leery about patching often-used functions
what if my controls get mutated, then i save and quit and go to a different save file? or my game crashes or somthing and i rejoin in the next day
I'm not against harmony I just don't like it
not unless you sleep like that
so sleeping with the debuff could still fuck up future play sessions
just put it back just before sleeping 
Can you report it in the official forums, and attach a minimal repro content pack (ideally one which edits both a vanilla and custom NPC so we can easily compare the game logic between them)?
(It's a bit weird in the "non-modded" section, but it is technically a vanilla bug.)
can u make a shop entry with ActionsOnPurchase that does not actually buy anything
like, without any custom C#?
yea
buy gold coins
im not sure if RemoveItem checks your helditem (probably not) but if it does thats one way
it immediately disappears from inventory and turns into cash yea
Not the helditem of the menuuuuu
you could copy what the PET_LICENSE does if you were willing to go into C#
what's a thing thats suitable lunch for a possum
does anyone know why this npc I'm making doesn't speak with me? she used to talk but for some reason wont any more?
what do possums eat
!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.
australian possums devour fruit, insects, and some flowers
what shop are you adding to
of course you can 


chu wants a non-C# solution
well we can't always get what we want
u see the plan is
blinks
Json assets used dictionaries, didn't it
u can hire an opossum from marlon
for a day
she carries things and she's working hard for her 42 kids
i have nothing to base this on, but id guess like at least half of C# mods use a dictionary somewhere
it says im missing format?
Good god. I'm glad I saved this for basically two hours of looking at a C# tutorial on dictionaries. It's not like I don't understand it, it's just I suddenly get every single error message about duplicate key already added
ok the world's stupidest idea incoming
- Use EMC's holder item
- Edit its data/object entry to add the "inherit flavor icon" context tag
- Set the flavor to the icon you want
I'm almost over noting all the stuff on dictionaries XD
im scared
Dictionaries are one of the very basic C# collections that you'll see everywhere so its errors can come up from a lot of things
anyhow if it doesnt work ill just make a item query in trinket tinker
but it would be nice if it work :)
why not add a possum to the map next to marlon who you can "talk" to and it brings up a question dialogue asking if you wanna hire her
id have to unpatch her somehow too
thats easy just unpatch her
it may be better if she was an npc actually
then the normal hide npc would work
but hm, it'd be annoying if u could only hire one
in coop i mean
hm maybe
if this is a file you re Includeing then you can ignore the format warning. but with all these empty dialogues im assuming its simply choosing one of those for the day and not working bc... you havent written anything
but i'd need like
mmap for the dialogue too right
unless there is something to do this
how do i bully u into stealing that so i only need one dep 
hand over your copyright
its MIT




