#making-mods-general
1 messages · Page 137 of 1
HUD like status bar, health bar?
something which could act like the quests button
not necessarily at that position, just a always on HUD button to access some other menu
you can inspector class StardewValley.Menus.DayTimeMoneyBox
https://github.com/rokugin/ShopsAnywhere/blob/main/ModEntry.cs
I dunno if it'll help, but this is a WIP mod I never finished, current functionality just adds a button in the inventory page that opens a shop
you need to implement
//for render sprite icon & HUD
public override void draw(SpriteBatch b)
//for handle mouse click & use if else for handle action
public override void receiveLeftClick(int x, int y, bool playSound = true)
thanks
hey i'm stuck forever while saving my mod-file in publishing on nexus, anyone knows whats going on?
can't you just draw in the SMAPI renderedhud event
just to wrap-up your implementation, you want to add your MyOnScreenHUDButton : IClickableMenu to Game1.onScreenMenus in the Events.GameLoop.SaveLoaded event ONCE ONLY
Nexus just does this sometimes
I refresh when it happens
dayum. any clue how long this takes?
Whenever Nexus is being dumb, I just give up until the next day
i wouldn't recommend adding a 'fake' hud button with smapi rendered/pressed events, it's better to do it vanilla and add to game1.onscreenmenus and get all the benefits of actual clickable components
ill trust blueberry on it since blueberry does more menu stuff than me
the functionality is all there ready for you to use
oh i see
the fools trust me like they don't know i'm wiping the il out of menus.daytimemoneybox.draw wholesale and butchering it back in out of order
that makes you even more trustworthy to me
we're reaching JIT errors i didn't even know existed
but wait can't you still use clickable components with the SMAPI events, just store em in your modentry
granted that's not far from just making a menu class anyway but it'd mean you wouldn't have to add it to that on screen menus things right
sure you can, but why would you when the game already handles draw/update/hover/pressed
literally does it for you when you add to onscreenmenus
that's like asking 'why would i make a custom menu when i can just lock out all input and render over everything else'
i figured you'd be adding custom functionality for those things anyway
these are just learning questions from me though not suggestions
onScreenMenus being a list of IClickableMenu's makes me confused as to how it handles the HUD buttons
hud buttons as in zoom in/out and quest/journal?
Yeh
those are just clickablecomponents on the daytimemenubox class
it really is just an onscreen menu haha
no different to scroll buttons in a crafting page
So if you wanted to add more of those buttons how would you do that?
probably just make a new iclickablemenu to add to the list, as we're doing here
include your buttons as clickabletexturecomponent instances on the menu and do the input handling as elsewhere
again it's nothing really new or novel, just more buttons
just one of me is enough thanks
Right, I've just struggled to find any documentation on it, part of the reason I gave up on that mod lol
ah well there really isn't any documentation haha
game code and all
copy code, edit code, reload code
Experiment until you break everything and then do it again
i prefer UI Framework like this in unity game objects MonoBehaviour driven
I'm more familiar with making UI in Unity but I know for a fact that being reliant on that system has crippled me elsewhere
yeah sdv doesn't really do hierarchical ui all that much, i suppose you could call GameMenu and its submenu pages a hierarchy but everything's completely arbitrary and flat
if there's one single thing i miss from android development it's nice flexible ui construction
which isn't to say that sdv doesn't have a builtin ui framework, it's just only expected to be used for mostly flat pages that never react or resize
definitely a bad idea to leave for a few days between adding a ridiculously large and destructive chunk of transpiler and actually running it btw
or sometime we should make SMAPI UI Framework built-in
there's a few projects out there that simplify things
stardewui the latest breakout project ofc
would "travel safe" be a ok sentence in english or is there a more natural (but preferably, formal) way?
be safe/drive safe/get home safe are all fine but casual, comes across as personal
safe travels is good too
somehow i don't think i've ever heard someone say travel safe, just safe travels 
I was just about to say 'safe travels' (while it is very similar) would be how i would write that
thanks
and safe travels is pretty formal but also natural too i say it all the time to people who I dont know very well but want to be respectful to :]
sometimes i have to swap things between english and french
Save travels for formal, polite. Be safe is something you’d say to someone you’re familiar/friendly with.
am i allowed to place labels on nop opcodes in IL?
"Travel safely" would be fine, I think, but "safe travels" is the more standard phrase
Congratz!
Even Nexus recognizes me as a cheeto now
yet on it, seems like my NOP try to force SaveLoaded event on farmhands when playing in multiplayer and they stay up to 6AM
looking for a way to check if the current player/world is the host to skip the onSavedLoaded event
in C#
simple, you want Context.IsMainPlayer
thanks a lot. I was lost looking through the multiplayer documentation
Since my mod saves data from players on save file, should I worry about it just loading the host data correctly on save load? or the game/smapi takes care when moddata is generate from farmhands?
help
ie. should I make check for multiplayer and generate different mod data if it is a multiplayer or single player. what could cause compatibility issues with games that may be played single or multi from time to time.
Log found, uploaded to: https://smapi.io/log/5acd5b81b7ad4924b093323d17c2cb55
Log found, uploaded to: https://smapi.io/log/e431d1db750644ae84178a45faaea6f2
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
seems like a Scale Up 2 crash though...
may help to put it in the title when creating a thread in the support section
excuse me. I want to ask about how to use temporaryAnimatedSprite in events.
temporaryAnimatedSprite <texturename> <source_x> <source_y> <source_width> <source_height> <interval> <length> <loops> <tile_x> <tile_y> <flicker> <flip> <depth> <fade> <scale> <scale_change> <rotation> <rotation_change>
I wrote as
temporaryAnimatedSprite "Maps/springobjects" 0 0 16 16 500 1 100 16 20 false false 10 1 1 0 0 0 hold_last_frame/
I expect it as appearing a weed in the position, but seems nothing happen. no error though.
And it's too long command to one by one parameter analysis for me without any reactions.
Anyone notice what's wrong about that?
ok
not quite sure. but I searched through the files and found a single file that uses it Data/Weddings.json:
"Celebration": "temporaryAnimatedSprite LooseSprites\\Cursors 558 1425 20 26 400 3 99999 26 64 false false 65 0 1 0 0 0 ping_pong/warp Marnie -2000 -2000"
if that helps
depth 1 was same result. but thanks I would try check that one too.
Can you try fade 0?
Oh. Maps\\springobjects
Because the Slash is used as the deliminatoe
copy & paste later half make appear the weed. don't know what was wrong yet. but it will be where should I start. thanks
You have to use the other slash
slash was just be single because discord erase it in chat 😛
ok it looks like fade was the problem as you said.
it works as expected when I changed the fade 0 from origin line. Thank you very much.
interestingly though, C# wise I get an error if it can't find the specified spritesheet for example. If I patch in a Event via ContentPatcher it won't throw any errors? Or the Event doesn't get triggered to spawn in an temporaryAnimatedSprite
sprite place was correct. just discord didn't display '//'
so, fade 1 mean "instant fade out soon" I guess?
si I wanted to check if it would throw an error if it wouldn't exist
Is it possible to put money into a machine?
I've never seen someone do it, but I had to ask just in case haha
the problem is money isnt an item 🤔
[game] Event script error: The content file was not found.
~~ yes it spit an error
idk if u could do some C# magic to make it work,
I think the easiest solution for a CP beginner like me would be to create some sort of Voucher/Bill that you buy in a real shop, and then put that voucher into the machine
but to get it to work with CP, it would have to be some kind of item representing money? like you can "Buy" a 500g bill or whatever with 500g
we read each other's mind xD
lol
So my Event just simply didn't start lol 
I looked at the code and apparently a TemporaryAnimatedSprite starts off with alpha = 1.0, so setting fade to 1 effectively sets the alpha instantly to 0 thus makes it invisible? if u want you can double check it and set the fade to something like 0.01
yeah, it disappeared like ghost.
since I won't use that fade function, I had thought I set it as "instant fade in" or something, as opposite.
all value was required, so I was not sure all of them.
Maybe we should add an example to the wiki
Remind me in 6 days to add example to wiki
all right atravita but next time you better bring me 20 nirnroot or i ain't doin it (#6420127) (6d | <t:1734793692>)
Thank you!!!!
I'm very glad cause I had totally no idea which one was wrong.
what is the difference between sourceRect and bounds for any ClickableTextureComponent?
Is there something like wabbajack for stardew valley?
I always liked the idea of being able to download mod packs. But they often need customisation and vortex isn't that good.
Is there a way to let people download mod packs but for example also supply custom config files etc.?
Wabbajck copies your complete skyrim directory and creates a modpack with different game instance so your base game is untouched. That way you can create really customized packs to share.
Is there something like that?
does wabbajack not work for sdv?
Bounds is where the component is on screen. Sourcerect it draws from
👍
I saw you were trying to do a hud button
thanks
It's just a simple clickable component, everything is handled via smapi events
sorry, i see this code "/// <summary>"
which editor do you use
and how do you use the shortcuts?
aha, thanks 😯
i have question
i build mod from CjbItemSpawner github fork
can i upload mod zip file on release tag?
i have this fork
https://github.com/NRTnarathip/SDV-Mods/tree/android-dev
for support android version
but i'm not sure about upload & share mod zip file
Yep, as long as you follow those mods' open-source license (e.g. linking to the original for attribution).
is there a way to have a custom water overlay on a map no matter what the screensize is or would that be some C# shenanigans(not counting making the map extra big with void just to achieve the effect)
i'm not sure what the screensize has to do with it?
The Modding:Items page is pretty big after the 1.6 changes, and it's hard to add more specific info like texture layouts. Any thoughts on splitting it into more specific pages?
Possible scheme:
Modding:Items <-- intro, common info, description of each item type with links
Modding:Big craftables
Modding:Boots
Modding:Furniture
Modding:Hats
Modding:Pants
Modding:Objects
Modding:Shirts
Modding:Tools
Modding:Weapons
well i mean if i just have a small map the rest of the screen will be filled with void, no? and if i put an overlay on my small map the rest of the screen wont have it
I'd be happy with this. There isnt too much cross-referencing needed between item types that makes having them on the same page be especially useful
And most of the time I'm linking someone to a specific item type anyways
i don't follow, what are you trying to do? i thought you wanted to edit the existing overlay when in your location, you have another plan apparently, what is it?
i just have a alwaysfront layer rn but as you can see my map is small so everything outside is jsut void with no water overlay(tho since its not much light it jsut looks blue oops)
I'd be down with it. However - and this may just be me reading too much into how you wrote said possible scheme - make sure to have Modding:Objects as the first in that section
I know it wouldn't be alphabetical, but objects would probably be the most common over all mods, whereas stuff like clothing/tools/weaponry generally end up secondary
Why do you want water overlay on the void anyways
ok it's not really context like i asked but i think you mean you want to give an "underwater" of sort effect
because i wanted an underwater-y feel and just trying to put the overlay on the inside of the cave gives too much contrast
which isn't what i put under the words "water overlay" because for me it's overlay FOR water and for you it's overlay OF water (maybe?)
yeah sorry, sometimes im bad in explaining what i want
Okay I also thought the same thing as lumina?
I dont know how to draw out there without C#
oh yeah that was actually jsut my initial question if something like that needs C#
alternatively, without putting it on the void it'd look like this but idk if it still has this underwater-y feel
A tesselating weather effect might be able to draw out there but I dont know how to use weather wonders or if you would want to add another framework
i say it's better but maybe with some texture it'll be more obvious and also hmm
yes, the additional image helps
if there's no water pond maybe because i'm not sure if it would be obvious as water if there's another layer of water
hm
well, the thing is i want it underwater-y but more in a uh
you know how when youre in a cave and theres water and the water movement or w/e reflects on the surrounding area
then maybe consider something with animation, like reusing the water overlay in cursor but with different colors
anyway
it depends of the efforts you want
i plan to do a underwater type of map but thatll be big enough so i can just slap decorative areas to have the map bigger or w/e but this one is jsut 20x20 
it's pretty good in the latest image for the concept
and can work as it is with the right context
im just fast cuz i had the animation for the regular water in tiled already lol
makes me feel slow when i test lol
speaking of

i gotta work on my mod some more
taking a break from my npc simply bc i hit a writing wall
thats why i have a long scope creep list so i can jsut do something else when i am fed up with doing a certain thing /hj
grgnn...
time for me to look at warps again
still a bit goofy but its getting there
HE HOP
cute
how can i add another change without fucking up the brackets
just add another set of brackets?
between where
just. after the block you already have
like between which brackets
Before the ]
remember the comma at the end of your previous block
{
"Format": "2.4.0",
"Changes": [
{
"Action": "Include",
"FromFile": "data/valley.json"
},
{
"Action": "Include",
"FromFile": "data/island.json",
"When": {
"LocationContext": "Island"
},
"Update": "OnLocationChange"
},
{
"Action": "Include",
"FromFile": "data/objects.json"
},
{
"Action": "Include",
"FromFile": "data/flooring.json"
},
{
"Action": "Include",
"FromFile": "data/zothers.json"
},
]
}
its like this
[] is a list of many {} separated by ,
dont forget the ,
but anyways pls get a proper text editor like visual studio code or notepad++
yeah
it checks format for u
Is there some save data stored outside the Saves directory? I was trying to open a save someone sent me for troubleshooting but it just doesn't show up in the save list after copying it to my save directory.
vsc probably? microsoft owns that one
just look it up
what kind of data are you looking for?
notepad++ is free for download too
oh and turn off steam cloud save maybe
Anything. The save file just doesn't appear in the list when I go to load.
🤔
I don't use Steam. It's GOG, and I'm launching it directly from the command line so no galaxy sync.
They make it easier to see the individual elements and will automatically show when you have syntax errors
did i add the comma correctly
!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.
you can check it yourself 👍
i have thing where i symlink to different save folder when i switch between mod lists so i dont think theres like a separate "saves list" to update
I did my earlier coding on Notepad (not N++) in conjunction with the smapi.io/json validator just fine, so it's doable without swapping programs, but it does help
yippeeeeee,,,,
the cloud save stuff is all i can think of for this situation
does the save u got have both FarmName_xxxxx and SaveGameInfo and their _old versions
Yeah, all that looks fine.
Huh, ok... I had to run it with the Galaxy sync, which failed, but then the save showed up anyway. 🙄 whatever.
sam open the house i need to check your portrait sprite god damnit 💢
debug wtc sam
there's a number of debug commands
is it possible to put more than one category in like a "requiredtags" field in order to allow any item from any one of those categories, or is that not how that works
tags is a list yea
that is NOT sam 🙏
for example vanilla bone mill:
"RequiredTags": [
"bone_item",
"!id_o_881"
],
any bone item, except for (O)881 bone fragment
this is AND so if u want OR then u need to add another "Triggers" entry
also on bone mill rule 1 is the 5 bone frag trigger 
how can i change sams name
not every instance of his name where someone mentions him but like his bio and all
i think its called a display name
are you sure you don't wanna just make a standalone sonic npc
no im bad at coding lol
i think sam would find sonic radical
sam is suitable for sonic
and become good friends
💀 i couldnt find a list of category context tags thingies...
true
!npc
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!
cant i just code everything in json
u can prob start with the npc builder spreadsheet
yea
you can make an npc entirely in content patcher
whats that
the wip npc builder in the command
real 🔥
@next plaza: look into EnderTedi’s collection of SpaceCore bugs (48h ago)
how come whenever i wanna look at some intensive warp explanation i cant find any besides the example in the location wikipage 
does this look right if i wanna make the warp only work after an event has been seen? https://smapi.io/json/content-patcher/c59ce6eac2134430be5ac6d75dbc2ed3#L19
so i read into scaleup 2 and tried to create whats needed... but come to the stated issue. i tried to find out myself what i need to do, but kinda got stuck and need ideas/solutions x.x
If you run into an issues with the WIP NPC Builder, definitely let me know! I'm pretty active around here, so I'll try to fix any errors y'all track down
looks ok to me. I believe you can also use just
"HasSeenEvent": "EventID"
did you look into Modding:Maps page in the SV wiki? there is some explanation about map properties including warps https://stardewvalleywiki.com/Modding:Maps
That looks like you're trying to use a dynamictoken as your FromFile, but the token's not been loaded yet?
oh yeah ive been staring at that page alongside the location one but i wanted to add it via CP and not directly on the map(to not confuse myself where to look later if theres issues)
i dont rly know what i'm doing, i just want to get hector's portraits work with scale up 2 x.x
!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.
Can you post your JSON?
Yeah the wiki isn't exactly easy to comprehend... I just added warps directly in the tmx file and loaded the map when I first did it. It was less confusing that way. But if you're using conditions I guess using CP is better.
guys can someone ss the town interior tile sheet and circle the bedroom door tile cause i acc cannot find it
i think this only supports the regular kind of map property warp, ur tile action warp with mail flag seems correct
Does anybody know why my NPC is saying this? https://smapi.io/json/none/eb63f65558334daf92adaa2e2ff314fe
https://stardewmodding.wiki.gg/wiki/Kailey's_Interior_Door_Guide#townInterior_Door_Sprite has it highlighted
This is a mildly advanced guide for modders that assumes familiarity with Tiled, Content Patcher, and map modding fundamentals such as the difference between Map Properties and Tile Properties.
Interior doors, such as the one in Figure 1, are interactive map elements with hardcoded behaviour (see InteriorDoor.cs). There are three types in the b...
THANK YOU I WAS LOOKING SO LONG
Did you load your schedule strings? They're a different patch from regular dialogue
if you want to do custom doors, yes
doors r just hella specific
scary
I did... loaded a blank json for Strings/schedules/NPCname and editdata for that.
hmm
let me see what I did for mine, one sec
mine's i18n'd and I assume you haven't done that, does your syntax match this? ``` {
"Action": "EditData",
"Target": "Strings/Schedules/JortsCat",
"Entries":
{
"Trash.000": "{{i18n:JortsCat.Trash.000.{{Random: {{Range: 1,6}} }} }}",
"ColaShop.000": "{{i18n:JortsCat.ColaShop.000.{{Random: {{Range: 1,5}} }} }}",
"Kevin.000": "{{i18n:JortsCat.Kevin.000.{{Random: {{Range: 1,7}} }} }}",
"CatCafe.000": "{{i18n:JortsCat.CatCafe.000.{{Random: {{Range: 1,6}} }} }}",
"Pride.000": "{{i18n:JortsCat.Pride.000}}",
},
},```
oh hm, I wonder if it's case sensitive
ah, my load is lowercase so I suppose not
I used i18n. I honestly have no clue what's different? Could you take a look in the json I linked it
wait a sec, are you saying I could've done Random: {{Range: 1,6}} instead of Random:1++2++3++4++5++6++7++8|inputSeparator=++
Samic!
yes 
shakes fist
What? I didn't know that!!!!
Nothing's jumping out at me
and it didn't say anything about no translation, looks like, so it wouldn't be an issue with the i18n I don't think
If you've seen me write it out
In the past, range was quite inefficient
Sinz fixed that
it doesn't perform any animation either.... and I don't have a clue for that. maybe this is relevant?
....Atra, do 0 schedules do anything weird with animations/string dialogue?
You can't use them in a 0 schedule
Well then.
But the behavior should be "is ignored"
And by that I mean the entry with the 0
I literally do 0 location x y/610 location x y dialogue for Demetrius
The behavior you see is if the entire asset is invalid
I'll change it but it didn't work when I started with 610 either
I just did that to test it faster
So it's a problem with the whole schedule, then, atra
I'm not seeing any issues but if one of those end tiles is impassible that would do it, yeah?
Unfortunately, I'm not sure what's going on that's throwing the {{TrueShape}} error, based on your JSON. Are you able to post the full SMAPI log, in case the Trace shows something?
Otherwise, someone else who's played with ScaleUp 2 may need to step in
Probably worth pointing out that, at least last time I checked, there was precisely one WJ list for Stardew and it's a bit of a kitchen-sink deal. Most of the Stardew community seems to find managers like Stardrop "good enough", since SMAPI already has a content pipeline and doesn't need the same degree of file-level virtualization as a Bethesda game. And you can already point SMAPI at a different mod directory via command-line arguments.
i dont know why it deletes the trueshape out when uploading it
ah! Can you provide the full JSON file where you're defining the TrueShape token?
(probably your content.json?)
Yeah I know. But I can't create custom configuration files and supply them via vortex or stardrop. I'd have to manually upload them to nexus. With wabbajack I just create a folder with every mod directory and custom configs and then they'll get installed.
what does that mean for dummies?
the trueshape token is part of the s&s mod
ok
Oh!!! That may be the issue here. I didn't double-check where the NPC could be in 24:00. I didn't know it will lead to that kind of error. I'll fix it and try again. Thank you
Are you using S&S as a dependency on your own mod?
it's part of s&s, but it your mod wont know that unless you-
if the token is set in another mod and your mod tries to load first, it won't think the token is ready, is your mod set to use S&S as a dependency
i think its time for me to make more fish :^)
i did add the unique ID of it in dependencies in the manifest
That's if Dynamic Tokens load across mods, I genuinely don't remember if thats the case.
I would try setting her schedule to just BusStop and have her move around there so you don't have to worry about maps. If she still doesn't talk/animate, try removing the schedule strings and leaving the animations and see if it works.
What does {{TrueShape}} parse to in S&S?
i think you need cross mod compatibility token things
?
Yeah, I think so too
But they might be able to bypass that by using the parsed token instead
as far as i understand it handles the portraits fitting with the changing gender, like changing appearance
patch parse "{{TrueShape}}" "<whatever S&S's uniqueID is>"
try that in the SMAPI console?
I don't know if you can run it for just the token, but worth a try
if not, you can probably run it as part of asset lookup
Where does TrueShape come from
Swords & Sorcery, apparently
And they're trying to call it in their own mod's asset path, which... won't work as is, AFAIK
So, figuring out the potential parsed values that it COULD be using seems like a way to properly target it with the new mod?
You could do something with buttons token mod
But yeah
You can't normally read another mods dynamic tokens
that did not work
i will try this
Hello! I'm not sure if this is a complicated question, but I am trying to fix a furniture shifting issue when the building is upgraded in my Medieval Tiny Shed mod. It's a 1.6+ custom building, and it has its own upgrades (base, tardis, and tardis+)
My question is how do I resolve the furniture shift issue while keeping in mind the 2 upgrades, and that there may be multiple sheds on the map?
Aimon used this fix for their Aimon's Fancy Shed, but this is not for a custom building and it depends on selecting which size shed you want to use in the config menu, but it's the only example I can find that doesn't use the IndoorItemMoves option which only seems to move objects, not furniture:
"LogName": "Furniture Shift Fix",
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [ "Big Shed", "IndoorItemMoves" ],
"When": { "Big Shed Redesign": "true" },
"Entries": {
"AimonShed2": {
"Id": "AimonShed2",
"Source": { "X": 1, "Y": 6 },
"Destination": { "X": 1, "Y": 10 },
"Size": { "X": 13, "Y": 10 },
},
},
}```
Here is my code, with no adjustments currently: https://smapi.io/json/none/9ce6a891e4054225912d0f63895436c7
Also please talk to me like baby. Brain tier 1 
so if you upgrade a Small Shed to a Big Shed, what IndoorItemMoves does is "move a rectangle of size Size from the Source tile in the Small Shed to the Destination tile in the Big Shed"
I thought that it only moved objects though, not furniture? I only saw someone comment that before though, I am not 100%
it should also move furniture
👀
Oh okay, so this would work with my issues then
I will fiddle around, thank you! 🩷
is it possible to have crafting byproduce? like when you craft x you get another fun secret thing?
is that a thing better crafting supports 
my brain is frying x.x i did set the dependencies but i dont understand how to add the token now... the "demonstration" on the mod page arent rly helping at all. ..qq
for machines emc has a byproducts feature
I changed the schedule to
"spring": "610 BusStop 29 5 2 Niki_notes "Strings\schedules\Niki:000"",
and it still doesn't work.
"spring": "610 BusStop 29 5 2 Niki_notes ",
still no animation.
Does it work if you swap the animation out for the string?
Better Crafting's custom recipes seems to only support one product at a time, but there is an option to run a trigger action on craft, which you can use to put an item in the player inventory
you can't do it with vanilla crafting recipes
nope.
🤔 hm, alright then
... more trigger actions
😭
Can you make a letter a quest reward?
the animation listed part are correct?
Sorry
hm so that seems like there's something going on with your schedule, period. But I'm not seeing anything 
stupid question, is your NPC's internal name just Niki?
yes I think.. I used the same frames in festivals and it worked then.
I also changed the animation key to all lowercase, I don't think it matters.
you can put the add mail dialogue command in the NPC reaction
don't think you can do it as a direct reward
Yes. I found out the modding wiki too late, I didn't go back and add all {{ModID}} stuff
I didn't check other animations in that specific location but when I checked another one in Town, it didn't work either
..maybe i just cant find it 
she just... stands there
if she do, problem is animation. if not the schedule problem maybe
(You could go back and add it before anyone starts adding compat for your character 🙂 as of right now, I don't know any other NPCs that share the name, but you never know )
Is the JSON you posted earlier your full content.json?
No, I guess it can't be. Can you post your full content.json?
oh, there we go
No, I just included what seemed relevant, as other functions are working well. I'll upload the full content.json now...
content.json:
https://smapi.io/json/content-patcher/81c27cb4e0604f968d66ab75a3d2c95d
TestSchedule.json:
https://smapi.io/json/none/dcc57326eb284aa198f93db1f07b61bc
animationDescriptions.json:
https://smapi.io/json/none/5c7916a3a3724a9b895876fb49d8390c
ScheduleDialogue.json:
https://smapi.io/json/none/2229a1a838a74f24829a51897eda9aed
Thanks for looking into this. I really hoped it was some stupid typo I overlooked
how about "{{ModId}}_Niki_notes" that's what I'm doing for my NPC
I should do that when I change my internal NPC name to {{ModID}}_Niki. I didn't think this through when I first started making mods
hey yours are't same folder as mine about animation
"Action": "EditData", "Target": "Data/animationdescriptions", "Entries": { "{{Lowercase:{{SigId}}}}_sleep": "43/43/43",//睡眠時
mine
oh wait
"Action": "EditData",
"Target": "Characters/Data/animationDescriptions",
"Entries": {
"Niki_notes": "16/16 16 16 16 16 16 16 16 16 16 16 16 16 16 18 18 18 19 18 19 18 19 18 19 18 19 18 19 18 19 18 19 16 16 16 16 16 16 16 16 18 19 18 19 18 19 18 19 18 19 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 16 17 16 17 16 17 16 17 16 17 16 17 16 17/16",
yours
yours inside Characters/ is that right?
ye its just Data/animationdescriptions
yep
Sorry to butt into this but I was wondering if someone could help me figure out why a letter I'm trying to add hasn't shown up (relevent json below)
"Action": "EditData",
"Target": "Data/mail",
"Entries": {
"{{ModId}}_RoryHelp": "Text"
}
},
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_UPMail": {
"Id": "{{ModId}}_UPMail",
"Trigger": "DayStarted",
"Actions": [
"AddMail Current {{ModId}}_RoryHelp"
]
}
}```
See if that fixes it? I'm still looking at your schedule json to see if I see anything else
addmail by default adds the mail for tomorrow
have you been testing this trigger for a while on the same save? A trigger can only ever run once by default, so if a trigger with the id already ran, it won't happen again
😓 can i put a category (not a number category) in a recipe data
aren't all categories numbers?
oh wait ur right
though be warned that not every category will show up properly
i meant like context tag
Not without spacecore
in that case nope, need either SpaceCore or better crafting
if you're already using BC custom recipes then use that
back we go to better crafting
better cooking:
Now she does the animation but the strings aren't fixed
progress
added the now type and that fixed it, thank you
do you have something in your i18n for that shedule dialogue
Does she move around the map (when you have more than one in your schedule)?
i remember the game doing a funky if its left as ""
thats why i either put a word or just ... lol
if not a random but direct linked, is that displayed?
hhh...
im a bit confused reading the docs for better crafting, i can't tell if i can include it in the main mod or need a separate mod for it? im not editing a vanilla crafting recipe, im adding a completely new one, so would i just stick that into the crafting station portion?
I've tried that and there was a red wall in my console
also I don't know if this is relevant, but I usually see strings in the format NPCname.Thing.000 whereas you've got NPCname.000
BC uses the asset system so you can put it changes in your existing CP mod
Yes, I stalked her and she moved along the schedule.
She walks through walls when I patch reload in the middle of the day but I suppose weird behavior is expected when I do that. It becomes ok next morning
just target the assets exposed by BC in your Target field
oh ok

Professor Jasper Thomas mod uses just numbers, I used it as a reference.
you looks like trying display Niki.000.1 but the game is searching Niki.000
that should be the i18n key, but the schedule call and the string name look like they're both Niki.000
i figure you have actual text in your i18n
then i18n file is correct?
Does he also use schedules lowercase, or is it uppercase like this?
That shouldn't be the problem, but also case sensitivity happens when you least expect it
it's all lowercase for him
targets are not case sensitive
Button I have trust issues
i understand! i trust the CP Docs tho
wondering bout that but alas not getting an anwer so we will stay curious lol
i18n file is like this because I didn't know how to set... what do I call it, possibilities?
me too tbh i kept coming in here for these exact issues to be the cause way too often
did you load initial file for "Target": "Strings/schedules/Niki"?
Yes, I loaded blank.json for that
sometimes i hate my typos
(if you want line 1 to be twice as common as line 2, {{Random: 1, 1, 2}})
I'm starting to think it's just my computer
if it helps, its almost never just someones computer. whether thats good or bad depends on your outlook though i guess
that's helpful. at least I learned something
not sure if it matters, but I ended up having to use Strings/Characters for my schedule text to work properly for the Satoru Gojo NPC mod fix
question, if you remove the schedule string do you get her regular dialogue?
yes
and how does this work? do I add strings like "Niki:000"?
okay, so we can also cross out your blank load, since it's functioning for regular dialogue
i am having war flashbacks with my map issues from yesterday where it was me leaving a tiledata empty to make the whole map load crap out
and it only took 500 years to figure out
Okay, if you've still got the game loaded, put patch summary full into your SMAPI console and then post the log?
I ended up doing this for Satoru Gojo's forest training text:
Log Info: SMAPI 4.1.9 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 12 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I still am not entirely sure why, but it WOULD NOT return the actual text string for a schedule entry until I loaded the text string into Strings/Characters instead.
I should try that.
Wait I wasn't allowed to do that??
Range is looking for a start and end. If you want just a specific set of items like 1,2,3,4,5, it's just {{Random: 1,2,3,4,5}}
Oh right
that was +1 stupid of me
I'll change it but I'm only using 000 for testing so I don't think that's the main problem here
I require assistance.. I have no idea what I did, so I am not really sure what to do to fix this..
I am trying to resolve a furniture shifting issue with my Medieval Tiny Shed, and this was the starting furniture and objects I used as a reference: (picture)
This is the IndoorItemMoves section of my code that I changed:
{
"Source": { "X": 0, "Y": 0 },
"Destination": { "X": 4, "Y": 0 },
"Size": { "X": 8, "Y": 14 }
}
],```
It might be causing the whole patch to fail is my thinking - if you check the patch summary, it says it's not loaded.
and somehow it ended up like this???:
oh!!!
I should have posted i18n from the start lol
thanks guys... I didn't even doubt it
I mean I should've asked for a patch summary about three steps ago
but the success is all that matters!
That looks like the code is working fine to me, moving from (0,0) to (4,0)
also, I saw your NPC on Nexus the other day, she looks interesting
can I make a small suggestion about your mod page?
of course!
actually ignore me, it doesn't
hmm
I was about to be very confused xD
yeah I only looked at the flooring and didnt notice the lamps
I am confused why the lamps kind of went wherever and then the blue plants stayed on the left
and the cushion
can you try moving just the floor stuff (not the wall)
I think it'd help if you added some more screenshots of her to your page
like some more shots of her daily dialogue, showing her different expressions, and maybe some non-spoiler shots of her heart events?
I can do that :3 I'll be back 
I'll do that! thanks for the suggestion
meanwhile while I was hiding in here I made two whole fish sprites lmao
I wrote a whole two lines in my fish tutorial 🤝
more than More New Fish
tbh. im dreading fish sprites
fish aren't too bad
doubt ill ever reach those heights
i have currently 21 and now plus these two (and possibly more)
why am i making so many handkerchiefs
why not
ive, like 30 cooking recipes and 20 crafting recipes by now, i feel you
still unsure if i should make my hats craftable or sold by hatmouse
i got carried away 😭
mood
question, how does the Edibility field relate to the actual edibility in-game? Is it a 1:1 where 10 edibility = 10 health/energy restored or is there a calculation involved?
there is a formula and its not equal for both health and stam
unfortuinately i do not remember what wiki page its on,
nvm i found it
"A numeric value that determines how much energy (edibility × 2.5) and health (edibility × 1.125) is restored when this item is eaten. An item with an edibility of -300 can't be eaten, values from -299 to -1 reduce health and energy, and zero can be eaten but doesn't change health/energy. Default -300."
thank you! I checked the item page but couldn't find it.
fascinating
there's a constant factor
plus it gets rounded
I find it's too annoying and just look at vanilla foods
i just guess a number lol
i think spacecore allows you to set arbitrary values? dont quote me on that tho
This is probably a really dumb basic question, but when I am editing code in a content.json over and over is there a way to load/reload that into the game without closing the game and relaunching it over and over every time I make changes?
!reload
-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload YourMod.UniqueID
-C# Visual Studio has a feature called Hot Reload
-C# Rider also has Hot Reload
-Generally working in C# it will be called "Hot Reload" (usage may vary)
hm, i wonder if that command should specify that its dynamic tokens that are a forced restart not normal tokens
okay, I have two other dumb questions regarding fish. First off, is it required in the item data that Type be Fish and Category be -4? I assume so but
You mean for them to be catchable from locations? If so it dosnt need to be of type fish / category -4 (I think anyway)
You can fish up trash and even big craftables, so yeah, not required for the fishing itself.
The category is mainly for cooking recipes I think?
And collection, I believe
according to the wiki -4 is also affected by the fishing professions
The sell price would be, yes
so in theory you could fish up, say, tree fruit?
Yeah
One part of the game has you fish up a Void Mayonnaise.
It might be hardcoded, mind you.
Really? I can't recall having to fish it up 
You don't have to, but in a minmax you might not have a better way to get it.
I just didn't even know it was an option in the first place lol
And to our eternal frustration, CA massively lowered the fish chance in 1.6.9.
Is there an in-game clue to this? This is such a wild way to get it if it's unprompted lol
Well, you can fish it in exactly the same place you need to use it.
wasnt it in the witches swamp so you can pass to the hut
Yeah, that's what I'm seeing on the wiki, I just don't recall that ever being obvious
Okay so I tried fiddling away with the code in multiple ways, tried moving around the wall items by the upper and lower wall separately but it was still wonky and I can't really explain it, but this is the result of me just trying to move only the floor items:
https://i.imgur.com/CZCqag0.png
{
"Source": { "X": 0, "Y": 6 },
"Destination": { "X": 3, "Y": 6 },
"Size": { "X": 8, "Y": 9 }
}
],```
that i only got to know through this discord too tbh lol
Lots of fishing secrets aren't made obvious. Iridium Krobus Statue has no clue, does it? (Or maybe it's in one of the secret notes)
i dont think it has a clue
This is where 3,6 should be:https://i.imgur.com/fOdJlVP.png
I think even the Gourmand Statue is just a secret.
debating if i should add more handkerchiefs or move on 😔
you know my answer
Don't ask how a fishing rod can pull up a 2500 lb statue. Forest Magic™
Gourmand at least has a stupidly high drop rate
Is it possible to use console commands to set it so you've never spoken to a character before? I need something like this to make it possible to test some code.
Void Mayonnaise used to have a pretty high drop rate too, it was only lowered in 1.6.9
I think I only knew about the Iridium Krobus from game files
It was like 1 in 5 or something, IIRC.
What are you trying to test?
There's no command to make an NPC untalked to before, as far as I can tell, but depending on what you're trying to do it might not even be necessary to do that
"Never spoken to" is actually a relationship state, that is having no Friendship entry in that dictionary. No console command for that: https://stardewvalleywiki.com/Modding:Console_commands#Relationships
I'll try that.
But you say you're testing code, so you could pretty easily register your own console command to delete the friendship data from the dictionary.
...I think.
thats all it should take yeah
Basically, there's some code that's supposed to trigger when you've talked to a certain NPC in our mod for the first time, and I think the reason I can't get it to trigger is the fact I've talked to him in an earlier build.
Clearing friendship entry might resolve that but it depends if there's some intermediate state like a mail flag involved.
I'll try it.
afaik everything that matters will return unmet if there is no dictionary entry, including content patchers relationship token
Now I remember what the second question I had was!
Can context tags take . or is it only underscore?
Related: can they have tokens, e.g. {{ModId}}_item?
yea if ur in content patcher
Since tokens are resolved by CP before being added in: yes, just keep in mind if a token changes value it'll only change the context tags for new items since items retain their data
thank you!
I changed the appearance of some of the furniture/objects to make it easier to identify which ones are moving where:
https://i.imgur.com/8axWpuu.png
This was my most recent attempt.... :
{
"Source": { "X": 0, "Y": 6 },
"Destination": { "X": 3, "Y": 7 },
"Size": { "X": 9, "Y": 9 }
}
],```
I am so confused 
Which items specifically aren't moving where you expect them to? Because the bottom left blue flowers seems to be mostly correct in both instances, (likely because it's outside of your source range)
is it worth trying to move one tile at a time and make them separate moves rather than grabbing the whole rectangle area, at least while troubleshooting?
All of the floor items
This looks like your tile coordinates are off
the plants, lamps, carpet, floor pillow
If you use debug ppp while standing in your item's destined location (the top left corner of the selection box), does it match up with what you got from debug mode?
Only the top blue and pink plant and the middle lamp
Everything else is in random spots
for the previous attempts it was even messier
this was the first one when I tried to move all the items, including wall stuff
Have you tried to individually move one of the items that is placing wrongly, just to be sure?
I tried to move the wall items separately from the floor items, but right when it seemed to be proving fruitful some weird stuff happened where half of the top section moved all the way over to the right way outside of the coordinates, and one of the left plants were missing
This is the layout of the floor items:
https://i.imgur.com/fNozvbF.png
They are all supposed to move to 3,7
Well, like the top left corner of the layout is
Only the top row seemed to behave this time around, minus the carpets...
The carpets did their own thing
And your new map is expanding from the right and down of the old map, right?
So your coordinates for the walls at the top and left are the same?
It would normally look like this if I didn't use the IndoorItemMoves:
Okay, that answers my question
And if you only did a vertical move, do some of the items still move out of alignment?
I can check, just a sec
https://i.imgur.com/6reSoId.png
{
"Source": { "X": 0, "Y": 6 },
"Destination": { "X": 0, "Y": 7 },
"Size": { "X": 9, "Y": 9 }
}
],```
https://i.imgur.com/uPQzzqf.png
{
"Source": { "X": 0, "Y": 6 },
"Destination": { "X": 1, "Y": 7 },
"Size": { "X": 9, "Y": 9 }
}
],```
I tried 2 different coordinates just in case I messed up with the 0
I did 0,7 and 1,7
Which should've put them down 1 tile if I am not being super dumb
I am so confused lol
Well, you could always try creating individual entries for each thing you want to move
Like for each individual tile?
Yeah, that was why I said to try it one one to test first
Only other weird thing I'm seeing is that your Size X is 9 but probably should be 7. I have no clue if that would cause issues though
Oh, the size is a good call, change that too
Yeh I made it bigger after a few attempts
I was still having issues when it was a 7 x.x I made it bigger just in case I was making it too small
Quite honestly, I would have tried each of the corners individually, as a 2x2 or 3x3
I'm wondering if it's having issue with placing the items because of collision checks
And then if it still got wonky, try moving it only on one axis.
With these size based movements, I could easily see this grabbing something that was already moved and moving it again lmao
Rather than establishing all the moves that need to be done and then completing them at once, it does each move then goes to the next
So if you aren't moving them far enough away, the overlap would mess it up
Doesn't seem to be working either
https://i.imgur.com/j5s2lyY.png
There is a hanging plant still stuck at 1,1 - and for some reason the hanging plant on the right swapped with one of the blue hanging flowers?
{ "Source": { "X": 0, "Y": 1 }, "Destination": { "X": 3, "Y": 1 } },
{ "Source": { "X": 1, "Y": 1 }, "Destination": { "X": 4, "Y": 1 } },
{ "Source": { "X": 2, "Y": 1 }, "Destination": { "X": 5, "Y": 1 } },
{ "Source": { "X": 3, "Y": 1 }, "Destination": { "X": 6, "Y": 1 } },
{ "Source": { "X": 4, "Y": 1 }, "Destination": { "X": 7, "Y": 1 } },
{ "Source": { "X": 5, "Y": 1 }, "Destination": { "X": 8, "Y": 1 } },
{ "Source": { "X": 6, "Y": 1 }, "Destination": { "X": 9, "Y": 1 } },
{ "Source": { "X": 7, "Y": 1 }, "Destination": { "X": 10, "Y": 1 } },
{ "Source": { "X": 8, "Y": 1 }, "Destination": { "X": 11, "Y": 1 } }
],```
Maybe I need to reverse the order?
Where are you getting your source numbers from?
I think it might be based on the new locations coordinates and not the old
Based on your new location all those Source coordinates would be the top of the map where nothing is
I was taking them from the new location
I tried the Y 0 but nothing moved, once I changed to Y 1 things moved
Oh, those things up top did move
I tried reversing the order, hoping it would help the priority?
https://i.imgur.com/KRVN2BV.png
The hanging plant on the left is where it should be now, but the blue hanging flowers decided to randomly go to the right still
{ "Source": { "X": 8, "Y": 1 }, "Destination": { "X": 11, "Y": 1 } },
{ "Source": { "X": 7, "Y": 1 }, "Destination": { "X": 10, "Y": 1 } },
{ "Source": { "X": 6, "Y": 1 }, "Destination": { "X": 9, "Y": 1 } },
{ "Source": { "X": 5, "Y": 1 }, "Destination": { "X": 8, "Y": 1 } },
{ "Source": { "X": 4, "Y": 1 }, "Destination": { "X": 7, "Y": 1 } },
{ "Source": { "X": 3, "Y": 1 }, "Destination": { "X": 6, "Y": 1 } },
{ "Source": { "X": 2, "Y": 1 }, "Destination": { "X": 5, "Y": 1 } },
{ "Source": { "X": 1, "Y": 1 }, "Destination": { "X": 4, "Y": 1 } },
{ "Source": { "X": 0, "Y": 1 }, "Destination": { "X": 3, "Y": 1 } },
],```
I have a feeling if I keep going with the pattern that things will start to randomize again, cause idk why the dried flowers are on the right
The dried flowers were originally at 2,1 - should be at 5,1 but they're at 11,1 o.O
I'll try one more thing I can think of
ugh that reload patch command thing yall gave me earlier is chefs kiss idk how I went so long without it
I think you have to get more granular with the order of moving things

Apparently it did not like that extra line of code that moved nothing
{ "Source": { "X": 7, "Y": 1 }, "Destination": { "X": 10, "Y": 1 } },
{ "Source": { "X": 6, "Y": 1 }, "Destination": { "X": 9, "Y": 1 } },
{ "Source": { "X": 5, "Y": 1 }, "Destination": { "X": 8, "Y": 1 } },
{ "Source": { "X": 4, "Y": 1 }, "Destination": { "X": 7, "Y": 1 } },
{ "Source": { "X": 3, "Y": 1 }, "Destination": { "X": 6, "Y": 1 } },
{ "Source": { "X": 2, "Y": 1 }, "Destination": { "X": 5, "Y": 1 } },
{ "Source": { "X": 1, "Y": 1 }, "Destination": { "X": 4, "Y": 1 } },
{ "Source": { "X": 0, "Y": 1 }, "Destination": { "X": 3, "Y": 1 } },
],```
You might also want to try doing a full close the game and relaunch it occasionally, patch reload is nice but sometimes the game doesn't like when you do it lol
Ohh good advice
Okay now that I have all the lines that for sure move an item/object and know the dimensions 100% I am gonna try fiddling with the size option again and see if it'll behave this time, if not then I will continue moving things individually and keep going row by row to make sure nothing is weird >:3
{ "Source": { "X": 7, "Y": 1 }, "Destination": { "X": 10, "Y": 1 } },
{ "Source": { "X": 6, "Y": 1 }, "Destination": { "X": 9, "Y": 1 } },
{ "Source": { "X": 5, "Y": 1 }, "Destination": { "X": 8, "Y": 1 } },
{ "Source": { "X": 4, "Y": 1 }, "Destination": { "X": 7, "Y": 1 } },
{ "Source": { "X": 3, "Y": 1 }, "Destination": { "X": 6, "Y": 1 } },
{ "Source": { "X": 2, "Y": 1 }, "Destination": { "X": 5, "Y": 1 } },
{ "Source": { "X": 1, "Y": 1 }, "Destination": { "X": 4, "Y": 1 } },
],```
Hi everybody! The modding wiki is now updated with a new, thorough 1.6 tutorial on adding new fish to the game! Add ALL THE FISH! https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_New_Fish
Adding a new fish to the game has never been easier than in 1.6; nowadays, fish are a simple set of patches via Content Patcher. There are four required steps: you need to load sprite images, define the fish (as an item, and as a fish) and add it to locations. Optionally, you can add aquarium sprites and data, and fish pond data. I'll be using ...
Friends, does anyone know whether or not there is a reason why the "When": { "HasFlag:anyPlayer": "Island_W_Obelisk" }, would be just.... not working for one of my patches?
The wiki says it's a legitimate mailflag for when the Farmer has unlocked the Farm Obelisk, and my JSON is valid
But the map patch isn't happening
Coming back to my mod project trying to remember wtf I was doing and how my code worked
Or more specifically how it's not working
Did I actually write all of this?? I don't remember that 
I assume nothing is happening in your log? Did you just unlock the obelisk today?
yeah, just used debug commands to get the walnuts and unlock it so that it would be easier to test
nothing in the log
Sleep and see if it works the next in-game day
it's added to "mail for tomorrow" on construction, yeah
ahhh, I see.
You will have to post it in a more readable form if you want help with that 
slightly awkward then
It's a roof view of the island farmhouse, so it's a bit weird to have the obelisk there but not on my map when it instantly poofed into place in the vanilla map xD
HasFlag does claim it checks tomorrow's mail in the CP docs, though 
Mailbox flag was instant, so I wouldn't expect that one to be delayed.
Nah I'm just joking about how much I have to read through lol
(I can talk about non-help-requests in here, right?)
Yep anything's fine as long as u be making a mod
....and nevermind, I don't think the mailbox flag was instant either, I didn't fix that post in the map file
Island_W_Obelisk and Island_UpgradeHouse_Mailbox are both coded identically (and right next to each other), so maybe there's another issue involved
ah, nvm
It's just that ppl come here with unreadable screenshots with intent of asking question all the time
I've been saving so many copies of this dang map
Question, does anybody know if 1.6 changed the code about mouse events?
(How/where they're handled, etc.)
Should not have any changes
Did you try typing really fast like in the movies
Hmmm
It's working now after a sleep, yep
Looooong island hut
I might have broken my own code when I last worked on it, I can't remember now
I know I had simulated clicks working at one point
Yeah, had to fake scaling it because building interiors don't follow the rules xD
I just need to remove the bonus windows now
Oh the thing I thought was wrong is not the thing that is actually wrong
does the patch have an UpdateRate which would give CP a reason to revalidate?
It does not
out of the box Contentpatcher only revalidates on daystarted
Ah, so even if I just did a "OnLocationChange" update rate, it would possibly be able to apply the patch same day?
yes
A little harder to test on that file now that I had to sleep a day. xD
Okay, does anybody know why this code would produce a click with a significant offset?
if (config.leftClick.JustPressed()){
ICursorPosition cursorPos = this.Helper.Input.GetCursorPosition();
Game1.activeClickableMenu.receiveLeftClick(Game1.getMouseX(), Game1.getMouseY());
Monitor.Log("Recieved left click", LogLevel.Debug);
return;
}
I'm not sure if I'm doing something stupid or what
I think this worked before 1.6 though
Okay I found uimode
Looks like it takes an Action but I can't figure out how to convert the getmousex into that, is an Action a c# thing?
Trying to find a c# documentation somewhere to find that out but google hates me I think
Wait I think I'm looking at the wrong thing
Hmmm
does [ContentSerializer(Optional = true)] do anything of note when it comes to making content patcher custom assets
Can't remember how to build my project now
I never work in c#
Might not have enough things installed on this computer yet
Should probably read the instructions again
!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.
ive used those attributes before and i can confidently say that i have no idea
ive never used those cus nothing seems to explode when you dont
i took the idea to use them from someones repo but i dont remember where or when
it is just that
they r a lie when it comes to content patcher anyways
things not marked with ContentSerializer can still end up being null
Okay this might be a stupid question, but I can't figure out how to get dotnet6
I installed the ubuntu backports repository because it looks like they've made only dotnet8 available through the regular repositories since I last installed it, but I can't figure out what the package is called to install it now
I don't think you need to install the dotnet 6 SDK, you just need to target 6.0
you can use any SDK/runtime that's newer
(No)
I suspect it's used for the xnb builder
Oh you might be right
I did have to install a sdk of some version at least though (didn't have 8 either)
I did figure out the problem, though, which is that microsoft said on their backports page that you don't need to run apt update after adding their repository, and that was just a straight-up lie 
Also thanks for this, this fixed most of my problems
if ur on linux u can use the manual dotnet install script or AUR
The item docs on the wiki have been overhauled!
See Modding:Items for the new overview page, which links to more specific pages like Modding:Objects. That also includes new pages for the previously undocumented wallpaper/floorpaper and mannequin item types.
Does someone have a list of mods that will enrich fishing and such?(except cheats)
if you want to make it optional, correctly mark it as nullable in C# syntax.
Vanilla can't because of legacy branch (and other reasons) meaning it can't use anything that the old .NET Framework builds dont have
#modded-stardew would probably be a better place to ask
does anyone know why nexus is simultaneously saying that my mod is and isn't published 😭
is that common initially?
Common enough
Depends on what they're doing to their backend/the current traffic and whatever is happening with caching at any given time
thanks. I'm kinda freaked out because I have no idea if I uploaded it right lol. Why is uploading to nexus more complicated than writing the mod 😭
Older than dirt website 
nexus has a CDN, so depending on how stuff is migrating around and which node you hit, you see different results
generally you gotta wait some amount of time for things to become consistent
I think it's worked out now. Thanks for bearing with me guys 😅 this is a massive favour to ask, but would any of you who know what you're doing be willing to check that I uploaded it correctly? if not dw, I just want to make sure
I suggest adding install instructions on Nexus (see template mod page on the wiki) and a code license on GitHub, but otherwise that looks fine to me.
Thanks for checking! Can't believe I forgot a license haha
Install instructions: Even though 95%+ of mods are installed the same way, every mod can be someones first mod! So I usually try to add instructions
it never hurts to start with 'download smapi, download the dependencies, download this mod, then add them all to your mods folder'
hmm didn't know the mod page template exists
hm i forgot to add the install instructions on some mods
here is hoping the smapi requirement is sufficient
u know it won't be
sve compat?
nou
I got a comment asking that on my desert festival foods mod, like i'm just adding recipes what the hell am i infringing on?
(Fun fact: someone once asked if SMAPI is compatible with SVE.)
my god they're everywhere
people just want to be sure. sometimes i wonder how much worry old-love of cooking caused when people installed a cooking menu mod and had it change recipe buffs
any mod can do anything
can i learn to cook with loc
i mean SVE changes a lot of things, that wouldnt even be that out there of an overlap
i am entranced by the pizza animation...
of course. just fry some sugar and milk in a pan for a while to get icecream
sorry fry?
you joke but this is a thing in hongkong
All sorted now! I also added a readme to my repo (which I also forgot, too long spent without coding 💀)
...but will it 
LOC is unrealistic, you need to also add copper/iron/gold/iridium pots/woks/spatulas/ladles/baking trays alongside the frying pans
or you could just change the pan to 'cooking set'
prismatic yolk separator
Loc is unrealistic. Where is my best knife, bluebs
And my bench scraper
And my silicone spatula
sorry, your frying pan is iridium but you didn't upgrade your egg beater, no ice cream for you
this recipe requires an orichalcum tea strainer.
What if it is protein powder ice cream
reminds me of the cheese scraper I bought on a whim and used exactly once some time last year
use it again rn
i know it should be fairly self-explanatory, but what exactly does a cheese scraper do
grater
the word is grater
english hard
is it those mysterious wedges with holes i seen on tom and jerry
Oh I have a cheese grater
tbf cheese scraper is almost a thing too
I use it 100% to grate bars of soap
doesn't everyone have a cheese grater? how do u grate cheese
you were close
someone who eats cheese once every 2 years
I don't grate cheese, I take bites out of the block like a savage
Dude I can eat an entire wheel of brie by myself in a week
but can u homf a whole stack of 999
Probably not tbh
very briefly there have been SMAPI builds that are incompatible with SVE, if viewed in that specific direction
A week? That's like, less than an ounce a day.
Okay so I have tested a whole lot of different methods now, including moving the floor items column by column, row by row, individually, by the whole area, and I am lost 
This is the closest I have come to success, and I still feel like this will fail as soon as I put a 2x2 wall item in the mix instead...
https://i.imgur.com/8QLywUF.png
{ "Source": { "X": 7, "Y": 1 }, "Destination": { "X": 10, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 6, "Y": 1 }, "Destination": { "X": 9, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 5, "Y": 1 }, "Destination": { "X": 8, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 4, "Y": 1 }, "Destination": { "X": 7, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 3, "Y": 1 }, "Destination": { "X": 6, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 2, "Y": 1 }, "Destination": { "X": 5, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 1, "Y": 1 }, "Destination": { "X": 4, "Y": 1 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 7, "Y": 3 }, "Destination": { "X": 10, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 6, "Y": 3 }, "Destination": { "X": 9, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 5, "Y": 3 }, "Destination": { "X": 8, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 4, "Y": 3 }, "Destination": { "X": 7, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 3, "Y": 3 }, "Destination": { "X": 6, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 2, "Y": 3 }, "Destination": { "X": 5, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 1, "Y": 3 }, "Destination": { "X": 4, "Y": 4 }, "Size": { "X": 1, "Y": 2, } },
{ "Source": { "X": 1, "Y": 6 }, "Destination": { "X": 4, "Y": 7 }, "Size": { "X": 7, "Y": 9, } },
],````
What am I doing wrong??
The layout without IndoorItemMoves looks like this normally (minus a few changes I made to items to help me differentiate which ones were moving where after a few tries) after an upgrade:
just so yall know how wonky this is
This is when I did each individual tile:
Please ping me if you reply to my plea
I might pass out soon 
hi, uh, I want to modify the game's quest, but the wiki is very ambiguous, is there a more detailed guide?
A regular quest (like Robin's axe) or a special order?
do you guys ever open what you thought was an old mod of yours but is actually a big plate of spaghetti? because I just did 😭 there's more errors than code I think
Even my working code reminds me of spaghetti usually
so imagine a single project with like three mods all mixed together, all using outdated functions from pre 1.6 and with no comments to be seen 
all in one class file
I was going over my code for fish while writing my tutorial and past me has stumped myself with what one of my context tags is for
Essentially my junk drawer project but I started in 1.6 so nothing has become outdated yet lol
the sidebar showing all the errors 
I've definitely opened a few old mods intending to update them and decided I'd rather just rewrite the whole thing than look at all that red
that's likely going to be where this is headed
because it also has hard dependencies on multiple mods (I think I might have hardlinked their dlls?)
but hey, it was compatible with ridgeside lol. Idk which part needed special ridgeside compatibility, but something apparently did because there are patches for that in the code
Successfully fixed my mod 
Now I need to remember what else I wanted to do with it lol
I should have made a todo list
I know I want to put some visual indications of what keyboard shortcuts do what into the game but that involves figuring out how sprites work I think...
Or maybe not, I'd mostly be adding text
I'm not really sure what it would involve
Which is why I haven't done it yet lol
A regular quest
the special order's description is very detailed
I need more about regular quests
I don't think we have any tutorials about quests 
Your best bet might be to find a mod with them implemented in 1.6 and look at what it does
Ridgeside and Lousis's Garage off the top of my head do, but I don't know if they're implemented in CP
I think Jane does?
I'm honestly shocked any part of that mod still works but here we go (original light radius in the top right, modified radius in the middle). Now time to see if I can apply it to non-craftable lighting
Have you looked at [[Modded:Quests]]
Op
[[Modded:Quests]]
It would work in-line, might not be called that lol
[[Modding:Quest data]]
I would assume they have though, because this page is microscopic lmao
Tbf it's a pretty straightforward string delimited
The only fancy shenanigans I can see involves understanding what you can get away with in terms of dialogue 
its straight forward to map the indices to the things they c ontrol, yeah, but looking at this page, id have no idea how to make like, any quest that i dont manually remove with a trigger action
like, what goes in "Solution/Trigger"
what the heck are all the quest types
Oh it is old, appending with modid# rather than the cp token
A lot of quests are completed through hardcoding lol
While true, "what the heck are all the types" I do tend to stare at the unpacked for thr mysterious questions
Yeah AFAIK special orders were kind of meant to... replace...? Modded Quests?
the unpacked wont tell you if all the types are used in vanilla though
special orders still have time limits that you cant get around without C#
not quite quest replacement
i also doubt CA is really thinking that much about mods when adding entirely new features
That's fair. There are a few things that definitely screams, "built for modded" though like the animal skins
thats far from the "entirely new f eature" i meant though
Rise up for updated data models 
0 days since selph begged for crafting/cooking data model in vanilla
Does a mail flag's name have to already exist in Data/Mail for it to be sent by AddMail in an event or trigger action? This would be for a flag that is not an actual piece of mail
mail flags dont have to correlate to real mail
so they dont have to exist in data/mail at all
OK, thank you. I'm kind of confused because I followed advice (I think yours) the other day about incrementing stats to affect mail counters, but it doesn't seem like the mail part is working although the stat part is. This is the code: { "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "{{ModId}}_StartPierreJail14": { "Id": "{{ModId}}_StartPierreJail14", "Trigger": "DayEnding", "Condition": "PLAYER_HAS_MAIL Any {{ModId}}_Flag_StartPierreJail14", "Actions": [ "AddMail All {{ModId}}_Flag_PierreInJail", "AddConversationTopic {{ModId}}_PierreInJail 15", "IncrementStat {{ModId}}_PierreJailSentence -99999", "IncrementStat {{ModId}}_PierreJailSentence 15", "RemoveMail All {{ModId}}_Flag_StartPierreJail14", ] }, "{{ModId}}_PierreJailTimeServed": { "Id":"{{ModId}}_PierreJailTimeServed", "Trigger": "DayEnding", "Condition": "PLAYER_HAS_MAIL Any {{ModId}}_Flag_PierreInJail", "Actions":[ "IncrementStat {{ModId}}_PierreJailSentence -1", "If PLAYER_STAT Any PierreJailSentence 0 0 ## RemoveMail All {{ModId}}_Flag_PierreInJail", ] }, } },
have you waited a day
one day after the event yes
i dont remember which mailbox player_has_mail checks by default
and the stat counter changed, but the mail pieces didn't seem to fire
because you haven't specified a <time> after the mail's ID, it will get sent as a real mail "tomorrow"
ah ok
AddMail All {{ModId}} Received is what you're looking for as a "flag"
if its just a flag and not a real letter actually it shouldnt be stopping those triggers from working
it would jus lead to a phantom letter in the mailbox
since player_has_mail checks "Any" mailbox which includes "coming tomorrow"
are these triggers supposed to be repeatable?
yes
if you're trying to do a daycounter though, IncrementStat will not work afaik because IncrementStat won't be readable?
you'll need to add "MarkActionApplied": false to them then
you can read player stats
i can't remember exactly what i was trying to do, but the incrementstat thing when i was trying to lengthen a process would be screwy in terms of it's activation
so the weird part is this... the "IncrementStat" counter is incrementing as intended, which means PLAYER_HAS_MAIL Any {{ModId}}_Flag_PierreInJail is evaluating to TRUE, right? but this is what I get ont he console
theres nothing wrong with incrementstat as long as you get the timings right
ah
i just kind of got around it by using addconverationtopic <modid> days as my own counter
have you double checked thats your modid?
also when you say its incrementing as intended do you mean the -1 in the second trigger action?
or do you mean the 15 in the first?
yes, it is getting -1
I originally had it set to 3 for testing and when i checked it, it said 2
then you are removing the mail right after?
i'm only removing the "start14" mail
thats not what your json says
I remove the: "PierreInJail" mail after the counter reaches 0
"If PLAYER_STAT Any PierreJailSentence 0 0 ## RemoveMail All {{ModId}}_Flag_PierreInJail"
this is removing the mail that it just checked for
yes if the stat is between 0, and 0. correct?
correct. not the start14 one
that's the intended behavior
so then of course the GSQ will evaluate to false after, you just removed the mail
This is the part I mean: "Condition": "PLAYER_HAS_MAIL Any {{ModId}}_Flag_PierreInJail", "Actions":[ "IncrementStat {{ModId}}_PierreJailSentence -1", "If PLAYER_STAT Any PierreJailSentence 0 0 ## RemoveMail All {{ModId}}_Flag_PierreInJail", ] },
i know. you are removing the same mail that the condition is checking
oh
You're checking the wrong stat
you've forgotten {{ModId}}_ before your If
ah thank you
so it's defaulting to 0 0 because it doesn't exist
i got confused by the removing start14 thing and missed that entirely
I had to jump around a bunch before I even noticed it lol
: )
brain no good brain had a sushi nap
8 pairs of eyes, 0 brain cells among us
I'm wearing glasses, so that's an extra pair
time to see what uber will force me to do today
so while I'm updating this, it would be better practice for me to put "received" after I set the mail flag?
yes
otherwise, the player will get a letter icon over their mailbox
but when they click it'll do nothing
Spooky
"must have been the wind"
i can't update a sprite while a player is looking at an NPC, huh
Make their previous skin slough off, to reveal the new
the inner demon is speaking to a "bucket" item that can be gifted to my shopkeeps that forces their dialogue to say "Must be the wind."
with, obviously, a bucket on their heads
some may call this junk...
PTSD activated
i mean i'm already putting in the pothat "Let Me Solo Her" for tia 
are you also adding the dual Rivers of Blood
i do not want to go down the crazy rabbit hole of dual wielding that casey has done
i can probably make them floating trinkets though?
shadowcloned trinket 
have the parrot swarm cover them up while the asset swap occurs which ginger island uses to do various upgrades
id download a mod just to see that
oh y'know ig i can just force an event
Terraprisma
force event upon bucket gifted, it updates sprite after event
can you make an event that is just a fade to black then it fades out bc the event instantly ended
(wired brain, figure out how to put hats on NPCs)
like your farmer blinked or something
probably yeah
i'd have to dynamically get the farmer position using c# and write said event in c# though
what do u mean probably i was asking you specifically bc you're the person i know who does events 
i know my limitations 
i was thinking it would be like there wasnt an event at all so no need to get the positions
just literally like you talk to them, screen fades to black, then it fades back in as if nothing happened, but the npc has changed
since i dunno another way to trigger a fade to black in vanilla on the spot like that
that would still throw them back to a warp location though iirc
i'm probably also misremembering end and it just dumps the farmer in the position that the event started on, right?
really? huh
yeah that's what i meant
what about events that start from a tile action though?
Just draw a black box on the screen that's 10kx10k
i think i'd have less of a hassle just dynamically getting the farmer position per npc gifted
Actually the community centre intro one has one to end someone on the exact tile, but isn't where they started
while broadcastEvent that hijacks multiplayer people leaves them where they started
yeah events can choose where to dump the player when it ends





