#making-mods-general

1 messages · Page 577 of 1

uncut viper
#

If both are false then it'll just check "false": true and if it's both true then it'll still check "true": "true"

#

(that's not exactly what its doing but practically speaking thats what its doing)

#

Basically it's your OR check but with a much more performant Merge instead of Query

proven spindle
#

The livestock bazaar framework could probably help with that when you get to the 'make animal shop' part

urban patrol
#

one day i will understand merge and query

ornate locust
#

excellent, that is just what I was looking for, thank you!

uncut viper
rotund marsh
#

Guess I'll go back to writing content patcher mods 😂 Nothing like trying to figure out things while working

uncut viper
#

That can be tokens or raw strings

#

{{Merge: one, two, {{season}} }} can become essentially its own token whose value is one, two, spring

#

Which you can then use in When conditions to check if it has any of those values in it

urban patrol
#

so you would check that merge xyz contains desired value?

#

i see

uncut viper
#

So if you give it a list of |contains tokens then you're making it construct a list of true or false values

#

(But because it's a set, there are no duplicate values allowed, so the final list will have "true" in it if ANY of the ones you put in are two, and it will have false in it if ANY of the things are false)

#

(Which means it can have both a single true and a single false, but if there's a single true in it then you know your OR check passed bc something mustve been true to make that happen. same for false)

urban patrol
#

interesting

#

how is it different from checking like normal OR (for example when x, when y)

uncut viper
#

you can also do |contains directly on the Merge token like any other token ofc

#

thats not an OR

#

if you list multiple when conditions, they are all AND

urban patrol
#

i always mix that up

#

when x,y

uncut viper
#

thats checking an OR on that specific condition, which is fine

#

but Midnight needed to check two different tokens

#

which would be two different conditions

urban patrol
#

ah i see

#

can’t check for spouse emily or season spring

uncut viper
#

correct, not without Merge or Query

#

Query would work, its just much less performant

toxic topaz
#

so if i want to use the editmap action, do i unpack the xmb of the map, edit it using tiled. and then just use the action to pretty much just overlay?

urban patrol
#

but query is more versatile?

spark wharf
urban patrol
urban patrol
modest dagger
#

there is yes

uncut viper
# urban patrol but query is more versatile?

well it can do all those fancy mathematical or logical expressions, so yeah, its more flexible in that regard. thats also why its a lot more expensive (relatively speaking, ofc) to calculate its value, and it cannot cache its value so it has to recalculate everything every time CP sends out an update notice to it

#

(correction: it cannot cache its value for that long*)

urban patrol
#

gotcha

uncut viper
#

(it clears its cache every time it gets an UpdateContext sent to it i.e. time change, location change, daystarted, whichever is relevant for that patch. or maybe whenever any patch gets those, idrk)

proven spindle
urban patrol
#

if i’m recalling my own code correctly i think i have a complicated system of queries for HasMod checks and compatibility

#

maybe i should look at using merge

modest dagger
#

it was a nice touch seeing ur butchery selling my meat products

spark wharf
#

Thank you both, I'll try the MinStack and MaxStack first

urban patrol
spark wharf
#

oh wait, it says the Min and Max stacks has no effect on stock limit SDVpufferthinkblob I would like a range that it can choose from..

verbal glacier
#

That would be AvailableStock

spark wharf
#

I thought that was just a hard number, like if I set it to 20, it would be 20 every time. Is there a way to make it do a range? like between 20 and 60, as an example

verbal glacier
#

Maybe you can put a range token?

urban patrol
#

do you want it to vary day to day?

#

yeah i was gonna suggest random range

#

but random only updates at the start of the day

spark wharf
#

Yeah a new value every day. I want it to match with another mod I have that adds varying daily stock limits

uncut viper
#

no, you cannot do a range token

urban patrol
#

{{Random: {{Range: 20, 60}} }}

#

oh never mind

uncut viper
#

oh, with Random, yes you can

#

sorry, i missed the random part

urban patrol
#

oh okay great

#

you can’t do steps though

#

so this might pick a weird number like 32

spark wharf
#

So I would put "AvailableStock": {{Random: {{Range: 20, 60}} }}?

#

Yeah that's fine

urban patrol
spark wharf
#

"AvailableStock": "{{Random: {{Range: 20, 60}} }}"?

#

awesome thanks so much

uncut viper
#

you can do steps

spark wharf
#

I don't mind weird values like 32 or 48 and the like since that's how the other mod does it too

urban patrol
#

actually yeah that’s true just don’t use range

uncut viper
#

no, you can do steps with range

urban patrol
#

oh really? nice

uncut viper
#

{{Random: {{Range: 20, 60 |step=5}} }}

#

That would give {{Random: 20, 25, 30, 35 ... }}

spark wharf
#

oop.. red smapi error..

uncut viper
#

Yes because you forgot a comma after the price line

ornate locust
#

alright, compatibility hooked up for Star Crossed, Alex and Jeric, and Sam and Alissa.

#

Sam in particular woulda been a pain without merge

#

now that I look at it, I could do one contains for both. but my brain might be fried right now after trying to figure out queries

spark wharf
#

seems to be working perfectly now! thanks a lot yall 😄

modest dagger
#

my warps so messed up i just randomly found a warp to inside my building in the ocean?? 😭

marsh reef
#

Thank you 🫡

marsh reef
spark wharf
#

oh! Not making one, I was taking an already existing mod that adds Y2 seeds to Y1 and putting another mod's strawberry seeds to Pierre's stock bit into it for personal use

marsh reef
#

I see I see

spark wharf
#

if I couldn't do that I was gonna try to cobble one together from scratch but thank goodness I dont, i'm kinda tired of looking at brackets..

marsh reef
#

LOL I see I see, yea I haven’t really touched making a mod from scratch yet I’ve only really found one that does smthn similar and Frankensteined that junk

ornate trellis
#

can someone refresh my memory on artifacts? i wrote down for myself to take mine out of perfection but when i check the page all i see is for shipping collection but artifacts are by default set to false for that...am i missing something where artifacts play a role in perfection...or was it because of needing to donate to the museum..? i dont remember..

verbal glacier
#

i think you get a stardrop from the museum

ornate trellis
#

yeah im wondering if its that, i dont remember if the donate all artifacts number increases with mods adding artifacts or not

uncut viper
#

It does increase.

#

Assuming they meet the donation criteria

royal stump
#

tldr the tag not_museum_donatable can exclude something, but yeah, it counts artifacts and minerals for total completion, which sets a mail flag and ig gives the stardrop

ornate trellis
#

hm

royal stump
#

other than that and the shipped-everything part, artifacts shouldn't affect perfection

#

unless it can be cooked/crafted for some reason etc

ornate trellis
#

so i can use the tag then? its just standard dug up artifacts

royal stump
#

that tag seems to override the museum's "total donation items" check, yeah

ornate trellis
#

that seems easier to do than the other suggestion i got of changing it to basic or something and do a category override via spacecore(which id need to read up on firstfdsda)

royal stump
#

for future code reference...
Utility.percentGameComplete checks Utility.foundAllStardrops checks for the "museumComplete" flag
which is set in MuseumMenu when pieces == LibraryMuseum.totalArtifacts (edit: see button's post)
which checks every existing (O) object, passing them to LibraryMuseum.IsItemSuitableForDonation
which says "if this isn't an (O) object, or it has not_museum_donatable, it's unsuitable" before any other checks
(after that, if it has museum_donatable or item_type_arch or item_type_minerals, it's suitable)

uncut viper
#

(small correction: the mail flag is determined by the entry in Data/MuseumRewards)

#

(it looks for museumComplete (lowercase m))

#

which means you could technically change the requirements for the museum completion mail flag (and thus star drop (and thus thus perfection) ) by editing that entry, which will occur in vanilla if the total number of donations equals or exceeds the totalArtifacts

royal stump
#

SDVpufferdizzy thanks, I forgot to double-check whether the multiplayer messages did what I assumed

uncut viper
#

funnily enough you can actually complete the museum but not get the multiplayer message if a mod lets you donate multiple items at once

#

since its a strict == check not >=

royal stump
#

yeah, the == bit there

gaunt heath
#

Uhg it's been so long since I've spent any time properly fighting with content patcher.
I can't use GSQs as conditions for dynamic tokens, right?

royal stump
#

nope, GSQs are only used in assets with "Condition" fields, aside from EMP or other frameworks offering custom tokens for them
(and they're not super compatible with CP's token setup, so the performance is kinda bad)

gaunt heath
#

That was what I thought, but I was being haunted by "what if I'm doing this the hard way for no reason" SDVpuffersquee

#

Thanks!

calm nebula
#

Depending on what you need. You may be able to use a trigger action to set and unset a mailflag

#

And key your patches on that instead

gaunt heath
#

It's so I can choose what map I'm loading in a more streamlined manner (eg grabbing {{condition}}_map instead of manually grabbing condition1_map or condition2_map or condition3_map etc etc)

#

I think a mailflag will make this situation more confusing than less, so I'll just do it the annoying way lol

lucid iron
#

u can always do local tokens tho

gaunt heath
#

I probably will, I want to get a subset running well first though before I start adding that extra layer of complexity

thorn hollow
#

Hi, can anyone tell me to how to trigger the Cave Patrol special order using debug by any chance? Specifically what the ID for it is?

I made a change to it and want to see if it worked. I thought "Clint" was the ID, but smapi says it isn't.

Or alternatively, is there any other way I can quickly test this?

barren tapir
#

how would a c mod change the texture of all instances of a certain building? More specifically, I'm trying to add tile action that changes the texture of a building

lucid iron
#

if u want to change it for all u could just edit the texture itself and invalidate

barren tapir
lucid iron
#

yea so edit in this case means "do AssetRequested stuff"

#

and invalidate means helper.GameContent.InvalidateCache

#

the other method if u control the building itself is to impl custom class and then u can do whatever u want on the draw PecoWant

barren tapir
#

My original plan was to create a custom class, but I couldn't find the GoldenClock class in the decompile.

For context, I'm trying to create a building that is very similar to the golden clock. When built, it can either be activated or deactivated, and while active it will force the witch event to be golden

lucid iron
#

Well you won't be implementing the class for golden clock features

#

It'd just be there for drawing

lucid iron
barren tapir
#

I was moreso trying to find it for reference as to how you'd create a togglable building

#

Wow, OnAssetRequested looks way simpler 😅

wary dew
#

\

royal stump
thorn hollow
urban patrol
#

is it possible to check if an NPC is currently visible? not as in on the screen, as in has not been set to invisible

calm nebula
#

In an event precondition yes

calm nebula
#

!mh

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

urban patrol
whole prism
#

i am now a yippee critter

ornate trellis
#

im doing a thing and uh...did I write the GSQ right here if i want it that locationcontext is checked where the player is right now?(trying to use IE to have my treasure only appear in this location context)
"Condition": "LOCATION_CONTEXT Here {{ModId}}_LostIslandPassOut",

uncut viper
#

did you make a custom location context?

lucid mulch
#

(location context refers to broad areas like 'Default / Valley' or 'Island', not specific maps/locations)

uncut viper
#

A location context is Default, Island, or Desert

#

those are the vanilla ones

ornate trellis
#

im just trying to limit so the item will only pop up there

uncut viper
#

did you set the location context in the map properties?

ornate trellis
uncut viper
#

then sure that should work

ornate trellis
#

yippie

uncut viper
#

though, PLAYER_LOCATION_CONTEXT would be more accurate

#

well actually, i guess that depends

ornate trellis
#

oh?

uncut viper
#

i dont know what IE assigns to the location or player

#

you might even need Target instead of Here

#

when a mod calls a query (such as IE checking a GSQ) it can assign any location it wants to the GSQ, same with any player, or any item

ornate trellis
#

well it just says

Custom treasures have the same fields as ExtraSpawns.

Just like ExtraSpawns, they also have the same fields as any spawnable item.

uncut viper
#

Here will refer to whatever the games current location is, which is often but not always where the current player is

ornate trellis
#

🤔

uncut viper
#

if IE doesnt pass in any location to the condition check, then it defaults to i believe the players current location regardless

#

or the games current location. one of the two. idr

#

if it does assign the relevant location to it, then Target would be best

#

but if you think there would never be a situation where this treasure might be generated from outside the location but is meant to be inside the location, then it likely doesnt matter

ornate trellis
#

hm

uncut viper
#

(which is to say, idk what you're generating here or how or when IE does it)

#

(but you're kind of at the mercy of IE here for it)

ornate trellis
#

but either way if i had to choose rather Target than Here tho or does it truly doesnt matter at least as long as idk more details how IE does it?

uncut viper
#

if you write Here, it will always be where the game's current location is (not the players location in all cases)
if you write Target it might be the same as Here if IE doesnt set it, or it might be somewhere completely different if IE sets it incorrectly

#

i would go with Here if you're confident the generation only happens when the player is in the location

#

like is this fishing treasure or some other treasure

ornate trellis
#

oh sorry i jsut said treasure...yeah its fishing treasure

uncut viper
#

if its fishing treasure its not likely to happen in such a weird way as to make Here wrong

tight rivet
#

having to explain to people that you shouldn't use Stardew Stabilizer and Stardew Texture Cache Purge is suffering

calm nebula
#

What's stardew stabilizer

ornate trellis
#

ok I will go with Here then, thanks for explaining it to me

lucid iron
#

Is stabilizer another one of thos GC goes brrr mods

tight rivet
#

a mod I can't actually link here becuase of the server policies but yeah

#

"13Lg)Keeps long modded sessions running smoother by preventing the gradual slowdown that can build up over time. It does cleanups when memory stays high, which helps reduce lag spikes and lowers the chance of crashes after hours of play."

ornate trellis
#

hm, but then also rather PLAYER_LOCATION_CONTEXT than just what i had? thonking

tight rivet
#

me: oh god no don't mess with the GC

whole prism
#

@autumn tide
Krobus :0

lucid iron
#

Nice cached data you got there sure would be a shame if someone tossed it randomly and frequentlyAnnelieStare

tight rivet
#

yep

autumn tide
whole prism
ornate trellis
#

a wild claude

whole prism
#

is mentioned

#

or content is being added

#

i tell u : 3

#

aquatic sea fish will haev soem quests with them

autumn tide
#

oh nice :)

whole prism
whole prism
autumn tide
#

(yeah my life is fucked)

tight rivet
#

sorry to hear that. 🙁

autumn tide
autumn tide
#

hows fish mod going?

ornate trellis
#

fish...

whole prism
#

I'm changing a lot of the older quests to be locked behind friendship levels

#

And the new ones are all frienship levels and more specific quests

#

that way u have to get to know people more to get more quests : )

#

one of my favorite quests is giving honey to Elevyn two weeks before the flower dance, so she can make people some nice tea : )

#

lot of other cute quests but

autumn tide
#

oh that's cute!

whole prism
#

id rather not spoil

#

heh

#

oh yeah!

#

do you know the "bigger fish" mod

#

that adds huge sprites of fishies

#

to vanilla fish? and some sve?

autumn tide
#

mhm

whole prism
#

theyre adding compat for ASF!

#

still in the works

autumn tide
#

oh sweet!

lucid iron
#

Is this a weapon

#

I wish to shoot the sord fish

autumn tide
#

I would also like to use a sword fish as a weapon

ornate trellis
#

oh my god

#

if i can throw a bed, why not a swordfish...

autumn tide
#

please void

ornate trellis
#

i dont have a swordfish tho

craggy goblet
#

Then take one and throw it

ornate trellis
#

my throwable weedses code is free to be used by anyone tho

craggy goblet
#

Super hard

#

So we could throw swordfish at the townsfolk? (or at Lewis?? 👀✨🤣)

ornate trellis
#

man, discovering that i can have bed projectiles was the funniest shit ever

#

whats another funny thing to use...

lucid iron
#

Milk

#

Nah actually u should throw purple shorts

ornate trellis
#

damn, you right why didnt i think of that one

#

hm...last time i broke my mod when i set the speed to high...

craggy goblet
#

and eggs

#

I need to egg the living crap out of Lewis

whole prism
#

or

#

just use vanilla fish

#

ik theres a mod that lets u slap fish

#

but throw fish? i dont know..

calm nebula
#

Chue make fish a sword?

ornate trellis
autumn tide
#

you are truly an artist

whole prism
ornate trellis
#

yo what happened lmao

uncut viper
ornate trellis
#

i had them stuck in their active size or w/e for a sec

ornate trellis
#

oh, ive forgotten what i was doing for my mod...oh well, guess i gonna snooze

lucid iron
#

Zoom

tight rivet
#

gotta go fast., I guess

ornate locust
#

i might just lie on my face for a while on the floor

jaunty shuttle
#

Happy cold floor sensory, or defeated feeling?

#

(did your NPC testing not turn out how you wanted?)

ornate locust
#

Nothing worked. I am going to try something else and hope it was just because I was trying to fast track it with a poly mod

jaunty shuttle
#

Fingers crossed that's what was wrong SDVpufferheart

ornate locust
#

I mean, it'll be bad news anyway because it'll take longer to test... and it means the functionality might not work for people using poly mods, and how do I fix THAT

rich cliff
#

Halp 🥹 idk where to start with this mod idea. I'm basically making a whole new unique livestock with a custom hutch. making two different sizes for the snails might be to much for me so I'll just stick to giant snails and a custom hutch for them.

#

The snails will provide slime and snail eggs. The snail eggs can be used in a dish and the slime is basically slime.

jaunty shuttle
#

How do you get the snail eggs, are they like truffles and appear outside? Or do they appear in the habitat?

brittle pasture
#

you just need a bunch of edits really
add new animals to Data/FarmAnimals, their house in Data/Buildings, their produce in Data/Objects, and their recipes in Data/CookingRecipes

#

and draw sprites of course

#

the wiki reference + the unpack is your best friend

#

to simply things start with one task at a time, like try to get your custom items to show up first

brave fable
#

what I prefer to do is have the invis tile itself be hot pink or bread and show/hide the layer when exporting from the PSD when I'm editing/checking collisions. makes it very easy to visualise collisions

faint ingot
ornate locust
#

is there hypothetically a way to ask Free Love (since everything else is a fork of it IIRC) what all spouses a player has? Because "Spouse:anyPlayer" only seems to see the last spouse I got here.

uncut viper
#

It has its own token iirc

#

{{PlayerSpouses}} (but with the modid prefix like other custom tokens ofc)

#

It will ofc be a different modid prefix for each of the forks, though

ornate locust
#

Ah, thank you!

#

I can deal with that

rich cliff
rich cliff
ornate locust
#

what on earth

#

What does it mean if a token isn't "ready"?

uncut viper
#

it aint ready yet. relies on information that cant be grabbed yet

#

e.g. {{Season}} cant be ready until a save is loaded

autumn tide
#

oh I haven't seen that yet

ornate locust
#

I see

#

gonna have to do some nonsense to be compatible with more than one Poly mod, I think

#

or maybe I'll just say "use EnderTedi's or else, it's the one that lets me do an :anyPlayer"

lucid iron
#

just give up no polycompat allowed

#

😌

ornate locust
#

well I did some fancy "this changes if both people move out", it'd be a shame if only multiplayer people saw that

vernal crest
#

@shrewd topaz Hi Lex! Do you mind if I DM you about some Sydney compatibility stuff?

fierce vault
#

I think I'll update my mod again with some small stuff today. I've thought about waiting to roll the new things in with a slightly bigger update, but people haven't been reliably updating my mod anyway when new tiny ones come out (which is understandable, I've been there 😅) so I guess I might as well just add the stuff I want new players to see, now.

My mod is at 1.0.3, and this time I'm adding new content that I feel is worth going up to 1.1... It would probably be standard to keep the 3 at the end right?

uncut viper
#

no

fierce vault
#

oh

uncut viper
#

when you change a number, you reset every number to its right to 0

fierce vault
#

Ok, glad I asked then SDVpuffersweats

#

1.1.0

#

ty button

autumn tide
#

afaik the formatting for that is suposed to be VeryMajorUpdate.Update.TinyBugFixesEtc, right? (checking bc I honestly have just been guessing this whole time-)

royal stump
#

it can get a bit vague in context, but yeah, there's an overview of the convention linked on the wiki's manifest page
https://semver.org/

fierce vault
#

Yes-ish, I think? That, and it's kind of determined by vibe?

tiny zealot
#

in stardew/smapi land it's vibes, yeah, as long as you don't decrease the number.
if you're following actual semver like the link explains, it matters more

fierce vault
#

Yeah, stardew modding isn't as serious

tiny zealot
#

(but even then semver is just one convention that you aren't obligated to follow)

royal stump
#

SMAPI's update checker consider 2.0.0 newer than 1.99.0, which is newer than 1.0.99, etc, but other than that, it's just conventional

uncut viper
#

It is however the one that SMAPI uses for determining update checks so don't get too wacky with it if you want those to work

fierce vault
#

don't do something like FINAL

#

(in the ver. number)

uncut viper
#

you are still required to use actual numbers in the manifest

royal stump
#

(also there can be a whole secondary thing like 1.2.3-beta.20260403 etc, which is even more vibes-based)

uncut viper
#

i think

#

i know you can write -beta stuff

#

But I thought it still required to start with a nuymber but I might be wrong

fierce vault
#

I was talking about nexus specifically

uncut viper
#

oh well nexus is the wild west it has no laws there

#

for versioning

tiny zealot
#

yeah i don't think nexus cares at all

lucid iron
#

nexus works by this esoteric group id thing

royal stump
#

ah, I've never tried not using numbers in that one

lucid iron
#

and theres some graph theory based on whether u did "update this file" or not

#

i think their new ui is slightly more clear about needing to do that

uncut viper
#

you should still not get wacky on nexus either though

fierce vault
#

dylan was the one who brought up having seen the FINAL thing in the wild

faint ingot
#

I tried ending a version with a letter once it didn't like that

ornate locust
#

Saw that a lot in Skyrim

uncut viper
royal stump
#

(the real reason I'd never recommend FINAL is because you'll release FINAL2 in a week SDVpuffermlem)

ornate locust
#

definitely

fierce vault
#

and then there was final.1.4 or something 🤣

royal stump
#

half of the modded map files in warcraft/starcraft ended up like MapName_v2_FINAL(1)~1.w3x

lucid iron
#

so its now a separate update stream

fierce vault
#

Oh?

#

interesting

tiny zealot
royal stump
#

yeah, the -suffix stuff is for betas and unofficial updates etc, the logic is different

marsh reef
#

how does one set up seasonal tiles in tiled? my map looks freaky once the season changes 😔

wispy bramble
#

SMAPI's update checker is the only thing that truly matters but SMAPI of course checks the version number on the nexus page to compare to the one in the manifest.

tiny zealot
vernal crest
# marsh reef how does one set up seasonal tiles in tiled? my map looks freaky once the season...

If you mean set it up in Tiled for use in game, you don't. Seasonal changes are determined by whether the map is an outdoors map and whether the tilesheet is prefixed with a season name.

If you want to set it so you can view your map in another season in Tiled, you just edit the tileset's image source to point to the other season's tilesheet instead of the one you originally made it with.

fierce vault
#

I hate that every time I replace a tilesheet png and rename it so that the path's the same, tiled doesn't recognize it anyway

modest dagger
fierce vault
#

Does that have to do with it being embedded in the tmx?

marsh reef
ornate locust
#

okay so... this is still gonna be hell, I'll have to double every single patch to with/without poly because {{EnderTedi.Polyamory/PlayerSpouses:anyPlayer|contains=Penny}} resolves as incomplete if you are not using said mod. And it's not like you can do {{PolyMod}} = Penny because that doesn't do the |contains= thing I need. the Penny part is inside the token.

fierce vault
#

( I know how to fix it by the way, it's just kind of annoying)

ornate locust
#

man I knew polyamory seemed complicated, but this is ridiculous :V

vernal crest
ornate locust
#

It'd be nice if this found that the token doesn't exist and said "False" instead of "Nope none of this will work"

vernal crest
vernal crest
# marsh reef vanilla plus

You shouldn't edit a vanilla tilesheet to add new tiles to it, so I recommend removing your edits from the vanilla sheet and instead putting them on a separate tilesheet. Then, if you don't need your changes to be seasonal, just don't have the season prefix in your tilesheet name.

marsh reef
#

i do :3

fierce vault
#

I just mean that if I replace the spring tileset png, I need to relocate the file in tiled for the game to recognize it, even when the png is in the same location and named the same thing as the old one

vernal crest
# marsh reef i do :3

You do need them to be seasonal? In that case, just make another three tilesheets, one for each season.

fierce vault
marsh reef
vernal crest
vernal crest
fierce vault
#

Oh, I probably left my tmx.s open when doing that

#

I think I also have a habit of leaving tiled the app open for months at a time 😅

#

I close some individual TMXs far more often than that of course

#

(some)

vernal crest
#

I close Tiled regularly because of how often I edit the maps in a text editor

ornate locust
#
  1. Find a way to cut down on map patch entries a whole lot!
  2. immediately find a need to double them
rich cliff
#

Would it be smart to just start on the sprites for everything? And if so, what is recommended to use to make sprites?

brave fable
#

depends what Everything is. imo unless you just really like drawing, i'd suggest using vanilla sprites for Everything while you get the data structure, map layout, c# implementations, testing and iterations, et cetera together since you're skipping so much purely non-functional visual fluff and getting right into the gameplay

#

definitely if some inspiration comes to you or an idea comes that you might forget later, write it down, make a draft, or finish it wholesale depending on the scale and how much you actually want to do other tasks

fierce vault
#

🖐️ Me. I was really into drawing, and I started the sprites before I even had started modding stardew 😅

brave fable
#

it's not that important for small scale mods tho, if you just have like 3 sprites and a tile then by all means do it in whatever order

vernal crest
#

I agree with using placeholders before drawing anything, unless you enjoy drawing so much that you don't mind if you never use them in a mod

brave fable
#

as for what program to use, whatever you know and like. i use photoshop, would recommend paintdotnet

vernal crest
#

As for what is recommended: anything with a 1px brush and transparency works.

rich cliff
#

I love drawing, it's the modding part that aches my brain a bit. It's a bit hard figuring where to start and what tutorials to use in the best order

lucid iron
#

if this is the first time i would do placeholder stuff of the right dimensions

brave fable
#

occasionally it's useful to draw early since you might have an idea that you just can't realise/render and that's the killing point, but more often than not an idea won't work in practice for other reasons you could more easily catch by focusing the functional implementation ahead of the visual

lucid iron
#

it'd be bad to find out ur stuff is wrong size after drawing

brave fable
#

also probably avoid doing a final render of your sprites immediately, just make a silhouette or a blob, something simple as a first draft and then check ingame that it's cohesive stylistically for the usual reasons (size, shape, perspective, colour, theme)

rich cliff
#

what if I use another mod as reference? this all actually started because I really liked the Traveler Snail mount so the snails will be quite big

brave fable
#

very common for maps for example to make something fantastic as a sprite and then realise it's bigger than the default window size and your doors aren't aligned and some things just don't make sense or fit into the game in context

#

ideally use as many references as possible imo

#

but yeah if you're just drawing a couple snails don't sweat it and just draw some snails lol

lucid iron
#

if u wanted them to be farm animals u should look at the cows sheet

rich cliff
#

alrighty!

#

I might have went overboard with set ideas and this will definitely be more than just snail sprites :<

proven spindle
#

and so the scope creep begins SDVkrobusgiggle

rain inlet
#

as it should

fierce vault
#

I feel like this is not a big enough update to put in the showcase, so I'll just announce it here, but I've added in the poppy and custom letter background I was working on to my snowman mod.

#

we're at 1.1.0 now!

ornate locust
#

https://smapi.io/json/none/7dd60e6dac7a44a5aa9285e8551767ce
I need to know if I have reached the point of getting stuck on finding a cleaner solution that I have become delusional. (It would not be the first time.) I'd have to do it for every marriage candidate I have support for, but the alternative is copying every patch I ever made more than once with hasmod conditions, otherwise identical. I feel like that'd take longer.

tiny zealot
#

if you have to settle for the alternative, note that doing a bunch of nearly-identical patches is the ideal use case for local tokens

ornate locust
#

I've never... quite wrapped my brain around those.

#

And I'm not sure they'd be useful for my map patches, some of them have different coordinates and stuff

tiny zealot
#

i have to go, so i can't get too into it, but the idea is you do an Include and you specify tokens that are only valid for that scope

ornate locust
tiny zealot
#

then you can include that same file (a template) repeatedly with different values for the tokens each time

ornate locust
#

and the only difference for each of them is a single hasmod

#

I did consider local tokens, but when I tried to figure out how that'd help me while looking at the documentation, I didn't come up with anything tbh

proven spindle
# ornate locust I did consider local tokens, but when I tried to figure out how that'd help me w...

Maybe you could do a local token setup that takes 3 fields: spousename, toarea, and mergeline, so for each entry you could do (pseudocoding below):

action: include
fromfile: yourtemplate.json
localtokens:
spousename: abigail
toarea: {x: #, y: # etc }
mergeline: {{Spouse:anyPlayer |contains=Abigail}}, {{HasSeenEvent:anyPlayer |contains=SebastianAbigailWedding}}
and the then yourtemplate.json would be those two patches (sve installed and sve not installed) so it condenses those two patches into just one include localtoken patch

#

Disclaimer: I'm not very practiced with local tokens

ornate locust
#

I have more patches than that, and some of them require extra checks

#

and crucially... I've already made literally all of them

#

I am just determining how much more work I'm going to have to do

#

They have different width/heights too, and sometimes they change between SVE or non-SVE patch

#

And I'm not sure how I could add in this annoying poly check along with it

ornate locust
#

Actually the token solution seems to be working fine and it's not hard to implement

#

all of my poly spouses on this save have their rooms appropriately vacated

turbid grotto
#

is there a framework that exists for characters walking in water?

#

i’m making a merman and i want him to be able to swim around a little during the day

proven spindle
#

I think calcifer can do that

fierce vault
#

If I wanted to make an npc rock in a rocking chair, and have the chair as an object in the house at the same time, how would I go about that?

Because I could definitely make animation frames on the npc where he uses a rocking chair, but that would clash with a static chair on the map, and might even prevent him from using the chair animations in the same area at all (since the object would be on the buildings layer)

#

Basically, is there any realistic way around this, so I can have my chair and rock in it too?

ornate locust
#

I could cry, it's all working

urban patrol
#

same as putting an NPC on a couch tbh

fierce vault
#

I'm scared because it's waaay worse than a couch

urban patrol
#

oh wait is the chair not moving when they're not in it?

fierce vault
#

the static chair would need to move at the same time the npc's animation would

fierce vault
#

Maybe I could conditionally patch it out everytime the npc goes to use it in the same spot with an animation....? SDVpufferfear

#

there are no good solutions, I feel...

urban patrol
#

yeah you can't really update the map that fast

fierce vault
#

the only way it could maybe work would be if there was a way to make the map chair rock at the same time the animation does, but I'm sure that would create a lot of problems if it was even possible

#

They'd have to be perfectly in sync

dreamy dew
#

Does anyone know how to change the color of the sleeves from the Peach Body Mod for Males?

#

The mod changes the color of the sleeves depending on the shirt the farmer wears, but I wanted to be able to customize it, or just settle on a color.

fierce vault
#

Oh! hmmm

dreamy dew
#

I couldn't find it in the files, or figure it out in the codes.

#

Based on reading the mod's description on NAVER, prior to their 1.6 update, the sleeves could be changed in color, but now they follow the vanilla colors. Unless I misunderstood that.

fierce vault
#

Does this sound feasible?

urban patrol
#

oh yeah if you included the wall and background on the NPC spritesheet it could potentially work

#

still a PITA but less so

brave fable
#

sounds like it'd cause layering issues with any sprites that might clip in, such as the player

urban patrol
#

yeah draw layers are funky

fierce vault
#

Hmm

urban patrol
#

i was imagining it in a corner like gil but

brave fable
#

simplest would be to have it be a full day schedule and patch the chair in the map on other days

fierce vault
#

Unfortunately, my npc has too much work to take an entire day off to rock SDVpufferpensive

#

and the chair is in the middle of the room, so that could be bad...

#

I might try it though to see how it fares

brave fable
#

sounds like if they have that much work they should take a day off in the wobbling chair

#

simple ✅ maintainable ✅ predictable ✅ characterisation ✅

fierce vault
#

He is pretty stressed I think, but farmers always have work SDVpufferchickcry Maybe it could be a sundays thing, but idk

#

I appreciate the ideas though 😅

#

I am curious about how bad the clipping issue could get, so if I try it, I will probably report back

#

I hate the amount of time I've spent on his house

#

and it's not even done

#

or close

#

I literally started renovating the layout after coming back to it several months later

brave fable
#

been there hahah

fierce vault
#

My mod would have been no where near as good if I had managed to finish last year

#

I have two new characters I want to add to it now, and I've cut one I had no good ideas for 😅

#

It would be amazing if it's finished this year

#

Because there's so much work left, haha

#

It is doable, but hard!

#

I'm glad Jack doesn't need a house... or a life

#

he just gets to stand around in the snow all day 😄

strong garden
#

Request! Does anyone know how to fix this?
I'm working on a character mod. In Chinese language mode, some rare characters and Japanese kana (Hiragana/Katakana) fail to display.
I've tried using mod "Font Setting" (12467) and also attempted Microsoft YaHei, which is supposed to support both Chinese and Japanese characters. However, the issue persists—Japanese won't show in Chinese mode, and vice versa. (This might be determined by the underlying code of Stardew Valley?) I'm wondering if there's a solution to this problem.

uncut viper
#

Stardew Valley uses sprite fonts which are just big PNGs with every character in them. It switches to a completely different set of images for Japanese and Chinese depending on the language the game is set to.

#

Well, not "every" character obviously, I mean every character the game made for its font

#

This means you cannot use both Chinese and Japanese characters at the same time (unless one is duplicated in the other or vice versa)

strong garden
uncut viper
#

It's probably possible in some way maybe? But I'm not 100% certain about that, and I do not have any idea how someone would even go about trying it.

languid bolt
#

i'm sorry if this is a silly question but do mods still load if they're in subfolders? if so is there a limit to how many folders deep

half tangle
#

Yes, they still load. Yes, there can be a limit in some cases if the length of the folder and file names gets too long

languid bolt
#

awesome thank you!\

fossil osprey
opaque field
languid bolt
#

if i edited a modded map previously (the author gave me permission!) and the author updated the mod. is there a way for me to copy the changes i made in the old version and apply them to the new one? i'm not very experienced in tiled so apologies if the answer seems obvious lol

languid bolt
half tangle
#

If the author didn't change their version of the file and also didn't change how their code references that file, you can just copy your old one to the new one. Otherwise you'll probably need to go through and make whatever changes anew. If it helps, a .tmx file is just a text file so it may be easier to edit it that way depending on the edits

half tangle
royal stump
opaque field
royal stump
opaque field
#

That was it! oh my gosh thank you I've been going insane. Now I can see the other erros I need to fix

main falcon
#

I'm trying out stardewUI and am a bit confused on what is happening
I used an example, with 2 assets.
I have no files in my mod folder with these sprites.

background={@Mods/StardewUI/Sprites/MenuBackground}       
border={@Mods/StardewUI/Sprites/MenuBorder}

Where do they come from and how can I find out more
I think most assets come from the Stardew Valley\Content folder
But where do these come from?

vale holly
#

some of them are sprites defined by the mod and they come from the game itself

main falcon
#

Do you know if they are documented somewhere?

vale holly
main falcon
#

Oh is this it? thank you

peak ivy
#

Hi,
Does anyone know how to test and force load events ? I'm actually making a mod and i'm struggling a lot, a real LOT with events.
When i thought i managed it, now i'm unable to load and see them..

verbal glacier
#

type in debug ebi (your event id) into the smapi terminal and that should force your event to play

peak ivy
#

(debug ebi is the smapi console ?)

#

👀

fossil osprey
#

Yeah it's as simple as that ^^

dreamy dew
fossil osprey
#

Isn't it something like it taking the color of whatever you're wearing?

near imp
#

unless you find an existing mod that allows you to change the color of default sleeves, youre probably gonna need to convert them to a fashionsense item

dreamy dew
near imp
#

if you think theres something to that then download the older version and check it?

#

seeing how other mods do things is very helpful if there is no tutorial you can find

dreamy dew
#

It did read that it's no longer compatible after 1.5, sadly.

fossil osprey
#

If you can still download the older version, you can look into the code

dreamy dew
#

I'll see if I can still contact the mod author who made the mod/s. They also mentioned something about Get Glam, but I don't use it.

#

Might also be able to ask if they allow conversion or permission to have their stuff edited.

near imp
#

is this for your personal game or something youre making to publish?

dreamy dew
#

Personal game, I guess.

fossil osprey
#

You don't need permission to do something for yourself

hard fern
dreamy dew
#

Having it published seems like a lot more work.

near imp
#

if the previous version used get glam then its likely that get glam allowed the color change of the sleeves

hard fern
#

So i would assume to change the color of the sleeves, you'd need to use a fs pack for the sleeves instead

#

Rather than the cp ver

dreamy dew
#

They also acknowledged Fashion Sense, but it's something about accessories which I don't see with FS and it installed.

hard fern
#

You can see if you can find a fs sleeves version on their blog page

#

I don't remember if there was one or not

near imp
#

i highly recommend downloading a variety of sleeve mods off nexus and just opening them all up and see how they are formatted, and if they are for CP or FS etc. thats how i learned what little i know about sleeves

hard fern
#

So many of these lol

near imp
#

also, if you havent already (idk how deep into making mods you are), you should unpack your game files so you can take a look at farmer_base, farmer_girl_base etc in Characters\Farmer. there you can see how sleeves are done in the base game

void aspen
#

morning modders

near imp
#

the sprites have the coloring of the default shirt, and unless im entirely mistaken, the game takes that coloring and switches it out based on which shirt youre wearing

#

just like the default sprite's eyes are brown but get swapped out by the game for customizable colors. only that the default game doesnt have any mechanic to customize sleeve colors, its tied to the shirt

hard fern
#

And how shoes work

near imp
#

same with boots as well. in the top right corner of farmer_base etc you can see some small pixels, the three red colors to the left in this group is the three sleeve colors

hard fern
#

If you look at the pure naked farmer body ..

near imp
#

skin colors as well follows this system

#

@dreamy dew does that make sense?

dreamy dew
near imp
#

the default color on sleeves is red, but thats just because shirt no1 is red

#

but yeah the dye system is somewhat similar

dreamy dew
# hard fern And how shoes work

I'm using the tall male ver. of Peach Body mod, and it looks perfect. I think the basic female ver. is good for the female as a counterpart (female = basic; male = tall).

#

The basic ver. for the male looks off, and the slim body type just looks too thin, unlike the tall version.

dreamy dew
near imp
#

have you looked at the default body sprites? it might help put things into context

dreamy dew
hard fern
#

Hair works by doing some kind of color overlay on the base hair, kinda like flower colors. That's why making the hair white results in brighter colors. I know the vanilla blonde is very muddy looking because of how dark the base hair is

dreamy dew
hard fern
#

The unpacked vanilla base is armless with the sleeves off to the side

dreamy dew
near imp
patent lanceBOT
dreamy dew
near imp
dreamy dew
#

It does seem to conflict with other hair mods for some reason, but I still keep yours and just settle for the vanilla for now (with your brighter hair).

near imp
#

yep thats me SDVkrobusgiggle i have an update for brighter hair almost finished but the preview images took almost as long as the update itself gah so i took another break SDVpuffersquee the new version is highly customizable with the ability to control the brightening of the outline of the hair separately

#

yeah it was made a long time ago and uses Load instead of EditImage, which is why its not as compatible

#

new version plays a lot more nicely with things that may want to edit the default hair sheet. and everything is configurable ingame ofc

hard fern
#

My favorite hair "hack" is still being able to just. Make the sheet longer. More hair

near imp
#

maybe i should get off my ass and finish it today hapithonk

dreamy dew
#

Will it be available soon? I also like this Improved and New Hairstyles which improves vanilla hair, shaping them better.

near imp
dreamy dew
#

But they're conflicting with each other when I first installed the latter.

dreamy dew
near imp
#

the way the brightening of the hair sprites is done manually, means that i have to replace the games hair sprites. so if i were to theoretically add compatibility for others mods, i would need to include an edited version of their texture assets. and for that permissions must be granted

primal spruce
#

I read the “Modding: World Map” wiki category, but I didn’t understand it. How do I edit the map to add my NPC’s house? I thought the world map was a PNG. Sorry to bother you, but can anyone help me with this?

dreamy dew
#

Like those optional files I see under Skyrim mods?

near imp
# dreamy dew https://www.nexusmods.com/stardewvalley/mods/132

thanks for the link SDVpufferthumbsup i see this was last updated in 2020, but i can send the creator a message in case they're still active and ask if i can include compatibility for this mod in my mod.
today im thinking i might push for the new update to Brighter Hair without any compatibility addons, and maybe ask the community what other hair mods they use, and if theres a lot of demand i could add compatibility for them if i get permission from the respective authors

near imp
dreamy dew
fossil osprey
dreamy dew
#

They have kind of a more detailed hair, in my opinion. Which is why, right now, my farmer wears a hat.

dreamy dew
hard fern
#

But i just fall back on what i know

dreamy dew
#

Your sprites?

ornate drift
#

i cant do lineless pixel art for the LIFE OF me

dreamy dew
#

What's your mod?

hard fern
dreamy dew
#

It's probably just the highlights from the portrait-accurate NPC sprites that make their hair look good.

#

And how the author managed to draw the outfits as if sized down from their portraits to their sprites.

ornate drift
dreamy dew
#

The NPC sprites, or the farmer?

ornate drift
#

npc

dreamy dew
#

I see. I hope it's a good kind of stand out. In my game, they look good with just the vanilla colors.

#

I think even with duller recolors like Earthy or Vibrant Pastoral.

barren tapir
#

How do you determine what to edit with OnAssetRequested? I currently have the following:

But I'm never seeing the "LOADING STATUE" appear in the terminal.

lucid mulch
#

If it's for that texture then it would be <cp modid>/textures/enabled instead of what you are currently checking for

barren tapir
#

It still doesn't appear to be running

twilit quest
#

Hey @brittle pasture! We've run into an interesting issue with Custom Builders. @spice inlet helped us figure it out. ❤️
Here's what Lix told us after helping us test. Please note the Location name in particular:

Before Upgrading
Location: BrokenCoop
Unique: BrokenCoopb708fb97-4774-4b57-82e0-4188af88d5f4
Map: assets/Interior/BrokenCoopDebris.tmx

After Upgrading and sleeping
Location: BrokenCoop
Unique: BrokenCoopb708fb97-4774-4b57-82e0-4188af88d5f4
Map: Assets/Interior/BrokenCoop1.tmx

After leaving to title and loading back
Location: Coop
Unique: BrokenCoopb708fb97-4774-4b57-82e0-4188af88d5f4
Map: Assets/Interior/BrokenCoop1.tmx

hm, when using the custom builder to upgrade the location name does not update even when you sleep once or twice
but it changes when you exit to title and load back in
I think it could be worth to tell the custom builder mod author this
UB relies on the location name to figure out where to place the bundle

@brittle pasture delixx recommended we reach out to you about this, so I have copied and pasted what they said above

#

I know other mods also use Location name, so this may affect them as well.

ornate drift
#

how do i add buffs

verbal glacier
ornate drift
#

wait buffs have to have a unique ID too?????????

verbal glacier
#

no

#

they can

ornate drift
#

so its optionla

#

optional

verbal glacier
#
                        {
                            "Duration": 1600,
                            "CustomAttributes": {
                                "FarmingLevel": 3,
                                "FishingLevel": 0,
                                "MiningLevel": 0,
                                "LuckLevel": 0,
                                "ForagingLevel": 0,
                                "MaxStamina": 50,
                                "MagneticRadius": 0,
                                "Speed": 0,
                                "Defense": 0,
                                "Attack": 0
                            },
                        },
                    ]```
#

this is what SVE does for mixed berry pie

rain inlet
#

can the level sections be negative?

ornate drift
#

i see

verbal glacier
#

according to the wiki it can be negative

rain inlet
#

yay

ornate drift
#

can i just do something like this

verbal glacier
#

probably, I would think the other values just default to 0

ornate drift
#

wouldnt attack be like +2 if i set it to 2?

verbal glacier
#

yeah

ornate drift
#

oh ok ty

#

why are you sideways now

verbal glacier
#

april fools

ornate drift
#

its the 4th

verbal glacier
#

was too lazy to change back

ornate drift
#

fair

severe cairn
#

It's the 4th??? April f ools feels like yesterday time is cruel

misty ivy
#

Helloe everynyan,, waves

#

I've been workin on a silly very self indulgent mod and have been directed here so yeah hi helloe

verbal glacier
#

hi 👋

ornate drift
verbal glacier
toxic topaz
#

does anyone know why this might be happening to me in tiled lol

gaunt orbit
#

Your grid settings are wrong

#

You should use an existing map as a base

toxic topaz
#

alright, thank you

void aspen
#

not 16px one

barren tapir
#

What name to pass into this?

toxic topaz
barren tapir
barren tapir
#

Its working now! Kinda!

twilit quest
urban patrol
brittle pasture
#

Custom Builders doesn't touch the building upgrade logic and also uses what vanilla has

#

this has to be a change from UB side I think (and hey TIL about this quirk lol)

twilit quest
barren tapir
#

IDK what I'm doing wrong here. I currently have the following:

private void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
    if (e.Name.IsEquivalentTo("Nullnnow.GCS/textures/statue"))
    {
        ModData data = GetModData();
        if (data.StatueActive)
        {
            Monitor.Log("Statue is active", LogLevel.Debug);
            e.LoadFromModFile<Texture2D>("assets/statue_eabled.png", AssetLoadPriority.Medium);
        }
        else
        {
            Monitor.Log("Statue is inactive", LogLevel.Debug);
            e.LoadFromModFile<Texture2D>("assets/statue_disabled.png", AssetLoadPriority.Medium);
        }
    }
}


private bool ToggleStatue(GameLocation where, string[] args, Farmer who, Point tile)
{
    var building = where.getBuildingAt(tile.ToVector2());
    if (building is null || building.buildingType.Value != "Nullnnow.GCS_GoldenChickenStatue")
    {
        return false;
    }

    // TODO: Check if player is holding a galaxy soul

    if (true)
    {
        var model = GetModData();

        model.StatueBuilt = true;
        model.StatueActive = !model.StatueActive;

        // TODO: Play Sound

        Helper.Data.WriteSaveData("statue-data", model);
        Helper.GameContent.InvalidateCache("Nullnnow.GCS/textures/statue");
        // The statue texture never changes!!!!
    }

I'm trying to change the texture of a building whenever the ToggleStatue function is called, but the building texture never changes

twilit quest
brittle pasture
#

no harm in doing so I think, though the AT issue might be separate

barren tapir
#

Does InvalidateCache not redraw the textures it invalidates? And if not, how do you force the game to update the textures

brittle pasture
#

can you confirm that the ToggleStatue code is being called? also what does GetModData() do

#

everything else looks fine to me

twilit quest
brittle pasture
ornate trellis
fallow musk
#

is there any debug command to spawn Truffle Crab specifically?

marsh reef
#

Hi chat

rich cliff
#

Hallo

toxic topaz
#

how do you create a light source in tiled like the one the game uses for windows and stuff?

void aspen
void aspen
#

One sec gon find links

fallow musk
#

truffle crab seems to be a variant of rock crab

toxic topaz
#

this is probably wrong, but heres what i tried and it didnt work lol

void aspen
#

Close enough! One sec I'm turning my pc on

void aspen
#

thats how you do it via properties

toxic topaz
#

okay thank you, ill check it out

void aspen
#

Or you can do this light bulb tile on blue Paths layer to make a simple light source

ornate locust
#

Just know that is a Light 4, a sconce light

toxic topaz
#

yea i could import the paths tilesheet to test that out

ornate locust
#

If you want a light like a window, only lit during the day, you use the WindowLight like the Wiki has

void aspen
#

the only sad thing about the light is that its not dynamic

toxic topaz
#

im just trying to light up this lantern lol

void aspen
#

I once animated a Path Light to switch between itself and some random invis tile and sadly it didnt work

ornate locust
#

1 is Lantern

void aspen
#

would be neat

ornate locust
#

So you'd do Light x y 1 and that should light your lantern

#

with your x/y coords

toxic topaz
#

testing that out now, hopefully it works lol

void aspen
#

you can know the coord my hovering the tile and checking the bottom left too

#

id just put a light tile there unless you wanna do some fancy stuff with it

ornate locust
#

I mean yeah, but there's a whole lantern light right there, why not use it

toxic topaz
void aspen
#

you dont need tilemaps cords you need your maps coords

void aspen
toxic topaz
#

im using a weird map of a cropped pantry room, and just using editmap to replace the entire thing

void aspen
#

oh

#

im not sure how light works with editmap thing

ornate locust
#

Oh you're doing an edit

#

Okay you can't do it on the patch's properties

void aspen
#

id edit data with light property mb

ornate locust
#

hang on let me snip out some of my extra code for an example...

void aspen
#

but youd need coords of the initial tile of original map

toxic topaz
#

huh Grumblo uhhhh, now im confused

ornate locust
wanton pine
#

what is the proper way to enter the tile co-ords for "DefaultArrivalTile"?

ornate locust
#

And this link has one of my patches with extra stuff cut out. That's how you do light tiles for patches

toxic topaz
#

i see, ill try to implement that and see what happens, thank you

ornate locust
#

Like let's say I'm doing a patch over this kitchen to add a lamp on the counter. On my main map that counter is 21, 5. So that is where I need to patch in the light

#

If my patch is just the size of the area I show there, it'll show a different coord there. But you need the one from the full main map

void aspen
#

youd need to take coords of the potential light source in your overlay and then add that to the top left coord of your target area

#

so if your light cords are X Y and your area top left corner is A B then your target light tile gotta be A+X and B+Y

#

I think its just some Vector2 things

toxic topaz
#

so for the area im replacing, i just add the X from the start of the area with the X of the location of my light source? and the say with the Y?

void aspen
#

yes

toxic topaz
#

i think i get it...? lol

void aspen
#

test it and find out

#

so for example if youd add your overlay to the top left corner of the original map then coords would just be the same as on the overlay cuz top left area corner would be 0 0 anyway

toxic topaz
#

uh, well i just did the thing in my tilemap and it somehow worked without any of that code

#

so.... thats good

void aspen
#

what thing

toxic topaz
#

i just did this and used this paths tile

void aspen
#

oh yeah

#

you dont need any code for Paths light

ornate locust
#

Yeah that'll work, it just can only do a light 4

#

So if you're good with that light level, go for it

wraith bay
#

hey sashasand, i'm not in this channel a lot, but radium reached out to me about this a while ago. i've added compatibility to support your mod into mine when both are present, so they can work together.

void aspen
#

What exactly did you do to make it compatible?

#

Maybe theres something I can do on my side

#

it was my first and test mod I wasn't thinking it would take so much attention SDVkrobusgiggle

wraith bay
#

you don't need to do a thing. i just used hasmod and utilized the same implementation i had for other bathhouse changers to move the ladder/lift. i designed mine to basically work with anything with just a little extra patch when things move around.

void aspen
#

You reminded me that I wanted to make an update to make top room work like a small greenhouse as well omg

#

gotta update it and add update keys I forgot to do 😭

#

Your mod is so much better than mine so I was surprised someone actually wants to use mine

wraith bay
#

Well, ours don't really conflict or do the same thing. I get why people would want that nicer, large entrance for sure.

wanton pine
#

Could someone please tell me what's up with my CP Content json that's making it refuse to work, seemingly due to issues caused by phantom characters? (Ones detected by the validator that aren't actually there.) I've completely retyped it in hopes of fixing the issue (and rechecked my commas and brackets while I was at it), but that didn't seem to work. I am - really tired of this problem. https://smapi.io/json/content-patcher/36b90e8f18ef41eab5e0fc3371709623

barren tapir
# brittle pasture can you confirm that the ToggleStatue code is being called? also what does GetMo...

So sorry for the late response, IRL stuff pulled me away. I can confirm that ToggleStatue is being called when it's supposed to.

The GetModData function is a utility function that retrieves a data model (ModData) from the save game via Helper.Data.ReadSaveData. If no Mod Data is found, it generates a new Mod Data instance with default values and saves it to the game.

The data model currently contains two values; StatueBuilt and StatueActive. The StatueBuilt value doesn't matter (I'm like 90% certain it isn't necessary), while StatueActive determines what texture the building should be using.

I can also confirm that this system is successfully tracking when the statue is and isn't toggled.

urban patrol
#

are you saying your files are different from what’s in the validator?

brittle pasture
barren tapir
#

Yes, give me just a sec

wanton pine
#

When Line 3 is as follows:

#

tab"ConfigSchema": {

urban patrol
#

when the validator mentions an unexpected character on a line, you have to look at the line(s) before it

#

in this case you’re missing a comma on line 2

latent mauve
#

You need a comma after the format line, yep

brittle pasture
#

the json validator usually gives errors in the previous line
this is because line 2 is ostensibly valid, it continued to line 3 but didnt find a comma it was expecting and complained that line 3 is invalid

wanton pine
#

🤦

brittle pasture
#

also your ConfigSchema is malformed; you have extra curly brackets wrapping each entry

#

each entry is just "name": {}

urban patrol
#

i also spy a typoed Enteries

void aspen
#

phew

wanton pine
#

Is this correct?

{
"Format": "2.8.0",
"ConfigSchema": {
"EnableCellar": {
"AllowValues": "false, true",
"Default": "true"
},
"UnlockCellarWithHouseUpgrade": {
"AllowValues": "false,true",
"Default": "true"
}
},

brittle pasture
#

and is stepping on the C# component's toes

barren tapir
brittle pasture
barren tapir
#

Ohhh. Okay. Thanks!

wanton pine
latent mauve
#

Also the Warps code might be complaining about the {{ModId}} token in the location name for this error: Each warp must match the exact format recognized by the game's Warp map property (i.e. 'fromX fromY targetMap targetX targetY', like '10 10 Town 0 30'). so you can likely ignore that one, as you are following format there. I have run into that before.

barren tapir
# brittle pasture

Now the texture of the building changes when viewed in the wizard catalogue, but the texture of the building itself doesn't change.

For reference, the Toggle Statue function is called whenever the building in question is clicked.

void aspen
#

omg is it okay that my mod uses same 5 vanilla tilesets loll

#

I just copy pasted tiles from vanilla tmx

#

probably not the smartest move

severe cairn
#

I use vanilla tiles too and I haven't seen issues so far except you need to copy seasonal ones as well

And they kept the same name as vanilla but with a z in front

wanton pine
#

you can remove them safely if they're unused. trash can at the bottom of the tilesheet window.

severe cairn
#

Ohh same ones

#

Yeah just trash whatever u don't use

brittle pasture
urban patrol
void aspen
#

I suppose they have different tile properties

#

ill fix that rq ty yall

barren tapir
ornate locust
#

that was the wrong channel rip

urban patrol
#

yeah there are different versions of the same tilesheet that cannot coexist

#

related map question: do all map properties always exist for all maps, just with some fields set to null?

ornate trellis
barren tapir
#

Fixed it! Misspelled a file name 😅

#

How would a c mod display a dialog box (similar to how the golden statue displays a dialog box when clicked)?

#

nvm, figured it out

lucid iron
#

It's C# mods (i been kinda bothered this whole time)

gaunt orbit
#

my sibling also calls C# 'C' and it drives me nuts

barren tapir
ornate trellis
#

man im so close in just giving up because this makes no sense to me. i wasted half a day staring at the code and IE's docs

lucid iron
#

Void you may have to ask misty tbh

#

It's a relatively niche feature i don't rly know any mod that use it

wanton pine
severe cairn
#

Stardew events got me so peeved I getting the urge to code again so I can make it easier
But that would take much longer lmao

ornate trellis
#

i fear so but i really hate pinging people jsut because im dumb or something

#

is misty even ok with random pings

opaque field
#

quesssstion: If I want the effect of having, say, a zippo equipped to be a fire damage effect that's C# yeah?

wanton pine
#

Whut

wanton pine
#

A lighter

barren tapir
#

Also, I'm just now realizing how many programming languages start with a C

opaque field
#

yeah, sorry, its a specific kind of lighter

wanton pine
#

esp. metal ones with a filp top that are refillable

opaque field
#

It's a brand

barren tapir
#

Is the lighter a weapon?

wanton pine
#

technically but it's a gerneric enough design that it isn't always used to actually mean the brand, I think

opaque field
#

haha they make really nice ones. no, the idea was that while it's equipped you do 'fire damage' with whatever weapon you have

#

like maybe even add a little 'burning' to the enemy?

wanton pine
#

so a charm

barren tapir
#

I don't think Fire damage is a thing in Stardew?

#

Unless you mean the burn condition

severe cairn
#

Actually I'm curious, I found that the audio heavyEngine is refusing to play whenever I use it. Both with playMusic and playSound, other things like playMusic Lava_Ambient and playSound crystal works fine

Is it like a me thing or is there something up w the heavyEngine sound?

opaque field
#

it's sounding like the answer to my question is : I am probably going to need C# if I want that. uh, burn condition would be cool as long as it applies to the enemy

void aspen
#

isn't there that debuff that these fire spirits do

barren tapir
#

Yes

void aspen
#

its not exactly fire damage but

opaque field
#

yeah but it's probably close enough

barren tapir
#

I believe the burn condition lowers your speed and defense if I remember correctly

opaque field
#

hrm.. yeah but I want it to apply to the enemies not the player

barren tapir
lucid iron
#

There's a hitscan over time effect

#

And a attached tas thing

#

So u just make fire effect and owie damage

gaunt heath
#

Chu out here defeating our ancient enemy: the C# Scroll of Truth

opaque field
#

ooh lovely!

#

I'm not opposed to trying to figure it out in C# but if it means Trinket Tinker then exxxxcelllenntttt

void aspen
#

I think its much better than before now

#

is nexus dead I can't do anything 😭

urban patrol
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.

primal garden
#

Is a mod giving a character big lips sfw its also a joke mod?

rich cliff
#

hey can someone please make me a thread?

lucid iron
primal garden
lucid iron
#

I gotta question your motivation for even asking this though it's kinda sus blobcatgooglyblep

void aspen
#

:(

#

nexus dead can't download mods on my side

rich cliff
ornate locust
#

oh my grandma applies her lipstick like that

void aspen
#

could someone download the zip for me I'm gonna cry rn 😭

ornate locust
#

(failing eyesight, you know, doesn't always draw on the lips quite right)

primal garden
severe cairn
#

"darn I accidentally overshot it, I guess I should add more on the other side, oops not again well it's fine just a bit more, oh no wait"

ornate locust
#

My grandmother: I can't go out without lipstick on!
Me: please you don't understand how much lip you are missing

severe cairn
#

Evelyn got shaky hands she can't apply it as steady

primal garden
severe cairn
#

It can be both
For extra volume SDVkrobusgiggle

primal garden
#

it also gets cold in the winter

void aspen
#

poor gran

primal garden
#

Idk how to make this a mod tho im still learning I only have textures

void aspen
#

thats pretty simple to do, people here will help you with that

primal garden
void aspen
#

Some people prefer not to

primal garden
#

and why 1.8k also?

void aspen
#

Unique mod downloads on my page

#

This is not widely used I just love keeping track of it

craggy goblet
primal garden
void aspen
craggy goblet
void aspen
void aspen
primal garden
void aspen
#

I was thinking of adding that

primal garden
#

I like being able to see the beach

royal stump
# severe cairn Actually I'm curious, I found that the audio heavyEngine is refusing to play whe...

heavyEngine is one of the sounds used in AmbientLocationSounds, which doesn't actually play them with those methods (it calls playSound once, stores the ICue somewhere, and immediately pauses it). Only a couple people here have dug into how XNA/MonoGame audio works, but I'd guess it has unusual settings in the audio data & needs to be used differently. You could try mimicking whatever that ambient class does with it.

severe cairn
#

Sad

barren tapir
#

Is there a way a mod could do something at the start of the day and/or after all farm events have finished playing?

royal stump
#

that or add your own copy of heavyEngine with the audio asset, if you can get a copy of it

severe cairn
#

Yeah
Is there a list of ambient location sounds?

#

So I know which will do that

void aspen
#

okay is there any example how HasMod looks in content

severe cairn
#

Specifically the ones that won't play with play sound and play music
Cus lava_ambient still plays despite being on the same section :0

ornate locust
#

You mean like this?

royal stump
#

the ones initialized in the same method are

babblingBrook
cracklingFire
heavyEngine
cricketsAmbient
waterfall
waterfall_big```
though idk if all of them behave the same way
(edit: the \`\`\` hid "babbling brook" like was a code block format)
severe cairn
#

Thank u

void aspen
ornate locust
#

You can also do a "false" with the |contains= format

void aspen
#

its always |contains = "ModId" right

#

I see

ornate locust
#

Yeah, and you can also do like "HasMod": "DSV.Core",, but you can't do false with this format

void aspen
#

oh its fine I need true only

ornate locust
#

Either works then

void aspen
#

oh this mod uses tbin instead of tmx 😭

#

idk how to check it in tiled

ornate locust
#

You can still run those in Tiled

void aspen
#

unless tiled supports tbin too

#

oh

#

maybe not so simple

ornate locust
#

hmm

proud wyvern
#

Tiled ships with a plugin that enables direct editing of Stardew Valley maps (and any other maps using the tBIN or tIDE formats). This plugin needs to be enabled in Edit > Preferences > Plugins.

ornate locust
#

Check your preferences/Plugins

#

yeah you can enable Tbin in there

#

I did that like two years ago, totally forgot it needed to be done LOL

void aspen
#

did that and its working tyy

#

interesting

#

is there a way to edit someone elses map with When HasMod for me to change the way they replace the tiles

primal garden
#

{
"Format": "2.8.0",
"Changes": [
{
"Action": "Load",
"Target": "Animals/Dinosaur",
"FromFile": "assets/dinosaur.png"
},
{
"Action": "EditImage",
"Target": "Maps/springobjects",
"FromFile": "assets/fish-object.png"
}
]
}

I found this on the wiki as example of a content.json what does target mean?

void aspen
#

target is the original file you want to load your asset on instead

#

does anyone know why map marked as greenhouse doesn't allow to plant things anyway 😭

#

tells me to plant stuff on farm and not here

primal garden
#

what doesedit image vs load mean tho?

void aspen
#

Edit Image edits part of the image while loads replaces the thing completely generally

urban patrol
#

load: tells the game to stop looking in other places for the asset and instead take it from where you specify. happens BEFORE all edits
edit image: tells the game to do xyz to the asset it already has

void aspen
#

May be a bit wrong cuz theres some details to that

urban patrol
#

also an asset can only be loaded once

#

in chu’s words load is pizza dough and edit is toppings

pine turtle
#

@upper lava Greetings, mind if I DM you with some wiki-related questions?

barren tapir
void aspen
#

honestly im not sure if its any possible to do comp with a mod that replaces everything my mod does

#

and logically too

#

they also load different maps just to change two tile datas 😭

primal garden
#

whats the latest version of content patcher

royal stump
severe cairn
#

Just opened my sdv event json in vsc for the first time and, well the red lines are everywhere 😭
Is there a config to specifically detect that or do you just have to deal with it if its an event json

polar spear
#

Not sure if this or the mod art channel is best for this question, but I want to make an npc content pack and I want to start with the pixel art for their sprite and house. What’s the best way to find out the necessary size of the canvases before working on those? I believe portraits are 64 by 64 but whats the best way to figure out how many pixels a house should be?

brittle pasture
#

!unpack always a good idea to look at vanilla assets

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!

brittle pasture
#

a tile is 16x16 pixels

#

so depends on how many tiles the house's width and length is

ornate locust
#

A house can hypothetically be many numbers of pixels, but you can look at ingame houses to see how big they are if you want to aim for something similar

polar spear
#

Awesome thank you both

#

Ive been watching vids on json and tiled and getting super overwhelmed so im gonna start with what i know :)

void aspen
#

my mod - A, other mod - B, another mod - C

Is it okay if I can have AB and AC compatibility but not ABC?

#

I don't think its possible but it still makes me upset

#

Not sure if theres any BC comp either

severe cairn
#

you could check hasmod for a and b together

#

it would return true if both are there, but false if none or only one are there

void aspen
#

hmm, fair enough

lucid iron
#

I think u gotta be a little more specific about this ABC situation

void aspen
#

yeah its kinda complicated

#

three mods and all do changes for bathhouse

past loom
#

hii, can someone explain to me a bit about how changeLocation works in an event? I read the wiki, but I can't really get it to work. I tried just saying the file name, then I did it but with the .tmx end, I tried loading the location but it just refuses to work

void aspen
#

Im fine with it working the way it is SDVcharkrobus

calm nebula
#

You may want change to temporary location instead?

void aspen
#

how do I make config names not to be the same as values urgh

ornate locust
#

You can i18n them

royal stump
void aspen
#

wrong line

ornate locust
#

Nono, sorry, I'm... failin to find where the documentation is

#

So here's one of mine

void aspen
#

so config doesnt use i18n tokens at all

ornate locust
#

If you format i18n keys just right, it just automatically applies to config

#

Here's a slightly more complicated one that has values to i18n

#

now where the heck is the documentation I used to do this

void aspen
#

Not sure how it understand which part of the config I wanna edit ugh

ornate locust
void aspen
#

Oh

#

Okay I see

ornate locust
#

It will look for a config title named "ShowSign" that way

#

And if you do a description key, it will show that description on mouseover. Good if a config needs a little explaining

void aspen
#

I see

#

mine is just a check box

#

tysm Ill test it rn

ornate locust
#

Yeah for a simple key with a true/false, you basically just need the name key

void aspen
#

it works

#

now I need to make all other languages

past loom
void aspen
hollow hatch
#

hiyo, im confused what this means

royal stump
hollow hatch
#

aah okay

ocean sailBOT
#

@hollow hatch You leveled up to Cowpoke. You can now share images in all channels!

barren tapir
#

I think I'm finished with my golden chicken statue mod! All I have left to do is code clean up!

I'm quite pleased with how it turned out!

void aspen
#

im a bit slow but how do I name i18n json for this language

#

mg?

near imp
#

the translation wiki has a list surely?

void aspen
#

oh right tyy

near imp
#

the in game options are what the language would call themselves, so you cant base files on that

void aspen
#

I just missed two which are this one and turkish boop

proud wyvern
#

why are you making a file for it, if you're not even sure what language this is?

#

if you don't make one, it will just use the default/English

near imp
#

Google translating a mod sounds mildly to moderately risky depending SDVpufferthinkblob

void aspen
#

wiki seemingly doesnt even have it whaa

#

oh wait\

#

its hungarian

near imp
#

made this for myself earlier

#

welcome to yoink it

#

but sasha why are you adding files for all the languages?

void aspen
near imp
#

normally they would only be added as they come in as translations

void aspen
#

its nothing to translate really just the config name and some basic text

near imp
#

google translate can do some translating but theres no guarantee the grammar will be correct

void aspen
#

I translate them both sides to be sure

near imp
void aspen
#

its not a warcrime I just wanna make it work 😭

near imp
#

you might accidentally call someones mother a lizard, but i guess its up to you

proud wyvern
#

also techhhhnically Google Translate results might or might not be LLM-based, so techhhhnically you're now incorporating "AI" in your mod

barren tapir
#

I'd argue that doesn't count as incorporating AI in a mod

proud wyvern
#

it's strictly a purist view yeah

autumn tide
#

depending on how big the mod is, I'm sure you can find volunteers, especially over in #modded-stardew

#

I would offer but I suck at all my 2nd+ languages

proud wyvern
#

joke's on you, i suck at my native language

void aspen
#

I know 3 languages and game kindly have 2 of them

#

I wonder how silly it is to add a new language to the game

autumn tide
#

ooh cool

#

it's been done!

barren tapir
#

I mean, I think AI can be a useful tool, and there are a lot of benefits it can provide! It's just that it's being misused, built off of questionably legal data, and lacks some much needed regulation while also being forced into everything for no good reason.

autumn tide
#

(AI discussions aren't encouraged here, it can cause a lotta argument)

proud wyvern
#

(we probably shouldn't bring up actual discussions on AI)

void aspen