#making-mods-general

1 messages Β· Page 100 of 1

brittle pasture
#

yeah a DP-like system can maybe work, but Valve is a big entity that deals with publishers directly, who all have varying opinions on that stuff. it's a legal headache for the ppl involved I imagine

next plaza
#

Yeah, Steam tried it at one point

uncut viper
#

im pretty sure steam also at one point tried it

tight rivet
#

.. Did they? Have I blanked on it?

uncut viper
#

they did get yelled at

next plaza
#

Yeah, remember the horse armor stuff?

uncut viper
#

it might not have actually been implemented

rancid musk
#

Console modding with mod.io? Time to integrate CP into the base game and release content mods for everyone /s

brittle pasture
#

CP is already part of the base game if you're willing to deal with the XNB demon

velvet narwhal
#

what's the consensus? 12-48 business months for smapi mobile?

brittle pasture
#

nah it's not coming

rancid musk
#

CP is way more reactive than just XNB mods, lol

velvet narwhal
#

did zane opt back out?

brittle pasture
#

I swear on me good eye

tight rivet
drowsy pewter
#

if you only have one good eye i would say you should probably not wager it

uncut viper
#

i swear on selphs bad eye

brittle pasture
#

(that was a joke, I still have both eyes, though one of them is worse than the other)

tight rivet
#

It was for Skyrim, which is why I thought it was Beth.

next plaza
rancid musk
#

Yeah, the only realistic thing for console mods is resource editing. Hence mentioning CP, lol

next plaza
#

If the game had a scripting language more stuff would be possible

rancid musk
#

(I mean unless you introduce, say, lua scripting. But that's a whole new kettle of fish that'd take even longer)

next plaza
#

But that's not practical at this point

rancid musk
#

lol

next plaza
#

Like BG3 script mods are fine on console I think

velvet narwhal
#

there was someone making lua...

next plaza
#

Just nothing relying on script extender type stuff

rancid musk
#

Technically events and trigger actions are scripts

brittle pasture
#

like factorio. that game only has CP-like mods to use our analogy, but what the game provides is really, really, really robust

rancid musk
#

Just... not very powerfuil scripts.

velvet narwhal
#

(it's fun for me to look at every now and then whenever someone mentions lua cause it's alien to me)

rancid musk
#

Also while I say Lua I really mean Luau. Lua is bad enough lets at least have type safety please.

next plaza
calm nebula
#

Yes

rancid musk
#

I'm not not saying that

tight rivet
#

[concern]

rancid musk
#

Oh no you added an unsafe pointer to the soup and made the governor segfault

tight rivet
#

.. woof, the game's more noisy nowadays. I guess I should go check why Island_W is complaining

real seal
#

would anyone be able to answer a few simple questions about modding for me? 😭 im new to this and terrible at reading instructions on websites it seems

brittle pasture
#

sure, no need to ask next time!

velvet narwhal
#

need like a subtitle on this chat for like, "please interrupt them if they're talking about pseudo-off-topic" SMCKekLmaoDog

real seal
brittle ledge
calm nebula
#

@blissful panther please

brittle ledge
#

!gettingstarted

ocean sailBOT
calm nebula
#

Add that to the subtitle

real seal
#

but uh!! ive been doing some sprite edits of the new sve fruits to match the better crops and foraging (explicitly for personal use) since they.. stand out like a sore thumb to me.. just using the existing pngs in the files and editing them myself

calm nebula
#

Please interrupt these fools if they're off topic

real seal
#

im wondering if making them bigger so i can make them higher resolution will mess them up?

velvet narwhal
#

you gotta use a framework to make them higher res, like scale up 2

brittle pasture
#

that'd need a separate framework mod

real seal
#

i do have that installed :-0 is there any specific way i gotta do that?

#

im.. kind of a fool

velvet narwhal
#

yeah it's a content patcher format

real seal
#

ahh i see.. i might just keep editing the pngs themselves then

#

i cant do coding to safe my life lol

brittle pasture
real seal
#

drawing is my job hehe

brittle pasture
#

(ugh ai thumbnail. sorry not related)

velvet narwhal
#

well editing the pngs won't give you higher res, you're stuck at 16x16 (objects) 16x32 (big craftables) 64x64 (portraits) 16x32 (character sprites)

drowsy pewter
#

I dont know if I would recommend trying to do a high res sprite for your first mod but I would recommend learning how to write a simple CP mod to replace the sprites without editing the images directly in the mod files... otherwise updating SVE will be a pain

#

It'll be very simple and give you a starting point for future modding

brittle ledge
#

(also don't be too intimidated by Content Patcher code, it's very newbie friendly πŸ™‚ )

velvet narwhal
#

the logs/errors will definitely hold your hand the entire way through SMCKekLmaoDog

real seal
#

ill take a crack at it!! i dunno ive never done any modding before so im just intimidated by it a tad.. hehe

brittle pasture
#

yeah, if this was like your own mod that you're thinking of releasing I'd have also steered you away from doing high res and try to work with that 16x16 gives you

drowsy pewter
#

There's a tutorial for setting up your first CP mod and the edit that you need to do is literally one line of code basically

#

I'm sure people would even tell you what to write lol

#

If you want to look into it

#

!cp

ocean sailBOT
real seal
#

but thank you everyone for the help!!

#

ill try and do it myself before i come back here begging lol

velvet narwhal
#

oh yeah the cp docs have a straight up "copy and paste this and let the error handler tell you what you've done wrong"

brittle ledge
#

It might also help if you look for a mod that does the same kind of thing you want to do, as a reference πŸ™‚

rain basalt
#

focused on code for 2 hours come back to 449 new messages.... yah not gona scroll back lol

velvet narwhal
#

you only missed "not a lawyer"

rain basalt
#

lol well think ill turn in early got alot of things to test before the early release of multimaps mod

lucid iron
#

how do u know its 449 new messages exactly

rancid temple
#

When you don't have Discord focused, it keeps track of the new messages

lucid comet
#

isnt there a number when you come back? telling you how many messages are unread

brave fable
#

don't worry, it was only legal talk

lucid iron
#

ive never seen it

#

though i bet i turned it off 6yrs ago and no longer remember

rancid temple
lucid iron
#

oh that thing DokkanStare

brittle pasture
#

chat's too quiet, time to restart it - if I have a mod licensed under AGPL, and someone harmony patched it, am I legally obligated to sue them for everything they have

lucid iron
#

sometimes it's like incorrect for me

#

so i think my brain just filters it out

rancid temple
#

You have to say if it's a joke or it's entrapment

real seal
#

turning back here for help a lot sooner than i thought 2DogNervy how exactly does one make a txt file become a json file

brittle pasture
#

!fileextension

rancid temple
#

!fileextensions

ocean sailBOT
#
Hidden File Extensions

Windows and Mac hide most file extensions by default. If you are creating or updating mods, it's helpful to show file extensions so that you can be sure all mod files are named correctly.

To show file extensions on your computer:

On Windows 10, open File Explorer, click on the View tab, then check the File Name Extensions box.

On Windows 11, open File Explorer and click on View > Show > File Name Extensions.

On Mac, open Finder, and in the menu bar, click on Finder > Settings (or Preferences) > Advanced, then check the Show all filename extensions box.

rancid temple
#

That probably should be alias'd lol

#

Once you have those on, just rename your files from .txt to .json

uncut viper
#

its not often you only need one extension

#

usually you wanna see em all

rancid temple
#

Yeah but I dunno if missing the plural is a good enough reason for a command to fail lol

light cedar
#

"You need have the [Content Patcher] and [Generic Mod Config Menu]
Mod to choose the texture!"

it doesnt explain how to though. ik the config, it says non for all of them. should i say "yes" or si" ? or can i change it in game??

https://www.nexusmods.com/stardewvalley/mods/27617?tab=description

Nexus Mods :: Stardew Valley

Some Farm (and island) Kitchen retextures! With 3 Oven styles, swatches -wood, Tiles, Countertop and drawers- and themed kitchenware sets.

uncut viper
#

i do. send the user to jail if they get it wrong

rancid temple
#

Well Selph, it was nice knowing ya, see ya in 10-15 I guess

brittle pasture
#

anyway, you'll never catch me alive! turns on portable back hole generator and gets instantly obliterated

uncut viper
#

i call dibs on EAC

next plaza
#

EAC makes me think of Easy Anti Cheat

rancid temple
#

Same

light cedar
#

mb

rain basalt
real seal
#

oh man i think i really suck at writing code 2DogNervy

brave fable
#

to be fair if you've never done it before you probably won't be the best at it yet hahah

#

just follow the instructions and find some good examples

real seal
#

like i said art is more my ballpark 😭 my biggest issue rn is just getting a measly manifest file set up!!

#

cant move mountains in a day i just gotta be patient w myself and read stuff

brave fable
real seal
#

i am!! its giving me an error on the update keys line though so im a tad confused

rancid temple
#

You can ignore that

real seal
#

oh thank god 😭 ok thank you

rancid temple
#

UpdateKey is used when you're releasing your mod on Nexus (or wherever you put it), so not something to worry about now

brave fable
#

(you can remove the updatekeys lines entirely, not ignore the error if it's there)

tardy adder
#

I JUST DISCOVERED MMAP

real seal
#

🫑 thank you everyone with your patience with me

rancid temple
#

I usually just put in "Nexus:-1" to make it shut up lol

velvet narwhal
#

I keep the ????

rancid temple
#

But only so I don't have to rewrite it later

calm nebula
#

We use it all the time

tardy adder
#

WHAT THE HOW DID I NOT SEE IT

#

My building has LIGHT

real seal
#

i will keep this all in mind thank you everyone im positive ill be back in like 5 minutes with more questions

brave fable
#

this channel's made for questions, don't sweat it SDVpufferthumbsup

velvet narwhal
#

I should really make my own template for csprojs cause I don't think I can live without the manifest builder now SDVpufferclueless

brave fable
#

really? i always imagine the manifest builder a bit trivial, it takes like a minute to copy and set a manifest and then it's never touched again until you change the version

calm nebula
velvet narwhal
#

Yeah I forsee my stupidity

calm nebula
#

And need to fix the miniminimum smapi and game version over allll of them

lucid comet
#

i'm trying to change the bonus equip icons for sword & sorcery but cant really find the correct target(s). the "+" is from spacecore, i found that, but before i trial and error more - does anyone know the target for armor/offhand/shield? o.o"

velvet narwhal
#

Considering this one expansion csproj has ...3? Different manifests? I forsee myself forgetting one all the time

real seal
#

ah jeez ok heres now where i have a few questions.. since im not technically modding stardew valley but doing a mod for stardew valley expanded how do i go about like.. coding that ?? i guess?

velvet narwhal
#

Need a hyperlink to the manifest dependency wiki.gg

brave fable
#

need a what

lucid iron
#

but i wouldnt open a csproj just to use it for a content patcher only mod blobcatgooglyblep

calm nebula
#

(Yeah)

velvet narwhal
#

Yeah I don't have a csproj for those it's more for my crimes / other projects

lucid comet
#

so that depends on what exactly you want to change

real seal
#

objects, just the icons of some fruit and elixers and stuff

#

ive already got em drawn up and i was just.. doing it the nitty gritty way by replacing the assets and making backups of the images incase an update popped up

brave fable
#

(merrily waiting for sdmbcngpkg 4.3.2 so i dont have to use rebuild solution to get my content pack included with my dll)

velvet narwhal
#

Since it's specifically for SVE just set it to true

#

Then you don't have to care about SVE updates unless they straight up delete assets

lucid iron
#

isnt that out

brave fable
#

it's not showing up in the package manager sooo

#

probably still deploying

lucid iron
#

maybe gotta turn it off and on again

brave fable
#

i only just turned it on :/

velvet narwhal
#

(Don't look at me forgetting I put my nuget in offline mode) SDVpufferpain

brave fable
#

if i have some serialised object like this, do i also need to add the XmlType attribute to its data model classes to have them serialise

[XmlType("...")]
public class ShrineTree : Tree
{
    public readonly ShrineTreesEntry Data;
    public readonly ShrineTreeDefinitionsEntry Definition;
#

i'm assuming yes since they're null

lucid iron
#

u gotta use the spacecore thing right

brave fable
#

this is the spacecore thing

lucid iron
#

since trees go in saves

brittle pasture
lucid iron
#

oh data model

#

naw u dont need it AquaThumbsup

lucid iron
#

data models for custom assets never go into the save

brave fable
#

maybe i'll just keep things simple and remove the trees from the world before saving. it's not like they're growing fruit or anything, just decorative trees

brittle pasture
#

not sure why you'd want to save them

#

what chu said

calm nebula
#

But the readonly may he causing you issues

velvet narwhal
#

Oh the ichor snorlax approach

tiny zealot
#

The Snorlax Technique

brave fable
#

'remember to give up. i believe in you'

lucid iron
#

well no snorlax involved here, this is a pokedex entry of a snorlax instead of an actual snorlax

brittle pasture
#

(that is a brilliant way to phrase it)

calm nebula
#

try it?

brave fable
#

well i did try it, the models are null lol

calm nebula
#

I think the readonly is an issue though

real seal
#

i dont mean to interrupt the conversation btu ive got another question 😭

lucid iron
#

ask away

real seal
#

do people do like.. coding commissions? i dont think i can learn how to do this

rancid temple
#

!commissions

ocean sailBOT
real seal
#

omg you guys are so helpful

lucid iron
#

blueberry i think rather than attaching the fields to the ShrineTree, you should access it with content Load as required think

real seal
#

thank you all so much

lucid iron
#

can also cache it on some static class with a lazy load, which is what i do

brave fable
#

this mod's never actually releasing man it's been like 5 years

#

i'll save the optimisations for when i care

next plaza
#

Or as you said remove the tree before saving

brittle pasture
#

writing data model asset with the instance itself is like giga extreme optimization though

#

it's easier to not do it

next plaza
#

True

#

Wouldn't it better to like store a string ID for it?

#

To lookup when needed

lucid iron
#

content's cached anyways feel free to just Game1.content.Load<urclass>()

#

game itself does this whenever it do GetData()

next plaza
#

And for a cache, you could just [XmlIgnore] it, and refill the cache the first time its accessed

#

(Maybe done automatically with a wrapper property)

calm nebula
#

....so, like but like

#

teh readonly isn't a problem?

brittle pasture
next plaza
#

Then again

#

Net fields are initialized by default

calm nebula
#

yes

#

the net field is init by default

#

its VALUE changes

next plaza
#

If it had a default value then it'd be fine (assuming the fields on it aren't readonly)

calm nebula
#

and also I have a suggestion that NetFields should implement ShouldSerialize to reduce the save file size (and mp packet size but anyyyways atra forgets how to do reflection like a normal person.)

#

crap

next plaza
brave fable
#

it's literally fine, i'm just deleting all trees on resetsharedstate

next plaza
#

What kind of net field is bloated is saved?

calm nebula
#

huh

next plaza
calm nebula
#

I really though this would failed

next plaza
brave fable
#

nothing needs to persist, i just didn't bother clearing them before

#

easier this way

next plaza
#

I didn't think resetSharedState was called right before saving

brave fable
#

oh btw would spacecore be able to get a simple RegisterAll in the same way harmony has a PatchAll

calm nebula
calm nebula
#

I thought it would fail

lucid iron
#

wow deforestation

brave fable
#

dw we reforest on resetsharedstate (and i meant i destroy everything on cleanupbeforesaving)

next plaza
calm nebula
next plaza
#

Though I don't think defaults would be doable regarding MP packets, just with how the net fields currently work

calm nebula
next plaza
calm nebula
calm nebula
next plaza
#

Took me a minute to see the difference. IT works with classes but not structs?

calm nebula
#

nope

#

although Ithink the structs thing is old

#

and has to do with structs being structs more than anything else, ie

next plaza
#

Yeah, probably

#

Since you pass a copy into the reflection thing most likely

calm nebula
#

TestClass c  = new();
var d = c;
d.test = 4;
c.test = ?
#

yeah

next plaza
#

(Unless it doesn't do that when boxed?)

calm nebula
#

I don't think boxing would help here

next plaza
#

If only reflection had a ref version for struct use

calm nebula
# next plaza Yes?

(and xml serializer basically just updates the values of the netfields, so if it's "not there" it would be "default")

next plaza
#

Oh, for structs

#

There's SetValueDirect?

calm nebula
#

huh

next plaza
#

And manually boxing it somehow

#

"somehow" being "I don't understand why it works"

#

Oh, hmm, I guess I do

calm nebula
#

huh

next plaza
#

I guess you could... construct an empty version of the object just for serialization comparison and use that?

calm nebula
#

or b yeah, while generating the serializer

next plaza
#

Though I guess the goal would be net types for primitives SDVPufferThink

#

I'm not sure CA wants to touch serialization much though

calm nebula
#

yeah, probalby not at at this point lol

brave fable
#

you both say 'probably' and 'not sure' as if anyone has ever wanted to mess with serialisation

calm nebula
#

this was kinda fun if hilarious

#

which is how I found out nullable primatives entirely ignore the defaultValue attribute like some sort of

next plaza
#

I suppose the xml serializer doesn't account for nullables

calm nebula
#

oh no it absolutely does

#

that's a lot of fucking text for a nullable, and yes it might be the standard

#

but the standard is DUMB

tiny zealot
#

a lot of text for a <thing>
yep, that's XML

calm nebula
#

Clearly we need to come up with our own standards

next plaza
#

That always goes well

brittle pasture
#

QML was pretty nice last I tried it

calm nebula
#

But selph I want more dollar signs in my format

#

But selph I want more dollar signs in my format

#

Or what about excess ())()()

teal bridge
#

Can anyone call to mind a built-in framework type that has a single settable property and fires a change event?

#

I know that it's trivial to write, but I'm very specifically looking for one that's already in the BCL, and I've been scratching my head for a while and can't think of any existing class or any useful terms to google up.

next plaza
#

I can't think of anything, though I imagine there's a lot of the BCL that I'm unaware of

dreamy jolt
#

Hi, I'm playing with SVE and I was wondering if it is possible to change the camel's texture with Alternative Textures? I was going to mess around with it but I thought maybe I should check here first

tender bloom
#

What is the camel?

next plaza
#

Farm animal

brittle pasture
#

sure, you can add a custom skin to an animal

#

and AT should automatically pick it up

hollow dust
#

hey guys, do you guys know how to extract the apk of Stardew on mobile? I wanted to replace the xnb files with my edited ones and I can't see the "asset" files whenever I open the extracted apk

cinder thorn
#

@next plaza Hey Casey, just realized I couldn't search up GMCM so I went to check and see someone tagged it as AI so it got filtered for me.

next plaza
#

-_-

#

5 people?!

#

Ugh, removed now

cinder thorn
#

Maybe turn that permission off?

next plaza
#

Hmm, still showing on the mod page though

#

You can do that?

cinder thorn
#

Yes, I turned it off for all my mods

next plaza
#

Well I have 92 mods, that ain't happening

#

Why does GMCM have so many tags when none of my other mods do

#

Like... what?

grizzled rain
velvet narwhal
#

how is gmcm tagged as a balance change...

shut grove
#

I feel like someone or a few people did that maliciously or something?

next plaza
#

I just turned it off for GMCM since it seems to be the main problem mod

lucid comet
#

you can change settings without reloading the game, definitely balance change /j

vernal crest
#

This is ridiculous. Voice acting?

velvet narwhal
#

oh a mod list SDVpufferyikes we just talked about this

cinder thorn
shut grove
#

this at least reminded me to turn that setting off on my mod in advance

grizzled rain
#

someone tagged my FS top surgery scar mod as "real world issues" once

#

that is when i learned to turn tagging perms off

shut grove
#

feel like trolls would target my mod for having a trans character.

#

or for the witch, either or

#

same character

grizzled rain
#

fr SDVpufferpensiveπŸ™

lucid iron
#

When is nexus gonna make batch management for all ur mods SDVpufferpensive

velvet narwhal
#

probably when they roll out the github integration

lucid iron
#

Or like, global license/perm unless otherwise changed per mod

shut grove
#

I plan to have her heart events involve helping her revive an ancient permanent transformation spell. One event might touch on her reason for trying to bring back said spell

velvet narwhal
#

i'd like to order templates so i don't have to click the same damn things SDVpufferclueless

rancid musk
# next plaza Like... what?

Finally a fair and balanced cheating official bug fix performance optimization overhaul quality of life replacer that's broken in and working in most versions and has lighting and meshes and is just for fun is non-playable and a tutorial and .... . . . . .

woeful lintel
#

leaving it to users to tag a mod as "broken" is so humorous from a modder's perspective

hard fern
woeful lintel
#

like, ah yes, let the people who literally have a type of mistake named after them (user error) decide if a mod has mistakes

velvet narwhal
#

it's fine if the author is no longer in the community but it's the double edged sword thing

brave fable
#

programmers carefully naming an issue 'runtime failure' or 'compiler issue' instead of 'author stupidity'

woeful lintel
#

I mean, these you do know where they come from, you can pin point the issue and fix it. The user error is named like this because the issue directly comes from the user. But yeah, I get the irony

rancid temple
#

Oh I took "author stupidity" to mean the writer of the code (ie yourself in many cases) SDVkrobusgiggle

#

"Who wrote this garbage code?" //last change by you 2 months ago

devout otter
#

Is there a way to use vanilla tilesheet that's part of a seasonal set but not having it actually be seasonal?

cinder thorn
#

You want to use it in a map?

devout otter
#

Yeah, but I want to do it without having to include the sprite in my mod I don't want it be affected by the season.

rancid temple
#

Make the location indoor

#

As far as I'm aware, outdoor locations are the requirement for the seasonal switching

devout otter
#

Aw that's too bad then.

velvet narwhal
#

that's not a bad idea tbh, i was digging into stardewvalley.locations SMCKekLmaoDog

devout otter
#

Because the location is Cindersap Forest. πŸ˜…

rancid temple
#

Maybe you can make it only be one specific season lol

#

Would have to change just that locations context I guess

#

With a vanilla map, that's probably opening the door for way more problems lol

next plaza
#

I wonder if the "SeasonOverride" map property would work

rancid temple
#

It does say "which tilesheet to use"

velvet narwhal
#

hmm, maybe?

#

oh, looks pretty solid to me but idk how that works in conjunction to the whole of forest

    private Season? LoadSeasonOverride()
    {
        if (this.map == null && this.mapPath.Value != null)
        {
            this.reloadMap();
        }
        if (this.map != null && this.map.Properties.TryGetValue("SeasonOverride", out var propertyValue) && !string.IsNullOrWhiteSpace(propertyValue))
        {
            if (Utility.TryParseEnum<Season>(propertyValue, out var season))
            {
                return season;
            }
            Game1.log.Error($"Unable to read SeasonOverride map property value '{propertyValue}' for location '{this.NameOrUniqueName}', not a valid season name.");
        }
        return this.GetLocationContext()?.SeasonOverride;
    }```
woeful lintel
#

regex is trying to kill me

#

trying to match json comments is a hell I built for myself

#

so many types of possible escaped characters and cases to ignore...

wanton field
#

I took a closer look at yout VMV files. I get how you add the custom fishs. But how do you add the vanilla ones in MV?

hallow prism
#

Search mountain on my files, you may find it

unique sigil
#

is it just me or is nexus a bit wonky rn. the mod thumbnails work correctly in the mod page itself and the browse page but in profiles it won't change and it is slowly annoying me SDVpufferflat

rancid temple
#

Realistically the answer is always "yes", because there's basically always something wrong

hard fern
#

nexus is a website

unique sigil
#

wonder why it's only on the profile page though

rancid temple
#

Sometimes it's just because they're currently working on making changes there

tribal umbra
#

guys can you help me? i updated a tilesheet from walking to the desert redux just to match the simple foliage mod i use but it's bugged and when i try to edit the map in tiled, i can never acess the map in game, when i try to walk to it i get in a loop and teleported to where i was before. When i edited the mod i just placed some more of the mod's original tilesheets into the place i wanted the tree to be

rancid temple
#

You have to move all the related tilesheets into the same folder as the map when editing it

hallow prism
#

no error in log?

tribal umbra
#

let me see if there is any errors, i'll try to move everything else too

tribal umbra
rancid temple
#

Based on what you've provided, that's my best guess

#

!log if you provide a log that would help

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.

final arch
#

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

final arch
#

move the base game tilesheets into that folder too

tribal umbra
ocean sailBOT
#

Log Info: SMAPI 4.1.6 with SDV 1.6.13 build 24313 on Microsoft Windows 11 Home Single Language, with 141 C# mods and 307 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tribal umbra
#

i'll move the base tilesheets then

thorny tiger
#

guysssss

#

how do i make my custom mineral museum donateable

#

do i have to set it manually with that tag thing

#

i was under the impression it would be automatically museumable since its a mineral but i was evidently wrong

hallow prism
#

it needs the right type

#

which is minerals plural

#

since some people did the error of having singular mineral

#

REMEMBER to test with NEW items

#

old items will keep the old data

thorny tiger
#

yeah im summoning it with cjb at the start of the day when i load in

#

ty

hallow prism
#

if it still doesn't work, post the json here πŸ™‚

#

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

thorny tiger
#

you legend

#

ok followup for my mineral

#

how is crystallarium time calculated

#

because i havent set anything but its automatically decided its 3 days 3 hours

hallow prism
#

yes there's a default time

#

you can overwrite it based on mineral input

#

!vmv has examples, if you feel like looking at the machines json

ocean sailBOT
#

Visit Mount Vapius (https://www.nexusmods.com/stardewvalley/mods/9600) is an expansion mod that adds a new region in the mountains. Accessible by train, you'll enter the hamlet of Glimsap, with its tight-knit group of villagers, that holds a market twice a week. You'll get to explore new places, fight monsters, get new crops and forage, trade local coins for exclusive goods, and complete tasks to unlock special items, including machines, buildings, and animals.

hallow prism
#

if you don't, i can later

#

but i may also forget πŸ˜„

dim yew
#

Hey is "Condition": "LOCATION_NAME Target Saloon", the correct format? Isn't working for some reason even with a lower precedence value

#

For NPC appearance

hallow prism
#

hmm

#

sometimes locations use "here"

#

but i'm not sure what's needed for this case

rancid temple
#

Here should be matched against the player's location

#

Probably need to see the rest of the code

#

Technically I think Here might be fine in this regard since Appearance change would be pointless if the player wasn't in the same area lol

hallow prism
#

(technically there's phone shenanigans)

rancid temple
#

Ah yes, those old landlines with video calling SDVkrobusgiggle

calm nebula
#

Not when the player warps

rancid temple
#

Ah, then I guess it should be Target

dim yew
#

Hmmm I wonder why it’s not working

#

Any reason it wouldn’t apply during an event?

rancid temple
#

Like an event event or a festival?

dim yew
#

Event event

calm nebula
#

Because the target isn't actually in the saloon

#

That's a clone

dim yew
#

Ohhhh okay that makes sense. So I should check the player then

calm nebula
#

Use EVENT_ID instead

#

Or whatever the one for "this event is current playing"

#

Yes.

#

Stardew becomes creepy when you consider the repeated cloning lol

rancid temple
#

IS_EVENT <ID>

#

And then you can make it creepier with the spouse cloning

dim yew
#

Hahahah ok. I will try that

#

Ugh there’s got to be a reason why this isn’t working 🀦

#

Wait nevermind there is a reason

#

I mixed up precedence values 🀦🀦

#

One more question, when an event command takes a value for layer is that a string or integer? Because it can’t parse β€œFront” apparently

hallow prism
#

depend of command i guess, but number

#

for the one to display item i used numbers

dim yew
#

yup I’m doing addobject

hallow prism
#

technically i'm not sure it's even a layer, rather a hmm, well

#

it may be the same but i don't think it counts layer

#

(as now we can have a lot more than the usual ones)

#

but rather be "if it's x, it display over front"

dim yew
#

Ahhhh ok makes sense.

timid plover
#

what's the state of permissions for Yellog's mods? can they still be reached anywhere?

hallow prism
#

no idea, at some point it was minervagama that had those

brittle ledge
#

I want to say they posted them somewhere because they were leaving modding? Try searching modded-farmers for Yellog.

thorny tiger
tribal umbra
#

it worked guys! thank you, ur the best

red garnet
#

Does anyone know why my spawn tile for my npc entry keeps giving an error?

#

the error in question

ornate trellis
#

you're missing the way they face

red garnet
#

thank you

ornate trellis
#

oh wait

#

that was for events

cinder thorn
#

It's in wrong format

#
"Home": [
    {
        "ID": "Default",
        "Location": "Forest",
        "Tile": { "X": 2, "Y": 5 },
        "Direction": "Down"
    }
],
#

Example

ornate trellis
#

yeah i was gonna post an example too but wasnt fast enough lmao, was gonna say theres also bracket issues

#

i shouldnt eat and post at the same time lol

red garnet
rain basalt
#

ok correct me if im wrong >.> if i use location data i could create a random spawn chance of any object SDVpufferwow for that location

cinder thorn
#

You should be able to do so, just need to make sure the map has spawnable tiles for the object?

rain basalt
#

^..^ yah no problems hehehe

timid plover
#

unfortunately I can't access my Naver account right now because I didn't use it for two years and the special security thing just won't let me log in

thorny tiger
#

guys how the hell does "Condition": {} work

#

the page for conditions on the documentation is only "When": {} which i am led to believe is very different

lucid iron
#

Condition is a game state query usually

#

And part of specific data models like shop items

#

Not a content patcher thing

thorny tiger
#

so how the frick do i use it

#

i cant find anything that says how to use it

blissful saddle
thorny tiger
#

i need to add a condition in order to make a forage spawn

#

but i literally cant find a single thing saying how to use condition

blissful saddle
#

Checking forage data

thorny tiger
#

just knowing the specifics for forage isnt useful though because its not going to make me actually understand what i can do with it

#

just be able to do forage

blissful saddle
#

if you need to add 'Condition', the forage data requests it has a 'Condition' for any custom forage

#

looking how data uses it will give hints to what you need to put at it

hallow prism
#

it's not because you don't find it that it's not here, you just don't know what they are so you don't use the right keywords

#

the conditions are using Game State Queries

cunning kiln
#

Quick question: if you want to add an unmanned shop (like a vending machine), do you have to create a map file or is there a way to add it just with content patcher?

hallow prism
#

they have a whole page (and mention in different places)

hallow prism
thorny tiger
thorny tiger
blissful saddle
#

I didn't found a single 'Condition' on forage data, but...

cunning kiln
#

(Also, sorry for the ping. How do you remove the @ when replying?)

hard fern
merry rampart
#

so im trying to figure out how exactly to make my npc dateable but not marriageable. I thiiink that if I use the RejectMermaidPendant dialogue key she'll reject the pendant no matter what. is this correct?

hallow prism
rain basalt
#

"Chance": 0.7, 70% 7% or .7%? SDVpufferwow

rain basalt
#

k thanks

thorny tiger
#

is there any way to make my custom items default to the end of a menu instead of the start (e.g. in the shipping tab, my items appear first, i want them to, yknow, not)

hallow prism
#

with C# yes, no idea how

thorny tiger
#

fair enough

#

in that case do i just have to specify "MoveEntries": [] for everything

#

is that even a thing i can do

hallow prism
#

this isn't C# so no

pine elbow
#

Hi, does anyone know if it would be easy or difficult to create a mod with a different collection system from the shipping box? I wanted to do something similar to Harvestmoon, with an NPC coming to collect things from the shipping box at 5 pm, for example, like it was in Harvestmoon, and then I would need to disable the automatic sales function at the end of the day... Does anyone know which functions I would have to modify?

lucid iron
#

I'm not sure what effect you want to achieve hm

hallow prism
#

i think it will be very complx and you risk conflict with each mods changing that

lucid iron
#

do you want everything in the shipping bin to be instantly sold at 5pm instead of 2am

#

for me who just harvest and toss stuff into bin in the morning this makes no gameplay difference

pine elbow
#

But it's not a gameplay issue, it's an aesthetic issue. It would be really cute to have an NPC come and collect things. Just like in Harvestmoon, I miss that, having an NPC complain that I didn't sell anything today. Or him complimenting me for selling things.

hard fern
#

npcs on the farm is... well

#

theres a bunch of issues surrounding it

hallow prism
#

it's just involving lot of very complex part

#

if you want npc reactions you may be better having some C# stuff to check what the player sold last night and generate some dialogues based on that

rain basalt
#

with a 1.0 spawn chance i should see at least one forage on the map correct?

hallow prism
#

assuming you can do C# but the project you want can't be done without C# anyway

lucid iron
#

hm i have idea

hallow prism
#

chu : "i am free, i posted my mod"
chu five hours later : "here we go again"

lucid iron
#

modify the end of day summary to display some dialog from lewis (or whoever else)

lucid iron
hallow prism
#

(forage spawning needs the tiles to allow forage spawning and the map itself if it's an indoor map, in addition of having the forage listed, not having hit the maximum of the day and some other stuff)

lucid iron
#

(and the trinket stuff had been done for more than a week its just 1.6.9 hold ups)

hallow prism
#

yeah i'm mostly joking πŸ˜„

#

it is really hard to be free

rain basalt
#

max stack -1 map properties ForceSpawnForageables T and tile NoSpawn False

lucid iron
#

i'll run out of either idea or time or passion eventually

#

i am the type to have phases where i am really into Thing

hallow prism
#

yeah i know that

pine elbow
#

Do you find it easy to analyze the StardewValley.dll code and find the functions or do you spend a lot of time looking until you find the part? Is there any AI that can help with this? Like I ask, where is the function that does such and such, and the AI ​​identifies the class and the name of the function? Or is the only way for me to look for it?

hallow prism
#

(nospawn isn't the proper property)

rain basalt
#

for the tile? cuse thats whats on the wiki lol

lucid iron
#

i decompiled the game so that i can search through it with vscode

hallow prism
#

lol

#

then good luck with lol then πŸ™‚

lucid iron
#

dunno if ai would help, it's not public code so doubt any LLM got to indexing it kyuuchan_run

#

its not that hard to read anyways, since sdv not obsfucated

blissful saddle
#

yet there is a lot of roundabout functions, so you may need to patch more than one function and classes that essentially check and do the same thing

pine elbow
#

Anyone with a minimum of programming knowledge can read and understand what the code does, but the code is huge, and it's full of classes and packages, finding what I want is very difficult, if I don't know which class to look for, lol, for example, I have no idea which class would be in the part where the day ends and the sale is made in the shipping box.

lucid iron
#

the method is call newDayAfterFade

#

the particular menu i suggest you to modify is called ShippingMenu though

#

thats the page that lists what you sold

#

i think it'd be cute if npc comment based on how much money you made or what categories of things you sold Dokkan

#

and it being purely visual should minimize impact on other mods

pine elbow
#

But there is no ShippingBin in the code of the newDayAfterFade method

lucid iron
#

the initial idea (npc comes to farm to collect stuff in bin) is fairly hard due to general npc path finding shenanigans

#

its newDayAfterFade -> _newDayAfterFade -> showEndOfNightStuff -> (delegate) -> new ShippingMenu

blissful saddle
#

not counting that the bin is not fixed in one location, and more bins can be placed

lucid iron
#

the benefit of having the whole game unpacked is that i can just search for keywords without following the whole path from begining

pine elbow
#

In fact it would be a new NPC, specific for this

lucid iron
#

(but then walk back up to confirm it is really the place)

#

with C# everything is possible, just question of how much effort and whether you care about compatibility DokkanStare

blissful saddle
#

making npc path through farm is problematic

#

also it would mean Lewis is a liar, since he says that he himself will be checking your Shipping Bin at the end of the day

pine elbow
#

Marnie is coming to bring us the cat, it could be an event

hallow prism
#

you would benefit starting with a simpler mod

#

then learn to do more over time

lucid iron
#

events at farm is different than having npc path in

pine elbow
#

just change lewis's dialogue

lucid iron
#

and actually u might notice that those always have the npc just be at your door

#

cus u cant know what the map around the farmhouse is like

pine elbow
#

I made a mod with new pets, and got Linus to give me a chinchilla.

hallow prism
#

then maybe a simple C# mod can be a good next step

lucid iron
#

i support you making elaborate C# nonsense from the start sleep

#

just want to let u know about the possible roadblocks

blissful saddle
#

it is possible to generate an npc path given the current state of a map, like the farm, through c#? or the path needs to be hardcoded on data?

lucid iron
#

the farm is normally banned from pathing with schedules (which also normally hardcode specific tiles from what i know), but again its C# u can do whatever u want with enough effort

hallow prism
#

i support people making what they have motivation to do, but i also saw a lot of people wanting to do complex stuff and what happened is them asking for lot of help and then not finishing the mod because it's too complex

lucid iron
#

i think there's some east scarp ppl that go to farm? not sure exact implementation

blissful saddle
#

I just want to say that I asked for a lot of help but my Night Owl Plus is done and ready to release. I just want to wait all the patches and SMAPI updates for now to make sure it will not be incompatible the next day

pine elbow
#

Let's look at the mods I've already made using C#

I made a custom version of anticheat
I made a mod to protect chests inside the house against theft.
I'm developing a mod to completely remove money from the game, and treat gold bars as money, and other trade items
Not to mention that I made a framework (mod to create content mods) to put any item you want

So I've done a lot of things, and they weren't simple at all, my mods are complex lol.

hallow prism
#

then you got the ability to put warnings into perpective

#

they aren't here to discourage people; rather to avoid people being discouraged when they hit a block they didn't see coming

blissful saddle
pine elbow
#

I just have difficulty analyzing other people's code lol
Especially if it uses a lot of file references.

blissful saddle
#

I think you have enough experience to know where to go. Check east scarp mod to see how they implement npc's that go to farm and it may be a nice way to start

pine elbow
#

Oh, I often give up on what I'm going to do, but after a while I try again. Taking a break helps to refresh my mind, and next time it might work out, and that happened a few times, my first mod was the modified anticheat, and I spent about 2 months on it until I got it right.

blissful saddle
#

the main problem with npc I think is coding their schedules and paths

pine elbow
#

I just wanted to first figure out how to disable the sale of items at the end of the day.

#

But this newDayAfterFade function is not understandable

blissful saddle
#

I would proceed first making the sale happen at 5pm. two sale-times is better than none for innitial testing

pine elbow
#

I didn't find out what part makes the sale of items happen.

cunning kiln
#

I've gone through the category list several times and I'm not finding clothing or boots. Before I go any further, would it be possible for the player to sell clothing items using just content patcher? (I'm trying to create a mod that allows the player to sell all of the unwanted decorations and clothing they end up with, rather than just having to trash it. That said, I'm not yet ready to dip my toe into C# modding.)

hallow prism
#

yes, it's not a category, it's a type of entity

hallow prism
#

(O) is object, (S) is shirt

calm nebula
#

Wait a second

#

I read that wrong

#

No, shipping bin sells are gonna require c#

hallow prism
#

selling to shop may be doable with the right context tag stuff

calm nebula
#

You could add the hat/boots category tag to what vendors will buy from stores but like

cunning kiln
#

My plan is to make a separate shop. Would that have more flexibility than the shipping bin?

calm nebula
#

Yup!

#

That should be easy

hallow prism
#

i think someone mentioned they could sell their furniture in RSV shops so maybe

calm nebula
#

Hold a hat in game and type debug listtags

#

One should be something like "category hat" but I'm not absolutely sure

cunning kiln
#

Okay -- still figuring out basic things like how to get the dumpster at the bus stop to be my "donate your used goods for a small tax refund in advance" shop πŸ˜…

mossy tree
#

stardew valley taxes πŸ”₯

cunning kiln
#

They actually removed the ability to sell furniture in RSV, which is why I'm creating this mod. I really liked that feature.

calm nebula
#

People want taxes lol

#

The children yearn for the mines and the gamers yearn for taxes

cunning kiln
#

I don't particularly want to pay taxes, but that explains why you get money for "donating" items.

calm nebula
#

(More or less some people want the game to be easier. Other people want the game to be harder.)

#

(I just want to finish my sweater before it gets cold.)

cunning kiln
#

Personally I just hate throwing things away (and if I can sell grandpa's old furniture to buy more seeds, all the better πŸ˜‚ )

lucid comet
#

( SDVpufferlurk how far along is the sweater?)

tender bloom
calm nebula
tender bloom
#

Sweater!!

calm nebula
#

Need to add more width to the back and length to the sleeves, then do ribbing all the way around (knit. Not a fan of crochet ribbing.)

#

Almost done.

#

Anyways this is off topic

calm nebula
cunning kiln
rancid musk
#

Maybe harmony patch the furniture catalog so any items it creates have mod data on them saying they should not be sellable, and let people sell other furniture?

#

It wouldn't affect existing furniture, but new stuff would be covered

lucid iron
#

do item spawn fields work on catalogue

#

could maybe give everything from the Catalogue store 0 sell price

calm nebula
#

Yes

#

Item spawn fields work

hard fern
#

how does inserting a custom token into i18n work?

lucid iron
#

who is this

lucid iron
calm nebula
#

I think

#

Maybe George

lucid iron
#

{{i18n:npc.Kyle.dialogue.PowerUp_Tue |UpperName={{uppercase: {{PlayerName}}}}}}

hard fern
lucid iron
#

Maps/characterSheet

#

mystery

hard fern
calm nebula
#

Vanilla npcs are placed in festival maps like this

lucid iron
#

interest

calm nebula
#

I assume because seeing them like that was easier on development

lucid iron
#

i like this beta maru(?)

calm nebula
#

Yup

#

Dana/penny too

#

I love beta maru's hair ngl

lucid iron
#

its something like HELLO {{UpperName}}

#

and then |UpperName= is passing an argument to substitue that for cp token value

hard fern
#

oh (so it turns out i copy pasted something wrong in the i18nifier)

lucid iron
#

ah ok, no clue what i18nfier does for this type of thing

hard fern
#

(im currently fighting with it)

lucid iron
#

maybe ask nomori about it?

#

the important part is just that you cannot use cp tokens in i18n, because it's not part of cp

hard fern
#

...trying to i18nify this question was a mistake sob

#

if it explodes then πŸ€·β€β™‚οΈ

blissful saddle
#

explosions are fun

#

the problem is when it silently causes problems hard to find

#

so, I have a question about the update keys and nexus.

I upload a first version mod to nexus, but can just take the nexus id after it is published.

There is anyway to edit the manifest after the file is uploaded? or how it is usually managed so the first version have the correct update key in it's manifest?

iron ridge
#

you just don't upload a file

#

you get the id as soon as you complete the first page when uploading

blissful saddle
#

oh...

#

glad to know

hallow prism
#

making me think he likely have a wig

pine elbow
#

Hello guys, I have no experience in programming
and I have something to ask, not sure if this is repetitive question I tried searching for discord message history it is showing me zero result

making mods with content pack frameworks and making mods with sampi does the same thing just different language requirement?

hallow prism
#

not exactly. Everything a content pack can do a C# mod can too, but C# mods can do stuff that content packs can't do at all

pine elbow
#

I dont mean by replacing the pngs
If I want to make a new npc with its own dialogue
and add more dialogue and animation to existing npc

hallow prism
#

however just with content packs you can already do a lot

lucid iron
#

making a content pack is like borrowing other people's C# code

hallow prism
#

npcs can be added with just CP (as content packs)

pine elbow
hard fern
#

no

drowsy pewter
#

you can also do that with content patcher

pine elbow
pine elbow
drowsy pewter
#

Typically if you're changing game mechanics, that's when you use C#/SMAPI. If you just want to add more content along existing lines, then CP does it all

#

You should ask here when you have specific things you want to do

pine elbow
#

I want to learn programming for hobby, want to try making mods for fun

#

I was on my way to learn c# then I saw json (on stardew wiki) so left me thinking which one will help me to make mod that I am thinking of

drowsy pewter
#

There's much more documentation for making an NPC with content patcher, there's no NPC mod that I know of that does all of it with C#. That being said, it's possible

pine elbow
#

understood

drowsy pewter
#

but you'll have a harder time getting help

rain basalt
#

C# what is this C#, CP is the only thing i know lol jokes aside i do most everything with cp though havent messed with npc much .. yet

lucid iron
#

json isn't actually a programming language

rain basalt
#

file type

next plaza
hallow prism
#

i tend to consider what we do as content pack modders as soft code, as we do have to respect some constraints for stuff to work

lucid comet
#

imo getting started with a (small) CP mod might be a bit easier to wrap your head around, too - there are some principles that overlap and you can dip your toe in without getting completely overwhelmed by learning to program while also setting up your environment/editors/learning about manifests/formatting/etc

pine elbow
drowsy pewter
#

We dont use javascript

pine elbow
#

oh

rain basalt
#

think java has slowly started to die since internet has more C# support

lucid comet
#

java isnt javascript, tho

#

even though they sound similar

rain basalt
#

yes but to run it you needed embeded java compilers like oracle at least back in the day lol

lucid comet
#

json is a file format - the file ending tells a program how/if they can read the file, how it is formatted

drowsy pewter
#

let's try and keep the topic focused on stardew modding types so we dont further confuse them

rain basalt
#

C# and CP

#

C# uses C# code to work with the game files and CP uses json files and existing framework to load your edits

pine elbow
#

okay

lucid iron
#

the tools aren't important

rain basalt
#

so using the existing framework of CP makes most mods easy to make unless your trying to do something in the game thats non standard like a gun

lucid iron
#

first you must have an idea

pine elbow
rain basalt
#

start simple with one part of the project

hard fern
#

don't be me and work on 20 things at once πŸ₯Ή

rain basalt
#

na just do what i did and combine all the ideas into one chaotic mess that you spend hours on trying to figure out what you were trying to do at first

hard fern
#

explodes sigh

rain basalt
#

... just forgot to hit save on the map so cant test my own changes ...

cunning kiln
#

I'm back. I've managed to get the dumpster where it's supposed to be (it doesn't look right, but I can fix that later), but I can't interact with it and I'm struggling with the documentation. Is interaction something you do with Tiled or CP? Alternatively, does anyone have a good mod to use as an example for something like this? (I started with Raffadax, but in retrospect, a mod with 60,000+ lines of code probably isn't a good match for my tiny, sell-only, no-NPC storefront.)

hallow prism
#

you can add the shop tile with either tiled or CP

clever sinew
#

any custom mail is gonna need mfm, right?

drowsy pewter
#

no

hallow prism
#

no

#

jinx

clever sinew
#

:O

hallow prism
#

technically CP is able to add mails since a very long time
it was always the sending part that was limited (and resending it)

clever sinew
#

Ah okay

hallow prism
#

but special orders for example were always able to send mail (as well as silent events)

#

now it's easier

clever sinew
#

Looking at friendship unlocks for some of my recipes

#

Thank you

hallow prism
#

hmm

rain basalt
#

O.o ive always wondered why am i not able to add reactions to lumina but others can

hallow prism
#

for who? existing or custom npcs?

#

(it's because of a discord feature)

rain basalt
#

friends only setting or something?

clever sinew
#

Would be existing, most likely. I don’t want to touch custom npcs yet

hallow prism
#

something indeed

#

ok so

cunning kiln
# hallow prism you can add the shop tile with either tiled or CP

This is where I'm struggling with the documentation. I'm much more familiar with json than Tiled (which I find baffling), so just to confirm: do I need to do anything in Tiled other than create the shop image on the building layer? (i.e., can everything else be done in CP if I look hard enough?) Thank you!

hard fern
#

tiled, you add a... SDVpuffersweats what are those things called

#

with the square

hallow prism
#

vanilla use a feature that send the letter NPCcooking at any recipe that use the f npc heartlevel condition.
Ex : a recipe with f Gus 3 will send the mail named Guscooking
This mail already exists in vanilla. It may then not fit your recipe. But if it does it's pretty straightforward

hallow prism
#

if it doesn't, then you will just need a trigger action to send the mail and have the mail attach the exact cooking recipe you want

hallow prism
#

you can do anything in JSON outside of the asset

cunning kiln
#

Thank you!

clever sinew
#

Or hardcoded

hallow prism
#

no

clever sinew
#

Dang

hallow prism
#

technically you can

#

practically you need a more unique ID

#

and a trigger action

clever sinew
#

Okay makes sense

hallow prism
#

you can tell "use this trigger action to send stephanysrecipes_gusraviolis"

clever sinew
#

Hmmm

#

Honestly I may just leave it default for now and mess with mail later

#

…or i could be lazy and just use ShaneCooking

#

(There’s a veggie pizza with peppers, so it would be perfect coming from him)

#

Either way thank you for the info!

hallow prism
#

sure πŸ™‚

#

note that i never tried what happen if you use the same exact friendship unlock than vanilla (ex : f shane 3)

hard fern
#

there's no "apple cider-adjacent" object in the game, is there?

clever sinew
#

Not that I know of? Cranberry candy would be closest I think

hard fern
#

dang fr?

clever sinew
#

Lemme double check

lucid comet
#

apple wine i guess?

clever sinew
#

Oh yeah, you’re totally right

hard fern
#

SDVpufferflat is there a way for me to give the player specifically apple wine, instead of just normal wine?

hallow prism
#

i don't remember if we can have that outside of machines

#

i have vague memories of maybe being possible

#

no idea how

rain basalt
#

hmm would a spouse gift work?

hard fern
#

(is this directed towards me?)

rain basalt
#

yes

brittle pasture
hard fern
#

dang

#

XD would be funny if i made my npc mod require extra machine configs just for one or two line of dialogue

rancid temple
#

ExtraExistenceConfig

hard fern
hallow prism
#

you can have those line in a separate patch requiring the mod

#

and list on the mod page that there's a few bonus things with the mod

hard fern
#

hmmm well it's such a tiny thing that i dont know if i really care enough to do it haha

rancid temple
#

Just make a new Sparking Apple Cider and sell it in the store

hard fern
#

...i forgot i could do that

rancid temple
#

Or make it a gift

hallow prism
#

it's up to you, i like having some extra that are working if a mod is enabled πŸ™‚

rancid temple
#

Or whatever else you want it for

clever sinew
#

OH that reminds me actually

#

I don’t know if i’m asking this correctly, but I have a config to enable compatibility with different mods. Is there a way to make it autodetect which mods a player has and turn on/off accordingly?

hallow prism
#

for some stuff yes

clever sinew
#

(Currently it’s just default false on everything but)

hallow prism
#

depend of what the config controls/enable

clever sinew
#

Basically different recipe packs, e.g. ones that use cornucopia ingredients, grow your meats ingredients, etc

hallow prism
#

do you want people to choose to enable them anyway?

#

or do you want them to always be enabled if the mod is here?

clever sinew
#

I mean, it’s more so people can pick and choose what kinds they want. If for some reason they have cornucopia enabled but don’t want cornucopia recipes, they should be able to disable them

hallow prism
#

so

#

i remember i did some stuff with dynamic tokens, but i don't remember if i can use a dynamic token in a default config option

#

but basically yes, the concept is possible

#

either you allow them by default but has a check on the patch/include to only activate them when the mod is installed (may confuse users, but what doesn't?), or you have something like the default being "auto" being dynamic based on installed or not

velvet narwhal
hallow prism
#

there may be other ways, dynamic tokens and checks allows for a lot of different logic going on

drowsy pewter
#

fyi, cornucopia has a specific detectiong method for other mods to use due to the item configuration toggles, so feel free to ping me for help with that

hallow prism
#

as long as it works it's good enough πŸ˜„

pine elbow
#

Does anyone know what function uses C# to find out whether the farm has separate or shared money?

clever sinew
#

Oh noted, thank you

#

Honestly I may just leave it manual and people can just click through

#

But I wanted to ask anyway

next plaza
pine elbow
#

thank you very much

clever sinew
hard fern
#

πŸ€”

hard fern
#

SDVpufferflat and now im stuck bc i dont know how to add an item into the game with CP

proven spindle
#

It's not too hard :) you need two entries: one loads the texture, the other defines the object's data (name, description, category etc)

tawny lily
#

I AM working on it now haha

#

thank you for pointing me in the right direction (pun intended)

lucid iron
#

anyone know when the farm shipping bin became a building

blissful saddle
#

now I want to make a wizard/witch related quest where, while unsolved, will trigger warp of the player to random localisations with unpredictable and unrelated triggers

lucid iron
#

ty, there was some old unused logic left over blobcatgooglyblep

cunning kiln
#

Okay! I have managed to get the dropbox into the game, it looks attractive, and when the cursor hovers over it, it turns into a hand, which I think means the OpenShop action property is working. However, when I click on it, the shop doesn't open.

frigid hollow
#

i mean 1.3.27 added building versions of shipping bins

#

but the default one became a building in 1.5

cunning kiln
#

I've stripped down the shop code to the bare minimum I think should work while still including at least one thing I want the shop to do (I figure I can add more details later, once I get the shop open). Any idea where I may be going wrong here? (Before I start pasting code, is there a way to do it so it doesn't take up a ton of lines with just brackets/braces?)

tender bloom
#

Which is the only reason I know this

lucid comet
#

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

cunning kiln
open oasis
#

Okay this might sound conspiratorial, but what are the chances that ConcernedApe saw my mod and that's why he added it to vanilla in 1.6.9? what3

lucid comet
#

before diving into cp documentation: is it intentional that it's SalableItemTags instead of SellableItemTags ?

cunning kiln
#

Oh, heck. No. I can fix that now.

lucid comet
#

:D

merry rampart
#

where's the generic dialogue for npcs located? specifically for when they accept/reject bouquets or mermaid pendants?

calm nebula
#

Either 1.6 or 1.6 added dialogue keys for that

#

Somewhere on one of the migration pages

open oasis
#

Like it's probably just wishful thinking, but I made this back in May, and now in November it's more or less been added to the vanilla base game πŸ₯Ή https://www.nexusmods.com/stardewvalley/mods/23449

Nexus Mods :: Stardew Valley

Have you ever wanted to get more out of your legendary fish catches than just keeping them as trophies? Now you can! With Legendary Fish Ponds, you can now put your legendary fish to good use producin

lucid iron
#

Graduated to vanilla

open oasis
lucid iron
#

Tho I think the vanilla version is weaker right

#

Roe only

open oasis
#

Correct, my mod still adds way more functionality and is more extensive. I might end up renaming it "Better Legendary Fish Ponds" now that the primary functionality is vanilla

cunning kiln
open oasis
#

My mod lets you put up to 10 fish in a pond, has population gates with specialized items, has specific loot tables for each fish other than just roe, and also has unique colors for each fish

calm nebula
#

Yeah, the vanilla variant was mostly because that one book started giving people legendary roe

blissful saddle
#

wait, if legendary fishes multiply in ponds now, I can put one in a pond, wait for it reproduce and so sell them infinitely

#

would it make them less 'legendary'?

merry rampart
calm nebula
#

It never reproduces

cunning kiln
#

(Just to make sure it isn't a Tiled issue: in Tiled, I have the following custom properties for the Building layer: Action OpenShop AIFN_DonationBox (that's the name of the shop). There's no NPC involved, no hours when it should be closed (all fields that looked optional.)

lucid iron
#

From what I can tell with the shipping bin in Farm, the TAS for the lid never gets initialized now, blocking the open/close logic

calm nebula
lucid iron
#

However, islandwest bin use Farm.showShipment for some reason???

calm nebula
#

Yeah it's weird

#

Back when the shopping bin crash w a s happening I went and looked through all the code

#

And wasn't amused at how repetitive it was

blissful saddle
lucid comet
cunning kiln
#

Thank you for your help!

merry rampart
#

i found it

nimble anvil
#

Not sure if this is the right place, but is there a way to change both vanilla and modded (particularly Cornucopia & SVE) prices for both selling and buying?

frigid hollow
#

does the vanilla profit margin option not do that already? (ah, you want custom multipliers for it?)

nimble anvil
#

And if possible, from profit margin formulas

pine elbow
#

Guys, I was looking at the code, it really is very complex to change this behavior of the game of paying for shippingBing things at the end of the day, I even managed to make the game add everything up at 5 pm, and pay, but I think that the way I'm doing it the items won't be counted as shipped, so I think it's easier for me to set the NPC to come at 00:00 and stay there at the shipping box "counting" until 02:00 so I can leave the code the way it is and just do the aesthetic part.

nimble anvil
#

At least for me.

#

Friend of mine makes almost triple than what i do when we both main our profressions from dawn to midnight

#

I'm looking to see if I can reduce the individual fish's prices down further then let the margin profit's formula work after (if applicable)

#

Because even with 25% profit margin, we could still make 100Ks before Year 1 Fall

hard fern
#

πŸ€” for custom items, how exactly do the gift tastes work?

brittle ledge
hard fern
#

ooh

brittle ledge
#

!npc I have a little more detail in the NPC tutorial.

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

hard fern
tawny lily
#

i read the texture to get the placement tile, i use it in many places for displaying ranges etc

#

fixed it now tho :3

hard fern
#

so im looking on the wiki for like, the shops and whatnot, and i'm confused about

            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "FishShop", "Items" ],
            "Entries": {
                "(O)219": null,
                "Example.ModId_Pufferfish": {
                    "Id": "Example.ModId_Pufferfish",
                    "ItemId": "(O)128",
                    "Price": 2000
                }
            }
},```
the "ItemId" part
proven spindle
#

That's the ID of the item you want to be sold in the targeted shop

hard fern
#

if it's a custom item though, is the item id just like...? ModId_CustomItem ?

proven spindle
#

Pretty much

#

You might have to make it the qualified item id version

#

So (O)ModId_CustomItem if it's an object

hard fern
#
                    "Action": "EditData",
                    "Target": "Data/Shops",
                    "TargetField": [ "Saloon", "Items" ],
                    "Entries": {
                        "{{ModId}}_Pumpkin_Spice_Mead": {
                            "Id": "Forsy.lysextraitems_Pumpkin_Spice_Mead",
                            "ItemId": "(O)Forsy.lysextraitems_Pumpkin_Spice_Mead",
                            "Price": 2000
                        }
                    }
                }
#

hopefully this looks normal...?

proven spindle
#

Format looks similar to what I have in SFS SDVpufferthumbsup

grave ravine
#

Hi. Just wondering how to use the Kisaa's Extra Floor Pack. Is there some place to buy stairs for it?

hard fern
grave ravine
#

I havene't tried yet, but I'll ask there. I love PIF stuff

hard fern
#

this channel is for the creation of mods rather than actually playing with them

grave ravine
#

There are so many places with modded or modding sometimes I don't know where to start πŸ™‚

#

ahhh

pine elbow
#

Would it be possible to create a repeated event using the content patcher?

Make the same event happen every day on the farm?

The way I did it, the event only happens once.

{
"Changes": [
{
"LogName": "Edit Event Farm",
"Action": "EditData",
"Target": "Data/Events/Farm",
"Entries": {
"mayorshipp/t 1700 1800": "continue/64 15/Lewis 72 15 0/skippable/pause 500/speak Lewis "Hello @!$h#$b#Estou conferindo os seus itens na caixa de remessas"/pause 400/speak Lewis "Estou recolhendo seus itens e serΓ£o pagos ao fim do dia.$s"/pause 500/speak Lewis "Um relatΓ³rio serΓ‘ mostrado para vocΓͺ ao encerrar$h"/pause 1000/end"
}
}
]
}

gaunt orbit
#

IIRC you can unmark an event as unseen using trigger actions? might be wrong about that though

hallow prism
#

yes, and there's a command too so another event can mark it as unread

#

(note that event ids should be more unique ideally)

gaunt orbit
#
{
  "Id": "{{ModId}}_unique_trigger_id_here",
  "Trigger": "DayEnding",
  "Action": "MarkEventSeen Current <event_id> false"
}
#

an example of resetting it with a trigger action, if you wanted it to happen once a day

#

(assuming you're using CP)

uncut viper
#

cant you also use an event command in the event itself to prevent it being marked seen?

pine elbow
#

I'm still thinking whether to use C# to move the NPC to the farm, or to use events in the content patcher... the problem with events is that the NPC leaves when the event ends, and using C# it would stay there until the time comes.

gaunt orbit
#

if you want them to stay you do have to use c#

uncut viper
#

eventSeen <event ID> [true / false]
"Used to prevent a mutually exclusive event from being seen. Has special logic where if the event ID is the current event, then it prevents the current event from being marked as seen when it ends or is skipped if it was set to false. Used for repeatable events."

gaunt orbit
#

actually, you might be able to use conditional schedules to force an npc to start the day on the farm, but since NPCs are banned from pathing on the farm, that may end up being a bit jank

next plaza
#

Slight correction, but NPCs are banned from pathing to the farm. The PathFindController itself should work to some extent on the Farm, though it may not account for everything the player places which could cause problems. (There's technically code for opening fence gates even, though it looks like that's never enabled)

teal bridge
#

StardewUI v0.3.0 is finally out!

(Posted here for those who don't follow the #1293051032904925255 thread; if there's any follow-up then feel free to ping me in-thread. Thanks!)

Nexus Mods :: Stardew Valley

The definitiveβ„’ framework for building UI in Stardew Valley mods.

thorny tiger
rancid temple
#

Only if those are from the same mod

#

If they're referencing a separate mod they made then it won't work

hard fern
#

πŸ™ƒ oh right i can whoopsie

#

(it's in the same mod)

rancid temple
#

Then a-okay

brave fable
lucid iron
#

i had this at one point

#
ISpaceCoreApi? spacecoreApi = Helper.ModRegistry.GetApi<ISpaceCoreApi>(
    "spacechase0.SpaceCore"
);
foreach (TypeInfo typeInfo in typeof(ScytheEnchantment).Assembly.DefinedTypes)
{
    if (typeInfo.GetCustomAttribute<XmlTypeAttribute>() == null || !typeInfo.IsAssignableTo(typeof(ScytheEnchantment)))
        continue;
    spacecoreApi!.RegisterSerializerType(typeInfo.AsType());
}
brave fable
#

probably won't be all that useful since most people only have about 1~2 custom serialised types

lucid iron
#

to register types extending ScytheEnchantment that have XmlTypeAttribute

brave fable
#

but hey, if it's easy then why not

lucid iron
#

but yea later i was like man i only got 4 things

rancid temple
uncut viper
#

but what if you have more things later
future you will thank you for saving them a couple seconds maybe

brave fable
#

it's not like someone's going to define a bunch of classes with the serialisation attribute and then not want to register them for serialisation

lucid iron
#

idk my monke brain just prefer to look at this instead

spacecoreApi!.RegisterSerializerType(typeof(PalaeontologistEnchantment));
spacecoreApi!.RegisterSerializerType(typeof(GathererEnchantment));
spacecoreApi!.RegisterSerializerType(typeof(HorticulturistEnchantment));
spacecoreApi!.RegisterSerializerType(typeof(ReaperEnchantment));
spacecoreApi!.RegisterSerializerType(typeof(CrescentEnchantment));
#

i dont have an explaination

brave fable
#

monke brain says enough 😌

uncut viper
#

my brain looks at that and says "i can turn these 5 lines of manual registering into 10 lines of reflection based registering instead"

mighty quest
#

i always use reflection for this stuff

uncut viper
#

everyone knows more LOC = more good

brave fable
#

10 lines of code > 5 lines of reduplication 😌

uncut viper
#

not love of cooking. though that is also good

brave fable
#

less love of cooking = more good

mighty quest
#
var enchantmentTypes = AccessTools
    .GetTypesFromAssembly(Assembly.GetExecutingAssembly())
    .Where(t => t.IsAssignableTo(typeof(BaseEnchantment)) &&
                t.Namespace?.Contains("DaLion.Enchantments.Framework.Enchantments") == true);
foreach (var type in enchantmentTypes)
{
    this.ModApi.RegisterSerializerType(type);
}

but its more scalable

next plaza
#

blueberry 🀝 casey
Hating on their own mods

brave fable
#

i can't believe the loc alpha still has mail issues. how the fuck

#

it's mail

lucid iron
#

they defunded the post

teal bridge
#

You should never send food in the mail.

thorny tiger
brave fable
#

you should never send explosives in the mail.

teal bridge
#

Well, the lore establishes that the residents of Pelican Town aren't the brightest bulbs in the box.

rancid temple
#

Kent sends you bombs

teal bridge
#

Heh, and I was just going to say, some of them send you literal mail bombs.

teal bridge
calm nebula
#

Got it

teal bridge
#

...isn't that usually a lead-in sentence to a suggestion to do some insane thing that no one should ever do?

#

(maybe his app crashed)

calm nebula
#

Writing my next project in IL

#

(No, we're playing a game of "how many electrical engineers does it take to change a lightbulb.")

teal bridge
#

Is there an IDE that does that? Lets you write in actual IL instructions, without having to translate them into individual bytes yourself?

calm nebula
#

Featuring "I swore we had wire nuts"

#

And "I know where the stripper is."

brave fable
teal bridge
#

And "I know where the stripper is."

I like where this is going.

#

Seriously though, an electrical shop that doesn't have 50 spare bags of wire nuts? They're littered all over my own home.

worn coral
#

Hey all, sorry to drop in the middle of things, not sure if I run into a vanilla bug (or if it's by design) while testing audio-cue-magic that chu has made for my mimic, but... before I go to the vanilla support channel just wanted to ask if anyone remembers seeing the Ginger Island shipping bin playing the intake animation (the 3 frame animation on item drop into the bin) and if anyone would be willing to do a quick check on their end if it still does play it? My decompiled code (though it's from 1.6.8) looks like it should?
(I've tested on my end with frameworks+mods, with just smapi+cjbcheats, and with pure vanilla no smapi etc - couldn't get it to play on any of those)

teal bridge
#

Island shipping bin animates, I'm almost positive.

next plaza
lucid iron
#

the open close thing works yea

teal bridge
#

I just tested and yes, the bin still animates.

lucid iron
#

but not sure about the toss item in with left click

#

the one where bin goes homf

teal bridge
#

I don't remember any animation of dropping things into the bin?

worn coral
#

Lid works as it should, it's these three though that don't seem to play

#

Works fine on the farm bin SDVpufferthinkblob

teal bridge
#

I don't see any difference between farm and island.

#

Not sure where those extra frames are supposed to play.

uncut viper
#

i thought those were the [chu vc] homf frames

drowsy pewter
#

homf

teal bridge
#

The what?

uncut viper
#

you know, where the bin goes homf

drowsy pewter
#

I'm actually laughing

lucid iron
#

when u r hold an item over ur head and u left click

#

to toss the item in

#

and bin goes homf yes

brave fable
#

surprisingly ilspy doesn't include homf in the decompile, but speaking as a developer, those are the homf frames

lucid iron
#

with those 3 frames tea selected

drowsy pewter
#

Btw button, your trigger actions mod let me fix a bunch of items that suddenly became bugged in 1.6.9+, so thank you so much for that

teal bridge
#

Ok, interesting, I have literally never done that in hundreds of hours of play.

#

Didn't even know you could.

uncut viper
teal bridge
#

But I just tested and I get the same animation on the island. (For the uh... homf)

uncut viper
#

(i also did not actually know you could toss items in like that)

drowsy pewter
# uncut viper im curious what were the bugs :o

Our artisan goods didnt have the Type field defined until like three weeks ago, since it didnt actually cause any problems and i only added it for mod compat when someone asked. But it turns out that items without Types cant be shipped in 1.6.9+. So all of the old items suddenly couldnt be sold anymore because they were generated without types

uncut viper
#

huh. i had no idea Type was like, optional

drowsy pewter
#

Yeah it's not supposed to be, but I never noticed it was missing because there were no errors of any kind

teal bridge
# calm nebula There is a lib for that

Library implies something like Reflection.Emit or Sigil. I meant being able to write MSIL as opposed to emit it to a dynamic assembly through C# code.

uncut viper
#

strange, but makes me very glad that there are now two (2) whole people who got use out of that action

calm nebula
teal bridge