#making-mods-general
1 messages · Page 164 of 1
I wanted to try that but it doesn't preserver the config.json file and don't create structured mod backups like I wanted , so I wanted ro create that
I don't know if {{random}} would be enough.
However, I can't even trigger normal marriage dialogues (only generic/game ones, not the moded ones). File: https://smapi.io/json/content-patcher/a19d5fe926154ea08feeddf7e0ab83b7
And I have tested that script over iterations hundreds of times and it works besides the bugs that I mentioned
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 65 C# mods and 48 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Here's my cli nexus mod updooter u can yoink as long as u have premium
It's kinda bad in that it doesn't handle rar correctly
The item spawn codes were rewritten in 1.6. I think you should be able to just list the item ID multiple times like [390][390][390][390][390] to get five of them, but I haven't tried it.
well i think what you're trying to do is beyond my capabilities 
Ah, I’m relieved to hear that. Thanks, Pathos!
The script I shared handle rars , zips and 7zips but it's only intended to work locally . You have to download the mods manually
!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.
it can be so hard to know exactly what every parameter expansion, substitution and command does and how to make sure they NEVER misbehave and accidentally move/delete a path that you weren't intending them to, even when you do know all the details of how to write them. Seriously, if you are planning on using this only yourself that's perfectly fine, but I would be extremely hesitant to publish it until someone who's very experienced in scripts like these can confirm to you it won't go wrong (and I am someone who does know how to write them)
I don't actually find config preserving to be a big issue cus most mods (correctly) do not ship the actual config.json
That command IS still active 
Maybe not only beyond your capabilities, maybe I want to do something that is impossible (CP-only) or it has to be in other form of code that we can not find out...
And usually don't alter the file structure so updooting by overwrite is alright most of the time 
I only made it for personal usen. And don't want to share it for the reasons you mentioned and that it's not actually made by me
Nah, what you're trying to do seems very plausible (that is, i know for a fact one can randomize dialouge)
this is a feature, actually. rar: not even once
all good in that case - just wanted to make sure! you never know what people plan on distributing sometimes 😭
This spaget is not licensed (all rights reserved) mostly cus I have zero desire to release it in a generally usable state
But i got no issues with ppl taking it for themselves
i'm just probably not the best person to give advice on that. gestures to people here i know have made npcs bet they could help
releases all my mods as .ace.gz.tar from now on
is that even a file
guys do you like my code
if (e.DataType == typeof(Texture2D))
{
e.LoadFromModFile<Texture2D>("assets/cage.png", AssetLoadPriority.High);
}
if not you can make it one lol
10/10 high quality shitpost
It is but I think .ace is generally unsupported
Also, as you said you have experience in this , if you want to you can build it upon itself and share in nexus or other platforms if you want .
it should properly be .tar.gz too
The .gz.tar order is pretty evil, I'll admit.
i saw your sins and i am unamused
I would rather not take on that kind of responsibility, but ty!
Oh, don't worry that you couldn't help me, I really appreciate your help (and I take notes of everyone who's helping me so when/if I will ever release the mod, I'd mention them)
It looks innocent but it's going to screw up a whole lot of tools.
What is the newest most compressy format these days 
No, the game expects all the keys to exist. For example, if you do this:
"Rainy_Day_{{Random: {{Range:0,4}} |key=rainy_day}}": "{{i18n: rainy-day.{{{{Random: {{Range:0,4}} |key=rainy_day}}}}"
That will correctly produce text like this:
"Rainy_Day_3": "{{i18n: rainy-day.3}}"
But then the game may choose Rainy_Day_2 which doesn't exist, in which case it'll fallback to the key it would use if none of those existed.
7zip, probably, unless you're talking about streaming compression.
It is, now that I think about it
can you share to it to me personally then with the fixes , whenever you have free time ?
I do my dialogue like this:
"spring_18": "{{i18n:medsDialogue_{{Random:{{Range:1,2}}}}}}"
No problem!!
I think it's best if you try some of the solutions the others have mentioned like using Chu's repo first, and if that doesn't work we can try specifically debugging yours (I have more experience with zsh than with bash but I can probably help)
i see we all talked about the chatgpt part but my other recommendation in general is to avoid writing significant programs in bash/shell
Wow, I would never think of that! Testing right now!
I chose bash because it's the only language I slightly understand
Don't post that on any Linux forums...
wat
Idk i think unzipping some stuff is probably fine to do in bash
My Linux teacher (and textbook) are crying at you right now
writing full scripts in shell is so cursed
Not like they want to make cli mod manager
but like, smaller stuff is fine. idk, I break this rule all the time
Even nexus api dl is fine if u just curl probably
The newest format for compression is .zst
.zst ? like zest?
.zpaq is the newest archival apparently
are u saying real words anymore
So I copied the code you provided, but SMAPI doesn't like it:
[Content Patcher] Ignored (CP) Eleanor > Eleanor - dialogues load command > assets/dialogues.json > Eleanor - marriage dialogues: error reading info. Technical details:
System.InvalidOperationException: Error parsing '' as a tokenizable string
---> System.InvalidOperationException: Error parsing 'Random: {{Range:0,4}} |key=rainy_day}}}}' as a tokenizable string
...... some more lines .......
```. Maybe I did something wrong?
Python is just my comfort language for these smol things
Yeah, that's why I stipulated non-streaming compression, zstd is used for realtime but I never see it used for offline file compression.
ah, fair
I'm looking at a compression comparable
There is actually newer stuff than zstd but it is less popular.
What are PAQ, LPAQ, ZPAQ file extensions. *PAQ family provides maximum compression ratio, with ZPAQ format implementing strongest compression algorithm currently available
you have two four more } than {
The newest you'lll see is like.. apparently .zipx in the wild?
I think what Pathos meant is when setting a key (i.e. rainy dialogue) you shouldn't be radnomizing the key
Actually zstd might be newer, it's just less compressive than brotli (but it is much faster).
is it a key or token? i may be stupid
That seems logical. I personally would probably tap off at .zipx
Also "ZPaq" is a hilarious name for so many reasons.
but most of what I need 7z and zip is good enough
Four? I found only two and now it is OK (but still not working).
Oh, there's a typo in my example:
"Rainy_Day_{{Random: {{Range:0,4}} |key=rainy_day}}": "{{i18n: rainy-day.{{Random: {{Range:0,4}} |key=rainy_day}}}}"
But yeah, my comment was that you shouldn't randomize the Rainy_Day_* keys since the game will then try to choose one at random.
Iro's correct. Whenever you see that parsing tokenizable string thing, your culprit is almost always }}s
And let me tell you
Getting that error in an i18ned event is the worst
Okay back to object conversions. I will finish this before lunch so I can focus on my acutal homework
Hunting through the ENTIRE event for missing }s...
(Data Warehousing, the joy of Database Design.)
missing commas hurt more
So excuse my stupidness, but I should try to use the code you provided?
Missing commas are just "D'oh!"
commas make me sad 
Missing }}s can be a horrid hellscape
I think
"Rainy_Day_Dialogue: "{{i18n: rainy-day.{{Random: {{Range:0,4}} |key=rainy_day}}}}"
but at the same time i don't understand the key
You can use similar code to randomize dialogue. However you need to specify all of the Rainy_Day_x keys for it to work correctly, so you shouldn't randomize those keys.
Thanks .
That one involves downloading from nexus , which requires premium . So I don't want to go that route .
Honestly stardrop would be perfect if it only had the config preserving functionality and optionally backups
did i spell dialogue wrong? mayhaps
Stardrop is open source, you could fork it and add the features
That spelling is definitely wrong.
autocorrect to the rescue
Dialoogie
does stardrop have an issue with preserving configs for you guys? I don't think it overwrites configs for me but I could be wrong
You need to use the exact dialogue keys (e.g. that one is from the marriage dialogue list).
I don't use a mod manager so
sounds like a name for a dog
It's docs said that it can overwrite them
does this work for crafting recipe? "Cheese": "{{ModID}}.LargeCheese 1/Home/424 {{Cheese Amount}}/false/Farming 3"
(SMAPI does the one thing I would want from a mod manager - alert me to updates.)
When i was do stardewui stuff i spel "dialogue" as "dialog" every single time 
yeah i sometimes have this issue but i can never like, figure out the reason
Only if I knew to code 
Or... dialuge, that's when you sled on rough terrain without safety gear.
Like am I allowed to use {{Cheese Amount}} instead of a number? {{Cheese Amount}} is a number
(ok, I'm done)
if stardrop overwrote everyones configs i imagine it would be unusable for pretty much all its players
I believe this will work
Oh yeah! Now it makes sense to me.
i don't think my brain gets the keys but than again im distracted by jiggling ones
ok, thank you!
Oh wow, it gave you a choice
It's a little more straightforward than most areas because you're putting a string into a string there
If you need help using stardrop, just ask modded farmers
Yep. The token just gets substituted into the text before the game receives and parses it.
tysm
In other areas, I've put strings into int areas and they still work
aren't configs saved in the game files somewhere
Like this?
"Rainy_Day_0": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}", "Rainy_Day_1": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}", "Rainy_Day_2": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}", "Rainy_Day_3": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}", "Rainy_Day_4": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}", "Rainy_Day_5": "{{i18n:{{ModId}}.Rainy_day_{{Random: {{Range:0,6}} |key=rainy_day}}}}",
i swear that was the case
they are inside mod folders
So long as they're strings of ints anyways
Mod configs are commonly in mod folders, as Phypy says.
i think i might be thinking of a different game
Technically that would work, but why do you need to randomize the values if the game will already choose one at random?
So you could just do this:
"Rainy_Day_0": "{{i18n:{{ModId}}.Rainy_day0}}",
"Rainy_Day_1": "{{i18n:{{ModId}}.Rainy_day1}}",
"Rainy_Day_2": "{{i18n:{{ModId}}.Rainy_day2}}",
"Rainy_Day_3": "{{i18n:{{ModId}}.Rainy_day3}}",
"Rainy_Day_4": "{{i18n:{{ModId}}.Rainy_day4}}",
"Rainy_Day_5": "{{i18n:{{ModId}}.Rainy_day5}}",
So I got back to the start - I just can't optimize (easily) the marriage code. Anyways, thanks so much to everyone who was here for helping me!

Wouldn't I achieve even better randomization with the code I suggested? Or am I wrong?
what are you trying to optimize, by the way? like your own mod, or the base game marriage dialogues?
and in what sense do you mean "optimize"
My own mod, respectively it's dialogues code.
Having as lowest amount of lines as possible.
So from 6 to 1, in this case.
that's not really necessary and very rarely a good idea to be doing too much off ngl. Sometimes it's better to have the 6 readable, simple lines
Keys-wise you can't really reduce it, you could reduce your number of actual i18n lines 
Yeah, I guess you both are right.
So can anyone help debugging that bash script ?
I'm not on my linux machine rn, sorry
no worries
Oh, sorry to use your space for asking my questions and getting your question somewhere deep down this chat.
Didn't mean to.
If the number of available dialogues matches the number of Rainy_Day_x keys, it's technically less random since your randomization may result in duplicates like this:
"Rainy_Day_0": "{{i18n:{{ModId}}.Rainy_day5}}",
"Rainy_Day_1": "{{i18n:{{ModId}}.Rainy_day1}}",
"Rainy_Day_2": "{{i18n:{{ModId}}.Rainy_day4}}",
"Rainy_Day_3": "{{i18n:{{ModId}}.Rainy_day4}}",
"Rainy_Day_4": "{{i18n:{{ModId}}.Rainy_day3}}",
"Rainy_Day_5": "{{i18n:{{ModId}}.Rainy_day5}}",
Where the distribution looks something like:
- 5: 33%
- 4: 33%
- 3: 16%
- 2: 0%
- 1: 16%
- 0: 0%
There's a way around that using synced keys if you really want to do it (e.g. because you want more than six possible dialogues), but if the number of dialogues is the same then it's both simpler and more random to use the base game's randomization directly.
your problem fits this channel more than mine , so no worries
So I was wrong. Expected that. Sorry to bother you with that (stupid) question. (Maybe, one day, I'll use synced keys for more than 6 dialogues, but that won't happen anytime soon.)
No worries! The channel is here to ask questions.
Yeah, I wouldn't agree on that one, as everyone has equal right to ask for questions. So sorry again.
(leaving the chat...for now)
I'd mainly suggest using something other than Bash (e.g. C#). That will immediately eliminate the weird Bash quirks like the argument parsing issues you're having, and then it'll also be easier to troubleshoot and get help.
(pathos, when you have a minute/are back from vacation, is there any chance I could have access to the repos?)
Thanks for the advice .
I am currently learning python a bit , so maybe I will try to write it from scratch in Py when I am good at it
Invite sent! See the repo readme for more info when you get access.
Note that it doesn't have the latest 1.6.9+ yet, which I'll be working on soon (with the new PRs).
thank you so much!
done converting and fixing the sheet. Time to see if this worked
What specifically is the issue?
why is the sprite index suddendly 0.
If you run patch export Data/Objects in the SMAPI console window, is the sprite index correct in the exported file? Is the item showing the 🚫 sprite in-game? How are you spawning that item currently?
Hey @ivory plume, just curious if you ever got a chance to look at that slime hutch limit pull request I submitted.
The one for ChroniclerCherry's repo? Not yet; I'm slowly catching up on messages for my own mods, but I'll be working on Cherry's mods once I'm done with those.
the sprite index is correct on the exported file. They were spawned by harvesting from a fruit tree
Let me check a manual spawn via player_add
If you have CJB Item Spawner, you can also try searching in its menu. That way you're sure the ID is correct (though it seems to be since the context tags are there).
What does your fruit tree's fruit entry look like?
"KAYA.KoreaBlossomCP_WhiteMagnoliaTree": {
"PlantableLocationRules": null,
"DisplayName": "(no translation:WhiteMagnoliaTreeName)",
"Seasons": null,
"Fruit": [
{
"Season": null,
"Chance": 1.0,
"Condition": null,
"Id": "KAYA.KoreaBlossomCP_WhiteMagnolia",
"ItemId": "KAYA.KoreaBlossomCP_WhiteMagnolia",
"RandomItemId": null,
"MaxItems": null,
"MinStack": -1,
"MaxStack": -1,
"Quality": -1,
"ObjectInternalName": null,
"ObjectDisplayName": null,
"ObjectColor": null,
"ToolUpgradeLevel": -1,
"IsRecipe": false,
"StackModifiers": null,
"StackModifierMode": "Stack",
"QualityModifiers": null,
"QualityModifierMode": "Stack",
"ModData": null,
"PerItemCondition": null
}
],
"Texture": "Mods/KAYA.KoreaBlossomCP/FruitTrees",
"TextureSpriteRow": 2,
"CustomFields": null
},
(time to fix that too)
I wonder
i'm going to save and quit and see if that fixes it
If a spawned item (such as one hanging out on a tree) errors out and turns into an error item, even if you correct the data/item later, that item will have lots its spriteindex and be set to 0
so it has to be a fresh item
Is that the exported data, or what it looks like in the content pack?
exported
JA will attempt to convert stuff, but only if you keep the JA pack installed
(If you remove the JA pack they turn into error items—they should remember their names)
Does <season>_<dayOfMonth> take priority over <season>_<dayOfWeek>?
Should, yes
For some reason, it isn't for me?
I'm using dynamic tokens in the code for those so that might be making ir difficult for the game to understand? I'm still messing around
Hmm actually it doesn't mention order in there. Maybe I'm thinking of marriage dialogue 
@ivory plume Do you know if there's a set order dialogue keys are prioritized in? I don't see it mentioned on the wiki (but maybe I just can't read)
i thought the precedence was set in the order it shows up on the table there
i believe the wiki lists it top-down in order of priority
^
i've been looking in the related code a bit recently and it seems to match up
like going down this list
that is likely my problem. And..doing a next-day fresh fixed it
Which hey, I cna move on to the next "huh" why is this not sellable to the bin
to docuemntation1
with schedules - if I wanted to make it so a villager moved around/paced like harvey how would I go about doing that
For whatever reason, my "<season>_18" dialogue gets overruled by "<season>_Thu"
Huh that is weird
I’ve always been under the belief that it does take precedence over season_dayOfWeek tbh
im pretty sure the season_day should take precedence over season_dayofweek since one is more specific than the other (itd make sense)
so its weird that it's just like... no you cant have this
Okay, I didn't imagine that! Wonder why I couldn't find it. I'm blaming mobile.
That’s… odd…
especially for something like how day-before-festival dialogue works (iirc it's literally just specifically using the season_day format for the day before the festival)
(thats how i did it with my dialogue anyways - i havent actually officially tested any of it)
That’s how I do my dialogue as well, in case I want something season and day specific, I expect the latter to take precedence
i say any - ive not tested specific date dialogue
NPC.tryToRetrieveDialogue() seems to indicate that dayOfMonth is checked before day name
with season-specific dialogue having priority first ofc
It's probably something to do with conditions in my dialogue
i just did a quick test with my dialogue and i think it has to be
my date specific dialogue overwrites the general weekly dialogue
Hi I have a question! I’m messing with my custom farm map and the different areas have different types of fish by location (mountain, ocean, river). I’m hoping to get it so custom fish added to these locations by mods are added to the farm but it’s not working. The custom fish show up in say the ocean but my farm’s ocean is entirely vanilla fish. Does anyone have any idea how I can get the edited location data added to my farm?
It was working before but I switched computers and now it’s all vanilla fish I have no idea what’s messing with it
per the wiki, it'd be part of the animation for that schedule point: square_X_Y_facing causes NPCs to make random movements in a rectangle of at most X by Y (it can be less), centered at the schedule point. They will occasionally pause and face the facing direction.
I dont know how I didnt register that thank you
I was looking through the schedule wiki and was confused because I couldnt find that (i saw it in harvey's schedule but apparently im a bit blind when it comes to the wiki)
If I'm reading this right, I need to include "Type": "Objects" for things to actually sell through the bin, right?
That's not a type
it does have to have a type though
for objects I believe most of them are Type Basic
The vanilla types are: Basic, Arch (artifact), Litter (e.g. debris), Minerals, Quest, Crafting, Fish, Cooking, Seeds, Ring, interactive, and some placeholder values like asdf.
What are you trying to make sellable through the bin
Yeah, I just .. realized that
I uh..
forgot types on everything
woops!
opens up Notepad++ and Notepad3 again
Does anyone know where in the contents folder the string asset Strings\\Locations:Desert_Return_Yes is? I can't seem to find it
Er, Content > Strings > Locations, line 74 for me
ty, apparently notepad's find in file function isn't working for some reason 💀
I suggest a less bad program

I got tired of getting flashbanged by my Notepad++ not saving my theme so I uninstalled it
yeahh it got rid of mine when i updated it and i was very upset ... i redid it because i dont want to learn another program right now but it was very upsetting
my pretty colors :(
I probably had extra settings stored somewhere from installing it weirdly, but I was really only using it for notes at this point
all this searching for how the game handles the bus stop payment only to find out that it's this Game1.player.Money -= this.TicketPrice;
I could have figured that out myself...
Sometimes it worked fine and depending on how I opened something, sometimes I was greeted by the full power of the sun
Yeah the bus stop is hilariously hardcoded
Yet another project I was gonna deal with but dunno if I'll ever circle back on
also just to clarify, I wasn't talking about notepad++, I was talking about notepad. Like the og that comes bundled with windows 
if you break my bus transpiler its on sight /j
i use notepad as a way to ... well literally keep notes. like sticky notes on my desktop :3
the blinding white is a bit annoying though
(That was Game1.player.Money -= 500 before 1.6, so it's a tiny bit better now.)
At this point I don't even remember what my plan was lmao, something something custom dialogue box, keep using the logic for boarding the bus and watching the drive off animation, hijack warping and then create some new system for setting up bus stops elsewhere
All I have is the vague points now though
Does anyone know if zero schedules would cause voidwalking?
im pretty sure i transpiled into an if statement or two in there so you'd probably break it but i wouldnt blame you
Is this transpiler for making the bus self drivable?
I've got a weird interaction with PoaSB that's causing a Sandy schedule in it (only with SVE, mind, since Sandy doesn't leave her shop if no SVE) to cause Sandy to walk on the farm somehow - apparently SVE doesn't directly edit that day, yet somehow she's on the player's farm at the falls
Only issue I know for zero schedules is the NPC duplication
I can't think of what PoaSB is
Part of a Saloon Breakfast
(The decompiled game repo now includes 1.6.9-15, thanks to @rancid musk!)
Which day?
Saturday
SVE only adds Saturday schedules to Sandy as far as I can tell
Though none of them seem to put her anywhere near the farm, so now sure how she's getting there
I know you can cause NPC's to warp and screw up their pathfinding in one fell swoop by putting a schedule end point on a warp
Get a player log
Do they have any thing editing the busstop
At all
Uh oh?
that's the wrong thing
one sec
17:43:04 TRACE SMAPI Content Patcher edited Maps/BusStop (for the 'Stardew Valley Expanded' content pack).
17:43:04 TRACE SMAPI Content Patcher edited Maps/BusStop (for the 'Ridgeside Village (Content Patcher component)' content pack).
17:43:04 TRACE SMAPI Content Patcher edited Maps/BusStop (for the 'Frontier Farm' content pack).
Just SVE, RSV, and Frontier, so nothing major
Hm, but those should all be compatible with each other?
Yep
Their log is https://smapi.io/log/d4ba1c9f366842c89ef2293e9dc5338f for the record
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 38 C# mods and 22 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I see the Vortex deployment thing, so it might be Vortex screwing stuff up
nvm I am dumb and need to sleep

but why is event lookup loading a _international version of every asset
It's just how the content pipeline works. First it tries locale, then language, then international, then default.
Ask them to check English
SvE in thr past had replaces for translation
Hm. In fun times: ""Id": "KAYA.KoreaBlossomCP_SpringSeeds",
"ItemId": "ALL_ITEMS (O)"," is not working
turns game offa nd back on again
I feel sometimes Cornucopia was not the best method and I should have iterated through each item ID
... hm
Yeah, I'm just going to specify the items directly.
angrish noises
(I don't know how to test the GSQ itself, or I'd just do that)
You can run debug iq ALL_ITEMS (O) in the SMAPI console window to test an item query, and debug gq GAME_QUERY_HERE to test a game state query.
ah, will do, thanks!
That.. would explain why it's not working.
... oh.
I think I know what's wrong.
Wait, no, the GSQ shouldn't be failing that way.
But I'll check
.. hm. I'll just chunk up the json so I can ask for help I think.
https://smapi.io/json/content-patcher/a76651779c184f72a01b2a4efca15d5d I can't figure out where this is failing. I can see the context tag exists, I can see by patch exporting Data/Shops it's adding it but I think it's not adding the seeds and is adding two items I do not understand why
you need commas between your queries
as is its looking for items that have every ccontext tag listed, including the !ITEM_CONTEXT_TAG tag and the Target context tag
since without the comma its all part of the first ITEM_CONTEXT_TAG query
My new favorite support question on a mod page:
@ pathoschild why can't I use it?
(That's all the info provided.)
"Probably because."
😭
"yes"
does anyone know how to change house upgrade prices using the content patcher? srry for bad english
your english was fine
you cant change those with content patcher
you can't?
do you mean the renovations?
thanks
oh, ok
or do you mean the upgrades that give you a kitchen and a cellar?
this upgrades
oh ok, thanks
Brainstorming a hokey bug workaround about events I'm not super knowledgeable about here, but for events are quickQuestion commands capable of all the same forking responses and effects as the usual $q and $r commands?
#modded-stardew might know of a mod that already exists that lets you configure it if you just wanted to download one. no guarantees though
i will take a look
i think you can do anything inside a quickQuestion, but i wouldn't try doing another quickQuestion.
in fact if you want to do anything complex i recommend using switchEvent to jump to new event keys where you don't have to worry about (break) and \\
anyone know off hand where the NPC chatter code lives
i.e. when they have a little bubble over their head instead of full dialog box
NPC.showTextAboveHead and whatever calls it
Hmm, okay, so it should be able to possible to replace most instances of an NPC asking you a question with a quickQuestion with the same effects
its used in 20 places per ilspy
ty btn im glad u have working ilspy 
it helps that i knew where to look off the bat too bc i used it for BETAS and my books mod 
wait i didnt realise the book mod used that
yeah the junimo book makes junimos on your farm into little chatterboxes
i will take that as a great compliment
do they demand that you pay them a wage
technically they do in a very cutesy way
sometimes when they harvest a crop theyll say "Is for me?"
the people translating it have been very good at keeping that improper cutesy grammar from what i can tell
Oh, wait... can quickQuestion even be used outside of events?
nope
Well that nukes that option then 
There's another one that functions similarly in dialogue!
(im looking at the i18n files for my books mod to remember what all the junimos can say and i have no memory of this:
"Dialogue.JunimoScrap.Harvest.1": "{0}",
what is the point of this. why did i do this)
$y <Question>_<Answer1>_<NPCAnswer1>_<Answer2>_<NPCAnswer2>
Ah, I saw that but it specified it can't be used for friendship changes
Thanks for the info though y'all 
what does textAboveHeadStyle do
i feel like when i was testing it it did nothing
theres no instance in the game of it being anything other than 2
though, apparently setting it to 0 i think makes it bob up and down?
Vector2 local = Game1.GlobalToLocal(new Vector2(standingPixel.X, (float)standingPixel.Y - 128f + (float)base.yJumpOffset));
if (base.textAboveHeadStyle == 0)
{
local += new Vector2(Game1.random.Next(-1, 2), Game1.random.Next(-1, 2));
}
i would guess that's a shake effect if this is in the draw stack somewhere
this is the only way textAboveHeadStyle is ever read and its 0 in both cases, one for Junimos and one for NPC in general
so i dont know why normal style is 2
it is in drawAboveAlwaysFrontLayer
ok yeah so that would make it jitter around every frame
maybe when i tested it i only tried 1, thinking that there would be different things for every number 0-2 instead of skipping 1 for no reason. what a dumb assumption for me to make
just sdv things
Today in: Maybe I shouldn't have done this: the seeds wont plant. c.c
category is -74, type is "Seeds"
to the documentation!
Is your Data/Crops patch correct?
[aggressively greets you]
Haley does seem like the right person for this level of excitement
it was a nice little coincidence too bc i didnt know what colour itd be before i hit record, i typed in a random hex code
That is neat
hm. Okay, I can't actualyl figure out what's wrong. Patch/reloading does not appear to make it appear, so I'm going to also check to make sure the file is being included
That was the culprit. :V
the crops was the wrong format too, so I guess this was a good way to find out!
is this another BETAS feature
yeah it could always do that
that answers my next question though i was about to ask if you used it
bc i wanna change the order of the parameters 
oh well i am main shill and yet i haven't touched any other functions
tbh you can do whatever you want at this point since i announced the retirement of the big boy mod that's dependent on it 
i will commit a "do as i say not as i do" now then and change the order to make sure Colour still goes last
hey, some of the crops are working now. Progress! 😄
it didn't even get to live a year smh i now see why there weren't other dialogue expansions in english before me 
Seems more afraid than excited to me.
I knew a few people in school who were so bubbly that if they had speech bubbles they would vibrate
Shivering in terror.
Hey crew, I changed my season in-game using world_setseason, but after I triggered an event for testing, I checked the SMAPI console for patch settings and it looks like Content Patcher didn't consider the season changed?
Is that expected?
Did you sleep in game after changing the season?
Hm. I'll go through seeds one more time but some of the crops aren't appearing
the assets exist, the data/crops shows they point to the right as set..
Oh. Wait
I bet it's something simple like they should be two crops wide not one. c.c
..yep
I'll go fix my spritesheet lol
you can also get CP to refresh its tokens by running patch update
Dangit I forgot how I blanked out Lewis's dialogue
So far got everything working with solid foundations and my C# code appears to be functioning correctly.
Now I need ideas for skins for my cellar
Skins for the doors that open and close
The fun part
So far I got dreamy with one cloud and some stars and a swirl
Okay I tested this myself and got the same problem, in that using "Rainy_Day_{{Random:{{Range:0,4}}}}" (there is no Rainy_Day_5 by the way, at least according to the wiki) generated one key per day (Rainy_Day_4 on the first day I tested and Rainy_Day_1 the second). If the game doesn't happen to pick that key to use that day, it pulls the generic Rainy_Day_X line from Characters/Dialogue/MarriageDialogue instead.
I can see that Pathos already weighed in on this and gave you the answer that you do need one of each key so I guess my testing was totally unnecessary but I did have fun so oh well haha
When an event command asks for a “layer” field, how do you write the map layer? Is it just a plain string or do you have to specify something else? I’m trying to put an object on a table in an event and it’s not showing up 😰
Me relearning how to mod every 4 months:
what command are you talking about
changeMapTile?
addToTable <x> <y> <object ID>
addProp <prop index> <x> <y> [solid width] [solid height] [display height]
addFloorProp <prop index> <x> <y> [solid width] [solid height] [display height]
if you're adding something you'd probably just use the addtotable command
I was using addobject in an event to add something from springobjects
I’m pretty sure addtotable is like, not used ever haha
layer probably means the layer you mean to put it on as if you're in the tmx, so Buildings/Back/Front?
but it's also optional since it's [layer]
I put AlwaysFront but it’s not showing so either I got something else wrong or the layer needs to be an integer or something idk
i dont really understand layer depths
so idk. bigger = more on top ig maybe fuck if i know
y coordinate multiplied by 64
Y coordinate in pixel space
Damn 😭
Okay so how do I push the springobject to the front if it’s the layer depth and not the map layer
make it 1 i suppose
All im tryna do is put a pizza on a counter LOL
fear
i think it would be cute
how conditional can i make the dialogue
well i supported sound since 1.0.0
rn the dialogue works by activation on ability
which can take GSQ
hmm
this test one has the "footstep" proc so it shows whenever i walk
could i have a trinket whose ability is to do nothing but activates when you ge close to an enemy to say "hey watch out!"
assuming i have a GSQ for detecting proximity to an enemy
and so it'll proc when its close enough
i think i explictly banned that
no fun
/lh
the ability i speak of is hitscan
which is u know, do damage directly
no projectile to begin with
fair
ig u can have it do 10ms stun or smth instead
i am taking this under consideration
tbh i did think about it
and that one person who wanted to make the master sword from zoldo could probably make it a trinket trinker
i still need to get to my other trinker tinket idea
oh dw trinkets arent even npcs to begin with
it managed to completely stop my train of thought in its tracks
so i just made my own thing to call SpriteText.drawStringWithScrollCenteredAt
im surprised u dont know about the ship it squirrel
do i want to know why this surprises you
its a emote on github iirc
"emote on github" as a sentence/concept itself makes absolutely no sense to me
im sorry for derailing ur train of thought i hope u can put it back
no its gone now its fine
i think its irrelevant after u said you were calling drawstringwhatever yourself anyway
this does mean i didnt implement the shake 
.... I'm going to sleep
im putting in a feature request for the shake right now
👆 The biggest reason mumps is stuck in dev hell. (Though, I'm considering renaming it)
Oh my
i did this cus it occur to me that i am make bootleg npc adventures here 
so the companions ought to be able to talk
can i give them gifts
But what about powering them up with different food buffs
they dont need to be NPC for you to handle right clicking them with a gift
Feeding them different things every day to change their IVs and EVs
i would like to give my trinkets gift tastes please
yea but how is this control suposed to work in gamepad 
same way it works for NPCs id assume
u cant walk into a companion, not easily anyhow
that sounds very annoying
Make a menu
we've got MUMPS. there's an MMR. when will someone backronym their way into MEASLES
Where you can feed and customize your companion
while you're at it can you just let me have a pokemon style 6 trinket team
but anyways i suppose u can do some funny stuff with item use trigger proc + action to achieve gifting
Have any total conversion mods been released for SDV thus far? (Also hi ichor!!!!)
and they can have a little animation proc'd on "receiving" the gift
you would consume the item 
squiddonaut! hello!
Hiiii!!!
how would you handle the consumption part
although, there's no stateful things on trinkets besides the level and the variant
fireredlily is doing some degree of total conversion which is turning all of the NPCs into zelda characters. that's the most ambitious one i know of
so yea its just not designed as a character to interact with, and thus has no real system to support any of that
Me wishfully thinking about a total conversion mod where you grow human crops on a colonized alien planet 🙈
the "bootleg npc adventure" is more like, u would interact with the npc form of a character
until they give u their trinket that u can take into caves or whatever

theres gotta be sdv in space right
whats Haley's trinket
DON’T JAIL ME my ambition knows no bounds, I will break out of prison 😈
a compact, i would think
... a car?
a little case with a mirror for holding makeup stuff
oh. i didnt know those were called compacts
i would make it something to do with photography personally
a camera trinket that stuns enemies with its flash would be cute
ice rod at home
Void I just want u to know. You saved my ass here and you should be very proud of urself 😇
wouldnt it be better since it doesnt have to hit anything
and room wide
true. ice rod also prevents knockback which is insanely good
haley reaping the souls of slimes with her camera
trinket trinker trying to be the main framework i'm depending on for my "with the power of all of my friends, die" event 
so i don't have to animate the npcs during the fight
only got one slot with vanilla

can i false equip it 
craft one of every trinket into the ultimate friendship trinket that does all of their effects and has multiple things following you at once
terraria style crafting tree
just do like purseowner eye cutins or some shit
i do think the idea of the NPCs giving you a special them trinket is very cute though im gonna do that for my NPC
it'll be cool 
also, don't tempt me, i would definitely do this
one day i will work on the snorlax trinket so i can bring my big friend with me

i don't think the forge would let me put in 30 trinkets, nor would my brain be able to wrap around the configuration of how to put all 30 into 1
re fake equipping it though, i suspect it's not actually that bad
oh i was thinking regular crafting
oh
Game1.player.trinketItems is a list
i think the stupid ui will cut me off
ur in C# so just shove fake things in there
and yeet them once u be out da fight
but as mentioned b4 i havent rly made attempt to make multiple companions make sense
the'd prob just stack on the same spot
civ 4
could add some random offset to their angle based on their index in trinketItems
one day i'll give companions real collision mayhaps
but then i will become the thing i always hated in vidya, party members stuck on walls
that would be strange i think isnt real collision the exception
like just villagers and maybe the horse but im not sure about the horse
oh i mean, companions r currently just intangible
they zip where they want and i was like this is fine
that also seems fine to me tbh
its a lil weird for companions that seem like they'd be "grounded"
does the vanilla frog have collision?
not that i know of?
really it's only wacky bc trinket tinker companions have the ability to chase things
so sometimes a foraging companion would just phase through a cliff bc they detected horseradish
do you actually have them pathfind or do they just beeline in screen space
they just zoom yea no path find

it was fairly low on the list of "thing to make work" compared to just making sure it doesnt explode multiplayer
so yes eventually make some path find algo, would prob have to be a custom non grid based one
what would it be if not grid based
the player is not grid based
i dont think the player uses a pathfinder
companions are, for most purposes, an extension of the player
and therefore i need a non grid based path finder
cant just yoink the npc one
design choices + players like walking diag
but you could pathfind from the players point using the games pathfinder
i feel it'd be a lil jank 
or maybe easier, reverse pathfind from the monster to the player
and have the trinket follow it backwards
to suddenly be grid obeying
i just wasnt sure how else you'd detect where the walls are
but well, atm i just dont want to do it™️
it seems like a lot of effort for a small thing
thats like my entire modding career
theres other small things of lesser effort and perhaps greater reward
Don't you owe us a cool underwater expansion first? 
The funny thing is
Its almost done
;)
are the i18n keys for configs in the CP docs?
they are but i always forget if theyre in translations.md or config.md
you can also just use normal i18n for em too though if you forget
I reckon there was a new update today?
Malon's Epona heart event is officially complete and working!

The only thing that would improve my heart event is if I can figure out how to make it look like the horse is eating a carrot
can u use the hons anim as it is
if the horse is a temp actor, just draw some frames of it eating and do an animation
I can use the animations, but the carrot animation is just the face, so it's weird
Yeah, I think I'd have to add animation frames with the face attached to the full horse sprite
hons
hons homf
god i hope iro internally called that lizard : horse something cursed like limzard
Hozard? Lizarse?
damn these are pretty good
honzamd is also pretty good
no json validation, we die like warriors
As a bonus, I can now use a condition for the stable mail that's directly related to having seen the event, so that's nice.
update: we died
!choose release mod tomorrow, fuck it we ball
oh ffs
is it .choose
.choose release mod tomorrow, fuck it we ball
Choose result: fuck it we ball
OKAY
do we have to do anything special to add our own context tags or is it just throw it in there and it exists now?
like if i want to add my own context tag to items
just throw it in there
So, I was reading the wiki trying to figure out how large eggs and large milk work, and it was kinda vague about when you can get them.
Three hours later, I have delved into the game's code and now I know a little too much about the many different ways there are to raise friendship with animals, but I still haven't found when I can get large milk and large eggs,
FarmAnimal.dayUpdate
there's a whole formula in there determining whether you get the deluxe or regular produce
it's also explained on this page: https://stardewvalleywiki.com/Modding:Animal_data
This is probably a silly question, but do tokens work inside event speak commands?
Specifically wondering about i18n for a name or if I need to do the full line
tokens will never be seen by the actual game itself
all tokens get replaced with their actual values before the game sees them
so they work wherever
with very very limited exceptions
I use them everywhere inside my couple events dialogue :P
You can use tokens anywhere inside event code.
I saw the code, but now I see that the actual parameters I'm looking for are stored in a separate file rather than hard coded.
yes, animal data (I linked it above)
which makes sense tbh
apparently you can get them whenever :/ (it's just very rare I bet)
Can someone show me an example of how to have my CP mod edit the correct language-dependent sprite file (eg JunimoNote.es-ES for a Spanish game)? Or is it easier to just have it patch all of the JunimoNote files?
CP will automatically patch all language variants by default
Yes, but with zero friendship it's be like 0.0001% chance
if you really need to apply a patch specifically to one languages assets, you can use the TargetLocale field
but in all likelihood you dont need to do that
you can also just make When conditions that check the language
Doesn't the base game just localize the entire event string instead of just parts of it?
(more related to fire's question)
well if you're adding it with Content Patcher odds are you are not putting the entire event string into the i18n
so its up to you to make sure each part of it is correctly i18n'd
Honestly the next thing I am going to try to do is see if I can target a specific event command for replacement for the ones I intend to keep the same
So all I am updating is the names spoken
(looking at you, Egg Hunt "Abigail!")
if its an internal name you should be able to do that with ReplaceDelimited, depending
if its not an internal name then it can still be used but is not as helpful
bc it wont cover all languages
then yeah the options would be ReplaceDelimited and manually patching differently for each language, or editing the specific field number and hoping no one messes with the order of event commands there
I feel like attempting to change internal names of vanilla NPCs is the road to terrible things happening
oh no i didnt mean that but i meant like, if a command was like /speak Haley or whatever, you could easily replace Haley with, say, Abigail
i don't think that's actually feasible in cp 
Ah, ok
the changing their internal names* i mean
Yeah, I am going to manually change who is in an event rather than trying to use replace delimited for that
unless you mean nulling their data/character, then that's just chaos 
you can change their internal names, if you count deleting the original
(10 out of 10 doctors agree thats a terrible idea though)
I imagine that would cause so many mod incompatibility issues
pathos'd probably hit you with 5-6 "really"s in the "that's a bad idea" sentence
i think mod compat would be the least of your worries
Honestly at this point I am confident enough in my Custom NPC skills that I could make all of them new NPCs rather than replacements but that would require more maps.
the eternal struggle
if you dont wanna make them new maps, i hear someone made a really nice apartment recently for new NPCs
Future release version maybe once I get the first one out the door
Haha, but it's not reskinned for Zelda
😛
👆
I am less than 5 portraits and 20 sprites away from finishing the art
I am not adding more now xD
i have not touched a single character sprite, i'm in a world of pain 
(I gave up on passed out Shane/Ingo portrait pose and just gave him the anime "turning green" effect instead)
But it works!
i have never looked at what ingo looks like but that's just waluigi /lh
Let's be real, Talon and Ingo were Mario/Waluigi references anyway
I will be glad to be done the portraits, I find the sprites way more enjoyable
I don't have to be quite as accurate there
And I don't want to jump between them because I risk losing my art style's consistency
except i hate thinking about leg movements of sprites
I think leg movements are one of the banes of animation in general.
That and obnoxiously long and flowy hair
Now that I've thought about it, I eagerly await the day someone creates a hair physics mod.
wdym
there is an animated hairstyles for fashion sense, it's not exactly perfectly timed for the farmer but it's got really good animations
actual actual physics might, uh, be An Endeavor™️
yeah ;_;
im totally new at this and i looked through the links here and there
i want to add a new npc to marry
if anyone could point me to learning how to do that !
I don't think we have a command for NPC creation?
But you could try to lookup how other mods do it, that would be a first step
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
We do!
tysm !!!
Guys, I was working on a mod for the last few months but I saw that a few days ago a mod that does the same thing was posted on Nexus. Should I discontinue my mod? I'm not sure if it would be bad If I posted a mod that is basically the same thing as another mod that was already posted
!twocakes
If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.
Having a mod thats similar to another isnt a crime 
There is a chance some details are different, and even so people will never complain about having two different mods ^^ worst that can happen is people wondering what's the difference
can i just write down a manifest json in any notes app??
(unless yours is low effort and does the exact same thing)
Well yes, as long as it's called manifest.json
if you can do the exact same thing with even less effort that sounds like a win
is there a specific app that i can use
Just notepad is enough (or gedit depending on your OS)
okie thank u sm !!
tbh, notepad isnt the best
i googled and apparently notepad++ is what was recommended
go with that
if you use notepad (not recommended) you have to make sure you save it as All Files and manually name it .json
oh, is there smth you recommend?
Notepad++ or VSCode are the usuals here
okie ill use notepad++
I never thought like this before, I'm glad that I got to know about the "two caves" idea, it made me feel better. Thank you both! 😊
thank you !!!
about fireredlily's npc builder, what exactly do i do with it? is it code??
sorry for the trouble !!
Technically you should read cp docs first otherwise you'll be lost in the sauce
!cp
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
Remind me in 17 hours to combine the sandwich analogy and buttons json toy into a command
don't you have like a cell phone or something aviroen? it can do the same gosh darn thing and then I can be lazy. but okay, I'm on it. (#6463871) (17h | <t:1736390609>)
(i would personally rather it not be bundled into a command just for that as it's really meant to be much more general and eventually a part of a larger collection)
Sandwich analogy it is (on its own)
Actually I can probably do uhh
.remove timer 6463871
Restricted to server owner. (use .timer remove if you're just trying to remove your own timers)
.timer remove 6463871
Timer removed.
thank you !!
i didnt realise how much new stuff id have to learn ;00
its fun though
does anyone use stardewxnbhack??
I think almost everyone uses it for unpacking
It's the go-to for general unpacking, unxwb is used for unpacking the audio files
oh okay thank you
i wanted to ask, i have my stardew application in the desktop folder,, so do i download the stardewxnbhack in there?? my game folder doesnt have the application file in it
It should go in the same place your Content folder is
oh okie thank you !!
I put it on the main page of the tutorials category since it's a general/overarching thing, is that okay?
do mod creators do joint projects T_T
Some people do
cool
Though it's more common to see people just commission stuff
ooh we can dothat
usually for bigger expansions
hmm commissioning sounds nice but i want to work on it myself too
im not opposed to learning the complicated stuff
!commissions if you want the list of eligible mod authors
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
but having a partner who does it with me would be nice
thank u !! will def look into that
It's just whether u want to pay other ppl to do bits u don't or can't do yourself
ah okie okie
yeah thats def gonna be helpful
partnering up would be difficult if you don't have an existing portfolio (previous art, mods on nexus, etc etc)
that makes sense
or if you're not active/known in the community!
well, ill just learn as i go and hopefully i can make something
!anyonecancook
Rmbr dont scope creep urself
pixel art is fun so yay for that
(lies the scope creep is eternal)
hehe thanks !!
many frameworks out there have good guides, the modding wiki is pretty thorough, and content patcher can do a LOT
What do you want to make anyway
yess i saw
its super helpful
you just have to find what you want to make and the motivation to complete your projects
im sure i can figure it out given enough time
and the willingness to learn new stuff along the way, of course
if it's art feel free to share WIPs and ask for input in #making-mods-art , and ask around here for other technical details!
Im a little late to the party, but be ready to hit some walls at first. Though this channel is pretty good for help (provided you've done your due dilligence first 😉 )
You should nake sure to share your crash log if you mention a crash
Yeah. I just was thinking that.... I'll have to re-ask when im home and have it :p
You can always start small! I just released a mod that only edits one event, there's plenty of room for little easy mods 
of course !! its just that i have this idea and my brain and heart make me wanna do a lot
Yes, my advice is start small and make something you actually want to use in the game
You're in good company :P
Many of us have graveyards of unfinished mods
i just want my cute monster spouse ngl >_<
Dont do what I did and start with something complicated that makes you really mad a lot hahaha
i get that
My first few mods were just cp ports of xnb mods. My first original work was a custom greenhouse interior
I started with a farmhouse. Not recommended :p
Yeah farmhouse is a bit complicated
a big project ;00
Not hard but there's a lot of fiddly bits
oo i see
Im still learning this haha. There's still things I dont understand
Can I ask a dumb question? What's the benefit of using FTM instead of manually coding the stuff into your content file? Is it more convenience than anything? Or is there a perk to it im missing
FTM has extra features that cant be accomplished with CP mods alone
It depends on what specifically you want to do
I understand that. I guess... Im not sure what those features are. Maybe I need to play with it more to understand it better.
One way to think about it is that CP only aims to replicate vanilla behaviors using the data formats that vanilla recognizes. The main thing it does beyond that is it also has a very powerful token system.
Other mods go beyond vanilla. They can implement behaviors that vanilla does not support through its data models.
That's not a very specific answer, but how frameworks go "beyond vanilla" varies depending on it. And FTM has too many things to list, so it's worth researching what those all are.
Its really feeling like its one of those "It does a lot, and you wont really know WHAT it can do until you need it to do it" type situations
It's better to just be like hey #making-mods-general how do i do X
There's also that big ol flowchart Elizabeth is making but my point is that idea come first impl later
Oh I know. I already have a farm made. Was just debating if I should change up some of the hardcoded content and swap it to FTM. So it was something that seemed like a small question that is bigger than I realized. So im going to do some more research and such
Fwiw ftm is ubiquitous enough that most people won't care if it's a dependency
The 1.6 location data does have some spawn changing features though
But u r fight vanilla spawns for chance
I'm super new to making stardew mods. I already know a lot of C so have been busy working with C# but now I'm seeing it might be hard to do everything in C#. Is it a problem if I also use content patches? Will players have a harder time installing my mod if I have both C# files and content patches?
Lots of mods have both a C# and a content patcher portion! I'd recommend publishing both parts of the mod under the same nexus page (typo said same mod id: they need to have unique ids because SMAPI loads them as separate mods)
And I would definitely strongly recommend going C#-first, have your content packs within the C# solution, and using the ModBuildConfig package to deploy/package both at the same time for ease: https://github.com/Pathoschild/SMAPI/blob/develop/docs/technical/mod-package.md#bundle-content-packs
I cannot believe there's been a config option in the C# the whole time hello 😭 I've been writing weird build commands
So was I until it was added relatively recently!
Ah perfect. Thanks guys
👀 what kind of monster
This is actually so much cleaner of a release i'm so glad i learned this
i am SO GLAD you asked
i made some initial ideas for his sprite hehehehhe
sorry idk how to blur pics apologies
im an absolute beginner so no judgement please T_T
ooh, fun!
thanks for asking btw ive been screaming sbt him to everyone
ty ^_^
im just gonna delete that cus
im embarassed
ahem
see ya !
🫵 can I publicly request meep logs to be trace instead of front facing 
Man, this community is friggin amazing... I release a mod and not one day later an user comes by with a Chinese translation, unprompted. For my silly little mod. that's bonkers
It's a double-edged sword because on one hand depending on a framework can often improve the longevity of mods since breaking updates can be handled by the framework, but if the framework ever dies then it takes a lot of mods with it. FTM is so ubiquitous I'd expect it to be supported for the foreseeable future.
if what you have is working, i would put off reevaluating your decision until the situation changes (you find an intractable bug, your mod breaks and needs an update anyway, etc.)
I was wondering, on the topic of using CP vs SMAPI's content API, CP would have more longevity right? Considering it can auto-update older mods to work with newer versions. Or maybe SMAPI does something similar as well?
I suppose that would only apply when talking about mods that exclusively change content and don't have custom logic
SMAPI does rewrite mods when e.g. method signatures change
Oh!
it also handles a few things to make cross-platform modding more reliable, which is the same sort of on-the-fly rewriting
Man, I should donate to SMAPI when I have the chance
actually maybe the directory separator stuff is compile time. unsure about that one in particular
i think the main thing about CP versus content api is there are some things that are difficult to impossible in CP that you can do fairly easily in the content api, like apply a change to every item in an asset without having to know what they all are
and likewise, CP has a bunch of really useful features (mostly its tokens) that you would have to reimplement if you wanted to use them via the content api
Yeah it was kind of annoying to work around not having tokens, but since I'm more familiar with C# i prefer to stay on that if there are no downsides
well, you've encountered the major downside 
i started my NPC entirely in C# but converted most of it to CP after struggling for a bit
Once I figured out the right syntax to add an action/method callback in the content files, it was all smooth sailing from there
content patcher is generally easier to write (which is why it exists) and the tokens are really helpful, and i was spending a lot of time reimplementing its features but worse
Oh woof I can imagine, if I ever do something bigger like that i'll probably consider CP
for now though I think I found my place in making QOL mods
It "works". In that it works but I dont LIKE how it works and want to make it work better. If that makes sense
How do i make a simple yes/no popup gamepad compatible? Currently I can only select and click with a mouse.
How did you create the popup?
oh, definitely. in that case research away
Hey all! I’m new to modding and have hit a bump in the road that I can’t figure out how to fix. Hoping someone might have an idea of what could be wrong... Got a custom npc and custom location both working (location is a house I added to the backwoods map) he spawns correctly inside the house follows his schedule when inside, but he won’t go outside if I schedule it. And if I force him to go outside by scheduling him to walk into the warp tile, he does end up outside but still won’t move from that spot. I feel like I’ve tried everything I’m at a loss T_T
ah! the problem is you have used the Backwoods map
Backwoods is on a blocklist. NPCs are forbidden to path to/through it
Ohhh nooo 😭😭
wa really? why?
So many hours wasted
sorry to be the bearer of bad news!
It’s kinda good news in a way because at least I know what the problem is. Thank you so much for letting me know you’re a lifesaver
I’ll get back to work 😭
Backwoods is not contiguous without the community shortcut, and would introduce a loop with it. in both situations it wreaks havoc on the (bad) NPC pathfinding algorithm
Before I do are there any other areas I can’t use??
https://www.nexusmods.com/stardewvalley/mods/28044 I haven't tried out this mod but apparently someone made an NPC living in the backwoods, I wonder how they did it?
maybe it's due to the fact it's a custom map
The eternal struggle of, "reimplementing cp" 
well, the farm for one, but idk why you'd put your npc on the farm
you can work around the problem by creating NPCWarps that take your NPC from their map/home straight to another map (typically Mountain), and back likewise if you want them to go home, but you won't ever see them on Backwoods so you have to deal with that in your own way (or not, if it doesn't bother you)
Woods (the secret woods) was blocked in 1.5 but i hear it was unblocked in 1.6. i haven't checked myself
Ok gotcha. I’ll have a look into npc warps to test that out first. Thank you!!
Gotcha. Thank you!
They probably didn't
drumroll
/// <summary>The location names which NPCs aren't allowed to warp through.</summary>
/// <remarks>The farmhand cellars are added automatically.</remarks>
public static readonly HashSet<string> IgnoreLocationNames = new HashSet<string> { "Backwoods", "Cellar", "Farm" };```
shucks... my cellar npc is out of the question.
gasp Cellar isn't pathable???
I will now cause chaos in island maps
I suppose it makes sense but boooo

...are events blocked in cellar? Asking for a friend
Creating my own instance of IClickableMenu.
Most likely not you'd just low load a blank
why cant i just have a rat that gives you fun facts living in the cellar, unfair
Or cheat and temp map it 
Nah. I refuse to cheat that
You want the farmer's chaos put out in front view 🤝
It'd really just be for a personal date with spouses I've had on my backburner
Personal since cellar mods bad
For eventing that is
I will never ever do farmhouse/cellar maps
Smart. Speaking from experience.... :p
cellars are instanced i think so you might have trouble loading the events
but that's theory i don't know how they work really
Yeah I've just deemed it not worth my sanity to viewport that, unless I can remember how to hook the viewport on the player, but even then I can't configure all of the farmhouse interior mods to compensate
I remember this channel doing research a while ago and finding out that instanced maps actually can load events
I need to figure out the ingredient max on crafting... for reasons 
That or I become yet another cog in the machine of transpiling clickableCraftingRecipe
number of ingredients? there was that everything bagel mod that needed 1 of every item in the game
a practical limit probably doesnt exist
How does that come across in ui though
painfully
I imagine Not Great™️
Button the enabler made me think of terraria crafting for the ultimate trinket
wasn't it only if you used the unique instance name for the event file though. I don't remember even though I'm pretty sure I was one of the ones testing it lol
How does that even get exposed 
thanks past me
my memory is long lasting. it is just wrong most of the time
I mean I'm not one to talk clearly, you just corrected me with myself
important update: Woods, Backwoods, and Tunnel all have "ExcludeFromNpcPathfinding": true in their Data/Locations entries, which has the same effect, so Woods is still verboten (unless you patch it to false, of course)
I wonder how much mileage we can get out of a "framework" that justs adds the backwoods shortcut bridge by default and enables it for NPC pathfinding
Idk the market on npcs even though I'm making 22 of them
Where's npc georg @brittle ledge
Were over the holidays so people aren't as invested in making npcs anymore
What r some stuff a C# api for trinket tinker should have
The reasons why i didn't make a C# api so far is cus it's targeted for content packs
I honestly don't know what you'd expose that isn't available to the cp
And i been like "well that could just be a gsq/action/item query"
There's two NPCs that I know of in Backwoods (using 0 schedules or not leaving the map) and one in Tunnel
Most people steer away from it because of the pathing issue
Even the thing about hidden trinket equip would work well just as a trigger action i feel
oh, didn't the lorax hang out in Backwoods sometimes? or is that one of the ones you were thinking of
As a backwoods NPC modmaker, if you do decide to make a map connected to it, I'd reccomend using NPC only warps to the mountains/bus stop
But never try to actually put your NPCs in the backwoods
How do I convert from KeybindList to SButton?
(Didn't read backlog so hopefully this is useful?)
The Desert Festival chef giving us a dish that we auto-eat isn't a function we can use with CP, is it? I'm guessing that's another hard-coded sort of thing
I know stardrop gets auto munched
there's an event command to make the farmer eat or drink something but i don't think there's a trigger action
@uncut viper unless you put one in BETAS (feature request if you didn't)
Hey everyone! I'm new to modding and I'd like to edit some heart event cutscenes, how can I do that? I haven't found any tutorials online so I figured I'd ask here 😄
[[Modding:Event_data]] the wiki article on event data is pretty technical but it's essential reference material
Thanks, I'll check it out!



wow
