#making-mods-general

1 messages · Page 475 of 1

lucid iron
#

To double check that it's true

#

Also trying having the qualifier on ItemId (so (O) in front if object)

rotund egret
#

It worked when I copied and pasted the entirety of "Items" with this one entry added at the end.

#

I know I have this event marked as seen.

rotund egret
#

Any other ideas?

lucid iron
#

Did you check the Condition as instructed

#

It's just gonna say if that GSQ eval as true or false

#

If the gsq is True, then the next thing to do is patch export Data/Shops

rotund egret
uncut viper
#

did you Include this file?

rotund egret
#

Yep.

uncut viper
#

can you send the json with the include and this json via the smapi validator?

#

!json

ocean sailBOT
#

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.

rotund egret
uncut viper
#

okay, can you please send the json with the include and that json via the smapi validator?

#

its for us to be able to read it as much as it is for your own validation

rotund egret
#

Okay, sorry. I can't read apparently.

uncut viper
#

it'll change the url to a link you can send here

rotund egret
#

Give me a moment.

#

Thank you for showing me this one, it found an additional "s" in one of the fields.

#

I'll try now and tell you what happens.

uncut viper
#

oh, TargetFields vs TargetField, yeah thatd do it SDVpuffersquee

rotund egret
#

Makes sense since I initially used Fields.

soft lance
#

From what the Wiki states, it doesn't seem possible, however, was just wondering! ^^

uncut viper
#

the format on the wiki is the format you must use for gift tastes

soft lance
#

Does anyone else know a possible way?

obtuse wigeon
#

Forgive me if I'm wrong, could it point to the vanilla gift taste localised strings if you just want the default ones? I doesn't solve your issues entirely, but it does mean no translation needs to be done for them making it quite a bit easier? (and maybe copy pasteable)

dusky sail
#

are you adding gift tastes to a new npc or vanilla npcs

soft lance
dusky sail
#

then it's different from the wiki hold on

soft lance
#

Alrightyy

dusky sail
#

wiki is correct for gift tastes for a new npc by the way. just adding onto vanilla npcs without editing their stuff takes a different route

#

text operations...

soft lance
uncut viper
#

textoperations literally must still follow the gift taste format

rotund egret
uncut viper
#

editing individual fields doesnt change the fact that you still need to adhere to the format

dusky sail
#

well yeah. but the wiki not having an example of how it would be edited with text operations is whats causing confusion here i think

#

its editing fields within the format vs writing the entire format

dusky sail
#

and its text operations because you wanna add onto the list of items instead of replacing it. otherwise its really similar to any other nested data replacement

soft lance
#

Because I'm practically pretty new, lol

#

So what you are telling me is like foreign language

#

Or, could just be the code verbiage, likely, but I'll eventually learn

dusky sail
#

im not sure if im using the right words half the time. i just know that this is possible and the wiki doesnt have a listed example is the gist of my knowledge

soft lance
#

Understandable, and thank you for telling me also

dusky sail
#

im also sorry for speaking out of turn, button. i just saw confusion happening and wanted to clear it up but i fear i made it worse

soft lance
# dusky sail im also sorry for speaking out of turn, button. i just saw confusion happening a...

I notice some people, not many but some do only point to Wikis, more of the seasoned developers here, and I get that many are used to hearing it all the time, and wanting to point to a wiki so that they don't have to keep re-explaning. However, we get many new programmers, and sometimes, Wikis are both overwhelming, and complicated to new people. We don't have YouTube tutorials either (Stardew gets many changes, so videos would go out of date, so that's why we don't got too many)

So, a lot of them would often need explaining, and sometimes others who have been in this field for a while start to become out-of-touch with explaining it from a very newbie-friendly level, because they pick up more coding-related verbiage, tactics, and develop a more wide understanding of what is what, and hands-on experience, or some just are tired of it, which is understandable, to a degree.

What you said isn't causing any confusion, and if it did, totally fine, as we're all learning here! And, if I may ask, what are these text operations? Is this some verbiage for a string for a specific context?

dusky sail
#

well the wiki is full of very useful information. its just knowing how to read that info that often catches newbies

soft lance
#

So, wiki's cannot fully explore everything, it would be very hard to cover all of that in one site altogether

#

And, verbiage does often take time to catch on ,as well as code structures, patches, etc

stray hemlock
#

I might be wrong, but this might work (I haven't tested it):

{
   "Action": "EditData",
   "Target": "Data/NPCGiftTastes",
   "TextOperations": [
      {
         "Operation": "Append",
         "Target": ["Fields", "Robin", 1],
         "Value": "308",
         "Delimiter": " "
      }
   ]
}
#

Assuming I interpret "The key for each field is the field index (starting at zero) for a slash-delimited string" correctly.

#

This adds Void Mayonnaise as a loved gift for Robin.

#

If it works.

uncut viper
#

the wiki for the vast majority of its pages does not provide examples on how to do content patcher edits to things because it is not a content patcher wiki. its a general purpose wiki for documenting game information that is applicable to all mods and frameworks and not just content patcher

obtuse wigeon
# soft lance I notice some people, not many but some do only point to Wikis, more of the seas...

Both the regular wiki and the modding wiki is written with thought for beginners and newbies, tools to help write mods are also given free of charge like the json and manifest validators on smapi.io, the docs for content patcher are also written with beginners in mind, these are the reasons people send others to the wiki, they are there to replace explaining things, while here it's for questions when you get stuck and have exhausted to resources already available.
Most mods are almost always made because it's a hobby, explaining the same principles over and over and over takes the fun out of the hobby and really tires people out, this is by far one of the easiest games to mod because of the community but expecting anyone to drop things to just to personally see to someone instead of that someone reading the wiki is taking advantage of the generosity of the community

gentle rose
# soft lance I notice some people, not many but some do only point to Wikis, more of the seas...

I think assuming people are owed having a tailored explanation in the first place but saying "some people are burnt out and that's fine" is the problem here

this hobbyist community already spends so much time teaching and writing resources, a wiki to allow people not to spend even more time repeating themselves is the best possible solution, and the fair response to the amount of effort people put into creating resources is to put effort into trying to read them and then asking for help about things that are still unclear.

oh, and not thumbs down reacting the messages of those trying to help you.

stray hemlock
uncut viper
#

because as just mentioned, those are content patcher docs. the stardew valley wiki is not a content patcher wiki

#

content patcher is just a mod

stray hemlock
#

Yeah, true.

gentle rose
uncut viper
#

if you want to know how to make edits to something with content patcher, you look at the content patcher docs or the stardewmodding.wiki.gg if they have a tutorial for it. if you want to know the format of what you're editing and what the data even looks like, you look at the stardew wiki

#

the content patcher docs arent going to tell you how gift taste data is formatted. but it will tell you how to edit the asset that holds that data

gentle rose
#

generally,

game information and basic getting started info: base wiki
framework usage information: framework docs
tailored tutorials combining multiple sources of information and specific examples: modding wiki

everything has a place where it best belongs

stray hemlock
#

Useless hallucinations that have absolutely no learning effect: AI

gentle rose
#

absolutely

humble timber
#

hey now ai doesnt hallucinate. it just always gives an answer whether right or wrong

uncut viper
#

(and as always its good to remember that "framework usage/framework docs" includes content patcher bc it is, after all, just a framework. its an important framework, but still a framework)

stray hemlock
#

AI is a perfect example of the Chinese Room metaphor.

humble timber
#

shoutout framework docs forreal

soft lance
gentle rose
uncut viper
#

wasnt the yaml one just an addon?

#

i thought it still handed control over to actual content patcher

gentle rose
#

no clue, I wasn't born yet back then

obtuse wigeon
#

ooo yaml 👀

humble timber
#

AI doesn't think tho. so it can't hallucinate. (i just have beef with people saying it hallucinates bc it doesnt... lmao)

uncut viper
humble timber
#

what is yaml

gentle rose
#

anything I make would make you grateful that the wiki and content patcher docs are as detailed as they are lmao

uncut viper
#

json but different

digital herald
#

i was thinking of yaml

stray hemlock
uncut viper
#

just another way to format your data

stray hemlock
#

I want a version of SMAPI that supports mods written in Brainf*ck.

spiral lion
#

yes please! 🙂

digital herald
#

It is as hard as json, just less wiggle brackets

wind raft
#

Omg I finally married Harvey

humble timber
#

i really need to note down what frameworks my expansion is gonna need...

gentle rose
obtuse wigeon
#

(YAML is designed for Human Machine communication where as JSON is primary designed for Machine Machine communication while still be human readable right?)

spiral lion
#

Hello, again!!
Does anyone know how "Lance Scheduele" item is coded? 🙂

uncut viper
#

JSON:

{
  "Format": "2.8.0",
  "Changes": [
    {
      "Action": "Load",
    }
  ]
}

YAML:

Format: 2.8.0
Changes:
- Action: Load
 ...
humble timber
lucid iron
#

What about toml

stray hemlock
gentle rose
gentle rose
wind raft
#

Wait guys I have a question

I’m a newbie to SDV(kinda), I started playing in 2017, but wasn’t serious.

So what do I do if I have one ancient seed and one star fruit, how do I produce more?

uncut viper
#

json afaik was designed for human readable data that can be transferred between computers

obtuse wigeon
uncut viper
stray hemlock
wind raft
#

Let me find where to type then

obtuse wigeon
gentle rose
uncut viper
#

you probably want uhh. whats it called. i actually dont know whqat the right channel is named sorry-

gentle rose
uncut viper
#

(i have every channel except the modding category and #modded-stardew muted/hidden...)

lucid iron
#
Format = "2.8.0"

[[Changes]]
Action = "Load"

[[Changes]]
Action = "EditImage"
#

I hate it i think

gentle rose
#

I know I hate it

obtuse wigeon
uncut viper
#

on the other hand, it'd make it a lot harder for people to do the classic "put a patch outside their changes block" error

gentle rose
#

it will introduce some fun new errors instead

uncut viper
#

i think that could actually be a pretty good format for new modders tbh

humble timber
brittle pasture
#

indentation as syntax still feels wrong to me even if it's more Intuitive to the average newbie

stray hemlock
#

Is there something like JSON but pythonic? Like, no {}?

#

And not YAML?

obtuse wigeon
#

Python

gentle rose
#

toml like chu said maybe?

obtuse wigeon
#

you never said it had to be supported by SMAPI

lucid iron
#

Tbl toml would be good if cp had like

#

Separate lists of actions

uncut viper
#

like instead of everything in [[Changes]] itd be like [[EditData]], [[Load]], etc?

gentle rose
#

oooo someone made PON (python object notation). terrible

brittle pasture
lucid iron
#
Format = "2.8.0"

[[Load]]
Target = "blahblah"

[[EditImage]]
Target = "LooseSprites/Cursors"
#

Imagine

uncut viper
#

theres somethin there i think

#

i dont wanna make TOML Adapter tho

#

abandon DISCO and switch to TOMLCP please chu

dusky sail
#

Please dont make me learn a new format im barely getting by as it is 🙏 /silly

uncut viper
#

thanks

lucid iron
#

But you can also be a crime lord and serde via python str() and ast.literal_eval

stray hemlock
#

To really throw newbies off we'd need to force them to use Vim.

uncut viper
#

any comments, selph?

stray hemlock
#

Let's trap them forever without exit.

lucid iron
#

Anyways my next project will be Parquet for Content Patcher

uncut viper
#

is that a bird

lucid iron
#

Big Data is the future past

brittle pasture
#

uh I'm on my toilet and was switching between discord and brainrot videos every 5 second what do you want my comment on

ornate locust
#

Take it back to my Petz days, somehow force people to hex edit Stardew

gentle rose
lucid iron
#
Parquet

Apache Parquet Documentation Releases Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval. It provides high performance compression and encoding schemes to handle complex data in bulk and is supported in many programming languages and analytics tools.

gentle rose
humble timber
#

have yall seriously gotten people using google docs or some shit in here lmao

obtuse wigeon
dusky sail
#

If microsoft office weren't a paid service id take "write a mod in word" as a challenge

brittle pasture
#

we had someone inadvertently post rtf text before

gentle rose
#

what even supports rtf nowadays

lucid iron
#

Doesn't every text editor that's not notepad do

uncut viper
#

reset terrain features? its on github

lucid iron
#

I have no clue how rtf software devs put comments

stray hemlock
lucid iron
#

Perish.

gentle rose
#

70kb, could very well be an empty docx

uncut viper
#

it aint

#

i feel like you're doing your event handlers way incorrectly

gentle rose
#

or isn't it? only one way to find out

humble timber
#

BANNED.

obtuse wigeon
uncut viper
#

we're finding out in real time how many of us would unintentionally open malware if we thought it was just part of the bit

obtuse wigeon
#

I had to open a new google docs file to open it, || so much effort for THAT || XD

soft lance
gentle rose
stray hemlock
brittle pasture
#

I clicked the link without thinking because I know I would be safe ||I use Linux btw||

uncut viper
#

(/lh)

stray hemlock
#

I switched to Artix because I hate systemd

#

And then bricked my system.

humble timber
#

i need to switch to linux but my art programs ..... agony

soft lance
obtuse wigeon
soft lance
stray hemlock
gentle rose
brittle pasture
#

ah Kali Linux, whose userbase consists of 5% actual pen testers and 95% kids who want an xtreme hackerz distro

soft lance
humble timber
soft lance
obtuse wigeon
#

not officially, but making it free has helped the Affinity on Linux community group get it working

soft lance
lucid iron
#

If u can learn krita on windows

humble timber
#

granted thats mostly just bc nobody even bothers trying

lucid iron
#

Then u can switch

obtuse wigeon
#

some people have affinity working great, others like me have a few issues, I think my issues have been solved I just haven't tried installing it again

uncut viper
#

as a more on topic aside, i am once again faced with my worst rival: mod page thumbnail...

humble timber
#

rip

#

so real tho

lucid iron
#

Imagine putting anything other than the One True Emotr

gentle rose
#

you aren't meant to main Kali, it's meant to be run from external media and regularly wiped

lucid iron
brittle pasture
#

when in doubt I grab random sdv sprites and put glowing red eyes on it

uncut viper
#

all of modern technology and science still has not figured out the best way to design a thumbnail for a framework that doesnt add its own content

gentle rose
#

I just need the name

lucid iron
#

Add SDVdemetriums hy default then

uncut viper
uncut viper
gentle rose
lucid iron
#

Button does that mean u need ur own map stuff framework now

gentle rose
#

(/lh to all of this)

lucid iron
#

MASC

brittle pasture
gentle rose
#

Map Action Spiderbuttons Cacaw

uncut viper
#

i do not want anything to do with anything MASC

soft lance
#

Is Affinity coming to Windows 95?

#

wondering so I can daily drive it on 95

uncut viper
soft lance
soft lance
uncut viper
#

maybe i dont know enough about event commands to know if thats actually possible

lucid iron
#

Everyone's a Character in an event

#

Although

#

Can u emote on temp actors like horse

uncut viper
#

thats what i mean, i know everyone is a Character, just dont know if non-NPCs or farmers can actually be targeted

#

despite that i copied the appropriate offsets for Childs and Pets anyway 🤷‍♀️

lucid iron
#

Well I think children can do emote cus they go heart_emote when u pet them

uncut viper
#

i know they can emote. i dont know how you target a child in an event to make them emote

#

i just copied the vanilla Emote command basically 1:1

lucid iron
#

I think u use the literal player given name but

#

Child can only be in a event in festivals i thought

karmic gust
#

If I want a conversation topic to begin on a specific day of the year I would use the DayStarted trigger, right?

lucid iron
#

When i tried to add a Child to event through spaget they move around very fast

#

And also stop moving for reasons

uncut viper
#

sounds like real children

karmic gust
#

Ty!

uncut viper
#

with an appropriate GSQ condition

karmic gust
#

GSQ instead of When?

uncut viper
#

yes, absolutely

lucid iron
#

Anyways i decided to not do the Child in event spaget in my kids mod so ur demetriums framework is safe from me

karmic gust
#

Okay, thank you (again) 😅

pulsar tangle
#

Hey guys, I'm making a custom NPC and I'm trying out all the different data features that are possible for their disposition. HOWEVER, I cannot for the life of me figure out how to get "SpouseFloors" and "SpouseWallpapers" working! The wiki suggests that this feature would allow my NPC to randomly plaster wallpaper and flooring in the farmhouse, but I can't find any information anywhere on how to select which wallpapers/flooring. Can anyone help a poor soul? It's very important for my health that my NPC spams the skeleton wallpaper everywhere.

uncut viper
#

my framework would handle it if you got them in the event!

lucid iron
#

I don't think that's dehardcoded yet is it?

uncut viper
#

spousefloors and spousewallpapers are lists of floor/wallpaper IDs respectively

wind raft
#

Can you get mods on a switch?

#

Or no

obtuse wigeon
#

No

#

is the short answer

uncut viper
#

short answer: no
long answer: very slightly technically yes, but pretty much no

obtuse wigeon
#

nooooooo is the long answer and it has caveats

uncut viper
#

i dont know if they need to be qualified or unqualified

pulsar tangle
#

Thank you, I will try it >:) Absolutely no clue how to test if it works, but I will definately try it

uncut viper
#

i only know of one person who has modded the switch and it was very incredibly limited, basically just to the most basic of xnb mods iirc

lucid iron
brittle pasture
#

speaking of Switch mods I wonder if Valve's upcoming thing of running x86 executables on ARM might allow for a very scuffed version of SMAPI running on Linux for Switch

wind raft
uncut viper
#

chu is right that modded-stardew would be the right place to go for switch mods, but unfortunately there just aint any

lucid iron
#

I think this is still under the technically yes but no bucket

brittle pasture
#

like Valve is confident enough the Frame has enough horsepower to run some games standalone despite the ARM translation

lucid iron
#

But hey the 6 modded switch sdv 1.5.4 players can finally try 1.6

humble timber
#

im tempted to tell my cousin about how to mod sdv on the switch since he has one that can be modded. just to see how incredibly scuffed it gets. lol

brittle pasture
#

6 might be generous, probably just 2: Pillow and Pillow's other device

humble timber
#

LMAO

wind raft
#

I wish I could mod my switch SDV farm SDVpufferwaaah

#

Bc they’re all so cute

humble timber
#

just abandon switch like i did

wind raft
#

I’ll find my way to make my farm cute without mods 😼

uncut viper
#

i recall one other person a long time ago coming in here with some very scuffed looking json or something that turned out to be switch modding stuff I think

wind raft
obtuse wigeon
lucid iron
#

Yeah tbh if u have a PC just buy the game there

brittle pasture
#

I recall it was a map dumping thing

stray hemlock
brittle pasture
obtuse wigeon
#

ye I was gunna say apple isn't the most friendly to devs either XD, I very much like how Valve has handled the making of compat layers (this is offtopic now so I will probs move else where if it continues XD)

lucid iron
#

Bless every game dev that gib native linux build

#

Even with proton being a thing now

soft lance
hollow root
#

I can’t use Linux because I’m a music producer and FL Studio does not play nice with it, otherwise I’d make the switch immediately

iron ridge
#

oh that's fun there's a person doing switch celeste modding

#

and has gotten further than me with sdv

stray hemlock
pulsar tangle
#

LMMS also works for linux

humble timber
stray hemlock
#

The big issue is that plug-ins often aren't compatible either.

humble timber
#

eugh yeah

tiny zealot
#

(ableton is not linux friendly)

humble timber
#

rip.

#

digital artists 🤝 music producers
Please Just Make Shit Work On Linux

tiny zealot
#

it is, perhaps not surprisingly, tricky to do

humble timber
#

yeah katded

lucid iron
#

I have given up making gmcm close itself so my next plan is draw black box over it

blissful panther
#

REAPER, too.

pulsar tangle
#

That is, assuming i got the wallpaperid correct, i put it as 47

soft lance
# dusky sail wiki is correct for gift tastes for a new npc by the way. just adding onto vanil...

I know this is an older message, though, when we were mentioning gift tastes, does Stardew Valley Expanded achieve what I was trying to achieve?

This (from my limited knowledge of modding) appears to be telling the vanilla NPC if it likes it or not without adding custom dialogue? I assume its going to a fallback dialogue of liking the item, just checking if this seems like it's related! ^^

gentle rose
#

in terms of reading this

soft lance
#

And from reading on SVE, this seems to be an attempt they made

#

Though, i was just checking if that looked right or if I wasnt reeading it right lol

gentle rose
soft lance
#

since i was gonna do the same for my mod

stray hemlock
soft lance
gentle rose
#

well without reading through it in detail, this seems like a text operation on the NPCGiftTastes asset. in terms of what exactly it's achieving, your best bet is to consult the wiki and content patcher docs to see if it's editing what you think it is, since just copying it without understanding is likely to go wrong

soft lance
#

totally my bad

#

i'll read that and then try it

#

ty serenity! and sorry for not catching that earlier

stray hemlock
#

At home I can look up the numbers for other categories.

merry river
#

here i am again, having questions about questions.
which of the question commands do I use in the event script if I want to make something like this:

question
a) selection A -> leads to answer from NPC -> you return to the question "menu" to select another option
b) selection B -> see above
c) selection C -> continues event

#

basically I want to loop back to the question until the player chooses the option to continue with the event

urban patrol
# merry river here i am again, having questions about questions. which of the question comman...

(obligatory mention that all of these will be replaced with GOTO in 1.7, whenever that occurs) i find that using quickQuestion in conjunction with switchEvent is most easily understandable at a glance! you just have to make sure that your first command in the switched-to-event is pause 1 to prevent things like infinite dialogue. if you want a (more complicated) example, i have an event sort of like that you could look at

merry river
urban patrol
uncut viper
urban patrol
#

in this case i have multiple forks, with two different outcomes, but yours would be much simpler (probably three? two of which lead back to the third, the third of which ends the event)

merry river
urban patrol
# merry river thank you so much, I'll take a look at it!!

actually screw my example i found a perfect template on the modding wiki

  "LogName": "ALWAYS PUT YOUR LOGNAMES, ALWAYS.",
  "Action": "EditData",
  "Target": "data/events/Farm",
  "Entries": {
    "{{ModId}}_Heart0/": "continue/64 15/farmer 64 15 2/pause 300/switchEvent {{ModId}}_Looping",

    "{{ModId}}_Looping": "pause 300/quickQuestion {{i18n:3QKEY}}(break)switchEvent {{ModId}}_Answer1(break)switchEvent {{ModId}}_Answer2(break)switchEvent {{ModId}}_Answer3",

    "{{ModId}}_Answer1": "pause 300/message \"{{i18n:Speak}}\"/pause 300/switchEvent {{ModId}}_Looping",

    "{{ModId}}_Answer2": "pause 300/message \"{{i18n:Hear}}\"/pause 300/switchEvent {{ModId}}_Looping",

    "{{ModId}}_Answer3": "pause 300/end",
  } //close your entries
} //close your editdata```
merry river
#

oh!! thanks for pointing this out to me, you're truly the mvp of my mod making progress

urban patrol
#

i stand only on the shoulders of mod authors who came before me lol. good luck!

stray hemlock
#

I really find the expression "to stand on the shoulders of somebody" weird, because if I imagine somebody standing on my shoulders it doesn't feel like they're paying respect to me.

ornate locust
#

It's to "stand on the shoulders of giants", therefore becoming super tall despite your relative-to-a-giant modest height.

#

so you reach a great height because of the contribution of others

urban patrol
#

i never knew that was the etymology of it! i always imagined it like this:

#

where the sum of the whole is greater than the parts

ornate locust
#

"if I have seen further than others, it is by standing upon the shoulders of giants"

#

Newton coined it

blissful panther
#

(Meanwhile, we do all of our science from scratch.)

ornate locust
#

The "giants" bit is where the respect is, it's saying that others had bigger contributions than you.

stray hemlock
urban patrol
#

it's just a metaphor haha

stray hemlock
#

Metaphors are weird.

ornate locust
#

good conversation killer.

tardy shadow
#

What is the best programming framework for stardew valley script mod? Is Model Views Presenter framework good?

urban patrol
ornate locust
blissful panther
#

It's definitely not that for SMAPI mods. The general flow is:

  • SMAPI loads all C# mods, and calls their Entry() methods.
  • SMAPI provides various events you can register callbacks for.
  • SMAPI calls these when relevant, and either in the Entry() method or in those callbacks are 100% where your mod code happens.

A little caveat being that you can Harmony patch other methods, and those obviously run outside of any of those as/when they should.

tardy shadow
blissful panther
#

Best practice is to stick to SMAPI's events where possible. Outside of that, you can apply whatever patterns fit.

tight rivet
#

you can generally get by without any design patterns

#

unless what you'er doing is very complex

stray hemlock
#

I gotta be honest, I have absolutely no idea what the difference is between MVP, MVC and MVVM.

tight rivet
#

they are all designed to hurt you [/runs]

stray hemlock
stray hemlock
#

If you put ten software architects into a room and have them discuss what the Model-View-Controller pattern is, you will end up with twelve different opinions.

grand badge
#

hi my mod for replacing the galaxysword and infinity blade didnt seem to work could someone check my code for me?

#

ok idk what this means

urban patrol
#

at the beginning of the file it looks like

grand badge
#

the json part?

obtuse wigeon
#

Remove the ```json part

grand badge
#

ok thanks

urban patrol
#

and at the end too

obtuse wigeon
#

that's only for discord when pasting json stuff, it highlights with the correct syntax

grand badge
#

that didnt work hmm

urban patrol
#

you just have it set to manifest

grand badge
#

manifest is a seperate file

urban patrol
#

set it to content patcher

grand badge
#

ok

#

nothing is wrong here so why doesnt it work

urban patrol
#

!log can you please share a log after you load a save

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

grand badge
#

ok

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.

obtuse wigeon
#

It doesn't show your mod in the log, have you got it in the mod folder?

grand badge
#

yes

obtuse wigeon
#

you also need the content patcher mod, I don't see that in there either

brave fable
grand badge
urban patrol
#

is your SMAPI in the correct location?

obtuse wigeon
grand badge
urban patrol
#

your log says that no mods were loaded besides the ones that are bundled with SMAPI

obtuse wigeon
#

Then SMAPI is launching with mods in the wrong place, right now it's looking for \AppData\Roaming\Stardrop\Data\Selected Mods and not Stardew Valley/Mods

grand badge
#

oh shoot

#

havent used my pc stardew save in a year

lucid iron
#

does Saving/Saved only run on the main player

grand badge
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.

obtuse wigeon
#

It's still not loading with all your mods, it is looking in C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods now though

grand badge
#

before you ask i used an old save since it was the only one that had the galaxy sword

obtuse wigeon
#

Whats the full path of your mods folder? (you can click on the top bar in the file explorer to show the full path, then copy and paste it here)

grand badge
#

ok now i got it

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

obtuse wigeon
#

Now they aren't loading because theres multiple copies of the mods in your Mods folder

grand badge
#

ok lemme fix this

royal stump
grand badge
#

ok all my other mods worked but my one this time

#

i can tell cause my player was miku this time

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 20 C# mods and 18 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

grand badge
#

please let this be the last one

urban patrol
#

can you show us your manifest using smapi.io? it says it has errors and thus can't load

grand badge
#

sure

obtuse wigeon
#

You're missing a } at the very end of the manifest

urban patrol
#

you need to close the whole thing with }. also, before you upload this to nexus, the format for the update key is incorrect

#

but that can come later

grand badge
#

woohoo there we go

grand badge
urban patrol
grand badge
#

like mod name or?

urban patrol
#

no literally exactly like that, but replace the number with your unique number from you nexus mod page

uncut viper
hallow prism
#

three letters acronyms?

iron ridge
#

Totally literate aliens

gentle rose
#

Terms and License Agreements

brave fable
uncut viper
#

i don't think it counts as padding a TLA with it if it's not a TLA until l do it

brave fable
#

well as far as i know there's no word for a backronym that's specifically trying to make it a tla

uncut viper
#

just called a backronym with a goal innit

#

you're gonna hate my eventual RTF replacement mod then

brave fable
#

surely we can do better than Monsters The Framework

#

nevermind. maybe we can't SDVdemetriums

uncut viper
#

(it'll be four letters though)

drowsy pewter
#

does anyone have any ideas about how to get a foraged item to stop having quality or quantity modifiers on it

astral crater
#

Do anyone know a mod that doesn't skip the fishing mini game

#

But like it beats it

brave fable
astral crater
#

Whoops

#

I can't read 😭😭

hard fern
#

We make mods here, we don't play the game XD

astral crater
#

😂😂

drowsy pewter
tiny zealot
obtuse wigeon
#

It's usually the case XD (also "cornucopia stardew" is the 3rd most searched result after inputting cornucopia into google, a whopping 3 places above the actual "cornucopia horn" search)

drowsy pewter
#

damn right

tiny zealot
#

like i think quartz and so on used to be able to have quality and it got turned off, so there's probably some function that's like "if quartz, remove quality on pickup", so i imagine you could hook into that and just add your thing to it (the aforementioned bullshit)

obtuse wigeon
#

Out populared the item that's a major marketing peice, that's how you know you've made it XD

brave fable
#

alas personalised search results, cornucopia the sdv mod is only on page 4 of my google results

drowsy pewter
#

where does the cornucopia game come in

brave fable
#

and even then only the wiki, nexusmods nowhere to be seen

obtuse wigeon
obtuse wigeon
brave fable
#

you've got to somehow beat out björk and a lot of historic precedent if you want top billing

obtuse wigeon
#

beating bjork would have to be a feat and a half XD

hard fern
#

First result

uncut viper
#

you could technically do it with BETAS but the reason i didnt say so to begin with is bc its a horrible idea to do it with BETAS. but you could.

#

itd just involve scanning every single item in the world every time you forage a whateveritis

obtuse wigeon
#

Oh wow that certainly is a horrible idea (no hate towards BETAS I promise)

uncut viper
#

why would i take it as hate, its very much not the sorta thing the traction in question is meant for

obtuse wigeon
#

I'm tired and don't have the abilities of a wordsmith and defo didn't want it to come across as hate thats all

drowsy pewter
#

Because if so I will do that

uncut viper
#

yeah, the uhh ReloadItemField traction

#

if you're fine with the potential lag that comes with. i guess its not so bad if you check if the item actually has a bigger stack or quality first

#

this is assuming you want no instance of this object in the world, anywhere, to ever have quality or stack size

brave fable
#

so what is the actual issue with having foraged items picked up with an added quality or quantity

drowsy pewter
#

I can check for quality when picked up; not totally sure yet about checking for item stack size in case the player has more than one in their inventory already. BUT it would be helpful for another item which should only be able to be obtained once (but people keep reporting it as a bug).

The player is able to obtain up to 40 of these, about two or three per week

uncut viper
#

definitely dont reload the stack size then

#

since it doesnt only work on the players inventory

#

it looks literally everywhere in the world in every chest, every inventory, every fridge, even your horses hats if necessary

#

you'd be resetting any saved up stacks to 1

drowsy pewter
brave fable
#

well surely there's an issue being reported in the bug report

drowsy pewter
#

the player would likely use them right away, but I agree I wont edit the stack size

#

just immersion i guess

uncut viper
#

honestly it might just be better to remove the item and regive it tbh

drowsy pewter
#

I think that would make two popup boxes

brave fable
#

it's not unheard of in the base game to have multiple of linus' berry baskets, i'd just accept it as a quirk of the game

uncut viper
#

where would the popup box come from

drowsy pewter
#

does regiving an item not give a popup box?

#

I'll see

uncut viper
#

giving an item in general doesnt give a popup message or anything

#

if you're doing it via the vanilla AddItem traction

drowsy pewter
#

anyways blueberry i mean yeah but also that doesnt stop people from commenting on it lol

#

I see, maybe regiving it is better. I'd have to make sure I check the stack size on pickup though in case the player obtains two quality items

brave fable
#

then i mark 'not a bug' and close it 🙂‍↕️

uncut viper
#

yeah you can just use two different tractions for it, one checking for 1 stack size and one checking for 2

drowsy pewter
#

this isnt too bad

uncut viper
#

though if you're only giving back 1 in both cases then you can skip the 1 stack size check idk why i said that

#

wait no im silly you still need the 1 check

#

so you know to only remove 1

drowsy pewter
#

the other one is dropped from chickens, I guess i cant do anything about quality on that one since people might have autograbbers instead of picking it up

#

But its fine

#

Duplicate quest items is the bigger issue for that

brittle pasture
#

(somewhat related note and apologies for interrupting but I still have yet to figure out why every foraged items still have quality even though in theory it should only apply quality if isForage is true)

#

(I'm sure I'm missing something but idk where)

#

(for the double harvest thing my only unhelpful note is that 1.6.16 has the ObjectIsQuestItem field in item queries which can stop it)

drowsy pewter
#

1.6.16 promised me working museum exclusions too

uncut viper
#

whats not working about them right now

brittle pasture
#

undonatable minerals still show up in the collections menu, permanently greyed out

uncut viper
#

oh. so not a problem with the museum exclusion itself, just the collections menu

brittle pasture
#

otherwise the exclusion part works

uncut viper
#

yeah i knew about that i just thought it was meant that things werent excluded from the museum correctly

brittle pasture
#

another question I got while looking into the collections menu code: what (do you theorize) is this thing next to bread on springobjects

obtuse wigeon
#

the first pancake on shrove tuesday

uncut viper
#

bread (unleavened)

brave fable
#

also bread

brittle pasture
#

hmm
it's specifically excluded from cooking perfection, but it doesn't exist. the phantom of the kitchen

brave fable
#

.img white vienna loaf

tiny zealot
#

My First Croissant

drowsy pewter
#

ah, removeitem will of course only do the first item in your inventory. not necessarily the one you picked up

brave fable
#

not the best image it could've given

obtuse wigeon
#

pretty decent loaf that is

brittle pasture
#

to exist only as a ghost in the codebase...

obtuse wigeon
#

certainly not the only ghost in the codebase

drowsy pewter
#

also sigh, i forgot to exclude the piers from the beach forage spawning ranges

obtuse wigeon
#

thank you for the idea of limpets spawning as forage on the piers

drowsy pewter
#

i would love that

brave fable
#

a fine way to harvest mussels without pots

obtuse wigeon
#

theres not enough specific forage that only spawns in mainly unused locations imo

#

Oh I hate pots thats an even better idea

brittle pasture
dusky sail
#

another shape of bread

obtuse wigeon
brave fable
#

i can only wonder why ape went with the long baguette bread

#

i can understand for bruschetta, maybe for stuffing, but burger

#

wow. i never knew leah hates bread

#

maybe it's best we didn't get married

obtuse wigeon
#

the issue is when you split bread into "bread" and "bap" you then have to worry about the different names in english alone for bap, barm cake, flour cake, roll, bap, brioche etc, bread is so much easier XD

brave fable
#

of all of these, baguette is somehow the most specific bread

tender bloom
#

Bap also isn’t used in the US

tiny zealot
tender bloom
#

We would say bun I think based on GBBO??

#

Like a hamburger bun seems to be a bap in the UK

obtuse wigeon
#

bap isn't used in the US? wow I had no idea, I don't the the UK uses bun? if we do I haven't been where it's used

brave fable
#

i'm sure bun is used in the south

#

maybe more often as a teacake though

obtuse wigeon
#

A teacake is a biscuit with marshmellow covered in chocolate, different to a smore

dusky sail
#

yeah as an american i have no idea what bap means

brave fable
#

well a tunnock's teacake sure, but i mean more generically as a cake served at tea

obtuse wigeon
#

tunnocks teacakes, lovely things

#

but.. bap isn't cake... same way a load of bread isn't cake

brave fable
#

well a bap sure, but i said a bun SDVdemetriums

#

and herein lies the problem when people assume english is english is english

obtuse wigeon
#

english is already a pain at times XD

brave fable
#

wars have been fought and lost over tea and cake

obtuse wigeon
#

A LOT of tea

#

even then boston harbour was quite a weak brew

tiny zealot
#

(wiktionary)

obtuse wigeon
#

Ahh ye just remembered about iced buns, which are cakes, whoops

tender bloom
#

a bun is two things in the US, it's a sort of round roll like for hamburger buns and a sweet round-ish bread roll like a cinnamon bun

uncut viper
#

also a small rabbit

#

the most important kind of bun 🐇

tender bloom
#

true!!

drowsy pewter
#

what an ominous spawn location

#

YES I got it to work with minimal amounts of jank

tardy shadow
drowsy pewter
#
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 1",
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 2",
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 3",
"Spiderbuttons.BETAS_DelayedAction \"AddItem Cornucopia_LostPage_InlandSea\" 20"```

Wouldnt work if I did RemoveItem on a stack of two, nor if I did AddItem immediately after removing, so...
#

Now that I have a stat to track the # of quest items the player has obtained, I'm puzzling over how to make a shop sell any one of the last two quest items a player needs, but not both at the same time SDVpufferthinkblob

uncut viper
#

give each quest item a special context tag like "to_be_obtained" and remove it when the player has gotten that item
then you can use that context tag in a peritemcondition for a shop entry that only sells 1 thing

drowsy pewter
#

Oh shit

#

You're a genius

uncut viper
#

(or the inverse, give items a context tag when obtained and use the !contexttag syntax in the peritemcondition)

drowsy pewter
#

thank god that means i only need to have one shop entry as well

uncut viper
#

downside: the context tag removal/adding would only be able to happen at the next CP update, whenever that is

#

may or may not be an issue

drowsy pewter
#

i dont think so? it works now

#

I do cp tag manipulation all the time

uncut viper
#

if your patch no longer applies the context tag then a shop wont know that until the next updatecontext

drowsy pewter
#

Ahhh okay

uncut viper
#

i.e. if i get Quest Item #6 and then immediately go to this shop, it can still sell #6 until the next morning (or timechange or locationchange)

drowsy pewter
#

I think I'm okay with that caveat

uncut viper
#

(assuming #6 was one of the last two etc etc yada yada)

#

yeah its not a big deal i just like to mention any deals i can think of

drowsy pewter
#

no its a good point!

#

Here's my horrendous shop entry conditions rn, which only accounts for the very last quest item a player can collect. theres 12 near identical entries to account for each item lol

uncut viper
#

ill be honest im way too deep into antihistamine hell here for that amount of text so i will just say good luck i think

#

(which is also why i can be no help for that removeitem stuff right now, apologies)

drowsy pewter
#

Good luck with your evil particles thing

#

Haha its fine it works now

#

no point digging unless a C# person really cares about removeitem mechanics

obtuse wigeon
heavy pewter
#

Guys, does "Include" works the same as '"using" in c#? Can I Include a JSON full of dynamic tokens and call it in the main JSON file?

vernal crest
#

You can only create dynamic tokens in your content.json

obtuse wigeon
#

Dynamic tokens and config (and it's tokens) can only be in the content.json, but otherwise include does work like "using" in C#

brave fable
#

i'm not sure if you can really call Include and Using similar in any context, all that Include does is (essentially) collate the Changes from your included file into the total list of Changes in your content pack

uncut viper
#

nothing in CP json is really analogous to anything in C# except for the concept of patching things

#

syntax wise its not analogous

lucid iron
#

i was thinking about the editimage mask thing

#

would that be more perf purpose of editing cursors?

#

if it exist then would only need 2 editimage even for oddly shaped ui bolbthinking

uncut viper
#

i think that was some of the reasoning for wanting it, to get out of targetarea hell

lucid iron
#

yea i do think there's general usefullnes in what is basically inverse of overlay

drowsy pewter
#

time for break the bass 3.0

brave fable
#

the inverse of over lay.... under stand

lucid iron
#

blueberry i cant believe i exist on the same dimensional plane as you

hard fern
#

bass 3.0? what did the fish do

urban patrol
#

how come i can set a dynamic token to do this:

    "Name": "PrepPhrase",
    "Value": "{{Random:Strings\\StringsFromCSFiles:Dialogue.cs.735, Strings\\StringsFromCSFiles:Dialogue.cs.736, Strings\\StringsFromCSFiles:Dialogue.cs.737, Strings\\StringsFromCSFiles:Dialogue.cs.738}}",
},

but not this:

    "Name": "MovieNightTitle",
    "Value": "{{Random: Strings\\Movies:BraveLittleSapling_Title, Strings\\Movies:Mysterium_Title, Strings\\Movies:JourneyOfThePrairieKing_Title, Strings\\Movies:Wumbus_Title, Strings\\Movies:ZuzuCityExpress_Title, Strings\\Movies:MiracleAtColdstarRanch_Title, Strings\\Movies:NaturalWonders_Title, Strings\\Movies:ItHowlsInTheRain_Title}}",
}```
#

(this is for use in schedule dialogue, and it's not a case of i18n, since i haven't done that to these strings yet)

plush vault
#

When using HasMod| conditions, is the load order relevant, or are HasMod| checks performed independently of the order?

drowsy pewter
#

independent

lucid mulch
#

what is the error message?

#

Technically HasMod needs to be first, but there is special logic in CP to ensure they always execute first regardless of the order you put them in

plush vault
plush vault
lucid mulch
#

error message was for nic

urban patrol
#

no error message, it just displays like this:

plush vault
lucid mulch
urban patrol
#

"MovieNight.000": "I tried to suggest 'A New Hope', but I was outvoted.$h#$b#It's not that old, no matter what they say! I remember when it came out!$7#$e#I guess '{{MovieNightTitle}}' is good too, though.",

#

inside of an edit to "Target": "Strings/schedules/CharlesRowland",

lucid mulch
#

don't you need [LocalizedText ] or whatever for it to pull from a strings file

urban patrol
#

ohhh probably, i think that's how i did it before

#

thanks, i totally forgot

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.22631.0, with 20 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

heavy pewter
urban patrol
heavy pewter
#

This is getting more exciting

urban patrol
#

there are also local tokens but do not ask me about them i don't even know what they do or what they're for lol

#

i just know they're useful

vernal crest
#

They are tokens that only exist in the patch they're defined in. If that patch is an Include, they exist for every patch inside that Include.

#

It lets you use the same token but give it different values. Useful for templating, like when you need to add many objects and add them to shops and so on. You only need to write one patch for the data/objects entry and one for the data/shops entry and you can reuse those two patches for however many objects you need to.

vernal crest
urban patrol
#

i'll try adding one just to test

#

i'm confused how it ever worked without it but chalk that up to Weirdness lol

vernal crest
#

Apparently I have not tested that. How strange.

urban patrol
#

i tested (on my old save, bc it's annoying to get him to this state) and he said the follow up automatically, but it's very possible that's because i had answered the question before on a previous day

#

i'd really like this question to repeat every week though, if that's possible

vernal crest
#

So the error went away when you added the followup?

urban patrol
#

a tentative yes, because the error didn't always show up before

vernal crest
#

Did it only show up after you had already picked an answer, the times that it did happen?

urban patrol
#

no, it was usually on patch reload (but not always)

#

also important to note is that the question was working correctly when i first started testing it, even though i did have the error

#

and i changed it a bunch of times (unfortunately don't remember what the different states were) but each time it was either 1) red error in log 2) no error, dialogue just displays ... 3) i18n error

#

i'm setting him up in a new save now

vernal crest
#

Am I remembering correctly that questions don't show portraits?

urban patrol
#

correct

vernal crest
#

Why have you got a portrait command in yours then?

urban patrol
#

welp good question

#

okay it seems like follow up got rid of the error permanently--i tested it two weeks in a row. unfortunately you can only answer it once though

vernal crest
#

Nah

#

I can help you make it recur

#

I just wanted to make sure that was the issue first

urban patrol
#

that would be awesome! however i do need to go to bed

#

i could ping you tomorrow? thank you so much for helping tonight

vernal crest
#

Okay, ping me when you are ready because the way to make it recur depends on what you want to do with the response IDs

#

(Otherwise I'd just leave it for you now to see when you got up)

urban patrol
#

will do! i can probably answer questions while i brush my teeth etc but i'll be shutting down the computer and on my phone

vernal crest
#

Oh ok I will ask then

#

Are you planning to use the response IDs for anything?

urban patrol
#

no, just flavor text

vernal crest
#

Will you ever want to check that the question has been asked, regardless of which answer was chosen?

urban patrol
#

nope

#

it’s just a daily dialogue

vernal crest
#

Ok, tidiest way then is to just remove the response IDs from the question (but not from the replies - that breaks it) like so:

I was looking for constellations last night and saw a shooting star. Pretty cool, huh?#$q MontyWishFallback#What would you wish for?
        #$r {{ModId}}_MontyWish1 0 MontyWishReaction1#More money.
        #$r {{ModId}}_MontyWish2 0 MontyWishReaction2#More time.
        #$r {{ModId}}_MontyWish3 0 MontyWishReaction3#More friends.
        #$r {{ModId}}_MontyWish4 0 MontyWishReaction4#I'm happy without making wishes

I am giving your response IDs your mod ID because they are global and therefore should be unique.

urban patrol
#

ohhhh neat, thank you! and whoops in regard to mod id lol

vernal crest
#

(Despite the wiki saying that the response IDs are mandatory inside the $q string, my testing showed otherwise. I was pretty thorough but I can't check the decompile to confirm my conclusions because I cannot understand the code for it lol)

urban patrol
#

honestly i trust you lol

late gull
#

wtf... copilot reenabled all its settings when i updated visual studio. didn't realize, clicked the copilot icon beside a warning in the error list wondering what it was and it proceeded to do this SDVpuffertroll

#

LOL

lucid mulch
#

And that's why you use version control like git

#

Very easy to undo the damage

late gull
#

i wouldnt be posting if i didn't, id be crying instead lol

vernal crest
# urban patrol honestly i trust you lol

If you decide that you want to add in a safeguard so that you can check if the question has been asked in future regardless of answer you can add a response ID to the question string that doesn't actually match any of the ones in the answers (e.g., {{ModId}}_MontyWish0). But you should also be able to check if the question has been asked by doing an OR check for the existing response IDs anyway.

urban patrol
#

good to know! ofc your suggestion has sparked a “hmm, what WOULD four different events based off this look like?” which i am certainly not doing lol

#

i’ve already been working on this release since june

#

but it wouldn’t hurt to build in anyway

velvet cairn
#

i'm updating my mods to start a new playthrough, and I wanted to get a matching obelisk for the DeepWoods mod
I found this one, though it is severely outdated now.
https://www.nexusmods.com/stardewvalley/mods/5016?tab=description
I updated the requirement tags to match the updated uniqueID, but SMAPI is saying it's not compatible? Anyone know why this might be?

gentle rose
late gull
#

I have no idea, I immediately reverted and disabled all the copilot settings again. Error generator indeed

stray hemlock
woeful lintel
#

Recommendation: don't use an ide with genAI integration (it's possible)

woeful lintel
#

vscodium is a classic since it has access to all vscode extensions

late gull
#

Oo thanks, I'll check it out!

brave fable
#

vscode in any flavour is still not necessarily a substitute for vs, though

late gull
#

I'm not familiar with vscode to be honest, I've only ever used vs and codeblocks

brave fable
#

jesus. codeblocks

#

it's been a while

#

vscode is really more of a feature-rich text editor than an IDE, especially for the purposes of SDV modding

stray hemlock
#

Me using Google: "visual studio c# alternative"
Google: IntelliJ yolo

brave fable
#

rider is essentially the only good alternative

#

helps it has a free version now! joy

#

but i enjoy the (at least a few years old now) intellij ide workflow/presentation/experience less than vs, and much less than vscode. for reasons i don't entirely know myself

stray hemlock
#

Only Europeans get that joke.

late gull
#

Looks like Rider's implemented an AI assistant in their ide as well

brave fable
#

well obviously. we're in the future

#

no first-party software would be seen dead without an AI prompt

#

i'm expecting discord to offer to write your messages for you before the end of the year

late gull
#

offer? How hopeful

#

Chances are you're just an AI discord bot already.

brave fable
#

you're absolutely right!

stray hemlock
#

Honestly, Vim. Or Emacs.

#

Granted, you only trade one problem for the other, but oh well...

gentle rose
#

chu writes c# in a non specialised ide and then compiles using dotnet, maybe I'll just find a way to get the code autocompletion in vim and use that SDVpuffersquee

gentle rose
stray hemlock
#

"Discussion about using VSCode as a replacement for VSCode..."

#

This is Discord's AI feature.

brave fable
#

incredible. groundbreaking. breathtaking.

humble timber
#

aaand this is how i learn about this lmao

stray hemlock
#

You need to enable it via mods. I did it because I was curious.

iron ridge
#

is it just an experiment?

stray hemlock
# iron ridge is it just an experiment?

It's been in Beta for more than a year. I don't know what they have planned. I think it's only enabled for some channels and the mod forces it for all (all that aren't marked as mature, that is).

iron ridge
#

no i mean it is just enabled via the experiment section of settings

stray hemlock
#

Don't know. I used a plugin. Like, third-party. Don't know what that does in the background.

gentle rose
woeful lintel
hard fern
#

Why can't they just make an ai that's actually helpful 😔

stray hemlock
#

Ed

woeful lintel
#

nano the terminal editor? doesn't seem very good as an ide to me, granted I never learned the keybinds

lucid mulch
#

and I would suggest notepad, but notepad does have a copilot integration

woeful lintel
#

of course it can, but it's not built in and it's the point

fossil osprey
#

Wild idea: libreoffice writer/Microsoft Word as code editor (please don't)

brave fable
#

and so we return to content.rtf

fossil osprey
#

I have no idea what this is and I'm not sure I want to know

gentle rose
#

content.docx

fossil osprey
#

Oh my god

hard fern
#

I thought writing code exclusively in Minecraft books would be funny but you don't really have a way to get it out of the books to compile it

gray bear
#

what does content.rtf do for u

woeful lintel
gray bear
#

hey any of the smort modders in here know about linux modding? someone is asking in #modded-stardew and like, idek

gentle rose
#

best place for them is modded tech support, as always

merry river
#

me again! here I thought I had set up my second event properly but it doesn't trigger in-game :(
the idea was:

  • see event 1
  • additionally, when you have seen the first wizard event (where you learn how to read the junimo alphabet) you are supposed to receive a letter from the wizard with a quest to go see him
  • you go to the wizard's tower and some yapping happens. the end.

however, the letter doesn't show up after the according conditions are met, instead, it shows up even before having seen the first wizard event. and even if you head to the tower to see that event, the custom one doesn't fire at all SDVpufferwaaah

event json: https://smapi.io/json/content-patcher/c9dec13c4efc42aa80157e20999cad80
and the letter and quest part in my content json:

finite ginkgo
#

What's with the +s in the condition field? That's not how you use multiple GSQs, the separator is ,, what you currently have is an invalid condition for your trigger action

#

(or, well, it's "valid" but ignoring everything after 112+ and searching for the event with the exact id 112+)

merry river
#

it was kind of hard to figure out how to make all of this work because of the lack of explanations given on the wiki, so I just. tried. SDVpufferwaaah

#

I'll throw in the proper separator then

hard fern
rotund egret
#

How do I check if player has the cellar upgrade?

hard fern
#

There's one about farmhouse upgrade

rotund egret
#

Thank you!

#

Would this work? (Unlock conditions)

plucky girder
#

So Gigner Island is grand, but places in Forever Spring and Autumn would be lovely as well. I'd like it if we could make a "Glave Feild," and a "Mounton Feild," and maybe a small ice cave one for the modded winter plants."

sharp crystal
#

I'm trying adding a bundle in my mod. I want to use custom image for the bundle, but I don't know how I should write path in this case.

The only exemple I've use buildin file :

"Entries": {
"Pantry/80": "Moschops Products/BO 100 1/Imagical.Moschops_MoschopsEgg 1 0 Imagical.Moschops_MoschopsClaw 1 0/2//LooseSprites\\BundleSprites:12/Moschops Bundle"
}

It's work with LooseSprites\BundleSprites:12
but if I try to use asset from my mod assets folder, the image never appear.

finite ginkgo
#

Did you load the sprite or are you trying to put in the file path in your mod

#

Because it takes an asset name (ie the Target when you Load something), not a literal file path

hard fern
plucky girder
#

I want to

#

but I can't

merry river
#

got my event to work, thank you!!
i wanted to take a detour and work on the datability of my npc. ideally, he's supposed to be a romanceable roommate of sorts which would require the mod to be dependent on free love, I think. But the entire thing is also supposed to be toggleable via GMCM to be a "normal" romanceable NPC.
can I set a conditional config option that relies on the free love mod being installed?
I think I would also need to set a dynamic token but I'm very insecure about the proper syntax for what I want to do. I checked the code for the NPC Nora because she has something similar going on to what I want to achieve but... how do I know which conditions to use?
wow, sorry for the wall of text once again. you guys are carrying my entire project here

finite ginkgo
hard fern
plucky girder
#

🙁

#

I don't want to go into

hard fern
#

!modideas

ocean sailBOT
#

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.

hard fern
#

You can post on the GitHub and hope someone will make it

#

But the only surefire way to make it happen is to pay someone to do it

iron ridge
#

(or do it yourself)

hard fern
#

(the person said they didn't want to so money is the only other option)

iron ridge
#

yes, but it's the only other surefire way

rotund egret
finite ginkgo
#

yes

hard fern
rotund egret
# finite ginkgo yes

Thank you. The recipe works now, but I still can't get the machine logic to work. Any ideas on how to fix this?
I tired changing square brackets to curly ones, but it threw a bigger error.

JSON link: https://smapi.io/json/content-patcher/18cb53e86d7940e5a4a51a4e5f414f7a

Error:
[Content Patcher] Can't apply data patch "Better Dewdrop Berries > Include code/AdvancedCask.json > EditData Data/Machines > entry #1" to Data/Machines: failed converting entry to the expected type 'StardewValley.GameData.Machines.MachineData': Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[StardewValley.GameData.Machines.MachineItemOutput]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object. Path 'OutputRules[0].OutputItem.OutputMethod'..

ornate trellis
#

hey guys, trying to make an event play when a certain CT is triggered...thats a thing, right? if so, can i add this to ma event or how should I go about it the smart way(if possible)
"When": "PLAYER_HAS_CONVERSATION_TOPIC Any {{ModID}}_Barnabas14HeartsEventMention"

hard fern
ornate trellis
#

because...as i tried looking at the wiki i didnt see anything on how to add it so i was like hm maybe i gotta add it like that

hard fern
#

Its there i thought (sorry im on mobile) but it should be in like. The event preconditions area

ornate trellis
#

oh wait... i think i missed something in the beginning

#

i went straight searching for CT

#

would that be GameStateQuery "PLAYER_HAS_CONVERSATION_TOPIC Any {{ModID}}_Barnabas14HeartsEventMention"

#

or wiothout the any

hard fern
ornate trellis
#

alright, im blind

#

i normally just roam around the lower layers of that page...

#

now i wonder why my CTRL+F in my browser failed to search that CT mention in there...well, either way, thanks for the help. As always, I am too blind to look for shit, sigh

ornate trellis
#

rub it in more pufferpensivebutt

hard fern
#

😅 i was just trying to figure it out

ornate trellis
#

wait with that emote it somehow looks wrong forget that

hard fern
#

LOL

ornate trellis
#

its fine im just joking but was too distracted by my realization as i hit enter

#

hey at least i can tell people who are insecure about trying to make a mod that its fine cuz despite me being scatter-brained and always confused i somehow manage to make mods(with the help of yall) so anyone can do it

hard fern
#

XD everyone has to start somewhere

ornate trellis
#

sadly i know i will remain in this state, but hey thats ok. im just being me lmao

flat sluice
#

Hi,
after a long time, I once again ask for a modding help.
I'm adding TouchAction MagicWarp 8 11 StrojvedouciDenis.Eleanor.Maps.Eleanor.home thru JSON into a map, however if I interpered the error correctly, it is also asking for face direction, which the wiki (https://stardewvalleywiki.com/Modding:Maps#TouchAction) does not list.
So I added it there, making it TouchAction MagicWarp 8 11 3 StrojvedouciDenis.Eleanor.Maps.Eleanor.home, however that doesn't work and SMAPI doesn't want to tell me anything about it (or I'm just totally blind).
Log: https://smapi.io/log/2097ebad135a457ab9b331ca5b185fcb
JSON after fix: https://smapi.io/json/content-patcher/c3619ddf2bcb43148a8a9240f3577775#code.73 (the 2 showed errors is just the checker not liking my map name, it works as expected without any warnings)
See attached video for how it does (not) work.
Any help will be appreciated!

Stardew Valley Wiki

← Index

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 23 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

hard fern
#

-=aq0s-=[P

#

PLS CAT

#

pls

ornate trellis
#

very important cat message

urban patrol
#

if you want it to also be dependent on a config option, then i would gate each one behind an OR (1: config false OR no free love installed, 2: config true OR free love installed)

merry river
urban patrol
#

not quite sure what you mean by that but that’s great!

#

oh also i forgot to mention, but config options don’t require dynamic tokens to work, you can just use them like When: ConfigOption1

urban patrol
#

(no facing direction needed, just swap the order around)

urban patrol
#

idk anything about machines but i think you might want to check your brackets (see the highlighted pair in my image)

#

if i’m wrong ignore me

plucky girder
#

I mean, I don't want to get into why I can't try to learn even if I could learn at this point in time, and might not for months.

humble timber
#

well, you'll never be able to learn with that mindset 🤷

#

hm

rotund egret
plucky girder
#

Bad time to try.

humble timber
#

unfortunate pats

plucky girder
#

and I don't want to explane

humble timber
#

i have plenty of mods i want to exist that i'll have to make myself so i get it

urban patrol
#

i can take a closer look later when i’m not on mobile but that’s all i have rn then, sorry

rotund egret
#

I'd really appreciate it.

urban patrol
#

what you can do in hopes of attracting someone who knows machine data more is post your most recent log and json

rotund egret
#

I'm gonna check the format with stuff already in Machines.xnb. If I can't fix it after this, I'll probably do that.

urban patrol
#

always a good idea!

#

just making sure, have you unpacked the game data?

dreamy owl
#

what client do you guys prefer for actually writing code?

urban patrol
#

for C#, usually VS or rider is recommended in here

lucid iron
#

Just use text editor of choice

dreamy owl
#

ty :3

obtuse wigeon
#

I use VSCode for json stuff, and Rider or Visual Studio for C#

dreamy owl
#

making my first mod here, portraits

urban patrol
#

then yeah VSC or i like notepad++

brittle pasture
rotund egret
#

What should I add then?

brittle pasture
#

square brackets

rotund egret
#

Ah, I see it now.

#

Thank you!

digital herald
rotund egret
#

Alright, the error is gone and Lookup Anything sees the producer rules, but I can't interact with the machine.

urban patrol
rotund egret
#

I spawned a new one.

#

The old one didn't even exist since I wasn't saving the game for the tests.

brittle pasture
#

can you post your code again just in case

brittle pasture
brittle pasture
#

hmm so your machine is a custom cask using the OutputCask method, but IIRC it doesn't work if your machine's not actually of the type Cask

rotund egret
#

I see.

#

So I basically have to code it from scratch?

brittle pasture
#

you'll need EMC's custom cask functionality

gray bear
#

you need a selph mod™

rotund egret
#

Because the second one (for my custom item) also doesn't work.

brittle pasture
#

just the ones that specifically use OutputCask

#

I havent looked too deep at that second one but I think it's also missing a bunch of fields?

rotund egret
#

Wiki says they're all optional...

brittle pasture
#

actually does your custom juice item had the juice_item tag

rotund egret
#

Yep.

brittle pasture
#

then it's being caught by the first rule

#

and the second rule never triggers

rotund egret
#

Alright. I'll remove the tag and it should be fine, right?

#

(Except for all the vanilla items)

brittle pasture
#

yep
but I must warn that if you do make it a custom Cask then casks don't mix well with traditional input-output machine rules

#

because casks by design allow you to retrieve the output out of it any time, so a user can put your regular juice in, immediately smack it with a tool, and get the aged juice out

rotund egret
brittle pasture
#

it doesnt stop the tool smacking

digital herald
rotund egret
#

Other than that, everything works.

#

Thanks for help!

soft lance
#

Hello! I checked a bit on the wiki, and did some experimenting, also looked at how SVE handles this

I'm editing Data/NPCGiftTastes, and appending new Universal Love, oddly this doesn't really work with many characters, as a considerable amount are still disliking/hating the gift, I may be inputting it wrong (missing a space and/or comma? tried but didnt seem to make much difference), though it seems close to how SVE does it

The items are from my own mod, ASF_MermaidPearl and ASF_MermaidTear, so was wondering if I possibly inputted this wrong. I noticed a slash, which isn't anywhere until it hits my mod, I was thinking this was due to me inputting the Universal loved items wrong, but I am unsure

brittle pasture
#

universal tastes don't have fields since they're just one string

#
        {
          "Operation": "Append",
          "Target": ["Entries", "Universal_Dislike"],
          "Value": "{{ModId}}_LinseedOil",
          "Delimiter": " "
        },

example from my mod

grand badge
#

anywhere i can get a tempate for making a clothes mod?

#

i think thats the word atleast

violet valley
#

is it possible to make custom house renovations with just content patcher?

hard fern
grand badge
#

fashion sense

soft lance
violet valley
latent mauve
#

My unreleased bathroom mod (I will release it some day, maybe. If I ever remember) does this.

violet valley
#

ok

#

how? what is the asset name to edit

#

or however you do it

latent mauve
#

It's going to be a multi-part process, because you need two TMX files, one with your renovation and one with it empty, and then you will need to make an entry for Data/HomeRenovations.

violet valley
#

Ok

#

thanks!

latent mauve
#

Have you looked at the unpacked game data yet?

violet valley
#

Yes

#

I just didnt know what the Data/___ was called

#

for renovations

grand badge
hard fern
latent mauve
#

oh, there's a wiki page for AdditionalRenovations as a map property now, one moment while I check what versions that works for

#

That would likely simplify things a bit.

#

Looks like the example is updated, so that should help too

urban patrol
#

i think that should probably be added to the index! i was looking through it and didn't see that page at all

latent mauve
#

It's in the modding namespace for the main wiki, I just searched "modding:renovation" to find it

#

That's an advanced tutorial page

#

(it's also linked on the map properties page)

urban patrol
#

ah if it's linked in map properties that's probably fine then

latent mauve
#

I think the page got a little bit of a cleanup recently, because it's organized a bit differently than the last time I looked at it xD

#

I'm a little thrown by the lack of edits to Data/HomeRenovations in the tutorial, though, are those just completely handled by the map property now?

obtuse wigeon
#

I've seen other mods that do the same thing too so I guess possibly thats the case?

crimson plinth
#

Hey, it feels rude not to introduce myself first, so hi, I'm grnprns and I'm working on a mod (...duh) with CP and C#. I need/want to check what the farmer is currently wearing. From what I've gathered, this isn't possible, right? Or am I missing something?

uncut viper
#

i suppose you can do both forms of renovation? the map property does just work by using vanillas usual map override feature. i guess for map overrides that you dont want the player to buy and place down, i suppose

#

that stuff on the wiki is from 1.5.5, though

latent mauve
#

Ah, so maybe AdditionalRenovations is better suited for renovations you don't buy

uncut viper
latent mauve
#

Yeah, I feel like I ignored it completely when I made my custom renovation, which is why I thought it was new somehow.

uncut viper
#

farmhouse renovations seem like a niche thing for modders so unsurprising that there hasnt been someone wanting to do the work to meticulously document it all

soft lance
#

"Town": {
  "Items": [
    {
      "IgnoreBaseChance": true,
      "Id": "Town Marlin",
      "Condition": "RANDOM 0.01",
      "ItemId": "{{ModID}}_Marlin"
    }
  ]
}


For Data/GarbageCans with the EditData action, if I added my own item into a garbage can, lets say any characters garbage for now, will it Append to it, or Write Over what was already there?

latent mauve
#

Well, I can publish my mod after I check it over again so people can reference it, since I know it works. xD

#

I was detangling it from a testing combination mod that let you swap between a renovation or a map patch to split it off and just never finished the final checks.

urban patrol
latent mauve
#

We'd need to see the Target and if you've used TargetField or anything else to drill down to what you are patching.

#

I believe if you only had an "Entries" in front of that code snippet, it would overwrite the Town entry with what you have instead of adding.

#

But if you used Fields, you might be okay.

soft lance
#

lemme take a photo

obtuse wigeon
#

!json use this instead

ocean sailBOT
#

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.

obtuse wigeon
#

the first link

crimson plinth
urban patrol
soft lance
#

that shows the valid locations

urban patrol
#

this isn't a wiki page, this is the unpacked data

#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

soft lance
#

ahh alrighty

soft lance
#

will it overwrite the pre-existing items in that trash can?

#

or overwrite it from other mods?

#

or will it append it

#

hopefully append lol

urban patrol
#

it depends on how far down you drill

soft lance
#

like maybe 6-8 trash cans in total lets say

latent mauve
#

okay, so if you scroll down to "Change an existing garbage can", you'll see the example has "TargetField" in there

#

to drill down to a specific can, and then to the Items field

urban patrol
#

(note that that example has a unique ID with your Mod ID prefixing it!)

latent mauve
#

That TargetField is necessary, as is the unique ID for the actual ID of the Item, in order to prevent your mod from wiping out another entry that might otherwise accidentally have the same name.

#

As nic is pointing out, the {{ModId}}_Item format for naming your Item IDs inside an entry helps out a lot to prevent compatibility errors!

soft lance
obtuse wigeon
#

(I'm glad that prefixing with the modid is drilled into people when they begin modding, I remember the days in other games where that was never done and it lead to SOOOO many issues)

soft lance
#

^^

urban patrol
latent mauve
soft lance
urban patrol
#

using SVE as an example frequently leads to confusion i fear

latent mauve
#

The terror still exists for HairData, imagine having to come up with a number nobody's used because you can't use letters.

#

(It's on the list to change to string keys)

obtuse wigeon
soft lance
urban patrol
#

i think convention used to be start it with your nexus mod page number

latent mauve
#

Yep, but even then, you run into issues once a nexus mod rolls into the next digit after your numbers.

soft lance
obtuse wigeon
#

That's also a very good idea, i never thought of that ngl, could cause issues when enough mods to add- Yep what fireredlily said XD

soft lance
#

As it's "ASF"

#

with no name prior to it like LucyTheDove.ASF

#

so its just, ASF, lol

latent mauve
#

Yeah, you definitely want to consider migrating that to a more specific one