#making-mods-general

1 messages · Page 221 of 1

naive wyvern
#

so you instead use a phrase that kind of has the same vibe but isnt a literal translation

rare orbit
#

lowkey i felt very dumb learning it the first time ;-;

true coyote
#

Oh yes great, just what I needed SDVpufferthumbsup

gentle rose
#

(Castellan = Spanish from Spain, Catalan = another language spoken in the Catalonia region of Spain, e.g. Barcelona)

rare orbit
#

might be cause im a perfectionist

round dock
#

There's also one thing to know the basics and there's another to have a degree of understanding when it comes to employing nuance. The desire for accessibility is very admirable but to bridge a gap between two languages, there's a bulk of work that needs to be put in.

fierce vault
#

Do you think making an i18n is really worth it?

rare orbit
#

true

rare orbit
#

i swear tho? japanese sounds amazing

#

especially the music and poetry

uncut viper
rare orbit
#

maybe im an anime nerd tho

lucid iron
#

i18n gives you useful features that's not translation related too

tribal ore
#

Speaking from experience xD

rare orbit
#

and the arabic language? it looks beyond pretty

lucid iron
#

Like u can do args to reuse a i18n key

fierce vault
# rigid oriole you can use the i18nifier

I got that one, I have yet to use it though. Hopefully it will be simple enough. Honestly, I want to have the dialogue in it’s own Json and just i18n everything else.

rare orbit
#

am i being weird?

lucid iron
#

You can use subdirs for i18n now

rare orbit
#

about how languages sound and look?

round dock
lucid iron
#

default/blah.json

tribal ore
rare orbit
#

i dunno it makes me apperciate the world around me

round dock
#

(Also Button my friend finally convinced me to get on Freiren, I think I'm gonna watch soon after law midterms SDVpufferowo)

fierce vault
rigid oriole
#

ok i'm done being off topic but do it

gentle rose
# rare orbit am i being weird?

you aren’t being weird, but treating languages in this way tends to come with some less than ideal ways of viewing other cultures 😅 it’s good to appreciate languages and their differences but putting them on a pedestal for aesthetic features usually isn’t a good thing

reef kiln
# rare orbit maybe im an anime nerd tho

Me too love anime. But Japan is not like anime at all. Most anime nerds end up disappointed with Japan due to expectations. Thats from a couple different personal connection that have actually moved to Japan after college.

tribal ore
rare orbit
naive wyvern
#

((gasp selph is here, hi selph was it u that made the bigger than 16x32 machine sprites mod i cant find it 😭))

lucid iron
#

Furniture Machines pau

#

See laundry mod

naive wyvern
#

thank u chu !

rare orbit
#

my experiences outside of the states are limited and the stuff i know is cause i'd read about it

naive wyvern
#

yesss this is the mod I wanted thank u SDVpufferheart

rare orbit
#

but i wanna learn as much as i can

fierce vault
reef kiln
#

Travel is great, just temper expectations. Enjoy places for what they are. dont go with preconceived ideas.

rare orbit
gentle rose
tribal ore
fierce vault
tribal ore
#

I'm using the same method now for variable divorce text, since the NPCs usually only have one "divorced" line that they say forever

#

Now I have 8 that Sebastian can cycle through

fierce vault
tribal ore
teal bridge
#

I think "machine-aided" translations are potentially viable if you are trying to translate a mod from a language you don't know into your own native language; the assumption being that you aren't actually submitting the machine translation straight up, you are using it as an aid to understand how the mod works, and using your own play-through with the mod to figure out what those lines actually mean and how a native speaker would say it.

#

That's a lot of "ifs", but it's somewhat more valuable than a machine translation from a language that the "translator" does speak to a language they don't speak.

rare orbit
teal bridge
#

Translations are generally not editing a mod. Translations are separate "mods" in the Nexus model.

lucid iron
#

When i translate i do use mtl to find ??? words i only know in english

hard fern
round dock
lucid iron
#

Or when it's ambiguous, like "pylon"

rare orbit
#

speaking of which? are there ways to translate when monolingual?? outside of machines?

naive wyvern
#

learning the language...

hard fern
#

call luigi a friend?

rare orbit
rare orbit
tribal ore
naive wyvern
#

learning a language is not an overnight endeavour, so its okay if you take your time before you try translating

rare orbit
#

ya know? a translator help corner for this server would be nice!

#

true

#

and some languages can be easier to learn than others

#

coming from me who has messed up spanish ;w;

round dock
rigid oriole
#

i think if you want translations, either find someone who actually has a solid grasp of the nuances of the language or simply do not have the translations (or spend years studying that is also an option lol)

#

if you don't know the person providing a translation, get someone to verify it somehow (or at least run it thru a machine to make sure it makes some sense to SOMEBODY)

round dock
tribal ore
#

I'm going to be releasing my mod without translation, but with a clear note on the mod that tells people who are interested in translating it how to contact me and work with me on it

rough lintel
#

i love translator notes

#

i think discussing with the translator is like the only way to get an authentic translation too

round dock
#

Good call, haha I'm always willing to have people work on translating my stuff (granted that when they work on mods like Good Luck Haley, I set it in stone that LGBTQ content is not allowed to be eradicated or erased)

rough lintel
#

bc theyll have grasps on the language or certain things an npc says in a way that a machine wont

tribal ore
rigid oriole
#

Can I request an asset via DataLoader.SOME_ASSET(Game1.content) or Game1.content.Load if a save is not initialized

teal bridge
rigid oriole
#

like is the content pipeline only active if a save is loaded

teal bridge
#

You know, think of buying a bookshelf and you only have the assembly instructions in Chinese, English is missing... you could probably use a machine translation to get the basic idea and then use your own judgment to turn that into something that actually makes sense.

rare orbit
#

i tend to do that but i get the feeling that machine translations are a no go

#

right?

rough lintel
#

but an npc? jokes and references would get lost way too easy

brittle pasture
slender root
rare orbit
#

i did reccommend for the server to have a translation help corner to make sure that doesn't happen

rigid oriole
#

thank u

rough lintel
#

usually (in this community) youll have translators come to you, since its mostly a case of “oh, i want this thing in my language” rather than an author requesting it

#

this is a case by case basis of course

#

its more common for the former in larger scale mods

#

latter more common for ui or hud related things

hard fern
#

not quite in the vein of translations but ive been staring at my wip dialogue wondering if i really want to go through writing this character's lines in "Shakespeare english" or not...

rough lintel
#

as fun as that would be, youd probably have whiners wanting a toggle

round dock
#

On my end, I usually just let translators come to me and directly ask, especially since I set my conditions. For content related mods, it's usually the former as well.

rare orbit
#

i wonder can the cooking showdown ever be translated to english seamlessly??

hard fern
#

😅 i already have plans to write two sets

rough lintel
rough lintel
rare orbit
#

i like the idea of using it and i wanna make sure that it's ok

rough lintel
#

why would it not be ok lol

#

its fine to do

rare orbit
#

oh it is?

#

i wanna make sure to not cause any issues ya know?

rough lintel
#

yeah? unless the mod says “dont translate my shit” then why would it… not be fine

#

you seem like the type who worries a lot lol i promise u its fine

#

translations are like one of those things thats usually Always Fine

#

the posting etiquette for translations however comes from whether the author wants to host it (via i18n) or doesnt care (you can host the english version for example)

#

or requires their stuff as a dependency or yadda yadda

brittle pasture
#

as mentioned already MTL only for personal use is fine

your questions imply that you're doing this with the intention of publishing, in which case we don't recommend it

rough lintel
#

^

rare orbit
#

cool cool

gentle rose
#

like I said above, for personal use, any mtl is fine

brittle pasture
#

(if that's not your intention then sorry!)

rare orbit
#

personal use only! unless i get a green light to upload

lucid iron
#

Why does this mod ship it's own towninteriors.png bolbonfire

lucid iron
#

Is smapi correctly loading en.json these days

#

That is another potential issue with tl'ing this mod

rough lintel
#

ooh good point

#

me just naming the en one default and renaming every other language 😔

lucid iron
#

Well, you want your tl mod post to be drop in to original

rough lintel
#

mmhm

naive wyvern
rare orbit
#

ohhh ok

#

i apologize

#

i mean no ill will at all

naive wyvern
#

we know that
we're just saying, published MTL mods arent received well, so IF you really wanted to use the mod, you can go ahead and translate it for personal use
but if you publish that after getting the green light, you'll be receiving bug reports from bilingual and native speakers

#

and because you dont speak the language, how would you be able to support that?

rough lintel
rare orbit
#

ahhh i didn't realize!

naive wyvern
rare orbit
#

thank you for informing me!

rough lintel
#

u block the author, u are fine for another week. And Then Another Flood Happens

#

nexus why

naive wyvern
#

thats pain

#

oh also Lani while ur here

I took a look at Peace's hoodie mod !

#

its not quite what I needed, but i did learn you can make dynamic things which is really cool

#

the search to unify sleeves to shirt when the shirt is a wearable item continues

gentle rose
hard fern
#

man map recolors are hardddd

#

SDVpuffersweats painstakingly cutting out all the grass

blissful panther
rough lintel
rough lintel
blissful panther
naive wyvern
#

its also my first time trying to do anything with FS, i dont normally use it but I wanted to make "merch" for my expansion kamo_laugh

tawny ore
#

I wish there was a better way for me to not see translations on Nexus ever, but if I update my settings to exclude them, that also hides mods that have the translation tags which are not mod translations themselves.

rough lintel
#

yknow i never clicked to check, i just laughed and moved on

#

LOL

latent mauve
#

The number of times I've gotten bug reports for 'this dialogue is broken' and it's because of a translated version of the mod

hard fern
#

SDVpuffersweats did the translator break it

hard fern
#

yes

rough lintel
#

“Yes”: “아니요“ thank you korea

#

“Yes”: “Oui”

latent mauve
tawny ore
#

I propose we get away from communicating in any one language, and just use emojis

rough lintel
#

you might as well make all the translations for meep yourself holy crap

blissful panther
# rough lintel STOP THATS SO FUNNY

Yup!

{
    "Yes": "Não!"
}

That was the translation, obviously. I've since changed MEEP's unnecessary i18n to:

{
    "translation-message": "If this is translated, I, the translator, confirm I did so using automated methods and did not check what I was translating."
}
tawny ore
#
{
  "Yes": "👍"
}
rough lintel
#

wait why is “Yes”: “No” anyways in there

lucid iron
#

No matt its 👎

rough lintel
#

thats confusing

rare orbit
#

so basically hieroglyphs?

rough lintel
#

you yes me to no me….

blissful panther
#

I have a template csproj project, and it's just... in there.

#

I just didn't remove it.

rough lintel
#

OH HAHAHAHA

#

so its meaningless 😭

rare orbit
#

are emoji's modern hieroglyphs

lucid iron
#

I put $schema in there instead

brittle pasture
#

here's my contribution, I will open a PR later /s

{
  "Yes": "Không"
}
lucid iron
#

Just to have smth

rough lintel
rare orbit
#

huh interesting

rough lintel
#

theres studies on that i think

rare orbit
#

wait until historians ponder the meaning of emojis

#

i feel for em

languid aurora
#
{
  "Key": "NotKey"
}
rough lintel
#

wont have to ponder much, they are rather self explanatory

lucid iron
#

You mean you 😔 and 🥲 for them

gentle rose
#

can I contribute a hebrew version despite a hebrew translation of the game not existing KEK

{
    "Yes": "לא"
}
rough lintel
#

historians WILL be pondering why i use 🏌️ for no golf related reason, however

rare orbit
#

true

rough lintel
#

sometimes i am just 🏌️

lucid iron
tawny ore
# rough lintel wait why is “Yes”: “No” anyways in there

Maybe for this language:

"Target": "Data/AdditionalLanguages",
"Entries": {
  "Opposite": {
    "ID": "Opposite",
    "LanguageCode": "zz",
    "ButtonTexture": "{{InternalAssetKey: assets/button.png}}",
    "UseLatinFont": true,
    "ClockTimeFormat": "[AM_PM][MINUTES]:[HOURS_12]",
    "ClockDateFormat": "[DAY_OF_MONTH] [DAY_OF_WEEK]"
  }
}
rare orbit
#

im just sayin historians gonna be pulling their hair out just like norse mythos historians!

rough lintel
#

MINUTES:HOURS NAHHH

rare orbit
#

just saying it's painful we don't have the majority of norse mythos.

gentle rose
rough lintel
#

id forget and go “why is it 31:6?????? why is it 31:6????”

rare orbit
#

yall had a writing system bestie. we could know more about loki.

lucid iron
rough lintel
gentle rose
rare orbit
#

excuse my ramblings about norse mythology i am just sad about not fully knowing if loki was even a god or not.

gentle rose
#

god the font discord uses for hebrew inside code blocks is ugly though. What is that

hard fern
#

I've never seen it before

gentle rose
#

it’s like the equivalent of an extra thin version of courier new

hard fern
gentle rose
#

ugly font, 0/10, almost as bad as harry styles’ hebrew tattoo

hard fern
#

Harry... Styles?

brittle pasture
#

harry styles' what now

hard fern
#

Is he the moustache guy

gentle rose
#

he has a hebrew tattoo of someone’s name KEK

rough lintel
gentle rose
#

Gemma

#

idk who gemma is but that’s what he got tattooed on himself

hard fern
#

Harvey styles

naive wyvern
#

Harry Styles, but does Harry Slay

rough lintel
#

mod related: is there an ice mod where you can slippy slidey on patches of ice

#

i ask because i slippy slidey’d yesterday on the ground 🏌️

gentle rose
#

for reference, this is like the default office font for hebrew KEK I’m pretty sure it’s arial

hard fern
#

LOL

brittle pasture
hard fern
gentle rose
hard fern
#

Honestly i see all those "people who don't speak chinese get chinese tattoos" all the time but i kinda want to get a tattoo that says "chicken soup" or something on purpose. For the fun of it

rancid musk
brittle pasture
#

unfortunately that i18n is now load bearing and if removed will make the game CTD

gentle rose
rancid musk
#

Ah yes json {"coconut.jpg": "alan don't translate this"}

lucid iron
#

Get 𰻝𰻝面 tattoo

naive wyvern
#

biang biang noodles my beloved

hard fern
#

Oh i haven't downloaded chinese on my phone

#

Im getting Box box

rancid musk
#

Also I answered my own question. DH needed an unnecessary i18n file because he was unconditionally including the ModTranslationClassBuilder in his common project, and that throws a compilation error if there's no i18n/default.json for a project.

hard fern
#

Oh no the biang biang noodles crashed my phone

rancid musk
#

That's why I use something like xml <EnableTranslation>true</EnableTranslation> and then xml <ItemGroup Condition="$(EnableTranslation) == 'True'"> <PackageReference Include="Pathoschild.Stardew.ModTranslationClassBuilder" Version="2.0.1" /> </ItemGroup>

tawny ore
#

Yup, it's the cost of trying to be lazy about using ModTranslationClassBuilder

rancid musk
#

Though honestly I should switch that to be true by default since almost all my mods use it

tawny ore
#

Not that I'm calling anyone lazy, but I also try to put as much as I can in my Common.targets file

blissful panther
calm nebula
#

I also do the same thing but I be lazy

blissful panther
#

Same!

#

Now though, it seems to serve the purpose of helping detect automated translation bots or some nonsense.

calm nebula
#

Plenty of mod wip have a default.json if {"no":"translation"}

#

Fun fact

#

Someone translated atracore

tawny ore
#

I haven't gotten around to making a proper template for every new mod project I create, but I've been meaning to do that because the first 5-10 minutes are always me just copying all the boilerplate stuff

calm nebula
#

I wasn't aware atracore had translationable text

calm nebula
tawny ore
#

Do you literally copy+paste the same project?

#

If I did that, I'd still have to search+replace the project name, namespaces, etc.

blissful panther
#

Personally, I:

  1. Copy my TemplateProject directory
  2. Rename the folder and the csproj
  3. Update the name, etc. in the csproj
  4. Rename the root namespace
  5. Add to solution
tawny ore
#

Yeah, I'd like all of that to be just a "create new project following this template"

blissful panther
#

I've looked into dotnet templates, but they're weird.

lucid mulch
#

I just create a class library project the old fashioned way and once it's made copy paste one of my other mods csproj into it and then update the details

tawny ore
#

Yeah I create a class library, and then setup all of my standard customizations

#

Which includes the project references, standard files (GlobalSuppressions, editorconfig, README, etc.), copy+paste csproj

#

Some standard folders that I organize my projects into

#

It's so repetitive, that I know it can be fully automated

lucid mulch
#

My last few mods only have the csproj and modentry.cs

tawny ore
#

Maybe not using donet templates or anything, but I'm sure I could script out all of the things I would normally do by hand

lucid mulch
#

These days I only leave modentry.cs once it's actually big enough to matter

tawny ore
#

I usually start with everything in ModEntry when I'm in the "prototype" phase of development

#

But I'll organize things into my preferred system before it's "production"

#

Mainly because I have a bunch of common helpers that I reuse across mods

lucid iron
#

I use a dotnet new template yea

dusk mulch
#

This is how an action warp should be done, right?

lucid iron
#

I don't have a core shared helper tho

brittle pasture
#

do you have a directory of common classes that gets Included in every project

lucid iron
#

No

#

I rewrite those every time like a neanderthal

#

Primary purpose is to setup the static monitor for logging

blissful panther
tawny ore
#

I do have a shared library which gets reused

blissful panther
#

But I'm not a content person, so listen to literally anyone else over me here. SDVkrobusgiggle

tawny ore
#

Common to every one of my mods

dusk mulch
#

Thing is the action isnt even appearing (the action hand)

#

Wait...

#

I put it on the wrong layer.

lucid iron
#

Does this make the dll more big (not that it matters)

gentle rose
#

more shared libraries SDVpufferwaaah

tawny ore
#

Maybe, but I imagine it's negligible. I don't know if dotnet is smart enough to not include things that I don't reference.

gentle rose
#

I wish rider supported them properly

blissful panther
#

I'm fairly sure all of my shared project nonsense gets added to the final build, yeah.

#

Do they not work right for you in Rider?

tawny ore
#

I think Rider had problems setting them up, but once they're there it works. At least from when I last tried doing that.

blissful panther
#

There are... quirks like a warning in the shared project being present for every single normal project, but I just kinda ignore those.

dusk mulch
#

uh. I just clipped through a wall in a map now that same wall wont let me back through

gentle rose
#

if by problem you mean “there’s literally no way to” then yes

#

rider does not natively support shared projects other than kind of sort of respecting pre existing ones

lucid iron
#

Can't u just edit the csproj to add them

blissful panther
#

Huh, wow, yeah. Rider doesn't seem to have the ability to create one in the UI...

gentle rose
lucid iron
#

Guess it's time for you to switch to vscode

gentle rose
#

yeah 😭

#

unfortunately. but rider does have some other annoyances too

blissful panther
#

My mind is slightly blown right now...

#

Even the dotnet command can't create one?

gentle rose
#

I’m not sure how to do it via the dotnet command tbh SDVpufferthinkblob I don’t use c# outside of stardew haha so I don’t have much experience

blissful panther
calm nebula
blissful panther
#

Maybe I should just switch to a core mod and save so much hassle...

calm nebula
#

MiniAtraShared isn't a core!

#

It's a shared project

blissful panther
#

Oh, yeah, that's just a separate thought. SDVkrobusgiggle

calm nebula
#

But I have an abstract class I inheritance from

lucid iron
#

I think i saw some of it

#

Or maybe it's just atrashared in general

gentle rose
#

I have seen both atrashared and miniatrashared, and also atrabase, and they’re the reason I know rider is stupid about shared projects pffft

calm nebula
#

Sowwy

lucid iron
#

The primary reason why I don't have shared project and probably wont make one is bc i am doing single repo though

#

To have shared thing like that clone properly I'd need to do submodules (scary)

#

It is also just, not that much stuff to be shared yet blobcatgooglyblep

dusk mulch
#

Does anybody know why it may be spawning me out of bounds? I have all the warps set up correctly, debug warp works fine but when I try to enter normally it chucks me into the void

gentle rose
#

the trick is to write brand new terrible implementations of the same code each time rather than writing one good one and reusing it

blissful panther
dusk mulch
#

And it is always that 1 tile that it spawns me on

calm nebula
#

What about a third core mod

gentle rose
#

I think

lucid iron
gentle rose
#

it certainly looks like 19 on the x coord to me

dusk mulch
gentle rose
#

wdym nope? it says DefaultWarpLocation 6 19

dusk mulch
#

I just showed you, I have my mouse over the tile 6, 19

gentle rose
#

oh I see now, interesting

#

I got my x and y coordinates mixed up again KEK

dusk mulch
#

This is the other side btw

gentle rose
#

what coord is that other one? could it be 18 19?

blissful panther
#

18 19?

#

I think that's the target coordinate, yeah.

dusk mulch
gentle rose
gentle rose
dusk mulch
#

oh, it isnt even in the map so i would need the debug mod to check hold on

blissful panther
#

Like I said earlier, I don't think the last two numbers are needed. It's Warp <target x> <target y> <map name>, I think?

gentle rose
#

so your warp is taking you to 18,19

dusk mulch
#

I will try that

blissful panther
#

So replace 18 19 with 6 19.

dusk mulch
#

That worked

#

Thank you!

harsh snow
#

Hi! I'm new to the modding scene but I'd very much like to learn how to mod things. I've looked over the documentation and it doesn't seem to be beginner friendly. I've tried reverse engineering some mods from Nexus but I can't get them to work. Would anyone be willing to teach me how to mod/guide me in how I'd take my first steps?

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

harsh snow
#

I've read over all the documents from the wiki I could find and I'm still a bit lost with all the specifics

hallow prism
#

what looks user friendly depends a lot of what you look at, Content Patcher documentation for ex is super detailled

#

it also highly depends of the kind of mod you want to make

#

can you give some examples?

#

(my experience with modding on different games is that SDV is by far the most friendly i saw, but of course ymmv)

harsh snow
#

right now I just wanted to add some custom fish into the game and I've been struggling on how exactly I should structure things

#

I've also never modded before so this is mostly new to me

hallow prism
#

ok so fishes are a bit complicated. They involve several bits. The first step would be to make an object (that is your fish) and then use one of the mod like CJB item spawner to see if it's working properly

harsh snow
#

I'm reverse engineering some other nexus fish mods as well as a forum post I found but I just can't spawn the item into the game

hallow prism
#

what do you have so far?

#

!json to share files

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.

hallow prism
#

!log to share a log if needed

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.

lucid iron
#

Tia made a fish guide iirc

harsh snow
#

that's another problem lol whenever I search "Stardew Valley modding guide" or the like I just get how to install mods instead of how to make them mostly

lucid iron
#
Stardew Modding Wiki

Adding a new fish to the game has never been easier than in 1.6; nowadays, fish are a simple set of patches via Content Patcher. There are four required steps: you need to load sprite images, define the fish (as an item, and as a fish) and add it to locations. Optionally, you can add aquarium sprites and data, and fish pond data. I'll be using ...

harsh snow
#

ty I'll read over this

rough lintel
#

question for those who are machine-inclined: if i wanted to change the seedmaker so that it attributed quality to seeds generated based on the quality of the crop, would i have to c# that or just edit the machine rules?

example, i wanted to be able to create tiered seeds. -- Putting in a Gold⭐️Turnip produced from a regular seed will give Silver⭐️Turnip seeds, at most (dependent on your farming skill, but that's for later math). Putting in a Gold⭐️Turnip produced from a Silver⭐️seed will give Gold⭐️Turnip seeds, at most (skill dependent). Putting in a Gold⭐️Turnip produced from a Gold⭐️seed will always give Gold⭐️Turnip seeds.

lucid iron
#

The niche nature of sdv modding means it's hard to look things up

#

But that's why you ask things here

harsh snow
#

I didn't even know there was a sdv modding wiki

#

could not find it at all through searches

rough lintel
#

basically the rule is regular seed crops will produce silver star seeds at max, silver produce gold at max, and gold produces iridum at max (provided you are inserting iridium crops into the seedmaker)

hallow prism
rough lintel
lucid iron
rough lintel
#

no framework mods allow for this behavior already?

hallow prism
#

otherwise the machine can't tell which crop produced which golden turnip, unless you mean they are different crops entirely

#

(like a litteral "silver turnip of silver quality")

rough lintel
#

nah its the same object

lucid iron
#

But then to change what happens with planted seeds, you need c#

hallow prism
#

i have no knowledge of such framework

#

i mean, quality modifier would work for a part

lucid iron
#

I think it's not that hard c#?

rough lintel
#

i thought extra machine config would maybe have something but id ont see anything

hallow prism
#

like "if my turnip is gold i get silver package", but then you would need C# to the silver package to do something

lucid iron
#

Need to check if the crop thing has moddata

rough lintel
#

nod

hallow prism
#

and you would need C# to differenciate "this gold turnip" vs "this other gold turnip" (and then there's the question of stack)

lucid iron
#

The idea is fun though, I'll respond with more details in like 2hr

rough lintel
#

i basically want to recreate the crop "level" system from harvest moon but using sdv's quality tiers instead

#

it would be easier to just eliminate quality entirely and go "level 1 -> level 10" but nah

hot gale
#

I got permission from a mod author to update/change a tile in their map mod, I have ONLY my change added in;

{
  "Format": "2.5.0",
  "Changes": [
    {
      "Action": "EditMap",
      "Target":       "Maps/BusStop",
      "AddTile": ["27 2"],
      "FromFile": "assets/Porta.tmx",
      "ToArea": {"X": 27,"Y": 2,"Height": 1,"Width": 1}
    }
    ]
}

How do I make sure it loads AFTER the original mod to ensure it replaces the tile?

hallow prism
#

i feel people having to remember which crop is the correct gold crop to process may be tedious so you may need some other way to convey the info

rough lintel
hallow prism
hallow prism
#

yeah but by default same item same quality stack

rough lintel
#

yeah

hallow prism
#

nothing insolvable, there's fresh product doing something similar

rough lintel
#

but silver seed silver turnip is not the same as regular seed silver turnip

hallow prism
#

and the qi cuisine fresh label too

hot gale
rough lintel
#

nodnod

rough lintel
#

oh youre right! qi does do the fresh thing

calm nebula
#

I think pretty easily

rough lintel
#

my tail is wagging. i am excited

#

this is good news!

lucid iron
#

It works because you already did the overlay fromfile edit

dusk mulch
#

Uh, why are there 2 entries for the same thing, 1 of them being optional?

hot gale
#

Again, Im just editing the content.json that was already in the mod, I just trimmed out everything but my change, I didnt even edit the filename

#

Thanks for your insight :D

lucid iron
#

But you don't need AddTile

#

What u can also do is to write the whole tile in content patcher without need for tmx

hot gale
#

That sounds better, I just dont know how

#

I want to just change one singular tile to a teleport crystal

rough lintel
#

love how everyone says "oh this would be easy" and im just sitting here like where tf do i even start lowkey

lucid iron
#

The main thing is, I don't think you can add more tilesheets this way?

#

Only use a tile on existing

#

Up to you what do

hallow prism
#

so you may get some balance

rough lintel
#

i mean i know what type of thing to look for to reference, but as for what to even write, lol

lucid iron
#

If it helps ez C# is "probably don't need transpiler or any elaborate models"

calm nebula
#

You might need a transpiler

dusk mulch
lucid iron
#

I was thinking u just intercept debris and change Quality

blissful panther
#

Hey Atra, has anyone offered to take over the fertiliser mod? That being revived would be so neat. SDVkrobusgiggle

(And no, this is not me volunteering!)

hot gale
jolly torrent
#

okay gang back again with tilesheet questions. how do i make a custom tilesheet change with seasons

hallow prism
naive wyvern
hallow prism
#

but those two keywords should help your search

hot gale
#

Cool, thanks

naive wyvern
#

so like
spring_mapname, summer_manpame etc etc

harsh snow
#

I have a quick question for the "Target" segment in the Content json

#

the target refers to mod ID but not necessarily the file path right?

rough lintel
#

the target refers to what you are patching

harsh snow
#

so it will always be Mods/{{ModID}}/{filename}

rough lintel
#

if you want to be consistent and follow formula, yes, it will have that target

harsh snow
#

but not the filepath leading to the filename file

hard fern
#

If you're loading something to a target it's a "path" , if you're patching it, you want to patch what the original mod loaded it to

rough lintel
#

its the format in the thing yes

uncut viper
#

it will not always follow that

#

and there is no reason it hass to. but its just a common convention

harsh snow
#

ok thanks I was confused whether or not it was the file path or a custom convention

hard fern
#

It definitely makes things... What's the word.. unique? It your modid is in it

lucid iron
#

Tbh I drop the Mods/ part now

tawny ore
#

The main requirement for your path to be friendly to other mods is that it's unique

calm nebula
#

Mods/mods

tawny ore
#

No other mod has any business using the path where the root is my mod's unique id

harsh snow
#

so is the only necessary part the ID then what you are patching?

#

sorry I'm just trying to understand things here

rough lintel
#

yall r confusing fletch just let them follow the tutorial lol

#

just do what the tutorial does mate, dont think too hard

#

these EXPERIENCED folks smh

harsh snow
#

sorry I just want to learn as much as I can

rough lintel
#

dont overwhelm yourself tho

#

get it working first and experiment more later

harsh snow
#

👍

tawny ore
#

The thing is you have to follow the convention of whatever mod you're targeting and it isn't guaranteed to be the exact same for every mod. So the answer is relevant to the question you asked, yes, but if you want to learn how to help yourself it's important to understand why this answer is correct.

lucid iron
rough lintel
#

fletch just wants to add their fish to the game

#

they arent patching anything else but their own stuff

#

is this even relevant information to what i'm trying to do or am i just gathering useless shit/dont know where to look

#

like didnt u mention something about debris

#

oh i probably need to look at crop.cs huh

gentle rose
lucid iron
#

You need to find somewhere to intercept the harvested item

rough lintel
#

ah so in the virtual bool harvest

#

LMAO

lucid iron
#

Either patch harvest or intercept the debris result from harvest

calm nebula
#

Harvest actually directly adds it to your inventory

#

Lollll

rough lintel
#

man

calm nebula
#

There is a way around this but it is a faff with a pretend junimo

rough lintel
#

which way will cause less bug reports

#

cropQuality is set in Crop.cs so i think i should just patch it there no?

#

at line 578 with a ... mathhelper

#

it checks all the qualities before setting it though

tawny ore
#

Wait, it doesn't sound like you need to do anything with crop quality, no? Machines should inherently support assigning quality to objects using just MachineData rules.

#

The C# part is when you plant a seed that has quality, there is no logic on how that is handled.

rough lintel
#

but the tiered seeds

#

gold tier seeds have a different chance for qualities

#

so wouldnt i need to patch it

tawny ore
#

Yeah, so you want planting a gold seed to affect the chance the resulting crop is gold, right?

rough lintel
#

yeah!

tawny ore
#

Honestly, I think an easy/elegant implementation might be to make the seed affect the fertilizer

rough lintel
#

blinks

lucid iron
tawny ore
#

Like you plant into HoeDirt, and HoeDirt can have modded fertilizer that affects the quality of the output

rough lintel
#

oh!

lucid iron
#

Not generally applicable sadly

rough lintel
#

ohhhh... ohh i see...

#

but then lies the problem of putting those special fertilized results into the seedmaker

#

to create higher tiers

tawny ore
#

Now someone has to come along and tell me that fertilizer is hardcoded to hell

lucid iron
#

It is pretty hardcoded effect wise too

tawny ore
#

What I'm thinking is HoeDirt has modData, so you can have everything on that

lucid iron
#

Yeah

tawny ore
#

Like the modData can help remember what seed was planted

lucid iron
#

And maybe find where fert quality is applying

#

I hope 1.7 turn crops into big item query model

rough lintel
#

what about the seedmaker bit

lucid iron
#

Item query beloved

lucid iron
rough lintel
#

where if you plant a silver seed, and then put the resulting gold star crop into the seedmaker, you can get... Probably gold seeds?

#

but also sometimes silver seeds

#

oh wait really???

#

you can set probabilities like that?

lucid iron
#

Yeah just need to modify the rule

rough lintel
tawny ore
#

This is what I'm thinking you could patch:
public virtual int GetFertilizerQualityBoostLevel()

lucid iron
#

Yep multiple quality modifiers are possible

rough lintel
#

YOOOOOOO

tawny ore
#

Basically it checks if the quality should be boosted based on fertilizer, but you can override that

#

You can be like, boost the quality also if I have moddata for a golden seed

rough lintel
#

!

tawny ore
#

Based on what that function returns, you can:

Get the quality boost level from fertilizers applied to this dirt, which influences the chance of producing a higher-quality crop.

lucid iron
#

I think using quality has an issue though, in terms of gameplay balance

#

It caps too low bolbthinking

rough lintel
#

what caps too low

tawny ore
#

Perhaps, but this is the imo the easiest way to accomplish what they're trying to do

lucid iron
#

Yeah

rough lintel
#

see the nerf i wanted to implement about this is that the chances to advance the tier with the seedmaker depend on the farming level

tawny ore
#

So a gold seed just acts like the crop is planted in quality fertilizer pretty much

lucid iron
#

You can perhaps nerf the regular fertilizers

#

To encourage using this system

rough lintel
#

well

lucid iron
#

I would also move seed maker earlier

rough lintel
#

yeah i was gonna dw

tawny ore
#

Or if you're really concerned about balance, you can just reduce the value of higher quality crops, then it isn't as important how high quality it is

rough lintel
#

seedmaker would be available as soon as you harvest a crop that isnt regular quality

#

courtesy of pierre old boy

lucid iron
#

Wow cant believe Pierre would give me free things

#

Pierre redemption mod i understand

rough lintel
#

no youd pay a exorbitant fee

#

LMAOOOOOO

#

(not rly exorbitant)

#

but for early game, its high

tawny ore
#

Make Pierre into Tom Nook, he gives you the seed maker but you're in debt to him

lusty elm
#

how high is it?

rough lintel
#

i. dont know yet

#

i need the thing to work before i implement the easy bits

lusty elm
#

fair enough, also my brain immediately goes, people are going to want to configure the price

#

but that happens whenever there is any "price" involved in a mod

rough lintel
#

nodnod

#

to summarize the function: basically you have to use higher tier seeds to increase your chances of growing a higher quality crop

#

instead of... fertilizer i suppose

#

but that fucks with other things so maybe wrong wording

#

use higher tier seeds to guarantee higher quality consistently

lusty elm
#

So Essentielly Gold Melon -> Seed maker has a 40% chance of giving a high quality melon seed which has a better chance of higher quality, kind of?

tawny ore
#

I mean it could be as simple as Silver Seeds behave like Normal Fertilizer, Gold Seeds behave like Quality Fertilizer, and Iridium Seeds behave like Deluxe Fertilizer.

brittle pasture
#

solutions include: fake farmer in Game1.player, intercepting the location's drop debris, just duplicating Crop.harvest wholesale, etc.

tawny ore
#

If you really want to be OP, I suppose it can be better than that, but at least that's a good starting point

brittle pasture
#

fake JunimoHarvester is probably the "best" solution I know of, and even then it's still mildly cursed

rough lintel
#

if that makes sense

#

harvest moon ds is this obtuse about crop leveling LMAO

calm nebula
#

Tbh

lucid iron
#

If u duplicate harvest arent u incompatible with item extensions

brittle pasture
#

yepp

rough lintel
#

if u get an iridium melon from a regular seed and put it in the seed maker, it will guaranteed produce a silver tier seed

tawny ore
#

From some earlier tests, hijacking the debris event works as long as your player is in the location

lusty elm
#

Also my brain goes into, if i had to implement something like that, how would I? and my brain goes, introduce new duplicate crops of base game, with a % of giving you that new upper tier's crops seeds when you put in a gold of the previous level, but that would involve duping a lot of crops.

lucid iron
#

I see, so you are stuffing invisible aquatic junimos in the ponds

#

Like fruit shaped planton

lusty elm
#

but it almost sounds like you're doing that, but probably in a way smarter way that i would id assume.

rough lintel
#

oh no it wouldnt be crop duplicates, just add more context tags probably

#

and ... something about stacking

brittle pasture
#

that will most likely what I'll go with, lil invisible helper

tawny ore
#

chu and rogukin both have to deal with auto-harvesting stuff for their mods

lusty elm
#

walking around with an inventory of 12 types of melon

rough lintel
#

LMAOOOO

#

dont mind me im just the melon man

lucid iron
#

Sea grape shaped junimos

rough lintel
#

would it be more feasible to just... eradicate quality for crops and replace it with an item level????

tawny ore
#

@brittle pasture Maybe worth checking out Collector since that mod has auto harvest code

rough lintel
#

that sounds... more awful

#

then stacks would have to keep track of each item level in the stack

lucid iron
#

The intercept debris thing is limited in that the farmer has to exist in the location

brittle pasture
lusty elm
#

How much will you give me for this Pierre? "Hmmm, 12 Gold Quality Low Melons, X...?" What about these? "Ugh, 57 NORMAL quality Top Tier Melons? X...."

lucid iron
#

Rokugin couldn't use it for that reason

tawny ore
#

Then there's the Automate way of doing things, which is probably the same

rough lintel
#

pierre: oh damn this is a good crop. have 5 g

lusty elm
#

immediately resells for 12, grown from his own garden

brittle pasture
#

Automate doesn't have crop code. Automate Garden Pot (an addon) does, and it fakes Game1.player

tawny ore
#

Oh that's right. I don't play with Automate, but when I did I had Delxue Grabber for crops.

lusty elm
#

I should stop procrastinating and start placing debris on this map.

brittle pasture
#

Deluxe Grabber Redux does the same thing as Collector (duplicate Crop.harvest)

#

(you can tell I went slightly insane looking into this)

#

(anyway think I'll go with the captive junimo route, will let you know how it goes)

#

(which could be weeks from now)

tawny ore
#

That sounds daunting with all of the extra things the JunimoHarvester does in it's update function

#

That said, a JunimoHarvester would automatically be compatible with CustomBush since I patch them to manipulate what they grab from custom bushes

brittle pasture
#

I'll just prefix skip all of TryToAddItemToHut, that's totally fine right SDVpufferclueless

tawny ore
#

Easy, done

calm nebula
#

I could have fucking sworn

brittle pasture
#

ah yeah it is

tawny ore
#

I wonder if that'd solve the issue with hijacking the debris in that it should work when you're not in the location

brittle pasture
#

looks like I can subclass it then

#

thanks

calm nebula
#

(The long story short is that in the before times before I suddenly retired from moddinf deluxe autograbbwr was a thorn in my side)

#

Due to it copying game code

#

Making it very not compatible with....anything

#

But specifically more fertilizers

#

And after taking a look into the code I was all like I'll do my own version but compatibility

#

And then well

#

Life happened

#

I'm enjoying retirement

tawny ore
#

We all know now this is the reason why

#

Darn you Visual Studio!

rough lintel
#

ok, looking at the machine rules right now

#

what the hell is this

tawny ore
#

It's a bit of a cluster

rough lintel
#

so i know id be adding to customdata

#

what the Hell dawg. theres gotta be an example with like every single field ever

brittle pasture
#

I joined mid convo, what do you want to do with machines

rough lintel
#

to do the tiered seeds thing

tawny ore
#

Since crops are already produced from seeds in the SeedMaker based on existing rules, I think just changing the quality modifiers might be enough

rough lintel
#

can you apply quality to seeds though?

tawny ore
#

You can technically apply quality to any object in the game

brittle pasture
#

you can apply quality to every item in game

rough lintel
#

wait it finally clicked what you meant by making it act like fertilizer

#

pre-fertilized... seeds... thats the tier increase....

#

wow... my brain expanded...

lucid iron
#

Sometimes the quality becomes hat

rough lintel
#

i understand now...

lucid iron
#

But that's ok

rough lintel
#

okay okay. but how do you assign the quality modifiers

brittle pasture
#

(tbh machine rules are pretty easy once you know how TargetField works and get past all the nested fields that 99% of machine rules don't need to care about)

lucid iron
tawny ore
#

I think this on the bottom is the only thing you'd have to patch

rough lintel
#

oh joyous day, an example

#

so its not copyquality, but

#

qualitymodifiers

#

👁️

#

oooh and then the modification

#

oooooooh!

#

i see... very slowly

tawny ore
rough lintel
#

ignore the ID?

tawny ore
#

Actually, I'm trying to remember here. Do the modifiers get the input item as a context?

rough lintel
#

oh wait i see the example here

tawny ore
#

You want to set quality to 1, 2, or 4 (silver, gold or iridium) based on the input item's quality.

rough lintel
#

mmhm

#

can i set it based on a chance?

tawny ore
#

So the rule can be set it to 4 if the input is also 4 and random chance of 0.1

rough lintel
#

ah

#

i tink this is it

tawny ore
#

Ah perfect!

#

Yeah that's exactly how it'd look like

rough lintel
#

gotta look at gsqs now hehe

tawny ore
#

Only instead of adding to quantity you'd want to set the quality

rough lintel
#

so modification would be set

tawny ore
#

Set or Add would behave the same since in both cases the seeds are starting at 0

reef kiln
#

Is there a way to search messages for a ping? My tablet says I was pinged in this channel but I can't find the ping. Or did someone do a channel wide ping?

tawny ore
#

It depends on if you were mentioned directly or via a group

rough lintel
#

itd be this thing frog

rough lintel
tawny ore
#

Yeah, and that's where the GSQ comes in so your rule only applies if Input item has a certain quality

rough lintel
#

ooh ok!

tawny ore
#

You can have one rule per quality level and a different chance for each one

#

Or even a rule per input quality level and output

#

This is probably one of those cases where whatever rule matches first is the one that's applied (or none if no matches occur)

brittle pasture
rough lintel
#

so currently, ITEM_QUALITY Input 1 1, RANDOM 0.15 means..... if the input matches silver, then.... ?

reef kiln
#

I found it. It was hours ago. Thanks 🙂

rough lintel
#

not sure what the RANDOM bit does, outputs silver?

brittle pasture
#

means 15% chance

rough lintel
#

oh 15% chance to output silver REGARDLESS of input?

tawny ore
#

Yes, it needs to match both of those

brittle pasture
#

it's an AND, so 15% chance AND input is silver

rough lintel
#

OH!

#

okay i see!

#

so if the input is iridium, and random is 1, it's going to be guaranteed iridium

brittle pasture
#

you can just remove RANDOM 1 then

rough lintel
#

oo ok

#

what if i wanted it to be either gold or iridium if it's iridium?

tawny ore
#

ITEM_QUALITY <target> [min] [max] where target is Input as in the input item
RANDOM <chance> [@addDailyLuck] where chance is the % and you can optionally have luck affect it

You can combine as many or few GSQs together as you'd like

#

You can make it unconditional by having that part be blank and then the rule will just apply by default always

rough lintel
#

ive never explored these item gsqs so theyre very new to me

#

i am usually in the relationship gsqs lol

tawny ore
#

There's a ton you can do with it. Farmer skill can affect it, you can check other things about the input item, it can be based on the season or day of month.

#

The possibilities are endless

rough lintel
#

god this syntax is gonna beat my ass but at least i know what i want now

#

thank you friends

tawny ore
#

It's a lot like dialogue and things like that where GSQs are separated by commas, and whatever parameters it has are separated by spaces.

#

And you just have to refer to the wiki to know what parameters it's looking for

hot gale
#

If I were to make a mod that allows the player to obtain 'high quality' seeds, would they grow into 'high quality' crops?

rough lintel
#

but thats my idea 😔

#

but yes

tawny ore
#

They wouldn't grow into high quality crops unless you made it do that

rough lintel
#

^

tawny ore
#

The vanilla game doesn't have any special handling of quality seeds, but that's what Lani is building.

tribal ore
#

The vanilla game does this with fruit trees

reef kiln
tawny ore
#

Oh do fruit tree seeds have quality, I didn't realize that

lucid iron
#

u can back read the channel we were just discussing how 2 make it happen

#

fruit trees that get chopped in 1.6 get a quality if they lived longer than 1 yr

#

to match the fruit quality increase

#

new custom bush feature plz thx

tawny ore
#

Ah, that's right. To make it a bit easier to relocate trees without losing all the time you put into it.

dusk mulch
#

god this has to be the biggest, hardest mod i have done

lucid iron
#

joja™️ gmo salmonberries

dusk mulch
#

Welp, that is... 1/80 sprites done...

rough lintel
#

alright, so for regular crops to get regular seeds
ITEM_QUALITY Input 0 0 and for a silver crop to get silver OR regular seeds.... ITEM_QUALITY Input 0 1, (RANDOM 0.15 + PLAYER_BASE_FARMING_LEVEL) ???(pretend that's a formula)

#

yall know how crop quality is determined by farming level? i wanted to... add that in here too

lucid iron
#

you cant maff like that

hard fern
#

For some reason i thought you said "180 salmonberries"

rough lintel
#

im assuming. its. something li-

#

oh 😔

tawny ore
#

That's the default

rough lintel
#

oh okay

tawny ore
#

You only need a rule to promote them to a higher quality

rough lintel
#

how tf do i formula silver to potentially be silver or regular depending on farmer shlevel

#

ok let me try again

tawny ore
#

Also I don't think you can just add the player farming level to the condition

rough lintel
#

ITEM_QUALITY Input 1 1 is cor...rect now*

tawny ore
#

ITEM_QUALITY Input 1 1 is needed to match silver

rough lintel
#

oh okay

reef kiln
tawny ore
#

Silver=1, and so ITEM QUALITY Input 1 1 means match item between silver and silver quality.

#

The two 1s are the range of quality you want it to match.

rough lintel
#

and then to give silver is just the 2 * chance for gold formuler

#

but in gsq form and without the fertilizer level bit

#

0.2 * (farming level / 10) + 0.2 * ((farming level + 2) / 12) + 0.01

tawny ore
#

The rule should basically guarantee silver, gold, or whatever as long as the game state query "passes" the condition

rough lintel
#

nod

tawny ore
#

You're not really doing any math in the quality modifier, just using conditions to affect the chance of it passing the test

rough lintel
#

but that's the math to determine the chance

#

its the RANDOM (the math)

tawny ore
#

it either matches the condition or not, and if it does the seed will be silver. I think having this level of formula in the GSQ isn't possible.

rough lintel
#

hrm okey

brittle pasture
#

well you can maybe use CP tokens, which supports arithmetic

#

that or roll your own GSQ in C#

tawny ore
#

Yeah you can use CP Tokens in the Amount

rough lintel
#

i just wanted the chance in the seedmaker to scale based on the uh farming level

#

ooh!

tawny ore
#

So the thing about GSQs is that the result is never anything other than YES or NO pretty much, but with CP you can do much more advanced things.

rough lintel
#

oh so i do the funny math in the amount section

#

ah, i see

calm nebula
#

As a general rule when I approach a new project I do the hardest part first

#

Then I get bored and don't finish the easy part

iron ridge
#

oh no... I have done something very broken and very infinite loopy

tawny ore
#

Yeah, GSQs is just whether or not the rule should apply at all, once it knows the rule should apply, CP can put the right number in there with math and all

calm nebula
#

Some math

#

Basic math

#

No one let me have a logarithm

iron ridge
lucid iron
#

i cant read this

brave fable
#

might need a microscope and a research team

rough lintel
#

ok i think i fried my brain on this lowkey

brave fable
dusk mulch
#

ohhhh

iron ridge
rough lintel
#

is {{SkillLevel:Farming}} a usable token?

rough lintel
#

pog

#

thank u, just wasnt sure

tawny ore
#

It definitely exists, but what I'm not familiar with is if that can be used alongside the operators to calculate a value. I mean it sounds like it should, but not something I've tried myself.

harsh snow
#

could someone help me troubleshoot?

#

i added an edible fish item but its sprite won't load and it won't let me put it in fishtanks

rough lintel
#

!json

lucid iron
#

!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.

#

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.

rough lintel
#

post it here-

lucid iron
rough lintel
#

same braincell ...

tawny ore
#

quick draw Lani cool_finger_guns

lucid iron
#

there's no brain in here, only a single moldy cheeto

harsh snow
#

very useful website

#

sprite won't load, can't go in a fishtank, and it won't prompt the fishing minigame

#

and i'm too new to understand why

rough lintel
#

entry for fish data looks wrong i think

vernal crest
#

Your data/fish and data/aquariumfish entry keys should be {{ModID}}.Goldfish not the texture name.

rough lintel
#

im not familiar with fish tho

#

also, you added it to the mountain

hot gale
rough lintel
#

and you dont need to do {{ModId}}.Mountain

#

since its vanilla

harsh snow
rough lintel
#

yes, but i know like zero about fishing data so i could be talking out my ass

#

it just looks wrong

vernal crest
#

Your id can be whatever you want because it's just an identifier for the list of fish.

#

So making it match your itemid is probably a good idea unless for some reason it's helpful for you to call it mountain.

#

I made a fish mod literally yesterday so this is fresh in my mind lol

#

Also are your PNG files definitely named AquariumFish.png and Goldfish.png?

harsh snow
#

yes that I definitely made sure

#

just tested it again and it's still not working rip

iron ridge
#

that is.. a very wrong coordinate

tawny ore
#

This can be problematic. I'm pretty sure keys aren't supposed to have slashes in them.

rough lintel
#

^ correct

vernal crest
#

They will have just changed that anyway

rough lintel
#

they are supposed to be "{{ModId}}.Goldfish" or something of the like

harsh snow
#

i've fixed those 2 problems

vernal crest
#

Because I told them to change the keys already

rough lintel
#

word

uncut viper
#

(what problems would the slashes even have?)

tawny ore
#

Ah, sorry I was looking over the json file

rough lintel
#

the problem is that its ooglay

ivory plume
uncut viper
#

telling someone that something is a problem if the reason for it is entirely aesthetic is not helpful for learning

tawny ore
#

Maybe my knowledge is outdated, but I could've sworn in some assets it's pretty strict about keys not having certain special characters

rough lintel
#

i was joking but bokay

vernal crest
rough lintel
ivory plume
#

The unique string ID format ensures it can be used in other contexts. For example, a unique ID with slashes won't be usable in any slash-delimited data string, file path, etc.

harsh snow
#

i completely restarted the game so there were no old fish in my inventory

vale stream
#

Does anyone know the equivalent of IClickableMenu.drawHoverText for android SDV? Trying to patch shops' item description

rough lintel
#

if i do Modification: Set i don't even think setting Amount will do anything, will it?

#

if it just gets set in the condition

#

SDVpufferthinkblob i know i am wrong but i do not know why

tawny ore
harsh snow
#

i'll see if that helps ty

tawny ore
#

This is guaranteed to load the Texture correctly. In fact, there's really no point in having the separate texture load as the Texture field itself is patchable by other mods.

vernal crest
#

The texture is not the problem, it's identical to how I have mine

tawny ore
#

I'm just saying it rules out one extra thing that may be configured incorrectly.

rough lintel
#

i don't think i can be as granular as i want with just editing qualitymodifiers for the seedmaker, so i will just table this idea i think SDVpufferclueless

tawny ore
rough lintel
#

no no i know, i just can't math the probabilities like i want because gsqs are not like that

dusk mulch
#

If I dont add a schedule to an NPC will it cause an error or will they just stay in the 1 spot?

tawny ore
#

It can be "1" to statically set it, or a token that results in the value of 1.

dusk mulch
#

Damn it

tawny ore
#

GSQs can't have the probability, but the Amount itself can use tokens to determine it's value

lucid iron
#

if you want more granular logic

dusk mulch
#

How do I get them to stay in the 1 spot without a schedule?

lucid iron
#

you can implement a C# custom outputmethod

rough lintel
#

just do a spring schedule and then put the coordinates where u want them to be

#

you have to have a schedule

lucid iron
#

which is prob fine cus well, need C# for the harvest part anyways

rough lintel
#

or they will not spawn

dusk mulch
#

Alright

vernal crest
rough lintel
#

spring: 600 Map x y d

#

and thats the whole schedule

iron ridge
#

...oh
that should probably be width

dusk mulch
rough lintel
#

if i want different formulas based on input quality

#

swear to god i bet making a contest with a win condition is easier than this

tawny ore
#

So I think you can make this into a CP Token:
0.2 * ({{SkillLevel:Farming}} / 10) + 0.2 * (({{SkillLevel:Farming}} + 2) / 12) + 0.01

And then maybe use this in the GSQ:
"RANDOM {{YourToken}}"
"Amount": 2

rough lintel
#

what is amount 2

tawny ore
#

That's gold

rough lintel
#

also: holy shit i can random {{token}}???

tawny ore
#

It means assign gold if the random chance of (gold quality chance) passes

rough lintel
#

ok we are so back actually

iron ridge
rough lintel
#

it was so over a minute ago

harsh snow
#

just want to make sure my file structuring is also fine i'm pretty sure it is but i might be wrong

tawny ore
uncut viper
#

your file structure can be whatever you want, but ideally you would have file extensions showing

rough lintel
#

it can if you do {{Query: }}

vernal crest
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.

iron ridge
#

pillow trying to parse tbins

tawny ore
#

As long as what CP stores in the token is the chance number like goldChance = 0.5, then having "RANDOM {{goldChance}}" is the same as having "RANDOM 0.5" meaning 50% chance (or whatever the calculation is).

rough lintel
#
"Name": "GoldFormula",
"Value": "{{Query:0.2 * ({{SkillLevel:Farming}} / 10) + 0.2 * (({{SkillLevel:Farming}}  + 2) / 12) + 0.01}}"
},```
#

methinks

ivory plume
#

Yep, that should work fine.

dusk mulch
#

God it feels so weird making a custom NPC, like im a mad scientist making Frankenstein

rough lintel
#

ohhhh we are so back

#
                    "Id": "QualityAssignment",
                    "Condition": "ANY \"ITEM_QUALITY Input 1 1, RANDOM {{SilverFormula}}\" \"ITEM_QUALITY Input 2 2, RANDOM {{GoldFormula}}\" \"ITEM_QUALITY Input 4 4, RANDOM {{IridiumFormula}}\"",
                    "Modification": "Set",
                    "Amount": "?"
                },``` ok so
#

wow i hate tabbing

#

silver formula just multiplies goldformula by 2, and iridiumformula just multiplies it by 0.5

#

but uhhhhhhh

#

i dont know what i'd set for the amount.

#

if it checks... each of these

tawny ore
#

Silver = 1, Iridium = 4

#

It will apply the first matching rule so put them in the same order as the game code for it to be evaluated in the same way

rough lintel
#

oh okay

tawny ore
#

i.e., it checks iridium first, then gold, then silver

rough lintel
#

so make iridium go first, gotcha

true coyote
#

if I "save" my mod mid way through uploading it (not at the publishing part) that will just save it for later and not publish it right? just getting late and I may not be able to get it uploaded tonight

calm nebula
#

It shouldn't matter because you're switching on the input quality?

rough lintel
#

that is true

true coyote
#

danke SDVpufferthumbsup

rough lintel
#

if its NOT* iridium it wont ever equal iridium

dusk mulch
#

I want to make a system where when you sell a certain amount to an NPC a flag gets set for the next day to change a map, would that need C#?

calm nebula
#

I think my record was more than two years between making mod page and releasing mod

dusk mulch
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 4 C# mods and 1 content packs.

harsh snow
#

here's my log

rough lintel
harsh snow
#

thank you for helping so much btw

tawny ore
rough lintel
#

but that number i want it to be depends on what condition it triggers

tawny ore
#

You'll have an amount per rule, and a rule per quality

#

And based on what you described, I think you'll only have a rule for producing silver or gold, right?

vernal crest
# harsh snow here's my log

Ok can you try putting patch export Mods/FletchHead.MoreFishies/Goldfish into your SMAPI console and then going to the patch export folder inside your Stardew Valley folder and confirming that it has exported a .png of your fish? I want to double check your texture load is working properly.

rough lintel
tawny ore
#

Ah, okay three rules then

#

Each with the Amount set to 1, 2 and 4 respectively

rough lintel
#

oh so i just do three different modifiers

#

???

tawny ore
#

Yes, exactly

rough lintel
#

OH DUH

#

okay that . clears everything up lmfao

#

we are so back (again)

#
                    "Id": "SilverQualityAssignment",
                    "Condition": "ANY \"ITEM_QUALITY Input 1 1, RANDOM {{SilverFormula}}\"",
                    "Modification": "Set",
                    "Amount": "1"
                },
                {
                    "Id": "GoldQualityAssignment",
                    "Condition": "ANY \"ITEM_QUALITY Input 1 1, RANDOM {{SilverFormula}}\" \"ITEM_QUALITY Input 2 2, RANDOM {{GoldFormula}}\"",
                    "Modification": "Set",
                    "Amount": "2"
                },
                {
                    "Id": "IridiumQualityAssignment",
                    "Condition": "ANY \"ITEM_QUALITY Input 1 1, RANDOM {{SilverFormula}}\" \"ITEM_QUALITY Input 2 2, RANDOM {{GoldFormula}}\" \"ITEM_QUALITY Input 4 4, RANDOM {{IridiumFormula}}\"",
                    "Modification": "Set",
                    "Amount": "4"
                },``` ?
#

do i change the conditions for each one or like

#

or do i just

#

keep same condition

tawny ore
#

I don't think the any is needed, and if you want to match a range of qualities you can do it in one ITEM_QUALITY by using the lower/upper numbers

harsh snow
#

does this mean {{ModID}}/... is not working and I should just put the ID manually?

#

that's what I pulled from the big error block at least

tawny ore
#

"ITEM_QUALITY Input 1 4" means it will match silver through iridium
But I don't think that's what you want because that means Silver input items will have a chance of producing Iridium.

rough lintel
#

nodnod

tawny ore
#

I think you have it backwards in that you want Silver to Iridum seeds to all have a chance of producing Silver

rough lintel
#

silver should only produce silver, gold should produce gold and silver, iridium produces all 3

#

oh.

tawny ore
#

Yeah, what you have there is a condition on the Input item (i.e. crop) that lets the seed produced be iridium if it's silver to iridium

rough lintel
#

OH

tawny ore
#

Just remember Input refers to what you put into the Seed Maker, not what comes out of it

rough lintel
#

so input 1 4 should be on the iridium condition?

vernal crest
# harsh snow this is what I get

Uhmmm I can't remember what that error means. But I did just realise that if you switched to using internalassetkey like Matt suggested then there's no texture Load to check anyway. Did you switch to "Texture": "{{InternalAssetKey: assets/Goldfish.png}}"?

tawny ore
rough lintel
#

! i see

tawny ore
#

Input 4 4 should be on the rule with Amount: 4 since you only want Iridium seeds if the crop is also iridium quality

rough lintel
#

ahhhhhh i see

tawny ore
#
{
    "Id": "SilverQualityAssignment",
    "Condition": "ITEM_QUALITY Input 1 4, RANDOM {{SilverFormula}}",
    "Modification": "Set",
    "Amount": "1"
},
{
    "Id": "GoldQualityAssignment",
    "Condition": "ITEM_QUALITY Input 2 4, RANDOM {{GoldFormula}}",
    "Modification": "Set",
    "Amount": "2"
},
{
    "Id": "IridiumQualityAssignment",
    "Condition": "ITEM_QUALITY Input 4 4, RANDOM {{IridiumFormula}}\"",
    "Modification": "Set",
    "Amount": "4"
},
rough lintel
#

ahhhhhhh okay okay

#

i get it now

tawny ore
#

Only in the reverse order if you want Iridium seeds to be calculated first

rough lintel
#

if iridiumformula fails, does it go and check the gold formula?

tawny ore
#

Yes

rough lintel
#

oh my god epic

vernal crest
# harsh snow this is what I get

Oh I do remember the error now, Shiloh got it the other day and it was because her png was corrupted. Can you try just making a new png file in mspaint or something and using that instead?

rough lintel
#

is there a way to implement a "iridium can't ever produce regular seeds" rule

#

like itll guarantee a silver at minimum

tawny ore
#

The png is trying to be loaded as a data structure

calm nebula
#

You need to specify the type

#

Patch export asset image

#

Iirc

vernal crest
#

I've never specified a type when exporting anything

calm nebula
#

You only have to do that if the game has not requested it before

harsh snow
#

would this also fix it not being able to go into fish tanks or not giving the fishing minigame too or are they unrelated

#

to me they seem unrelated but idk much

vernal crest
dusk mulch
#

bro there are only 3 PORTRAITS AND THE 1ST ONE TOOK ME 30 MINUTES AND IT DOESNT EVEN LOOK THAT GOOD

tawny ore
#

The reason why I suggested using InternalAssetKey is that it basically makes it impossible for the texture loading to be the issue. By reducing the number of things that can be wrong, you'll eventually find out what is wrong. Instead of doing that you're going to end up troubleshooting the same steps over and over again.

harsh snow
vernal crest
#

It's appearing as an error item when you do that, I assume?

harsh snow
#

actually there's no error

#

and the export folder has the exact sprite in assets

#

but there's still no sprite in game

tawny ore
#

You haven't technically gotten to any of the fish-specific stuff yet. Spawning an object is relatively straightforward. Not a lot is needed for that to spawn correctly.

calm nebula
#

Okay

#

Stupid questions time

#

How big is your sprite