#making-mods-general

1 messages ยท Page 117 of 1

tiny zealot
#

there probably isn't a single best answer that applies to every location

velvet narwhal
#

I have three ways to get to my expansion. A secret hole in the quarry mines, a spacecore warp totem, and a secret quest building that acts as an obelisk

tiny zealot
#

for example, for the expansion i'm not yet making, i've cooked up a method to get to [REDACTED] which is, as far as i know, unique

velvet narwhal
#

Your own ass custom c# yeah that works too

tiny zealot
#

you know it SDVpuffersquee

acoustic summit
#

Thats something I noticed, methods for travel often have to be unique if not using a framework, two people cant use the same quarry hole ๐Ÿ˜›

velvet narwhal
#

Make that 4, I forgot I made a boat ride in c#

brave fable
#

if you're fine with adding Shovel as a requirement you could dig your way there

rancid temple
#

I was tossing around the idea of adding pseudo random islands you can visit Animal Crossing style via plane, I dunno if I have the energy to actually do this idea lol

velvet narwhal
#

The quarry has many walls, Edd boy

brittle pasture
#

chaotic idea: a location that can only be accessed by passing out in a different location

acoustic summit
#

That could be really fun for a secret location

brittle pasture
#

no monsters though, so have fun bombing yourself

#

or just use fishing rods until you pass out

velvet narwhal
#

Shrimply wait until 3am

acoustic summit
#

Like passing out at 2am inside lewis's house sends you straight to hell

velvet narwhal
#

Or the secret room

acoustic summit
tiny zealot
#

if you were making a place like Magicant, the travel method could be "sleep in a specific bed". anything is possible

velvet narwhal
#

I'm tempted to make a cp patch if possible to change ichors portable hole to the sims1 magic hole with arrow

brave fable
#

love of cooking on the backburner while i go out and get some inspiration to redraw that boat cutscene from a while ago SDVdemetriums

tiny zealot
brave fable
#

i steal this boat. the perfect size

tiny zealot
#

(some alternate map appearances and item textures are on my list of improvements to make down the line)

#

notably i want to have at least one other texture for the holes that is nicer for colorblind players

brave fable
#

how'd you know that photo's from sydney. i've been rumbled

velvet narwhal
#

There'd be like 5 people who get the reference of the magic zone from sims1 though

acoustic summit
brave fable
#

that could be from anywhere

tiny zealot
#

i had not looked behind the spoiler and i assumed you were talking about the NPC

brave fable
#

i know i shouldn't redraw a sprite that's only like a month old but man i want that boat

velvet narwhal
#

From what my bad memory can remember the boat you had looked great woopsDerp1

brave fable
#

but new thing. shiny thing. yacht

#

have u considered that

velvet narwhal
#

I have not SBVPensiveButt

acoustic summit
velvet narwhal
#

My boat ride is attached to my own custom location that then does a little timed event to move to the full expansion

#

I barely touched vanilla for full compat SMCKekLmaoDog

acoustic summit
#

Valid, very valid

tiny zealot
#

vanilla is so crowded, the struggle is real

brave fable
#

i doubt ill even have my charas leave their location lol, i don't want to deal with other people

#

very realistic

acoustic summit
#

I just want a place that you can walk to, but that seems very difficult without breaking compat ๐Ÿ˜ฆ

velvet narwhal
#

First message will always be: "is this compatible with SVE?" Me: I mean sure, but my expansion is suited to be a midgame to near perfection playstyle

#

I like the idea of catering to people bored of the late game SDVpuffersquee

brave fable
#

i cater to those who don't play (me)

tiny zealot
velvet narwhal
#

Sidenote is it unreasonable to lock a romanceable behind a 50m quest SMCKekLmaoDog

brave fable
#

that sounds like a nightmare lol

tiny zealot
#

50... meters?

velvet narwhal
#

50 million doller

brave fable
#

having multiple map patches with different layouts and world map edits and schedule setups? id rather just mark it as incompatible

rancid temple
#

Only if the goal is to keep anyone from ever interacting with it

tiny zealot
#

i think that's unreasonable, yeah

velvet narwhal
#

I currently have the idea set at 10mil but it honestly might be funnier

acoustic summit
velvet narwhal
#

drat

tiny zealot
#

lock the CanBeRomanced flag behind a five-minute unskippable cutscene

brave fable
#

like my current map entry patch straight up destroys the useless playground in town. if someone's modded the kids to go there then they're gonna have to find some bugs on the ground to play with

velvet narwhal
tiny zealot
brave fable
#

'i could only ever love someone able to beat Junimo Kart(r) in 3 continues or fewer SDVpufferpensive '

#

'u have 10 minutes'

hard fern
#

...i feel so tempted to add a basement or something

teal bridge
#

Does SMAPI do semver checks for mods depending on other mods? I'm curious if graduating a mod to 1.0 will cause it to blacklist mods depending on the 0.x version.

brittle pasture
#

no, smapi only has min version I think

tender bloom
#

I believe only โ€œor newerโ€ yeah

velvet narwhal
#

unless you want to make your own, then we can help you

jade pond
#

Oop sorry clicked the wrong channel

#

mb

hard fern
#

how do you add a tile property to a tile that doesn't normally have it?

#

like "diggable T"

acoustic summit
#

I think you can do that in tiled, or in c# via setTileProperty, not sure for cp

hard fern
#

๐Ÿ˜”

#

it didn't work in tiled

#

i wanted to be able to plant trees on these spots, but setting the tile properties didn't change anything...

foggy kiln
#

Perhaps you could set a TileData: Diggable T in the back layer?

#

It just requires setting one for each spot where you hope to plant trees. I guess this isn't a very good solution, but it's the only method I know.

hard fern
#

๐Ÿ˜… so apparently just that one tile didn

#

*didn't like me

#

switching it to a different tile fixed everything?

#

i can now plant as many banana trees as i could ever want

foggy kiln
#

I have two custom maps (as different mods) that add green crystals as teleportation points in the original greenhouse, but they are not compatible with each other now (the positions of the green crystals are different, so theoretically they should not affect each other). If I use either one alone, it works very well, but when using both at the same time, only one can be loaded and displayed. How can I modify the content file to make them work together?

hard fern
#

? you cant

#

wait

#

am i understanding this right?

#

...maybe im not

velvet narwhal
#

if it's a 1 tile editmap, you should have compatibility

hard fern
#

mhm

whole raptor
#

How is it possible that down arrows turned into stars..? SDVpufferthinkblob (someone posted it on my v2 fix)

velvet narwhal
#

uhhh i have forgotten what symbol it is

hard fern
#

but if you're loading the whole greenhouse, then it's incompatible...

velvet narwhal
#

oh wait no that is the star KEK

foggy kiln
#

I added green crystals through "editdata" without modifying the original greenhouse map. In theory, they should be able to be used simultaneously, but unfortunately, they cannot.

hard fern
#

ok, but.. what exactly is the situation with the maps...?

whole raptor
#

I meant like without my fix (with just original v2) they are supposedly normal arrows, just without a recolor, which is confusing me even more ๐Ÿ˜…

hard fern
#

or an image of the map

velvet narwhal
#

oh, does one of their mods change something in the spritefont then? SDVpufferthink

hard fern
#

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

whole raptor
#

Those arrows are in fonts? SDVpufferthink

hard fern
#

yeah? they should be i think

velvet narwhal
#

i'm like 85% sure, but > turns into -> arrow

foggy kiln
#

Sorry, I'm launching the game to take a screenshot, so my replies might be slower. (By the way, how do I post text in code format? I'm not very familiar with it.)

velvet narwhal
#

just uploading the json link that smapi gives is good enough, large code blocks here make it hard to read

#

but if you're doing small ones

#

!codeblock

ocean sailBOT
#

You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```

For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.

whole raptor
#

Hmm either I'm blind or I don't see them anywhere SDVpufferthinkblob

timid ice
#

@stable grotto Just a heads up - Vibrant Pastoral Redrawn is missing a dependency in the manifest - It requires MixedBag's Tilesheets, but lacks the dependency in the mod manifest.

foggy kiln
#

Oh, thank you, I understand. Do you need me to send both content files as links?

velvet narwhal
#

i don't see a down arrow in here SDVpufferthink

stable grotto
hard fern
whole raptor
timid ice
stable grotto
#

best case would be if I got elle's permission to add the compat for her Dirt and Cliff Recolor
then I'd at least have a good reason to update

stable grotto
whole raptor
#

Oh yeah, I guess it is SVE

timid ice
hard fern
#

SVE moment (?)

whole raptor
#

I see the old "When in doubt, blame SVE" still works SDVkrobusgiggle

stable grotto
timid ice
#

Alright. Either way, problem solved. In this case, intentional design decision, and that's the end of that. Thanks for responding so quickly.

velvet narwhal
#

SDVpufferthink it looks sound, but i haven't tried to do an overlay with a single map in two different mods, what happens if you set them to false dependencies on one

foggy kiln
#

Those are the mods I uploaded to Nexus Mods. As a beginner, I made quite a few strange mistakes (though maybe they're not even mistakes)...

#

One of them I haven't uploaded yet, because editing the same map has caused one of them to stop working.

velvet narwhal
#

If you haven't uploaded it would it be easier to merge SDVpufferthink I don't know which one is the one you published

foggy kiln
#

One cop is uploaded as an additional map, while the other was initially uploaded as a replacement for the greenhouse map. Later, I wanted to make an extra map version, but after encountering problems, I didn't upload it and the progress has been halted.

#

As_cop_greernhouse

whole raptor
hard fern
#

๐Ÿ˜” so it was sve all along

whole raptor
#

Is purple star even used anywhere? Just out of curiosity SDVpufferthink

brave fable
#

yep, it's attached to every stardrop message

#

i use it in loc whenever strings mention the special powers tab in the game menu

#

so I guess SVE is going to make that look a bit silly

whole raptor
#

Yeah... I guess I might remember seeing a weird arrow when spouse gave me the stardrop on the porch, so that's what it was

brave fable
#

could they have possibly used a less-important character for the down arrow lol

#

like the stardrop icon in stardew valley

#

rly

hard fern
#

What about that thing on a skateboard

brave fable
#

don't you dare touch him

unreal spoke
#

That's just a weird thing to patch in general.

hard fern
#

๐Ÿ˜ญ ok, skateboard guy will be unscathed

brave fable
#

SDViconskaterboi he said see ya later boi

hard fern
#

I know he shows up on one of Emily's letters though

whole raptor
#

... why SDVpuffereyes

brave fable
#

he's the best thing emily's got

#

it'd be nice if sve could just extend the font or something equally ridiculous instead of eating a character

whole raptor
#

Yeah, definitely a weird choice

#

The rest of the locations don't really interfere, but why Farm..? SDVpufferthinkblob

brave fable
#

wouldn't that make, say, the grandpa cutscene noticeably weird

#

i'm proud of you, my beloved grandchild. you have earned a ๐Ÿ‘‡ Stardrop

hard fern
#

Hes pointing to the stardrop

finite ginkgo
whole raptor
#

It's hard to believe it was never pointed out (as far as I know)

foggy kiln
tight rivet
#

...

#

So I was checking out Shiko

#

I spotted this: "@Litten1110 It didn't pass review, because I decided for it to not pass review and I asked MissCoriel to delete it since some "morally superiour" people here couldn't contain their desire to just instantly report something that was doing the community a service at the end of the day. That is why I decided to have it deleted. MissCoriel advised me to post it somewhere else which isn't NexusMods, which is something I might do some day depending on how much I care to post my days of wasted effort to the Internet again."

#

.. yes it didn't pass review because you don't have permissions to do any of that.

#

... is this a thing that's going on? Anyway, I don't want to go further b ecuase on reflection this could start an argument.

lucid mulch
#

While there is a certain double standard in the rule, at the end of the day nexus mods has the right to have it's rules and them being enforced.

For what it's worth, at least smapi has first class support for mods not on nexus mods and will do update notifications for curseforge, moddrop and GitHub, and can also be pointed at arbitrary hosts. Even if discoverability of the mods is unfortunately centralised on nexus

latent mauve
rancid temple
#

Are you Including it?

latent mauve
#

I just showed that as an include for an example so the log site wouldn't fuss about the formatting, it's actually directly in my content.json

uncut viper
#

are the tilesheet names supposed to have quotes? does your log say anything?

latent mauve
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 17 C# mods and 11 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

finite ginkgo
#

I would try removing the quotes from the timesheet name, it sounds unusual to me to need to quote it

uncut viper
#

the vanilla furniture doesnt use quotes

rancid temple
#

Hm, yeah, I'm not using quotes on mine

latent mauve
#

okay, reattempting without quotes

#

I'm just used to using them because I was messing with String references and schedule dialogue before

#

quotes were the issue!

#

Now I have to fix the problem with the sprite cutting off weirdly and being the wrong size when it's supposed to use the default for the type

lucid mulch
#

A reminder of a quirk of how Content Patcher (and by extension the SMAPI Asset Pipeline), Just because you have a Load statement doesn't actually load the asset, it just defines the behaviour on the event the asset is attempted to be loaded.
Loads (and Edits) all happen lazily at the moment the assets requested

The only exception really being vanilla assets, as the game eager loads most of them, and SMAPI on asset cache invalidation will tell vanilla to reload

#

I'm somewhat surprised in the logs that didn't attempt to load an XNB file, but the quotes may have convinced it to be an invalid filename instead

#

or smapi/vanilla has gotten smarter in 1.6.9+ and doesn't try to hit filesystem reads anymore for files that don't exist

rancid temple
#

Well that field is for a texture asset, so maybe that's why?

lucid mulch
#

it would still use the asset pipeline to load that asset, and the asset pipeline always falls back to vanilla xnbs

#

As the vanilla Data/Furniture specifies texture assets that are xnb's

rancid temple
#

I thought I had seen this before, these are the only types that have set defaults

latent mauve
#

good to know, removing all my -1s xD

rancid temple
#

9 doesn't have a specific default, just falls to the switch block default of 1, 2 lol

worn coral
# latent mauve good to know, removing all my -1s xD

Nah -1s are totally fine if it works - just note which ones have "unexpected" results and you'll be able to take advantage of them. The -1 makes it much easier to maintain (since the vanilla values are extremely unlikely to change for those) and would let you convert easily to other frameworks if you were interested later on

rancid temple
#

I think I prefer looking at the decompile to see the actual values lol

#

I dunno what other furniture you've got, but even base game defines the expected tilesheet size for the Child Bed

#

Rather than using default values

latent mauve
#

It's a sheet of just Child Beds

#

I've changed all the values but some of the beds are still complaining about missing textures? I'm so confused

rancid temple
#

How are the entries set up now?

latent mauve
#

also they are absolutely not the correct spriteindexes for some reason

#

fixed the missing texture issue, I missed a " for one line

rancid temple
#

Well, the index is probably based on TileSheets/furniture, so your sheet needs to be set up like that

latent mauve
#

But the sprite indexes are still very wrong

#

?

rancid temple
#

This sheet is a mess, I'm not really sure how the indexing works here lmao

latent mauve
#

I suppose it was too much to hope that it would understand that the new sheet was a bunch of 2x4s with the front section after the main bed. xD

rancid temple
#

Yeah, index is generally based off the default texture

#

This explains why the furniture id's are so fucking batshit

latent mauve
#

I did manage to hit on ONE spriteindex that it likes for an actual bed, it's just not the one I needed. LOL

rancid temple
#

Oh god, I think it's 16x16 per index

latent mauve
#

oh no

#

that explains a bit

#

8, 12, and 16 seem to work

rancid temple
#

Alternatively you could just load each texture separately and have 0 indexes all around lmao

latent mauve
#

also it's 6am, I should probably just go to bed and deal with this after some sleep

calm nebula
#

good morning!

shadow pagoda
#

Let's say I have a chest at tile [x,y] that has 12 parsnip seeds in the Farm House. I have a method that will tell me the number of items found in a certain location. If I set location to be the Farm House and itemId to be 472, it will return 12. Though I'm wondering if there's a way to return the the specific chest (or tile of said chest) that the seeds are in.

public static int GetItemCountInLocation(GameLocation location, string itemId)
{
    int count = 0;
    Utility.ForEachItemIn(location, delegate (Item item)
    {
        itemId = ItemRegistry.QualifyItemId(itemId);
        if (itemId == null)
            return false;
        bool itemFound = false;
        if (item.QualifiedItemId == itemId)
        {
            itemFound = true;
            count += item.Stack;
        }
        return !itemFound;
    });
    return count;
}
lucid iron
#

You have to iterate chests instead, instead of using the utility

brave fable
#

well you could still use the utility and check for if (item is Chest chest && chest.items ...)

#

depending on what you want to do with it, of course

uncut viper
#

1.6.9 added a way to get the path to an item for some overloads or something for those methods i think but, alas, the wiki,

#

The advanced forms now use a context object, which also provides the 'path' to the item. For example, an item inside a chest would have a path consisting of the location and chest:

Utility.ForEachItemContext(delegate(in ForEachItemContext context)
{
    // remove pufferfish inside chests
     if (context.Item.QualifiedItemId == "(O)128" && context.GetPath().Last() is Chest)
        context.RemoveItem();
    return true;
});
#

this is for the advanced foreachitem form e.g. Utility.ForEachItem((item, remove, replaceWith) => ...))

#

i assume theres one for InLocation too but idk

shadow pagoda
uncut viper
#

ok yeah theres just Utility.ForEachItemContextIn(GameLocation location, delegate(in ForEachItemContext context) { ... it seems

#

i think you just need to replace your current delegate (Item item) with the kind of delegate from that example block and then just grab the item from the context instead

shadow pagoda
#

I'll test it now

uncut viper
#

GetPath() will return a complete path for how to find the item but if its in a chest then Last() should return the actual chest its in

shadow pagoda
# uncut viper The advanced forms now use a context object, which also provides the 'path' to t...

I made the following method that returns a list of chests. Then I put a big chest with the seeds in the farm house. However, the returned list is always empty. I used the debugger, and the context.Item.ItemId check seems to be true, so the issue mut be with context.GetPath().Last() is Chest. Not sure what the problem though

public static List<Chest> GetItemLocations(GameLocation location, string id)
{
    List<Chest> chests = new List<Chest>();
    Utility.ForEachItemContextIn(location, delegate(in ForEachItemContext context)
    {
        if (context.Item.ItemId == id && context.GetPath().Last() is Chest)
            chests.Add((Chest)context.GetPath().Last());
        return true;
    });

    return chests;
}
uncut viper
#

unfortunately since they're both new and also not methods I've used before, that's about as far as my knowledge on how to use em goes
they're on the 1.6.9 migration page on the wiki though, if you're able to get that to load

shadow pagoda
#

Never heard/seen that page before (assuming you're taking about this wiki https://stardewvalleywiki.com). Based on your previous messages, I assume it's down?

uncut viper
#

it's been very spotty the last week

strange wave
shadow pagoda
#

I see, thanks

strange wave
#

You're welcome

pine elbow
#

Hello, just a small interruption sorry
not exactly a code help question, but I've only just started learning c# syntax /etc/whatever

I assume, by this, they're asking for translator support...?

uncut viper
#

yeah i18n is short for international which is translation support

#

Internationalization

uncut viper
#

auto correct took away the ization oops

shadow pagoda
#

Slightly related, what do the delegates return value mean? That may be the issue. When I was making this method #making-mods-general message, I originally had it always return false, which made caused it to never process any items besides weed.

uncut viper
#

for those utility methods the return value should determine whether or not you want to keep iterating

#

so, returning false means "stop iterating over every item in the world"

calm nebula
#

killjoys

pine elbow
calm nebula
#

this is so much uglier

calm nebula
pine elbow
lucid iron
#

Atrng adventures

#

I think you can ignore em, maybe they thought u changed the channel text

calm nebula
#

Just tell them there is no translatable text in the mod

uncut viper
#

is there text in the image?

pine elbow
uncut viper
#

oh. then yeah I'm with chu

calm nebula
#

o.O the ai learns!

shadow pagoda
uncut viper
#

ofc not, but your if statement was checking for that, wasn't it?

shadow pagoda
#

Originally yes. I just assumed that based on the code snippet on the wiki. I can't come up with a reason why someone would only check one seemingly random index

calm nebula
#

if something is in a chest, the last thing in GetPath should be the chest it is in[*]

shadow pagoda
#

I can run it again, but I believe the last index was something along the lines of player inventory

lucid iron
#

Do you have that item in your backpack too

calm nebula
#

is it Worth It TM?

#

(I'm looking at the difference between the second and third lines, where I skip out on the expensive cryptographically secure init of new Random())

shadow pagoda
lucid iron
#

Hm maybe it's cus u are using item id

#

Instead of qualified item id

#

Item id only guaranteed unique within same class, eg there's (O)130 and (BC)130

tight rivet
lucid iron
#

Hm how do unofficial updates work then

tight rivet
#

a lot of times they're to mods that are open enough that you can post it somewhere.

brittle ledge
#

I would hope Coriel didn't actually tell them to post the mod elsewhere and that's just this guy reading inbetween the lines of "you can't post this on Nexus"

fathom hound
#

where can i find this btw? didnt see it in cursors or tilesheets

calm nebula
#

it's an emote

fathom hound
slender badger
#

It's in Cursors next to the skip box

fathom hound
tight rivet
lucid iron
#

f Shane 2500/D means 10 hearts + dating shane?

tight rivet
#

I think so

lucid iron
#

i am once again using this channel in place of wiki

calm nebula
lucid iron
#

is there a dating flag for dialog?

#

ah ok the / was delim Dokkan

calm nebula
#

dialogu?

#

you can use gsq

lucid iron
#

hm so game doesnt have innate dating version of dialog?

#

but hm i am unsure if i can do anything about this besides harmony on content patcher & w/e other mod that give u more control over dating/not dating

brittle ledge
#

do said modded NPCs have platonic 8/10 heart dialogue though?

#

What I'm planning to do is conditionally patch 8/10 heart dialogue depending on whether you're dating or not

calm nebula
#

You know how you start something

#

And then it slowly gets worse

lucid iron
#

so the mod i recall this happening on was ridgeside village, which does use "Relationship:Kiarra": "Dating", and so on

calm nebula
lucid iron
#

hard to find exact npc to check if its a rsv bug tho, perils of not immediately investigating

#

tho its not really a bug even, cus i am enable a normally impossible scenario (10hearts but not dating)

calm nebula
#

no, platonic sets the status of the npc to dating internally iirc

#

it's weird

#

tbh it would be better to just make the npc not date-able

lucid iron
#

i thought it only did that for draw

#

welp what if i just

#

change the draw of the little relationship indicator

#

the actual reason i wanted this mod is that i am dum and forgot if i max out friendship already when i see the 8 heart purple orb

#

i suppose i could just do mass data edit to make everyone except npc i actually want to marry not datable monS

brittle ledge
lucid iron
#

oh i see

#

yea i checked the i18n they do seem very romantic

#

patch the dialog box draw it is Dokkan

brittle ledge
#

so yeah the issue isn't so much that we can't have nondateable 10 heart dialogue, it's that most dateable NPCs don't add the actual lines for 10 heart nondateable SDVpuffersquee

lucid iron
#

hm

#

yea nvm i got no magic solution here

#

what r these bolbphase

unreal spoke
#

... unused beta portraits?

lucid iron
#

strange things in cursors

#

i like modern art marnie(?

slender badger
#

They're part of Leah's 14 heart event

#

She teaches you how to paint with Marnie as the model and asks you which style she should go for

unreal spoke
#

Oh! That's actually pretty neat. Another reason to get that 14 hearts events for all mod, huh? SDVkrobusgiggle

slender badger
#

You know it SDVkrobusgiggle

#

There's also a sprite for the farmer's portrait of Marnie which is, uh, pretty wonky SBVLmaoDog

unreal spoke
#

... where?

slender badger
#

LooseSprites/temporary_sprites_1

unreal spoke
#

Oh dear. That's a potato with a wig!

#

(This is where I'd use the LMAO dog if I had Nitro. We really need an LMAO Dusty emote.)

slender badger
#

The farmer might have hidden musical talents, but apparently doesn't have any hidden artistic talents ๐Ÿ˜†

unreal spoke
#

I mean... it is a nice potato!

slender badger
#

Typical farmer, too much time looking at potatoes and not enough time looking at people CGPensiveClown

fluid marsh
#

Hello! Am I allowed to send a SMAPI error message in this channel? It's a bit long -- I wanted to ask so I don't get in trouble for spam or anything. Ty :)

hard fern
#

Hmm, regarding 10-heart romantic dialogues,... The platonic friendships mod makes it so you can reach 10 hearts without dating the dateable npcs, right? It's been a while since ive used it ..

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

fluid marsh
#

Thank you!

proven spindle
#

(Unless it's for a mod you're making, if it is then that would probably go in this channel)

fluid marsh
#

It is!! Sorry I should've added that from the start.

hard fern
#

Then feel free to send the log haha

lucid iron
#

!log

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
#

use the parser so u dont explod this chat

fluid marsh
#

Thanks!

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 5 C# mods and 2 content packs.

calm nebula
#

Show your content.json

fluid marsh
#

Will do, one sec!

#

Oh shoot I totally just spotted my own mistake, I'm gonna make some tweaks and report back after SDVkrobusgiggle

lucid iron
#

2000 (250 * 8) is 8 hearts right

brittle pasture
#

yesh

hard fern
#

y...yes?

#

๐Ÿ˜ญ i totally didn't just look at my npc's 8 heart event to see what number i put there

lucid iron
#

this seems incorrect

public bool IsDating()
{
    if (Status != FriendshipStatus.Dating && Status != FriendshipStatus.Engaged)
    {
        return Status == FriendshipStatus.Married;
    }
    return true;
}
hard fern
#

good ol schedule bonk?

#

(i had this same problem)

lucid iron
#

ah nop its fine

final arch
#

iirc that check is used for events and youre supposed to be able to see the "dating" events when you are engaged or married, too

lucid iron
#

no its fine i was just dumb

#

misread the != in my head

patent atlas
#

status is dating or engaged or married

#

but decompiler goes brrr

lucid iron
#

im not sure what this code would look like in source

patent atlas
#

i would imagine literally

#

Status is FriendshipStatus.Dating or FriendshipStatus.Engaged or FriendshipStatus.Married

#

or the == equivalent

calm nebula
#

Status is Friendship.Dating or Friendship.Engaged or Friendship.Married

#

the decompiler sometimes has fun

patent atlas
#

it can do so as a treat ocasionally

calm nebula
#

left is decompiler. right is source

patent atlas
#

yo i want to draw something dynamic in the mod settings panel, is this ok or a nogo? Dynamic as in a table listing blacklisted monsters which can be updated by user action in-game

#

mainly equiping a frog trinket

#

meth2

patent atlas
#

but idk if thats something i should do

lucid iron
#

mod settings like GMCM?

patent atlas
#

ya

lucid iron
#

u need to make a custom option

patent atlas
#

a custom option?

#

oh i think i remember methods mentioning that in the interface

#

documentation reading time

lucid iron
#

although

#

if the list of monsters is known and doesnt remove

patent atlas
#

nice it has acallback when the menu is opened which means I don't need to fill my code with events

lucid iron
#

u could just continue to add more checkboxes

patent atlas
#

nah, it does remove

lucid iron
#

what mod is completely deleting a monster type yggy

patent atlas
#

nooo not deleting monsters

#

it's my BetterFrogControl mod, when a player tells their frog to spit a monster out it is added to the frog blacklist

#

so the frog doesn't eat that same monster / monster type

lucid iron
#

yea like, the ez impl would just be

patent atlas
#

and these blacklists are cleared during gameplay when the player exits a lvl or time passes or whatever

lucid iron
#

get the monster data and add 1 checkbox for each monster

#

u can update the config to reflect changes this way

#

but u do get more freedom if you just make custom menu ofc, up to you

patent atlas
#

thank you!

#

I'll try out the complex option thingie

#

see what i can do with it

lucid iron
#

if u want u could just add a button in gmcm

#

to open ur own menu

#

then u can optionally let ppl hotkey that

tough crater
#

I re-did my NPC's gift tastes (trust me, the file was clunky since I was listing individual items and wasting my time in the process lol). I know that there are gift categories such as -2 for gems, but how come there isn't a category for artifacts? Minerals get their own category too

warm tulip
#

I have ask him the permission for publish (not respond yet and probably never) but it's just for me and my friends that's all

unreal spoke
#

These sprites in Cursors are unused in 1.6, right?

uncut viper
#

those look like character/save creation menu sprites to me?

unreal spoke
#

Ah, sorry โ€“ I mainly meant the horse. I know it used to be in the inventory screen next to your farmer, but the new animal tab uses part of the whole sprite instead.

hard fern
#

I havent seen the horse used anywhere....

#

I don't think so, at least?

unreal spoke
#

Like I said, I know it was used in 1.5 for sure, but I haven't seen it anywghere in 1.6. Meh. I think I'll just leave the patch in. Thanks!

final arch
#

that horse is used on the world map to show where the horse is I thiiiink?

#

maybe thats only NPC map Locations tho

#

unless that changed in 1.6? ๐Ÿค”

#

not sure Ive had a horse in 1.6 yet

unreal spoke
#

Oh, well that's certainly a reason not to remove the patch!

final arch
#

lmao sry for the farm name, was a random image from google... ๐Ÿ˜…

unreal spoke
#

I didn't even see that, ha. I can confirm both pet and horse info were moved from the main inventory screen to the animal tab.

final arch
#

oh so it might actually be gone mhh

#

does the horse show on the worldmap in vanilla?

unreal spoke
#

Doesn't look like it.

final arch
#

k Im out of ideas where its used then :p

calm nebula
#

things will get worse before they get better

#

is still going

patent atlas
#

hell yeah intermediate language !!!!

unreal spoke
calm nebula
#

(for fun, we have decided to stackalloc in IL)

final arch
grave warren
#

I am trying to make a mod that adds some custom hats for my me and my friends. How do I start?

calm nebula
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.

lucid iron
#

for hats, you can do it via content patcher, but you can also check out fashion sense

calm nebula
#

whooot

latent mauve
# latent mauve also it's 6am, I should probably just go to bed and deal with this after some sl...

So as a follow up to this, it appears that multiples of 4, starting at 0 and ending at 28, will line up properly for the furniture sprite index placements. So my solution was to keep the same PNG that had all of the child beds on it, but to load a blank 512 pixel wide and 64 pixel tall PNG for the remaining 8 child beds and use EditImage to grab the section of the image that was needed to remain within those pixel coordinates

#

And it worked!

rancid temple
#

Is this to avoid dropping down and counting past all the middle and bottom parts of the beds?

final arch
#

on the other hand... no :p

#

ok the log says you are sdv modding so all good :p SDVkrobusgiggle

calm nebula
#

I find this all very funny

latent mauve
#

Yes

raw oxide
#

hello i'm trying to make some pif door for my personal use but i don't know why the door asset are not loading this is the content pack

calm nebula
#

so

#

because the furniture asset is slash deliminated

#

you have to use the other slasshes in your asset name

#

Mods\\{{ModId}}\\Doors

raw oxide
#

thank you very much just i'm not sure i understand where i should change that ^^'

#

for the target load ?

final arch
#

at the end of the lines of the Data/Furniture patch

raw oxide
#

okay thank you i will do that ^^

#

{{ModId}}_Door0": "{{ModId}}_Door0/painting/2 3/2 3/1/100/-1/{{i18n:Door0.name}}/0//Mods//{{ModId}}//Door", like this ?

rancid temple
#

Other way

#

\\

patent atlas
#

so we are really uspposed to just rawdog UI with direct spritebatch calls?

rancid temple
#

You could use something like StardewUI or SpaceCore

patent atlas
#

hmmmm

#

will consider

raw oxide
#

{{ModId}}_Door0": "{{ModId}}_Door0/painting/2 3/2 3/1/100/-1/{{i18n:Door0.name}}/0\Mods\{{ModId}}\Door" , like this ?

patent atlas
#

\

#

\

rancid temple
#

The slash before Mods should still be / the others should be double \\

patent atlas
#

oh

#

discord

#

\\

lucid iron
#

yea gmcm isnt a ui framework itself

patent atlas
#

i saw it uses Element and RootElement, I assume that's another mod?

lucid iron
#

in the example button i linked, the actual menu is made with StardewUI

#

Element/RootElement are from spacecoreui

rancid temple
#

Discord is probably eating your formatting because you're not using the backticks

lucid iron
#

u need to do a dll ref to use that

patent atlas
#

GNA is weird because it seemingly doesn't care about rects when drawing UI?

rancid temple
#

Since Discord uses \ as an escape character

lucid iron
#

so yea pick ur flavor Dokkan

patent atlas
#

as in, it only cares about the origin position

lucid iron
#

not sure what is mean by GNA

patent atlas
#

XNA

#

and when you call DrawString or whatever it just draws it and there's no way to know how much space the thing that was drawn actually takes

raw oxide
#

like this ?

lucid iron
#

well yea monogame doesnt come with ui stuff

calm nebula
#

(yes, you would measure the string first if you cared)

patent atlas
#

ya it's all sprites

calm nebula
#

and yes. it's very much manual ui

#

or you can use focus's lib or casey's lib for it

lucid iron
#

u either do it urself or borrow someone else's work, who did it themselves in your place

rancid temple
raw oxide
#

thank you very much for your help

lucid iron
#

stardewui highly recommended AquaThumbsup

patent atlas
#

unity imgui isn't great but still spoiled me

rancid temple
#

Same

lucid iron
#

its got layouts n stuff

patent atlas
#

aight aight I'll consider, thanks!!

#

ooh layouts i like

lucid iron
#

and grids that flow properly

#

and scrolling DokkanStare

patent atlas
raw oxide
#

there is an assets forlder too should i also add it like this ?

uncut viper
#

(stardew has a helper function for it. BellsAndWhistles.SpriteText.getWidthOfString)

patent atlas
#

oh god thank you

#

that has all the consts I needed

#

bells and whistles

rancid temple
raw oxide
#

you mean this : "Action": "Load",
"Target": "Mods/{{ModId}}/Doors",
"FromFile": "assets/Doors.png"

rancid temple
#

Yeah, so you don't need assets in there then

raw oxide
#

okay thank you

rancid temple
#

In the furniture data, I should specify, since your Load is staring me in the face lmao

raw oxide
rancid temple
#

Looks good, I would put the Load near the top but I think it's probably fine

#

C# habit to put stuff I'm gonna use later at the top

raw oxide
#

Thank you very much i'll try and see if ti work ^^

old edge
#

Anyone can help test my mod? I'm not sure why the seasonal changes are taking effect if I used the default spring tilesheets that I found

hallow prism
#

tilesheets automatically swap seasons if named spring_ something

#

not sure what you meant by "found" however

rancid temple
#

And if the location is outdoors

calm nebula
#

joy

#

why is Game1.random different between "load into game" and "sleep into new day" don't answer that question

old edge
#

If I add the island location type as a map property doesn't inhibit the changing of seasonal tilesheets?

rancid temple
#

Not sure if context affects that, the island is using summer tilesheets so it shouldn't trigger the seasonal change anyways

old edge
#

Im confused cause I thought ginger island was summer only but then I found island seasonal tilesheets and I can't find anywhere in the game that's has island seasonal changes

rancid temple
#

What are the island seasonal tilesheets?

old edge
#

Idk they're in 1.6 files

hallow prism
#

they may be the farm one

old edge
#

There's winter island tilesheets and fall but idk where

#

They are used

hard fern
#

in maps? idk

hallow prism
#

yes i know they are used

#

by the farm

hard fern
#

everything is in maps...

rancid temple
#

Yeah, as Lumina said the Farm_Island.tmx uses spring_island_tilesheet1

old edge
#

No I removed the season override because I'm trying to make a seasonal island farm now

lucid iron
#

well, i am not sure why island has seasonal tilesheets either

#

but they work fine

old edge
#

also if I wanted to alter the starting seeds is it possible?

lucid iron
rancid temple
#

They're for the uh... beach? farm

#

Its internal name is Farm_Island

old edge
#

But it doesn't have the island location context property huh. I'm guessing cause I'm at work lunch break

rancid temple
#

If you mean the farm, it's not on the island, it's a starting farm

rancid temple
old edge
#

I see so it looks like an island but not ginger

#

Thank you that's helpful

old edge
#

I was also looking at the code for island west is this where the ginger farm is located? The code for blocking the crows is here?

brittle pasture
#

I think it's more accurate that the code for spawning crows is only in the farm class

rancid temple
#

Yeah, it's an event specific to Farm

timid plover
#

Are there any tutorials on making farmhouse layouts? The wiki page on map editing lists a few properties applicable to the farmhouse, but that's about it.

rancid temple
#

I just realized a limitation on this math I did after uploading my new version... But honestly if someone needs more than 60 HP/s regen then I think god mode might actually be better for them

solar jolt
#

alrighty so how do I convert Json Assets mods yall

patent atlas
#

I've been comparing monster types (for example, two different monsters are slimes) by using monster.Name, is this the way or is there some kind of TypeObject I could use?

hard fern
#

which covers pretty much everything(?)

brittle pasture
patent atlas
#

you mean c# class type?

#

or a type property?

brittle pasture
#

c# class

latent mauve
patent atlas
#

aight

#

i wish stardew used something mroe like rimworld's defs

west grail
#

Hey everyone, I could use some advice as I am new to modding. I'm well-versed in C# and JSON, so that's not an issue.

I've got my custom item in the game, but I want to know how to make it spawn in the world. Is there a quick way to do that? I've been looking into the code using ILSpy, Visual Studio and prowling around on GitHub, but I can't seem to find it.

The idea is that a barn animal leaves behind an item once a day, at a certain time per day, if a condition is met. I'm using C# to do that while I have a separate content pack for the item itself.

I appreciate any help or advice. Thank you.

patent atlas
#

like a dropped item, or something like a forageable plant?

#

oh

#

for dropped items on the worst case you can look into pig code

#

no

#

truffles are pickupable?

west grail
#

I tried that but it justs JSON

patent atlas
#

damn it's been a while since I played this

west grail
#

yeah it needs to a pick up item

#

lol

#

no worries

lucid iron
#

Are you hoping for normal farm animal business or something else

#

Normal = just like one of the vanilla animals (pig?)

west grail
#

basically the C# code loops through all barn animals and checks for a condition, and if that condition is met, spawn the item like a truffle would

#

yes basically

lucid iron
#

I don't think you need C# at all for that

west grail
#

but from looking at the JSON code, it's done one-by-one on each animal, which means it doesn't take modded animals into acconut

#

account*

#

that's even better, I'm sure I'm overcomplicating it

lucid iron
#

Here's a custom "dig up" animal that doesn't replace pig

#

It's entirely content patcher

patent atlas
#

the creature

lucid iron
#

That said you are subject to the vanilla pig digup rng with this

#

That's where you might need C#

west grail
#

I'll take a look at least, yeah

lucid iron
#

But I'd worry about that later, get it running with standard setup first

west grail
#

the mod itself is simple: if the animal's fullness is a certain value, leave behind manure that can be turned into fertilizer. I got everything working except knowing how to spawn the manure in lol

#

yeah. thank you

hard fern
west grail
#

I have it doing it once a day but I suppose I could check the fullness sporadically... gives me some ideas. thanks

lucid iron
#

There is a poop mod

hard fern
#

A ...

#

You're right

west grail
#

๐Ÿ˜‚

hard fern
#

There is.

lucid iron
#

It's independent of animal product tho

west grail
#

I'm sorry the way you said that was funny

lucid iron
hard fern
#

Iridium poo

devout otter
#

When you set up a shop, is there any way to make "this item only has 50% chance of appearing per day"?

#

I tried "Condition": "RANDOM 0.5", but apparently that means "50% chance when you open the shop" and I can just get it to eventually appear by closing-opening the shop.

lucid iron
#

Yeah sync random

#

I forgor the syntax but I'm psure there's a vanilla store that does it

rancid temple
#

Traveler I think

devout otter
#

Aa alright, let me see...

lucid iron
#

This one is rando seasonal fish I rmbr the person who came asking about it

uncut viper
#

SYNCED_RANDOM day randomKey 0.5

timid plover
uncut viper
#

(you can also change it to tick or season or year and optionally add @addDailyLuck at the end)

devout otter
#

Aa alright, thanks!

#

randomKey can be anything, right?

uncut viper
#

yeah, and any other random with the same key will be in sync with it

#

in hindsight putting just randomKey as an example is a vague choice lol sorry

atomic vale
#

why is this happning

#

i can't get it to go away

hallow prism
#

no idea with the masked stuff and no json

#

if you censor things you make it harder for people to help, just so you know

rancid temple
#

Looks like you're using Fields wrong, but that's about all I can tell

uncut viper
#

yeah you kinda covered up the stuff that tells you where to look

atomic vale
#

i am trying to add compat and it hates me

devout otter
uncut viper
#

do you have an optional dependency or late priority?

lucid iron
#

why is ur keey big whitespace

#

did u newline

rancid temple
atomic vale
uncut viper
#

Chu's discord didn't scroll๐Ÿ“œ

atomic vale
rancid temple
#

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

atomic vale
#

that is the json

rancid temple
#

I'm not downloading that lmao

uncut viper
#

no, use the uploader

atomic vale
#

i forgor ๐Ÿ’€

hallow prism
#

you are adding items with just context tags, i am not sure they can work

#

they probably need some mandatory fields

rancid temple
#

Did you add these fish before?

#

Because Fields can't add new things

atomic vale
#

these fish should be added

rancid temple
#

By a separate mod?

hallow prism
#

then why not having the context tag directly added to them?

atomic vale
hallow prism
#

oh

rancid temple
#

Did you make sure you're patching after that mod?

hallow prism
#

you need a different approach to edit context tags

#

i don't remember which one but you are not at the right level

#

let me grab that

atomic vale
#

thx

hallow prism
#

{
"Changes": [
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [
"199",
"ContextTags"
],
"Entries": {
"food_soup": "food_soup",
},
},
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [
"456",
"ContextTags"
],
"Entries": {
"food_soup": "food_soup",
},
},
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [
"457",
"ContextTags"
],
"Entries": {
"food_soup": "food_soup",
},
},
]
}

drowsy pewter
#

food soup

hallow prism
#

replace food_soup by the proper context tag (in both occurence)

#

food soup

atomic vale
#

this has been causeing me a headache for 2 hours now

drowsy pewter
#

I think you also need to make sure to patch after that mod. As two people said

uncut viper
#

i don't think that's the cause?

drowsy pewter
#

Either with an optional dependency or with priority field

uncut viper
#

you can replace the entire Context tags field if you want. it's not recommended, but you can

hallow prism
#

well

#

i am pretty sure that "field" isn't formatted that way either

uncut viper
#

you should still do what lumina says though, but that alone won't fix the error

hallow prism
#

but sure, i can try to provide an half incorrect fix!

uncut viper
#

That is how you edit the fields of an item

hallow prism
#

just with field?

rancid temple
#

I believe Fields would work that way, if you wanted to obliterate all the ContextTags

hallow prism
#

this looks odd to me

drowsy pewter
#

It does look like it would work lumina

uncut viper
#

it looks odd because it's absolutely horrid for compatibility

#

you SHOULD do the way you suggest. But this way works too if you just wanna replace the entire set of tags

rancid temple
#

The warning that was popping up was making me think this mod is trying to access Objects data too early

drowsy pewter
#

@atomic vale You have to make sure your edit order is ordered properly. Your error is because your mod makes edits before the mod that actually adds the fish. When your mod tries to add tags, the fish does not exist yet

hallow prism
#

i mean

#

i don't remember just "field" being a thing

#

but well

#

i didn't open a mod file in like one week

#

so, an eternity

rancid temple
#

It's Fields in the provided json

hallow prism
#

(except quickly earlier)

atomic vale
rancid temple
#

Easiest way is to make your mod dependent on the other

atomic vale
#

as the mod is going to be in a mod that doesn't need the mod i am refencing to run but jsut for this compat

rancid temple
#

If it's for compat and you want optional dependency, you'll need to make sure the patch checks if the mod is installed

hallow prism
rancid temple
#

Fields is good if you have a single thing nested in models/objects all the way down

#

As soon as anything is in a list/array, you need TargetField

uncut viper
#

it also works on slash delimited strings too iirc

drowsy pewter
#

yeah ivee used it often

rancid temple
#
    "Dependencies": [
        {
            "UniqueID": "", //whatever the mods unique id is
            "IsRequired": false //optional
        }
    ],
#

And then in the patch that adjusts their context tags, you need a

"When": {
  "HasMod": "" //whatever the mods unique id is
}
#

Otherwise you'll get some fun errors when the dependency is missing

rancid temple
#

Dependencies is in manifest, When is in the content

atomic vale
#

thx

rancid temple
#

Specifically on the same level as the Action that denotes the patches you'll be doing for the context tags

#
{
  "Action": "EditData",
  "When": {

  },
  "Target": "" //etc and so on
}

I've started moving mine up so they're more obvious

atomic vale
#

my brain is trying to wrap around this

rancid temple
#

Well, the dependency is the easy part, all you need is the other mods unique ID

#

Then you can make the switch to using TargetField and worry about the When last

atomic vale
#

thx

#

you are a lifesaver!

#

my brain will not explode thank you!

rancid temple
#

I need to figure out how global storage works I guess

drowsy pewter
#

[Unlockable Bundles] cleanupDay was called by NotOnHostComputer -7105846935796677645
[SpaceCore] Doing skill menus
[SMAPI] Skipped reload for 'Cornucopia.MoreCrops/teabushes' because the underlying asset no longer exists.
[Unlockable Bundles] cleanupDay was called by P0 2382915790532795785

This hasn't happened before today but I am getting this error just before I crash on my multiplayer game! Help!
Has anyone seen something like this before? Is it something on my end or do I tell them to re report on unlockable bundles? (no log ofc)

uncut viper
#

without a log im not even sure if that's actually an error or just a warning that doesn't actually affect anything (as in, not the actual cause of the crash)

#

im like 85% sure the "skipped reloading bla bla" stuff is usually a warning and I don't think that can really cause a crash?

drowsy pewter
#

Okay so it's just a situation where I respond with "Can I get the log according to the instructions please" and they never respond back

uncut viper
#

and then wash your hands of it, yep!

#

even if I'm wrong they should still give a log

rancid musk
#

Users really love coming up with new and innovative ways to not follow simple instructions to provide a copy of their log.

drowsy pewter
#

So true

rancid musk
#

(I lied. It's not new or innovative they just don't.)

#

Well the person who uploaded one specific log message to smapi recently for me was pretty innovative

drowsy pewter
#

New and innovative methods such as copy and pasting 60 error message lines into my comment section

uncut viper
#

(it is a WARN level log)

brave fable
#

"here is my error log" โœ…
"here is my log error" SDVpufferwaaah

rancid temple
#

Skipping because the underlying asset no longer exists is usually what SMAPI says when it's shutting down isn't it?

uncut viper
#

i feel like I've seen it happen once just during gameplay overnight but that might be my memory making things up

#

that is A cause though I'm pretty sure yeah

#

which raises a good point. can we even be sure the user crashed? maybe they clicked the X and didn't know what would happen

latent mauve
#

It also happens on a patch reload if you changed the name of an asset for some reason

rancid temple
#

Ah, yeah I can see that

calm nebula
#

but it's completely harmless in that case

#

ie, I don't hve access to {{season}}PrettyBush anymore but I'm also staring at the title screen

drowsy pewter
#

its a very simple asset in my case, just a simply loaded tilesheet

uncut viper
#

does it rely on season

drowsy pewter
#

uhh

#

Oh it does

#

Yeah

uncut viper
#

seems like something a tea bush sheet might

drowsy pewter
#
            "Action": "Load",
            "Target": "Cornucopia.MoreCrops/teabushes",
            "FromFile": "assets/teabushes_{{season}}.png"
        },```
latent mauve
#

I get that message all the time for custom farm maps when I return to the title, yeah, so completely harmless in most cases

uncut viper
#

i would be surprised if unlockable bundles was at fault either lol

rancid temple
uncut viper
#

waiting for someone to write a screenrant article about a bug as a report for a mod

rancid temple
#

Or what was that other one... someone got a link to a GPT convo where the person requesting help had uploaded their log to GPT

uncut viper
#

that one takes the cake for me I think, I think I'd rather receive anything else than that as a bug report

rancid temple
#

Technically I guess you could say at least that one had a log involved

tribal willow
#

Oh god I actually just got into this via gpt last week ๐Ÿซ  to it's credit, the amount of minute details it gets completely wrong really helped me learn how to look up info on my own

uncut viper
#

i would say it gets un-minute details majorly wrong too

#

hour details?

rancid temple
#

Year perhaps

uncut viper
#

maxute

tribal willow
#

Please don't bully my teacher

rancid temple
#

Please learn from anything else

uncut viper
#

you'll not receive any love for any AI like that in here

tribal willow
#

I'm joking!

#

I promise I'll be asking questions soon enough ๐Ÿซ 

uncut viper
#

all too easy to take it too seriously when it feels like once a week someone comes in citing their chatgpt code for their mod or mod help lol

drowsy pewter
#

"I keep getting this error can anyone help??"
"Yeah post your code though"
"Here's my code by the way i asked chatgpt for help so its probably shit ๐Ÿคช but whatever"

uncut viper
#

(that's not an exaggeration)

atomic vale
#

is fish pond water color able to be changed with CP or is it hard codded?

rancid temple
#

CP now

drowsy pewter
#

The worst is when they dont even take it seriously lol its like if you dont think chatgpt can write good code then its not like any of us want to fix it for you

rancid temple
#

I had made a mod for it, but thankfully it was consumed by CP so now I'm free

uncut viper
#

fresh off the 1.6.9 presses for that one

atomic vale
rancid temple
#

Yeah, same for Button's reponse

atomic vale
#

k i can't seem to be getting it to work

uncut viper
#

you might be able to load the wiki page but who knows

drowsy pewter
#

Is the wiki still struggling?

rancid temple
#

Did you change your format to 2.4.0?

uncut viper
#

very much

drowsy pewter
#

Someone put it out of its misery

uncut viper
#

im close to just downloading individual pages as backups that I use often

rancid temple
#

I'm always surprised when I click a page and after the 5 minute load time it actually pulls up a properly formatted page

uncut viper
#

I probably should at least download the migration pages

rancid temple
#

I've taken to not closing pages again, like when I first started modding lmao

drowsy pewter
#

I mean if you download them then we can spread copies around in the channel

#

Just like the dark ages..

uncut viper
rancid temple
#

That's what I usually get kyuuchan_ohoholaugh

#

Just an absolute 90's looking webpage

uncut viper
#

also fwiw the content patcher format version doesn't matter because it doesn't need a rewriter

rancid temple
#

Ah, I'm never sure exactly what features are blocked out by format

teal bridge
calm nebula
#

just decompile the game and read the code!

lucid iron
#

what if u just spin up a media wiki mirror

#

mirahaze can do that right

uncut viper
#

unless you're working off an old decompile/unpack you don't need a modern CP format

rancid temple
atomic vale
uncut viper
#

edge cases don't interact I didn't think too hard there

calm nebula
#

I'm actually surprised at the sheer number of randoms the game inits

lucid iron
#

r u manually getting each one

atomic vale
#

the wiki is working of for me for now

calm nebula
#

no, most go through a handful of helper functions I'm patching

rancid temple
#

Everyone wants their first game to be procedurally generated

calm nebula
#

most, glares at Game1.random

#

look at this

rancid temple
#

repeats 61 times... this frame?

calm nebula
#

not necessarily this frame

#

just 61 times, exact same seed

#

why ๐Ÿ˜ฆ

#

oh my god this is hialarious

uncut viper
#

1000, 7, and 11 are maybe some of the most random numbers i can think of, so that looks good to me

calm nebula
#

it's initiating a random..for every quest...in the quest log...of every farmer

#

because every farmer is deserialized for the loadgamemenu

brave fable
#

i nominate 8868 as the most random number, being the ascii int value of XD

#

this number was decided on from years of study by mathematicians and scene girls

#

incidentally, what's the draw to refreshing the rng? i thought we already had a mod to do this, or is this the continuation

atomic vale
calm nebula
#

both kinda just replace Game1.random with their own random impl

#

but Game1.random is not the problem

#

the problem is all the times the game initiates a new Random

brave fable
#

ah, so this is another transpiler MIRV

calm nebula
#

MIRV?

brave fable
#

well i was going to call it a carpet bomb of transpilers, but with a bit more precision

#

another prismatic-everything mod

calm nebula
#

blueberry, there's only one transpiler so far

#

most (and this is just MOST) of the random number generation (that I care about) goes through a handful of helper functions that I've patched

#

very few new Random left in the game, there's a handful of things related to a new secret (which I don't care enough about)

#

the chance of getting prismatics from big meteor

#

which also I don't care much about

#

I care more about the day to day randomness of, like, rain chances

#

(hi Khloe!)

#

this is the one transpiler


        bool found = false;
        foreach (CodeInstruction instruction in instructions)
        {
            if (!found && instruction.opcode == OpCodes.Ldc_R8 && instruction.operand is double v && v == 0.0)
            {
                found = true;
                yield return new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(GameLocationForagePatch), nameof(GetValue)))
                                        .WithLabels(instruction.labels)
                                        .WithBlocks(instruction.blocks);
            }
            else
            {
                yield return instruction;
            }
        }
brave fable
#

oh if khloe's around, love of cooking is getting a 2.0 release after the weekend, so you might get some spill-over bug reports if something goes wrong

#

why do you use if instruction.operand is double v over if instruction.operand is w? seems inefficient of u

calm nebula
#

speaking of rain chance, that's the next feature up

#

where I'll bend the rain chance higher if there's been a drought

devout otter
hallow prism
lucid iron
lucid iron
#

You can't item query the currency in a shop right

#

Or use multiple items

#

Is there demand for such a thing yggy

calm nebula
#

I wonder if it would be interesting to have a third stage for animals

rancid temple
#

My first thought was a la Pokemon and then I realized you probably mean old age

#

Better yet, give all of them 50 stages like Digimon

coral horizon
#

can stdv tell what health the farmer is at?

#

i wanted to have dialogue branch off based on if the player was "injured", and i could have the character just ask, and have the responses branch from player input, but it would feel more natural if they reacted

tiny zealot
#

i don't believe there's a built-in way to check player health where NPC dialogue can reach it

coral horizon
#

shucks

#

questions it is

#

thanks

rancid temple
#

Seems like the kind of thing that wouldn't be too hard to make a GSQ for, but I currently don't have any mods that touch on doing stuff like that lol

#

Aside from my personal trash pile mod

teal bridge
# calm nebula why ๐Ÿ˜ฆ

You're going to break all the predictors if you mess with these... I guess maybe that's the point for you, but I hope you note it prominently in the description.

rancid temple
calm nebula
#

but I'm not changing that specifically, I was just more amused because why is it different in MP

rancid temple
#

rAnDoM

calm nebula
#

(to also be fair, I think the

  1. I want to be pleasantly surprised by randomness.
    and
  2. I want to know the outcome of everything

is not the same person.)

#

I've been listening to an audiobook about the power of dopamine recently

scarlet quarry
tribal willow
#

Hey all! I've tried 3 different tutorials for adding an object (food item) into the game, but despite the mod showing up in SMAPI and causing no errors, smapi can't find anything when trying to spawn it in my inventory. Can someone point me in the right direction for reading on what may be happening? json files are all valid, I have a placeholder sprite, etc. Maybe I'm missing something obvious. I've followed tutorials for json assets and content patcher. I'm about to start praying to the moon for guidance.

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.

lucid iron
#

!log

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
#

post your content.json and your log

patent atlas
teal bridge
#

We use our best judgment... most of us. If it's a major or important update, sure. If it's "fixed typo in default.json", maybe leave it be.

tiny zealot
#

it's also courtesy not to flood the showcase with your own posts

brittle pasture
velvet narwhal
#

best judgement, either new mods or a major update, if i added like 50 lines of dialogue i wouldn't bother

ivory plume
velvet narwhal
#

(i win the bet then i'm gonna hedge everything on 'possibly last update')

tiny zealot
#

avi getting ready with the eyes emote

velvet narwhal
#

we love divisible by fives SDVpuffersquee

tiny zealot
#

since i've been testing grandpa's evaluation recently... has anyone else had inconsistency getting the event to start when waking up on spring 1 year 3?

velvet narwhal
#

mm i can speedrun it if you want but i don't know how consistent that'd be

lucid iron
#

i only seen it like 4 times

#

but its always happened for me

brittle pasture
#

huh it should be guaranteed right, as long as you go to bed on winter 28

#

that's what I got from the testing

tiny zealot
#

it should be, but sometimes it doesn't start for me until i walk outside, see the candles, get assaulted by marnie/kent/demetrius, and then when those are done grandpa shows up

patent atlas
teal bridge
#

You need to be orange, like us.

patent atlas
#

but I hadn't looked at my page in a while and aparently my mod had been broken for a month due to 1.6.10

velvet narwhal
#

oh cause you're backlogged by events?

patent atlas
#

and i just updated it, so idk if it is major enough

#

also how do yall test networking

tiny zealot
teal bridge
#

Honestly, we're signs, not cops, but compatibility updates generally aren't cause for a showcase post, unless they're also major feature updates.

velvet narwhal
#

are you using day skips? i can debug for you on my day off but that's not for another two days KEK

tiny zealot
#

i am exploiting debug commands to get to the right time and meet the requirements (hence the unwatched events), so that could be involved, which is why i asked in the modding channel

teal bridge
#

Of course, if it's something like Love of Cooking that has been broken for years, then maybe it warrants an announcement....

velvet narwhal
#

bluebs on vacation, blissfully hidden love of cooking KEK

tiny zealot
#

but the eval event is in FarmHouse and the requirements are "558291/y 3/H" so i can't imagine why it wouldn't fire on wakeup

patent atlas
#

ya nah neither my mod nor the update are nowhere major enough

lucid iron
#

join local lan, no ip entered

#

you also want to test split screen which works different than 2 actual instances

patent atlas
#

huh, dunno why i didnt think of that when my current job involves testing the project doing exactly that

patent atlas
#

thanks!

lucid iron
#

well

patent atlas
tiny zealot
#

i also don't know how! i've never seen split screen and i tell myself it doesn't exist and can't hurt me

lucid iron
#

i feel obligated because i am wired that way

#

unfortunately

velvet narwhal
#

i forget, but events go on a stack don't they? grandpa's is probably going after everyone else's because of the stack woopsDerp1

teal bridge
#

I test multiplayer by drinking a Scotch and hoping that it all works out.

brittle pasture
#

I'll test split screen/mp once I get paid for it

lucid iron
#

im done with all this netcode stuff now that trinket is yeeted out of the door

patent atlas
#

trinket?

lucid iron
#

yea i was make a framework

royal stump
#

split-screen support is mostly wrapping any per-person variables in SMAPI's PerScreen<type> class
and you start it by loading a game (not necessarily hosting, you can just click Load), going to options, and clicking this

tiny zealot
lucid iron
#

i didnt implement hungry frog though, slacc

royal stump
#

probably requires a gamepad to test properly

calm nebula
#

yeah, you either emulate a gamepad

#

or you buy a controller

#

or you say fuck that shit and knit a sock instead

#

or argue with ilgen

#

hey esca! Can I show you something fun

velvet narwhal
#

atra loves showing the new fun thing

royal stump
#

sure, can't promise I'll understand it if it's IL or something SDVpuffermlem

lucid iron
#

atra just likes sowing fear in hearts of mortals

royal stump
#

squints yep, good job with whatever those instructions are SDVemoteowo

brittle pasture
#

almost as scary as Button's pile of IL

royal stump
#

(I did see you were poking at better rng, but yeah, I'm not very familiar with those internals)

teal bridge
#

I've never seen someone get so excited about a PRNG before.

velvet narwhal
#

well atra is now titled 'mathperson' so it checks out

lucid iron
#

this isnt very quantum

teal bridge
#

Meh, he didn't actually create a new algorithm, so it's not math.

velvet narwhal
#

true, you were talking entropy the other day, i was expecting some entropic RNG

teal bridge
#

I mean, I'm hoping for the best, personally, but I maintain that without a distinction between global and derived entropy sources, it's not going to "feel" that much better than what's there now.

royal stump
#

at very least, I like the idea of tricking an rng into using seeds and then tricking stardew into using it

lucid iron
#

the only times ive ever thought about prng in sdv is when i get the dum wizard special orders

#

and the slime doesnt wanna spawn

brittle pasture
#

prismatic slime/ghost goo I forgor its name my beloathed

royal stump
#

aside from early FTM misuse of them, I remember doing a PR for one of the early rng replacers at some point, I think it had a divide by zero? SDVpufferthink

#

basic new Random or Game1.random's good enough for me not to think about it

teal bridge
#

I think you could get decent results by replacing the game's seeded randoms with derived entropies - instead of replacing them all with the same global entropy.

devout otter
#

How do you get your map to use custom tilesheets like from DaisyNiko's Tilesheet? Do I just do it the same way I do vanilla tilesheets? (i.e. copy the tilesheet to my map folder when making map, delete when finished?)

lucid iron
#

i believe daisyniko loaded their sheet, so yep just like vanilla

devout otter
#

On another side of the coin, if I want to load a tilesheet for other mods to use or edit, then I just need to do Load with Maps/<Tilesheetname> as Target, right?

#

Alright, thanks!

old edge
lucid iron
#

yes, block Farm.addCrows somehow

old edge
#

Hmmm I already have a class for my farm set up

#

Or whatever its called

lucid iron
#

well you cant override it, it's not virtual

velvet narwhal
patent atlas
#

can I remove fields from mod config?

#

i cant see to find a relevant method in the api

fallen depot
#

Does anyone know where the tilesheets of crops are located?

brittle pasture
#

in the creatively named TileSheets/crops

#

(Maps/springobjects for the actual crop items)

woeful lintel
patent atlas
#

Damn

devout otter
#

Is there a way to change a map tile to another index via EditData?

lucid iron
#

no but u can editmap

devout otter
#

Oh wait sorry, I meant via EditMap, but not by patching another map onto it.

lucid iron
#

yep map tiles

#

this adds 2 tiles to the map

devout otter
#

Wait you can even set tilesheet? So in theory you can do an entire map patch without using Tiled?

lucid iron
#

yep

#

well, i imagine it's probably pretty bad perf?

#

and u cant resize the map

devout otter
#

Yea, I imagine nobody would do it like that. But you can.

lucid iron
#

but for small things it might be faster

#

dont need to parse a whole tmx PecoWant

#

thats why i did it

devout otter
#

Here I am making 1x1 .tmx files. ๐Ÿ˜…

lucid iron
#

well now u can switch over Dokkan

devout otter
#

This would be very useful. Thank you!

lucid iron
#

say tile action and touch actions r both new in 1.6 right

hard fern
#

? ...no? SDVpuffersweats are they?

#

now this is bugging me ๐Ÿ˜ญ

lucid iron
#

ah nop

#

it was just actions huh

oblique meadow
#

Can someone help me understand something. So in my mod. When upgrading from farmhouse 1 to farmhouse 2 its randomly shifting everything super far down and right. The map doesnt shift, For all intents and purposes the coordinates should remain the same but it's shifting. Is there something hardcoded im not accounting for?

velvet narwhal
#

renovations don't kick in until farmhouse3, right? it's been such a long time since i've bothered

#

what exactly is shifting?

#

!json (but also use this to show us your jsons)

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.

tawdry light
#

Does anyone know if there is a way to use "textAboveHead" on the farmer during an event?

velvet narwhal
#

can't

tawdry light
#

That's what I thought. Thank u for clearing it up.

velvet narwhal
#

unless you hard image them and use the object above head command

#

but then the farmer looks like they're holding up a text bubble, but it has been one of the banes of existence

#

you can possibly get around it by having a completely "transparent" fake npc that is directly underneath the farmer

#

with ignoreCollisions

#

(fake meaning, you load something like MyFakeNpc to Characters/MyFakeNpc as a transparent image, you then call that "actor" with addTemporaryActor MyFakeNpc then you set ignoreCollisions MyFakeNpc and warp that thing on top of the farmer and use it to "speak" so to speak)

tawdry light
#

Gotcha. Thanks a lot

#

I'll see if that's something I wanna do. Since I plan on making many events I might have to learn it eventually. For now tho I think I will just scrap my initial idea since it was just one dialogue bubble anyway and save what you said to use it in the future.

#

If I get the hang of it I can go back and improve on past events