#making-mods-general

1 messages Β· Page 181 of 1

tiny zealot
#

i suppose your pets will be unadoptable, as well

lucid iron
acoustic summit
lucid iron
#

void could prob go for bigger blade DokkanStare

rigid musk
#

I choked on my water oh my god this is hilarious

#

congratz on fixing it but oh wow

lucid iron
#

this will be a MMAP feature (a mod that is suspiciously less and less about map

calm nebula
#

o.O wind turbine!

#

wind turbines my beloved

#

.... I have weird hobbies

tender bloom
#

will MMAP icnlude the turbine?

lucid iron
tender bloom
#

inquiring minds want to know

lucid iron
#

naw that's void's mod

#

this is feature for rotating draw layer

tender bloom
#

ahhhh interesting

#

do you specify origin?

lucid iron
#

yea

#

BuildingData.Metadata mushymato.MMAP/DrawLayerRotate.<DrawLayerId> [rotation] [originX] [originY]

tender bloom
#

niice

uncut viper
#

you put buildings on maps. seems like a map feature to me

calm nebula
#

classical mathperson green energy mod?

uncut viper
#

ez

#

in fact almost everything a player can do or see happens on a map. you've got free reign to do anything

lucid iron
#

sometimes things happen in a minigame

uncut viper
#

junimo kart has an overworld map

#

and prairie king has maps

#

i know those arent the only Minigames

#

a lot of the other ones still have maps in em

#

hi selph

lucid iron
#

selph i expect mill ex nihilo rules in emc tmr \j

calm nebula
#

mill ex what

brittle pasture
#

lol now I'm debating adding machine support to buildings
can't run away from my demons forever

lucid iron
#

the turbine is supposed to create battery from nothing which mill rules (item conversion) cant do atm

#

also this test building is uh, 1 tile

#

need it to be 2 tile to be able to have input and output chest i think, if we go with the sap = battery meme

brittle pasture
#

I think you can do a chest that's both input and output; it would bring up the chest UI though so it's not totally seamless

rigid musk
#

It did not work u_u

brittle pasture
uncut viper
#

whats the other 2%

#

or rather how is the other 2% still confident it can do it in CP

calm nebula
#

XD

lucid iron
brittle pasture
lucid iron
rigid musk
#

even putting an npc warp directly in his room didn't work... which is ... odd?

brittle pasture
#

probably not very scalable though, I'd need to add flags for every minerals in the game

tribal ore
#

I figured out why Sebastian was missing from the Spirit Eve festival btw. It wasn't because of a weird conflict with schedules or something. It was because I had edited Data/Characters and accidentally nuked most of his entry because I didn't know how "TargetField" worked.

tender bloom
tribal ore
#

+1 for reading documentation xD

uncut viper
#

flags for every minerals sounds miserables

tender bloom
#

oop bye bye seb

brittle pasture
# calm nebula classical mathperson green energy mod?

we got wind turbines, now we need

  • solar panels (yes we have them, but consider beeg ones)
  • water wheels (building must have at least 1 tile in water?)
  • geothermal plant (two part building, a hole "building" that can be "upgraded" to the actual plant)
tender bloom
#

geothermal in the caldera

#

or lvl 100 mines?

tribal ore
#

maybe put a geothermal node in the quarry? Just for accessibility

lucid iron
#

Solar array things

#

S e m i c i r c l e

tribal ore
#

Fwiw, water wheels would be awesome. I'd put them on my house just for the vibes

uncut viper
#

if you're making a geothermal plant, it must be more efficient if you build it on the island

tender bloom
#

I was considering more of an "energy through human history" mod, where the progression tracks with the evolution from ancient sources of energy (doing things by hand, ancient egyptian shadufs, bronze smelting) to medieval-era things like windmills and waterwheels, up to industrial revolution era looms and factories and the bessemer process, through modern era nuclear plants, with some kind of pollution tracker than has an effect on the valley's ecosystem (more pollution = less fish)

rigid musk
#
         "LogName": "Qi Room to Nut Room",
         "Action": "EditMap",
         "Target":"Maps/AngelOfStars.Mrqifriendable_QiRoom",
         "MapProperties": {
         "NPCWarp": "13 11 QiNutRoom 3 6"
            },
        },
        {
         "LogName": "Nut Room to Qi Room",
         "Action": "EditMap",
         "Target":"Maps/QiNutRoom",
         "MapProperties": {
         "NPCWarp": "7 7 AngelOfStars.Mrqifriendable_QiRoom 23 9"
            },
        },```

Just to check - these NPCWarps are formatted correctly right? They *should* work? I don't see why they wouldn't considering the others are formatted similar/the same but .. who knows at this point
#

It also could really just be that the nut room is weird because its the nut room and of course its weird because this is mr qi and why wouldnt every single thing i do be weird

tender bloom
#

There would be some fairly severe effects on game balance with this focus on energy β€”Β to motivate gathering energy there would need to be energy used to power machines, etc

rigid musk
#

you need batteries to run every machine... SDVpufferfear

tender bloom
#

I don't think the nut room is actually weird

rigid musk
#

I think the nut room is horrible and terrible and the cause of every problem ever /hj

tender bloom
#

other than the draw functions for the twinkly lights stuff

rigid musk
#

i also hate that its called nut room :(

tender bloom
#

It wouldn't be a very fun energy mod if it just made the game harder, and it could definitely get boring to just pass batteries around, so probably at some point you would learn how to make batteries

rigid musk
#

i hand wrote my schedules before making them for clarity's sake and the amount of times i had to write "Nut Room" was too many

tender bloom
#

There's also different routes to go down, like the bessemer process for steel

#

In conclusion, I have too many things to say about metal

tribal ore
#

Harvesters and conveyer belts and the rest?

tender bloom
#

I don't really want to try to be in line with other mods (and I know basically nothing about minecraft), my inspiration is much more heavily human history and I guess tantentially like Civ-style ideas?

#

I don't particularly care about automating things, but I think there's some game balance that would naturally happen in the direction of mass-manufacturing

#

Conveyor belts are not only a huge pain in stardew, but there's a ton of people who have made them before

tribal ore
tender bloom
#

to be clear this mod exists only in the depths of my brain

tribal ore
#

Why would I make a solar plant? What's the benefit? (besides it being very very cool)

tender bloom
#

I think I drew half a lighting rod once

normal trout
#

Mmm my heart just skipped a beat at the thought of a control panel to auto-craft when resources become available in a chest within range 😍

tender bloom
#

all of that sounds like UI...horrors...

tribal ore
normal trout
#

OH GOD make an assembly line a-la-palworld and make junimos work at it to craft things for you when the above is true 😭 πŸ˜‚

tender bloom
#

I mean, I think if i were to make this mod, the benefit of a solar plant would be easy access to batteries, which would replace coal as a fuel for a lot of thingsΒ β€” plus motivation to get over the tech tree hill towards reducing pollution instead of increasing it

#

every coal you burn = adding to the pollution counter, and Demetrius can tell you how polluted the valley is

rigid musk
#

Does anyone know if the Nut Room has any general restrictions on like... npc pathing or anything like that?

#

Other than the Island West restrictions (which wouldnt apply here)

tender bloom
#

I don't think it's special-cased

#

It is not special in the graph of locations, since it's just got the one in/out warp

#

(Being a dead end means there wouldn't be any good reason to special-case it)

tribal ore
drowsy onyx
#

Is it normal for Stardew to not show the windowless bordered option in the settings? It doesn't appear for me in both vanilla and modded

calm nebula
normal trout
#

a furnace? 😭

rigid musk
#

I'm adding a special order to get to LVL 200 too B)

calm nebula
#

it's a heavy furnace

tender bloom
#

i think most of my saves I never even make it to 100

rigid musk
#

Trying to think of more special orders to add to Mr.Qi's thing is annoying though

tender bloom
#

that quest just lives in my journal forever

uncut viper
#

(i use skull cavern elevator so i like to go down to like 1000...)

normal trout
#

Yeah honestly I just build all the staircases known to man and go down DEEP before I even start using bombs to harvest. So I've probably gone that deep before, but I can't remember. It's been a while. Thank goodness for that elevator mod, I can't play this game without it πŸ˜‚

calm nebula
#

(tbh I also like, don't know how most people play.)

rigid musk
#

I reach 200 regularly but that's because I am very ill about this game

tender bloom
#

what i learned from atra is that they're way better at combat and fishing than i am

uncut viper
#

the skull cavern elevator mod is very cheaty i definitely wouldnt try balancing around it

tender bloom
#

it's not cheaty if you hate going into sc and never use it SDVpuffersquee

rigid musk
#

id say the average person gets to around level 80-120 in regular playthroughs though

tender bloom
#

relatedly the desert festival drives me nuts

uncut viper
#

i love going to the skull cavern and use it a lot

calm nebula
#

we have nerfed Drill Baby Drill to 150 levels in skull cavern

#

you also get gold

tender bloom
#

i have to stop myself from going to the desert festival because it makes me so frustrated

rigid musk
#

for why

tiny zealot
#

i don't love skull cavern, but i do love the volcano

tender bloom
#

i never get very many eggs, and I spend the whole day panicking about eggs and then all the shops close and I don't even get to buy anything cool

uncut viper
#

oh yeah, whenever my partner and i go there we just pause time, i feel you

calm nebula
#

want me to write you a five minute mod thatt prevents the eggs from vanishing after the festival?

lusty elm
#

Who needs skull cavern when you can just have your farm spawn ore! rooVV

rigid musk
#

'decidedly retired'

tender bloom
#

my fiance does not like cheat-y mods so we do not pause time, I just make him do it alone

tender bloom
#

they might have vanished next go around, i forget

calm nebula
tender bloom
#

i can write an eggs mod myself if i need one πŸ˜› I have rider and everything

lusty elm
#

(I may have updated mountain farm to spawn like 40-65 rocks/nodes a day scaled to your mining level), definitely not cheaty right?

tender bloom
#

no need to break your retirement for me

rigid musk
#

Why does this game have to act weird all the time

#

Just be normal

normal trout
#

If I had a nickel πŸ˜‚

rigid musk
#

(this is not a realistic request)

#

Every time it just decides to do weird things for no reason

#

and then I spend hours trying to figure out WHY the weird thing is happening and there's never an answer I enjoy

tender bloom
#

it keeps you on your toes

rigid musk
#

I do not enjoy :(

tender bloom
#

full of the spice of life

rigid musk
#

It's like when everyone was trying to figure out why you couldnt properly buy the weapons if you just teleported to the damn nut room

#

Because apparently you HAVE to finish the cc/joja because Qi is always watching or whatever

normal trout
#

Mine eyes have read the words 'nut room' far too many times this evening πŸ˜‚

rigid musk
#

It is all I see

#

Unfortunately this is literally one of his two primary schedules so I HAVE to fix it but theres not really... anything thats obvious to fix it

#

I hate this blue man

normal trout
#

I was going to make a joke about how Qi is always watching and it's all you see, and we should call you Qily but upon further thought, and attempts at pronouncing that out loud, I vote to abandon that line of thought πŸ˜‚

tiny zealot
rigid musk
#

😭

#

You know that has also happened to me too... unfortunately

rigid musk
normal trout
#

Or, when you fear you've broken everything somehow, but turns out your pc was just out of RAM πŸ˜‚ πŸ₯²

rigid musk
#

Qi watches over your crops, qi watches over you... what doesn't he watch over? :) dont worry about that

tiny zealot
tender bloom
#

i tell my friends that it's not that I play stardew, I just read the source code as a hobby

#

pants..........

rigid musk
calm nebula
#

hmmm

#

what about an order for the new seasonsal seeds

#

and a reward of 20x of each?

rigid musk
#

that would give them a use...

#

why are you making more special orders

brave fable
lusty elm
#

The funniest one is a while back, when you loaded a save for the 2nd time without restarting the game, tiles would unrotate themselves if the map had rotated them, and the info spread for like 4 months, BUT NOONE TOLD PATHOS, who once they knew, fixed it in 5 minutes.

tender bloom
#

"decidedly" now has been redefined to "only sort of"

tender bloom
#

atra releases more mods than I do

#

and I am pretending I'm not retired

lusty elm
#

If I'm still here I'm not retired right?

tender bloom
#

yup, totally

normal trout
#

I'm technically retired. I was inactive for over two years πŸ˜… I just... brain go *brrrr *sometimes and I had to follow the dopamine πŸ™ƒ

brave fable
#

maybe that's the trick. if you say you're retired you'll make more mods

tender bloom
#

talking about stardew on discord is definitely the same as releasing mods

brave fable
#

the equal-opposite of 'im going to post my amazing progress here' and then never releasing the mod

normal trout
lusty elm
#

Yup, totally not retired, even though I haven't published a new mod in a year

normal trout
#

But have you updated your mods and kept them functional? That's what really counts tbh

lusty elm
#

Uhhh this week I did?

normal trout
#

See? Counts

calm nebula
lusty elm
#

Ye finally 1.6 compatible

uncut viper
#

you just updated event tester

rigid musk
#

oh my god it just suddenly started working

calm nebula
#

yes, because ~5 out of 37 mods working is a good record XD

rigid musk
calm nebula
#

and none of the cool ones work

normal trout
# calm nebula (I have not.)

(I have not either, it's okay. For... over half of my mods, I think πŸ˜… Working on it. A lot's changed since pre 1.4 πŸ™ƒ I have to completely re-learn how to mod, it feels like)

uncut viper
#

i think event tester is cool

lusty elm
#

I've been working on finishing islands farm today, still gotta debug a few things tho

calm nebula
#

@blissful panther do you hear

uncut viper
#

@ De

brave fable
#

to be fair now we're into january it's not very festive

lusty elm
#

Probably have a new map from me today or tommorow rooHappy

brittle pasture
#

wow I cant believe christmas is just a week away

normal trout
#

I just released a new greenhouse mod, even though half my existing crap is broken SDVpufferparty πŸ˜‚

uncut viper
#

just a week away! oh wow

brittle pasture
#

I'm so happy about this information

lusty elm
ivory plume
#

Train Station 2.0.0 is released!

You can now add train (and boat) stations through Content Patcher, no separate Train Station content pack needed.

Nexus Mods :: Stardew Valley

Makes the train station at the railroad functional and lets modders add more stations to create a connected travel network.

lucid iron
#

Wow rip transport framework

brittle pasture
#

well on one hand two cakes
but on the other hand not needing content packs

uncut viper
#

transport framework lets you add things to the bus, boat, and parrots tho

ivory plume
#

(The rewritten code is designed to allow easily adding other networks like buses and parrots in the future. Possibly custom networks too.)

uncut viper
#

Wow rip transport framework

rigid musk
#

Rain schedules don't apply to npcs in the desert do they... spongehmm

#

Get past one problem only for another to pop up u_u always forever

tawny ore
#

Now that Pathos is wrapping up the ChroniclerCherry mod updates, I feel like it's time to inherit another set of mods /s

lusty elm
#

I just look at that and wonder if i'm going to get a volley of pings about stardew aquarium, cuz it uses train station to get there rooBla

calm nebula
#

I wonder what percentage of mod downloads is a pathos mod

brittle pasture
#

all 800 of aedenthorn's mods

calm nebula
#

It's like 27% probably

#

Or 52%

lusty elm
#

Does Smapi itself Count? and do Inherited Mods count?

uncut viper
#

itd be an easy thing to write a script to calculate

velvet narwhal
ivory plume
#

(Fun fact: that's a deliberate decision if I remember correctly, because CA didn't want to lock players outside in the cold.)

uncut viper
tiny zealot
#

that's what i heard, too (pathos's comment). but i forget when i learned it

velvet narwhal
#

fine fine, my warp network is still locked behind mailflags though, so no sneaky trickery about that

uncut viper
#

its just about the only (and best) reason i can think for it being there so thats unsurprising

#

its a cute touch

velvet narwhal
#

oh since you're around, pathos, was it a deliberate decision for default.json to supercede the default folder? i don't know if it was asked (in regards to the new i18n foldering)

uncut viper
#

casey was the one that implemented that iirc

#

the i18n folders in general i mean

#

it was also like, intentionally coded in. like its not an accident that it happens

#

the warning specifically tells you thats what itll do

velvet narwhal
#

thonkmuvi then the other question would probably be "why not the other way around?" but that'd probably be for casey when she's back from vacation

ivory plume
#

Yep, you need to choose one i18n format or the other; you can't mix and match them, which would lead to a very confusing structure.

uncut viper
#

its not about not mixing and matching, rather

#

its about that if you do mix and match, smapi chooses one to use, and it chooses non-folders

rigid musk
#

Is there a way to make a Desert NPC follow a rain schedule for when it rains in the valley (other than to just randomly insert it in or something)

uncut viper
#

meaning if a mod updates from non-folders to folders, users will almost certainly get warnings about needing to reinstall the mod (bc if they drag and drop the update in, they will have non-folders and folders now)

#

and if they dont theyll have broken i18n potentially

#

assuming new i18n was added at the same time, anyway

ivory plume
#

I guess so, but the same problem would apply in reverse if SMAPI did the opposite: a mod which simplifies its i18n would have issues instead.

uncut viper
#

while true, there wouldnt be a mod that can do that when the feature was released

#

bc folders werent an option before

ivory plume
#

Yep, but the feature isn't only designed for how it'll be used right after release; it's also meant to make sense for mods written 10 years from now for example.

uncut viper
#

so having SMAPI choose non-folders by default makes it more of a pain for people to upgrade for no benefit, whereas the other way around would make it at least functional when upgrading (could still log a warning) and harm no one on release

#

that is also true but 10 years after release people would know which has priority

brave fable
#

(unless the standard changes again)

ivory plume
#

I wouldn't have been opposed to discussing which has priority before the feature is released, but it's probably too late to change at this point unfortunately unless there's a really good reason to introduce potentially breaking changes.

tawny ore
#

yaml i18n, when?

velvet narwhal
#

i'm pretty sure the yaml for cp works

uncut viper
#

or in other words, having folders be priorities would guarantee functionality for all existing mods and mods that update to folders. having non-folders be priority guarantees fuinctionality for all existing mods but not future updated mods

i didnt know it was that way before it was released SDVpufferchickcry

teal bridge
#

Hey Matt, I wanted to let you know that there will be a very small change to the Radial Menu API in the 1.0 update, just changing an enum parameter to a boolean (or possibly a different enum). Are you good with putting out an Iconic update in a week or two?

uncut viper
#

it would only be a breaking change for people who have switched from folders to non-folders, if there are any who have done so
but that isnt me saying its worth it though, i dont think its worth a breaking change at this point either, even if i dont think its likely someone would actually be affected

uncut viper
#

that said though given how often people ignore warnings potentially in a sea of yellow i do still kinda half think the warning about it should be an error instead, since the mod will have broken i18n if theres new i18n in the update

tiny zealot
uncut viper
#

but i also understand errors only being for like, yknow, actual bugs and crashes and whatnot

uncut viper
tawny ore
#

Time to start recommending people use mod managers /s

uncut viper
#

but the point is less that its a big problem and more that there didnt need to be any problem

velvet narwhal
uncut viper
#

its not like im tryin to say its a big deal or anything either, i was just trying to explain my viewpoint since it came up

ivory plume
uncut viper
#

take all the stuff im saying with an excess of casuality and whatnot

#

its worth something! SDVpufferheart

velvet narwhal
#

hindsight is 20/20 KEK

#

afaik the undertaking of separating the default.json to the folderized is too heavy a burden for the older mods that probably needed it, so i'm not really expecting that many problems going forward about it

tawny ore
#

Now I'm curious, are there any pending feature proposals for SMAPI sitting out there

uncut viper
#

its also fine if you just tell users they need to completely reinstall the mod, too, if you know ahead of time which is gonna have priority

ivory plume
uncut viper
#

i just didnt know at the time until my update had already been out for a while, bc i didnt have non-folders in my working folder anymore SDVpufferchickcry

teal bridge
#

Oh hey, I didn't see an answer to my question earlier about child menus not being disposed by the game - deliberate, or bug?

ivory plume
#

Oops, forgot to reply. Probably a bug, but no idea when we'll have another game update.

tawny ore
#

If you're willing to break the Console API, sounds like a good time to update it

velvet narwhal
#

(i still lost the bet cryyrrek )

ivory plume
#

I've been meaning to rethink the console API, but that'll be something to discuss when we start gearing up for SMAPI 5.0.0 (which won't be for a long while yet).

uncut viper
#

we're in the long haul now, time to go back to the tried and true method of writing "Community Bugfixes" mods /hj

teal bridge
#

Haha, well not a huge worry to me personally because I control the exit method, but those vanilla menus are probably causing resource leaks.

rigid musk
tawny ore
#

btw @ivory plume would the beta community still be a good place to report bugs?

velvet narwhal
rigid musk
#

Ohh I see waht I did

ivory plume
uncut viper
#

(im curious what is the beta community)

ivory plume
#

(We had a small set of players beta-testing the Stardew Valley 1.6 content before it released to all players. This was mostly focused on active players, unlike the wider mod author beta.)

uncut viper
#

ahh, gotcha. neat

tawny ore
#

Almost 5 years of modding

rigid musk
#

I could also be separating the when conditions wrong

velvet narwhal
#

it could've been my syntax, i'm not used to it tbh

#

ah i think it'd just be:
"Weather: valley": "Rain" without the brackets

rigid musk
#

O thank you

#

i did see the brackets on the CP documentation page (which also confused me)

uncut viper
#

you cant use the outer brackets in When conditions

#

but they should be included everywhere else

#

and only for the outer most brackets

proud wyvern
uncut viper
#

if you use a token inside your token in the When condition, you use the brackets

velvet narwhal
#

i am up to my eyeballs in brackets right now
and also because i try my bestest to not when patch unless absolutely necessary KEK

rigid musk
#

I'm glad to get use out of my dynamic token a second time by doing this at least I guess... even if I had to write two entire new patches to his schedule :|

ivory plume
proud wyvern
#

i'm just saying it may not have to wait for 5.x

#

not saying it's a priority though

#

btw. i've done some Pintail updates in the past weeks, but nothing too critical, so didn't ping you about them

#

they're optimizations

ivory plume
#

Sure, I can update Pintail in the eventual SMAPI 4.2.0.

lusty elm
#

so it turns out the way I loaded the map in CP DID cause some MP issues when I tested

#

Turns out when you tell Content Patcher to Load Version 1 If Ingame Value is under 6, and Version 2 if It's 6, causes a Stroke for a farmhand because it doesn't have access to the value to know which one to load until it enters the file, which it cant' because it can't load the map, because it doesnt know the value so it cant meet either condition.
But its fine for the host, somehow πŸ˜›

tender bloom
#

can you do unconditional load and then editmap conditionally?

#

what you say makes some amount of sense, I think, and it's fine for the host because the host is the source of all truth and also locations themselves

modest dagger
#

I need mod making assistance. So atm my smoked items appear smoked while i'm holding them, but they don't once placed, even tho normal smoked fish does have the animation while placed. Any idea on how to correct this

lusty elm
#

I did it the original way in the hopes it would be less edits and thus slightly less lag, but πŸ€·β€β™‚οΈ

modest dagger
#

i put it on display on a table

brittle pasture
#

hmm might be weirdness with how smoked fish are colored objects, and those force the full drawing logic instead of just grabbing the sprite from the item data

#

try adding CopyColor true to the machine rules that are making the smoked meat

#

and retest with new objects

uncut viper
#

idk if its relevant bc idk the difference between draw, drawInMenu, and drawWhenHeld for ColoredObject, but the latter two specifically check for an ItemId of "SmokedFish" to call a special drawSmokedFish function

brittle pasture
#

I'm operating under the assumption wiz is using EMC's custom smoke feature

uncut viper
#

context is very important

brittle pasture
#

nah just learn to read minds /s

modest dagger
#

i am using emc

uncut viper
#

in that case i leave you to selph and/or you're on your own but wlightheartedly with a good luck attached

versed wyvern
#

Is there a difference, as far as the game's resource usage is concerned, between Loading (and replacing) an image to be X pixels tall, and using EditImage ToArea to add sprites around X pixels down?

proud wyvern
#
  1. adding onto vanilla tilesheets is a recipe for conflicts
  2. technically less textures = better, as texture swaps are what's slow
versed wyvern
#

I know Loading would replace the whole thing and thus be worse for compatibility but I think I can ignore that for the situation I'm looking at

wide flint
#

Is there anything else, besides the hardcoded part in Object.cs, that is responsible for sprinklers/enrichers? I want to trigger the enricher manually and it looks like the game is calling Objects.cs -> placementAction()
There it's going through all location.Objecs and call HoeDirt.plant() if everything matches.
Or am I on the wrong path?

versed wyvern
#

(It turns out Sprites in Detail causes EditImage patches to no longer be able to extend sheets, but Loading an image that's the needed size to begin with apparently works fine)

blissful panther
winter dust
#

Anyone here speak Mandarin?

south ravine
#

i heard about mandarin

#

someone called decidedly something summoned me from the abyss

blissful panther
#

@winter dust (Just in case ping!)

blissful panther
#

Look up!

winter dust
south ravine
#

yeah

#

i can speak canto and mandarin

winter dust
south ravine
#

i speak canto daily in fact

wide flint
#

Are the areas of the world always loaded or does it require a player to be in that area?
Example: Can I grow a plant or water dirt through code anywhere in the world or only in areas that have a player in it?

blissful panther
#

There's UpdateWhenCurrentLocation() in GameLocation, but also updateEvenIfFarmerIsntHere() in subclasses like Farm. So to summarise, I don't know exactly!

Manually doing something like that... good question, but simple enough to test at least. I'm fairly sure it should work?

uncut viper
#

(dont expect it to work in multiplayer)

#

though if a location can grow crops, odds are it should be AlwaysActive, and it will actually work in multiplayer

#

but locations in general are not always "real" for farmhands

wide flint
#

It's ok if it requires a player in that area, was just curious

winter dust
#

Is there a mod that adds more language options for people?

#

Like lets say Italian, Brazilian Portuguese, Dutch, Swedish, Ukrainian etc.

brittle pasture
devout otter
#

Yeah: Vietnamese, Thai, Indonesian, British English, Ukrainian off the top of my head.

winter dust
#

I wish we had a list of them.

blissful panther
#

That would be a really good page on the wiki, yeah...

winter dust
#

Can we get a mod that translates everything into Wingdings?

devout otter
#

(Italian and Brazilian Portuguese are vanilla, I believe.)

winter dust
#

Oh, then it's regular Portuguese I'm thinking of?

winter dust
#

It appears I'm the first person to publish a Stardew Valley mod on GameFront.

median dune
#

well fun fact, PathFindController quite literally IS the "Go there" method

#

so at least for now I will be using it and after I do my core mechanics if needed I'll look into pathfinding again

wide flint
#

Is there a vanilla method to get all Crops at a Location/GameLocation or do I have to loop through the Location's Objects?

brittle pasture
#

arent crops in HoeDirt which is in turn in terrainFeatures

#

aside from garden pots which are objects which contain hoedirts

#

though objects will catch forageables

wide flint
#

I need forageables as well, so

blissful panther
#

A crop is in a field on a HoeDirt which is a TerrainFeature, yeah. Forageables are just Objects in the location's object dictionary.

#

Except... some special forageables like the spring onions.

median dune
#

this is for crops on the farm specifically

blissful panther
#

(There is also Utility.ForEachCrop(), though I'm fairly sure that does every crop in every map.)

wide flint
blissful panther
#

It just takes in a Func<Crop, bool>. The return value can be false to stop iterating at a certain point, or true to continue.

pine elbow
#

Hi

blissful panther
#

Hello!

wide flint
#

So it's pretty much the same as the code piece Marci posted but also includes Garden Pots. That should do what I want. Nice find

blissful panther
#

There are a lot of useful things like that in Utility. Well worth looking there if something's going to involve a lot of iteration over things in multiple maps.

wide flint
#

If I want to take an item from a container/chest, do I have to RequestLock/ReleaseLock in the process?
Found a piece of code in Object.cs, now I'm unsure.
Or is it safe to just decrease the stacksize with item.Stack--?

brittle pasture
#

I'm not one of the chest experts (that would be matt/khloe), but I think that isn't necessary if you're running your code when you can be reasonably sure no one is touching the chests (e.g. dayupdate)
otherwise using a mutex is probably a good idea yeah

wide flint
#

well, better safe than sorry

viscid mural
#

Does anyone know how to mod the game to make the male farmer 1 pixel shorter than he currently is? I'm guessing that if I change the sprite and do nothing else I'll end up with misaligned clothing/hair/hats/accessories/etc., hence the question.

hallow prism
#

i dont remember if there's mods to make both farmer same size

#

you can try and see if there is and how it's done

viscid mural
drowsy pewter
#

youd need C# for the hat and everythign stuff you mentioned

gusty pivot
#

Hey Folks,

Sorry for the disturbance ❀️

I am looking for a couple of links I can study to help me create some basic SDV mods with my daughter.

No problem decompiling files and altering values, etc. we've been messing around for a while now, but if you had a link to a wiki or repository of starter tips that would be great. I'm no expert at all πŸ˜„ so just the basics would be plenty

Thank you, any help is much appreciated and will make her day ❀️

H&Z

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.

slender badger
#

Depending on what you want to edit, you can make some basic Content Patcher mods very easily and won't need to decompile or anything like that πŸ˜„

blissful panther
#

(Does Elizabeth's new infographic have a command yet?)

gusty pivot
blissful panther
#

This is a pretty good indication of what you can do with what!

slender badger
#

Generally if you have a starting point in mind, people will be able to direct you to more specific resources too

gusty pivot
calm nebula
#

Oh, stardew modding is very much bird identification xkcd

wide flint
gusty pivot
slender badger
#

Okay, moving the train station onto the farm is going to be very difficult lol πŸ˜† Though you could create a custom farm map that has a fake train station built into it and maybe set up minecart warps to go places with it?

fathom hound
rigid musk
#

Or perhaps an item you can get to put on your farm that warps you directly TO the train station ... though a train on your farm would be pretty damn cool

gusty pivot
blissful panther
fathom hound
#

Ty Elizabeth SDVpufferheart

slender badger
rigid musk
#

considering you can technically take the bus to zuzu if you download DTZ you could use the trainstation mod to make it to where it also takes you to there

slender badger
#

Actually, thinking about it, you probably could add a working ticket machine now that Train Station uses CP

rigid musk
#

Oh that would be so cool

#

Train station on the farm for real for real

acoustic summit
#

(In CP)

slender badger
#

My main concern was how it'd interact with farm maps, since those can be weird sometimes

#

Might be fine though SDVpuffersquee

brisk kindle
ocean sailBOT
#

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

thin hamlet
#

Someone asked in the comments of TCC if the mod would be made β€œcompatible” with the geology mod and the Dwarven expansion mod, what does this mean?

drowsy pewter
#

ask them

thin hamlet
#

Okay

devout otter
thin hamlet
#

-._-.

#

Indeed

viscid mural
faint ingot
#

I had a twitch streamer (nino kito) play my mod yesterday (law and order sv) and it's actually so satisfying to watch someone else enjoy your work

median dune
#

I totally did not just waste hours of my life because I forgot to turn pixel value of getPosition() to tile value

#

but if anyone knows of a good way to get the tile position of an NPC that I missed like the dumbass I am I will gladly listen

thin hamlet
#

It currently just adds rocks to the mines, which was why I asked for clarification

median dune
#

...

#

I should really get some sleep

#

sorry for this dumb question

rigid musk
# thin hamlet It currently just adds rocks to the mines, which was why I asked for clarificati...

I believe - at least relating to Dwarven Expansion - they mean the jewelry thing? Otherwise I think they're just confused and think that your nodes would overwrite other nodes - which, as long as they are named properly and not just the exact same internal name as those other mods, should not be of any issue (and should inherently have some base compatibility with Dwarven Expansion's gem polisher and such)

thin hamlet
#

I would presume so

gentle rose
thin hamlet
#

Jewelry compatibility would be cool ngl

#

Ty!

slender badger
slender badger
oblique meadow
#

Im assuming I know the answer. BUT im going to ask anyway in case im wrong. In order to move the furniture (on farmhouse upgrade) to a specific spot. (ex a chair at 12,15 gets moved to 20,22 on upgrade) that would require some C#, yes?

#

no easy magic way

gentle rose
oblique meadow
#

Yeah. Long story short Im trying to fix an issue where furniture looks all wonky after an upgrade

gentle rose
#

I think that's a known issue with farmhouse mods because of exactly that

oblique meadow
#

Yeah, I understand what is happening. Like ive tested and delved down that rabbit hole. Just trying to figure out if there's an easy fix, or if I come up with a creative solution

#

Sounds like I need a creative workaround

gentle rose
#

I wonder how the game arranges the furniture after upgrade tbh. I think it just puts it all in the middle room in the same layout that it was in except for the bed?

#

if you have a room in your farmhouse that the original room could fit into, the c# shouldn't be too tricky

oblique meadow
#

Based on what I can tell, the first upgrade just adds space to the right and spawns a bigger bed. So nothing has to shift. Since the next map is bigger it is hard coded to shift the furniture down and to the right

#

to align with the next map

#

So I just need to get the exact specs of the hardcoded shift and design my map accordingly

#

Alright. Thanks for helping me talk through that Iro

median dune
#

another possibly dumb question but-

Point SpouseTile = new Point((int)spouse.Tile.X, (int)spouse.Tile.Y); 
#

is there a better way or is this fine

#

this is converting Vector2 to Point

rigid musk
wide flint
median dune
#

ah, thats good to know

#

in this case you can also do it like this..
Point SpouseTile = spouse.TilePoint;

#

Im blinder than darkness itself

wide flint
gentle rose
thin hamlet
median dune
#

Alright now time for a little bit less stupid question: making the loop wait until movement is finished before initiating next iteration, right now I have a working code but it works by just constantly looping and checking if the canContinue flag is true, which becomes true when the npc is checked to be on their end point. Any takes?

gentle rose
median dune
#

making the npc walk to a bunch of dynamic(any specific not raw data) points

gentle rose
median dune
#

making spouses fun

#

hold on I can give you an example

gentle rose
#

npc scheduling in stardew is pretty fragile and can interfere with a lot of other mods unfortunately, but I'm pretty sure there should be easier methods to make them walk to a given point

median dune
#

Imma show you literally all it takesx

#

I was surprised myself, remember kids, always ask chatGPT when coding

#
 {

     PathFindController controller = new PathFindController(npc, location, destination, finalFacingDirection, null);
     npc.controller = controller;
     
 }```
#

this is the "go there" method

gentle rose
median dune
#

well I mostly use it to error check my own code, but this was a very surprising find

rancid temple
#

I'm gonna expand that to just never ask GPT anything

gentle rose
median dune
#

not if it's fine, but it doesn't work and you have no idea why

gentle rose
#

then I recommend asking here! where real humans with sometimes encyclopedic knowledge of the game code are almost always around to answer questions

#

like seriously, you'd be amazed just how much some people here know about the inner workings of this game

brittle ledge
#

Roku and iro have also released multiple C# mods apiece, I'd trust them to know where the good advice vs. the bad advice is kyuuchan_nod2

median dune
#

alright alright you convinced me

gentle rose
#

regardless, you're looking at the pathfinder, but I think you also need to look through some of the scheduling code for spouses for this

median dune
#

ANYWAY we are getting extremely sidetracked here lol

gentle rose
#

uh, Avi told me where to look for that once, I'll go find that SDVkrobusgiggle

gaunt orbit
brittle ledge
gentle rose
median dune
gentle rose
#

though you guys are welcome to ask me about... horses and drawing over maps ig? SDVkrobusgiggle

rancid temple
#

What about Nick Cage?

gentle rose
gentle rose
gaunt orbit
slender badger
#

Ooh, that's interesting to know πŸ‘€

#

There was discussion at one point about how to rework the Egg Fest so that it's not not!Easter but the egg hunt was always a sticking point

median dune
gaunt orbit
#

I think you could reframe the egg hunt and keep it tbh

slender badger
#

Yeah, the main concept discussed there was to change the egg sprites and make it some sort of treasure hunt, I think

#

It was pretty loose brainstorming πŸ˜†

brittle ledge
#

There was a mod idea complaining about how the festivals are always the same, I labeled it as a SMAPI mod because I thought things were more hardcoded

gaunt orbit
#

I don't think egg hunts are necessarily an easter thing though

brittle ledge
#

They weren't real specific about what they wanted since they were complaining, but

lucid iron
#

the egg hunt isnt very associated with yoba tbh

gentle rose
slender badger
gaunt orbit
rancid temple
#

Hmmm, can I mix manual and annotation Harmony patches?

gentle rose
#

or to multiple at once ig

lucid iron
#

yea

#

PatchAll for the annotations and Patch for manual

#

idk why you would do this though

rancid temple
#

Because I normally do manual but I need to change when one of my patches happens to avoid a conflict

#

And I don't want to change entirely to annotations if I can avoid it

lucid iron
#

i wonder if HarmonyAfter works on manual

rancid temple
#

I do also wonder, I kind of assumed not since manual patches don't really use annotations otherwise

slender badger
#

Of course, the other major issue with changing the festivals too much is all the mod-added NPCs who reference it πŸ˜… Stuff like Kailey's Feast of the Sun works okay since the soup is still the same, but compat would be a nightmare if a mod removed the egg hunt

gaunt orbit
gaunt orbit
lucid iron
#
var harmonyPostfix = new HarmonyMethod(postfix)
{
    priority = Priority.Low,
    before = ["that.other.harmony.user"]
};
#

looks like its a field of the harmonymethod

gaunt orbit
#

With the manual

#

I did that and it worked

slender badger
gentle rose
#

DO NOT ACTUALLY DO THIS IN A MOD IS2G

private void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
    if (e.DataType.IsEquivalentTo(typeof(Texture2D)))
    {
        e.LoadFromModFile<Texture2D>("Path/to/nic/cage/asset.png");
    }
}

the full nic cage mod SBVLmaoDog

lucid iron
blissful panther
#

It does exactly what you would expect.

slender badger
#

I hadn't heard about ostara before, learnt something new SDVpufferheart

rancid temple
#

Oh no... won't someone think of the children android compat?

gentle rose
median dune
gentle rose
median dune
#

it does? all I see is raw schedule data

gentle rose
blissful panther
#

So when's the release?

median dune
#

now.

gentle rose
#

you should see how lovely and red it makes the smapi console

calm nebula
#

The code that makes spouses go to various points is in farmhouse.updateevenwhenfarmerisnothere

calm nebula
#

The code that runs all that shit is in character.update

#

Or npc.update

#

Something.update

slender badger
gentle rose
#

I also made a boncher version and found out that this straight up will not load a save if you use certain textures SBVLmaoDog it will only really work with HD images for some reason

gentle rose
# calm nebula The two random trees

some assets don't get replaced because they expect specific sprite sizes, judging by the smapi errors SBVLmaoDog mostly bushes and trees in this version, the boncher version had a lot more unchanged stuff

#

the main menu is the best part tbh

blissful panther
#

I had to do something slightly different for Everyone is Grandpa:

public static class Patches
{
    private static AnimatedSprite grandpa;
    private static List<NPC> npcsWithChangedSprites;
    public static void Init()
    {
        grandpa = new AnimatedSprite("Characters/DecidedlyHumansCurse/Grandpa", 0, 16, 32);
        npcsWithChangedSprites = new List<NPC>();
    }
    public static bool NPC_draw_prefix(NPC __instance, SpriteBatch b, float alpha = 1f)
    {
        if (!npcsWithChangedSprites.Contains(__instance))
        {
            __instance.Sprite = grandpa;
            npcsWithChangedSprites.Add(__instance);
        }
        return true;
    }
}
#

I had to make a custom grandpa walking animation that definitely wasn't just hopping in place.

calm nebula
#

List, DH, seriously?

lucid iron
#

DecidedlyHumansCurse

tiny zealot
gentle rose
#

I love how your code still tries to implement the everything replacement in a kind of logic-based way and meanwhile I went for the "nuke everything" option SBVLmaoDog

rancid temple
gentle rose
#

half the time, I make arrays but end up using Linq methods then converting them back to arrays again lmao

median dune
gentle rose
#

anyway yesterday I almost wrote Dictionary<string,Dictionary<string,int>> or something as the type of a generic method and decided it was probably time to stop and refactor SBVLmaoDog

median dune
#

I don't think there is any piece of code dedicated to npc movement that would consider back-to-back movement like mine

blissful panther
blissful panther
#

Glorious is what it is.

dusk terrace
#

ohhi Decidedly, may I DM you something about a possible compat between our mods? SDVpufferblob

blissful panther
#

Oh, yes, I was going to get to the reply on the issue this week!

dusk terrace
#

but also... anyone knows where to get specific event IDs? I forgot which file has them
or anyone happen to know the id of any event that has a question in it? πŸ˜…

blissful panther
#

I think it's just all in Data/Events/LocationName?

dusk terrace
#

will check SDVpufferthumbsup thanks

brittle ledge
#

if I ever learn C#, my goal will be to make Atra and chu disappointed in me SBVLmaoDog

rancid temple
#

Just learn from Avi SMCKekLmaoDog she's managed to get both of their disapproval at least once

calm nebula
#

Avi truly has that gift

gentle rose
median dune
#

I haven't, but now I will

gentle rose
#

(and, by extension, the methods that call it)

calm nebula
#

Smh

#

Know your types

tribal ore
#

Anyone know how to load an arbitrary texture onto the floor during an event? Tried "addFloorProp Mountain-footprints 8 7/" but obviously the game doesn't like that

#

I figured out how to load the texture in with my config

#

But don't know how to use it now, since it's not replacing an existing tile or sprite

blissful panther
gentle rose
#

alternatively, idk how different animal path finding is from npcs but you could always look at that too SDVkrobusgiggle since they are pretty dynamic

rancid temple
tribal ore
blissful panther
#

I believe so!

median dune
#

should I be worried?

lucid iron
#

yes shame on you

blissful panther
#

No -Wall, no problem. /j SDVkrobusgiggle

acoustic summit
#

0 errors 0 worries imo

tribal ore
blissful panther
#

Wait, no, that's not the flag I'm thinking of...

tribal ore
#

sometimes that catches something that you really should take care of

lucid iron
#

generally its prob just null warnings and should be easy to fix

lucid iron
#

less noise is easier for u in long run

rancid temple
#

My favorite is when VS tells me about a null warning, I tell it "no thanks" then I launch the game and get a null reference exception like surprisedpikachu

acoustic summit
#

Id care more abt warnings if I didnt get 40 warnings about comparisons of assembly reference versions

lucid iron
#

is your workspace cursed blobcatgooglyblep

median dune
#

hmm re-sorting a list of potentially hundreds of objects every second on average doesn't seem like a good idea does it

rancid temple
#

How many hundreds? Every second is like nothing

median dune
#

how many crops would you be willing to plant on a big farm

rancid temple
#

Hm, personally no more than 100 or so is usually what I aim for, but I know some people are unhinged

gentle rose
#

(btw, there is somewhat of a reason why nobody has done the dynamic pathing for spouses yet, even though the idea has been floating around for a long time - personally the closest I'd get to touching that with a ten foot pole is by dynamically adding new things to the schedule and forcing it to refresh somehow)

rancid temple
#

Well, if I were to tackle something like that, I would be very wary of dumping any vanilla mechanics out completely

#

And trying to work in the confines of the marriage systems is... obnoxious

gentle rose
#

moving the spouses manually feels like a very dangerous idea too, personally, knowing what little I know about how these things are handled (even if you don't try to account for things like multiplayer, or the headache that cross-compatibility with other mods will be)

royal stump
#

(if you want to do something to each thing in the list, though, they're the thing to use)

rancid temple
#

I will have to explore hash sets more, I'm not really familiar with them at all

royal stump
#

they're basically just Dictionary<thing, bool>, they either have your key or they don't

#

not a great description, but they're valueless, just to check whether you've seen a key before or some such

gentle rose
#

for example, I believe that the pathfinder for npcs has them mostly walk over objects (idk how the nondestructive one does it but that's how the destructive option works). Also, if your npc ever walks over a warp, they will warp to that map afaik and continue their movement like before, so you have to check for those

median dune
#

they don't

#

not all at least

#

idk I tested with sprinklers xD

rancid temple
#

I think they might still destroy forage?

#

But they shouldn't break anything actually important

median dune
ocean sailBOT
#

@median dune You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

rigid musk
#

https://smapi.io/json/none/985b55d9a3a1417590ea13ce4207e38a

Could someone take a gander at this - specifically the schedules under "Qi Rain Schedule 1 No SVE" and "Qi Rain Schedule 2 No SVE" and let me know if Im doing something wrong there? It defaults to his generic spring schedule instead (i set it to spring instead of rain since, much like the last one which is the "Qi Alternate Main Schedule - Nut Room" it should load) I also did it in that order so those would override the nutroom schedule which I think I did right? But the patch itself isnt applying when it rains in the Valley

median dune
#

:o

gentle rose
#

the warp thing is definitely one to look out for though, it's caused a lot of issues in the past

median dune
#

I mean, you really would have to try to get that to happen

#

like, who the hell would place anything or something next to the warp

royal stump
#

if you're making an NPC walk around the farm, that might include building doors

gentle rose
#

that's still a bug though haha

#

even if most people won't run into it

latent mauve
median dune
#

I will have to test that

#

but still I should be able to work around it if need be

#

as with all things (with enough C# anything is possible)

latent mauve
#

But I still don't get why you aren't using rain, Lily, since spring shouldn't be used if a rain schedule is present and valid

#

And if you conditionally patch the spring schedule to take effect during weather, it will take effect too late for the pathfinder to use it unless you have multiple rain days in a row

#

That whole 'NPC checks the schedule and pathfinds before the new day starts' thing

tribal ore
#

You might not need a hash for a couple of hundred things on modern hardware. But test it with the largest size that your list can actually be (the area of the farm)

lucid iron
tribal ore
#

Also, why re-sort the list every time? Why not keep it sorted?

tribal ore
#

Insert into the correct position in the list when you add. It will stay sorted

lucid iron
#

i was thinking more use a heap

#

and do the heap insert on terrainfeature change (i.e. whenever hoedirt)

tribal ore
#

Sure. That would also keep it sorted

gentle rose
#

also if we're talking about purely crops (I'm guessing for something like harvesting?) there's a fixed amount already planted each day and then more will only be added by the farmer planting new crops, so you could probably keep a heap/sorted list from the beginning of the day and then use a harmony patch to only update when a new seed is planted?

lucid iron
#

you dont need to use harmony

gentle rose
#

is that something you can hook onto directly? even better

lucid iron
#

can detect hoedirt coming into exist with location.terrainFeatures.OnValueAdded

median dune
#

well that's not exactly the point, what I wanna do although unnecessary is having a bit of randomness in the movement instead of pre-sorting the list and following it

lucid iron
#

u dont have to sort a list for random do u think

median dune
#

unless you want a BIT of randomness and not have them go from a crop on one end of the farm to the other

gentle rose
median dune
#

Im sorting it by distance to the NPC

lucid iron
#

you can first get a list of crops within some distance

#

then random there

teal bridge
median dune
lucid iron
#

onfieldchangevisible

median dune
#

there is also something else I was thinking about, to prevent them from going snake and walk somewhat methodically, meaning they prioritize the surrounding 4 tiles before moving on

gentle rose
#

I should learn more about netfields from the sound of it SCyes

faint ingot
#

is there any way to force a special order to appear? I have one that plays a pivotal role in my mod but one user reported they didn't get it until year 4 which is pretty late.

calm nebula
#

No

#

Don't

#

Save yourself

wanton pebble
#

On the board? Not particularly

#

Buuuuuuuuut

gentle rose
#

I was gonna say, I saw atra's comments on the special order mod page SBVLmaoDog

wanton pebble
#

You can trigger action it

fossil osprey
#

There's that mod that allows you to just reroll special orders

royal stump
#

giving it to people based on events/triggers/etc is possible, skewing the board is Rough

wanton pebble
#

I have backup mails for Stardrop Breakfast's special orders for those who aren't getting it for ages

calm nebula
wanton pebble
#

Plus a tongue in cheek reference to everyone being on the board

royal stump
#

(I also have a framework to create another board with a specific subset of orders, and I think somebody else might've done that too SDVkrobusgiggle)

faint ingot
rigid musk
upper rune
#

Anyone know how to make a crop produce flour or beer?

rigid musk
#

I did initially have the schedule set as just 'rain' and 'rain2'

#

Do you mean grow beer and flour or like, be produced into flour or beer

upper rune
rigid musk
#

you would have to edit Data/Machines for Kegs and have your crop be an additional output for beer

#

not sure about mills though

gentle rose
#

so like wheat does right now, basically?

rigid musk
#

Data/Buildings I think

upper rune
lucid iron
#

oh those r just normal crop then

rigid musk
# latent mauve Is there a reason you aren't using the `rain` schedule key? I just read the res...

But to further elaborate - I was doing this last night but I found out that he just wouldn't trigger the Rain schedule(s) at all which I do believe is specifically because his home location is the Desert, which means it would (standardly) never rain there. So I asked for a general solution which was to have another patch that uses the 'when' condition for weather in the valley when it's raining.

Which I did in a single patch with 'rain' and 'rain2' as his schedules - and then neither of them worked so I figured maybe it was because they were still called rain and rain2? ... so I switched them to just be the 'spring' schedules instead figuring it would work much like his NutRoom Schedule (which I figured out by just not routing him through the office btw, IDK why the office made it impossible for him to go there but it did so I just took out the middleman and put a warp in his room that I may or may not add the ability for the player to use later on at a higher heart level)

lucid iron
#

besides the Data/Crop u also need to add Data/Machine for beer and Data/Buildings mill for flour

rigid musk
#

It would be Data/Buildings to edit for the Mill right?

lucid iron
#

yep edited

rigid musk
#

I was right about something I feel very cool

rigid musk
upper rune
#

Do you happen to know which file to reference? There are many haha

lucid iron
#

the game itself serves as a good ref too

#

!unpack

ocean sailBOT
#

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

lucid iron
#

assuming u know the general gist of content patcher

rigid musk
rigid musk
upper rune
#

ah i see. thank you

rigid musk
#

For the vanilla data, Data/Machines > search up "(BC)12" which is keg

#

And then Data/Buildings > "Mill"

true coyote
#

someday I'll get all these fence variations saved into the proper folder directories so I can start code 🫠

true coyote
#

well thats done

#

I dont have energy for coding now though cryingcatto

pine ermine
vale stream
latent mauve
#

Question for anyone willing to peek at the game code: Is there any behavioral difference if an NPC's HomeRegion is set to Other instead of Desert? The wiki only mentions situations where other values in the character data become true if the HomeRegion is Town.

#

Since Lily pointed out that the rain schedule doesn't seem to fire for NPCs that are in the desert/have a Desert HomeRegion, I am curious as to how you'd get around that and if the HomeRegion being Desert prevents rain schedules from happening or not.

Or if it's just "NPC is present in the Desert, so rain schedule does nothing because it's not raining locally in the Desert"

median dune
#

where can I find the audio names?

#

nvm found it on the wiki

brittle ledge
latent mauve
#

@rigid musk ^ with this in consideration, can you try changing MrQi's homeregion to other and see if the rain schedule key works?

nova grove
#

Hi guys, me again! I have this code

private void OnRenderedWorld(object sender, RenderedWorldEventArgs e)
{
    // Render all circles from the list
    if (circlesToDraw.Count > 0)
    {
        var spriteBatch = e.SpriteBatch;

        // Iterate through all circles and render them
        foreach (var center in circlesToDraw)
        {
            float layerDepth = ((center.Y + 0.5f) * Game1.tileSize) / 10000f - 0.00001f;

            spriteBatch.Draw(
                circleTexture,
                Game1.GlobalToLocal(new Vector2(center.X * Game1.tileSize, center.Y * Game1.tileSize)),
                null,
                Color.White,
                0f,
                new Vector2(-2, -2),
                Game1.tileSize / 20f,
                SpriteEffects.None,
                layerDepth
            );
        }
    }
}

That draws a circle on the floor where you click with a chalk tool I've made but it currently draws the circles at the wrong layer depth where the player walks under them

lucid iron
#

need to fiddle with this stuff float layerDepth = ((center.Y + 0.5f) * Game1.tileSize) / 10000f - 0.00001f;

#

it is big pain sadly

nova grove
#

Yeah I thought so, that's what I've been reading but didn't want it to be true 😦

lucid iron
#

u can ref TerrainFeatures/Flooring.cs

nova grove
#

Oh, thank you!

lucid iron
#

another possibiliy is to just make it flooring blobcatgooglyblep

#

limitation is that well u cant put real flooring if u do that

nova grove
#

That should be alright, the only place you'll be using it is outside so I guess it could block paths but it's gonna be in a cave so should be all good

ornate trellis
#

r o t a t e

nova grove
royal stump
# latent mauve Since Lily pointed out that the rain schedule doesn't seem to fire for NPCs that...

The rain schedule checks whether it's raining in the NPC's current location when schedules are updated. HomeRegion is never involved in scheduling and just affects some other logic, like exclusions from town gossip.

I imagine if the NPC's overnight location (their house, warp room, etc) was in the Default context instead of Desert, that might make them recognize weather from it. Just speculating based on the code, though.

(Oh, and the base game only ever checks whether home region is "Town". Desert and Other should be identical unless a C# mod specifically cares about it.)

ornate trellis
#

i dropped my reply

nova grove
ornate trellis
#

i was replying to a comment but i guess discord decided that i dont deserve the reply

nova grove
#

Ohhhhhhhhhh cute, gotta love discord

lucid iron
nova grove
#

omg eat, love me some wind power ❀️❀️❀️

ornate trellis
#

ayo

#

chu

#

i love when youre in the building menu it looks like this

hard fern
#

😭

lucid iron
#

yea i was gonna

royal stump
#

some assembly required

lucid iron
#

do the other 2 transpilers needed lol

hard fern
#

that wind sure turbines

gray bear
#

it got a bit confused

ornate trellis
#

it adds character

lucid iron
#

points to pre-release tag which absolves me of all crimes

gray bear
#

it fucken wimdy

ornate trellis
#

im think we might need to get rid of the building shadow tho it looks rather odd with the stalk being roundish at the bottom

#

btw the wrong stone is used in hte recipe if you hadnt noticed

lucid iron
#

hneg

#

!stone SDVpufferpensive

ocean sailBOT
#

πŸͺ¨ The item ID for Stone is 390.

gray bear
#

some kinda off stone

ornate trellis
#

I feared itd look out of place but i love the turbine already

lucid iron
#

i just debug build <building>

ornate trellis
#

turbine cannot do wrong

uncut viper
#

cant believe chu doesnt test their mods

ornate trellis
lucid iron
gray bear
#

i think that might be a crime-

ornate trellis
#

ffsdf

#

i hadnt even looked at the manifest

lucid iron
#

more seriously, its prob most sensible if u release the mod in the end PecoSmile

#

since the C# stuff is just new framework feature on a existing mod

ornate trellis
#

O:

median dune
#

okay but now something I cannot find: emote Id's

ornate trellis
#

for events?

teal bridge
#

Tiny teaser. I like the way it's turned out so far.

ornate trellis
median dune
#

not quite for events, but yes these exactly

#

thanks

latent mauve
#

meaning you'd need to put their bedroom or what have you in the Default location context somehow

#

(I'm assuming Lily is using a 'rain' schedule because their NPC of MrQi travels to and from the island, but uncertain exactly where they go)

royal stump
#

yeah, their default location or whatever would need to technically have another context (which might also affect rain sounds and such, I guess)

latent mauve
#

I wonder how difficult it would be for someone used to C# land to make a rain_location schedule key that lets you specify Valley or Island. xD

royal stump
#

probably transpiler territory, the TryLoadSchedule rain check is in the middle of various other keys, but it could be done

#

(plus the pressure of taking responsibility for scheduler logic SDVkrobusgiggle)

modest dagger
#

Hey so I don't have to load everything in one json right, like if I wanted to break up my products into their corresponding bases I could do that into separate jsons?

hard fern
#

yes, you can do that using includes in your main content.json i think

royal stump
#

for reference, NPC.TryLoadSchedule() has this bit in the middle

if (base.currentLocation?.IsRainingHere() ?? false)
{
    if (Game1.random.NextBool() && this.TryLoadSchedule("rain2"))
    {
        return true;
    }
    if (this.TryLoadSchedule("rain"))
    {
        return true;
    }
}```
modest dagger
#

Perfect bc my json was getting too long for my liking

lucid iron
#

what if u just rain in the desert

upper rune
#

so i got the flour to work but the keg wants to make oat juice instead of oat beer. How do I override it?

latent mauve
#

I mean, that'd likely be easier, yes, since the issue is that it doesn't rain in the desert as far as the schedule check is concerned. (addressed to chu)

weak pulsar
#

I've noticed anvil/trinket tinkerer's anvil allows for reroll / sprite change respectively--is there any way to have the anvil not reroll, but just directly "level up" a trinket instead?

I would ideally want to make a "rare candy" item that you use at an anvil to level your Pokemon trinket.

lucid iron
#

moveentry, send the rule u added to the top

#

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

weak pulsar
#

I love yall so much thank you CharmanderFire

lucid iron
#

hm

#

i need to make a U mode

#

for +1 level

brittle ledge
latent mauve
#

(honestly, I'd still find a rain_valley key useful because it seems fun to me that a desert NPC might be like "I heard it's raining in the valley, I must experience this phenomenon.")

lucid iron
#

and probably a GSQ to check current level and current variant of a trinket monS

sly lantern
#

Hey guys can someone help me with something? I'm trying to test my greenhouse mod on stardew and I'm using some custom tilesheets like DaisyNiko's. I have the pngs from the tilesheets on my assets folder, but from what I understand you need to remove those before publishing, yet every time I try to remove the pngs the mod won't load in the game. Is there something I'm missing here?

uncut viper
#

(tbh it doesnt seem like a particularly difficult transpiler)

tribal ore
latent mauve
#

I know island visits are hardcoded, but it'd also be fun to have Sebastian visit the island on a rainy day and be like "I wonder if I'll find any tropical frogs"

warm imp
# rigid musk https://smapi.io/json/none/985b55d9a3a1417590ea13ce4207e38a Could someone take ...

are you checking it on a stormy day maybe? you only have "rain" in the conditions, so you need to add "storm" as well, since right now it'll only activate on rainy days without lightning (unless that's on purpose)

i did a similar thing for a spouse npc (since they don't normally have rain schedules), and i had the key when it was raining be "{{season}}_{{day}}"; would that work instead of "spring"?

(sorry if im repeating something somebody else said, i tried to check previous messages but theres a lot)

brittle ledge
warm imp
#

wait. idt "weather: valley" works in the "when" condition anyways

uncut viper
#

it does

warm imp
#

i swear when i was trying it, it never worked, but maybe my syntax was wrong

latent mauve
#

It'd be something like "When": { "weather:valley":"rain"} right?

uncut viper
#

depending on what you were doing with it, it mightve just not been applied at t he time you thought it would be, due to the order in which things update

#

correct

#

well put quotes around rain

#

but otherwise yes

#

yeah you got it SDVpuffersquee

latent mauve
#

yeah, sorry, I defaulted to true/false in my code and had to rewrite it to rain and forgot quotes, LOL

upper rune
#

i am quite stuck i don't see anything that hints at an override in the cornucopia code

latent mauve
#

Too used to HasMod and HasFlag, ha

uncut viper
#

(for the C# people who know schedules better than me, would it be a significantly infeasible task to just patch TryLoadSchedule to let people load custom keys based on like, a GSQ)

sly lantern
#

The manifest is looking like this:
{
"Name": "Genrebear's Nicer Greenhouse",
"Author": "genrebear",
"Version": "1.0.0",
"Description": "A nicer version of the vanilla greenhouse.",
"UniqueID": "genrebear.GenrebearsNicerGreenhouse",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
},
"Dependencies": [
{
"UniqueID": "PinkStations.Tilesheets",
"IsRequired": true
},
{
"UniqueID": "DaisyNiko.Tilesheets",
"IsRequired": true
},
{
"UniqueID": "hxw.tilesheets",
"IsRequired": true
}
]
}

brittle ledge
#

SDVpufferthinkblob Are the other two showing up okay? It's just DaisyNiko's that's not?

sly lantern
#

None of them are working as far as I can tell

#

I'll try adding one at a time to see if the problem is a single one

brittle ledge
#

You didn't change the names of the tilesheets when you added them, right?

gentle rose
brittle ledge
#

I assume it also works if you do have the .pngs in your folder, yeah?

brittle ledge
gentle rose
uncut viper
sly lantern
uncut viper
#

shouldnt be any reason to lock a schedule patch behind a When condition either, since any tokens you might need can be used in a GSQ Condition too

#

tho ig if they need to update

gentle rose
uncut viper
#

i guess you'd just have to know you might be a day behind

#

and try to do what you need with just GSQs

sly lantern
royal stump
uncut viper
#

the tokens would work if the value never changed though, right?

royal stump
#

I got island schedules to work consistently by skipping them during _newDayAfterFade, then calling them at DayStarted after CP was updated

#

if they don't vary between days, yeah, but most of them do

sly lantern
#

The asset folder without the modded tilesheet pngs looks like this

uncut viper
#

most tokens can also be replaced with a GSQ, too

gentle rose
#

when you create a tileset, iirc you should be choosing the β€œembed in map” option rather than creating .tsx files (somebody else please correct if wrong)

royal stump
#

the main thing is that when players sleep overnight, the tokens won't update until after that method, but when they load a save, CP will have the new day info

gentle rose
uncut viper
#

i dont know all the tokens off the top of my head (what a bad modder i am, right), are there any that a) do change constantly and b) dont have an equivalent GSQ?

royal stump
#

I'm not sure if any GSQ info would be inaccurate if called overnight, or if it'd conflict with the results of calling it right before DayStarted on a load, though

gentle rose
sly lantern
#

I'll try remaking the tilesets and report back

uncut viper
#

well. how would the existing schedule keys have the right info if it didnt happen on the right day

sly lantern
#

Tysm

uncut viper
#

like if you have a schedule key for spring_2 or whatever. it has to already be spring 2 for it to accurately know that

gentle rose
uncut viper
#

same with rain

royal stump
#

things like that would probably be consistent, yeah, it's just possible that some GSQs check certain information that hasn't been updated by schedule time
(I don't know that any have that issue, though)

uncut viper
#

is there any harm in just calling TryLoadSchedule again at the end of _newDayAfterFade?

royal stump
#

I'm not sure if that'd have any side effects or not, personally, I haven't gone over the whole logic for it

uncut viper
#

im just lookin thru it atm to see what comes after the schedules out of curiosity

royal stump
#

the island scheduler already basically overwrites the schedule and is separate from dayUpdate, so it's a bit more limited

uncut viper
#

passive festivals seem like theyd be out of date

#

true, but it happens like, immediately after the dayupdate call

#

like, the next line

royal stump
#

overall, I think the main thing is that you'd want to warn people to avoid CP tokens in your asset and just rely on GSQs
(or cache the thing somehow to prevent inconsistent values)

uncut viper
#

passive festivals, mail removed automatically overnight, items removed overnight, lost and found mail, perfection completion, and overnight farm events
those are the major things i see happenin after the schedules are loaded

#

the first two being p;otentially pretty significant

#

(idk what "items removed overnight" entails, i dont know items it applies to?)

royal stump
#

yeah, updating the schedule in the way that IslandSouth does doesn't seem to have side effects fwiw, but some of that other stuff might resent being delayed or multi-called

uncut viper
#

(oh qi fruit i guess)

#

anything that happens in the players currentlocation resetForPlayerEntry also happens after the scheudles

#

maybe ill fuck around with it just for fun

brittle ledge
royal stump
#

poking around a bit, I don't see any obvious issues with re-calling TryLoadSchedule() after DayStarted, and the game does it indirectly in a couple niche cases

uncut viper
royal stump
#

and/or the specific key overload, though you'd need to avoid overwriting island visits and all that

sly lantern
uncut viper
#

i was probably just gonna call the island schedule loader again too lol

#

i looked in there and I don't like it

royal stump
#

SDVkrobusgiggle I guess that's safe too

uncut viper
#

difficult part would be trying to insert key checks at the right points among the vanilla keys

royal stump
#

the no-args loader basically just seems like series of conditional loads to begin with, so transpiling custom stuff in there somewhere would be the ideal, but not required

uncut viper
#

i didn't wanna potentially break anyone else that might transpile in there already for their custom checks

#

and prefixing something as important as it feels sinful

royal stump
#

also I think re-calling the island scheduler might be redundant, because it saves to a different spot that's checked by this? it's been years since I parsed out the island visits, though

if (!string.IsNullOrWhiteSpace(this.islandScheduleName.Value))
{
    this.TryLoadSchedule(this.islandScheduleName.Value, this.Schedule);
    return true;
}```
uncut viper
#

oh that would make things easier

royal stump
#

apparently y1 green rain is the only thing that overrides the island visit

uncut viper
#

can you even get to the island by that point?

royal stump
#

probably not, but I forget the conditions for it

uncut viper
#

i though it was cc completion

royal stump
#

requires CC completion and then a payment, yeah, so only debug/etc would really trigger that

uncut viper
#

i guess it leaves room for mods

royal stump
#

it's just technically above the "if island visit, load that schedule instead" bit

latent mauve
#

Could you theoretically get Joja route CC completion by y1 green rain?

uncut viper
#

are there time gates in the joja route at all? I've never done it

latent mauve
#

I don't believe it is time gated

uncut viper
#

hm. then yeah I suppose you could

royal stump
#

it's rare enough that I could see it being buggy, but yeah, I never ran into issues with Exclusions overwriting schedules after DayStarted
(and it still does that even in 1.6, since there wasn't a safe way to convert old mods to GSQs there)

#

so undoing an island visit probably wouldn't break anything either

devout folio
#

Hey folks! I come, once again, in need of help SDVpufferwaaah
I'm working on adding some extra crossover content between my mod and SVE and one of the ideas I had was for some characters to hang out together.

So here's the problem. Two of those characters are Sam and Shane. Here's how their new schedules look:

For Sam:

"winter_7": "610 SamHouse 15 13 0/830 Town 19 91 1/910 BathHouse_Pool 15 5 1/1410 BathHouse_Pool 4 7 2 2/1620 BathHouse_Entry 6 5 3/1750 SamHouse 22 13 1 sam_sleep"

And for Shane:

"winter_{{Meet_up.Day}}": "630 AnimalShop 24 5 0/800 Town 20 92 0/910 BathHouse_Pool 18 5 3/1410 BathHouse_Pool 9 10 3/1620 BathHouse_Entry 4 5 1/1810 AnimalShop 27 4 1 shane_sleep"

Everything works mostly fine for the both of them. They visit the spa, they walk around, and they leave at the right time, but Sam heads up to the train station and TPs to Grampleton Fields while Shane goes home normally.
I don't understand why Sam's schedule is not working? At first I thought maybe he wouldn't have time to go home but Shane does, so why doesn't he?

No error messages pop up in the smapi log. I tried running it without Grampletonfields as well and Sam still heads up to the train station and disappears. I don't have the train station mod installed.

If anyone could give me some light, I'd really appreciate it!SDVpuffersob

uncut viper
#

this is all very good information, thank you SDVpuffersmile

fervent horizon
hard fern
#

? is that not how they are supposed to be

fervent horizon
#

only acceptabe layout

hard fern
#

ehhh

hard fern
fervent horizon
#

Yeah, they are

#

which is he default Steam Layout as well

#

Honestly that was the biggest issue switching from playing on Switch to playing on PC

hard fern
#

see i was the opposite, im too used to xbox buttons to manage using switch properly

fervent horizon
#

Ended up buy an 8Bitdo and just set it's buttons to copy the Switch layout

brittle ledge
fervent horizon
#

You leave your cats out all night?

#

I'm sure Linus rounds them up and takes them home once they pass out

finite sequoia
#

Did something change with how the game handles tiles that were reversed in Tiled? I'm doing some minor bug fixes and found this

brittle ledge
#

they are unconstrained by human sleep schedules SDVkrobusgiggle

latent mauve
#

Gotta save as tmx

finite sequoia
#

Yeah, they're saved as tmx... 🧐

latent mauve
#

Then I wonder if you have a mod changing the base tilesheet?

finite sequoia
#

I don't mind fixing it, I just hope it hasnt been this way for long and people just assumed the duck pond looked like that LOL

hard fern
#

ive seen weird tile toation happening on-and off for people

#

its strange

brittle ledge
#

Jakk, try sending Sam somewhere else instead of his home (also is it actually called SamHouse? I don't recall if that's one of the weird ones)

finite sequoia
#

I havent done any real upkeep of my mods in a month or so, I suppose things always naturally break as things update

finite sequoia
devout folio
brittle ledge
#

If he goes to the location after but not home (to the same destination) then you know that's the problem kyuuchan_nod2

teal bridge
latent mauve
#

I wonder, does the bed location work?

#

I have only ever tried using bed in marriage schedules

lucid iron
latent mauve
#

I can confirm that SamHouse is the correct location name, though

lucid iron
#

Idm the βšͺ and it's good that i can put in hex color, so it is just matter of aesthetics

royal stump
dire gust
#

Are there any free-to-use NPC sprite/portrait assets for modders? Even templates or placeholders.

rough lintel
finite sequoia
#

Oh, it's always that simple, isn't it? πŸ˜…

dire gust
calm nebula
#

Yeah

finite sequoia
#

Thank you! Yeah, fixed some other nonsense too

latent mauve
rough lintel
#

^

dire gust
#

Yeah, I could. I wasn't asking because I hadn't considered the obvious β€” just wondering if there were better alternatives available!

latent mauve
#

Some general RPG asset sites might have basic walking sprites as a base, but on the whole, the animations you need can be pretty different from character to character, so there isn't a single template (outside of colored rectangles to label the SpriteIndexes)

#

And it's kind of a tricky thing to get around with using bases, because credit is often needed depending on how the art is licensed.

dire gust
#

OK, thanks for the insight. I was just wondering if anyone had specific info. No worries if you don't.

latent mauve
#

And unfortunately some people will try to use the bases without attribution and the SDV community is (rightfully so, imo) very hard on 'stolen' or unattributed assets.

finite sequoia
#

If you wanna use any of the sprites/portraits from my mods Coal Point Farm or A Pelican Town as a base, go ahead; although I agree w everyone else. using vanilla sprites/portraits as ur base would be the best option since you don't need to worry about credit

dire gust
finite sequoia
#

Yeah, it's no problem!! Art was definitely difficult for me in the begining, and so many eager modders seem to drop out by needing to learn

#

As long as it's not just recolors go crazy LOL

dire gust
#

Thanks again. If it were just static images/portraits I think I could handle it myself but the thought of creating all those animations was stressing me out!

finite sequoia
#

At the end of the day, listening to people in #making-mods-art over and over is gonna make it better

#

(it's pretty much how I learned!)

dire gust
#

Your mods look cute! I'm glad there are some dark-skinned sprites to work from in there too. If I ever get my ideas off the ground, and if I use yours as a base, I'll run it by you to make sure you think it's different enough. :)

lusty elm
#

one of the key tricks i was taught is base stardew has a weird thing that when it changes intensity in a color it also actually slowly moves on the color wheel too

dire gust
#

Interesting β€” that seems right, thinking about how a lot of the NPCs seem to have red, blue or green shadows.

winter dust
#

I'm getting this error StardewModdingAPI.Framework.Exceptions.SContentLoadException: (CP) Walk to the Desert Redux loaded map 'assets/maps/Cave.tmx' with invalid tilesheet path 'mine_desert'. The tilesheet couldn't be found relative to either the map file or the game's content folder. and it doesn't make sense to me.

#

The game has a mine_desert texture spritesheet, but for some reason when it tries to "find" one it can't?

#

Did CA rename it?

lusty elm
#

the mines tilesheets are in a subfolder of maps, the game only default looks in maps

latent mauve
#

Mine maps are located in a Mines folder, they're not in the base Maps folder

lusty elm
#

so the mines are an exception

winter dust
#

so do I have to do Maps/Mines/mine_desert?

#

Or do I just load the texture myself.

lucid iron
#

Mines/mine_desert

lusty elm
#

I usually just load it myself, or shove it in the mod itself as a relative to sheet, but thats the old school fix, i dont know if there is a new one.

lucid iron
#
 <tileset firstgid="1" name="cave" tilewidth="16" tileheight="16" tilecount="320" columns="16">
  <image source="Mines/mine_lava.png" width="256" height="320"/>
 </tileset>
#

if u edit ur map in the unpacked Maps folder to begin with then it should already be set correctly

lusty elm
#

o shit, that works now? cool

lucid iron
latent mauve
#

I was just about to link that, LOL

royal stump
#

Tiled saves the path to whatever sheets you use, so if you save/exit when they're in the right folder at first, you can adjust it by just editing the text
(or in this case, it probably said source="mine_desert.png", so you can fix that)

lucid iron
#

there is this mod for accessing not Maps/* but u dont need that for Maps/Mines

#

(personally i feel like smapi should just let ppl do it blobcatgooglyblep )

winter dust
#

dear god, I've made a monstrosity, these roads, are angular!!!

lucid iron
#

the drivers r very skilled

lusty elm
#

Stardew Cars are pac-man cars, they only move in cardinal directions.

winter dust
#

Well, other mods just do roads like this, so if someone wants this (for whatever reason) they can enable it.

lucid iron
#

its your mod and your aesthetic DokkanStare

#

i do think the middle horizontal road feels narrower for some reason

winter dust
#

They are.

#

Vertical is five wide, horizontal is three wide.

#

Not sure why Tarniyar did it that way, but I think it was for perspective.

lucid iron
#

i guess so, it is hard to reasonabout perspective with sdv