#making-mods-general
1 messages · Page 247 of 1
yeah, my question is where it looks for them - say mod A is referencing mod B as if they're both in the Mods folder, but the user has mod A inside a subfolder instead. Would that break?
whether i leave it or delete it in my mod folder the mod still loads and runs normally
It shouldn't.
On a related note, blatant plug: The ModManifestBuilder nuget package makes using hard references easier since you can just reference mods by their unique ID and it makes sure everything in your manifest + project is set up correctly.
so it's not too unsafe to reference DLLs then, in the sense that it's not just going to break 50% of the time like I assumed until now 
There shouldn't really be anything in Content Patcher or GMCM that you need to hard reference, 99% of the time
Yeah. That's why I want to know what tutorial you were using.
The tutorial sounds incorrect at best and harmful at worst.
You're not meant to call their functions and whatnot directly. You're supposed to use their APIs
here's a example of using GMCM via the api
what if I want to make a content pack using content patcher features in c# though /j
i have a copy of the interface here
https://github.com/Mushymato/HaveMoreKids/blob/main/HaveMoreKids/Integration/IGenericModConfigMenuApi.cs
i get the api here, and then build my menu
https://github.com/Mushymato/HaveMoreKids/blob/main/HaveMoreKids/ModConfig.cs#L76
(I mean you say /j but I'm pretty sure its conditions API does require a hard reference I think?)
it sounds like it was a general "how to add another dll to a visual studio project" tutorial, not a Stardew modding one
(the /j is because why would you do that in the first place)
Referencing DLLs that come with SMAPI or the game is fine.
Referencing DLLs from other mods is where it gets borderline.
what is wrong about it? fragility?
as soon as you hard reference your code fails if the mod isnt installed
...hard reference harmony
It means the other mod needs to be present for your mod to load at all.
So if it was just an optional dependency, oops, no it's not. It's required.
ah, ofc that makes sense
i thought mod build config already does that for you
And if that mod updates in a way that breaks the ABI, oops your mod can't load.
hence why using HarmonyLib works
(... actually I haven't tested breaking changes like that, it probably just explodes at runtime I guess)
oh it gets detected actually, sometimes
i have a mod that has hard ref on StardewUI for reasons™️ so whenever a constructor changes it explodes
but it correctly shows no longer compatible
rather than blowing up at menu launch
My new mushroom item is defaulting to pickleable, is there a context tag or something I can give it to disallow pickling?
Does your pickle have a tag like vegetable_item etc
Pretty sure the machine takes all categories of certain things like fruit/veggies
just mushroom_item and edible_mushroom
To add to what Button said, you shouldn't need ATA to use HxW Tilesheets or DaisyNiko's Tilesheets anyway because they load the tilesheets into maps. That lets you use them the same way you use vanilla tilesheets. On top of that, you don't need ATA to use your own tilesheets either because you can also load them into maps.
You only need ATA if you want to use a tilesheet that isn't in maps (like vanilla furniture.png) - though to use a non-vanilla one I would personally try to get permission from the mod author anyway since they probably wouldn't have been expecting that it would be possible to use their assets when they published the mod due to ATA being relatively unknown still.
I can try it without then and see if it's dehydrator friendly but not pickleable! ty!
No problem :D Shooting from the hip here but that sounds like the culrpit to me
using non-vanilla sheets does not require any distribution of any files and does not come with any permissions issues
I know it doesn't require distribution of the assets but I would still ask permission because people might not be ok with their furniture being used in maps etc
nope, still pickleable lol
it has always been possible to use any loaded asset, ATA has not suddenly made something possible that was completely impossible before. it's just a Game.content.Load("hime.tilesheet")
there was nothing stopping people from already doing so, ATA just makes it possible to do so in Tiled itself
you need to move entry ur thing up
I would look into the machine operations
I'll edit my message to say "I would personally ask for permission" because I still would
and cross examine whats similar in your mushroom
Its only pickling because somethings telling it to
Hi, does anyone know how I can change the color of the normal letter to the letter Rasmodius sends you?
I've been looking through the vanilla files, but I can't find one that changes the color.
(that said ofc the part about "you dont need ATA for this anyway the tilesheet should already be loaded by them" is still correct, i just glossed over it bc my mind focused in on "error with my mod" and not "why are they using my mod" lol)
sorry I'm not sure what that means
I think it's because the category is forage
I was mostly using it to keep mod tile sheets separate from vanilla to organize things... 
you should really just load your own sheets to Maps
Maps/modId/thing if you will
hmm, it looks like maybe i wildly misunderstood what this function does and my shit worked anyway? big if true
ATA is not and should not be used for purely organizational purposes
Thanks
ATA's only purpose is to allow using images that are not found or loaded to the Maps/ folder. if you are not using it for that specific and exact purpose, do not use it
apparently you can pickle vanilla mushrooms too and I just... never knew that. I'll leave it then
ughhhh i have to make more events but i dont wana :(
I am using it for loading vanilla non /maps stuff as well, I'm fixing my stuff now 
does making festivals for a mod use C# or content patcher
i just tweaked something in csproj and broke the solution
like new festivals
luckily i still have the mod dll and decompile it
i think passive festivals are easy enough to do with just CP. active ones have some hardcoded jank i believe but they're doable afaik
festivals are mostly C#, not much you can do with CP alone
A festival festival still has to be C#, but passive festivals are CP
passive festivals?
passive festivals can be done with only CP
technically you can do regular festivals with just CP but because of Jank, C# is recommended
Oooohhh
I think festival festivals, as long as you don't do anything fancier than shops or dialogue, are also doable with CP- yeah
passive festivals also are great and you should choose them if possible
things that are just There but dont require a fade in and frozen time and stuff
You could just post your csproj and we could point out issues. We are here to help.
(but active festivals also take over an entire part of town and closes down shops, so they are not recommended over passive festivals)
I could do a couple passive festivals based around little festivals ive been too growing up hrm
i just dont want my future expansion mod to be a bunch of do nothing npcs that have no life in them in their own town and rely solely on pelican town for any kind of festivity
keep in mind though you are still ofc very limited in what you can actually do with a passive festival thats different from just non-festival patches
here
i think the only thing that Data/PassiveFestivals really exposes for you that you couldnt otherwise do is just making it appear on the calendar
technically, you can run any C# function to start and clean up a passive festival, but thats... not much use to a content pack author
Your project file without bad things: ```xml
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableHarmony>enable</EnableHarmony>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.2" />
</ItemGroup>
<ItemGroup>
<Reference Include="ContentPatcher">
<HintPath>$(GameModsPath)\ContentPatcher\ContentPatcher.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="GenericModConfigMenu">
<HintPath>$(GameModsPath)\GenericModConfigMenu\GenericModConfigMenu.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>
immediate festivals i think of is
-
woodworking festival (based on an art festival in my home town) (have art for sale and have musician npcs
-
Jazz festival (music and food festival (sell food and have musiucian npcs)
-
a flower festival (just decorate everythigng with flowers? maybe sell hard to get flowers for a limited amount)
- You shouldn't reference
Lib.Harmony, ModBuildConfig does that for you. - Added
<Private>to the mods so their DLLs won't be included in output - Removed a couple weird "don't compile file X" blocks that I have no idea how you got them there
idk how doable those are with cp versus C# though
uhm but it now
i installed Lib.Harmony in NuGet
i have been to a few insane rural town festivals in my day, and i would consider making mods about them, but truthfully a lot of them are just like vanilla stardew so what's the point

Oh right I missed it. <EnableHarmony> should be true not enable
tires burning in front of joja would be a cool event
fwiw however all of those festivals are doable in CP
I wasn't even thinking about that because I saw the packagereference and thought "No, bad"
woohoo
oh okay
Ack sorry i @'d you button 😭
so the gamemodpath is my path right
i prefer being @ 'd

Yup. ModBuildConfig sets that for you.
but im not fussed either way im not gonna say "please @ me next time"
understood ^-^
wow yea its work
Speaking of Button, did you see that I hit you with another PR yesterday? 😛
hi guys is it much harder to make mods using c# directly for smapi vs cp? i tried to make a mod using chatgpt but code isnt working i wanna try and do it manually but im not a good coder. the code chatgpt gave me looked simple though
!chatgpt
i did! I gave it a glance, just haven't been able to get to it yet with school priorities, but im very appreciative of it 
(You should thank Khloe for the help btw
)
Absolutely do not use chatgpt.
please do not ever use chatgpt
It is the lying machine that lies. It will give you rubbish.
!chatgptcode
Please stop trying to get ChatGPT to write your C# mods for you, especially if you don't know how to write C#. It won't work without heavy editing, and it wastes everyone's time.
Large language models fundamentally are reguritating something from their input—which is roughly speaking, the written output of humanity up until 2021 or so, for ChatGPT. For specific, niche topics like "is this framework going to do what I want" or "which things does Game1.cs have access to", it probably has no idea! But it's good at detecting that people in the past have....said things about frameworks and written things in C#, so it does its best to assemble words and symbols into a nice order for you. Sometimes it tells you true things, and sometimes it tells you false things, and if you can't detect when, you're in trouble. When you're writing code, this usually produces garbage, because you can't be "sort of similar", you have to be exactly correct or it won't work.
i still need help haha
that command should probably mention CP as well
Nothing stopping you from thanking people as you go along!
i didnt know people used chatgpt for coding what
oh, people very much do, and then it gives them code that doesn't work, because it doesn't know anything
!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.
if you want help making a mod everyone here would be happy to help
Admittedly, chatgpt can give you ideas if you already know what you're doing. But knowing what you're doing so you can validate that it gave you something sane is very important.
(I know because those code have been posted here)
(And even then it's still... why not just google things normally?)
i dont really see the appeal to use a framework tbh but maybe there is one for custom storage?
im actually curious what kinda code it would make without like a lot of extensive knowldge hm
(it is embarrassing seeing just how much the SPU performance was improved though... i mentioned it before but yeah, im very not proud of its codebase today lol. dont know what possessed me to make it like my second mod after i learned the basics of C#)
i dunno if it could do a monkey and typewritier thing though
Expanded Storage lets you add custom chest types with a content pack.
the appeal to use a framework is if it has a feature you want that you don't want to reimplement yourself
framewokrs my beloved
@rancid musk when i compile my mod it contain the same mod folder but inside my main folder. what happened
^ Frameworks can do a whole lot and make things far easier especially if you 'aren't a good coder'
I love frameworks and the people who make them, such big brains
Try doing Build > Clean Solution and also deleting the output directory to start you from a good state and then build again
does anyone offhand know the mail flag for unlocking the deluxe rarecrow?
Frameworks aren't just about making things easier, but also perhaps more importantly, it's about certain changes happening in a consistent way between mods to reduce potential conflicts
they just tend to have annoying side effects for big mod lists when some stuff are incompatible with dependencies i want maximum compatibility but yeah they do make it easier to dev
A bunch of mods attempting to make the same changes/patches to the same code can often result in them clashing with each other
it worked
Thanks you so much
The same ambition that makes you the author of BETAS and ATA and CMCT and Custom Schedule Keys, all of which have totally changed the game for CP modding!
A single framework doing the work helps eliminate those conflicts
RarecrowSociety?
you really saved me, if i had to figure it out on my own i think it would have taken me all day today
theres a fine line between ambition and naivety i think
but i appreciate that nevertheless 
Most frameworks don't have that sort of incompatibility as far as I can tell... at least I haven't seen that many especially not with 1.6 
And if you think about it, if you try to write a C# mod that changes the same code that a whole framework changes... then you're completely eliminating compatibility with all of those mods (like Matt mentioned)
by the way do you mind if i rep-ping to you? i see you dont usually rep-ping to people. or is it because you have turned it off
remember theres a big difference between mods that just adds the same things and mods that are frameworks for something
hey matt since you're here I have a feature request for custom bush: a function in the API for "run day update logic for this custom bush"
reason being I may have bushes that are stashed away in neither a location's terrain features nor an indoor pot, but a secret, nefarious third place
this is absolutely neither urgent nor necessary, so no need to rush on my part!
like Lily i cant really think of many (any?) incompatible frameworks
that do the same thing
I can't imagine how screwed modding would be if we didn't have Content Patcher, for example. If everyone just willy nilly attempted to do their own injections into the content pipeline without the caching or dependency management that Content Patcher handles.
At this point I don't really mind reply pings. It can be a bit annoying if someone does it while I'm clearly still around and responding, but I've gotten used to Discord's stupidity.
if anything if you are make mod that intend to be framework, compat is higher on the mind
compat and marketing /j
oh ok
marketing...
is there a way to make @ pings off on default anyway
i wanted to turn a decorative item into a chest that shares inventory between all versions but every new one that is placed down requires a gold fee before it becomes functional
Hold shift while clicking Reply and it starts off.
mm dissapointing its not just default but ill try to get in the habit of that
im not sure whats the difference between that and just paying for a new chest 
its a shame the joja vault is purely decorative i want to make it a minecraft ender chest but pay to prevent placing them anywhere in mine runs
im imagining like an animal crossing style donation box you gotta fill up first
Creating Chests in C# is actually not too bad in 1.6. It used to be awful in 1.5. Now you mainly have to make sure that you're using the same frames as offsets in the spritesheet.
What is the name of the :3 emote?
are you just trying to make a junimo chest that's bigger... and costs more?
you can click "@on" when reply someone to set it off by default or do like Khloe
32
idk what junimo chests are but chatgpt referenced it as a class lol
ty!
is there a way to get vs to stop auto-formatting my json? It didn't do this before
i love how many different kinds of storage mods there are. seems like everybody's got one. stardew valley is storage mods georg
it would be better if you abandoned any memory of what chatgpt told you
Junimo chests are literally ender chests
XD
Some stuff is hardcoded that Expanded Storage makes available like customizing the sounds, sprites, animations, and making them colorable, but if you stick to most of the hardcoded values, you can mostly add chests using a custom BigCraftable and just creating the chest instance.
ah I found it
in your case it'd be a global inventory anyways
I don't remember what the wiki command thing is but that's the link to it
can skip the Chest part if u want
yes im mostly wondering how i can create the pay per item prompt
Junimo Chests in 1.5 were just a special chest type like the hopper. They're still a special chest type in 1.6, but they're backed by a GlobalInventoryId of "JunimoChest"
what Button said - abandon all memory of what ChatGPT told you
in this case this is because Junimo Chests are not their own separate class. ChatGPT doesn't know that because it doesn't know anything.
AI code is suck...
im sure ill find solutions for storage
the only difference between what you're talking about and a Junimo chest is that you just buy them from Qi, and you can't craft them (you could add a crafting recipe for them though... i wonder if someone's done that yet
)
there is joja catalogue that gives them for free thats why i want ppl to pay
i cant think of a non-C# way to do the payment part
Check out Crystalline Junimo Chests source code for a mod that makes custom junimo chests which involves a dialogue prompt and the player paying an item to access them.
Crystalline Junimo Chests does all of that already
will do thanks
Yay! I am pretty proud of this!!
(And it uses Expanded Storage as the framework for actually adding the chests)
The who does what now
I am 95% certain that junimo chests can not, in fact, be purchased from any catalogue
The Joja Furniture Catalogue is a catalogue of furniture and decor items that can be purchased at JojaMart for data-sort-value="25000">25,000g or at the Traveling Cart for data-sort-value="30000">30,000g after completing the Community Center Bundles. There is a 10% chance the catalogue will appear in the Traveling Cart's shop inventory.
no the vault
yes
My brain was not computing that lmao I was like 'wdym you can get junimo chests from catalogues'
i need to finish a cc route some day i keep going joja to unlock greenhouse faster
make a pull request to GMCM probably?
so we can't do anything about it..
if you're in C# you could write your own custom menu for GMCM. seems like a lot of work for something of relatively little import though.
you can create a complex widget and do its rendering yourself. lots of work though
are you in C#? it looks like you're adding a list of items
theyve been talking about compiling and their csproj and stuff
yeah, i'm the guy who was hopeless about creating a mod to fix house upgrade prices a week or so ago
ah I rember now, congrats on the release
but i asked a friend to teach me some basic c# for 2-3 days or so and now i have my mod done
well u can just make many boxes
now i'm trying to polish the mod a bit
wood stone etc
if i had time i'd consider a GMCM PR to allow overriding the (hardcoded, in SpaceShared) padding value on every widget, which increases the page height/next widget position even if you render it out of flow
or you dont let user deal with this at all and let ppl make content pack 
I don't think I'm capable enough to open that box myself, so I'll let users add item IDs themselves via config.json
i think making many boxes is not that bad
or many sliders
if u want to just have it be wood stone hard wood X number that should be fine
I mean expand that little box that SpaceChase gave everyone in GMCM haha
have them write the name of the item and then do a fuzzy search over Game1.objectData 
yea the suggestion is
change to number option
which gives u a slider
if you supply min and max
i dont think they know how many items the person would want to configure though
like, how do you know how many sliders to add
no i want people to be able to add whatever items they can into the farmhouse upgrade blueprint
yes i did it
if u r just add a new number item in the setvalue part
thats not what you have here
honestly for a first mod i think just leaving it at this is fine, you can always come back to it later
but yea these r all suggestions in the name of weh i dont wanna make custom gmcm option 
just link em to the item id spreadsheet/website in your nexus description
I mean I'm seeing the box where people can add stuff via GMCM is pretty small and it might be inconvenient, so I'm asking if anyone here knows how to expand it. But it seems pretty difficult and I don't think I'll do it.
Another event done, yet I just realised I forgot to put the NPC names through the i18n
Just out of curiosity, is it possible/how difficult would it be to tweak torches to only light at night? There's a couple of replacer mods I like but I'd prefer them to only be lit/show at night 
my mod is now complete
that needs C#
this is what i meant by the slider btw
how bad of an idea is it to simply EditImage the lightmap with TimeChanged
then you have a text option at top whose sole job is to add more slider
mmap feature for the light part
night tile for the tile part?
I thought they were referring to the torch item
i also assumed this
oh those things u place ok
torch framework 
i remember torchs being very cursed and i dont want to touch them at all
Yeah torch item I believe. There's a lot of candle mods and orange blossoms firefly replacer, but I'd like the candles to not be lit in the day and fireflies not even appear during the day
torch framework that lets you finally make differnt torches that give you luck buff if you place the right torch in the right location but debuff your luck otherwise
(For whichever one I'm playing with at the time)
you can patch away the flame sprites in cursors I think, and the glow shouldn't show during daytime
darkest dungeon mod 
i was thinkin terraria
I understand what you mean, but if I choose slider, I will have to add a lot of available values to use the slider, right? And I want people to add and delete materials freely. Even if I add everything myself and let people drag the value to 0 or some other number, it will be too many slides to interact with.
yea the suggestion is to make it reactive
Anyway, bed time. Good night 
by having text box for adding new slider at least
if the light still does show, patching the light map as button suggested might just work 
removing an option in gmcm is death though
dealing with lighting gives me flashbacks to developing nightshade and the unholy flashbangs my poor testers were subjected to right when the lightmap kicked in
I think I'll research it later, for now I'm satisfied with what I've done.
with my stupid brain, applying i18n and creating GMCM menu has exhausted me
my friend when i asked about some things i don't understand in c#, he also wanted to punch me dozens of times haha
What day of the week is the first day
spring 1 is a monday
[game] Unknown precondition for event Zach.MeadKegAcquire: AddMail Mail.MeadKegAcquire tomorrow
"Zach.MeadKegAcquire/Skill Farming 4/AddMail Mail.MeadKegAcquire tomorrow": "null",
Not quite sure what I did wrong here
AddMail is not an event precondition
you either want LocalMail, or if you meant to give the mail to the player, that's part of the event body
And if you're doing this just to send mail, use a trigger action instead.
Yeah Im trying to get an NPC to send players mail
for clarity, the deprecated precondition that does this is SendMail. but don't do that, use a trigger action
I got AddMail from https://stardewvalleywiki.com/Modding:Trigger_actions
yes, i think you crossed a couple of wires
Am I not using trigger actions? lol
It is correct when used as a trigger action
My ignorance is showing rofl
what you have done is paste the trigger action into an event precondition
No, you need to edit data/triggeractions for that
for this, do not use an event. edit Data/TriggerActions like aba said
There's an example for how to do it further down the trigger actions page
Yup that's it. It's even an addmail one, handy.
Thanks for the help :)
trying to install SMAPI and SDV back onto my computer since I am returning from a hiatus. however. I am getting a block from opening SMAPI on MacOS 15.3.1.
anyone know how to bypass it?
i already bypassed during installation, but now can't open game
!macsmapi
There is currently a known issue with certain MacOS versions flagging SMAPI as malware and forcibly moving it to the trash, disallowing users from installing SMAPI.
If you are experiencing this issue, please read through the solutions in #1318323302779060324, which gives detailed instructions on how to resolve it.
If you are still experiencing issues after attempting the solution in common-bugs, please post a new thread in #1272025932932055121
its showing the channel as unknown fyi
click it anyway
discord moment
You can still click it. It will stop being unknown once you go to it.
you have the channel category hidden/muted i presume
It showed as unknown for me without being muted, I just hadn't been there for a while.
Discord dislikes threads 
self-hiding
Double checking for sanity, does this look correct?
https://smapi.io/json/content-patcher/3f78e728f8ac4e3bbeddc3079e4a26ed
Player learns recipe at level 4
So once they know the recipe, send them the letter the next day? Looks ok to me
Though unless (BC) is part of your keg's recipe ID, I don't think that should be there.
Hi i would like to make a mod that changes a npc sprites speech likes and dislikes etc i dont exactly know where to start as im not sure if a content patcher would cover all of this can anyone help
its cool looking through the game files, i just found an unused map that was supposed to be a secret part of ginger island
!startmodding Yup that's all possible in Content Patcher. Start by learning how to make a CP mod (second link below).
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.
tysm ^^
got it, ima attempt to open it again.
i meant the unknown channel btw not smapi
so it worked. i finally got it working. tho i had to uninstall and reinstall smapi after putting in the fix. but now it worked.
i just found out that players can upgrade houses at the same time in multiplayer, is this normal
yes
yes
I thought it was my mod
is there anything i can do about this? i mean i want to limit it to only one person getting upgraded like when upgrading Co-op or Barn
is it possible
why
i mean with enough c# anything is possible but im not sure why you'd want to. you can upgrade multiple coops/barns at once too in multiplayer
selph does EAC have a api
i wouldnt expect a mod i downloaded to make the price configurable to alter that either
nop, what you need
an API clearly /j
produced items
If this was a feature of the game in Multiplayer, I would leave it as is. I thought it was my mod that caused
well, we told you its normal
If I had the ability to do so and could do it, I would leave it true/false.
but well just leave it as is
do you just need to know the item queries for the main/secondary produce
yea
im finally adding these so i rmbr 
altho idk what do about alt purchase types rn
is there a limit (re: the omni chicken)
yeah that's what I mean lol
i.e. its a api that returns ISpawnData which we both have access to
I was joking on whether you're displaying every output
oh well i could
it'll scroll by super fast
anyways im gonna release this version for vanilla produce for now (theres a separate bug that need fix)
so no rush on ur api either 
hmm maybe I should just make the API expose the entire asset for reading
pintail spoopy though
if it is an interface then i'd have to copy the whole thing 
have fun with that
same as api stuff i imagine
yeah, because I'm going to add more fields to the class eventually
and then I have to do stuff like AnimalExtensionDataV2 : AnimalExtensionData?
so adding new field is fine
if you remove fields then u need that
(fields or props)
Does anyone know off the top of their head any C# mod with a dropdown in its config that has a source I can look at?
Which one should I choose for Stardew?
!startmodding see the C# section
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.
AddTextOption with AllowedValues set should turn it into a dropdown
I have already got that but I am getting a null object reference error so I am doing something wrong.
My guess is that I am doing something wrong in my ModConfig class so I want to peer at someone else's lol
does your config have an initial/default value for the things you are configuring
before you are accessing them
public sealed class ModConfig
{
public bool ExampleCheckbox { get; set; } = true;
public int ExampleNumber { get; set; } = 5;
public string ExampleString { get; set; } = "Default string value";
public string ExampleDropdown { get; set; } = "choice A";
}
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 33 C# mods and 9 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
then yeah probably a log and code needed here, i also dont think it sounds liek a gmcm thing
i wouldve thought GMCM would have like. catches/checks
is your code on github?
No, is that the best place for me to put it?
s'where most people host their repos. could put it on github or in a gist or pastebin or tbh a screenshot of your config option code might work fine enough too
to clarify for just generally storing your code a git repo at minimum is nice and github at least better still so you dont lose everything if you lose your actual files. some peopple prefer like, gitlab or gitea or w/e tho
does your IDE warn you about any potential null references anywhere
they wont necessarily be errors, Rider gives me yellow squigglies for em
is this your modconfig? I think this is the file where you call the variable(?)
I have so many null warnings lol
But most are them for the IGenericModConfigMenuApi.cs code I downloaded from GMCM
.....
I just downloaded this whole thing and put it in my mod folder
u are using GMCM API example code?
Ahh so just the exact ID I use for the recipe not the big machine object
Since you want to check the recipe, yes.
It may be relevant to say that I deleted these two lines from the ConfigMenuApi because the framework line was giving me an assembly reference error and the suggested fix was to just delete them so I gave that a go. The other three config options work (insofar as editing them in GMCM goes, I haven't used them for anything).
using System;
using GenericModConfigMenu.Framework;
deleting the second line is correct, if none of the things you're using use System then deleting that is also fine
your IDE would make it clear if deleting one was an issue
I know I can add question marks to things to make the null reference warnings go away, but I didn't know if it was a good idea to actually do so and thus haven't been.
what are the other three? which one did you add when it started breaking
I didn't know if it was a good idea to make things nullable william-nilliam.
It only breaks on ExampleDropdown. ExampleCheckbox, ExampleNumber, and ExampleString seem fine.
But I added them all at the same time. It's only when I go to try to change the dropdown value that it errors.
what is the most convenient way of debugging my own mod only? Do you always move all the other installed mods to a separate folder
The only change I made to the GMCM code is to add a tooltip, which is why I think the problem is in my ModConfig class.
I have different mod folders with different shortcuts of StardewModdingAPI.exe pointing to them so I can swap between mod dev, play, etc without moving anything between folders.
does it null error if you delete your config.json manually and try again
I will see
wow this is very nice
That fixed it, thank you!
im guessin you had a previous iteration of your ExampleDropdown before you got the code right and i guess whatever value was in there was Incorrect as far as GMCM was concerned
bc it was erroring on accessing its cached value
Yes that makes sense
Now to learn how to use those config options in dialogue 
did you want guidance on the correct path there
When it says "add to your project", is it referring to this folder (pic2)?
I want to try one thing first but if that fails me then I will, yes xD
is there such a thing as correct path here...
there are many ways to incorrectly use config inside a dialogue string
dont harmony patch the dialogue constructor
will tell you that one for free
xD
I did follow every step in "create the project" but I still can't see my own project in Mods?
wait is it because I haven't compiled it
thats what building does
Should I build through this
Is that VSC?
Yeah
Are you very confident in programming in it?
I've been programming in it for my degree, but not familiar with C# and Stardew modding
I would recommend to change Visual Studio Code for Visual Studio or Rider when working in C#
ok
are you on a mac?
yea, just downloaded Rider
ah yeah. rip VSCommunity on mac
Btw which way should be used to build a mod in VSCode? I've seen different sources say different methods
ive not a clue since ive never tried to build something with vscode and never would if i could help it. i imagine dotnet build
so the first one, likely, but i dont know
Thx! Dotnet build was successful
i would still recommend Rider in the future though. a lot better to use a full fledged IDE than a glorified text editor
(a very good glorified text editor, but still)
Poop, my idea only half worked. The token shows up in dialogue but doesn't update unless I restart the game. I'm guessing it's because I'm editing the dialogue in AssetRequested but I am not sure what to do to instead. Could I switch to editing the dialogue in DayEnding? Would that be bad for performance? Is it even possible?
you'll want to invalidate that asset in your GMCM save function
Content Patcher is nice and handles invalidation for you
if you invalidate it after changing the value, the next time the dialogue needs to show up, itll be run through AssetRequested again
there are other ways too. you could turn it into a Tokenizable String and have your tkstring parser grab the config value fresh every time
thats more effort than just invalidating the asset though
(also to be clear: always edit assets like that in AssetRequested. dont edit them anywhere else)
Okay, I understand the idea of what to do and I think I found how to invalidate an asset, but is the save function something I am supposed to write?
how i can post my mod in #mod-showcase
setValue: value => this.Config.ExampleDropdown = value, thats your save function!
Anyone willing to do code review for a mod I wrote? Mostly looking for sanity checks since I'm pretty new to making mods, afaict it does do what I want it to do
setValue: value => {
this.Config.ExampleDropdown = value;
ModEntry.ModHelper.GameContent.InvalidateCache("Data/Whatever");
}
like this
you dont without the mod author role. you can nicely ask if some other mod author is around and available to showcase it on your behalf though
I don't know if it's redundant or not but you should also add a code that creates a temp config
oh okay
Why?
code auditing by internet randos 
to avoid unintended changes.
your changes dont save until you press save
there is no reason to have a temp config made
its already a gmcm feature isnt it 
I know but somehow even though I didn't save and pressed cancel, my mod still saved what I edited even though I didn't press save.
If so then it is my code causing the problem haha
but that's ok a little more code doesn't hurt anything, glad others don't have the same problem as me
my other option is code auditing just by me, which uhh probably not the greatest idea
are you Spiderbutton in Nexus?
She is
i am Spiderbuttons yes
oh yes
sometimes i do ask ppl about how they might do a C# thing better
I would like to talk to you about your Searchable Collection Page mod
if its to report something broken about it, i have no plans to get to it in the immediate future
the some of the icons/silhouettes stacked on top of each other. one
that is more likely to get response than "pls audit code"
oh okay
i havent touched that mod since before 1.6.9 and was never able to recreate issues people reported even back then, so, its very low priority
I use it quite a bit so it's sad that it's broken
did you open source that one button?
i honestly dont remember
i thought it needed better game menu changes
it has one patch to GameMenu that likely does not even need to be there
i was gonna say if it is open sauce then rias can attempt PR if they want
Why is this, btw?
well if Button allow me
i have only had the chance to open up Rider like 2 times in the past couple weeks so most of everything mod-related is low prio for me right now
because edits made outside of AssetRequested will get overwritten next time AssetRequested happens after the asset is invalidated. thats a big reason but not the only
caching it yourself for other purposes is fine but like, dont go editing Game1.objectData
this value is bad, set it to null so we skip the check
you can read from the game's caches just dont write
Okay that makes sense, thank you. I do not know what it means to cache things yet beyond the general idea of "store this" but hopefully when I need to use that I will be at the point of figuring out what to do lol
thats basically what it is. store something so you dont have to keep getting it/generating it later
like a texture, for example. you can grab a .png file from the computer every single time you need it if you want. but why do that when you can grab the .png file once, save its data, and then just grab that data whenever you need it instead
looking up a dict has cost
speaking generally about caching not necessarily stardew specifically
looking up in a dict has a very very minor cost, though
but if u know u r always look up this one thing, u can hold it so u dont lookup again 
yea its not a big cost, adds up if u r doing it every frame or something like that
i think the miniscule differences in those scenarios is not so much the best to describe the efficiency of caching
getting it from a dict is practically close to O(1)
Caching is the reason I had to invalidate Abigail's dialogue asset for the token value to change? Because when the asset requested it was cached?
correct
its cached so that when every mod or the game asks for abigails dialogue it already has a copy ready to hand out instead of reading the .xnb again
or making it go thru assetrequested every single time
And theoretically I could also cache it somewhere else and then edit that? And that edit wouldn't affect the actual Characters/Dialogue/Abigail asset?
(I have no idea why I would want to, just trying to understand what chu said about editing a cached copy.)
if you ask the game to give you that asset then you can do whatever you want with it
and it will not affect the original bc you'll be loading it into your own dictionary
but be careful to not assume that every time you ask for a thing that edits wont affect the original
like, for C# in general not smapi assets or anything
yea it is by reference too
im not actually sure if Game1.content.Load gives you a reference or a copy 
i wanna say reference
If it gives a reference, would that mean my edits are affecting the original?
[i do edit only when] this value is bad, set it to null so we skip the check in future
but that is also where the use case comes in
i dont try to change stuff to different valid value
(also i just downloaded Searchable Collections Page and ran it and it still works perfectly fine for me so. shrugs)
I think I figured out what a boolean is.
(get it... boo-lean? he is doing a peekaboo thing?... ha ha?)
the last time someone reported it they didnt send a log so i commented asking for a log, then someone else replied to that comment saying they had the same issue... and didnt provide a log. so i guess @cyan venture if you had a log that would probably be helpful
well im the second person who rep you haha
that time i was on phone so i cant have the log with me
i cannot do anything with a report without a log
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 117 C# mods and 178 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
and that happens as soon as you load the collections page at all, or a specific tab?
(oh hi Khloe. i fixed the BGM compat for Searchable Collections Page. that patch didnt need to go on GameMenu)
(:D I was just thinking about that cause of this log)
both(?) i think
Just to check: I am trying to make a compatibility thing for someone. I am trying to make sure they can read it as in Content Patcher.
__instance.modData.Add("PolyamorySweetWeddingDate", friendship.WeddingDate.ToString());
This is a safe thing to do, as in, it will not screw the NPC up which it is added to?
it happen when i search at any category in collection page
oh, wait, rias, do you use any mods that add more tabs to the collections page?
oh hmm i think yes
Messing with moddata is fine, yeah.
i consider more book button or something like that
Yay!!! And the world date is as I believe, "Year int Season int", correct?
unless im confusing which mod you mean
i have to start my game again wait
actually i might be confusing what mod you meant
season is an enum
unless the mod author name is just different from nexus
but yeah if you could tell me if you have more tabs on the collections screen and which mod adds it thatd be great
before that i was still using your mod with this mod folder in july 2024 and now i play again it is broken
since you get this with ToString $"Year {Year}, {SeasonKey} {DayOfMonth}, {DayOfWeek}"
i'd probably do a different serialization without the leading Year
Do you have any thoughts about last July?
Im not too familiar with NPC stuff yet, can I insert a liked/loved item to an existing NPC only? Like, can I insert my mead as a liked/giftable item to an NPC without disrupting other stuff?
i mean any of your other mods could have updated in the meanwhile
im almost done load my save
i'll look if i have any mod that add more tabs
i think nope
this is normal collection page right?
Think a mod that adds crafting recipes, yeah.
this is where just copying from the vanilla code bites me in the ass once again
int[] widthUsed = new int[8];
...
widthUsed[collection.Key] = 0;
IndexOutOfRangeException: Index was outside the bounds of the array.
Hammer Time! Drop the hammer! (Thor Voice): Hammer!!!! (Too many hammer memes come to mind! Sorry!!!) (Justin Hammer!!!0
but i'm not sure the guy who report this problem in your mod page first have the same mod as me
so if u remove that page does it load
i was confused bc the tab it added with the hammer didnt even show up for me
i assume its looking for GameMenu to be opened to add to the list
Ah, lol
Closed source mod, I can't PR it. Honestly people should just use Better Crafting's dynamic categories anyways /s /but-not-that-s
ah.. it does look for GameMenu to add a new tab. it adds it with an id of its mod id
yeah i wonder why widthUsed[21620] is out of range
its not technically incorrect to do, i guess
Patches CraftingPage.receiveLeftClick, and if you click to craft something, it tries to find the collections page and update it live.
I guess is technically works, but
i was wondering why it even touched craftingpage
i mean i guess without Better Game Menu , it makes sense?
it's not like it's going to update otherwise when you switch tabs, its already created
id really rather nooot initialize an array of size 21620 just for this...
Sounds like it is time to use the page indexes as keys and not indexes.
yeaah
which, i shouldve really done from the start. again... copying from CA. blame him /j
Yes, I think you can do so with TextOperations such as in this example #making-mods-general message
(Also I hope you've been liking BGM since you apparently test with it :D)
easy enough fix though, and hey, the search actually works with it
i am very pleased with how snappy it opens
is the strange gap on the right of the existing tabs temporary
Hmm?
other than that (and the loss of my gmcm button for now) i do like it
lemme re-add it rq
You can disable it in GMCM btw, to avoid needing to remove it and re-add it
Though I guess it'd help if I sent you a GMCM build with it working
yeah i was unable to open gmcm
lol
also Rias if you're still lurking ill post an updated version soon of searchable collections page with the bug fixed
this is what i mean with the strange gap btw khloe. between the 🚫 and the X
that definitely strange
Ah. Yeah, it's to do with a different way I'm handling the child menu size vs the game menu size.
Anyways, I uploaded an unofficial SpaceCore + GMCM build here on GitHub.
Make sure to use the right-click menu option to open Mod Options 😛
i need BGM too right?
Yeah, for that you also need Better Game Menu
(but not for my bugfix if thats what you mean)
hmm spacecore add any game menu?
SpaceCore replaces the Skills page, but it doesn't add a new menu.
oh
The more I mess with it the more the ability to quickly change tab providers is one of my favorite features.
Khloe
your Theme Manage mod
maybe, just maybe have some issue
it said something about Memory issue
but i cant see it in smapi log
and the issue make the game close immediately
=)) what is this
uhh i lost all of my map
even RSV in the left cant access
Yeah, there's a lot of mods that still need updates.
There's a compatibility tracker and most are still in the stage of waiting for the fix to go live.
RSV is one of them. A few map mods are there.
Right. That mod is closed source. I've reached out to the dev about support.
and this too https://www.nexusmods.com/stardewvalley/mods/29049
Haven't heard of that one before, but it's just a content pack so it should be fine.
I do appreciate people loading up with big mod packs to see what they notice though.
I hope it loads noticably faster for you than the normal game menu does.
(Mostly the first time, admittedly.)
i have all of big mod with me rn
did you make PR for Button SCP?
i cant click into the search box
SCP has not changed yet
Button still needs to release that, I think?
but clicking into it shouldnt be an issue
you are using your mouse, right. controller is not supported
mouse ofc
it work perfectly before i install BGM
but now i cant click into the search box
that is not an issue i am able to recreate
but i just uploaded a new version to nexus anyway
hmm but in console it dont have any error tho
because your crafting collections tab isnt there
i mean BGM and your mod
ah yea this is old version
UI Info Suite 2 Menu disappear is normal?
remember that BGM is still in beta. Khloe has made PRs and reached out to devs but not all mods are updated for it yet
yea im testing it
i just asked incase of she made a patch but i wont work
you can see the status of UI Info Suite 2 on that page
the same page you got the GMCM and spacecore builds from
i see it
wait
if she made a PR for bigger backpack
im using Morebackpackupgrade
i'll grab the mod link
did this need it too?
.. have you checked?
i dont see it in github
manually checking every single mod out there that may be affected is a huge order. a significant portion of the intent of the open preview is for people to report it if they notice it, not just report that they think something may or may not be affected
what BGM affect to GMCM
I don't see any change.
wow
and my save load very fast
(I don't know if it's the BGM but it really loads much faster than before)
SCP work perfectly now
even the morebackpackupgrade is smoother by somehow
so amazing mod
Shameless plug 🤣
Is there a guide for adding support for earthy etc
to a custom map*
My insertion looks mad goofy with earthy haha
I don't know of any guides but Daisy has some files to help with recolours for Earthy https://www.nexusmods.com/stardewvalley/mods/21545
Are your grass/fence tiles custom made ones? If not, you should just be able to use vanilla tilesheets anyway.
They are vanilla assets O.o I mean the grass and fence at least
Then you shouldn't have to recolour them manually.
Are you including them in your mod folder?
no
oh wait
Shit i am forgot to take them out of my repo folder
derpp
I knew I wasnt going to when I released it, brainfart lmao
If you prefix them with a period, the game will use its own assets rather than the ones in your map folder.
Still better to remove them before publishing, but it can be helpful for testing to avoid having to remember to move them around.
You appear to have a random tile in the middle there
yeah just noticed that
Odd
wasnt there before
think its medieval buildings doing that
Did you draw the building, btw?
No no, its from a public tilesheet
Oh, Lumi's?
I believe so
Hers is the only one I can remember with buildings. I was going to say it's a nice building xD
It is! Her sheets are stunning
Inside the saloon
I may end up changing the layout, its kind of basic as far as the path to the bedroom
My first venture into making maps
Nice :) Very exclusive only allowing one table at a time xD
I dont really plan on having the NPCs move around or do anything aside from tend the shop so I didnt think locking their bedroom up was necessary essentially - I may change my mind though
Haha good point
Saloon renovations in next update after this lmao
Actually might just add more rooms via doors
maybe a backyard for tables
put up a bunch of string lights
Xiddav was clutch with the giant keg and barrel stacks
Really brought the saloon together imo ;p
unsung (maybenot, idk tbh) heroes tbh
A lot of time to sink into something to 'give away' like that, mad respect
an NPC was in my saloon O.o
Didnt know they could path to places unless you told them
How many warps in and out of your saloon are there?
Just the one, and its an action warp
Fixed the hovering tile
invisible with vanilla assets apparently
They normally do not go to places unless they are told.
Is your saloon where the tree with the swing normally is?
yes 😭
Jas is a vanilla NPC
Her schedule does send her to that tree (at least in my game, not sure about vanilla).
It does
I know of at least two mods that have events there too.
Your door probably lines up where she needs to stand
Well damn. Hmm now what
If your NPCs do not need to leave, you have more options than people frequently do because there's no need for it to be close to town.
True
They dont even get into bed :p
The saloon is open 6pm-2am so not like anyone would see them do it anyway
You could put it on its own map and have a TouchAction (player-only) warp that implies that the player wandered down a little lane to get there.
Might do like 6am-5am since I primarily use night owl plus anyway, might be cool for a shop to be open overnight
Then your vanilla map patch would only be a few tiles, much easier for compat.
Like Lunna
or Lost in the woods
I was hoping to better integrate to the main maps but I may have to end up doing that
Maybe i can make an exit off Walk to the Desert REDUX ;p
It depends on how much you care about compat with other mods - and whether you think people are likely to keep yours over whatever it clashes with xD
Yeah not holding my breath on that Im realistic lol
You could also do various options that change depending on config choice or even automatically depending on which other mods are installed.
Please do
theres sooooo much empty space. you dont need hallways that wide. modded maps keep doing this and like. have you noticed how economical vanilla indoors are?
Again, not having NPCs having to path from there makes your options much more flexible than others'
I agreeeee! Maybe since I have to relocate I can just redesign the saloon now
This is my first attempt at making a map wholly by hand
yeah the lower half looks good!
the hallways, just make them 1 tile tall
or 2, with the invisible one
(covered by the front layer of the wall in front of them)
My girlfriend and I designed our halves and I like the juxtaposition
and 2 tiles wide
like the top looks good too! in the parts where its not empty
and the bedroom will look roomy and non-cramped even after removing the extra space at the bottom you know?
yay ^^
I agree :D
I originally wanted to mimic the vanilla style with the really thin hallways, but I am very NOT artistic so thats what I got 🤣
Took me way longer than I care to admit to even get the room borders working properly
w/e you call them
the ceiling liner
It took me a long time too. It takes a while to get used to how the layers work and where the tiles are.
my girlfriend having tons of PS experience picked it up immediately
I always have a vanilla map open and swap over to it to find the tile that I want and then right-click it to find where it is on the tilesheet and then go back to my map and find it on the tilesheet there.
She was just like yeah its layers and took off
I didn't have any issue understanding how the layers work in terms of draw order but I still get the collisions or Front stuff wrong sometimes.
I black out and when i wake up i have finished maps
But it doesn't bother me because I learn best by trying something and then learning why it does or doesn't work anyway so I just do my map how I think it's going to work and then run around it and update the bits where I'm wrong.
Same
Ive been working on a huge (for me) expansion to my mead mod
I'd probably give up on maps if patch reload wasn't a thing though.
I'm not about to restart the entire game because I put one single tile onto Buildings instead of Front by mistake lol
I just strip everything but what im testing and frameworks/mod tools, booting is pretty quick with like 25 mods where most arent actively doing anything
that being said, I do patch reload it just doesnt work for everything
I do that too - I have mod groups set up for it - but it would still be too long if I couldn't patch reload,
Patch reload works for almost everything except config and dynamic token changes.
Yeah all my i18n dont update I believe
There's a separate command for that.
Ahhhhhhh
reload_i18n and then patch reload
well hot damn
goodbye rebooting
Wonder how many places edit this area
Im actually more familiar with the SVE map, but afaik the bookseller doesnt go this high up
If you can see it on a vanilla map, there is at least one mod editing it lol
I wish there was a Te Reo Māori translation of Stardew so I could practice learning it when I was testing my i18n.
Wow, my idea for how to use i18n and a config token together in a dialogue string worked first go.
Caveat with reload_i18n: I don't think it works when you're adding new i18n keys, only editing existing ones.
Still pretty dope
Man I really need to get rid of the Fast Forward mod
Every time I hit the key by mistake I end up unable to do anything in game
Sticking with Event Tester instead
You could possibly create an extra break in the trees somewhere for a path to a new map
Over by Clint/the museum/JojaMart
Yeah I am actually looking at the east of Joja
You only need enough space for a path block to imply a route
Anything on map edges has the benefit of avoiding issues with vanilla NPCs walking over it
lol I didn't know about patch reload when I was making my map mods 🤣
Yes, it makes everything speedy. Helpful for testing schedules. But Event Tester does it too and also does other things like plays events automatically and checks mail and dialogue and GSQs and stuff.
I have to be very careful with patch reload because I have home/schedule changes to vanilla NPCs that will reset and cause NPCs to mow down trees
Every time I was testing my shop and reloaded, Linus (my test owner) walked off so I couldn't open my shop anymore. Rather than edit my shop to not require an owner (the most sensible solution) I just ran to his spot and used debug wctm Linus every single time lol
Hooray, today's C# learning was very successful!
Morning, anyone know how I can reach Airyn? I want to ask him permission about creating a compatability patch for a mod of his.
(Just @ him here)
If I wanted to make a translation of the game in a language that isn't supported rn, could anyone tell me how to get started with that? (making it as a mod I guess)
This page explains how to set up a custom language. https://stardewvalleywiki.com/Modding:Custom_languages
Once you have set up the language you will need to patch every text asset in the game to translate them. Unpacking it will help if you haven't already done so. Instructions for how to do that are here https://stardewvalleywiki.com/Modding:Editing_XNB_files#StardewXnbHack
Just because I'm curious, what language are you considering translating it to?
Amazing thank you! I want to do Papiamento, my native language
That's awesome! Let me know if you need any help with the modding side of it; I've helped someone a little bit with their custom language before so I know a bit about it.
That's very kind of you! Would it be okay to DM you? I've never done any kind of modding before so it's all new to me
Yup DMs are fine :) Here's a tutorial for getting started with making a Content Patcher mod too but I'm also happy to answer any questions you have about how it all works or anything. https://stardewvalleywiki.com/Modding:Content_Patcher
What's up?
good morning airyn, i saw in your custom wedding ceremony mod that you dont provide sve support. however i am wondering if you give me permission to create patch mod if i give you credit for it. i'd call it "Custom Wedding Ceremony - SVE Compatibility"
again i would give you credit for original mod, just wanted to ask if I can make this compatibility patch. I thought it be a good opportunity to learn and practice C#
Sorry, but no. You're welcome to do your own custom ceremony for SVE if you like (without using my code or assets), but I don't want my version edited for SVE compat.
You also don't need C# for that
oh ok. is custom wedding ceremony a CP mod? I thought it would require SMAPI.
and that's fine, i respect that. I might do that, but i will ask flash first
It's CP, yes. All my mods are, with the exception of DSV Core
ok. thanks. have a good day.
Hi loves! Is this the correct format for Winter Star GIfts?
"WinterStarGifts": {
"ID": "LantanaWinterStarGift",
"RandomItemId": [ "(O)341", "(O)394", "(O)797", "(O)873" ]
},
how is everyone doing today
Tummyache central
that was me last night e.e
You will want to edit the wedding event, using Content Patcher.
oh interesting. thanks for clarifying. i had no idea before
Otherwise I will only be able to make mods 50,000 years later
Just realized my real name exposed
You can make CP mods without coding experience pretty easily. (Copilot won't know anything about CP, so don't bother trying)
I thought CP is a person's name 💀
I was thinking why CP is so productive
You need to be in a drawing context to draw things yes
Nope, it's Content Patcher, which is what about half the content packs of Stardew use.
can you add new item in CP?
Oh
I had a lot of fun updating my mod and now I've got the bug but all my ideas require me to be better at art. Tragic.
I got to that point too! I overcame it by dedicating myself to learning to get better at art and then drawing what I wanted even if I didn't think it was good enough. It has proved to be a much better decision than choosing not to make mods anymore.
I overcame it by paying other people to do my art 
(Which is also a valid option, to be clear)
It totally is! I strongly encourage it also. I have paid for art for one of my mods too.
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
Yes, they're the people we're paying, usually lol
Sometimes I like art more than programming
If the workload is not too big, I can help with it maybe
I commissioned a portrait pair from my friend Pau for my Trader Sialia mod.
Yeah for example, I've commissioned Taiyou (author of Vanilla Tweaks) for my recent Little Free Library mod and Airyn (author of DSV) for my NPC portraits and sprites.
Haha I definitely should find some low stakes stuff to practice with I think. I don't really want to commission as many fish as I want to make so practice it is!
I have found it very satisfying learning to draw for Stardew. I find pixel art at this size much easier than any other drawing endeavour I've ever attempted.
Fish are probably one of the easier things you can do! Speaking from experience as that's about the only thing I've successfully sprited 
I've done some very simple pixel art for cross stitch patterns before, but it was mostly doodles and text lol so this is a change
Cross stitch basically is pixel art so that's a leg up 
I enjoyed drawing my fish the other day except for having to look at all the pictures of fish for reference. That was too sad so I have sworn off drawing fish.
stardew was the first time i ever tried pixel art
absolutely no experience or knowlegde of how it's even supposed to work 😭
You had prior art experience in general, right?
uhh, idk if i'd call it "experience" in a formal sense
but ive been drawing for practically my whole life?
I had an idea like 2 years ago that I feel like acting on now
Snake milk counts as a special power right? So I can't just add a mod with a 2nd snake milk to get the buff twice. I would have to make a whole new special power and stuff right?
I don't know. Lemme try something real quick (it's probably gonna be about 5 minutes
)
Also I'm not entirely sure what you're asking. I'm just going to spawn multiple snake milks and see if the effect stacks
I don't think the snake milk is an item. It is just something mr qi gives you on floor 100.
it uses some mail thing to give the boost
Oh. Then what's iridium milk?
Iridium snake milk i think is what it is called. I may be wrong.
Ah, then I can spawn multiple and drink them :D
Not sure if anyone answered you, but I believe you may need a [ ] around your list of item data models.
Been a while since I did them, but that's how I coded them on my winter star gift helper in the NPC builder.
the iridium milk item has no special capabilities. it only exists to serve as a sprite in the special level 100 skull cavern event, which is the actual thing that gives you the boost
Does it give you a permanent 25 health each time? That was basically what I was wondering?
Then why is my health bar so big? ;-;
I got 180 health. Not sure what you start with
Okay, nope, the snake milk I spawned did nothing
Oh. Level 10 combat probably
Also apparently nobody reported to me that I didn't code the gift helper formula to support RandomItemId, so I will get that fixed later today xD
in vanilla, 205 is the maximum amount of health you can have if you have max combat level, pick both the HP increasing professions, and saw the level 100 event
All that's missing is the milk then
that's "saw the level 100 event"
I know

