#making-mods-general
1 messages Β· Page 285 of 1
Okay, I have tested using EditImage to replace an HD portrait with vanilla size portrait (in a mod that doesn't show the HD portrait in full), and it turns out that it does interpret the portrait as having multiple columns, so it works for $0 and $1, but then it starts showing zoomed in portions of the original HD portrait instead for $2, $3 etc.
Like start event when player moves past a tile
I want mine to have very specific requirements to unlock but then be incredibly easy to trigger. An event triggered by one single tile does not feel like it meets that requirement.
Although I appreciate your enthusiasm for complexity :P
What does it look like when you patch export it?
wouldn't you need a precondition anyway to make sure it doesn't activate itself until spacecore triggers it
I guess so, need FALSE
Forgot to do that, but I'm pretty sure it's the HD portrait, with one corner replaced with my smaller tilesheet. I ran a dialogue test for $0 to $11 and it looked like it was running through sequential blocks of 64x64 along the top of the HD portrait, with my portraits showeing at the start of each row.
Bezajel what are you trying to do
Anyway, now I try the Appearances method
What flavor of hd portrait is it?
Just a simple portrait replacement, but the original mod loads HD portraits instead of vanilla size
The flavour is just 512x512 portraits loaded in the mod as if they were vanilla size assets
That's gotta be scale up 2 then
(no PyTK, ScaleUp, or anything)
(there's like 3 different ways to do hd portraits rn)
Yeah and none of them are being used in the mod
That seems unlikely unless they have custom C#
Portraiture has a CP approach
Dacar does all their Portraiture portraits as CP
You can't have a working HD portrait without any of these options
Oh is it working again that's good 
So either it is one of these or everyone using the mod is just seeing a tiny snippet of her actual portrait without complaining
Oh people are complaining π
users always complain π¦
But if it's portraiture then u should be able to switch directly back to vanilla
If they're shipping the HD portraits in with the mod, they might intend people to use it with Portraiture and just not have explained that well
It could also be hd portraits (not updated)
It's not using portraiture
Yes Aba, I think that's it. Basically, they did not make any vanilla size portraits, so the mod uses the HD ones to load
But to get the HD portraits to actually work, people have to copy the portraits into Portraiture
How terror 
It's actually the same thing Baldur's Village have done
Only it's a bit clearer in that case
I've seen some Chinese NPCs with the same
I load them into my game to test something and see a quarter of their face lurking in the portrait box
So if the original Load had Priority Low you can Load your portrait over
I think it's really common for the Korean mod community, everyone just uses Portraiture
But since that's not default it's unlikely 
The original load has no priority set, therefore exclusive
I'm going to bypass with Appearances though π
Yep that should work
I'm also offering a PNG only download so people can just replace the portrait in the original mod, but I'm doing a CP too just to be extra
Question. Iβm trying to replace Clint with sans the skeleton.
His altered dialogue works perfectly, but his portrait is just Clintβs
Is that a json issue?
without seeing your json or smapi log we can only guess
gimme a second
!json Please upload your json to this website and send us links rather than sending the file here or sending screenshots
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.
(the indentation
)
That's it, thanks :)
no worries. sorry about that ^^;
missing a bunch of {
You're missing nearly every starting curly brace for each patch
and as we saw in the screenshot you're using plain notepad, we recommend the text editors mention in the link above, which contain many useful featrues such as syntax highlighting
makes seeing issues like that easier to spot
Your targets for the images look correct, though it's curious that you're loading the sprites and using EditImage for the portraits.
(do we have a command for this?
)
recommened software? we do.. but I forget what it is
It's right there in the json command
oh, it sure is. how did i not see that, heh
My guess is because we all use these commands so often that we stop reading what they actually say. I certainly do lol
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
i mean yes there's a software command but this is more useful
get ur hands on a notepad++, its free and will yell at you about missing brackets
software is also art stuff/etc
ok it's bed time apparently, niiiight!
just downloaded it now
idk what you mean by curly brace, but i assume it's the squiggly bracket?
yes, americans don't call those brackets,
brace and bracket are like, the same thing no? i dun actually know
it's a mixture of differen english
to me this is a round bracket ( ) but Americans it's parentheses
[ ] square bracket
its just prison for letters 
i ported over the 1.6 migration page part with the new event preconditions and i was pretty neutral about it. (i agree that the old ones are strictly worse but i didn't want to speak badly of people's existing work). pathos rewrote it later and put in a much stronger "you should not use the short aliases anymore"
it's just those
I have never used the word brackets to refer to parentheses.
they look longer there
in conclusion, "brackets" is a land of contrasts
chevrons,,, such a cool name
HEY I used chevrons to describe them and I kept being told they are not chevrons!
This is very suspicious
i think unicode has a separate codepoint for chevrons and guillemets vs angle brackets <> but i'm not quite sure on that
guillemets for sure has its own thing
vague descriptions if i've ever heard em
well < and > are also just less-than, greater-than... at what angle do they become a different "symbol"
^ is up and ,,i can't find the down ones on my keyboard
{ } in chinese is apparently just "big bracket"
good name
chinese with another W
} is also a mustache ( }-8
mustache man 
Do you think it's speaking badly of existing work to say that readable names are preferable? I think that writing a game you think that no one will ever play, let alone make mods for, is a perfectly understandable time to use practices that work for you but may not be as usable for a wider audience. And the fact that they got changed to more readable names at all is another example of CA's excellent commitment to us as a community by making an unnecessary but helpful change for us, imo.
Makes up for the L when u gotta say "english comma" so ppl don't use full width
...is there not a down arrow? i can't find it but i could very well be blind. i was sure it existed
v
that's just a v
β¬οΈ

(that's the joke)
no it's upside down circumflex
By the way, you should set the language for your json files to JSON5 instead of just JSON so it doesn't complain about trailing commas or if you want to add comments.
β
that just looks wrong
oh damn, didn't know that was a thing
i only did jsonc for the comments
Did you have to download a plugin to use jsonc?
i fixed it :D
i just wasn't able to type for 10 minutes. i accidentally did smth
Because I only see JSON and JSON5 available
ah, well i'm not using notepad++
Jsonc is what vscode calls it
oh wait really? 
Approx equiv to using json5 i think
Oh lol well I was giving specific instructions for N++ Bea
!jsonc
jsonc is sadly a little more strict than json5
!vscjsonc
In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add
"$schema": "https://smapi.io/schemas/content-patcher.json"
at the start of your content.json file.
Here it is
we got so many commands
Maybe we could get a nppjsonc for parity
Did you perhaps attempt to share a masked link?
no, i typed a message which made the text very small in reply to the american thingy, but it timed me out
~~should i add an associations for json5?
~~
Oh yeah you can't use sub or super script probably
what i wanted to avoid was accidentally saying something too strong and rankling anyone, and in addition it was not clear to me (not on or affiliated with the dev team) that the old aliases were considered deprecated and not just not-preferred. so instead of giving such instructions on the wiki page i just gave the new format top billing
yeah special texts is restricted to higher levels
ah oki. btw the whole thing works now :D
What for?
vscode complains about trailing commas
ah, i see
You can probably get extensions
Yeah it seems surprisingly difficult lol
https://github.com/BlueGlassBlock/better-json5
I had a chuckle at this name
Bea, in your vsc hit F1 and then type settings and then click "Preferences: Open User Settings (JSON)"
It will probably look something like this?
mhm!
Add this after line 4 (make sure to add a comma to line 4):
"json.schemas": [
{
"fileMatch": [
"*.json",
"*.jsonc"
],
"schema": {
"allowTrailingCommas": true
}
}
]
Actually you don't need the "*.jsonc" bit since SMAPI doesn't accept .jsonc files but meh
I mean... why not delete trailing commas? 
sometimes there's like, over 30
I used to but found that I always forgot to add commas when I added new lines and didn't find out until I tried starting the game
Trailing commas reduce git diff noise
i don't use them but when im trying to make edits to other mods it's easier to find actual problems
But i actually just got ready good at ignoring the lil yellow squiggle
I was also good at ignoring it but when I found out how easy it is to make them go away I decided "why not?"
The squiggles and warning count, that is
Huh, that's a good point 
alright! ty Aba 
I don't know why I'm converting More New Fish to not use MFM for myself... 
Are u gonna PR the mod
feesh
MFM isn't even obsolete, Digus is actively releasing new features
i have enmity with trailing commas (most of the time) so in an asset i expect to edit a lot, like i18n, i often include a dummy thing at the end whose only purpose is to have the no comma
"realKey": "realValue",
"anotherRealKey": "somethingICareAbout",
"EOF": ""```
Yeah I know, never said it was, it's nice if people need more features for mail π But I don't think I have any mods that use it and if I can help it I'd rather have less frameworks
I never identify with this "fewer frameworks" thing, especially as a user
I might ask the author if they want to use it when I finish and actually test it
all things being equal, fewer frameworks is a win. but often the things are not equal
Maybe it's just me blindly hoping it'll eat less resources, like I said, no idea why I'm doing that 
(the thing i strongly identify with is "smaller frameworks" but i'm digressing from that in advance)
If I could choose a minor superpower it would be knowing which .cs file to look in to find the Stardew code I am looking for
Smaller frameworks is actually more number of framework tho
But hm i don't actually hear about "i chose not to download this mod because it uses framework I don't already have" very much
My version of this is "i chose not to download this mod because it's dependent on a personcore"
my version of this superpower is called grep /lh
I haven't seen a situation where I have thought a personcore felt really justified but it has never stopped me downloading a mod.
No but you see what if the thing you have to search for is something that will come up in MANY files but you only want a certain implementation of it and don't know exactly what that might look like? Like I was just looking for portrait and that got 274 hits.
Sometimes I know what I want to find but not any of the code to search for, too.
ah. well, you see, (trails off incoherently)
personcores are the thing i'm mad at when i call for smaller frameworks
Why don't you like my rectangle, VS????
Oh because I hadn't finished entering the arguments. Why couldn't it just say that 
is there anywhere i can show off what i've done in the mod i'm making?
If it's art (visual or writing or music) you can share it in #making-mods-art. If you think it meets the rules for being additionally published to the #mod-showcase (check the pins in there for the rules) you can ask a cheeto (we orange folks) to publish it to there for you. Usually people just showcase their finished mods with a Nexus link but you can showcase media from unreleased mods, I think.
Since you're new and only a Villager, there are restrictions on where you can post images. You can do it in here, obviously, and I think you can in #making-mods-art too. If you wanted to share your work in #modded-stardew you'd have to post the images in #making-mods-art or #images-and-memes and then link to that post from modded-farmers.
DialogueBox?
Yes I actually did know where to look this time it just made me remember all the times I haven't known xD
ah oki ^^ thank you
I usually do like
i'll put it in the mod art channel
Additionally, make sure that you are very clear in crediting any work that may belong to others and don't share anything "created" with AI :)
(Just in case your mod had either of those things.)
Ctrl P and try to think of what the clas could be called
nah, never did. don't worry
Print menu?
I wish the game could just know where I want to put menu things instead of me having to do mathy things
This is good enough, right? /j
Hiria says hello
Is there any optimization mod for 1.6 ?
You can try SinZ's experimental SMAPI build and Speedy Solutions alpha but they're all I know of. https://discord.com/channels/137344473976799233/1359454014319755294
Scarlett saw significant improvement from using them but they're not really intended for general use right now I don't think so YMMV
i'll add khloe's Better Game Menu to that list too, though last i checked its still missing compat from some menu-related mods
Oh yeah BGM is good for speedy menus
It's nice to finally have a different answer to that question than just: nope 
Sorry for the very late ping, but it appears I missed a random token while bulk doing i18n and it converted it to an import token
Where I can download this one?
You know aba this is precisely the problem stardewui is trying to solve
Go to the thread that I linked. The downloads are in there.
Okay Thank you
Yes but do you not remember that I had to give up on StardewUI for now because it's all too advanced for me? If I was capable of using it right now I would be doing so.
There's no build for latest smapi though, you will have to merge and compile yourself
I believe it's not that advanced 
That's...kinda mean :(
As in, i believe you can do it
But I can't, chu.
I already tried.
I am capable of learning more and then trying again but I am not ready yet.
But it is true that there's like, UI land specific abstractions in there
I think that is the cliff in the learning curve here
It is taking me everything I have to produce this dinky little thing #making-mods-general message and it's demoralising to be pushed to do better than I already am managing.
I want to be proud of myself but when you push me more it makes me feel like you think I'm not trying hard enough 
I don't want to push you to do anything though, frameworks are just tools to make something easier to accomplish
(I'm sorry, I didn't mean to suddenly get all serious and depressy at you - especially not here in public, but I've been struggling with it a bit)
Wanting to do something from first principles is not bad thing either cus it is for learning
I've got a StardewUI problem, but it's moreso that I lack imagination. I just can't conceptualize what I want to make.
What if you go make it in js first 
I kind of know what problem I'm trying to solve, but waiting for inspiration for how I'd want to solve it
I do want to use the frameworks and I'm definitely not intending to try to build something big from scratch, but when I tried using StardewUI there was just too much going on for me to know what to poke at. Same when I went to look at Khloe's BGM. I needed to start with the smallest, most basic possible way to make a menu to understand anything about how to make a menu. And I am adding in one tiny feature at a time so that I can understand each thing.
I'm not intending to use anything I'm doing now for an actual mod. When I know enough to make a mod I am going to be using the frameworks. But for learning the concepts the frameworks are a biiiiiig place to start.
I think my problem is similar, I'm not fluent enough to just mess with it and try a bunch of things out to see what works
I need the concept to exist before even getting into StardewUI so that I know what I'm trying to do
Yeah and the reason why i brought stardewui up here is that the primary thing it achieves is abstracting away the math involved in something like
And right now, messing around is easier for me to do manually than use the framework
"place these portraits in a list"
Problem is though it abstracts away a lot of the layout issues, but frontloads a hell of a lot of other stuff that isn't really directly related to getting the problem solved.
Especially when you're new to C# in general!
It's kind of like sketching before you go into full-fledged painting
Yeah i have a background where i used numerous ui framework with similar paradigm b4 so it's like ah i can do Qt like things in sdv now
Goes back to the cliff in learning curve
Thinking this way is all still so new to me that I am still wrestling with the idea that I have to define my thing and then also draw it too. I wasn't expecting that and spent a little while wondering why my button wasn't visible in game even though I'd said "it's here in cursors".
If I were fluent in StarML, I could probably work with it as fast as my mind works. i.e. I could make small tweaks and reload as part of my development process
It'll be a very iterative process, so definitely take the time you need for each step!
They are incredibly tiny baby steps but the important thing is that they are still steps.
Pain of making a replacement system you thought would work for mobile but doesn't actually work for some unknown reason (both the original and replacement work on PC!) cause you can't test it. 
What's the problem you have?
Donation menu is the only part that won't work on mobile :/
Oh for nitv right
I guess inventoryMenus dont work correctly, yepp
Yeah menu is doomed for phones
I tried to use a scuffed shopMenu instead, which I tested to work, but which also breaks on mobile
I think the only way to do it would be reuse ItemGrabMenu exactly with no change
Another idea i have is
Use the item pedestal
Or a item holding table
Dodge menu entirely basically
Players place the creatures on the pedestal to donate?
Yeah Bug on the table please
I also used Qt/QML a ton and had no problem picking up StarML
the solution is obvious - go learn Qt
To elaborate on this, i meant like have a global inventory that people open via tile action perhaps and put Bug inside, do not attempt to subclass the item grab menu, not even a little bit, if you want this to work on phones
Wait... can we receive recipes in mail in 1.6? 
hasnt that always been a thing
mail data is one of the things that wasn't (significantly) changed in 1.6
Was it?
I thought I remembered something about recipes and mail being problematic
Maybe I jus remember wrong
Looks like there were some changes to recipe stuff https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Mail_changes
go learn Qt
no u
You can read that as "Go learn, cutie"
that's also a no u. i am a dinosaur and refuse to learn things /lh
Can't believe none of the py bindings for qt is called "cutiepie"
@brittle pasture Is this an issue with your mod or better special orders? or both just working together? I get the same error in SMAPI every Saturday night/ Sunday morning when I sleep.
https://smapi.io/log/e0c6826f359441aeb446044ff80846f1
If it is not you I will report to the other mod. Thanks
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24354 on Microsoft Windows 11 Home, with 237 C# mods and 317 content packs.
Question: is there a list of the current compadable mods as far as 1.6.15?
smapi.io/mods for C# mods
Content packs are typically compatible if their frameworks are comptaible
Note that here "compatible" can just mean "loads into the game without crashing"
it seems like BSO is getting a SO with key = null for some reason and is not checking it
could be a problem with BSO, or could be some other mod that adds a null SO for some reason
fwiw ive seen that error a couple times before and BetterSpecialOrders was always involved
ok, so nothing to do with Fresh produce even though it has it listed. that what i though but wanted to check.
harmony will just list every mod ever that patches a function
even if they only do a postfix or even if they literally do nothing in their patch
Selph what if you leave journal
It's....not pleasant coding in a paranoid way
FFP patches it but only runs its code if the key references the mod's specific special order key
Better Game Menu 
Which in this case seems to be null
very considerable idea
Perhaps this is finally the usecase for machine Interact method too
Patch export ur special orders and see if one of em has a null reward entry or there's just a random null order itself
Make big craftable that is like a magazine that opens the FFP menu
Can be caused by duplicate commas
I been wanting to use that for months but alas I have no inspiration
this error is in checking a key in a dictionary though, the only place that happens is at the top in TryGetValue for the specialorders dict
(i was typing that before your edit)
I've had nres with getspecialorder before and the issue is potentially not even bso but a mod that adds an order
yeah im not saying its 100% for sure bso just that it wouldnt be one of the rewards
Unfortunately the key is straight up an empty string which is not useful
Yeah I agree, am on mobile and jsut woke up and didn't read the error right at first
the key is null, it shows as an empty string in the log since it does "msg" + key
So am I checking something or not? it happens ever single saturday/sunday on save and I lose one of my rerolls for the special order board. It is not a big deal as I don't tend to us the rerolls but I just wanted to report it to who ever would fix it.
Does that not throw an error when u try to string null in c#
Is bso source available
i still think a patch export would be good to see if there's truly a null order there
I can do that if you tell me how?
patch export Data/SpecialOrders
then pop open the file and ctrl + f for the word null
theres going to be a lot of nulls
there are alot of null
oh it'll do default fields too huh
null requestors are ok in special orders right
yes
a null special order also wont appear in a patch export, you cant have a null key as a dict key
it just wouldnt exist
BSO just doesnt check to make sure the special order it tried to create actually exists after attempting to reroll
GetSpecialOrder can return null and BSO doesn't account for that possibility
i thought special orders was a list ngl
that was why i said it
(and also, its been open as a bug report on BSOs page since December)
hi dears anyone tried building mod with github actions?
got this error prompted, wondering any way to walk around
even if BSO checks for that null, it will only get rid of one of the errors, but BSO will probably be able to just skip it and still work properly
wow thanks
the first red exception is logged by the game in a try/catch
if BSO checks for null and aborts it will get rid of both errors
sometimes things exist in data/special orders but can't be retrieved through getspecialorder
iirc github actions container was extremely limited in network bandwidth so this solution takes time?
i'm potentially bring up a related bug and not the actual issue at hand here
like even if the key wasn't null, the first error could still happen
BSO calls GetSpecialOrder on its own. this is what returns null and makes the game log an error
Immediately after that, BSO calls SetHardOrderDuration on the order it just got back from GetSpecialOrder, without making sure its not null, which causes the second error
which then means it fails in its daystarted event
awh amazing
The jank around this is mainly because mods depend on a entire game to build properly right
the github action downloads the entire game via steamcmd
if you malformat a special order, it can't get parsed so even if they try to get a non-null special order it could still throw the game error
that game error can only happen if the key is null
Mods can be built with reference assemblies just fine. It's still on my radar to get a solution set up using just those, but time. 
i'm bringing up a related concern lol
not this exact one
then its not the first error
Something i thought about is hook that let me make a tag and then push a new release to github
the first error cannot still happen unless the key is null
it's going to log an error from the same try/catch in getspecialorder. it will have a different message. it will probably still be an NRE
So i can just do it locally and be fine
my kingdom for this. actually logging in to github is a thing i hate doing
it isnt an NRE
it is funny it only happens saturday/sunday, or that when special orders refresh so that why it happens then?
Unfortunately git hooks seems complicated
thats why it happens yes
One day...
*it will probably still be related to nulls
just trying to share a related experience that the author of this mod may want to be aware of
i would probably want it to build the mod cleanly from the tag checkout though, so i guess i would also like DH's reference assembly for that
Ah like build against the exact smapi version specified in the manifest
Fucking special orders lol
BSO probably in reality wants to take another look aqt how it sets up its keys to choose bc i tried parsing it and couldnt really parse it easily but i imagine somethin there is not workin right. maybe something to do with oens already completed being removed frfom the pool
but, the mod creator has already been aware of it for months, so, they likely just arent all too bothered
I don't really see the point of building via github actions if I have to test the mod locally
The annoying thing is CA's okayed the hosting of the reference assemblies for building the mods, so it's a matter of just getting it all wired up.
And the main thing I want from it is to also automatically upload to Nexus, and have it verifiable that the built mod came specifically from the runner and a specific commit.
Overkill for mods? Absolutely! Kinda cool? Yes.
does nexus even have an API for uploading files?
There actually is a GitHub action for it if I recall, but it's... not using official methods, yeah.
scary
Yeah, reasons the uploading part won't happen until they eventually add the upload API...
i feel like automated file uploading is probably something they specifically dont want to add, for bot and malware reasons
i think they said it's a potential feature but it does have a lot of .... concerns
is that on their radar as in they actually want to, or on their radar as in "we're acknowledging this but we dont seem like we're gonna try too hard"
Probably "on their radar, but astronomically low on the priority list".
i tried to find their post on the suggestion board but i guess when they changed their layout the old link in the google results no longer leads to the page directly :v
Honestly I would be more interested in improvements to the mod page ui
Just embed your mod in a self building definitely not a malware zip trust
Uploading the actual file isn't hard, it's just that everything else is full of fiddly bits that are annoying to work with
You know, SMAPI could just build the mods from source live like that. 
Would also be nice to be able to explicitly set a thumbnail
It knows where all of the important assemblies are...
the smapi knows where its important assemblies are at all times. it knows this because it knows where they arent
if you haven't heard, markdown is planned
Thank god
ill believe it when i see it
can't you star one uploaded media to be the thumbnail?
The ploy to enforce C# open source by making the mod loader exclusively accept actual buildable sln/csproj
you can yeah
Honestly what would be nice would be an "import from github" button to automatically do changelogs and version numbers from github releases
its just called "primary image" instead
Huh, I didn't know about that. When did they add that?
Auto-uploading from GitHub is a future project :wink:
the primary image thing has been there a long while
i bet that one is far off tho
the mod page ui somehow escaped the turdification of the front page and only got some new fonts and stuff. i fear for its future
i want nexus to add proper license selection in their permissions section :v i know people can just write the licenses in themselves but i think itd be nice if you could also just choose one
mostly bc i really think more modders should learn what the hell a license is and what permissions they can actually control
I meant more the editing screen. It's so clunky.
Well nexus has to stop providing it's weird perms first
... That is the wrong message
nexus's mod description "editor" is a crime against god
And not have conflicting Nexus and source licenses, because that's just no. 
that would also be nice. its like, acceptable when the github one is more permissive, but still sucks when nexus is just gonna remove you anyway if they complain and their nexus perms are more strict 
"acceptable" as in "ok well i guess this isnt TOO Bad since i can still use it..."
I think a lot of things people put in their perms probably aren't legally enforceable but i do appreciate at least knowing what their stance is on what i do with their content
a lot of people put things that def seem not legally enforceable and honestly a lot of the times not nexus enforceable too i imagine
like im not looking to be an asshole purposely going against their perms bc i can or anything, i just think people should be more informed about it :/
(I would also like to normalise this being on mod pages.
)
(im still waiting on stuff to blow up in another modding community i pay attention to when people realize they cant actually retroactively change a license...)
how do you do that?
you cannnnnn....sort of....
i guess...
but you can't change the old uses!
these people defnitely seem to think you can!
I do think changing a license does something
They're super snazzy.
(case in point: i changed mine)
nice!
Like that one is: https://img.shields.io/github/license/AlanDavison/StardewValleyMods
So if I change the license on my repo, it'll just automatically update.
@ivory plume Are typo/display text error reports from the forum something that is being looked into at some stage of the patching process, or is that not much of a priority right now?
I reported some (very minor) stuff some time ago and was wondering if I should bother sending in more in case I notice something.
without getting too into details bc its not wholly relevant here: they changed their perms basically from "you can do whatever you want with this" to "you can do whatever you want but you CANT make money off it after 6 months"
so going forward, sure, thats a license
but they just said its flat out the case for all uses of their thing now, and also didnt actually upload a new version of it, its still just the old file, so.... its not like they can prove someone isnt using the pre-license change version anyway
you could throw a badge on your readme that links to nexus for literally no reason π€
badge is simply more fun than normal URL
Modders don't tend to know anything about licenses in general or specific licenses because they tend to just be random people, not actual coders or anything
i feel like the average random coder also knows little of licensing
y'all definitely know more than literally any other modding community I've ever been in
i dont think you need to be a coder to know what a license is
(im not disagreeing with you just kinda adding on my own thoughts)
i think if you're gonna try and dictate copyright permssions and stuff on your things, you should probably know what a license is
not should as in "i expect you to" just. i think it would be beneficial if you did lol
But they don't even know enough to know what they should know, it's just rando Steve who sees a field of permissions and goes "okay" and fills it in
artists have to deal with licensing too
thats why i want nexus to add an actual license section!
From my experience, artists turned modders seem to know even less about it
Not universal
I don't disagree necessarily but I do think it leads to problems
but I have been in modding communities with a lot of artist-turned-modders and watching them grapple with it was a wild time
people who do commissions at the very least should absolutely be aware of it. again with the same use of the word "should"
The artists had the most immensely unenforceable ideas of licensing of all of them.
Not having a good grasp on licensing just makes Mod Drama even worse because nobody knows where the boundaries are
every online community gotta have its drama huh
which can then be made even worse by nexus specifically if they enforce things more strictly than an actual license included in something, which makes people think that nexus's enforcement must mean its legally enforceable everywhere else, too
Yeah it's a mess. I don't know how you'd fix it without causing like twelve community upheavals at this point
That, and mods in particular are vulnerable to the sentiment of "if I can make it it's okay, and everything belongs to The People."
like I swear every game modding community has been a weird left turn in one way or another re: permissions, it's crazy. Each one assumes their permission desires are just the default and you're being an ass on purpose if you don't automatically understand the rules
or at least has a bunch of people like that
Had to sit down a modder once and say very slowly "Okay, but these unspoken rules that you say everyone knows, they don't know them. This is not true anywhere else."
permissions drama is the Great Filter of modding communities /j
If you reported them in the typo & display text bug report section, yep we do review those. That typically happens a bit later in the release, when we send any new text to translators to review at the same time.
That and codes of conduct
Thanks 
ooh yeah of course. the legally binding Codes
"Why are you asking me to be nice to other people? That's virtue signaling, it has nothing to do with programming" asks the person who wants to contribute to a project being developed by a dozen other people
I have one reason I don't reeeeally like the idea of swapping to licensing. look, I can't get people to read much less text than a licensing agreement written in a style that people infamously just skip.
I'm sure it'd be enforced fine, but the length of dry legal text would cause riots
our minds went in two different directions there which I think speaks to how out there some of this stuff can get in some communities 
You can just do what github does and provide bullet point summaries for the most common license types
That would be ideal
I still don't believe anyone would read it, but you can at least point to a bullet point
switching to a license imo is less for the average person to understand it and more just protection for both me and the people who DO understand it, whether or not everyone else does
you can tell I had a mod where nobody read the giant bold "HEY HERE IS THE CAUSE OF 99% OF PROBLEMS" text, can't you
if someone is not going to use my stuff the license is irrelevant to them anyway. If they are, then I would expect them to learn what a license is. it's the least they can do
That's the cheeto rite of passage lol
idiot teenage me like fifteen years ago: Okay but what if it's like... a different color? Bold? italics?
you could print it on the inside of some people's glasses and they would switch to contacts just to ask you again
One of the golden rules of humanity is that People Do Not Read. No matter how useful it is, no matter how obvious it is, it will be ignored by at least some people
I had people basically say "I read that but didn't think it applied to me"
it wasn't better
Aw, I missed Pathos. Was gonna ask if they knew about the NPC Map Locations thing (because I think they are the one maintaining it now?)
The wide Bookseller
Oh well, I saw Aba figured out a fix so maybe it got mentioned on the github
Pathos never sleeps... he's always there
The point of letting people just pick license is so we can all read less legalese tho
I can also put the issue on the github myself later, when I am able to log in
Having weird auth issues today
Instead of your own license that says "yeah you can use it but don't expect support and pls credit back" u can just say MIT
thats more legalese tho
MIT is a whole buncha more legalese than random Steve saying what you can and cant do
i thought more of the point of licenses was so that you didnt have ot write your own legalese and fuck it up bc you are most likely not a lawyer
Established legalese that someone's already read for you
but to the hypothetical user who doesnt know what a license is anyway i dont think itd make a difference if it was your own legalese or someone elses in terms of them understanding it

I do suspect sdv modding community is more into this stuff than most tho, maybe bc the loader is third party
For games that have first party equivalent of content patcher it's probably not something u organically come in contact with
of the 2.5 communities im in id say stardew and another are generally equally aware but in stardew it seems more enforced, socially speaking, for sure
(the 0.5 is the piece of that community mentioned earlier with the retroactive license stuff)
Pathos championing open source a lot in various places probably helps a lot
it 100% is, I've never heard a modder talk a specific license before in any others I'm in
Outside of weird edge cases, I think it came up in the whole Boris fiasco in Skyrim
I'm thinking it's because a large proportion of SDV mods are code. If we were still in the dark ages of XNB modding, no one would care about open-source licenses.
https://www.nexusmods.com/stardewvalley/mods/30964 Mooom I updated it again!!
This time I got Nocturnal Ambiance, Songs of the Sand, Community Center, and Artisans and Ranchers put in
hey i know i've asked before but i like, set everything up in regards to github implantation with vscode. how do i,,, add a folder to a repository 
yeah
What tool are you using to interact with github?
i only ever do git from the command line ngl. are you ok doing it that way?
Are you doing command line stuff?
vscode has a gui i just odn't know it off the top of my head
am using vscode and am confused. commands are fine
They have a desktop app I think, and some people just use the website (this is limited in functionality)
maybe i'm just at the wrong place honestly
oh you have the extension very fun
you need to link your local folder to the remote git repo
Try the sidebar icon three up from the one you have selected
Github is for managing your remote repo
The Git icon is for actually managing your code
i think the remote repo has nothing on it so they'll need to git remote add origin (clone url)
so then they can git push -u origin main
You can do that from the UI too, either way works though
ui is prob easier i've just never done it lol
On the git sidebar, you can get to those by clicking the three dots on top ...
Btw you cannot actually add "folders" to git, it only tracks files and figures out they r in a folder from there, no empty folder allowed
Do note that whatever you pick will be visible by others
If you're concerned about privacy
not really, honestly
GitHub has an option to anonymize somehow, I forget the details tho
kinda more corncered about getting it to actually do the thingβ’οΈ lemme take a lot at the extension page
I set this up a really long time ago
(you can pick whatever you want for name and email. they don't have to be real)
(i don't know how to set them
)
(thats why i set my global config to be unset for both username and email by default for every project. kept accidentally committing to my Real Name Real Life github with this username/email and vice versa orz)
in your terminal you can type git config user.name whateveryouwant
same with email
oh! ty
i extremely never set the global one, so when i do a new repo and it yells at me i can set it up with the correct one
(downside to this: half my repos have the first however many commits attributed to --unset bc i forget to set it when initializing the repo)
i didnt actually set the global to anything i just un set it from what it was... ive never been yelled at so i didnt even know it was like, something i could be yelled at by my software for 
how do i Extremely unset it
gotta navigate the terminal to your git repository/project folder with the git repo in it
if i try to commit without a user/email set somewhere i get the "please tell me who you are. run git config --global blah blah" error and the commit aborts. i have simply never run git config with the --global switch. i assume you would use that to unset it but good luck reading the man pages, lol
"git-config flerps the working treelike and postulates the latest head reference"
it probably needs an @ but it does not need to be an address that works
bea@fakedomain.com would probably do fine
(Keep in mind, if you're going to be putting your code on GitHub or something you'll want the email address in git to match one associated with your GH account, or gitlabs, or whatever)
would it break anything if it wasn't?
Technically that's not required, but the UI might be weird about it
fair enough
if someone else on github has the email dontcontactme@leavemealone.com it might attribute your commits to them i think

visually at least
real email it is
vscode is saying it's comitting the changes but like... unsure if anything is happening. might need to leave this for tomorrow or ask someone to walk me trough it honestly
it probably is committing the changes. but you'd then need to actually push them, if you want them to go to your github repo
otherwise its just a list of changes stored locally
This is too much gui for me so alas i am useless
am confused n lost. wouldn't call u useless chu
So I'm guessing the answer to this is going to be 'dynamic token'
- but if I wanted one entry for my building/obelisk and I wanted it to change where it warped you seasonally (specifically this line: "DefaultAction": "ObeliskWarp AngelOfStars.Mrqifriendable_QiArena{{season}} 40 30 true",... would it have To be done with a defined dynamic token? or is just leaving it as season fine?
I think I already know the answer to this, but I figured I'd check before I went and did it and didnt need to do it
it would be updated every time the season changed
Chu you are very far from useless - I'm gonna bonk you over the head for saying that
You don't need a dynamic token for that but do you have 4 locations named modid_QiArenaSpring and so on?
That's the goal, I realized that I can't just have the map itself change due to how the game stores the data for plants and stumps and things so I had to add them as four separate locations so that it ... you know... didnt do that
I do!
(also im kind of with chu here bea sorry, most of my git stuff is done either via command line or via Rider and if i cant figure something out i usuallyt just google things until i can which is much much easier to do when i would be the one seeing all the info and googling)
I am serious about being useless in this context it is literally thing I don't know
no i mean, that token will make your patch update every time the season changes. no dynamic token needed
O: 
yeah that's fair, i will see if i can figure it out
Yep it work
Yippie yippie that's so lovely
make sure as chu says though that you have 4 different Data/Locations entries
I already do :3
I did that immediately as i loaded into the summer map and saw a bunch of fiddle head trees and mushroom trees in the middle of my little oasis lakes...

It might be funny if u like
Can walk to the other 3 seasons
But they say out of order kid come back next season
You can make anything "mr qi might say that" if u just strategically insert kid
"psssh...nothin personnel...kid..."
'that's not in season, kid, get with the times'
I do feel like having preview would indicate to ppl that u should come every season
It wouldn't occur to me that a warp totem destination might change
Oh there's a cutscene that you have to go to where he gives you a brief description + preview :3
(he sends you mail to let you know that you have to go to see said cutscene)
Do locations still need to be loaded in the content json.. I remember that being a thing (or at least someone told me it was a thing) but I would like to just move it to its own json
It was probably a thing with the old way to add locations .. maybe... unless I was lied to with that too
CustomLocations is the deprecated thing that had to go in content.json
CustomLocations was like that, but Data/Locations is just any other asset
YEAHHH one less thing in my content json thank you
gnini!
why not just use github's noreply dedicated for your account?
wait pillow tell me more
If i want to change how often this fish show up it this the line I change?
you probably dont want 1.25 (aka 125%) but yea
that is the default. I am catchign way to many so i am trying to decrease it
ah I see, 125% would do that lol
I still put new entries to Data/Locations in my content.json, but that's only because I was running into issues with it running my locations changes too late in the priority order (after other patches that tried to use said location) because of where I had my Includes
Question: are the display names in Data/Monsters actually used anywhere? Because the adventurer guild board and the quest lines seem to not actually call on the values and just have the name written out instead.
Alternatively, is there a way to call a localized token or something that WOULD call the display name part of that slash-delimited entry?
Sort of. Monsters are NPCs and npcs have a name field. (like how townies and farm animals have names). As far as I know it's only used when town npcs talk to the monsters in passing.
Alright, so clearly I'm just gonna have to go in and find all the monster lines and replace monster names with i18n tokens. Noted. xD
Aren't they calling LocalizedText
It doesn't appear so
Rip
It doesn't look like anything in Strings/Locations calls upon LocalizedText.
Oh things in strings are what is called by LocalizedText 
And nothing in Strings/StringsFromCSFiles, either, which is where the monster slayer quest lines are pulled from
Yep, and those are the bits where the monster names are written in directly and need to be changed.
Monster data continue to be Suck
There shouldn't be any issue with me changing things in Strings to use i18n tokens, correct?
For instance, this is one of the lines I need to change: "SlayMonsterQuest.cs.13711": "The monsters known as 'Duggies' are making a mess of the local mine! The holes they create could weaken the structural integrity of the mines. Could someone defeat {0} of these creatures?",
Not really, though if you are changing whole thing maybe just do a Load
The {0} bit probably needs to be omitted from the i18n, yes?
omitted how? bc it should still be in the i18n text but you dont like, translate it to anything else
the {0} will be replaced with a number
okay, so it will still parse correctly
That was what I was wondering, thanks. π
Is this a correct gsq for when Big Coop is built: BUILDINGS_CONSTRUCTED All Big Coop?
I'm not sure how it deals with IDs containing a space 
Need to quote it i think
Oh yeah, I missed that part on the wiki π
New quote added by atravita as #6351 (https://discordapp.com/channels/137344473976799233/156109690059751424/1359998193974251754)
quoteception
side note this won't catch the Deluxe Coop
I dunno if whatever you're doing is crucial or not (as in should not be missed even if the user already has a bunch of Deluxe Coops when they installed your mod and don't plan to build more)
It's a personal edit, so shouldn't matter, but definitely good to know
(And I genuinely forgot it exists...)
what do you guys think about having it be next to pierre's as opposed to in the bottom left?
i'm hoping it won't interfere with too much? i know there are some schedules i would need to shift, like lewis looking at the calendar
Oh it would affect a lot
Any npc who enters the hospital or pierres would need their schedule fixed
As well as the warps in/out of the buildings themselves
moving the warps wouldn't automatically fix their pathing?
you dont define every step of the path, so if the warps are moved the pathfinding will work itself out
Oh wait maybe you're right
Im stupid
I forgot
you will run into other issues though
if someone specifically stands in any of the spots youve affected theyd need to be fixed, like lewis, but also thats where many festivals place things
unless you just dont want your building there in the festival maps
also, the little ! that appears over the daily quest board cant be moved
yeah i was already planning on disappearing it during festivals, but i didn't know that about the !
it just completely disappearing during festivals would make it so jarring to me that id personally skip on the idea altogether just on its own
I don't think that would be very... compatible
Like Ayeisha stops at the mail slot at Pierre's, Cambria checks the help wanted board
if anyone stands under that tree, they'll be in a wall now
I really think across the street to the left would be a better spot
I know Bearfam has a cutscene that has Sig standing outside Harvey's which would definitely break with everything shifted over. heck, I have a cutscene myself that takes place as you leave Pierre's, so that'd break.
Don't know if you care, but the bottom left would be easier to add SVE compatibility. If you care about SVE that is. It does look nice next to Pierre's but think it will break a lot.
does giving a character a mermaid pendant immediately mark that NPC as married to the player?
I believe you need to have the wedding
okay, curious as I have this as event data:
"TL13.PennyExpanded_BusStopEvent2/O Penny/f Penny 2700/w sunny [Rest of Event dialogue]
However, one person on Nexus reported
Hi!
For some reason "A day of married life part 1 started just after giving Penny the pedant. 3 days before marriage π
actually I'm not sure if "across the street to the left" conveys what I meant so here is where I'm saying. If it vanishes during festivals, I can't think of anything where this would be in the way
is it possible to patch a getter for a field?
for a field, no, they dont have getters. for a property, yes
i know there is a mod that puts something in exactly that spot but for the life of me im unable to pull the name of it from my brain right now
something with weapons i think
Defense Division puts a building over there but more to the left
But that's one thing vs a really big inconvenience by shoving everything over
The bottom one also works, I was just suggesting it as an alternate if they really want the building up top with the others
it was defense division i was thinking of, thank you for saving me from being bothered i couldnt remember for hours
it does overlap with where you've put it, though
yeah. I'd still say it's better than budging everything over. I think the bottom one conflicts with the least things
I wanna say some mod had something there, but an older one that isn't updated for 1.6
Defense Division puts it building there though.
Adding a building to town is so hard. You may just have to live with it not being compatible with some mods.
I think pushing the block over is the worst option though
pretty easily
That's deep in compatibility hell
I actually can't think of a place that is not used by some mod in town. Other then the bottom left place they had it in to start.
Yeah that's the most out of the way spot
I found a relatively empty spot for mine, but that building would look really bad there
I'm not stupid in this case right? the /O Penny/ means my event only triggers when player is married correct?
@cedar turtle Re: Carry Chests - someone else came into my discord reporting the same thing, but I wasn't able to replicate their issue nor find out why it was happening to them. Perhaps if you could share a log, I could compare your mods lists to find any overlap if there's a potential conflict.
Oh wait, in their case they weren't clicking on the chest
With keyboard mouse, you actually need to click on the chest to pick it up
it turns out, while you are only Married after the wedding and engaged until then, they are still set as your Spouse immediately. so, that precondition will actually happen asap
I was. left and right mouse button. facing towards the chest in all four directions.
I was able to pick it up when enabling the 'overwrite tools' option.
okay thank you.
if you are asking questions about preconditions while using their legacy names, you should port them to their modern names first
Give me like ten minutes or so to boot up the game and I toss you a log.
I changed my mod list and maybe removed whatever was causing a conflict
Ah, without overwrite tools, you'll only pick up into an empty inventory slot. So you have to make sure nothing else is selected.
So you also got time to tell me whichever other command you want me to use
(ive updated the wiki to state that it checks for engagement too)
yeah. Tried that. empty slot, non-empty slot. even an entire empty row
It just didn't do anything
thanks a bunch, Button, very useful for folk like me that kinda stumble blindly and hope stuff works
I think I saw the report and it mentioned unlimited chests, which I also have
id probably just swap it to the GameStateQuery precondition instead
Unlimited Chests shouldn't be the issue. The problem it can cause is with Junimo Chests as far as I recall.
Otherwise, I'm not aware of other issues associated with the current public release of Unlimited
I'm pretty sure the known issues are fixed in the beta, which I just need to get around to releasing soon
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.57, with 156 C# mods and 353 content packs.
inchresting
[01:06:44 TRACE SMAPI] Ignored loose files: Biscuit NPC [CP] 1.9.2, CarryChest, LoveOfCooking, LoveOfCooking [CP], LoveOfCooking [EN], MachineProgressionSystem, MasteryExtended.SC, Scarefroggos AT, Scarefroggos CP, [CCM] Machine Progression System, [CP] 24H Clock Language, [CP] Lore's Cove, [CP] mono's Portraits, [CP] Prophet's Kitchen, [MFM] Always Raining in the Valley, [TrainStops] Stardew Aquarium
huh... half of those mods aren't even enabled.. Is stardrop sym-linking doing weird things

I think wren wants to read about this..
New here, and new to stardew modding, i was wondering are there any good resources for people new to making mods. Any sort of guide for making a simple starter mod. I have ran into issue with it not working.
!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.
how would one go about adding a new sword or tool
is there a guide for that specifically?
tools are hard if you aren't in C# don't think about it
there are a couple tool mods but i dont know of any off the top of my head for 1.6, but if you're in C# its kinda freeform anyway
up to you to write what they do
The tool item itself would be best added via CP, but the functionality would come from the C#.
Custom tools are... a rare breed.
stardew modding really isn't weird.
You just picked one of the more complicated things to do
I came in assuming I would need C# for everything a good few years back now, too. 
its weird compared to terraria
theres even a fun thing to make them shoot projectile
thats something i wanted lol
i would think a modding scene would be weird if it was exactly like a completely different game
Maybe, never really modded terraria.
Last time I checked I wasn't even able to because the modloader was windows only
for tools u can make them exist, but making tools do new things takes work
its on steam
Oh, it's worked on Linux for ages now.
tmodloader
so yea i guess it's dependent on what you wanna do here
is there an easy way to clone ai
like monster ai?
weapon ai
weapons dont have AI
they do
idk what that word means in terraria
like the swinging of the sword
no. there is no AI behaviour in a stardew weapon
but you gotta understand sdv weapons are simpler by a lot
thats not... AI
i made a framework for doing stuff with trinkets which could do more complex behavior i suppose
what causes the animations
code, which isnt ai
though honestly the combat portion is somewhat undercooked
there is no intelligence in playing a sword swinging animation on the screen
artificial or otherwise
if hitkey
then playanimation
simple as that. no ai involved.
well, the actual code isn't that easy of course but you get the idea
where i come from weapons have ai
the animation stuff in sdv isnt very standardized into data
most of it is literal spritebatch.draw somewhere in the code
maybe it helps to play game and look at decompile 
draw code is my worst enemy
!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
i hope the source code isnt as excruciating as terraria
it got better with 1.6
theres still
ofc
unfortunately you are going to have to look at TemporaryAnimatedSprite for your weapon anim stuff
parts of the code are def a bit convoluted but i think it's unreasonable to expect perfect code cleanliness out of a game that's been around for nearly 10 years at this point haha
the code is like an old friend: definitely weird, but there's a logic to it once you get the hang of it
well my quick google search saidd 2016 release date
time flies
yeah 1 year is 4 months
like yes, all the weird stuff is crammed into Cursors.png, the objects are all in springObjects.png, and the farmer animations are hardcoded to hell and back, but if i were CA I also wouldn't want to touch farmer animations after I finished with them
pants :)
i mean the code was being written long before the release date
pants 
so more than 10, really
yea but who knows how much of it survives to now
didnt 1.6.9 remove tilesheets that were literally never used from release onward
rip dobson
Including the bus-
angry roger is still there tho :)
rip dana
did they get rid of the cat monster?
uh oh, lore i dont understand
still there
!unpack you too can behold the cat monster
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
it's in with the rest of the monsters
loaf
i unpacked
so i could see how the sprites work
i didnt expect all the tools to be on one spritesheet
!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.
i believe you can put other spritesheet into tools data now
I think normally in vanilla this wouldn't be an issue, but because of a patched performObjectDropInAction it causes an error because I'm passing your current item to it, which in this case is null. So I can prevent that on my end.
I think somewhere in the combo of PFM and machine upgrade, it doesn't like the null item
It would seem so. I also informed wren about this because I thought they might wanna know
This particular error on my part is easy for me to avoid by just swapping the conditions, which is probably more efficient anyway since it avoids the overhead of performObjectDropInAction when the item is null or not a chest.
So I should make the change regardless
Small annoucement: finished Conversation Topic Utilities 1.0.0! It's a framework for default and repeatable dialogue responses to conversation topics. For example, you can create a default dialogue line that any NPC can use in response to a specific conversation topic, but only if it's raining outside, or only if their name is included in the conversation topic key itself. You can match many conversation topics by prefix to avoid repeated code. It's a small mod, but I figured someone else may have some use for it so I wanted to share 
Old versions of MUS (along with some other mods) don't like null input, but that's been patched for MUS. still probably a good idea to avoid them though
Good to know (did I forget to update?)
Hello, good evening everyone, I'm looking for help, colleagues, I want to create a mod but I don't understand some things, if someone could help me, I would be eternally grateful
Please ask the question, and usually people reply if they know the answer
what's one specific thing you don't understand? maybe we can clear that one up first
Excuse me, I don't think I made myself clear, I want to learn how to create mods for Stardew Valley, but I don't know what to do, I have Visual Studio 2022, .net 6, I installed NuGet and the DLLs but the code keeps giving problems
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.
Something simple, when you hover over a chest it shows a label with the total value of all the items inside it.
okay. to me that sounds like it'll involve C#, which i'm not experienced with, but that C# tutorial linked above sounds like the place to start. i believe there's even a beginner tutorial where it teaches you how to have mouse output or something
Yes, I have already done the most basic things, but my lines of code are still marked in red.
considering we have no idea what you've written, it's hard to help
Well i think the best way is probably harmony patch the tooltip code
Still b4 getting into all that
- Do you have prior programming experience?
- Have you tried following the wiki C# tutorial
What have you already done and what is going wrong specifically?
Sorry to interrupt with a wee CP question, but if I do this: { "Action":"EditData", "Target":"Data/Characters", "Fields": { "Nari": { "DisplayName": "Nari", "Calendar": "HiddenUntilMet", "SocialTab": "HiddenUntilMet", "PerfectionScore": false, "EndSlideShow": "Hidden" } } },
Will it replace the whole of the "Nari" entry or just change those fields?. Or do I need to use TargetField if I just want to change those specific fields?
itll just change those fields
Perfect thankyou π
targetfield is if you want to only change some fields/entries of a nested item, but "Nari" is at the top level
I saw TargetFields is used on the Wiki for changing Appearances, is this needed because it's nested deeper than the above example, or could I still use just Fields?: { "Action": "EditData", "Target": "Data/Characters", "TargetField": ["NPCName", "Appearance"], "Entries": { "{{ModID}}.NPCName.Outfit1": { "Id": "{{ModId}}_NPCName_Outfit1", "Season": "spring", "Portrait": "Portraits/NPCName_Outfit1", "Sprite": "Characters/NPCName_Outfit1", "Indoors": true, "Outdoors": true, "IsIslandAttire": false, "Condition": "TRUE", "Precedence": 0, "Weight": 1 }, } }
that example has TargetField, so it's effectively turning the Appearance field inside NPCName into the data you want to edit, so just Entries is fine there
like how Data/Characters itself is just a dictionary where the keys are NPC Names and their values are the NPC data, so you can just use Entries to add your character
TargetField there is effectively making "Appearances" the outer-most dictionary, so its like your target is Data/Characters/Nari/Appearances, effectively
if you use Fields it will replace all of Appearances with your entry, hence the need for TargetField to only add new stuff to it
(more or less, for the sake of brevity in explanation)
Here's what I had written before I looked up Appearances specifically. Is this okay? :{ "Action":"EditData", "Target":"Data/Characters", "Fields": { "Nari": { "Appearance": [ { "Id": "64x64 Portrait", "Indoors": true, "Outdoors": true, "Portrait": "Portraits/Nari_64", } ] } } }
if you only want that appearance and ONLY that appearance, sure
Oh right, In this case I'm adding appearance for the first time, rather than editing, so it should work, but if I were just changing one thing I would need TargetFields
but in that case you are setting the Appearance field to a value. that value is that entire list
but you're not adding to the list. you're writing down the entire list you want to assign to Appearance
so it will overwrite the previous list that was there
I do only want that appearance, but I can use TargetFields anyway just in case I refer back to this code for another project and copy is innappropriately..!
well if you want to add more it would be better to just switch to TargetField and Entries anyway, both so you dont forget you've done it and bc it would still depend on the order of your patches whether something later on gets overwritten
but technically you could keep this as is
up to you basically, as long as you remember what you did
Thankyou!
I haven't said anything to Pathos or done a PR because my edit only fixes the width issue, not the height one, so I don't feel like it's a proper fix. Do you have any thoughts on it?
How much programming experience do you have, and are you using AI for any part of your code?
you can raise an issue at least
the normal flow of github stuff for open source is actually like
raise issue -> raise PR that resolves issue
so its fine if u do both 
I don't really know if changing the spriteZoom would do anything helpful, but I know the traveling cart uses 1.3f instead of 1.5f
I wonder if dropping the zoom down would allow for the hat to not get lost
As far as I can tell, spriteZoom isn't actually used anywhere. It's set for both the bookseller and travelling cart but it's not included as an argument for the draw code so it's meaningless. And just in case I'm misreading, I have changed the values between 0.5, 1, 1.5, and 50 with no change to the map marker.
I'm not sure if I'm skilled enough to try editing the draw code to make use of spriteZoom, but I'll try and see what that does.
There is not an overload for the draw method that uses destinationRectangle and scale. I am rapidly reaching the end of my abilities here.
what is the problematic code 
(it makes sense there is not one that takes destinationrectangle AND scale)
because, well
if you know you're going from <this rectangle> to <that rectangle>
you can either express it as "scale of this rectangle" or "exact size of that rectangle"
but it's constrained so you can't really do both, you either give the same info twice or you contradict yourself
I hope that made sense
it's after atra bedtime
,...I assume it did not make sense
I'm not sure I grasp it properly but I think that's to do with not knowing the underlying mechanic of how this stuff works rather than your explanation.
i think atra just means you're already saying where you want to place it. you want to place it on the rectangle here. so obv the scale is just, gonna be whatever it takes to make it the size of that rectangle
Yeah, that part I did get haha
what is the mod that you can press a key(~ or ` by default can't remember which) and it will show you the cordnates and map of your mouse?
I have gathered that if I want to put a 16x15px sprite into a 32x30px rectangle, it doesn't just plop it in there at 16x15px and then put empty space around it, it actually scales it up to fit. But I do not know why it makes that decision.
Debug Mode
I am also not sure why Pathos/Bouhm included a spriteZoom property that can't be used. I can guess that it might be to do with forgetting that it can't be used or something, but maybe there's a reason it's included that I can't see.
i think that means you did properly grasp it then! it scales it up to fit bc thats just what it does. you told it to fill the rectangle, so fill up the rectangle is what it shall do
defining the destination rectangle is the part that tells it "i want you to fill this rectangle"
I wonder if that means it will make things super wonky if I change it from destinationRectangle to a Vector2 position
do you want it to not fill the rectangle (and respect 16x15?)
Is it viable to just change where the source rect is placed and use the other part of the Bookseller sprite in cursors (so the part including the tent)?
is there an overload that even lets you just place a top left pixel
(I am finding the code)
So that you can grab a bigger rectangle that is the right dimensions?
I can change the source rect easily, yes
you probably could but then bookseller himself would be smaller relatively, and not match the other NPCs
The Traveling Cart lady is already smaller than the other NPCs
if thats not a bother then its probably no big deal
So it's not a complete mismatch if you consider that
I'm okay with them both being smaller
Since they're temporary
when was traveling cart lady added anyway bc she mightve been done like that just to match uiis tbh
added to npc map locations i mean*
The bookseller already doesn't match the other NPCs because he is both wide and squashed right now lol
but it is cropped to his face, which matches, right?
Ugh, mixels π¦
No
atra go to bed
Well, I guess it depends on what you mean by "matches"
This is extremely zoomed in, but this is his face in the version of NPC Map Locations that doesn't include my edits #making-mods-general message
i would count that as cropped to his face
he is. but its the cropping part that i was saying matched
Then yes, it matches in that respect.
like i said, if its not a bother, then its no big deal. i was only pointing out why someone might not want to expand the sourceRect
i remember this! i just personally would prefer this to a smaller face expanded source rect version 
booookseller
I assume that Lily's sadness is because it means that her Zelda man is weird and wide too
very much so
Does the travelling merchant bother you then Button?
I put a screenshot in here when I first mentioned it
Since she could be weird and wide too but isn't?
im not sure theres a perfect solution since the bookseller man isnt a real npc
also the traveling merchant does actually bother me but not bc she isnt wide but bc shes not a cropped face
I don't really know of a solution that wouldn't involve creating a new asset of their faces without the background, since they draw from the Cursors sheets
you could do that programmatically, but it would be impossible to take into account modded retextures, like yours, so iunno what the solution could be in terms of removing the background
I mean, if it's a loaded asset, it could be targeted for a replacement/retexture, the same as any other. >_>
(unrelated but the zeldo mod is really coming along!)
im not sure how you'd remove the background from a replaced texture if you do not know what pixels are bookseller and which are bg?
unless you mean you're just suggesting that NPC Maps let content packs override its icons entirely instead of it using mugshotrect or hardcoded ones
I meant instead of using hardcoded ones, yes
which is not a bad idea, could be worth a PR
i dont remember, is NPC Map Locations one of the ones just on maintenance mode?
Pathos has merged one of my PRs before
This is using his stall source rect
Very tiny
it's far enough along that I'm playing the game to test it and see what I've missed. π
i dont even remember where to find pathos's list of mods
The list of all the ones he maintains?
yeah. i recall there being a list separated by like, "these are actively updated. these are maintained with low priority. these are just maintaned to ensure they launch" etc
Yeah me too
absoluteyl not a clue where that is now
I think the basics, and if I'm using AI help to help understand some things and fix errors that the code may have and something else
I searched in this discord for a message from Pathos containing the word "maintain" and that had a link xD
then yeah. probably worth a PR then if Pathos is open to it
but it might involve making bookseller square in the first place anyway though
The trick is finding someone to do the PR
chu was just here, right?
itd probably be two PRs also, i think Pathos usually prefers PRs stick to one thing only if possible
I have reached the limit of what I can contribute, I'm afraid.
My last (and first) PR was one line of code and Pathos rewrote that anyway xD
Pathos generally does that, though he is usually still good at crediting the author anyway

idk aba got it in the bag i feel
hm because im a silly person who has 6 different Events.GameLoop.SaveLoaded handlers in this mod it looks funny on profiler
It was absolutely justified in my case anyway haha. I managed to know how to do the thing, but not how best to do the thing.
Aba does not have it in the bag! Aba wouldn't even know what to do.
don't worry profiler also looks funny on profiler sometimes due to having 2 on most lifecycle hooks too
Blargle why is it so hard to access a thing from one class inside another class.

