#making-mods-general
1 messages · Page 306 of 1
but hm that is significantly more patches 
I mean, you can convert that to a vector with an implicit origin
(I'm mainly rage baiting at this point)
^calcifer_tv_x(-?\d+(?:\.\d+)?)y(-?\d+(?:\.\d+)?)s(-?\d+(?:\.\d+)?)$
But I feel it’s not a vector when it’s defining an area
anything can be vectors if you use complex numbers to describe it
S being height or?
Chatgpt, draw me a picture of me wearing a patchwork dress
Coordinates are vectors but what dot product are we calculating
Maybe when I get home I can break out the pixel art and draw a really blurry picture
Smh go home
I’m gathering the willpower 
s is the number i will postfix into getScreenSizeModifier 
Why won't my NPC follow their schedule and won't speak to me despite having a schedule and dialogue? Are there any steps I'm missing out?
I guess width = x and height = 1 is prob fine
There are so many reasons schedules can go wrong
I would start with the dialogue though
the aspect ratio is fixed i think
That’s a less common problem
For example, the character may have adhd
And thus probably more likely to lead you to the root cause
are they following a different schedule, or just not moving
iirc null schedules were Bad™️ but can't remember if 1.6 made them less bad or not
did you start a new save or sleep a day?
I slept a few days
Anyone know where the wells are?
Go home 
Would it be possible to implement a check if current map has enemies and prevent player from doing certain actions if theres enemies on map the player is currently on, like changing equipment?
I lend you willpower
Including the schedule is enough right? I don't need to do a load?
you need to load/edit the correct schedule asset for your NPC, yeah
actually where does furniture grab context tag from 
Not in buildings?
Oh, nvm, I found it. It was in the buildings folder, I just missed it
It was at the very end
(you'll also need to do it for your dialogue, if you haven't)
So I need to change Include to Load?
backing up
in order for the game to see any of the data in your mod files, you have to provide it by loading (or editing) it into assets
we can't see your schedule data, so it's very difficult to give specific guidance. you need to make sure your schedule entries are put into Characters/schedules/YourNPCInternalName
Include is just a way to break your content.json Changes to be across multiple files.
Load loads files from disk and puts them into the asset pipeline as-is.
Edit* edits assets within the asset pipeline
I wish that’s how this worked lol

yes but requires C#
Thanks ichor, I will fix up my entries now
Monsters are in the characters list on the location
the debug step that would have also shown this btw is patch summary <modid> and the edit data for your schedules would show that its not applied
Hey, sorry about this, but I seem to have forgotten how to select and move portions of multiple layers. I know I can select them all with command/ctrl, and I had collectively moved them all once, but now I can't seem to figure it out
Yes, but I can't seem to collectively move portions of them afterwards
Or even all of them at once it seems
Ok so it's saying there's an error with my Schedule.json although according to smapi.io, there is not. Could the issue be that I only have a test schedule for spring only before I do it for real?
Oh, I think I finally got rectangular select to work. Sorry about that
So I have no schedule for summer, fall and winter. Just a short schedule for spring. I am in spring, but smapi is erroring
What does the error say? A spring-only schedule should work fine, that's what most of my npcs start out with in testing
Also hi everybody
smapi's json site will only check that its valid json (according to newtonsoft) and not whether there are semantic errors in the various data formats nested within it
It says it can't parse the json even though I've run it through smapi.io
Is it in a separate file from the content.json? Check how it's being loaded
It's being loaded within my npc.json which is included in the main content.json. There is also an error when I try talking to them so I'm doing something wrong:(
Hmm
Are you doing a blank load and then adding the dialogue/sched via editdata, or just putting them directly in the load patch?
Here is the relevant part of the json - I have confused myself lol { "LogName": "Dialogue", "Action": "Load", "Target": "Characters/Dialogue/AnyaLilybrook", "FromFile": "Data/NPCData/BlankDialogue.json" }, { "Action": "Load", "Target": "Characters/Dialogue/AnyaLilybrook", "FromFile": "Data/NPCData/AnyaLilybrook/Dialogue.json" }, { "Action": "Load", "Target": "Characters/Schedules/AnyaLilybrook", "FromFile": "Data/NPCData/AnyaLilybrook/Schedule.json" },
an actual error log is much preferred for debugging
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 16 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
It's all a jumbled mess in my head!
what do the first 3 lines of your AnyaLilybrook\Schedule.json look like?
"Changes": [
{```
Log says it's got an extra [ in the schedule.json, so check the square brackets in there for an extra of that
double check that n++ (or w/e) has actually saved the file and also that its not a different copy you were editing
Although it might be that it's expecting just the entries section, so no Changes section needed in those jsons at all
Here's the full json, it's my test sched ofc haha ```{
"Changes": [
{
"LogName": "Anya's Schedule",
"Action": "EditData",
"Target": "Characters/schedules/AnyaLilybrook",
"Entries": {
"spring": "610 8BitAlien.Lilybrook_AnyaHouse 15 13 0/1400 8BitAlien.Lilybrook_Lilybrook 40 40"
}
}
]
}```
(It's a load, so it's expecting, well
"spring": "blah"
}```
And not a content patcher Changes list
ah, yeah, thatd be it
So I need to get rid of the changes part, ahh ok
you'd need to change more than just that line
if you Load something then it must look exactly the same way that, for example, schedules/Haley.json would look like in your unpacked content folder
in this case a dictionary of string to string
not structured like a patch at all
(which will ofc mean you cant use tokens)
I'm sorry but I don't think I understand what you mean 
you are possibly confusing Load with Include
if you were going to use load, then this is what AnyaLilybrook\Schedule.json would need to look like:
{
"spring": "610 8BitAlien.Lilybrook_AnyaHouse 15 13 0/1400 8BitAlien.Lilybrook_Lilybrook 40 40"
}
the entire file. no changes, no Entries, no target, nothing
what you probably meant to do was not do Load and use Include instead
I was initially using Include but it wasn't loading into the game at all
so this:
{
"Action": "Load",
"Target": "Characters/Schedules/AnyaLilybrook",
"FromFile": "Data/NPCData/AnyaLilybrook/Schedule.json"
},
should instead be this:
{
"Action": "Include",
"FromFile": "Data/NPCData/AnyaLilybrook/Schedule.json"
},
I will try it again though!
this will make Content Patcher treat your Schedule.json as another content.json essentially, which will then make it do the EditData patch
Is this correct? { "Action": "Include", "Target": "Characters/Schedules/AnyaLilybrook", "FromFile": "Data/NPCData/AnyaLilybrook/Schedule.json" },
Includes do not have targets
Smapi says it needs a target
an include does not use a target
(Also you would need to Load a blank json into the target to edit)
question, when adding entries to an existing list via content patcher in this case adding recipes to a machine. is there a way to see where they end up in said list?
im having an issue of a "fallback" case getting applied instead of my explicit compatibility.
new entries are added at the end of a list
wherever the "end" might be at that point in the edit cycle
others may then be added after you ofc
(this is assuming it is actually a List and not a Dictionary, which technically has no order)
Ok well no more errors now but they aren't moving at all haha
remember to sleep a day or two
will do
ah. that'd explain the issue. since Cornucopia puts all its recipes into the list including its fallback that catches any item with the milk catagory, i think its a list since its always meantioned as matching the "topmost" item possible.
yeah that sounds right for machines iirc. you can use MoveEntries to move items around if you really need to
machine output rules id assume are a list. though im bad at identifying the difference.
if its a [] its a list
if you want your rules to trigger before the generic fallback move them up yep
in this case a List of MachineOutPutRules (or w/e they are)
She's not moving after I've slept
that leads to my next question of moving around entries, though by the sound of it is just a different CP action?
Use Lookup ANything to see if she has a schedule loaded
debugging the schedule stuff itself is where i must check out, i only know how to structure the json
I haven't been fully following but I'm not certain you've got a blank load for your schedule
The dialogue is coming up with an error also without even talking to them
And you need one if you're using an Include to do an EditData patch for your actual schedule data
I do have a blank dialogue but not a blank schedule
(also Silver you can do MoveEntries in the same patch you do the EditData, the MoveEntries will apply after the Entries/Fields (but before TextOperations if thats ever relevant to you))
As I mentioned before, if you're doing an EditData patch for an asset that doesn't already exist, you need to make it exist first by Loading it.
Your NPC's schedule doesn't exist until you create it and because you want to use tokens, you Load a blank file first and then EditData to populate it with the actual schedule.
So like this? { "LogName": "Blank Schedule", "Action": "Load", "Target": "Characters/Schedule/AnyaLilybrook", "FromFile": "Data/NPCData/BlankSchedule.json" },
you can reuse the same blank.json for all your blanks if you want
Ohhh ok
Also it's schedules, not Schedule
how do i write this? and where do i write it? is it in the json?
{
"LogName": "Blank Load",
"Action": "Load",
"Target": "Characters/Schedules/AnyaLilybrook, Characters/Dialogue/AnyaLilybrook, Data/Events/CustomLocationHere, etc etc",
"FromFile": "Data/blank.json"
},
Thank you, will try it now!
Oh I'm so confused rn. Smapi errored this: [Content Patcher] 'Lilybrook' has multiple patches with the 'Exclusive' priority which load the 'Characters/Dialogue/AnyaLilybrook' asset at the same time (Lilybrook > Include Anya > Data/NPCData/AnyaLilybrook/Anya.json > Blanks (Characters/Dialogue/AnyaLilybrook), Lilybrook > Include Anya > Data/NPCData/AnyaLilybrook/Anya.json > Load Characters/Dialogue/AnyaLilybrook). None will be applied. You should report this to the content pack author.
This error happened at 610, when the schedule should have started
You're loading a blank for your dialogue and then instead of using EditData to add the dialogue, you're loading again.
So I need to change Load to EditData then. Thanks for bearing with me here. I have a condition that means I can't always grasp things as quickly as I'd like to!
No wait, I include the dialogue right?
So I have this now { "Action": "Include", "FromFile": "Data/NPCData/AnyaLilybrook/Dialogue.json" }
And then the EditData within dialogue.json
Is that correct?
Yup that's the process. Just checking, are you aware that Includes are just for keeping your files tidy? You don't have to use them if you prefer to put everything inside your content.json.
The errors have all cleared, but she's still not moving or talking. And yea I know that:)
Have you slept again?
Yep, still nothing
Do you have the Lookup Anything mod?
Nope but I can get it rq
Don't stress, it just would've made things easier.
Are you sure that your targets for your loads and EditData are correct? They're definitely the NPC's internal name as you have it listed in the Data/Characters entry?
Although LA is incredibly useful for modmaking, so I do actually recommend you get it anyway.
However without it, you can just do patch export Characters/Dialogue/AnyaLilybrook and patch export Characters/schedules/AnyaLilybrook to see what the game has for the dialogue and schedule.
Yep, she's listed as AnyaLilybrook. And I've just got LA
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 专业版, with 154 C# mods and 139 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i dont think machine control panel can cause this (it doesnt patch StardewValley.Object.OutputMachine), but none of the other patches here look like they are casting anything to Object unchecked either
is this a vanilla bug?
Yes
Ok cool well once you're back in game, go to the LA settings and turn on Data mining fields (tile lookups is also useful but not necessary for what we're doing right now). Once you've done that, you can press F1 while hovering over Anya to open a menu showing info about her. It will show what schedule she has for today and if she has any dialogue loaded.
who added rings to geodes then 
Ok, I have a dialogue for Introduction, but I just looked at the wiki and it only is for 6 days after creating a save so it won't be appearing! I will add a generic spring dialogue rq to test
Nothing seems to be wrong with the patch export of schedule though
So the schedule is there and looks normal? In that case, try double checking your maps to make sure that it's definitely possible to get between them. Is your first schedule point at the same position she spawns in or somewhere slightly different?
Hooray!
I hope I'm not interrupting, but I'm having trouble with getting a door to swing open haha
I'm not sure where I'm going wrong here
Do you have the Doors map property?
Is that not what "door" means?
That's not a map property
Doors require a map property and a tile object property in order to work
I have no clue why the entry for Action Door is referencing dialogue 
I wonder if it was meant to go with the ConditionalDoor entry instead.
Ohh...I didn't know it needed both
Yeah, it's hard to figure out without someone telling you. I'm going to edit the Action Door entry on the wiki so it tells you that you need the map property too. People usually manage to find the tile object property but rarely find the map property.
Sorry I just stopped looked at the code to try to understand how Door works and realised you've written the tile action wrong too. What are all the numbers?
This is a door that can be opened at any time
Looks like you might be using the instructions for the map property in your tile action?
Then according to what is in the Saloon, it's just Action Door
Which means I need to change the wiki entry so it doesn't show the first NPC name as being mandatory
Then what is this? Do you mean you changed it since doing this screenshot?
I moved that to Map Properties
Ah, then your problem is that the map property is called Doors with an s.
Of course...of course it is...
That's how they getcha lol
alright let's test this bad boy
Door is no longer invisible, but I can't open it...
wait hold on
I didn't change Action Door to Action Doors
silly silly
what is the difference between these two, how do i right t^2 in TILED?
No no they are different. The tile object property is just Door. The map property is Doors.
Oh. Then...why didn't it work haha
The superscript 2 is not something you put into Tiled, it's a footnote indicator. If you scroll down to the bottom of the table, you will see a superscript 1 and 2. The 2 says that putting any value into the field of the properties marked with the superscript 2 marks them as true. It means that you can't put Passable F into the Passable property to make it false.
The difference between the two Passable properties is that when placed on the Back layer, a tile with Passable becomes unpassable, while a tile with Passable placed on the Buildings layer becomes passable.
ahhhhhh ok thanks thanks
yeah I got that same log and they told me it's from mystery boxes (which has rings)
Are you sure your numbers for the Doors property are correct? The tilesheet is definitely called '1' in your map, and the lower tile of the door is definitely at 16, 21?
Yup
I literally can't tell which one of their mod is responsible for removing the ban on crushing mystery boxes though; MPS and MES doesn't do that (EDIT: Found it, it's Better Things)
What layer is your tile object on?
Hmm. That all looks correct. Try doing a patch export of the map and see if the exported copy is correct?
aye aye
nvm found it, it's Better Things
...Sorry, what would I write for the patch export?
patch export Maps/YourMapName
Ah ty
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 11 C# mods and 6 content packs.
Took me a couple tries haha...
Wait, why am I being sent a log?
Is that not how we share patch exports..?
Haha no, understandable thought, but patch export exports the entire asset from the game. Because this is a map, it has exported the entire map - in .tmx format - into C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\patch export. If you head to that folder you should be able to open the map in Tiled and check for yourself if the Doors map property and Door tile action look the same in the exported version as they do in the copy in the mod folder. If they don't, the issue is that your changes aren't actually making it into the game. If they do, we look elsewhere for the problem.
No Action Door?
Is that TileData definitely the Buildings layer? When you export a map it adds TileData for every tile so you might be on the wrong layer. The ID is different.
100% on Buildings
How are you checking that?
Hold the phone I might've cracked the case
I had another tiledata underneath my Action Door one
...Nope didn't fix it
wait so its not adding geode, but some mod letting mystery box be breakable?
Sorry I meant the one on the exported map!
Same way
yeah found the issue here
someone reported it earlier even
for now I told them to maybe remove that change or add a dependency to EMC and use the non-Object output feature for mystery boxes 
New Bundle is done 
https://www.youtube.com/watch?v=fnbIjhnwO-A
I'm scratching my head because everything seems to be correct???
Hmmm I really do not know then. I must be missing something but I don't know what it is. The only thing I can see that's different is that your map is using a tile layer format of XML for some reason instead of CSV but I have no clue why that would affect anything.
Where should one upload his mods? Nexus mods?
I bet there's a command about this topic
yeah nexus works
Nexus is the best place I'd say. (It's the most popular)
some people use github or moddrop, but those have very limited visibility compared to nexus
github is popular for beta releases though
Make real, organized releases on your github, and then put the file on Nexus as well
Github for organizing, Nexus for Marketing
Thank you, Aba. I'll ask tomorrow when more coders are active. I appreciate you helping me 
If you wanna DM me a zipped copy of your mod so I can poke around and see if I can find it, I'd be happy to. No pressure though.
my github releases are big mess and almost exclusively test builds for people 
(since chat is busy, linking my response in case you didn't see,. if you did ksorrybye
: #making-mods-general message)
Sent!
I use GitHub as a version control and since I intend my mods to be useful to other modders I'm making them public etc etc (idk I'm still new to all this) but with GitHub you don't get visibility
Idk I always downloaded mods from Nexus mods (apart some very few that had a redirect to GitHub)
ty i absolutely missed it 
terrible Things
Wdym with very organized
I'll have a look and let you know how I go
Ty! I really appreciate this
I did do the maps page update and even linked between the two doors properties so hopefully people will be less confused about that in future.
nod nod
I only used github as version control on private repos when working on my game, so idk how it works with releases branches etc when being public
when you make a release you just get a tag created
plus whatever release notes you want to write in there
Ohh ok
So it's not a normal push
nop its a github thing not a git thing
Github lets you distinguish between releases and pre-releases, it lets you tag versions, linked to specific commits, it can autogenerate release notes, it makes it super easy for someone to downgrade, sidegrade, read the code for a given version, make PRs, etc, and whatever the heck else they might want to do. There is zero ambiguity, they can get exactly what they want/need.
In comparison, Nexus is terrible on most of these fronts. What Nexus shines at, is visibility (being discovered by people), and advertising (you can make the mod look appealing and interesting). It also encourages discussion about the mod from user to user. Overall, Nexus is a better entry point, and better for casual players, and Github is better for you, the dev, and any other tech-literate person who might be interested in your mod.
Never used git idk 
it is pretty annoying to look through old versions of mod if u need to rollback yea
Wow thank you for this amazing answer
Yeah I can see how Nexus is way better for casual users who might instead get confused on github etc
on nexus
Ok what is this TileData.tx thing it's saying it needs when I go to open the map? Do you edit the map in a different folder than the mod folder?
for sdv mods tho i generally want people to just get latest version
that_picture_of_a_user_being_confused_by_how_github_works_followed_by_an_unhinged_paste_this_command_into_the_console_response.png
there r many git good practices that i am definitely not doing 
ultimately tho its just tool use it how u want
My personal strategy is to keep my nexus about one version behind my github, during active times (when i release 1+ versions per day). This makes it so the casual users on Nexus get the more stable stuff, and the advanced users that go to my github get the bleeding edge stuff. And of course my pre-releases never hit Nexus at all, because I don't expect the average Nexus user to figure out how to use pre-releases of Archipelago lmao
Alr so as of now I just have a public rep where I commit whenever I make changes, so if I understand correctly whenever I wanna make a "release" I push it witha tag or something,?
I barely expect them to figure out how to use current release of archipelago 
I don't believe so? Let me check
Ahahaha omg archipelago
Go here
Ty sm
Ah that was me taking tiledata from Haley's house and turning it into a template then shoving it into my map and editing it to suit my needs
Because I couldn't figure out how to put down a tiledata from scratch
At the top you set your tag (generally, the version number, unless shenanigans), you choose a branch to link the release to, you give it a name and write out release notes, and upload your zip
There's so many things I have to learn
you do want to have nexus release bc github is unsearchable for this kinda thing
You can just copy and paste between them, no need for a template. The template might be the issue, perhaps. I'll see if I can cut it out.
I guess the short version is: Using github is to make things more convenients for other devs. Other devs also include "you in the future"
Oh yeah for sure I must use nexus to reach public etc
But at the same time I'd want my github to be organised you now
If I accidentally open a save without certain mods loaded and the game removes broken NPCs, that change isn't permanent if I don't save the day, right?
correct*
The last line is so true
The day someone finds a super sneaky bug and you have users figuring out it happened on 5.3.3 but not on 5.3.2, you'll be very glad to easily have searchable tags so you can search for the bug in 3 commits (12 lines) instead of 499 commits (2845 lines)
yes I do speak from experience 
-# (for pedantry sake, tags are a git thing not github. Releases on the otherhand are a github thing (though Gitlab, Bitbucket and others all have similar concepts)
From what I understood frameworks are like libraries in Minecraft modding (?)
I've never made one, but at the very least, I would assume that anything that benefits devs, is 10x more important if making a framework, than if making a normal mod
in sdv mods lingo a framework mod is specifically a mod that exposes features to content
as your target audience is exclusively devs
From a functional standpoint theres just C# mods and content packs.
the term framework is vague and roughly describes a C# mod that exposes functionality via the asset pipeline (read: content patcher) or API
and people will want documentation from you
usually u can just put a md on github/gitlab/etc they usually have support
Also, from the other side, when you need something from a mod and you see this, you cry
So being good with commits and releases is nice, it prevents other devs from crying 
u can do fancy website too
bro took a photo of my github commit history /j
Yeah I'm trying to make a framework of a fortune wheel, where via API you can pass a list of "things" that have IDs, names and descriptions, than the mod automatically generates a wheel with those items and let's the player spin it to pick one of the items. After the item is selected a signal/callback is received from the external mod using the API and she can do whatever she wants with it
Like idk give an item to the player, apply an effect, etc
(Yes I did need to specifically edit some SVE 1.14.46 code, and no I was unable to because the commits go 1.14.31 -> 1.15.0-beta, and it caused me so many headaches)
I'm gonna be honest that seems like a very oddly specific task
(I had to do some things so cursed I can't repeat them in a family-friendly server, to get it to work as I needed)
nah its mine
why do i have 2 commits named "filters" in a row
at some point I do want to invest in figuring out how to get good stardew ci/cd going, to help enforce anything going near a user is tracable in version control
honeslty i should tag my releases at least even if i'm too lazy to release through git but it feeels weird with my monorepo
Some weeks are more active than others, but I think I'm doing okay for commit frequency 
tbh i think this is more about "commit more often pls" than "do github releases"
casey did most of the work https://github.com/spacechase0/TestModWorkflow but I want to see it go over the line
but having tags r nice for checking out to specific version
I do put my release version in the commit at least, even if the user has to go to nexus for the real changelogs
True, you can do either one without the other, and it has value on its own. But both together is top tier
looking at the commit history of csproj is basically the same trust
I want to get it to the point that a github release automatically pushes it to nexus
(and also have a way for smapi to cryptographically verify the build did come from that public CI run and is verified opensourcce)
i would love to never have to interact with nexus file upload
smapi itself has to play by slightly different rules, as smapi needs to be trusted by the OS not itself, but mods only need to be verifyable to smapi
but i thought the mod file upload api doesnt exist yet, did they add that in v2?
there are hacky ways to do it apparently that casey tried, but they didn't work purely due to missing a file description
slightly new topic but genuinely... Why am I unable to calculate whether this little UI piece will fit between the energy bar and the toolbar 😭
is the width property of a menu reliable
did u look at it with debug mode
i don't think debug mode knows about the toolbar
wha are u using as the ref?
i'm using the xPositionOnScreen of the toolbar plus its width plus the amount of space i deem necessary for my UI plus the energy bar width (a hardcoded number which may or may not be a good idea with ui scaling)
and comparing it to the ui viewport width
I'm not technically drawing on the UI layer which probalby doesn't help
hm toolbar has a hardcoded width
but yet it can change width with ui scaling
i think drawing ui must rescale the whole sprite batch or something
that's hacky but i like it
thats the right point of the 12th button
idk if u have to worry about scale really, if u are draw in ui context
Floor goes on the Back *tile layer
Do you mean tile layer, Sage?
Are you attempting to set a default floor for your map, and is it meant to be a decoratable location where users can replace the flooring?
If so there is a specific property for that. Otherwise, you just place the tile down on your map in Tiled after embedding your custom tilesheet.
Usually the size and position fields are used to determine the clickbox for hud elements, so they're usually pretty accurate, but sometimes don't contain nonclickable visual elements like borders.
that behavior can be overridden, though, and there's no constraints on draw code, so it might not be reliable for badly behaved menus
Readers Digest was one of my favorite mods back in 1.5, and sadly the 1.6 update is only partially working (the living off the land tips send, but the cooking tips don't and have errors).
I got to thinking though, with the changes to mail in 1.6, would it be possible to have the features in CP only and avoid the C# code? 
Specifically, would it be possible send a letter to the player on Sundays with the recipe the Queen of Sauce teaches? It'd involve a lot of tediousness to write out the code to send the individual letters on the day each episode airs and the player learns the recipe, but at first glance, it seems like it should be possible to do that in CP only :o
absolutely
Hello! So uhm, me and another user (OkPotentially, creator of Homewrecker Lance) are working to make a mod together to branch off with it in a full character expansion mod but were wanting to actually do a survey for it to build a layout board and potential ideas but I'm 100% new at this and wouldn't actually know where I'd even post something like that to get feedback, is this an okay place to ask on it as I'm starting the journey of making mods?
(my apologies)
can you put tokens inside of GSQs
I think this is a fine place to ask - I'm not sure about the server's policy on surveys and stuff but someone will come to answer I'm certain :3
Also slay with homewrecker lance creation
We are making it a full Lance story expansion
With the sprites


i'm having to finally finish writing all this marriage dialogue i've been putting off for weeks
i'm excited to be done with this part of the creation process, i guess that's a plus
then i can move on to something really unfamiliar, like designing a spouse room

i kind of know how i want it to look BUT WHAT IF I DREW CUSTOM FURNITURE SPRITES even though i can't draw
and then i have to learn how to use tiled or whatever it is
i gotta look at your mod and see if there's anything i can add to mine wrt compatibility
to whar
ohh there's only one
oh lmao
technically more but none that the other townsfolk are invovled with
ah nevermind then
The only one is his 13 heart event
lmao my bad. tbh i don't think i've even met qi in the vanilla game
WHEEZE no that's fine
i'm very good at restarting the game over and over and not getting to even the second year
"I always wondered who was placing those orders to your farm.#$b#There would always be these strange people in sunglasses and suits who came to pick it up, and then you'd come in later on for other things.$4#$b#I guess it was {{QiNameTitle}}Qi placing the orders the whole time.#$b#Not that I mind though, he pays pretty well.$1",
Pierre's response to it is this (it's essentially Qi actually making appearances in town instead of hiding himself all the time)
so if you want to add in uhh dialogue for (pre) marriage pierre that changes this you can patch it
"oh i'll date sam" "no i'll go with sebastian" "hm what about shane again" i'm wretched

As a serial restarter I get you truly
I haven't made it past Winter Y1 in a modded save yet ... yet
I'm getting there with my current farm though
(btw skipdozer i love your elsen pfp OFF forever)
no notes from me, him just going "huh that's weird" makes sense
Honestly now that I'm reading that dialogue I need to edit it for grammar but ill do that later when I feel like it
THANK YOU, i love OFF so much
I've never done game making stuff except for working on OFF spinoff games with people so its always great so see fellow OFF fans in the wild
REAL
https://smapi.io/log/3dadc9f3a43c4531ac9095a45bdba303 - I can't find what wrong, everything was working until I put a WallIDs and FloorIDs in the map properties of my tmx file
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 13 C# mods and 4 content packs.
Theoretically you could add in a response to one of the conversation topics where you cheat on Qi with the Wizard if you wanted to but I don't know if Pierre would know about that - it's the only other thing I can think of as relevant
dang i didn't even know there were OFF spinoff games, that's really cool
pierre just like "WHAT IS IT WITH THIS DARN WIZARD" lmao
😭 to be fair in this situation it's the farmer's fault
I imagine he would both be like 'well the wizard gets what he deserves' and also 'why are you like that' because he probably hates cheaters ... considering he was cheated on
i mean in my telling it's caroline's fault too, even if he blames himself for being too busy with the new shop to pay attention to his wife, but for sure he's not fond of cheaters hahah
oh i mean yeah it takes two to tango
Both Caroline and the Wizard are at fault there
Just saying he would probably not feel very bad for the Wizard lmao
right for sure
they are lovingly called spinOFFs, but yeah the most well known one I highly reccomend that a close friend of mine had made is called HOME if you ever wanna try it, its through the judge's perspective

anyway
stardew focus
What still bamboozles me and in a SVE context he is technicaly doing it a second time
Because isn't Oliva's husband alive
So in any context its yeah
wizard kind of messed up
I do not blame QI for judging him
what IS up with the wizard
your fave is problematic: he's really into married women
No she's single
(which is why you can marry/romance her)
I don't recall what happened to her ex
Oh it looks like you have a tilesheet climbing error here
(sorry if someone answered and I missed it, but)
Technically yes, but it might be a bit limited or unintuitive sometimes:
CP tokens update at specific rates (start of day, + optionally warps/time changes), while actual GSQ conditions are checked whenever the game uses them, without any caching. So if you use CP to edit a condition field to say "true" after a mail flag changes, the GSQ won't actually say true until that CP edit updates. If you just used a GSQ mail flag condition, it'd update immediately instead.
I specifically only want to use it for a number thing (though that does make sense and is good for future stuff)
i.e. a GSQ of 'PLAYER_STAT Current monstersKilled {{TOKEN}}' so the player can configure that
That's probably fine in practice, like DAYS_PLAYED {{ConfigTokenForDays}} would work the same as just writing a number there
yeah, that should work fine too
Thank you Esca! 
If someone edited their config mid-day with GMCM, {{Token}} would still say the old number until the patch updates, but then it'd just switch to the new one, etc
I'll just write a note in the description for each entry that it will update the next day unless edited from the menu
quick quesiton- and very dumb one, what form of coding is even used for the modding? 
C# does a lot, and can be used to make things that a pre existing framework doesn't allow you to do with JSONS
It can also be used to do stuff that frameworks already do but ... I don't really know why you would do that
sweating and crying as my hands shake to start learning how to code
You got this!
C# is pretty advanced but doing stuff with frameworks is pretty easy for more simple things I promise

If you ever need help for anything just ask here (and feel free to ping me and if I'm available and I know what's up I can help too)
One day I want to make a mod where your tools get dull/break and you can go to clint to repair them (and even pay him to make your weapons sharper if they aren't broken)
But that would absolutely require C#
That's what I'm learning it for though, to make cool stuff like that :3
mm drawing.. I'm drawing Qi right now (as if that's a surprise)
I wanted to draw him with all of the weapons I added with my mod :3 I already did one of them yesterday
iwan see
how do i fix it?
I can't check your log right but I'm just making sure: do you actually want the farmer to be able to redecorate this room with wallpaper of their own choice? Because that's what FloorID and WallID are for.
Put the tilesheet into the folder with your map, open map, follow the errors about not being able to find the tilesheet until you're at the screen where it is making you find the tilesheet, choose the tilesheet that is now in the folder with your map.
Then remove tilesheet from map folder.
You and Lily are making me look like such a stayer lol. I've managed to get to year 4 twice
it's only with modded, my vanilla farms are pretty long
My switch perfection save is in year 7 iirc
i got to spring year 2 once. once i finish my mod i'm going for a perfection save. tbh the main reason i'm making it is because i want to play it
making myself a spouse i won't tire of
I've never played a vanilla farm
And I usually get to year 3 before marrying anyone lol
I think I played vanilla for a couple of hours right at the beginning
I've reached perfection in Vanilla twice (and am approaching four times with two of my other saves that I haven't touched in a little)
Fun fact: Config changes invalidates the patches and will cause an update anyway
I have never and probably will never reach perfection
I've done 5? Perfection runs now I think, a few were vanilla+qol, and I've had two modded perfections, one with sve and some others, and second with a lot more than just sve, and all were multiplayer
I want to do a perfection run (for CC) with each farm type and one Joja perfection run
correction two joja perfection runs - one with just baseline joja while getting everything else myself and another where i buy perfection waivers and the walnuts
I have played multiplayer once for about 10 minutes before my wife abandoned me lol
Currently I have Four corners and the Meadowlands done - I don't remember what my other farms are though (I thiiiink one is the forest farm, and another one is the hilltop farm but im doing joja on that)
One of those perfection saves was on the 1.6 modding alpha, real world testing found a bunch of fun bugs
I'm playing a slightly modded game with my friend where we just got to winter (modded cause they REALLY like fishing so we added the aquarium and a bunch of fish mods)
mmm bugs... my favorite
hello.. so i successfully added a building for my npc.. how can i remove these plants( the ones on the patio ) from stardew expanded tho
they are fine and can be ignored but it ruins the aesthetic. Thank you.
If it's SVE you can't really do anything I don't think
Hm, if you're placing it on the map itself if you want them to really not be there then you'd have to take the bushes out of the map itself... But otherwise you can get destroyable bushes and chop them down?
by take them out of the map itself.. do you mean to remove it via tiled?
Yeah
Yeah, but since it's expanded, I doubt you'd have permission to do so...
Hmm you could probably do something to patch that entire little area the house is on
I'd probably just move the house up a few tiles tbh
But idk
Hello beautiful people, i am come here with the question. Can i add achevment with the "MymodID_something" number.
Or should i guess the number that was not used by other modders?🤔
I'll just remove it then, WallId would still work right, to be able to add wall deco
Because it's expanded you do actually have permission to edit it if you want to, but moving the house back a few tiles might be easier
just for context
Oh? I didn't know SVE was open like that. My bad
thank you.. i'll just move the house up 
Yeah it always has been, Flash just isn't like... broadcasting it. He does usually say it whenever anyone asks though (and I would know because I'm a moderator for the SVE server so I've had people ask a billion times)
Yeah, that seems like the best course of action 
honestly easier for you in the long run Luna :3

Even if SVE didn't have open permissions, you can patch a map without using any assets from the original mod so it would most likely be fine.
Ah okay! I see I see. Ty 
I think that achievements is one of the ones that don't allow strings for IDs, but I don't know for certain.
Adding to what Aba said, it's usually just nice to inform an author if you're changing up their maps in some way with a patch, so they're aware that someone is doing that and can redirect people that come to them with potential bugs (hopefully you don't have to deal with any but in the worst case scenario!)
You don't have to remove it, it's just unusual for maps that aren't farmhouses to have them so I wanted to check you did want it. I'm at my computer now so I can look at the log. I'm trying to remember what you need to be able to put decorations on the walls - it might just be setting the location type to decoratable location.
The only error you had in your log was tilesheet climbing which is completely unrelated to WallID and FloorID. Were you still having errors after you fixed the tilesheet climbing?
It is not, looks like you do have to have the WallIDs and FloorIDs too. And I think your tilesheet needs to have walls_and_floors in its name. It's been a while since i've looked into this, I'm pretty rusty.
it's fixed now thanks, but it's a game error like unknown location
i've already removed that tho, even in the content.json
You're getting that warning because you've removed it from the content.json. It was recorded in your save data and now it's not in the game anymore so it's saying "I don't know where this location is so I'll pretend it doesn't exist". You want it to do that in this situation. You can stop getting the warning by testing with a new save.
ah ok ok thanks for the help, I'm gonna take a break from coding for now, next step is coding C# to add the tractor lol
i've moved the house 
I'm having a play with custom Wedding stuff, and I am wondering what this means in the code:
[SpouseFarmerText [EscapedText faceDirection [SpouseActor] 2] [EscapedText showFrame spouse 36]]/```
if i remember it's in case the farmer name has weird characters
like you named yourself {\slash_the_first"
so does the [EscapedText showFrame spouse 36] change depending on whether the spouse is male or female? Cos female sprites are 26, males are 48
[SpouseActor] gets replaced with the second person being married, either an npc or a farmer
and [SpouseFarmerText Arg1 Arg2] will use Arg1 if married to a player and Arg2 if married to an npc
oh yeh, I forgot you can marry other farmers
so if I'm writing a custom one for an NPC it's okay to delete them
Thanks!
Now if only there was a way to move the specifictemporaryspritewed. But I have a custom map anyway.
making a custom NPC was so fun I kinda miss working one
you don't have to stop at one
you're right
But I think the fun came with me having a good idea and I don't really have a new idea yet
but I'm already hyped lol
As someone who was like 'im never gonna make another custom npc again' while developing qi... and is now going to make two technically ... yeah it's a bit addictive
I'm also eventually going to be helping Person with more fully developing their NPCs, it's just kidna fun
kinda*
what do you mean by that? :3
how are you planning to help
Person has a mod (that I think is hidden right now) that has a few bugs and stuff that I'll be looking at fixing, as well as adding more dialogue (and potentially schedules) for the NPCs... and if I'm feeling spicy enough some events
iirc the current state of the mod has limited dialogue and such and.. if my Qi mod is anything to go by I might add TOO much dialogue lmao
I abandoned the idea of making a functional building, I'll stick to a building much like the horse stable
Person is a modmaker by the way Miihau. Not sure if you've run across them.
OH yeah sorry if that was confusing wheeze
I haven't seen 'em active in a bit but they did kinda (in my own personal opinion) overwhelm themselves with making like 10 mods all in a short span of time so they definitely deserve the break
I get called out by my friends that my events are way too dialogue heavy
I get what you mean
Don't let anyone stop you >:] dialogue for the win
true true
what are events for if not to slap even more dialogue in the face of the player
Yeah it definitely looked like they had a hyperfixation and then overwhelm/boredom experience to me.
(other than dynamic changes and showing off how cool you are with doing some other fancy stuff)
Said as a person who has had many such experiences with hobbies over the years. I am finally old and wise enough to know how to trick my ADHD into staying engaged but it's hard haha
Yeahhh honestly it's a very real experience. It's why I'm forcing myself to take a break and do other things lmao .. even if those other things just so happen to be me drawing Mr.Qi... or writing Mr.Qi [fanfiction wise] ... or playing the game (unrelated to Qi even if I have the mod installed lmao)
The brain wants what it wants but I refuse to let it burn me out >:]
I've been playing Roots of Pacha. It makes me wish I was better at C# because man there are changes I want to make that I cannot have!!!
(To be fair to myself I do disperse it with other things like Dungeons and Dragons and uhh... and other things definitely)
You'll get there Aba! You're very smart! :D You already know so much if you really wanna you can I know it
^ agreed 
Thank you! I will probably be bored of Roots of Pacha long before I know enough to mod it lol. But that's okay, I'm sticking with modding Stardew. The lovely modmaking community is a big part of why it's stayed interesting to me and judging by the dearth of mods for Roots of Pacha I'm guessing there isn't much of a modding community for it.
Instead I puzzle out how to make a bird pack for Ornithologists Guild for ~culture mod jam~ (psst Lily you should participate in that)
(You can too Miihau but you'd have to join SMC for it to make sense lol)
SMC?
Stardew Modmaker Community! We're a server primarily for people who make mods. Much smaller than maincord. Only 350 members total and only a fraction of those active. Very cosy.
wait is that still going on 
i didnt look too hard at the date lol
Yes it finishes on the 18th lol
mmm making a whole mod in 10 days... Very possible
👁️ 👄 👁️ I need it
It's intended to be pretty small scope, just a longer timeline so everyone gets a chance to participate instead of cramming a mod jam into one weekend.
I don't have anything for me cause I just have... america really but I did have a concept of a mod for something similar that uses a person I care about's culture
I have no clue how server invites work, let me find this out for you.
America has culture!
America is not the world's default lol
For example you have veeeeeeeery big pizza slices
no rush 
And cornfields that go for hundreds of kilometres
And Jolly Ranchers
(Can you tell what impressions I got when I visited lol)
kilometers? 🇺🇲
I'm allowed to use kilometres to describe America! They don't stop existing just because the US uses miles lol
We do have jolly ranchers and real big corn fields you're right
I add jolly ranchers to stardew
and a big corn field
I would honestly do htat just for fun ngl that sounds hilarious
But my friend they're Tunisian and I was going to add a few dishes and plants from there that they really like
- I could technically add sour patch kids yes
ignore the dot lol
American Candy Mod (plus cornfield)
Hooray DH rescued me! Miihau I sent you a DM with the link instead lol
rescued
If I input command in chatbox,how to execute that without using ChatCommands mod.
Hmm well if it encourages you to participate I grant you a special dispensation to share your friend's culture 
Edit your save to enable chat cheats
if you want full smapi commands, the chat commandsm od is all you get
if the debug commands are all you need, then ^
I mean I could just do the candy thing lol
Up to you Lily!
I just can't be the only participant - I am not even allowed to participate because I am a judge xDDD
I forgot about sour patch kids being American because they've been available here for so long but yes when I visited the US they were not easily available in NZ either
I want add a new command and want to implement in the chatbox.
I think that requires C# no?
Also I know this just for clarification - it's mostly because there are just SO MANY american - culture - related mods xD
if you want to register a non-cheaty chat command then register it in ChatCommands.Register()
Not that we can't have a two cakes situation of course
but smapi's command system and the vanilla chat one are separate
Two hundred cakes
Two Hundred Cakes...
But also I think there's a lot of interesting stuff in more regional cultures too. Like Midwest Nice or bodegas in NY or how many shops in Texas sell Texas themed clothing and Texans seem to buy it...
hehe ... buckees
oh my god i could add a buckees and a massive cornfield
im not from texas but that would be so funny i think ... maybe i can even edit one of hte hats to have a really tall (or as tall as I can) cowboy hat ...
Thanks,I found this class definition,I'll do some research.
i really really wanna see a skyline chili in the game now
well don't start with skyline
i will play around with pixel art tonight and see what i can do
anyone have the link for the C# library? I want to see what each statement does
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Not sure if this is what you mean
good morning! Question: if I want the screen to stay black during an event while messages/dialogue boxes happen how do I do that?
using globalFade
well that's how I do it, globalFade, moving the viewport to a far off location, and then continue with dialogue boxes or message or whatever it is you want
oooooh okay I accidentally did viewpoint instead of viewport. Thank you!
My Obsessed Shane mod continues to slowly come to life ❤️
(C#, mod interfaces) i am trying to provide an API for Secret Note Framework and pintail is giving me some trouble.
i am currently trying to provide this method:
public bool RegisterSecretNote(string uniqueId, INoteData note)
where i have defined that abstract class to match my data model, and i use a subclass for much of my actual mod code. that all works fine. but i am trying to use the api in another mod:
namespace ichortower.SNF
{
public interface ISnfApi
{
public bool RegisterSecretNote(string uniqueId, INoteData note);
}
etc.```
with subsequent definitions for the note data matching the interface from SNF. this compiles, but when i try to GetApi(), Pintail barfs from being unable to proxy it at runtime:
` ---> ArgumentException: The ISnfApi interface defines method RegisterSecretNote which doesn't exist in the API or depends on an interface that cannot be mapped!`
have i overlooked something necessary for pintail to handle this?
(for example, perhaps it only works on literal interfaces and not abstract classes?)
Ichor I love your little parenthetical context right at the start, it's great /gen
it's like a trigger/content warning for non-C# people /lh
I did get utterly lost trying to follow your last one haha
Can you try not an abstract class
Inheritance is...odd
Yes, try a literal interface
well, i got the same result from just using a regular class, so i thought i'd try an abstract one
ok so i'll probably need properties for an interface. can i give those default values?
Running late for work but still on discord, Atra you addict :P
(Running late is an abstract comment. I need to leave by 8:20. I would prefer to leave by 8:10. I'll make 8:20)
Probably no
ok, it seems to be this. abstract class no go, interface go
I'm editing and updating an event from Legacy 1.5.6 to the current version and the event will not show up on the list of available events. The event works and triggers just fine. It just is not listed. Any ideas?
Anyone who knows more about buffs, is this the appropriate multiplier to set for a 50% boost to crit chance ?
What list are you referring to?
EventLookup and when looking at the individual NPC's available heart events
Do you have a Friendship precondition?
Event Lookup only works with legacy precondition currently
Your event is fine
Yes. Marriage , friendship, and all other preconditions have been met.
(do not consider switching to legacy preconditions in order to support event lookup. it's sheku's problem)
Ok, so I have to go back to single letter preconditions?
no. do not
Yeah Atra said what I was going to.
don't worry about event lookup support
Sheku is updating Event Lookup soon and the new preconditions will be supported then
(Probably)
Good to know. Thank you.
(i don't know about buffs and can't check right now unfortunately but a clarifying question that may help someone who chimes in later: when you say 50% boost do you mean going from, for example, 2% chance to 52% chance or going from 2% to 3%?)
2 to 3 percent 
0.5 should be the correct number for a 50% boost, fairly sure. Shouldn't be hard to test though!
Test it how? Hahahaha
That's why I'm asking
The buffs that are unused in vanilla don't have automatic buff icons that appear
effectiveCritChance * (1f + who.buffs.CriticalChanceMultiplier)
MeleeWeapon.DoDamage
0.5 is correct yea
thanks chu
This effect is used in that ring and enchantments but yeah no descriptions
A flat +1 is a lot stronger i feel 
Wiki has detail on stuff
I'm making progress >:D
newtonsofts not giving it to me as good as I'd like, but should be close enough to approximate some of the fun stuff I want to do
Not looking forward to pretty much having to rewrite a bunch of my prior work and how it's data modelled but once it's done it should be cool
in addition to the annoyance of unused vanilla buffs not having buff icons and such, they also dont appear in the item description
So players wouldnt know that the thing even gives them a buff until they eat it. And I can't fix that like I can fix the icon problem
At this point idk if I should avoid those buffs entirely or find some framework to improve these
I mean, 500 food items, I can't just have all of them do the typical farming attack fishing etc
I wonder if I can just sneak that into EMC then
given that this is quite a need now 
Extra Buff Configs
Do it ||before I put it in smd||
If you make a buff in data buffs then call it in your food you can have the icon and description be whatever
I experimented with chu's help
Note that there a vpp small bug with one of the food talent but kedi is aware and have a fix
Its not perfect but good enough
I was thinking about it but I dont even know if it's worth doing if it doesnt appear in the item description lol
(Main limitation is that it will not count as a food buff so you can cumulate those with food)
Extra Buff Configs...
I think u can achieve fair amount of shenanigans with the buff applied trigger at least
But it would all have to be not food buff
Buffs Unlocked: Framework For You, or BUFFY for short
Wow yes 10/10
Example pack is a garlic buff against bats
I wish there's a buff removed trigger tho
sounds great, let's started on the buff framework then
because I do not plan on adding anything beyond the missing description/icons so if you wanna homf that too go ahead 
I was only thinking of it b/c atracore had it already but just a pile of harmony for earlier 1.6
If you want to help me stay retired
That's amazing in my book 
Do it 
After u have these u can just do trigger action shenanigans
Therefore I don't really want it to be separate mod and vote for EMC to have these
Lol
The Farmer is a Machine that consume category_cooking and gain Power
doing description facing stuff is going to be more of a hassle because it involves translations as well
well EMC is already a cooking mod with the flavored cooking thing
very well 😌
I think it's not so bad since there are already strings for some of them in the weapon stats?
EMC teetering very close to the edge of becoming a kitchen sink framework
Some! I think I packaged some translations in with atracore too
If you need I can also mobilize cornucopias translation team, but yeah
Good idea, Selph can we get EMC to add a crafting menu to the sink too?
I can use it to make drinks. Or something
Most kitchen appliances are Machines
you're making me doubt myself on whether or not "kitchen sink mod/modpack/framework" is even a phrase or just something i stole from minecraft but turns out only exists in that community
Make doing the dishes a mod
Selph can u fix the food/drink buff overriding too 
Rn if u have a BuffId it doesn't get overwritten by other food/drink
hmm, wonder if passive fixes like that might be out of scope
spacecore casually fixes npc pathing
for the most part it doesn't have any visible user effects
the buffs thing though will
also you dont have to do this buff thing if you dont want to haha
no selph does
If not, I'll just redo these buff stats
im decreeing it
What r friends if we aren't bullying each other into these things
voluntelling people to do things when you're on vacation/retired is great i understand why atra does it so much
New quote added by chu2.718281828459045235360287471 as #6365 (https://discordapp.com/channels/137344473976799233/156109690059751424/1370053932587679886)
it's fine, this is simple enough (like chu already pointed pathos to a few lines that just needs to be changed, right before pathos dashed our hopes and dreams by saying it's out of scope)
(buff end trigger also seems straightforward enough, and can be thrown in as a treat)
I'm making a personalized spouse room for my new NPC and I wanted to use the existing Tilesheets in the Stardew Valley but I don't know if I should use the ones from the unpacked content of the game or if I should use those that are directly in the game ? Does someone already created a new map using the titlesheets from the game ?
unless I misread your question, the unpacked ones are the ones in the game
The unpacked file I put it on my desktop to use it as an example for the codding part I thought we can't let the unpacked file in the game file bcs they are basicly a duplicate of files that already exists in the game...?
or maybe I just don't understand the use of the unpacked file
thx!!!
I also wanted do create a little animation for my NPC in the spouse room but I'm so intimidated by it haha I didn't start to look how to do that yet but It seems soooooo hard I'm already overwhelmed even though it's been only the 2nd day ive been working on my mod 
the term is more or less instantly understandable, but we have a different name for them over here. they're called personcores
i think a kitchen sink mod and a personcore mod are different things personally
I feel like personcores are more "common helpers/APIs that are usually only used by that person's mods"
spacecore just happens to be both
spacecore is primary offender
not that there's no overlap, but a personcore's functionality is usually not exposed to content mods
atra's SMD is kitchen sink esque
the overlap is large in my opinion. grab bag of undirected stuff that grows to eat the world
for me for a personcore though it wouldnt grow to eat the world itd just be growing for that one persons mods like selph says
I could have made a khloecore, but I'd rather just have a bit of redundant code in my mods.
common csproj my beloved
all the code i reuse everywhere is just for logging an d debug purposes anyway so i just put it in my dotnet template
The code is negligible compared to how much data, textures, etc. modded players have
Also, a common project is even less overhead if you have sections in #if blocks and thus excluded in projects that don't use them
On my todo list is to break down atrabase tbh
Because I heavily use it's ROS wrappers and not using those was making me sad
But the collectionhelpers I barely use in mods
when writing a c# mod, can i just make it in a single sln file?
My project is a bit over engineered. I have a custom <UseCommon> tag, where I can do something like xml <UseCommon>UI;GMCM</UseCommon> and it will define the constants COMMON_UI and COMMON_GMCM for use with #if.
anybody has the github link for the c# modding?
A project needs at minimum a csproj file and a cs file
slns are useful but technically optional, and it's usually a good idea to use multiple cs files to make your code easier to manage
(i've never used a .sln file)
I use them mostly out of habit
what i mean is just a single mod cs for all my code like new dialouge, the building, and the new pet.
something like that, or do i need to seperate each?
You can make any c# mod in as many or as few cs files as you like. There is no difference when compiled
I have to ask though- if you're just adding content with no new mechanics, why not use CP instead?
oh im adding a new mechanic, a new pet with different behavior than the other pets like dogs
Aaah okay
are all clothes available to both genders? (excluding the ones that are explicitly marked F or M?)
I used to do weird define constants things but I suspect what will end up happening is I'll subdivide atrabase
Atrabase is a weird thing anywyas tbh
It's supposed to be the core functions I wrote for myself for genryal c#
But also
Modding is so different from normal console programs
(Also. For the newbies - atrabase is not atrashared is not atracore.)
Atrabase is the smallest and has no game relat3d logic
the fact that you have three different ones sends me into the thousand yard stare a little bit /lh
And now you start realizing why I retired
I believe those (M) and (F) items are unisex as well
since 1.6.something yes i believe
So yes and no
In features it is kitchen sink but the scope is bounded by what I think I can maintain long term and without negatively affecting performance
It's meant to be a small module I can put small features in
But yeah, I determine the scope
the feature set is what makes it kitchen sink to me, not the scope
the "esque" was bc they do all still have the theme of dehardcoding annoyingly hardcoded things, so its not like theyre completely unrelated
Wait sln is optional?
For dotnet CLI stuff I'm pretty sure, yeah.
alwayshasbeen.jpg (i don't know if that's true)

I kept it in all my repos cus i thought i needed it...
Or at least vscode complains about not in a solution if i dunhave
The C# dev kit probably will, yeah.
i assume VS requires it at least
I think it'll open a raw csproj fine?
I've done that plenty with ILSpy decompiles.
I don't think you actually need C# for this btw
Pet movements are state machines so you can do some complex motions just via data
oooh really? good to know, thanks!!! <3
VS can and will open plain csproj files, but if you do that it will pester you to add an sln
It can actually open loose cs files too, but of course won't offer intellisense for those or let you run them
Yeah, it'll open any loose text file if you just want to open your .txt files in VS for some reason.
It does do syntax highlighting for loose files, just no code analysis
Can I ask here about helping translating a mod?
I translated a CN mod to Eng but the translation doesnt show in game
Sure!
if its because you made an en.json file, those don't work currently
specifically for en
(and en-US or en-GB or w/e too)
i changed the default one bc i dindt found the english json file,ty ill try this!
Is there a limit to how long event names can be?
For the NPC Movie Reactions, are tokens not accepted for the Script Field? They work with the Text field but I'm getting an error with using it in the Script field
if you mean CP tokens, then they work practically anywhere. the game has absolutely no way of knowing whether you used a token or wrote the value manually
I'm talking about i18n, the dialogue for the script is saying it can't be parsed as an integer or something like that
show us your json and the translation string
hi, I'm writing my first mod ever. using better crafting as a framework, I'm going to turn the furniture catalogs into custom crafting stations, and have furniture crafted from different ingredients. how would i go about hiding the vanilla catalogue menus though?
TYSM it worked!!!!!!!!
Furniture catalogs are furniture, does better crafting support turning those into crafting stations?
you can try calcifer or spacecore for furniture action +
BC's open crafting menu action, not sure if they will override the vanilla catalogue menu though
Can I ask a question about the Farmer Portraits for 1.6 mod?
I'm wondering — as long as the image is a square (like 600×600), will it display correctly in-game, or are there any specific requirements for size or formatting?
think so (the description says it can be any res)
I've downloaded a lot of farmer portrait mods, and I noticed that the image sizes people use vary a lot. But when I use a 600x600 image, it looks weird in-game. TAT
I don't recommend going over 256x256
Big...
So what the game does for portraits is draw a 64x64 texture at 4x scale for 256x256
I saw someone use a 1816×1816 portrait and it displayed fine in-game, so I was curious if there are any hidden limits
HD portraits work by drawing up to 256x256 at 1x scale
Going even higher is possible but u just lose those sub pixels i think
Yeah, there isn't a point and it'll look bad
Got it — I’ll try 256×256. Thanks for the info! 😊
Now, I'm sure the reason is probably going to be stupidly obvious and make me hate mad for not seeing it but I need fresh eyes.
I'm creating a personal custom animal mod, meat versions of vanilla animals and all of them are up and working except for the pig some reason the Animal Husbandry options will not show though everything seems the exact same between files.
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 8 C# mods and 2 content packs.
how would I start modding
!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.
When using spring_1 and Mon, on Spring 1, it seems to be favoring Mon. How can I get the NPC to use the spring_1 dialogue?
What year are you in?
I've tested year 10 and year 1
Has your spring_1 line ever popped up? I could see it being overridden in year 1 with Introduction if that key is used, maybe.
I'm looking through the vanilla dialogue, and actually, I'm not seeing any of them use spring_ and a date yet, outside of festivals.
Nope it's never popped up. I do have an Introduction also and that did override it. So I changed it to spring_10 just to test and it still defaults to whatever day of the week it is
out of curiosity, if you change it to another season, does the day of the week still take priority?
Not a single vanilla character's base dialogue JSON uses spring in the season keys, so I'm wondering if it's specific to spring
Abigail definitely uses summer_1 so that should work
I've just tried it and it works! Wonder why spring won't 
Maybe someone who's comfortable looking at the dialogue code can clarify if spring has something funky with it, otherwise it may just be that there are so many other potential dialogue triggers in spring that it's getting overridden by something
What happens if you set it to spring_1_2 for Spring 1 on any year after Year 1 (that seems like it should be valid according to the wiki) and then try again?
I suppose as a workaround, you could probably just set the key to 1 for day 1 and change the text based on a when argument for the season?
Or only add the dialogue entry at all in the spring by the same method
It still defaults to Mon sadly
Okay, so it looks like the workaround is what you'll have to do
"Target": "Characters/Dialogue/<yourNPC>",
"Entries": {
"1": "your text here"
},
"When": { "Season":"spring"}}```
or something like that?
I don't have the CP docs in front of me at the moment, but that should be at least partially correct
Thank you:)
Let me know if it works
@proven spindle you've joined the hotmods! 
Seems to work great, thanks
I'm having trouble with an event that takes place in the community center - it briefly does a changeToTemporaryMap and then returns to the center - but when we return, the fish tank is empty. Is there a way to fix that?
Try changeLocation instead
Ahhh okay, thank you
Speaking of lag, does anyone know the best way to know how many ms have passed since the last frame
The GameTime thingy has that right?
You could either use the GameTime ElapsedMilliseconds or use a stopwatch
The first one is good for frame timing, the second is better for performance monitoring
Huh, I thought clasped milliseconds was the time of the last frame
I don't need a performance monitor anymore, debug tto works
Its the time between the start of the last loop and the start of the current loop
meanwhile I have profiler aimed at:
{
"Type": "Duration",
"TargetType": "StardewValley.GameRunner,Stardew Valley",
"TargetMethod": "Draw"
},
{
"Type": "Duration",
"TargetType": "StardewValley.Game1,Stardew Valley",
"TargetMethod": "DrawWorld"
},
{
"Type": "Duration",
"TargetType": "StardewValley.GameRunner,Stardew Valley",
"TargetMethod": "DrawHUD"
}
and my log is a machine gun
TotalMilliseconds is total running time
This is what I have
For frame time monitoring
But debug tto works toooo
I've narrowed down my framerate issues to draw world taking ages
(Toggle timing overlay iirc)
But haven't done the next layer of depth yet
Really, huh. I'm surprisedish
How hard would it be to do a minecraft-style pie chart for frame time
I have a billion mods and who knows what methods got hijacked
Shouldn't be but if I were to improve it I would do a running average and a bar graph and also inspect into the various draw events more
You are making me want to build the telemetry API in profiler
I don't need to log it, this just renders a little thing in the hud
What does the minecraft piechart look like
The idea of the telemetry API would be a way for mods to give profiler time series data to be encoded into the log so that the profiler site can visualise it afterwards
I assume a pie but in blocky Microsoft Java
No it's round
The pie chart actually is curved
PR me 💖 I'm retired
(Draw times in vanilla are snappy)
let me quickly get a few minutes of log so you can see my fun timings
SinZ, I'm at work still
I didn't fully appreciate how many contentpatcher patches are in my mod folder until I added a debug log loading them individually
I don't think that's telemetry anymore... since it's missing the "tele" part.
anyone know how i can get the Pathoschild.Stardew.ModBuildConfig nuget package to include my LICENSE file (and maybe a short version of the readme) in its zip output?
Same way you would in any normal c#
ManInBlack has an example but I recall just clicking on the file and selecting "include" or smth like that
Looks like so
my ide is dotnet build 😔
Hell yeah
bc monodevelop sucks ass
I take it you're on mac/linux
yea
linux
anyways as someone new to stardew modding my thoughts are that c# modding is actually fun and doesn't make me want to tear my soul out when unity isn't involved
I do have to say. The .NET build tools? Infinitely more pleasant than gradle
yeah fair lmaooo
Reason #14644685 I will never use Unity
harmony docs still suck though
https://smapi.io/log/41f3a3470b7645d79cb28e05fafd2761?Levels=trace~debug~info~warn~error~alert~critical&Page=40&PerPage=1000
today was actually pretty good high 40's/50's in sve Town, high 30's in farm and mid 50's in busstop
it varies based on other crap I have running, and if VS debugger is attached I go to like 2fps
Log Info: SMAPI 4.2.2-unofficial-sinz-2+3 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 191 C# mods and 299 content packs.
Weird
In vanilla I think farm is the slowest map
Well
A well developed planted farm
but this does mean I'm underbudget on draw time, so I need to start monitoring other places like the wider update loop to find my culrpit
No, seriously, try debug tto
hmm
Hmm. So tto is vanilla only iirc
(While the one in Event Tester should also include mods)
looks like it does at least explain that update > draw most of the time
and it bounces like crazy
would need the average, 95, 99 thingies to actually read it properly
Even in rain, huh
tbh this is also like the best fps I've had on this modlist
might be because I did save load instead of multiplayer host, not sure
It's on my list to maybe PR pathos wrt to map locations and caching and shardinf
But it's pretty far down the lisr
And moddifn isn't even allowed on mh schedule rn
Why do you have so many buttons
I don't know
is there a faster way to test out dialogues for the npc using the command prompt?
sord n sorcery
its the adventure bar squeezed into matt's iconic framework
the problem with installing a bunch of mods at the same time, "adventure bar" meant nothing to me
This has a check dialogue command https://www.nexusmods.com/stardewvalley/mods/19458
Ah, installing mods. Playing the game. How does that work lol
looking at what it measures, for draw its top/bottom of Game1._draw, so prefixes/postfixes to it wont be tracked, but anything inside would including the smapi event hooks, drawworld, etc
yeah, it's better to just talk to people here if you're doing harmony stuff. the docs are basically useless
Anyways, I'm used to update being jumpy but usually less than 1ms
and its update timing is the parent caller of Game1.Update which would include prefixes/postfixes and modded tick events
though theres some stuff thats not in Game1.Update but GameRunner.Update, like the GameStateQuery parse cache busting
The harmony docs for the injection page are a useful reference at least
im on it every time I touch harmony
okay . thank you.
oh okie 
(isn't monodevelop fully dead?)
anyway linux dotnet build gang
linux gang should be able to use vscode and at least get a debugger still, even if its mostly a wrapper for the dotnet cli
Sowwy using vim because I just need to be hardcore

