#making-mods-general
1 messages Β· Page 205 of 1
im also not sure what cc_Begin is even for
i think the main issue with this in BETAS is that it does indeed rely on a custom asset to work
if its a conversation topic, then the topic needs to be active
Alright, last thing on my C# notes here because I'm not going to try learning late at night.
Most of my C# notes: a few lines, going through several sections previously gave a total of 262 lines in my Visual Studio solution
Dictionary notes: Lines 262-367
and not been seen before
it does kind of fit in that this is a dialogue-y action
I've just been following the website tutorial
I have the beginnings of ideas on how to use dictionaries in Stardew modding code for things that I've previously talked about, but those will have to wait until I've finished the course(s)
what website tutorial?
a QuestionBox action has been thought of and died on the drawing board in the past bc of this bc i dont know a good way to fit it all into one action
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
i dont see a cc_ anything in that page
yea me neither, its got too much things 
even the game's $q rely on asset in the back
No it's a known convo topic
Memo to atra: extract every base game npc's dialogue keyd
whether its real or not, its not on that tutorial page, and its not going to activate when someone starts the game
I really like having cusrom assets
im not against custom assets or anything, they just dont really fit in BETAS
Here's an alternate template to NPC Dialogue Template I (Tiakall) did for folks that includes a few different dialogue keys. The rain dialogue is from Jorts as an example of how to randomize (if you're not using i18n.) Make sure you replace ~NPCNAME~ with your NPC's internal name!
Cc_begin is when the player first accepts the quest total fix the cc iirc
Editing an existing phone call is basically just like adding a new phone call, except I use the existing one's ID, right? I don't need TargetField or anything?
an IncomingPhoneCall?
Yep
then yeah you can edit it like any other dictionary asset like editing an existing item
since theyre all top level
I see, thanks
no targetfield needed
if you are only editing one field inside the phone call thouggh be sure to use Fields instead of Entries
(or only editing not-all of the fields)
it worrrrrrks thanks again atra
brilliant
it works except for the buy part
Posted! I also have a pack with a confirmed-works-when-romanceable NPC with Evelyn's disposition that does not dance, but I can't upload it because it's over the file size limit, let me know if you'd like it! https://forums.stardewvalley.net/threads/flowerdancecandance-disposition-field-not-working-as-intended.36948/
Thanks! Just the files on the post should be fine. I'll take a look when I get back to vanilla dev.
heya, got another issue on my noob journey, how can I apply a content patch in the same mod that already has ModEntry.cs? I tested and it worked when I made it a separate mod. I think the main issue is the
"UniqueID": "Pathoschild.ContentPatcher"
}
as if I use it, it creates a conflict with the dll in compilation but works when it's isolated in a separate mod/folder
you cannot
a C# mod and a Content Patcher mod must be separate mods
oh makes sense
but they can both be bundled into one overall folder when you ship it
as long as they have their own folders, manifests, uniqueids, etc
no wonder I had issue with this, thanks for the quick answer
if you're using the modbuildconfig it can bundle em automatically for you
You can bundle the two mods together automatically; for example, note the [CP] CentralStation folder in the C# Central Station mod folder, and this build property.
That automatically creates a mod folder + zip with this structure:
CentralStation/
CentralStation/
[CP] CentralStation/
Jump?
Yes, Yes, Yes, Yes, Yes
Oh Pathos since you are around, do I need to include <Version>1.0.1</Version> in my .csproj to get <ContentPacks Include="[CP] ApollosTrickOrTreat" Version="$(Version)" /> to recognise that 1.0.1 is now the correct version for my bundled CP pack? I kept getting the error that my CP pack had the wrong manifest version when I was trying to update it to 1.0.1. I had already adjusted my C# manifest to 1.0.1.
I couldn't tell from reading the mod build package docs whether I'm meant to manually change to Version="1.0.1". I would've assumed not because Version="$(Version)" looks like it's meant to be something that pulls from somewhere else but the docs don't actually say where it pulls from and I am not knowledgeable enough to know where haha
Why did JsonAssets have a "ConsumeSecondItem" parameter for clothing recipes? Didn't recipes consume both defined items or am I crazy?
The version just needs to match the value you specify, and $(Version) is MSBuild syntax for "get the value of the <Version> element here".
So normally you'd use $(Version) and update the <Version> field, but you could also technically just set the value manually.
(The package doesn't currently support getting the version from the parent mod's manifest, but we could potentially add that in future versions.)
Okay so I do need the <Version> field? Thanks! I could not find any documentation anywhere actually specifying that (I checked the mod build package docs and the official wiki "make a C# mod" pages so if it is somewhere there I just massively missed it) so I was just
until Daitsuku told me to add <Version> to my csproj.
Yep, it's one of the default fields that's normally set when you create a project. Ideally it should always be set to your mod version (regardless of whether you bundle content packs), but many mod authors don't follow that .NET best practice.
god mapping is so much easier when you get the hang of it
Huh, I wonder what I did wrong that my project was missing that field entirely then.
I'm wondering if you don't define "ConsumeSecondItem" in JsonAssets it either only consumes the first item by default or none at all?
But I'm assuming it would only consume the first item if it gives me that option.
unrelated to anything at all, im gonna go update some of my csprojs, i think
(why r u in jsonassets)
I'm converting from JA, but I got curious.
what does your whole csproj look like out of curiosity? is it like, the older/other format
I thought I just followed the instructions from the wiki - I certainly don't know enough to try to freestyle.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GameModsPath>E:\Games\Steam\steamapps\common\Stardew Valley\ModDev\AbaStardewMods\built</GameModsPath>
<ModZipPath>E:\Games\Steam\steamapps\common\Stardew Valley\ModDev\AbaStardewModsPrivate\ReleasedZips\AbaApollo</ModZipPath>
<Version>1.0.1</Version>
</PropertyGroup>
<ItemGroup>
<None Remove="LICENSE.md" />
</ItemGroup>
<ItemGroup>
<Content Include="LICENSE.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.2" />
</ItemGroup>
<ItemGroup>
<ContentPacks Include="[CP] ApollosTrickOrTreat" Version="$(Version)" />
</ItemGroup>
</Project>
Sorry for text wall everybody
Ooo colours
My eyes!!!
shrugs. ive got nothin then, but thank you for satisfying my curiosity 
generally if you find that something's easier when you don't know what you're doing, you're doing it wrong 
I had to add <Version>1.0.1</Version> manually last night. It was definitely not there from project creation.
(This is why we love Khloe)
does anybody know where this appears in the game? (im trying to find it for refrence)
The text sign I think
looks like the new sign object
does it appear naturally?
it may or may not have a version on the maps tilesheets in addition to being a craftable
One use is when pam is busy and puts a sign telling you you can drive yourself
I'm sure there are others
Pam, skipping work smh
I looked at the mod manifest builder last night and decided that learning a new thing when I don't know how long it will be before I even make another C# mod was not the best idea right now.
It's super easy to set up and makes your life easier!!!!!!!!!
You can make a bunch of signs and Pam uses a sign, yes.
ooo ty!
The CraftingRecipes data is weird, the second parameter of the data string for craftingrecipes in Vanilla SDV is Either Home or Field, what's the deal with that?
unused
now to figure out what tilesheet its in
I wonder if CA intended for them to be used for something and just deprecated its usage.
can we get a mod to replace pam with the sign wholesale
it'd do a better job honestly
Do I need to define (O) for CraftingRecipes or nah?
I'm sure there's like 5 mods that does that already
it's not strictly necessary since it defaults to that
(side note but before 1.6.9 you cannot have it in because game forcefully adds it)
thanks a lot for this, initially it didnt work, deleting the mod folder and rebuilding it fixed it and now works as a charm 
Welcome!
(so now you can add (F) and make craftable chairs if you want)
Interesting.
Oh yeah, I love converting old mods. Because now I need to figure out which mod Garden Village had support for that had Easter Egg items in it.
why is vscode like this
surely that's a schema issue, right?
Apparently Tarniyar made an Easter Egg mod, interesting.
i mean vscode clearly picked the right "target locale" token from schema
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 21 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
its in your .tsx
Alright, so this may have to wait until tomorrow, but I'm attempting to make one of my hacky C# fixes to Flower Dance Fix so I can use it, play through the Flower Dance, then move forward
So, first question: What's an overload?
an overload is when you have multiple definitions for the same method
Why do people use .tsx files?
Is it so they don't have mismatched tiledata if they forgot to update every one of their maps?
function share the same name but with differrent params
like maybe you can do goThere(location X) but also goThere(direction Y, distance Z)
public class MeThings
{
public function DoMyThing(string theThing){}
public function DoMyThing(int theThing){}
}
so they both "go there" but one tells you just where to go and the other is relative to where you are now
Hmmmm. Interesting. getAllCharacters (
List<NPC> charList = new List<NPC>();
Utility.getAllCharacters(charList);
is resulting in an overload error. (This is 1.5.6 code, before you ask.)
Yet, that sort of function normally indicates it's a game function
rather than user defined in C#
you want all character or just character in the social tab tho?
isnt it like
i can help you with that
List<NPC> charList = Utility.getAllCharacters(charList);
what are all the functions named getAllCharacters? is there ambiguity in which once you're calling?
Let me check
like sometimes you have to dig into the overloads a bit mroe
perhaps you could share the error
i dont think this got anything to do with overloads
yea
unless theres a different one in 1.5.6 that got killed
again, hacky fix for another mod, so unsure. I'll nab it, one moment
these are the build errors I get. I'll use that code to fix that part
MOST of it is Gender to int, so I just need to study how gender changed
what is that mod do anyways kinda curious
this is exactly the issue then
Weird question, deleting ConsoleCommands would affect other mods? I need to block all cheats for the specific mod I'm doing (atleast the "obvious" ones, like what ConsoleCommands does)
It allows the Flower Dance to be able to have randomized pairs
you can't give "getAllCharacters" that kind of inputs
it's wondering if you maybe believe there's an overload (version of the function) that takes those inputs
but there isn't one
So instead of forcing the vanilla six, it allows, say, 9 pairs of people, and it can be, say, Flor (RSV) dancing with Victor (SVE)
Anyway. Sorry about the side tangent. That fixed the charlist BS once I replaced charList with allCharacters, since thanks to my C# learning I know what the list is referring to. (It's one of those weird things where I know it's probably simple to you vet coders, but I'm still learning how it's all coming together)
Anyway. Where do I find how Gender changed between updates?
I would recommend not doing that just because it feels pretty destructive βΒ it's usually better to, for example, disable a function from your mod they want if Console Commands is installed. You can look at the various existing anticheats mods for reference maybe?
One issue with the whole "delete this mod" thing is that when pathos runs all the mods at once this wreaks havoc
also good god dont just go deleting unrelated files on a users system without extremely good reason
oh if I did I would tell people to delete it themselves, I have a whitelist for mods
I can probably check the command line for blocked commands and disable the mod if used hmm
the other approach i recommend is to avoid worrying about whether your users are cheating
In this specific context I do need it, it's weird to explain but I'm implementing support for an achievement website to track achievements of certain games (mostly retro) but lately there have been some added standalones like terraria, and as the site has a global leaderboard and stuff, blocking the easy way to cheat is needed
In the interim while I hunt for the gender thing - the Migration page indicates:
homeRegion Removed; use npc.GetData()?.HomeRegion instead. Change 0 to "Other" or NPC.region_other, 1 to "Desert" or NPC.region_desert, and 2 to "Town" or NPC.region_town.
The code indicates foreach (NPC character in allCharacters)
And if (character.datable.Equals(true) && !character.homeRegion.Equals(2)), so I need to change that to match, but character.region_town or character.GetData()?.HomeRegion(2)) doesn't work. I assume I'm writing the syntax wrong somehow?
(worst case I can disable this check, I'd just rather not have to deal with the touristy NPCs necessarily.)
Aha. C# mod authors got a unified Gender Field with possible values of Male, Female, and Unspecified... meaning that a lot of the code after using ints will break.
Okay. I can still work with that though. Let's see...
is this one a real time achievement tracking or something 
yep
they do require at least an attempt to protect against players trying to cheat
So, this JA mod I'm converting has boots in it, but there are color.png files alongside each boots.png file, I'm assuming color.png is to allow different shades of colour on the shoes or is that useless now?
I don't see any other mods that I have downloaded using it anymore.
impossible to fully (or even partially easily) prevent it with stardew however
the vanilla game can turn on access to the debug commands via the chat window with a trivial save edit, is what i assume button is referring to
that and itd be easy to write a very very simple mod that just overrules your safety checks
its still used. The boots.png is for the item sprite, the color is for the color when worn
or even just make a non-cheating mod that just gives them, say, infinity weapons right away for the achievement, which you cannot possibly feasibly detect
a non obviously cheaty mod*
that can be done with just content patcher
all that is true, but it's the rules of the site, to not let the door open for everyone to cheat, the tech savvy would always easily cheat one way or another (and this goes against the spirit of the site, so those discovered are untracked)
im just saying you will have a difficult time adding cheat protection in general
By just having a whitelist of allowed mods, and finding a way to block the consolecommands, I think that would be enough
blocking the default debug commands from even working might be doable enough, but like, does the [itemid] exploit count
Alright, bit of a weird thing here.
if (character.datable.Equals(true) && character.Age != 2)
{
Gender Dancer = character.Gender;
Monitor.Log($"{character.Name}'s gender is evaluated as {Dancer}.", LogLevel.Trace);
{
switch (Dancer)
{
case Gender.Male:
poolLower.Add(character.Name);
Monitor.Log($"Successfully added {character.Name} to poolLower dancer pool.", LogLevel.Trace);
break;
case Gender.Female:
poolUpper.Add(character.Name);
Monitor.Log($"Successfully added {character.Name} to poolUpper dancer pool.", LogLevel.Trace);
break;
This is what I've edited it to, since I know Gender is a type now. The problem is I don't know if Gender.Male properly gets hit over the switch block of "Dancer". Will the switch block properly parse the value of "Dancer" as 0 or 1, or did I screw up?
[itemid] counts but I can give a notification to the site if someone names himself like that
or cn lang and then commands stuff that they do in glitch speedruns
its not just in their name. its anywhere it might be read to the player
hmm
or from any CP mod they have installed
for the time being I just want to block commands, I just want it to be good enough for the Retroachievements admins so it gets accepted
is the intent for it to still be usable alongside mods? to me that kind of defeats the purpose of an achievement tracker, but its not my site. but if you wanted you could just disable the mod if any other mods are installed
for that I have the mod whitelist, the mod wont work if you have non whitelisted mods
how do you plan on picking which mods to whitelist
is my auto achievement unlock mod count? 
user suggested and then verified, mostly cosmetic or qol stuff would be accepted probably
you can maybe just get away with prefix-skipping the DebugCommands constructor then
how much is qol is acceptable qol
that's a good question
though, keep in mind it is also extremely trivially easy to bypass a whitelist
like, if you whitelist ContentPatcher, ill just rename my mod to ContentPatcher
im pretty sure they know SMAPI exists as they are using SMAPI to make their mod
I do understand, would be funny if I somehow hashed each mod data to check it matches π€
but too much work there, im fine with a whitelist
again, my goal is it to be good enough to be supported, not unbreakeable
Can I combine all my color.png sprites into one file? Or does it not work that way.
to me not having a whitelist at all is still the best way to do that, in my opinion. but i dont have a stake in this anyway
yea just let the game be vanilla is the most common
i would just do what button suggested earlier and only enable your mod if no other mods are installed. that strikes me as a stronger position that's also easier to implement
the problem I have with consolecommands is that it comes with smapi 
........ well. that was terrifying
your users will simply have to disable or remove it if they want to use your website
ConsoleCommands is just a mod
Who was going to tell me when a C# mod breaks on a try catch that the game just stops. Entirely. Music cuts out. Game freezes. Nothing in game does anything anymore
that's why I asked if it doesnt break anything if deleted
so I can just instruct users to delete it
thats exactly what a try catch is supposed to prevent
Oh I know, it's just 
to be fair. It... partially worked. Here, let me grab my log. (And I know why it completely borked, don't worry. I'm just confused as to why it stopped overall)
as in, the game should not stop at all, unless it broke in a very critical spot, but even then, its not exactly common
the catch should be handling it in a way to make it not do that
yeah, I disabled part of the catch statement, which is why I was like "yeah this tracks but this is still terrifying"
I disabled it because A) it was bugging out and B ) the catch forces vanilla dancing
and yes, I'll fix later
well, in that case it'd break even if there wasnt a try catch
I think I did my initial question wrong, does anything break if the ConsoleCommands mod included with smapi is removed by the user?
nope, brylefi
it does not
i (and maybe Classical Mathperson too based on their response) thought it sounded like you wanted to delete it at runtime to block it
Anyway, log here: https://smapi.io/log/72cce9821eb8455d8804f47849aa675b?Levels=trace~debug~info~warn~error~alert~critical&Page=26&PerPage=1000
I know what went wrong on the try catch thing obviously, and I will reiterate this is a hacky fix
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 89 C# mods and 172 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
yeah I understand the confusion π
but I'm curious as to why it died after properly poolUpper and poolLowering
I.... where is that?
braile?
unless
braille dots it looks like
in many places
Huh.
(Open offer: if any mod author wants to migrate a content pack from Bus Locations or Train Station to the newer Central Station, I can prepare the updated code for them. That also applies to generally updating the content pack for newer game versions if needed.)
This one I only see in CFD
i appreciate the commitment to accessibility but do we really need to have our filepaths in braille
the other one.... so it parsed it as β£, but it was a question mark on the log. That's a Polyamory bug I'll have to figure out later
And by later I mean before the Flower Dance because it broke my acceptance dialogue
but regardless!
So given it did properly parse all the characters to upper and lower, I know that part is fine. What's the best way to debug values in a C# mod while the game is open?
annnnd also is there an easy line of code to add to the catch statement that - instead of forcing vanilla dancing - can just skip the event?
essentially like using debug endEvent, just in C# code
typically you want to place a π΄ Breakpoint on whatever line of code you want the program execution to pause at, by clicking in the left gutter:
well uhm
in this case, the breakpoint will be hit immediately before the game tries to draw the current tool, and will be hit again whenever i allow it to continue
It worked!
But also uhm
My farmer is incredibly cursed right now
(The blank spots make sense, some of them should be barred.)
Gotta figure why he teleported, then my hacky fix can go ahead
so anyway from there when the breakpoint's hit you can either view the game state from the Locals or Watch panels
alternatively you can do other tricks like defining a SMAPI console command that includes a breakpoint to be able to break at any time
or, with Console Code installed, write valid and fully-qualified C# in the SMAPI console prefixed with cs, e.g. cs return Game1.player.Name;
Definitely using those tricks later - for my hacky fix it's probably overkill, but tomorrow I plan on learning more C# (so I need to go to bed soon so I don't screw my brain over sleep wise) so fingers crossed
I found out why I'm cursed though. Looks like FDF built in some logic for teleporting people to their spots, which makes sense.... right up until:
pause 500/playMusic none/pause 500/globalFade/viewport -1000 -1000/loadActors MainEvent/warp farmer1 5 21/warp farmer2 11 21/warp farmer3 23 21/warp farmer4 12 21/faceDirection farmer1 2/faceDirection farmer3 2/faceDirection farmer4 2/faceDirection farmer 2/warp Maddie 14 24/warp farmer1 14 27/warp Penny 16 24/warp farmer-1 16 27/warp Blair 12 24/warp farmer-1 12 27/warp Quinn 18 24/warp Victor 18 27/warp Daia 10 24/warp Elliott 10 27/warp farmer-1 20 24/warp Sean 20 27/warp farmer-1 8 24/warp farmer-1 8 27/
If you look.... the farmer got warped like 10 times
so I'm gonna have to figure out how to fix that particular stuff
(Standard disclaimer that you have to use ` instead of " for quotes for the console.
Or you could use the load-from-file functionality instead, which also allows you to pass arguments into the script to make them more reusable.
Yes, I'm still inactive, I just saw this message and couldn't help myself, okay? π )
(Yes, I know farmer1, farmer2, farmer3, and farmer4 is multiplayer... but farmer-1 appears a bunch XD )
I'm getting a weird issue; I'm making a new farm map and I'm trying to leave some tips through the Action Message tileproperty, but if I call up the message through the i18n, it adds "(farm map)_" before the message. The only way I can make it not do this is if I use "Action": "MineSign" and then write out my message in the tile property itself, but that means it won't be able to be translated; if I use the i18n, either as a string or in MineSign, it still adds the qualifier before the message. Any ideas?
Question: what are you saving your string as for the messages?
If it's adding something to the i18n that isn't there when you write it out, you may need to look at a) your string and b) your i18n again
Share your Action Message tileproperty, the called string, and the i18n itself?
facepalm
Me for several minutes: "Alright, now how do I fix this math so that I can dance in the right spot with my config?"
Smart me, locked in the back of my brain for some reason: "....This is a hacky fix and it's late. Don't start mathing, just warp the farmer to 14 27 and be done with it"
(Also known as hacky fix to make Flower Dance Fix work has successfully worked, though I need to tweak the force warp! Just need to squash the Poly bug and I can get past the Flower Dance
)
String was "Farm.2": "{{i18n:farm.2}}", and Farm.2 was just "Bus Stop". However, I think I might have solved it; I was previously unable to get tile objects to work on my map so I was patching in tileproperties through Content Patcher. I just changed my map file type from .tbin to .tmx and now both the tile objects and Action Message are working
I feel like I had a similar issue on a farm map I made, like, five years ago, but I don't remember what solved it; I wasn't using i18n or .tmx back then
Nope, nevermind. I still had the MineSign from Content Patcher still in; when I remove that it's still not reading the tile objects from the map itself
...Nevermind on the nevermind; it still won't read the tileobjects from the map, but now that the file is a .tmx, when I patch in "Action": "Message Farm.2" the game is reading it properly.
I'm going to try the others and see if they all still work
Yeah, no, it's all working now. Changing to .tmx seems to have done it.
Are clothes in SDV gendered? JA has a parameter called "HasFemaleVariant"?
yes, shirts can have male-female variants
i believe that's just a JA convention though, but you can still achieve the same effect with tokens in CP
In older game versions, shirts could have a different appearance when worn by a male vs female player. Stardew Valley 1.6 mostly removed that system, but there's still some remainders of the old system (e.g. some tailoring recipes have different outputs for male vs female players, and some shirts have separate (F) and (M) items).
(stardew clothing trivia time)
Oooh, interesting stuff.
I have to say, it's so much easier having almost everything possible with CP now and not needing ten mods for certain things.
Of course those ten mods were very vital back then, can't forget how important they were and how dedicated those people were.
In the future, CP will just turn into Stardew Valley itself and then we come full circle.
1.7 will just be for removing every remaining piece of gender hardcoding in the game /lh
1.7's purpose will actually be to add a second type of moss to the game
it will be named Moss 2
finally. float gender;.
1.7 moss update where there's a whole moss museum on moss island and you have to Find Moss
Mossdew valley
Oh no im getting ideas
if gender < Male && gender >= female
i think that reminder is set for past my bedtime... but I think you're special forsythia so I'll do it, for you (#6519865) (8h | <t:1739110568>)
can my gender be Ξ΅ where Ξ΅^2=0 and Ξ΅ != 0
what if my gender is NaN, yours is -Inf
To be fair, if you do it that way it wonβt work properly for MP when other players wear the item but their body doesnβt match yours
Gender may be a spectrum but thatβs way too simple, thereβs no way gender is one dimensional. We need a multidimensional vector like Vector2 at minimum, maybe even outright using complex numbers instead.
βBut complex numbers have imaginary components?β
Why yes, gender is largely a social construct and therefore imaginary in a sense. It certainly isnβt controlled by the laws of physics, Iβll tell you that much. For the sake of the joke letβs ignore that sometimes we use complex numbers for physics too And something being imaginary (whether wholly or in part) doesnβt mean it isnβt important to some people - just look at how much many (most?) people love fiction. For a more extreme example in the same vein, look at shipping wars.
β¦man Iβm so bored being sick like this. Also I really should go to bed π
so what you're saying is that gender should be a string with no further limitations
if gender.Length == 5 && gender.StartsWith("j")
Why not, as long as you donβt get mad if people donβt understand how yours is encoded (assuming they are still putting forth effort towards it and being respectful, of course)
Of course, what if someoneβs gender transcends data typesβ¦
PinTail to the rescue? 
I guess you can technically store binary data (and therefore any data type) in strings even if it itβs inconvenient for anyone to figure out if they donβt already know that thatβs what you did, but to be fair, a lot of people already act that way when someone doesnβt conform to or otherwise fit in their view of the supposed gender binary, so that kinda checks out
Is there a GSQ for movie theater being complete?
I lean towards yes but I canβt recall for sure what it is if so. Itβs probably on the wiki GSQ page, I think it has all the vanilla ones. (At least now that updates have slowed down and we arenβt getting a new one or two every other update to fix bugs or add small things)
Isnβt there a GSQ for mail flags? And that one probably is a mail flag
Yar, I couldn't findthe GSQ on the wiki and was hoping for some arcane knowledge.
Yeah, mail flag is ccMovieTheaterJoja.
What are these for?
So... PLAYER_HAS_MAIL Any ccMovieTheaterJoja Received?
mp cabins (nearby layout vs spread out layout)
yup! when you start your save, right under where you select how many to add
Haha, see i never play mp so i took a guess based on my few memories
some people add them to use as built-in sheds haha
cabins-as-sheds is a valid strategy 
especially if you have PIF. much space from the get go
β¦I really should go to sleep, especially with how long it takes me to wind down and actually fall asleep. I guess thatβs enough silliness about comparing gender to CS data types for now.
disappears
What tilesheet are the sprinklers stored in?
maps/springobjects
Thank you
Dynamic token in a Condition field seems to apply a day too late (if I dynamically call for the Clerk value on Wed, the change only appears on Thursday), unless you reload the save. Is this intended behavior / is there anything I'm missing? "Action": "EditData", "Target": "Mods/Pathoschild.CentralStation/Tourists", "Entries": { "DolphINaF.VendorPortraits": { "FromMap": "{{InternalAssetKey: assets/LooseSprites/CentralStation.tmx}}", "Tourists": { "Naufal": { "Index": 0, "Condition": "!{{Clerk|contains=Naufal}}", "Dialogue": [ "{{i18n: CentralStation.Naufal.1}}", "{{i18n: CentralStation.Naufal.2}}", "{{i18n: CentralStation.Naufal.3}}" ] }, } } },
How is TintColors with Data/Crops formatted? The documentation page for Modding:Crop_data has a broken/wrong link on it for color format.
I assume it's formatted as a model with values inside, like this?
"TintColors": [
"255, 255, 255, 255"
],
no commas I think
I'm trying to record how much energy is used by end of day by parsing the save file xml. I see <stamina> and <maxStamina>, but these always seem to be equal. I guess it gets restored right before save. Is there another way? Maybe #-times each tool is used is saved somewhere?
Is there any easy way to build something on my farm then export the farm to tiled?
im pretty sure the buildings and stuff are part of the save data... π€ i feel like it would just be easier to use the farm as a guide to just place the buildings yourself onto the map? i could be wrong
build it, take a picture, and recreate it manually
that's what I'd do.
I tried that but the layers and the positioning is really annoying
Well Layers are easy to figure out, if you can't run through it, it's on the Buildings layer, if it overlays it's either on Front or AlwaysFront etc.
Positioning is never an issue for me, what issues do you have?
They are always off by 1 or 2 tiles and I don't figure it out until hours later when everything is almost done. (The screenshots are low quality sometimes)
You can mass move tiles on all layers
I'm realizing I have no idea how i'm supposed to use Spacecore's Vanilla Asset Expansions.
π€
I will try to see if I can push through it
,,,
...
i forgot to save.
and i closed tiled.
Yeah, I've done that before.
Objects - These are in the asset spacechase0.SpaceCore/ObjectExtensionData, which is a dictionary with the key being an object's unqualified item ID, and the value being an object containing the following fields:
TotemWarp - allow a custom object to act as a warp totem, an object containing the following properties:
Location - string, the location to warp to - ex. "CommunityCenter"
Position - Vector2, the tile to warp to - ex. "25, 15"
Color - Color, the color the screen should flash - ex. { "R": 0, "G": 0, "B": 255, "A": 255 }
ConsumedOnUse - bool, default true
Is what I want to use, but I have no idea how i'm supposed to use it.
Does spacecore just base add those as options and i can just add them to my object with Content Patcher as I add the item?
Am I trying to target the listed Spacecore asset to add bonus data onto a named item?
yes to that last question
do you know how you want to add a new object you target Data/Objects?
same deal here, but you target that custom asset named above
Can I use Content Patcher To target it?
yes
SC basically adds a new asset for the game to load in the same vein as Data/Objects or Data/Crops
Oh, okay, that makes sense for me now
that's what most framework mods do nowadays
I've been out of the loop for a while now, so I very much appreciate the help.
How do I grab a string from the game's content/translation files again (in c#)? e.g. Strings\\UI:Confirm
nvm, Game1.content.LoadString
I will just commision it.
Good luck with that ig.
You say that in a passive aggressive(?) tone. why?

Sucklet...
(i have two of those...)
uh- i didnt expect to see you here 
I should get my hands on a sucklet one day
what is a sucklet
Boo
Its a very good thing I think
I like those creatures
Can you add strings/tiledata descriptions to tiles in spouse rooms ?
I can't remember if I've seen people do it before 
In the end, I think it's essentially just a kind of map patch, so I... think you probably could?
time to see how much red text i generate
Hello, is it the right place to ask for help making a patch?
It sure is :)
Thank you, so I've got a lot of mods, notably Ridgeside and WAG
There are edible flowers in Ridgeside that do not have the "edible flower" context tag (I think) so I can't put them in the Tea Processor (even though we can eat them), and I tried to make a patch to add the edible_flower_item to all the flowers that are edible but it doesn't work (the mod loads in the SMAPI log), I still can't put them in the Tea Processer
Hmm okay this is not stuff I have experience with but I can help with basic troubleshooting at least. Have you verified that your context tag is definitely being applied to the flowers? You can do that with Lookup Anything or by exporting the Objects.json Data/Objects asset (if that's the one that's relevant for this).
Tea Processor? Is that another mod?
I didn't mean to, I thought I said it in a neutral tone.
I don't think it is being applied because I've went inside the Objects.json of Ridgeside after making the patch and it didn't show
WAG, it's Wildflour Artisan Goods
The Objects.json of RSV won't change regardless because you can't affect another mod's files with your mod.
you'd need to target what they load, after they've loaded it into the game files. if they do that
I assume so, as RSV is a giant mod expansion and i highly expect them to aim for compatability
What happens is that RSV changes the vanilla Data/Objects to add their flowers and then you will edit it afterwards to add the context tag to the flowers.
RSV wouldn't be Loading them I don't think Draylon because they'd need to edit Data/Objects to get the data about the flowers in game
Drat I obviously deleted my copy of RSV when I decided to wait for next playthrough to play it
Wait, in my Content.json, I was told to type
"Target": "Data/ObjectContextTags",
And not "Data/Object", do you think it could be the problem?
well, when i say load i mean adding them to the game files, so other people can target them. not actually using the Load Command. 
Yes that will be part of the problem because there is no asset called ObjectContextTags
Oh okay lol
May I show you the Content.json and you tell me if there's another problem?
!json Yup but please upload it to the json validator website and send us the link instead of sending us your whole file in here
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.
(what/who told you to type that?)
(ChatGPT because I don't have any idea how to code)
Ohhhh yeah do not use ChatGPT
do not use chatgpt for literally anything because it will make things a thousand times worse
That's why I'm here π₯Ί
It has no way of knowing what it's telling you and therefore whether it's correct or complete rubbish
That's okay, now you're here we can help you get it working
ObjectContextTags is a legacy asset from SDV1.5, it doesn't exist in the game anymore. obviously the chatbot isn't working with info even from the last year
Ugh 17 minutes to download RSV
My game takes 16 minutes to load itself π
The free version of chatgpt is still stuck in 2021 afaik
"Format": "1.6.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Object",
"Entries": {
"Rafseazz.RSVCP_Mountain_Mistbloom": "edible_flower_item, flower_item",
So that's what's in the content.json for the moment
that checks out, my love of cooking commit for objectcontexttags is from 2021 haha
format 1.6.0...
Please use the json website like I said https://smapi.io/json. Is that your entire file? You're missing all the closing braces.
1.6.0 is 2018's format haha
I'm just going to ask, How do I target my sprites for a custom item? I've tried like half a dozen ways.
I have the sprites in my assets folder in my mod.
Should I be Loading them into the files seperately?
Can I even target them in assets folder?
Oh but there are more knowledgeable people than me around now so I will bow out so you don't get overwhelmed feeling like we're piling on to you. Good luck!
No I put all the closing stuff, I just didn't paste it aha
(im on mobile in bed procrastinating sleep I can't help much)
Last time I added items was using JA like 2-3 years ago 
You just Load them into whatever Target name you want and then use that Target in your Data/Objects entry.
well for your item you're surely providing a Texture matching an asset you're Load-ing
simply create an Edit action targeting the asset you Load
Oh I read that as asking how you use the custom sprite for the item, not how to edit the sprite after you'd Loaded it, sorry.
I see it now in the example... the Load is on the bottom of the like 5 things in the example 
Thanks, I am tired.
Once I get this working, and the basic Mapping errors hashed out, I plan to sleep, cuz after that all thats left is populating the maps with debris.
word to the wise: leave the errors until after the sleep
Is Luna going to have to use TextOperations to avoid overwriting the existing context tags for each flower?
I mean, its mapping errors so its like walking over and going, did the FTM spawning populate? no? why not, why can i walk into the water here, why is this waterfall behind me drawn over my head.
to check tile passability easier, you can use Data Layers - it shows which tiles are passable/occupied or not, and can also make checking FTM spawns easier
entries can add to a list of strings
Ooh nice thanks bluebs!
so in this case, our code may look like```json
{
"Format": "2.5.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [ "Rafseazz.RSVCP_Mountain_Mistbloom", "ContextTags" ],
"Entries": {
"edible_flower_item": "edible_flower_item",
"flower_item": "flower_item"
}
}
]
}
huh, i guess im so used to just doing it all manually i didnt think about tools to help.
it's a rather unintuitive syntax, editing a list like this, but it does give us complete control over the list
better not thinking about it in the first place than knowing that you need it and constantly forgetting to download said tool
(it's me)
Thank you a lot I'll try
no problem
if you plan on making any further changes, be sure to read the instructions and examples in the link i sent above
probably read them anyway
I'm reading it already aha
hmm, checked my TODO list, guess i do have more to do besides debris, I also need a way to get the Farm Wand, Add tiledata to protect warp in areas, and npc blockers to prevent animals from walking off maps.
gonna do that tommorow i think
The Warp Item Works.
Also by making the warp room a downsized scale of the map, I know people are going to ask if it can show their farm, so it reflects their current farm's state rather than a static image. 
and my answer is going to be "no"
woah thats really cool
Sorry to bother again but how can I add flowers? I tried some things but I couldn't find the right way, in the link you sent there's informations for one item only and I don't know how
More than just this flower "Rafseazz.RSVCP_Mountain_Mistbloom"
Sorry I'm really bad at that
I tried adding them after commas but then none of them worked
Like this:
{
"Format": "2.5.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [ "Rafseazz.RSVCP_Mountain_Mistbloom", "ContextTags" ],
"Entries": {
"edible_flower_item": "edible_flower_item",
"flower_item": "flower_item"
}
},
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [ "Rafseazz.RSVCP_Lava_Lily", "ContextTags" ],
"Entries": {
"edible_flower_item": "edible_flower_item",
"flower_item": "flower_item"
}
}
]
}
and so on for each flower you want to edit. I don't know of a more efficient way.
Understandable to think that way, but you only actually need one Format and one Changes field for the whole file.
You're really efficient and nice, thank you
You're welcome :) We help a lot of people new to modding in here. Including me when I joined last year - I joined the server specifically to ask for help because I got stuck trying on my own lol
And then I enjoyed myself so I stuck around.
It gives me hope to make better and bigger things (once I understand the basics)
So i want to make a mod with all the crafting recipes from the game and easy modify them but i'm not good at coding can someone help me how to prase the .json document and what do i need in the mod folder
Im not sure what your mod wants to be, could you clarify
i want to modify the vanila crafting recipes (ex wood floor) to make them for example cost nothing to craft
I've been waiting for the HD Portraits mode to be updated for a long time. Does anyone have information about this?
Im not sure if that's gonna fly to be honest, but you can give it a shot
You will be making a content patcher mod
!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.
@royal stump 
does this idea make sense, and if so, do you know how hard it would be to do roughly?
For the recipe data assets https://stardewvalleywiki.com/Modding:Recipe_data
thx
(it may end up being tagged as an improvement to an existing mod and closed anyway tbh)
There's no hd portraits update rn your options are portraiture and scale up 2
What I actually want is to use the Anime HD Portraits mode
I need HD portrait mode for this and AeroCore mode for this mode to work. The problem is that the HD portraits mode is not compatible with AeroCore because it has not been updated, and the HD Anime portraits mode I want to use this time is not working.
you have to convert it to one of the two mods i mentioned
the other option is learn C# and update AeroCore/HD Portrait yourself
@hard fern: contemplate adding forageable moss into your maps (8h ago)
I am looking into creating menu, and I saw this code
drawTextureBox(b, Game1.menuTexture, new Rectangle(0, 256, 60, 60), xPositionOnScreen, yPositionOnScreen, width, height, Color.White, 1f, false);
What is the Game1.menuTexture and new Rectangle(0, 256, 60, 60)?
And where can I get more info about them?
Game1.menuTexture = Game1.content.Load<Texture2D>("Maps\\MenuTiles");
in Game1.GetLoadContentEnumerator
So I made a new craftable scarecrow. It works fine except it appear in the "misc" category in the better crafting menu instead of with the vanilla scarecrow. Does anyone know how do I fix this?
probably https://github.com/KhloeLeclair/StardewMods/blob/main/BetterCrafting/author-guide.md#categories-using-content-patcher
target edit "Mods/leclair.bettercrafting/Categories and add your recipe to the category
mod idea: a scarecrow that hops around every day
I read that but I thought that was for if I wanted to make a category. Does it let me add to the build in ones too?
I think so, not sure though. You can try patch exporting the asset to check for yourself
Ok, I will try and see.
I wish it had an example for adding a category via CP. I am still at the need examples mod making level. Hmm, I may just leave it as I don't want to make better crafting a dependency.
it wouldn't be a hard (required) dependency
it would just...exist for Better CRafting to read if it exists
and be harmless out of the way if it's not installed
And swaps appearance with the other scarecrows it goes near
Okay, running into a very weird bug that I can suppress to an extent but I'm trying to figure out what's happening.
In short: Trying to use "Hugs and Kisses Continued", which tends to output a lot visibly to the player's log. For my own purposes, I'm trying to suppress that. The problem is lines like this:
Monitor.Log($"Checking action failed, {__instance.Name} has dialogue available.", LogLevel.Debug);
This, somehow, gets outputted to the SMAPI console, despite being debug level. Is there a specific setting normally in C# mods when defining "Monitor" (since I see where it's defined) where I can specify "do not output this"?
In the worst case scenario, I can just strip all the output messages, so if the answer isn't "yes" or if it's "it's complicated", you can leave it at that and I'll just go ham on killing monitor code
You want LogLevel.Trace
As for other people's mods, i believe there's some config on smapi side
I'll take the trace solution - I'm just doing some quick and dirty fixes
Thank you 
Thanks bot i wasn't even awake...
k
Hi,
sorry for the late response. I am testing (not only) the schedules one more time and even though the tile is indeed near its spawning point and would be able to get there in time, it starts walking at 6:10AM, so I guess I can delete the a610 etc. and replace it with normal 610 etc.
im so excited IM WORKING ON MY FIRST ARTISAN MACHINE MOD 
I am not quite sure, I have three schedules with 0 at the start (https://smapi.io/json/content-patcher/c7eb40482b7c4633880a4bcf3543c0e9#L83) and my NPC didn't make a clone of itself, or at least I didn't notice. However, as I am testing the schedules one more time, I'll have a look and focus on it.
I will preface what I'm about to ask and say I am not doing save editing. However, I need to find the exact experience in a skill on all farmers on a save file, so I do need to open the file. Am I looking for, if fishing, <fishingLevel> in the save code?
(my own I can output in the SMAPI console, but I need the values for three farmhands.)
There's a debug command for that iirc
I guess u can also use that GSQ?
If they were connected, this would be much easier and yes I could use debug commands
But I need the values without them connected, hence why save file is cracked open presently
it's a fucking pain
I need those specific farmers though chu, and they're associated with different steam IDs
Looking through save file sucks
you need to find experiencePoints and look at indx 1
can I steal their characters?
I know I can join myself, but IIRC that doesn't let me take over the other characters
Sadness, then do what atra said ig
They should probably post that as a comment on FTM, yeah. 
That said, FTM does reload content pack files every morning and whenever the game loads. They could edit the min/max spawn rates in their files. Supporting that in GMCM is possible, like how CP uses it, but I probably won't look into that until I'm done overhauling the format, fwiw.
that's very fair! yeah, it doesn't seem like something a third-party mod can really do
where would cloth sprite be? cant find <_>
or it can but it would be easier and better to do it through FTM
Checked springobjects already?
Okay. So likely for my own benefit here, but:
- Farmer (host): 8338
- One of the farmhands: 4950
- Another of the farmhands: 7261
- Last of the farmhands definitely had a glitch happen because they don't know console commands yet somehow have 426601 XP in Luck Skill
yeah, a third party would need to reflect into a few things, and probably cache FTM's content files just to swap them in at the right time 
the loading process isn't very clean
tysm its been a while, forgot it iwas in maps 
Do you mind if I comment on the issue basically summarising what you said? ("I've spoken to the author of FTM and they confirmed that this would most likely need to be done through FTM and not a third-party mod, and that GMCM support may be possible in the future but is not currently being worked on." or something like that)
Alternatively, is there a command in any mod which allows outputting of everyone's skill levels?
Yeah, that pretty much covers it. I've made notes to look into GMCM support after some other FTM overhaul stuff is finished.
(in practice, I might just let people put FTM files somewhere as a CP asset, but it'll have the same effect)
I was just thinking whether a custom assets version of ftm may be easier for you actually! but I'll leave that to you to know what's most effective and simple haha
yeah, the easiest thing for now is side-stepping it entirely and adding trigger action support 
kinda halfway done with that
then putting the old content packs in assets and/or cleaning up some of the weird old format stuff
fuck. Technically lookup anything DOES output the skill XP... but only for the vanilla 5 skills
But wait
I can still use this. Anyway. No longer on making mods for me, so I'll roll out of it
oh if it's a spacecore skill does spacecore have a command for that
see that's the thing Atra
SpaceCore does. the 1.5.6 file has Luck Skill, I'm trying to transition it to SpaceCore Luck
I mean, the absolute easiest step without knowing what formatting changes you're doing is to have the entire current config.json file also just be loadable as an asset
but having json in assets seems 
to do so, I need to custom-give a console command for each player to reset their experience to exactly what it was prior to the swap
so I've found the values. With lookup anything, I now know the set of levels each player has. The experience above allows me to basically figure out who is who by comparing their levels. So if Player A has the level set and Luck Level 10, I know they're the bugged XP person
are you making a mod with this info or trying to fix a specific save? just so we know what kind of advice to give
Fix a save, essentially. Once I figure it out, I can use SpaceCore's commands to fix everyone's luck level and make it viable to swap to SpaceCore luck without any loss in skill
no advice necessary at this juncture, just explaining to Atra what I figured out
I need to double check, but there's a chance that throughout my entire journey playing mods I've never had spacecore installed
no, I did apparently
I haven't installed it post-1.6 yet though
I guess there's nothing stopping mods from loading json files as assets & saving edits whenever CP edits them
(but in practice, I just need to avoid adding more features & complicating the eventual code overhaul)
For my own records:
Married to Many (Me): 8338
Went for Victor for some reason: 4950
Seb-Loving Gal: 7261
Mining Guy: Level 10, so just make it 15000, no need to match the glitched XP
Thanks for the help guys
nothing stopping them except for common sense and all of our collective wills
I'm looking at my list of mods from 1.5 and every time I see a stupid name it's one of my own tester mods
why did I have like 5?
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 33 C# mods and 34 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i dont see anything that could cause this though, but ig i'll ask for a patch export furniture to check esca's theory
oh so only you are allowed to be poly, smh
Hiiii guys, I'm new to this modding part and I would really like to learn how to create mods, anyone to teach me? C# is a little bit confusing to me 
the thing with a blank name could be on the other side of the comparison too, so a tool/weapon/clothing/hat, I think 
Less that, more the others don't want to be XD
Mining Guy doesn't care for marriage and only married once on the 10 player file to Maru, and that was just for the bombs and because our Luau basically jumped her from no hearts to 8, then a birthday gift jumped her to 10
so he romanced her in like... a week
brains exploding trying to figure out how to properly create separate dialogue when speaking in a row lmao
otherwise he wouldn't care for relationships. The Sebastian lover is aggressively only Sebastian, and the Victor person swaps romance interests every single save file
!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.
man they got like
<20 packs
what if i just install all their cp mods until it explodes
(you honestly do not need C# for most mods)
(that said, you're unlikely to find a tutor tbh)
this is very self taught i noticed myself
but even then the guides provided are so in depth its hardly necessary for a tutor
I'll look at the guides, thanks guys
good luck
update nothing exploded this is terrible
you still running my chest resort?
because that's a patch on that function, a complete rewrite
haha that works too!
what are we trying to explode?
basically some mystery thing is causing sort issues
you know a mod is gaining traction when youtubers make videos on them. The law and order SDV mod has at least two videos done by youtubers XD
i think some mod is just more conductive to youtube content though
i'd click on a video that says "mod that let you put pierre in JAIL"
I wouldn't, but my youtube history is 1/2 hot people doing that pushup challenge and 1/2 knitting
the video I am watching rn is called "The Stardew Mod Where Pierre Goes to Prison"
mod idea: use scarecrows as training dummies to practice combat skill, and rarecrows have extra properties to them when used for combat practice.
anyone feel free to take that idea and make it a reality ^^
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your ideaβmodders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
Maybe you need their save as well.
Is ItemId qualified or not 
no
I should just check that but I have uninstalled rider on this machine 
QualifiedItemId is the field for qualified
that will show items being equal even when they aren't, but shouldn't cause inconsistent sorting 
time to dig through code
why isn't github search showing me results for that method
am I looking in the wrong place
github search is Not Great, I just download repos and search locally 
It really is astoundingly bad.
Imagine how bad you have to make your search if it is actually faster to clone the repo, load it in Visual Studio and do a Ctrl-Shift-F.
also I see at least one mod where i18n is used for object names, so a translator could set those lines to "" and mess it up, but I don't think that's the case here
(as in the internal Name field)
I'm guessing their issue is indexing, but that excuse only gets you so far
That's what github.dev/user/repo is for, though!
(specifically, only to the point where looking up through google with site:github.com/... is more effective)
I totally forgot about those
it's so laggy on my computer though
nope, still nothing through that 
if the file is too big github doesnt index it
which given the size of classes like Game1, GameLocation, etc. means a good 60% of the repo or so
...I may have realised the issue now
thanks selph
Where exactly is engaged0 used..? Bc i tried it and all it showed was engaged1 dialogue
what about (F)1226 and (F)1308? as far as I can tell, comparing them in both orders will get you -1
uh if atra isn't lurking I will ping in a bit
I'm not sure how it resolves that, but since both those IDs exist in the base game, it'd probably break ALL_ITEMS every single time if that was it
my only theory was that in the game it never runs into a scenario where it's comparing both of them for some reason
unless it's fragile depending on furniture size/order or something
what are those and why are they special cases, anyway
ALL_ITEMS is used everywhere though
this person runs into problem if they even just debug iq ALL_ITEMS
they're "furniture catalogue" and "catalogue"
its only report to me cus
they both sort as low(?) as possible, and it seems like they sort lower than each other, so it's possible they trigger an error if they get moved the wrong way
(or I'm misreading)
mcp so very good at finding item query nonsense 
personally i am give up rn maybe atra item sort tweaks will just fix things for them
this is my first time finding out about debug iq 
Hello where I can intall smapi for android pls ?
!androidsmapi
There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.
Do not harass mod authors to make Android specific compatibility patches.
Thanks βΊοΈ
Boas malta. Estou a tentar instalar isto mas nΓ£o passa daqui, jΓ‘ aconteceu a alguΓ©m?
Hi! this is an English-only server and we can't help with android SMAPI here
!androidsmapi
There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.
Do not harass mod authors to make Android specific compatibility patches.
Is there any portugueses server?
It say is not support the version,i update the game and itβs not work, I hope we will have an escalator one Day in the game on the skull cavern itβs so important... I want to go in the floor 1000 Xd
I'm not sure, you should check in #friends
Like I said, we can't really help with android smapi here, you're better off going to their android server, finding an English-speaking channel (since the server is in Thai) and asking there
Yes I understand, I will see later, have a good Day, and thanks much
The Furniture and Wallpaper catalogues are not attached to any quests or achievements etc right?
Awesome ty. I am working on something spectacular and I need them to go bye bye
Just wasnt sure if that would pose an issue for or being able to do certain things in game.
I'd just remove them from the shop instead of straight up deleting them from the game
If you're not doing that then ignore my post
also why are you yeeting them
if you just dont want your custom furniture to show up in the catalogue you can set that
I am working on a Furniture Store mod. It will remove the catalogues and add a new area to town where a furniture store will be, it will have a new NPC, I will need to make or get help making a way to have rotating inventory, as well as a way to have rotating furniture displays, a pricing system so you can't just waltz in and buy 50 pieces of furniture, quests and dialogue as well as categories to sort furniture into so their is sections in the store that change every few days and so on
If anyone would like to join in and help please shoot me a DM because I fear this will be a lot for me alone 
Will it have long snaking lines and a shop at the front to buy rancid meatballs?
(cc @lucid iron) Okay, I tested this and it seems correct. If I copy the ALL_ITEMS code and shuffle the furniture list before it sorts, it almost always crashes due to that catalogue problem.
I'm guessing this bug might just happen arbitrarily for certain furniture list sizes/orders.
[TestMod2] Latest SortAllFurnitures call: a = "(F)1226", b = "(F)1308"
[TestMod2] Mod failed handling that command:
ArgumentException: Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields different results. IComparer: 'System.Comparison`1[StardewValley.Objects.Furniture]'.
at System.Collections.Generic.ArraySortHelper`1.Sort(Span`1 keys, Comparison`1 comparer)
at System.Collections.Generic.List`1.Sort(Comparison`1 comparison)
at TestMod2.ModEntry.Command_Test(String command, String[] args) in D:\Esca\Stardew\Mods\TestMod2\TestMod2\ModEntry.cs:line 130
at StardewModdingAPI.Framework.SCore.OnPlayerInstanceUpdating(SGame instance, GameTime gameTime, Action runUpdate) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/SCore.cs:line 632```
wow u did it 
Can somebody make a simple mod for me that makes the hammer special attack now crit?
but also wow this is vanilla bug then?
Lmao probably a grand opening event so the player doesn't get access to it right away and everyone in town or a ton of peeps will show up, idk about the rancid meatballs lol
pretty much, yeah, that comparison should be fixed so that the catalogues compare to each other consistently
would make sense, actually - different list sizes have different sort algorithms they use! thanks for verifying 
so transpiler and/or base game fix
!officialbug plz
If you've checked that it's not a mod bug:
- Report gameplay bugs to the Stardew Valley developers here: https://forums.stardewvalley.net/forums/12/ (do a quick search first so you don't report something they're already looking into).
- Report typos or translation errors here: https://forums.stardewvalley.net/forums/32/
Alternatively, you can emailsupport@stardewvalley.net
esca I'll let you open since you actually tried it in game 
If I must
(fr though, I'm on it)
damn, when you said it would have had to be a vanilla issue then I was sure I was wrong lmao
i wonder why it happens so consistently for them
for any specific list of furniture, I think the results are the same, so that exact combo of mods might trigger it; not entirely sure, though
I wonder if another mod is shuffling the list for some reason?
e.g. catalogue 1308 always ends up before 1226 in the list if I just sort without shuffling
the thing is that they actually removed a pack inebetween reports (i was wondering if the old cp mod migrated wrong)
the data itself can't be shuffled, it's a dictionary load; the list is created in ALL_ITEMS' code, so it'd pretty much have to be a random result of furniture sets
so it's a stable sort
I wonder if that was intended
but yeah, still not 100% sure what's triggering it, just that it's almost certainly that comparison bug
Goat's Modding Mayhem
it's specifically mentioning the assetinvalidated event from mcp, but why
and why just for them
last i checked it happened in several places not just invalidated by mcp
I'd assume it's just the first thing to trigger an all_items call, given the stack in the log
i saw in the original log it happened during the shopmenu trygetstock or w/e
there was a log yesterday iirc with a pile of the same error
it was the same error, but multiple times, with different stack traces
hmm, interesting
the reason why it happens in mcp first is cus mcp tries ALL_ITEMS to build context tags
I need somebody to help me create a Mod for hammer special attack being able to crit
Hello everyone, I need help (btw i'm french so i might have a bad english), i'm a developper but new to Stardew modding, i want to make simple first mode just create an item thats playing sound on click, i read the documentation on the wiki but i struggle to do things correctly, i want to know how we can create an item and attach custom code to it, should i only use content pack ?
you can't really "attach" custom code to an item
what you can do is detect that player is holding a specific item while a button is pressed, and play sound when that happens
since this is your idea, you will probably need to commission help unless someone is particularly interested in contributing their code for free
@lucid iron
as for adding the item (Data/Objects) in the firt place, there's a few ways
bundling a content patcher mod is fine ofc, but you can also use AssetRequested event to directly target and edit Data/Objects
This link might help: https://stardewvalleywiki.com/Modding:Weapons
thanks a lot, i'll give a try to that
Yea I wonβt be commissioning anything after my first experience doing that
but it canβt be that hard to do it myself, if I take the time to learn some C#
y'know after I make a map, I am often doing a walkaround I test at 10x speed, and when i go back to normal speed it feels like i'm walking in slow motion, and i'm just like, what monster of a map have I created?
The bigger the better 
your maps be large
I know how to make the manifest and dll file and compile it I just don't know how to code the ModEntry to get it correct.
I think the smallest I've made is normal sized maps, like the 65x80 ones
at least for farms
I want to make a teeny farm. I wonder what's the minimum size you could get away with without the game breaking or any features missing
teeny farm would be fun
Wait, .dll file, you're saying? May I ask, why do you use C# instead of .json (using Content Patcher, gives better compactibility) to code it?
1 tile infront of the farm house 2 on the side
u need to fit greenhouse pet bowl farmhouse in their entirety
spouse area too
and Grandpa Shrine
Make the greenhouse a side door to the farmhouse
greenhouse is optinal
but u can cheat if u just make a bunch of tiles not accessable
you need a farmhouse, space for the greenhouse, pet stuff, and shipping bin, a clear path to the npc spouse area, and warps
π¨

greenhouse not optional if we're going for no basic features missing 
I'm really in love with the idea of a teensy map you upgrade later
How to use Content patcher?
Makes a map that is 15x15, and you can hire someone to blow holes in the earth progressively, Have 12 Levels of farmable caverns below your farm. /j
I think some immersive maps are meant to emulate that but i like the idea of the farm either genuinely growing or, instead of getting more farm space, you unlock other places to do things
I think I have a problem
Yes that is really nice
Why I like the frontier map right now, but honestly their could be more upgrades
We'll start with a manifest. Do you have a dedicated folder for your mod in your Mods folder?
I Did that with Islands Farm, and Immediately got several requests to add a config for auto-unlock from the start, as completing the CC bundles is "Too Slow" to unlock the islands for them 
Harvz made one thatβs close to the limit
It doesnβt have a greenhouse
And it barely has enough room for a barn/coop/silo
if there's room for a barn/coop/silo we can probably improve on it 
Iβve played up through the endgame on it, so itβs definitely above the limit but idk how far above
I do have my manifest for my mod yes
Make it one spot for parsnips now
You'll create a file named manifest.json and you'll edit it with some text editor.
More about it here: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest
how badly do npc spouses break if not given a clear path to the spouse area?
or are they just perma annoyed at the farmer
Thatβs a good thing let them be annoyed
this is the tiny tiny one
Then, you'll need to follow minimally these pages:
https://stardewvalleywiki.com/Modding:Content_Patcher#Create_example_mod;
https://stardewvalleywiki.com/Modding:Weapons
the game crashes if the spouse area is out of bounds, otherwise it's fine
Call it realistic relationship farm plus one tile for parsnips
i think they warp there anyways
they just warp

One of them was complaining that the Gold Clock wasn't working properly, Day 3 of Mod release and I was just like π how did you get that far, also my mod doesnt effect that, you have another mod breaking it.
lollll
They dont path there
it's not like spouses path on the farm
did they not use to get upset if their way was blocked?
you do need enough space for a barn or I think you can softlock on some bundles, imo
only when they wander randomly inside
They get upset indoors
the farmhouse
I don't think you can make the hammer special attack (right click) able to crit with content pack though. The game forces you to not crit
Outdoors is fake so they don't care
if you just stay outside as night comes your spouse will never leave the patio
try observing that some tine
hmm, bundles be damned, I am giving one foot of real estate and they're gonna like it /lh
Like I know it's not true lock if you don't have space for a barn, because theres the cart and such
But it feels not really playable, yknow
Like the harvz tiny map is totally playable, and it forces you to prioritize in interesting ways
Hammers have a default crit chance of 2 but their right click can never trigger critical strike.
(this is mostly a thought experiment or a very extreme challenge so I'm not worried too much about playability, but noted!)
if the hammers can't do it, then C# can change it
See here: https://stardewvalleywiki.com/Modding:Weapons#Stats
CritChance (Optional) The chance of a critical hit, as a decimal value between 0 (never) and 1 (always). Default 0.02.
but idk how annoying it would be, and I'd guess it might take harmony
So why is it that hammers on right click can't crit?
because it doesnt
as mentioned that needs c#
is the spouse area necessary at all, then? you said it can't be out of bounds but what if there just isn't one 
I have never tried it, but I think it should be possible.
Anyways, I'll have to go, hope someone will take it from here.
MeleeWeapon.triggerClubFunction
That's what I was talking about but I can't make the right codingfor that stuff
tbh it's an easy enough transpiler
need to transpile away the hardcoded consts in there
but also like
Well in that case, why dont we just make the ground not tillable too that way no crops, and animals are more difficult to care for, and mark it as an indoor(I dont know if you can for the farm) so bees dont work either.
you can't really...teach a transpiler

you either got the figure it out to figure it out, or you get to start with IL 101
do yall know how to change seasons in game to test seasonal mods?
sure u can just read partition iii
the goal is to make the farm as small as possible, anything else is just side effects haha
yea cjb cheats
world_setseason <season> then debug sleep
theres a slider for date
heck why even have a farm, just put bus warp immediately outside the door
tempting, tempting
but I did say all basic features... 
can the farmhouse be moved in 1.6? I can't remember
Yes
the farm has a nice knitting nook
nice
that's a basic feature!
its time for you to play game
*is
lol
I had to edit all my maps to remove the blocking layers on the map behind the farmhouse Q.Q
I have played game! I just never think of moving the farmhouse 
did someone post this yet
https://www.nexusmods.com/stardewvalley/mods/28234
its why the map i'm developing now doesnt have a Warp to the Farmhouse Specifically, cuz they can just move it.
"the smallest of farms" and yet I see walking space
you can read a bunch of them and start to get it
I think its smallest cuz that might literally be all the tiles, i dont think they even show the full farmhouse or greenhouse
I have this theory that I could write a transpiler if I realllllly wanted to now that I've looked over a bunch of them
But I don't reallllllly want to
Too much space
it may be the smallest right now, but theoretically...
Too much room for parsnips
true though, we want a water source of some kind
no, you have to leave the farm to get water
In my opinion, minimum farm space is just farmhouse + barn + cave + walkability between those
no, I'm nice, 1x1 water source
You have to destroy the barn to do the coop
And destroy everything to do the obelisks
acutally is golden clock + obelisks more than a barn?
almost definitely
yeah i believe so
as in space? dont think so
there are four vanilla obelisks
a barn is the width of like, two
someone should do that.
@lucid iron @calm nebula Do you know who can make a ModEntry.cs and .csproj for me that allows hammers to crit?
!commissions
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
actually it is more, yeah, but nly barely
i dont think it's that hard but you gotta stop pinging me 
Barn is 7x4, Obelisks are 3x2 each, so 6x4, Golden Clock is 3x2, so yeah 2 tiles more
i have no intentions of making this mod
i don't claim they need to be usable π
they just need to exist
since for perfection you need all 4 + clock
and I claim any farm map ought to allow perfection
Look, either of us can, but also like, actually getting someone to do something they don't want to do usually involves the exchange of cash
Ya gotta either do it yourself or find someone who can and give them the incentive to do so
And sometimes, there is no incentive to make someone do so, so respect that too!
!modideas exists if you just want to put it out there in the universe
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your ideaβmodders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
Yeah, if you want free code to be done, you either need to find a lot of generosity, or have a problem that's distinctly interesting to solve to get the hooks of the puzzle in the programmer brain.
nerdsniping is an art
Also Deci why must you put out a MEEP update RIGHT after I finish updating all my mods for SP and MP XD (/lh)
It was entirely targeted at you finishing your updating!
/j
I still wish I knew just what was causing thatanimal duplication nonsense...
tentative solution for a minimal farm:
D...MBbb
....
T
WFF C T
where
D: door
.: porch
M: mailbox
B: pet bowl
T: bus stop warp
W: water
f: cindersap forest warp
b: backwoods warp
C: cave warp
total 8x4 tiles
if you're willing to only half-fit things in
Booting the Game to test a fix doesnt help if I don't actually move the fixed version into the mod folder
good question
but regardless, this is no fun because half-fitting the farmhouse in feels like cheating
make farmhouse 1x2
that would be a lot more than a farm map at that point 
it'll be funny and therefore not cheating
u just come out of a tiny house every morning
consider
add a crawling out animation
then u check mail in the normal sized mailbox
Make it 1x2, retexture it to be a TARDIS. Problem solved.
just replace the outside sprite with a hole in the ground, make it 1x1
chu the half-fitting the farmhouse in idea came from this btw 
how does the game calculate blueprint anyway
whats a blueprint
not blueprint
Also you guys have gotten my brain thinking about making a tiny tiny mini-map now
uh. footprint
(they r gone in 1.6 save for some method names)
so theres a rect
and then theres a collision map
both r building data
The cave warp on the bottom might be a little non-intuitive
i believe the positional tile is the top left one in the rect
since the caves in all the existing maps you enter going the opposite way
so I would need to edit the building data for the farmhouse and greenhouse 
it will be a hole
meadows farm has it bottom right but you do still enter going up 
hole fixture
For the Smallest Farm, are we thinking map size, or farmable size, is out of reach decoration allowed?
smallest accessable size
it would be very funny if u had detailed ass foilage that u cant get to
live in beautiful painting 
anyway I issue two formal challenges to ye:
Version 1:
Make the smallest possible farm map with the following features, without altering the sizes of things or partially cropping them out of the map:
- farmhouse
- cave warp
- bus stop, backwoods and forest warps
- shipping bin
- mailbox
- pet bowl
- spouse area
- water source
-# Subversion 1g:
- greenhouse
Version 2:
Make the smallest possible farm map that can technically survive the entire game without breaking or throwing errors.
Is 1 intended to be aesthetically pleasing as well? cuz you can jam stuff together but not have it look nice in configuration.
the challenge is smallest while still functional (not practical, but have to be technically able to do it)
but you get bonus style points for style
Is it possible to add buffs to this crop when you eat it? https://smapi.io/json/none/088fc5ae50ab443b9baa6b1a41cbf018
You can look through the vanilla Data/Objects file for items with buffs to see how to format it
(Oh, hey, funny timing. I finally have the time to get going at the item thing!)
Incidentally I have a proof of concept for a dehardcoded player_control
It needs testing ofc
See quick notes in SMC!
hey! where can i find mods to test?
if it's not a super big mod, ex a whole new area, i am open to testing
i'd test bigger mods but i am already testing my luck with the number of mods i have
What is the goal here 
people normally just ask if they need playtesters, that being said the amount of conflicts with 1k other mods installed makes that not very helpful in terms of playtesting a mod
ohh ok
i just wanna help out where i can :3
plus i got time so i am open to it
also i tend to switch out mods constantly so if anyone wants me to playtest a mod i am willing to essentially remove my other mods temporarily
speaking of play testing? anyone wanna playtest a mod i am working on? it's a shirtless sebastian mod for ginger island
i would include the portrait but since it's not mine i only have the sprites which are just edited from vanilla
Tbh the only playtest i get is just people installing me mod and complaining it no work
lol
I'd be quite grateful if you could check what mods straight up crash when quicksaving using the QuickSave mod. Especially the ones not on the compatibility list
would make for a great reference 
ooo! so ya mean all of em?
any specific mods to test compat for?
i'll help where i can
just whatever pops up angry in your mega mod collection 
cool! i might have to disable most of em to narrow down which ones do but i can help with that
Say i was wondering
How does quicksave handle dayending event
I have tendency to use that as "do this just before save" rather than strictly thing to do once a day
it doesnt, sort of
Is there more compatible event i ought to use
theres an api linked on the mod page with the event orders when quicksaving and loading
plus some custom events
so basically any mods that are red right?
theres quite a few mods that store custom data that needs to be removed before saving and restored afterwards, so establishing compatibility is quite similar, but sometimes requires more nuance
when you quicksave f5 and quickload f7 some mods might crash due to their unparsable custom data still being linked to the game data
the error message is usually enough to tell what mod
ahh i wonder should i do this all at once or with a few mods at a time?
sorry for the questions just wondering
it should be fine to test with all at once, then remove the mod in the error log and try again
cool cool
would also be really helpful if you kept copies of the logs or error messages inbetween
gonna do a quick run of my mods with this mod included
so essentially when i start up smapi get in game at least right and use the commands for quick save? then after that put the log in smapi's log parser to see what's goin on?
yes i know alot of questions but just am verifying i am doin it right
if it crashes/freezes, yes
if not then what??
we can be surprised if not π
i should prob make a document of this too
just to back em up
and to make sorting easier
sounds good
kk just waiting for it to load
or crash lol
it prob will since i have some mods that were proven not to work
mainly the pets enhanced mod but i assume it crashes only when you're in game
wait i meant polyamory sweet

very good thank you
