#making-mods-general

1 messages · Page 298 of 1

fierce vault
#

Hi again. I can not erase some tiles on a layer for an unknown reason. I've closed the app, closed the individual tmx, and made certain that I am on the layer I want to erase... and when I hide the layer, it disappears like normal, so I really am not sure what to do... Any ideas?

brittle pasture
#

technically not a vanilla bug since no item in vanilla is colored that

#

should I report it though, the number of people so far who use Cornucopia Mint to dye their stuff green at Emily is probably 0

lucid iron
#

Extra Dye Config

#

I'm glad i can just respond to anything selph says with Extra Thing Config instead of being actually clever Dokkan

brittle pasture
#

@ivory plume very minor bug but color_sea_green is not in the list of valid colors for green in DyeMenu.validPotColors

fierce vault
#

Oh! I figured it out... I locked every layer on accident it seems. Does anyone know what command does this? And is there a way to mass unlock layers as well?

ivory plume
drowsy pewter
tiny zealot
#

@ivory plume I'm not sure where this falls exactly (nvorbis, smapi, monogame, secret fourth thing) but a very short .ogg file (e.g. a sound effect) played with StreamedVorbis set to true can unrecoverably freeze the game

ivory plume
#

The low-level audio code isn't really my domain. Can you report it in the official forums and attach a minimal repro content pack? (The "non-modded" section applies even if it affects mods in this case, since it's an issue with the base game code.)

tiny zealot
#

i'll see what i can do. thanks!

fierce vault
#

Is there a way to make a tile only passable for npcs and not the player?

tiny zealot
#

unsure about tiles, but there is definitely an npc-only warp available

fierce vault
#

I'm am unsure as to whether it would be better to put a somewhat obvious but nice looking physical barrier to stop players from going into a location that doesn't really exist or if I should just make it a normal exit, and then disappoint people who try to use it for the first time....

It would be for fake npcs who may come through.

lucid iron
#

that sounds like a job for npcwarp

fierce vault
#

My question is sort of about map design too now. Which option do you think might work better?

lucid iron
#

i dont see how i can answer this without actually looking at your map

#

do what vibes?

fierce vault
#

I can show you if you like

#

It is obviously unfinished. There will be a small beaten path eventually

#

This is the 'barrier' lol

lucid iron
#

but you never want the player to go inside?

tiny zealot
#

speaking for myself, i will accept almost anything as a barrier blocking off an area as long as it's visible. if it's silly and wouldn't actually stop someone from passing, i'll make fun of it but That's Video Games™️ and it's fine

fierce vault
lucid iron
#

ig what i'd do is cover the edges with foilage too

#

so that it look less inviting

#

the fences r nice i like those

fierce vault
#

Hmm... I guess the npcs could still get through that. I like the potential it looks like it has though, lol, but ig that is apart of the problem...

lucid iron
#

well if u come back here just update it

fierce vault
#

Yes, I would definitely do that. IF I can ever find it in myself to make an expansion

#

You know, working on the exterior, at least so far, has been a lot less painful than the interior I still haven't finished. I think that's because I understand tiled better, and am not so caught up in making a ton of custom furniture assets and other things. At least not yet

lucid iron
#

u can always start with some existing tilesheet and then decide if u want ur own later

#

hxw has a lot of furniture

fierce vault
#

I have been using vanilla as a base of course, so it's not nearly as much work as making completely original stuff

#

You know what? I just noticed something. My tiled app is a little overly saturated even though in the screenshot it is toned down. Vanilla is also less saturated as well. I wonder why that is.

lucid iron
#

thats cus of lighting

#

if u dont wanna have dep on other ppl's tilesheets for some reason u can load the vanilla furniture sheets into Maps as placeholder too

fierce vault
#

Mhm, I've been doing some of that

half tangle
#

Took me a bit, but I found it.

if (Game1.player.position.Y / 64f >= (float)(Game1.currentLocation.map.Layers[0].LayerHeight - 2))
{
    Game1.player.position.X -= 48f;
}

This is called in Game1.onFadeToBlackComplete if the location is the Farm and there is no event happening~~ and the farmer is not a farmhand~~. Honestly, this feels like a bug, but I have to imagine there is some reason for it. But for example, on the standard farm if you use debug warp farm 40 64, instead of placing you on the completely normal walkable tile at (40, 64) it places you 48 pixels to the left inside a wall.

lucid mulch
half tangle
#

(and this isn't even related to another "move the place 1 tile left" case that happens earlier in the code if the player is on the right side (but not off of) a map)

lucid iron
#

mr ape leaving homework for you

half tangle
#

at this point I understand player positioning and player warping too well

lucid mulch
#

its weird that only farm has logic to nudge people back in the map slightly

#

also that would affect farmhands too, as farm is an active location

half tangle
#

Oh, I also misread the code... the isClient check isn't part of this logic... the rest is accurate, though

#

At this point I simply work around things like this... and the tileX-- if the player is on the right side of a map... and the mismatched boattunnel warps... and a handful of others I can't think of offhand

#

None of this affects normal game play, just my navigator mod's ability to keep track of things

brave fable
lucid mulch
#

ContentPatcher doesn't even have harmony references

odd ginkgo
#

okay so hear me out

#

a cutscene where the NPC is just singing Talking Heads lyrics

#

standing in the BackWoods, staring down at the road, saying "where does this highway go to?"

#

looking at Robin's house, "what is this beautiful house?"

#

I'm cracking here

vernal crest
#

NPCPassable tile property allows NPCs to pass through building tiles (have already told Parcy this, now just throwing it to the server in general as FYI)

odd ginkgo
#

okay different question, is there any kind of list of animals that can be added to events through addTemporaryActor?

brittle pasture
#

anything in the Animals folder probably

#

according to the wiki

#

hmm, it seems mods have to specifically load their animal sprites there for them to be usable in events (which should be the case most of the time, since the texture defaults to loading from there)

odd ginkgo
#

interesting, ty

inner harbor
#

you can use farm animals or anything loaded into the animals/ folder

#

I do it for the goats

odd ginkgo
#

I see, and any Characters in the characters folder... that's very useful for adding in an NPC too without having to load them in at the beginning of the event

#

I swear, making complex events forces you to level up your understanding of the game

pseudo wraith
#

Hello, sorry to interrupt but does anyone know if there is any api i can use to modify the Game1.parseText() function? I'd like to apply zh textwrapping rules to en language code, as I'm trying to make chinese dialogue show up correctly in an english game

brave fable
sleek igloo
#

same! I'm magikarping through this updated mod stuff though

#

more questions incoming oTL

#

So I noticed that in a custom added fence, even if you include the new gate sprite, the gate will still look vanilla in game

brittle pasture
#

what's your spritesheet look like

sleek igloo
#

I was modifying this one for personal use (from the seasonal hedge fence mod)

brittle pasture
#

ah wait, I think I know what's happening

#

did you put the gate into an empty slot between two fences

#

that'd make the vanilla gate. to get your fancy modded gate you have to put it on top of a placed fence

sleek igloo
#

ah, weird

#

thanks though!

brittle pasture
#

that's just how the game works™️

sleek igloo
#

if I wanted to just

#

replace the vanilla gate

#

would I have to change it in all the fence sheets? SDVpufferthink

brittle pasture
#

probably just where the default gate sprite is being used, if you want your gate-into-empty-spot to look different and want to keep the other fence-specific gates

sleek igloo
#

where in the world would the default gate sprite even be dfhciwehf

#

I know the icon is in spring objects

#

i thought the gate was just defined per fence

brittle pasture
sleek igloo
#

ah ok, neat, thanks a bunch SDVpufferheart

trim sand
#

Hey Selph, I had a question for you.
How did you make ostriches fit through the coop door?
Was wondering if it was something simple so I could apply it to the pokemon ranch animals which sometimes have issues getting stuck inside structure doors.

brittle pasture
#

C# code that teleports animals bigger than the door outside 🙃

#

are those animals' dimensions larger than the door? if so then adding my mod as a dependency should fix it

#

give it a try let me know if it works

trim sand
#

I don't know exactly. the primary culprit is the least visually significant of them all things considered

#

But all of them sometimes have issues. Usually when they can path behind the building "easily" had been the pattern I noticed

brittle pasture
#

I wonder if it's unrelated and due to the building's dimensions

trim sand
#

Putting fences on the closer side of the building mostly fixes the issue

brittle pasture
#

if the animals are already smaller/the same size as the door my mod would leave them untouched

trim sand
#

Oh possibly. Though I know the most recent update went out of its way to enlarge the doors due to the getting stuck problem

#

Which seemed like a questionable solution to me. Might just see what happens if I set the buildings back to matching the normal structures door dimensions.

#

Ultimately now that I'm out of the "converting to a separate content pack" phase of the process I figured I might as well tackle one of the more consistently reported bugd

wild viper
#

when I get the mod to load the house I notice the npc isnt in the social menu and when I try to go into the house it kicks me back out

odd ginkgo
#

sounds like two separate issues - one with the NPC and one with the house

#

question, in Tiled or your map program, do you have the Warp in x,y at the same coordinates as your Warp out x,y? Because you'll want to move one up a tile so you're not constantly triggering the Warp

trim sand
brittle pasture
#

very strange

#

what is its texture size in the data?

#

maybe it's a nonstandard value instead of multiples of 16

#

wild guess on my part though

trim sand
#

whats interesting, is the eevee family has no issue and those are some combination of 36x36 (potenially 36x47 but those alt sprites have other issues)

brittle pasture
#

I peered into the animal bounding box and door positional code some time ago (it was horrifying)

#

Not 100% sure (25% at best maybe) but I wouldn't be surprised if the game doesn't handle those nonstandard sizes properly

#

okay, reread it a little, what I think is happening here is that when the game warps an animal from inside the animal house to outside, if its pixel size is larger than 16 it shifts the animal left by 32px

#

because that animal is only 25px wide, that shift would shift it too far, causing it to phase into the wall and get stuck

trim sand
#

i figured it was something like that. just leaves figuring a solution... that ideally doesn't entail having to edit the spritesheet

brittle pasture
#

(it involves editing the spritesheet, sorry SDVpufferwaaah )

trim sand
brittle pasture
#

I could add a special case handling for this in Animal Squeeze Through, but I still recommend enlargening it to 32px

#

gods know what else can happen

trim sand
#

true.

brittle pasture
#

since it doesn't seem like Pokemon Ranch has any other oversized animal issue, they're all smaller than the door

#

you should also raise it with the author maybe

#

(do confirm that's the cause and enlargening it to 32px first, in case I was actually wrong)

trim sand
#

i was just generally trying to avoid shipping/dealing with assets for the project. and frankly making the one problematic mon just work in the patch project manually and rely on squeeze through to ensure any oversized coop animals still fit after droping its door back to normal size. is better than the animal being broke in the patch project

vernal crest
#

plaidbees is in here so it might be worth pinging them after confirming Selph's diagnosis and treatment

trim sand
#

im just gonna set the sprite dims expecting a visual attrocity to see if it fixes the issue

#

going to look wrong but function ideally if selph is right

vernal crest
#

I haven't tried contacting them for ages but last time I did they were receptive of the fix I offered for their GSQ issue (not sure if they implemented it, since I don't use the mod myself)

brittle pasture
#

it's late here so I'll go to sleep now, feel free to ping my username with 1. the confirmation, and 2. whether you really need that Squeeze Through handling. I can read it later

vernal crest
#

Night Selph!

trim sand
#

sleep well Selph.

#

admittadly i haven't really figured out a good way to test animal related things. i have a testing save but there's no 'fast' way to test animal things the way you can with items

vernal crest
#

debug setupfarm spawns a coop and a barn, while debug setupbigfarm spawns 3 deluxe coops and 2 deluxe barns with chickens and cows, but I don't know if Pokemon Ranch has its own farm buildings.

#

But there's always the build command which would work with a custom building I imagine. And animal which should work to spawn the Pokemon.

#

Plus growanimals to make them adults

trim sand
#

oh
thats all good to know. and notably yes it does have its own separate buildings. which actually might not be required if i fix the stuck issue.

#

since it was my understanding the buildings are mostly separate due to issues with that. but ive set the doors to match the normal buildings and so far only seen one major issue

vernal crest
trim sand
#

need to test the coop for certainty tho. admittadly if there is issues with oversized animals squeeze through would be fixing them currently

trim sand
#

@brittle pasture
some testing later, confirmed that the majority of the pokemon coop animals can't fit out the door normally, though Squeeze through fixes them.
then exactly two animals seem to be having the same problem, unown and lechonk (shown previously), notably unowns sprites are 24x24 and lechonk is 25x25, importantly Sunkern whos sprites are 29x29 has no issue exiting the coop without squeeze through's help, and seems to be the third smallest of the sprites. 28x28 appears to be the minimum sprite size that can still exit the door as far as values between 16 and 32, and assumedly theres probally a range closer to 16 that still works but that didn't seem worth looking into. upper bound of working jank sizes found.
additionally setting lechonk to be 32x32 in its sprite dimensions allowed them to exit the door.
importantly this is with setting the doors back to normal barn/coop size rather than the wider/taller doors bees added to them to try and fix the problem.
if nothing else. i think im gonna call it a night here. its way too late to continue working.

pine elbow
#

over 2 lines, i DONT read

drowsy pewter
#

change panning loot table--I need IE right?

#

Im trying to think of some methods for obtaining an item from the water that dont involve adding another dependency just for this. So far I can only think of adding it to the actual fish table (does it have to be a fish tho?)

#

I have spacecore as well as a dependency already so that's being used to spawn some forageables/breakables

#

could be a hidden fishing feature way down in the documentation somewhere lol

lucid mulch
#

doesn't need to be fish to be in the data/locations fish table

#

does need to be a fish to have the fishing minigame actually occur

drowsy pewter
#

Ahhhh

#

That's helpful

hallow prism
#

Yeah i have some treasures in vmv water

#

Panning and actual treasure chest would need ie

#

But it can be easily added by optional dependency

drowsy pewter
#

Ah i could add the item to the crab pot loot table as well

#

and honestly way more players use the crab pot than the pan hahaha

timber plover
#

quick question ...if this code makes something load when the mod is there ..how i make it not load when the mod is there?

ornate trellis
#

p sure it was adding a false there somewhere

lucid mulch
#

"HasMod |contains=UniqueId": false

ornate trellis
#

yeah that, forgot the exact format

timber plover
#

ah ok Ö-Ö...thank you

#

❤️

lucid mulch
#

|contains is in many ways the exact same behaviour as the original behaviour, but it moves the evaluation to entirely be in the key and so the new set of values is true/false, letting you check if its false

#

other behaviour is because its entirely in the key now, it will be distinct with other conditions in the same when block checking the same token

timber plover
#

@-@ oh damn yeah i kinda get it ..
i just didn know how i would write that since github had only the example of ->"hasfile:id here":true

#

i more artist then a coder 😄 oh joy

lucid mulch
#

in general to get the cleanest conditions, CP wants you to have a patch without the condition, and the second one with the positive condition to selectively override/tweak, even if performance wise (and sanity wise) it may be easier to have the mutually exclusive patches

timber plover
#

^^ i see ..well thank you for explaining and all

opaque field
#

Question: I have almost no experience coding or anything like that but I was super inspired by the Sam After Dark series and was wondering about tutorials or tips with making dialogue content packs.? I’ve spent two days staring at the modding wiki and my head hurts.

ornate trellis
#
Stardew Modding Wiki

Adding new dialog is easy with Content Patcher! This tutorial aims to walk you through the entire creation process of adding new dialogue for an existing NPC (Mayor Lewis). The general principles also apply for other dialogue mods, but you will need to think about your target file(s) depending on what kind of additions/changes you want to make.
...

opaque field
#

Omg thank you! I wonder how I didn’t find that before haha

drowsy pewter
#

i am going to write 12 different trigger actions to check for the presence of a specific item in the player's inventory on every location change, and if it causes performance issues then I will fix it later 😌

#

I must have been scarred by the pre-1.6 CP seasonal outfit checks because I dont actually know if this is detrimental or not

lucid iron
#

What is the goal here monS

brave fable
#

performance issues, apparently

drowsy pewter
#

Lmao

lucid iron
#

I don't think having LocationChanged trigger is that bad, even 12 of them

drowsy pewter
#

I have 12 different quest items and they should only be obtained one time each; I need to know when the player obtains the item so that I remove the chance for it to spawn.

I can also check for when the player uses the item more easily, but they could go weeks without using it

#

its not super necessary to remove the chance but it would be better for the player if they dont end up with duplicates of the same item

lucid iron
#

Hm what if i just get the item and then toss it in some other inventory b4 leaving the map tho

drowsy pewter
#

yup

#

but you have to fetch the item at some point so its the best i can think of

#

getting a duplicate is not the end of the world but it would be confusing

lucid iron
#

The other way i can think of is secret note framework

drowsy pewter
#

adding a framework for this part of the mod would be complicated for reasons unnecessary to get into

lucid iron
#

The notes r innately unique, and u can run an action on read to give item

drowsy pewter
#

But seriously, if you do think it would be any detriment to performance, I wont do the checks'

lucid iron
#

Well it would increase the time between maps but it's hidden behind the void

drowsy pewter
#

Each quest item is a pretty rare drop so the chance of someone getting two in a row is already low

lucid iron
#

People won't notice that much tbh

#

But i just feel eh about doing something that isn't 100% reliable

#

Vs just making the items somewhat valuable so ppl can feel good about getting dupes (kinda like vanilla treasure chests)

drowsy pewter
#

no it would be really confusing haha because all 12 of the quest items have the exact same name and description

#

Maybe I'll have the person that you turn the quest item to give you a consolation reward and remove the duplicate from your inventory if that happens ?

lucid mulch
#

tbh I'm one of the main performance advocates and I haven't even bothered looking into trigger actions or GSQ optimisations

north palm
#

hello it's me again hehe

i want to divide my code for festival.json in their own respetive files... is there a way to do that?

lucid mulch
#

define festival.json?

north palm
#

so like there's one festival json then i divided the codes into each festival

lucid mulch
#

and what is in your content.json?

lucid iron
#

What is this syntax

north palm
lucid iron
#

Includes are a kind of Action

north palm
lucid mulch
#

because if you successfully got from content.json to festivals.json then you can just do that, but more..

north palm
#

i havent tested my code yet worry_hide

lucid iron
#

Yeah u have correct examples of Include here

#

"Action": "Include"

#

Remember that include fromfiles are relative to the folder where content.json is

north palm
#

oh okiee. so for festival json i should do

{
"Logname": "egg festival!",
"Action": "Include",
"FromFile": "festival-data/egg-festival.json"
}
?

#

my folder structure is like this

lucid iron
#

Looks like the path is actually data/festival-data/*.json

north palm
#

even if the include code for eggfestival is is at festivals. json?

lucid mulch
#

all paths are relative to the manifest.json/content.json directory

pine elbow
#

someone just lmk that someone I gave perms to is using my work in a "bimbo-ify" mod for the SDV female characters and essentially undresses them, but I feel conflicted seeing as when they originally asked me for permission, they never really disclosed what the content was going to beSDVpetcatsad

"I adore the hair mod you made for Maru, and I'm currently working on a mod that involves the bachelorette's looks changing the more you get to know them"
this was all they ever said regarding what the mod was going to be, and I'm not sure if I should ask them to take my work out considering I already gave them perms

drowsy pewter
#

Damn

#

I dont think its your fault for not asking what the mod was about and I personally think you are within your rights to revoke permission if you wish to. After all respecting permissions is about an ongoing relationship with an artist, not some one-time transaction to obtain the right to use their work forever

north palm
#

thank you.. i made the changes to my file zcatto_heart

drowsy pewter
#

It does read to me from the wording of the message that they purposefully obfuscated what their mod was for

north palm
mellow knot
#

@ivory plume hi! i hope it's ok to ping, but I wanted to ask if it would be possible to add a targetable entry to Data/Objects (or Data/CookingRecipes if that is more accurate im not sure) in CP that lets us choose if the object needs to be cooked for perfection requirements, similar to how we currently have "ExcludeFromShippingCollection" ? no worries if not but it would be super helpful if doable

hard fern
#

ooh

mellow knot
#

6480 how did i know youd agree with me heheh

brave fable
#

currently all you need to do is avoid the Cooking category for your items

#

it won't display as Cooking though, of course

hard fern
#

so you could have a cake in the "forage" category and it would work?

gray bear
#

didn't roku make a framework for this

mellow knot
#

yeah which is sort of the point though like i want to add cooking recipes

gray bear
mellow knot
#

but i offer shipping as a toggle for artisan items

pine elbow
drowsy pewter
mellow knot
#

so id like to offer it for cooking too

mellow knot
hard fern
#

when will you make it up to 6480 recipes in the wip folder

brave fable
drowsy pewter
hard fern
#

XD

drowsy pewter
hard fern
#

id want to make cooking recipes but unfortunately i am Bad at spriting food

lucid mulch
drowsy pewter
brave fable
#

remove someone else's entry from data/cookingrecipes when u cook ur excluded recipe ✅

lucid mulch
#

Data modelling CookingRecipes would allow for easily adding the ExcludeFromPerfection flag, but I'm not sure if that kind of change is in scope for the 1.6.16

#

piling more crap into the string delimitted value doesn't sound fun

drowsy pewter
#

Oh god id have to rewrite 600 recipes

mellow knot
#

ooo but a datamodel (dreams)

brave fable
#

honestly i'd like to see it become a model in future too, but without any changes like this in mind i wouldn't have thought it'd do much other than improve readability

lucid mulch
#

if vanilla did data model it, CP would have a rewriter for it for legacy packs which would let you patch export to get your new form

drowsy pewter
#

true

brave fable
#

yep, i'm fairly sure old formats of CP will still be rewritten for NPCDispositions patches for Data/Characters

lucid mulch
#

which it does already if you are a legacy pack still trying to play with dispositions or the fun case of old data/locations where the assets same name but very different structure

mellow knot
#

the perfection requirement is the main reason i have avoided them currently just because of the sheer volume of stuff i add to the game atm

#

so yeah obvi no worries if not in scope but

#

would be SUPER COOL if in scope hehe

lucid mulch
#

was a strong advocate for data model all the things so we can throw random crap in it easier

#

new Data/Objects over the old Data/ObjectInformation is night and day, along with Characters vs NPCDispositions

mellow knot
lucid mulch
#

the way CP does the runtime migration is kinda fun, it takes the new asset and transforms it into the old world, lets CP run on the old data model, and then takes it and puts it back in the new model again

midnight sand
#

Questions:
In C#, is possible to add a fadeIn to a IClickableMenu?
And how do I mute background music while playing a sound effect?

lucid mulch
#

iirc my original prototypes didn't do the back and forth and I transformed the editdata itself to behave on the new structure, but had more edge cases.
the full downgrade and upgrade is more reliable albeit with more of a performance penalty

calm nebula
#

Look at how dialoguemenu does kt

#

Also @drowsy pewter I backread and it is my opinion that if you are a content pack, trigger actions and gsq performance is not your problem

#

I don't think you can cause issues with vanilla quries/actions anyways tbh

drowsy pewter
#

hmm

calm nebula
#

And if a mod let's you we'll go after their blood

#

(Kidding)

mellow knot
#

oh really - i got the impression reading the docs on gsqs that if you can you should use a when condition over a gsq because of the caching (i think?)

#

not that i dont use GSQs but i did always wonder about performance

drowsy pewter
#

i thought the exact opposite ashhsjfhsdkf

mellow knot
#

AH welp

#

where was the bit i was thinking of...

calm nebula
#

It doesn't matter 🫂

#

Performance should be a c# modder's game

#

Hey sinZ 😛

#

God I feel like roadkill today lol

mellow knot
#

ok so yeah here

#

but to your point 6480

#

it does say gsq would be faster if its a when condition that isnt often checked

drowsy pewter
#

@ selph Hey I need to check when a player gets an item in their inventory for the first time, can you write a C# mod that lets me run a trigger action every time tick so I can check?

calm nebula
#

I think in the last two days I got about....16hr of sleep each day and I still feel like roadkill

calm nebula
mellow knot
#

i guess atras point is we arent doing it nearly enough to matter XD

calm nebula
#

Anyways. I leave you guys to it

#

Enjoy SDVpufferheart

mellow knot
#

feel better!

drowsy pewter
#

I guess its not really that important anyways since the more pressing concern for us between When and GSQ as content modders would be whether the code exists in the data or not :P (so other mods can target our stuff)

lucid mulch
#

There are cases where When is more efficient, mainly on data assets themselves or its HasMod/Config guards

and there are arguably more cases where runtime GSQ conditions are more efficient and user friendly, because the condition reacting to the new state of the world doesn't need to reload and apply all the edits again. (See: Music fields in Data/Locations vs conditional EditMaps)

uncut viper
# calm nebula @ Button do you have a trigger action for item entered inventory

at one point i did, but i couldnt get it to work right while also detecting if it was a new item or not (and not just you picking up the same apple from your chest 500 times)
it was also apparently buggy, and broke item stacking, so i removed it after like 2 hrs of it being up and never bothered trying again. wouldnt be that difficult to use the inventorychanged smapi event, but i didnt want it running constantly, which is why i was originally hopin to make it specifically a "new item acquired" trigger
but, all that said, you can always roll your own with BETAS Harmony

lucid mulch
#

the appearance system is another textbook example of how it can be a lot more performant than the content patcher equivilant, because you can easily just cache all the appearances without needing to reapply the edits

#

the amount of lag that 1.5.6 had from all the mods changing textures to be in pajamas or whatever, and changing music on maps that is mostly just not a thing anymore with being always in the data model and doing runtime checks instead

#

unfortunately still a thing for changing the lights unfortunately

toxic fog
#

Wait can i pseudo advertise here? I posted in modded farmers buuut that may just be a chat >.<

ivory plume
lucid mulch
#

(don't forget to copy+paste for crafting which is almost identical)

ivory plume
#

(Yep, it's part of the same to-do entry.)

mellow knot
#

WOOO thats so exciting

ivory plume
#

(It's just an idea currently, it hasn't been discussed for a specific version yet.)

mellow knot
#

STILL exciting rofl but i understand not to get overly excited XD

#

not like i dont have a million other things i should be working on anyway hehe

toxic fog
#

Ahh i dont mean to like. Be annoying. But where can i ask for a tester or two? Like an outside source?
I'll just post what i did in Modded Farmers (w the post deleted).
Rejoined the server to say:
Im making a social media mod! I just. Need one to two people to help test >.< i can do it! But yeah i need outside opinions!
Basically, every villager (modded or not) is assigned a personality per season, a mood per day, they text (Ping), facetime, and post on social media (PocketPost). I'm prolly not going to upload to Nexus for a bit. But if u wanna follow! It's natsukisr.
Oh and they have randomized friend groups, a special gift a day (randomized gift preferences too!), and schedule changes.

ivory plume
#

#modded-stardew is probably the best place to look for interested players. I don't think players would usually sign on as official beta testers (unless they're really interested in the mod), but you could post preview builds with no commitment for interested players to try and provide feedback.

toxic fog
ivory plume
#

No worries! It's fine to ask here too, but it's mostly mod authors in this channel.

toxic fog
ivory plume
#

Once it's closer to release, it could be worth partnering with an artist to redo the textures (or finding assets from a different provider). AI-generated content is controversial, and the server rules don't actually allow posting mods containing significant AI-generated assets here.

toxic fog
#

Its kind of a passion project (along with a sebby mod im making thats just json events and dialogue) so thats why i cant upload quite yet. It's super skeletal and i may add more

lucid iron
#

I do wish smapi inventory changed happened at timing where hasbeenininventory hasn't been updated tho

uncut viper
lucid iron
#

Need a player has item anywhere GSQ to be used on day started then kyuuchan_run

#

This would be pretty bad if naive

uncut viper
#

the most performant of triggers: checking every single item everywhere

lucid iron
#

I did just have like

#

A hashset that's populare once saveloaded + inventory changed to add more qualified item id to it

#

But i dunno how in demand this kinda thing is for content modders, it wouldn't let you know the count of some item

uncut viper
#

that wouldnt work for consumables, bc it'd happen every time you launch the game

#

bc once you consume it it wouldnt be there for the next saveloaded

lucid iron
#

Need to actually put hashset into mod save data then

midnight sand
#

Ok, the nicest way I found to "stop" the background music is this

if (Game1.currentSong is not null)
{
    const int volParts = 50;
    const int timeDelta = 2500 / volParts;
    float volDelta = Game1.currentSong.Volume / volParts;
    Game1.currentSong.Volume = 0;
    for (int i = 0; i < volParts; i++)
    {
        Game1.delayedActions.Add(new DelayedAction(1750 + timeDelta * i, () => Game1.currentSong.Volume += volDelta));
    }
}
Game1.playSound($"{ModEntry.ModManifest.UniqueID}_MenuOpen");

It opens a menu later, so I still need to animate it

gaunt orbit
#

That won't work properly with splitscreen

#

Since you're only adjusting the volume of the current screen and the other one(s) could be the currently active audio track

#

You would need to adjust the volumes of all screens

#

Also you'll probably get smoother results if you use a tick event and calculate volume based on elapsed time, rather than stepping down the way you are now

scenic arch
#

Does anyone know how to make custom characters and houses for said characters?

midnight sand
#

I only want the player opening the menu to have their background volume decreased until the sound effect finishes, the other players don't need to mute anything nor hear anything

wild viper
#

where do I post my smapi log to ask for help

scenic arch
#

or its in modded tech support

#

idk tho

wild viper
#

oh ok

ornate trellis
wild viper
#

well im trying to update a mod but theres an error

ornate trellis
#

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

ornate trellis
#

this channel is for making mods only

scenic arch
vernal crest
wild viper
#

yes

vernal crest
ocean sailBOT
#
Creating a Custom NPC

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

vernal crest
ornate trellis
#

generally it helps when you give some context so we know where to send you(or say youre in the right place)

#

also, aba i had a laugh today when i opened my shop json reading your comment bout the shop portrait

wild viper
#

oh im def not doin it properly at all but ill still send

#

for content.json the format would be content patcher right

vernal crest
#

Yup but it doesn't really matter

ornate trellis
#

(idk either why i loaded the portrait btw)

vernal crest
#

You were just in a haze of loading lol

ornate trellis
#

me opening the json and seeing your comment:confusedcat1

vernal crest
vernal crest
wild viper
#

well yesterday I basically just tested it out since this is my first time modding but I just learned to at least let smapi try to run it by changing the format to the used version of content patcher and in the manifast I changed it to use 4.2.1 or something, sorry I forget.

#

the npc has three folders [cp] riley [tmx] and the house, the tmx was used with tmxl but its obsolete now

ornate trellis
#

tbh i also had the revelation today that i probs am uselessly taking two frameworks to spawn ma minables...like...i thought i need IE for the heres the minable thingie and spacecore to spawn em but aparently i can make the minable thingie itself through spacecore too? idk anymore spacecore docs aint me-friendly written xD

vernal crest
#

Yeah I have no clue, never looked into IE before. Or even spawning stuff with Spacecore outside of figuring it out for...whoever that was for. Clown, maybe?

wild viper
ornate trellis
#

i first realized the spawning stuff because i looked at the sns code back when the uh...the book thingie was suggested you know, the one with the cool info you get at the start. but yeah, ill probs look at sns again at some point to see if i can get rid of IE if i can slim down on frameworks(nothing against using many, just, if i just use it for a singgle thing i feel like i could just...not use it or look for something diff)

wild viper
#

and by smapi log you mean the whole code and message it tells you when attempting to run the mods in your mod folder right

vernal crest
# wild viper yesterday the farthest point I got was deleting every folder but the [cp] riley ...

I think that trying to edit Riley into working is going to be difficult without any prior modding knowledge, unfortunately. They're a pretty complex NPC (whose pronouns are they/them in general, by the way). To point out just a couple of things from the content.json: addMaps, spouseRooms, and festivalSpots are not valid Content Patcher fields, Data/NPCDispositions is no longer a valid Target (it still kind of works due to CP magic but you'd want to change it to Data/Characters and switch to the new disposition format), and that's not even starting on the pregnancy stuff.

#

The content.json you posted is broken, did you edit it at all other than changing the format? It's missing a comma on line 155 (that's what the error in the log is saying).

wild viper
#

From what I remember I did to get started is that I simply remove the other 2 obsolete folders, removed the outdated dependencies. Changed the format to reflect the new usage being mainly content patcher. The house showed up but no character and I couldn't go inside. I probably did more stuff but its just a blur.

ornate trellis
#

well, for starters you didnt load an inside map so ofc you couldnt go inside, warps are probs wack or missing too

vernal crest
#

The best guidance I can probably give you is to have a look at Tia's NPC tutorial and the files of a 1.6 NPC so you can learn what a functioning NPC looks like and then identify what parts of Riley need changing. At least for getting them in the game - at this point I don't even know enough about them to know what their pregnancy roles dependency did so I don't know right now how to recreate that in 1.6.

vernal crest
ornate trellis
#

ah i read it as that map being gone with those two deleted folders mentioned

gaunt orbit
ornate trellis
#

id honestly restart with an empty slate but i am personally easily confused so yeah

vernal crest
#

The map might be gone if the folder has been deleted, but since TMXL is gone/non-functional it doesn't matter either way lol

ornate trellis
#

true

vernal crest
ornate trellis
#

nah i mean like the parts that needs to be changed

vernal crest
#

You mean like taking the assets out and then adding them in via the new methods one by one?

#

Oh instead of trying to edit the edits they already made?

ornate trellis
#

like taking a complete empty data/characters template and- yeah

#

but as i said i am a constantly confused person by nature so, might not be needed by others to do that xD you saw fisrthand how my own shit confused me at some point SBVLmaoDog

vernal crest
#

!npc @wild viper Oh which reminds me I did not actually link Tia's tutorial after mentioning it.

ocean sailBOT
#
Creating a Custom NPC

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

midnight sand
wild viper
#

I guess I have been putting out the whole purpose

vernal crest
wild viper
#

Converting to 1.6 from an old mod like that isn’t just changing the files to match the new format but basically remaking the entire npc just as a version that’s compatible with 1.6

gaunt orbit
# midnight sand So It's a shared Game1.currentSong?

Sort of, but not really.

Between all screens, there is one music track playing. Each screen "requests" a specific track, and the game has some logic to figure out which of those is most important, and then switches the shared track to the highest priority individual track across all screens.

Muting volume of one will have inconsistent behavior- if it's currently selected as the active track, it will fade out, but the music from other screens won't fade in. If it's not, the music won't change at all and your code will effectively do nothing.

lime seal
#

I am converting Pierre Plans Ahead from STF to CP and I've made it to the most complicated of the random chance options, where he "may" plan up to 7 days ahead. The screenshot is the code in the old STF version. It's a seeded random to select which date range will apply in that season, so the game stores / remembers what the random selection was for that season.

I can easily make a random selection for the date range in CP, and have done that with a Dynamic Token, then passed the result of the Dynamic Token into the Condition.

My challenge is in "storing" what the selection was each season without re-rolling every day. The default behavior for CP's Random is to re-roll every day. I was told even if I added a |key={{Season}} at the end, it'd probably still be re-rolling every day. I didn't test that assumption though.

I saw there's a SYNCED_CHOICE option in Conditions, but I'm stuck on how to use that to make the selection on the date range, and feed the result back into the date range selection. Is there a way to do that, or do I need 3 patches for each date range and have the SYNCED_CHOICE in each?

Code of the dynamic token and the patch (for a different seed than the screenshot but that's fine): https://smapi.io/json/content-patcher/9dc09ae092d14d3bb14ab8a859f46aba

vernal crest
wild viper
#

Well I was thinking that I didn’t need pregnancy roles as a dependency they just wouldn’t be able to have children or adopt

vernal crest
#

Without changing pregnancy things, Riley will just get pregnant according to their gender stated in the disposition. If you want them to not have children at all, you need to set SpouseWantsChildren to false (I think - you can only have kids if your spouse asks, right? I never have kids in game without cheating). If you want them to adopt, you set SpouseAdopts to true.

wild viper
#

Oh no I don’t really worry about that I just wanted them to be an interacting npc

fallen sun
#

I'm trying to add a pier over the water to hopefully put my house on it but every time I go in game, I can't seem to walk on it and I'm still being blocked by the water. Does anyone know a solution?

hard fern
tender bloom
#

check buildings layer

#

water is actually typically walkable

midnight sand
tender bloom
#

once you get over the boundary

vernal crest
fallen sun
#

Ok, first time modding and trying to edit a farm. I'll check those out ty!

gaunt orbit
calm nebula
#

There is a run per instance func

compact canyon
#

hey all! I was wondering if there is anyone who would be willing to make a mod along the lines of this:

A kind of gate/toll where a player has to pay a certain amount of gold in order to pass. In order to build the toll, the player would have to pay a certain amount (high) and use certain materials to build it. And in order to destroy it, the player destroying it would have to pay a high amount as well (in order to disincentivize other players from destroying it).

lime seal
#

If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see the !commissions command, which you can put in #governors-mansion.

lucid iron
#

It's a bit confusing how exactly you want this toll

#

Is it blocking access to some map

compact canyon
#

Yeah it would be like a gate, and to pass you have to pay a certain amount.

#

It'd be mostly for the main farm area, if they pass through the gate they have to pay an amount

compact canyon
lucid iron
#

There's only 1 farm though yggy

compact canyon
#

Oh yeah :) but like in the 4 corners map there are 4 (for multiplayer) and there's a small area to go from one to another or leave the farm

lucid iron
#

What stops someone from no clipping over besides honor

compact canyon
#

the gate would be large enough to cover the passage

lime seal
compact canyon
#

oh i see what you mean!

#

correct

#

this is just for fun

#

it's not meant to actually inhibit people from using other mods to bypass it

lucid iron
#

Well i can sorta imagine a content way of doing it

#

Custom farm map, edit 4 corners to need magic warps to go between zones (plus warp to the 3 exits

#

Block access to warp with a mail flag named after player name

#

Special order to unlock the warps (this part will be annoying cus idk if u can get other player's names)

compact canyon
#

Yes that would be a good way of doing it ! Do you know if there would be a way to make the warp conditional on paying a certain amount of gold to be set by the user who placed it?

lucid iron
#

That's the last part, a special order or some event gating the part where you obtain the mailflag

#

You need c# if it's a freely placed object of some sort, hence why my suggestion is "modify map to do stuff"

#

Just to be clear, I'm not making this mod, but i encourage you to try Dokkan

violet valley
#

Does anyone know a mod that adds a tile action for showing a detailed dialogue box? (portrait, text, etc)

lucid iron
compact canyon
lucid iron
#

BETAS has the remote version

violet valley
hallow prism
lucid iron
hallow prism
#

is it a specific config when pierre MAY plan ahead but may also not? and if yes, what are the different cases? I think there are possible options for each cases but i don't quite understand the behaviour wanted so it's harder to suggest exact solution

lucid iron
#

I'm interpreting your original ask as

compact canyon
lucid iron
#
  1. Pierre needs a random stock for the week
  2. It should stay the same for that week and reroll on monday
#

To form the mailflag to set u can do Random, though you will need to write every unset mail out explicitly

lime seal
# hallow prism can you elaborate a bit on the purpose of the random part is?

The goal was to have 3 date ranges that the game randomly chooses from. So either he has the seeds 1 day ahead, 3 days ahead, or 7 days ahead. But the decision on that random roll should be set for the season. So on spring 22, the decision is made and stays for the rest of the week in spring. Then in summer 22, there's a new roll for that week, and stays for the rest of that week.

I think I've cracked this though, this is what I'm trying:
"Condition": "DATE_RANGE Spring 22 1 Spring 28, !PLAYER_HAS_MAIL PierreStocklist Received, SYNCED_RANDOM season Maybe7 0.33 @addDailyLuck"

#

I think that means there's more options for the date range, but as long as it's constrained to that week, that's fine

hallow prism
#

i would go in same direction than chu with mailflag, but i haven't used the synced_random season so it may be a case of several approaches working

#

i think also possibly there's another synced token that may be better for guaranteeing you see only one of the option but at least one

#

however i'm not sure it works with seasons

#

SYNCED_CHOICE <interval> <key> <min> <max> <choices>+

lucid iron
#

I think synced random is still a per day thing

hallow prism
#

which would become something like SYNCED_CHOICE season 1 3 1 for one, SYNCED_CHOICE season 1 3 2 for another and SYNCED_CHOICE season 1 3 3 for the third

hallow prism
lime seal
#

From the game state query wiki, in theory season should work LCEBearThink

#

it calls out season as an option for interval

lucid iron
#

Ah i see, i just remember wrong then kyuuchan_run

lime seal
#

lol all good! I am new to this so I'm relyin on the wiki and y'all 😆

#

the CP random is definitely still a per-day thing

lime seal
dull depot
#

My friend wants to make a mod to where he can create a toll bridge can you make a mod to have a court system so we can incriminate people based on unjust policies

pine elbow
#

Pardon me if I'm interrupting, but is there documentation on making npcs swim via calcifier? I know the mod desc. said there wasn't yet, but I wanted to check here too!

lime seal
lucid iron
#

It's documented, but i don't know if the feature is in the release

brittle ledge
#

It should be, Wren uses it.

vernal crest
#

Secret documentation!

lucid iron
#

Also i just realized calcifer had machine harvested this whole time

#

Did not need to booli selph into making the action kyuuchan_run

#

And it has a stat huh

brittle pasture
#

also it doesn't seem to work with Automate

lucid iron
#

the thing in EMC is action on collect i thought

brittle pasture
#

...it's on ready actually

lucid iron
#

The baby waits for no one yuniShake

#

I think i probably got it confused bc i just fairy dust during test

brittle pasture
#

but yeah, on harvest is tricky because there's no "collect output from machine" function so automate or junimatic just does it itself

#

you'd need to patch those as well in addition to the game

lucid iron
#

Hmmm

#

Is heldObject net field

#

Can you hook that

calm nebula
#

Yes but

lucid iron
#

Idk how2context tho

calm nebula
#

Introducing my newest machine, the replicatoe

#

I never change object.heldObject, I just give you a clone

brittle pasture
#

DaLionHeart's hopper pull, interestingly, is immune, because it actually calls checkAction but transpiles it to put the item into the hopper inventory if applicable instead of the farmer

calm nebula
lucid iron
#

Wow finally

#

A solution to my toe woes

calm nebula
#

Your ehat

lucid iron
brittle pasture
uncut viper
brittle pasture
#

oh look, found one involving ClearContentsOvernightCondition
(I have no idea how I would handle this)
(think I'll just add this only if someone really really want this SDVpufferchicknight )
(anyway Object.HarvestMachine for 1.7 plsss)

uncut viper
#

wouldnt stop me from redirecting people to your comments

calm nebula
#

Do I want more coffee

#

Do retired mod authors read comments

pine elbow
#

pssst does anyone have that ikea bed sprite order infographic on hand? SDVpufferlurk

spice inlet
#

atra you're the least retired retired mod author I know SDVpufferowo

rigid oriole
#

Can I harmony patch an anonymous delegate (the "acquired" delegate in this image from Chest.cs)?

#

I feel like the answer is probably no

calm nebula
#

Yes

rigid oriole
#

oh?

#

I see it in the decompile as StardewValley.Objects.Chest::'<checkForAction>b__60_0'() but I have a feeling typing that all out is not how I reference it

lucid iron
#

I think u literally have to use that name yeah

#

What's the specific goal here

spice inlet
#

I remember doing something similar for a protected delegate using CreateDelegate(Type, object, MethodInfo);, not sure how you'd do it for an anonymous one though 😄

rigid oriole
# lucid iron What's the specific goal here

I want a side effect to happen before and after the Game1.playSound call. I don't want it to happen every time playSound is called with this specific cue. just when this delegate method calls playSound

#

I just intend to prefix the whole delegate if I can. it doesn't need to be the instruction right before playSound

lucid iron
#

Hm what if you steal the delegate in a transpiler

rigid oriole
lucid iron
#

Match on RequestLock and insert your own method which makes a new delegate

#

Manual prefix 3sSmolMiku

calm nebula
#

Reflection find the delegate and patch it

lucid iron
#

I do think literally using the anon name will work but this is perhaps less fragile

rigid oriole
#

Yeah if I can be SLIGHTLY less fragile I would like to be lol

rigid oriole
#

but also just typing out the name is faster lol

lucid iron
#

For atra's suggestion you would want to iterate the methods of Chest

#

You are screwed if game ever adds another anon delegate in same method tho

calm nebula
#

Not necessarily, tbh

golden basin
#

Hey everyone I have a request? I'm looking for people who are familiar with modding and good with grammar, spelling etc to look over my default json and make corrections without rewriting too much of my content. If anyone is interested and willing pls let me know? I really do need the help as I am very dyslexic and struggle with this type of thing a lot.

rigid oriole
#

thanks for the examples atra :)

pine elbow
#

I'm going insane i can't find a small thing on the tilesheets waaaahh

rigid oriole
#

ohhhhh my gosh it works thank u all sm

lime seal
#

Ok so the synced random condition for a shop item appears to be working, but it's ignoring the date range restrictions.
For example, I intended for this patch to only apply in spring 22-28, but it's applying in winter 22-28. I'm guessing it's because I put the synced random interval to be season, but I thought it'd only work during the specified date range maruthinking

{
            "LogName": "Pierre May Plan Ahead 7 Days - Year 1 Summer Seeds in Spring",
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [
                "SeedShop",
                "Items"
            ],
            "Entries": {
                "{{ModID}}_PoppySeeds": {
                    "Id": "{{ModID}}_PoppySeeds",
                    "ItemId": "(O)453",
                    "Price": 100,
                    "Condition": "DATE_RANGE Spring 22 1 Spring 28, !PLAYER_HAS_MAIL PierreStocklist Received, SYNCED_RANDOM season Poppy 0.33 @addDailyLuck" // available MAYBE between spring 22-28 AND player doesn't have the PierreStocklist flag
                }
        },
#

I'm having the same problem when I set the interval to day, actually maruthinking

"Condition": "DATE_RANGE Spring 22 1 Spring 28, !PLAYER_HAS_MAIL PierreStocklist Received, SYNCED_RANDOM day Poppy 0.33 @addDailyLuck" // maybe available if it's between spring 22-28 with 33% chance each day AND player doesn't have the PierreStocklist flag
primal rover
# calm nebula Reflection find the delegate and patch it

isn't that asking for trouble? Professionally I steer clear of reflection if I can for multiple reasons. I could see this possibly causing hard to debug runtime errors, or would SMAPI catch these also in runtime? I'm new to the deeper parts of SDV modding and where SMAPI comes in

lucid iron
#

We are currently doing crimes in mr ape's backyard

rigid oriole
lucid iron
#

I respect the professionalism but this aint commerical production code

rigid oriole
#

I like modding because at work I'm not allowed to be cursed

primal rover
#

Lol I didn't mean this that seriously, I could just imagine if this is for a mod that you'd also share or offer support for, this could become a pain in the butt. But if it's just for fun, live your best life for sure 😄

rigid oriole
#

oh I mean i intend to publish this

lucid iron
#

You still want to check that your reflection is giving you something usable

#

And give up with error if it didn't

#

Hence the whole thing about iterating all methods

rigid oriole
#

yeah the iteration worked for me

primal rover
#

Yeah as long as you manage to catch any issues that may arise before breaking the valley you should be good

rigid oriole
#

I've got a nice little warn log if it can't find the delegate but the cool thing is I can simply skip this patch and my mod won't break

lucid iron
#

1.6 has a fair amount of error catching too

#

I broke the menu draw code many times and game just catches it + force exit the menu

rigid oriole
#

"mismatched ui push/pop counts" we hate to see it

primal rover
#

Looks like you thought this through. I noticed SMAPI throwing a bunch of runtime errors as well while I was playing around accessing some properties, so it's nice to see there's already some logging, and I didn't even look into debug logging or other debug settings yet

fallen sun
#

Got my pier working but is there a way or another mod that lets me put buildings anywhere? Trying to put my house right here.

lucid iron
#

You can go in the tileset and make all these pier tiles buildable

#

[[modding:maps]]

fallen sun
#

Would I just add another property : Buildable T?

lucid iron
#

Yeah, tho double check spelling against the wiki

#

Also this has to be a back layer tile

#

Could use LooserBuildRestriction map prop too

fallen sun
#

Tyvm, gonna try to fix it.

brittle pasture
#

you're going to have to do it like this:
SEASON spring, DAY_OF_MONTH 22 23 24 25 26 27 28

trim sand
#

well that was certainly a interesting inital comment to get on my now posted pokemon ranch patches... i think they misunderstood what the mod is doing and is functionally no different than bringing in new logic for a vanilla animal.

trim sand
#

content patchers another mod to fix bugs, and impliment new mechanics on top of the existing content. no item registration or sprites are held on my end. sorta analogus to a compatibility patch between two mods.

lucid iron
#

Yeah this seems fine

#

Obviously if you could contact the pokemon ranch person and integrate things that'd be nice

#

I guess this bit in the description could br contrued as rude

primarily intended to make various aspects of the mod, actually function properly or at least how one might expect it to.

lime seal
trim sand
#

That's probably true. I probably shouldn't have been writing it at 2 in the morning

lucid iron
#

You didn't opt in DP either so I'd say you are fine over all

trim sand
#

But also I should probably change how it's worded

acoustic summit
#

I wouldn't say have done anything to be worried about at all. Its an optional edit, you are good. Being nice to* the original mod would be better though yeah, not that it was particularly mean or anything

lucid iron
#

the nuance is improve vs fix yea, the later implying a belief that the original mod is bad

#

still u r require original mod and u didnt reupload assets of any sort

#

did you try to dm the author tho, i kinda just assumed you did

trim sand
#

I hadn't. It was on my list to talk about it with them post release since not everything I did necessarily makes sense within the scope bees was going for.
Again as the mod page says this started as a bunch of personal edits to the mod so I admittedly didn't consider permissions when I started. And now we're here

blissful panther
#

There's a chance it'll be taken down temporarily while Nexus looks into it if it gets reported, so do keep that in mind, and try not to worry too much if it does.

lucid iron
#

late is better than not AquaThumbsup

acoustic summit
#

If the original author wanted it taken down, then you could be at risk.

#

I think for this kinda thing only they could report it

pine elbow
#

I'm creating a framework in C#, and in my code I use the following code:
Path.Combine(this.Helper.DirectoryPath, "assets", sound)

Would this get the directory of my framework, or would it get the directory of the Mod of the person who is using my framework to add content to the game?

If it's the second option, is there a way for me to get the folder of the mod of the person who uses my framework?

spice inlet
blissful panther
#

Beaten me to it. SDVkrobusgiggle

spice inlet
#

this only works if they're actually content packs of your mod and not like CP content packs using your framework

blissful panther
#

Yeah, if they're just editing some data model from your framework mod using CP, they'll need whatever relevant paths added on their end in there.

spice inlet
#

my more recent frameworks rely on game assets instead of paths.
Where content packs would create an asset and pass you its name instead of the file path

brittle pasture
#

what does the framework do exactly? asking since if you can rely on the content pipeline and CP content packs it's better to do so

#

instead of handling loading files directly

clear oxide
#

Finally got to add more enemies to capture and evolve. Not sure if I want to do exp / level system for them tho. I thought about just doing the Digimon type system where they evolve based on how long they live.

hallow prism
#

in case of unclear nexus permissions i don't think it's out of line to see if you do have discussed this with the author/got permissions

indigo yoke
#

So I am still trying to figure out transpilers and how they work so I decided to look at Spacecore buff code for the hover text. Currently Spacecore displays custom skill buffs above the line. I am trying to move it below the line. If I am reading and understanding this correctly, spacecore looks for the 8th variable of drawHoverText each time it is called. which is buffIconsToDisplay.

The first time (step 0) adjusts the height. The second time (step 1) adjusts the width. The third time (step 2) is where it actually inserts the draw code for the icon and text. This is however above the buff-line. This is because (I am assuming) the custom code is inserted right after the variable is called.

How would I go about advancing the code instructions? would I just do something like. codeInstructions[i+30]; ?

proud wyvern
#

oh god manual transpilers

indigo yoke
lucid iron
#

terrible times...

#

!harmony

ocean sailBOT
#

Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.

If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.

For more information, refer to the following:

lucid iron
#

the second link has a quick guide about using CodeMatcher

#

ultimately your goal is to produce a new list of code instruction, but code matcher lets you search for a block of code at a time

pine elbow
indigo yoke
brittle pasture
#

what doesn't work with Data/AudioChanges?

pine elbow
#

spring1, spring2, spring3

#

These were the audios I tried to change

brittle pasture
#

and what did you try?

#

there are CP seasonal music replace mods out there

pine elbow
#
                "spring1": {
                    "ID": "spring1",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/springnew.ogg}}" ],
                    "StreamedVorbis": true,
                    "Looped": true
                }
            }```
brittle pasture
#

that looks correct to me, can you post the full json/log

pine elbow
#
                "spring1": {
                    "ID": "spring1",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/springnew.wav}}" ],
                    "StreamedVorbis": true,
                    "Looped": true
                }
            }```

also does not work
indigo yoke
#

second more random question: what could cause enemies to show up invisible when they aren't suppose to? just like loading issues? Messing around with like warp player to floor 50 of the mines or to skull cavern or the volcano and flying enemies sometimes appear invisible after doing that.

brittle pasture
pine elbow
#
"Changes": [
        {
            "Action": "EditData",
            "Target": "Data/AudioChanges",
            "Entries": {
                "spring1": {
                    "ID": "spring1",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/springnew.ogg}}" ],
                    "StreamedVorbis": true,
                    "Looped": true
                }
            }
        },

brittle pasture
#

!log what does the log look like when you load the mod that you made

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.

pine elbow
#

It doesn't give any error, it just doesn't change the music.

brittle pasture
#

give the log just in case

pine elbow
#

It's just that the person who made the mod and it went wrong wasn't me, I'm just helping someone, but I just tested it here and managed to make it work using the cp... strange that before it didn't work, I don't know what it was, and it didn't give an error, it just kept playing the same music... but that's okay, thanks

spice inlet
#

Got the trash bear working decently well SDVpufferowo
Don't ask why he eats the baggy pants, I didn't condition him to eat pants.
It only cost a dozen additional custom properties to get all the different states animated right.
Can't wait to test how this behaves in multiplayer, or what happens if you open the overview menu while he's in his chomping animation.
Surely I didn't break 20 other things while adding thisSDVpufferwaaah

orchid glade
#

I'm assuming that these are two alternative lines used in the summit event - but what determines which one is called? : "SummitEvent_Intro2_Spouse": "It's so beautiful up here...", "SummitEvent_Intro2_Spouse_Gruff": "Great view, huh?",

blissful panther
#

Oh, nope, looks like it's...

private bool sayGrufferSummitIntro(NPC spouse)
{
    switch (spouse.name.Value)
    {
    case "Harvey":
    case "Elliott":
        return false;
    case "Abigail":
    case "Maru":
        return true;
    default:
        return spouse.Gender == Gender.Male;
    }
}
#

If the spouse is Abigail, Maru, or male, you get the gruff version, apparently.

orchid glade
#

Baha, okay. Yeah I had thought manner at first, but there was none named gruff.

#

And Harvey and Elliott not gruff?

blissful panther
#

Apparently so, looking at this!

orchid glade
#

I mean it makes sense... but for modded npcs then it's just gender.

blissful panther
#

Yeah, that's slightly annoyingly hardcoded for modded NPCs. You could patch both versions if the player's married to your NPC, though. That would force it to use whatever line you like, gruff or not.

orchid glade
#

(I think the mod I'm translating has interpreted it as, both are said, so I'm gonna just shove all the dialogue in the gruff key instead.)

#

Thanks for the peek under the hood 🙂

calm nebula
#

Heyyyyy

indigo yoke
#

yasssss, got spacecore buffs under the line with all the other 1.6 buffs are.

lucid iron
#

r u gonna PR spacecore ukimasu

indigo yoke
#

yes but most likely won't be accepted cause the way I did it is jankkkkkkk and not up to modern methods.

lucid iron
#

well the other thing is just casey still on vacation

indigo yoke
lucid iron
#

i think pathos would only do something if spacecore explodes

#

he didnt even accept his own PR for GMCM...

indigo yoke
#

the basic jank that I did: basically Logged till i figured out how many lines I needed to skip... then set those code functions to do nothing. effectively erasing the two lines in yellow.
Then made sure in the DrawCustomSkillBuff I made sure to draw the line first and then check if there are custom skill buffs to skip.

indigo yoke
# lucid iron he didnt even accept his own PR for GMCM...

that feels.... weird... especially since casey trusted them to maintain it? you think the PR for GMCM fixes would be something that would count as maintaining the code. especially since it breaks with the upcoming content patcher release.

lucid iron
#

Well it's a new feature not a fix

indigo yoke
#

is that not a fix?

lucid iron
#

That's a different thing, for spacecore guidebooks

#

As for why pathos didn't just merge that one you will have to ask LilyDerp

uncut viper
#

also its not like casey isnt still around, just taking a bit of a break from modding. i dont know if pathos is "maintaining" it per se in the usual way we say someone is maintaining a mod

lucid iron
#

But yeah i guess it's cus casey is vacation and not retired (in a way different than atra retired)

lime seal
lucid iron
#

Unrelated to this, i was thinking it'd be nice if cp migrateids supported migrating farm animals and buildings

#

But idk what the consequences would be yggy

#

Conversation topics is another one but they are kinda transiant

indigo yoke
#

okay PR made

light jasper
#

@hallow prism if it's not too much trouble, could you add my custom field to your WildTree patches for VMV? Not urgent, but I'm going to be reading from it in my next update instead of maintaining my own translations for trees.
Here's my PR to SVE for reference
https://github.com/FlashShifter/StardewValleyExpanded/pull/28

lucid iron
#

why did you ping lumina for sve?

trim sand
#

i see. good to know i suppose. im not actually sure my project has permission issues beyond plaidbees not wanting it hosted

light jasper
#

that PR is the one I made to SVE, I would have made one for her myself but I can't seem to find the repo

#

I should probably clarify my original message

lucid iron
#

ah yea the content isnt on the repo anyways

lucid iron
#

only C# is here

light jasper
#

I assume there's a CP portion that isn't public? or is it made without?

crude plank
#

there is but it's not on github afaik

lucid iron
#

there is a CP portion, it's public in that you can download it from nexus

#

but it's not tracked on a git host

light jasper
#

just making sure I'm not blind, I downloaded VMV to make sure it worked, but I can't make a PR

lucid iron
#

yea unfortunate Dokkan

#

i was just confused cus i saw pr for sve

light jasper
#

completely fair, I didn't add enough context. I updated my original message lol

lucid iron
#

you should probably poke flash here too, if you haven't already done so on sve discord or whatever

#

i dont think the github is checked all that often

light jasper
#

ah I didn't want to bother, I figured it would be noticed eventually

sour sleet
#

Ok so I'm trying to add a custom companion with CC and I don't understand what it means by StartingFrame I understand 0 is the top left of the spritesheet but I don't understand how to get the numbers for the frames if that makes sense?

light jasper
lucid iron
#

i for one support using uiis2's influence to get everyone into localized wild tree names YuniShake

light jasper
lucid iron
#

did you also PR cornucopia

crude plank
#

love me some tree information on hover

light jasper
#

it's the next one on the list, I have it open in VSCode rn

drowsy pewter
light jasper
#

I'm finishing up my PR rn

drowsy pewter
#

Ah yes, I have now scrolled down in chat lol

light jasper
drowsy pewter
#

Yes!

brittle pasture
#

hmm did rose and the alchemist add back the cool magic mushroom trees

lucid iron
#

The big shrooms DokkanStare

brave fable
brittle pasture
#

atra wrote the C# yeah

light jasper
lucid iron
#

Frames is about the sprite index

#

So let's say you got a 128x64 sheet and the widthxheight is 16x16

#

You would have 16 frames in this sheet, 8 per row for 2 rows

#

Frame 0 at 0,0,16,16

#

1 at 16,0,16,16 etc

ornate trellis
#

uiis2 custom tree label names happening? SDVpufferlurk

#

wonder how thatll work with all the other random small mods adding trees O:

light jasper
#

a sad excuse for me to distract myself from rewriting the experience bar component

sour sleet
#

Ah ok thanks Chu, I think I understand that

brittle pasture
ornate trellis
#

idk but i sure know that i am adding some lol

light jasper
#

sve only did fairly recently tbh, I think it's a new thing

brittle pasture
#

will they be moss-enabled

drowsy pewter
#

its better for small mods since they wont have to make UI2 add custom labels for them

ornate trellis
#

O:

brittle pasture
#

SVE's trees in town cannot have moss and that's fking criminal /lh

light jasper
#

my localization for trees has been growing and I can't anymore lmao

brittle pasture
#

when the green rain comes and I see a naked SVE fir/birch I wail in despair because it could have been green like the rest

brave fable
#

oh absorbed, out of interest, did you happen to get UIIS2's tool upgrade status hud icon sprites working? i remember having a couple of bug reports on LOC for the frying pan GenericTool appearing as an error icon

drowsy pewter
#

PR it

brave fable
#

it's not a big deal, just asking since you're around hahah

light jasper
#

is it still broken?

ornate trellis
#

idk these funny labels kinda grew on me ngl

#

made the trees sound more mysterious xD

brave fable
#

ah well the error/crash was fixed, previously I think it just failed, whereas now it works but can't resolve the sprite

#

I say 'now' but I haven't tested for a while

light jasper
light jasper
brave fable
#

love of cooking -- there's a tool upgrade available similar to the trashcan

ornate trellis
#

i like to think its the cheeto dust coming through

ornate trellis
#

but yeah, how this label thing gonna work O: is UIIS2 doing the adding or do content creators do that themself and should i really think about this past 2am when i should go to bed thonking

lucid iron
#

Blueberry did u know about token aliases

brave fable
light jasper
#

check out the PRs above for reference

brave fable
#

rude 😌

#

but yeah i think it's just using the default generictool behaviour 、which is to draw the trashcan (the only vanilla generictool)

#

whereas it can instead use parseditemdata as in my harmony patch linked above for the correct sprite data

ornate trellis
#

I wonder if I shoved it it wrong but there isnt really much one can do wrong with that few lines..

light jasper
#

yet another reason the rewrite is important to me lol, lots of stuff that just isn't needed anymore

#

shit's crusty

brave fable
#

it matched the default vanilla behaviour for the time, so i can understand how it became that way

#

thanks for fixing it up so quick!

light jasper
#

np! yeah it's not that it was bad that it was done, but there's a lot of stuff all around the mod that was kind of just band aid fixed around as the game changed

ornate trellis
#

i think me saying i like the unknown label made it stick /j

light jasper
#

lmao

ornate trellis
tribal ore
#

Anyone know if it's ok to use i18n within dynamic tokens?

"DynamicTokens": [
    { "Name": "sebastian_videogame_name", "Value": "{{i18n::SebGameName}}"},
],
drowsy pewter
#

if you mean that you dont know how to make the label work in your game ahhdjs

ornate trellis
light jasper
#

ohhhhhhhhhhhhhhhhhhhhh

#

my bad for not making that clear

#

yeah

drowsy pewter
#

///thats why absorbed is PRing the field into other mods now, and not after the update is released shhdsj

lavish cedar
#

quick question! i'm working on a mod to change NPC names, and the current task is handling dialogue. upon looking through content patcher docs, it SEEMS there's no way to simply iterate over all the various dialogue files as a whole without specifying each file individually to be patched, even with tokens, so i want to verify whether this is true as far as anyone knows or whether i missed something, before i go do things the hard way (with or without content patcher).

so: is there a possible way to use content patcher to patch a collection of files matching some criteria (ie, every file in Dialogue/ containing a reference to Jodi, or just every file in Dialogue/), or do i need to specify each file as a distinct target?

ornate trellis
#

well to my defense i am awake for almost an entire day, ok

tribal ore
ornate trellis
#

i can by now laugh about my own constant confusion

brittle pasture
tribal ore
#

To be fair, it would probably also be a lot easier in C#

crude plank
brittle pasture
#

(I have two C# mods that exist only because CP can't do loops SDVpuffersquee )

tribal ore
pine elbow
ornate trellis
light jasper
#

everything you say is based

lavish cedar
#

awesome, i appreciate the confirmation! it's one of those things where like... i would hate to have simply overlooked something really easy before heading to the C# mines neofox_laugh_tears

light jasper
#

tbf 24h is pushing it but who would I be if I went to bed on time 🤷

drowsy pewter
#

{ "When": "i <= len(npcs)" }

ornate trellis
#

funnily enough I am not even tired

pine elbow
ornate trellis
#

ah, tilesheet climbing

pine elbow
#

Yeah hah...I've dealt with this before but the fix has completely slipped my mind

ornate trellis
#

you gotta slap hxw tilesheets into your folder

brittle pasture
pine elbow
ornate trellis
#

and when you release the mod you get rid of em like the vanilla tilesheets and add a dependency in the manifest

pine elbow
#

Okay so. I actually. Have the dependency in my manifest. So I don't know why it's fussing

ornate trellis
#

that my silly brain does remember lol

lucid mulch
#

tbh I've been very tempted to add more set based tokens

tiny zealot
ornate trellis
lavish terrace
#

hello friends, I have a question re: map modding.
currently, I am using both Delotti's mine retexture (which changes the interior of the mine to be green/changes with the seasons) and also Forager's Nooks and Crannies from Wildflour. I was attempting to make my own conversion/compatability patch for this, and I followed the directions on the Modding:Maps page on the SDV wiki, but I keep getting errors thrown saying that the tileset I'm using isn't valid (I exported the outdoors tilesheet from one of the vanilla maps and imported it into the nooks & crannies map). It's not a huge huge deal if I can't make it go, but I figured I always wanted to learn more about mapmaking and using outdoors tilesheets indoors is something I don't know how to do so I was wondering if anyone could point me in a direction to get started??

tl;dr: am I going to have to make a {{season}}_mineedit.tmx for each season's patch for the mines?

sorry in advance if this isn't worded the best I...am confused woozy

pine elbow
lucid iron
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

lucid iron
#

send what error you got

lucid mulch
# drowsy pewter `{ "When": "i <= len(npcs)" }`

actually you can already do that

"When": {
    "Query: {{i}} <= {{Count: {{Relationship}} }}": true
}

where {{i}} is a local/config/dynamic token containing your magic threshold

though this wont include npc's with CanSocialize not being true

lavish terrace
#

starts at:

StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'assets/Maps/MineEdit.tmx' from SMAPI\wildflour.nookscrannies: an unexpected error occurred.
 ---> System.Exception: Unable to load map with file path 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\[Sunberry]\Forager's Nooks and Crannies\[CP] Forager's Nooks and Crannies\assets\Maps\MineEdit.tmx'
 ---> System.InvalidOperationException: There is an error in XML document (3, 24).```
ornate trellis
#

im bad in explaining shit

pine elbow
lavish terrace
lavish cedar
ornate trellis
#

but you know to put those vanilla tilesheets you wanna use into your maps folder too, right

pine elbow
pine elbow
ornate trellis
#

that goes for literally ANY tilesheet you wanna use

pine elbow
#

Okay so...when do I remove them?

drowsy pewter
lavish terrace
#

fwiw, I also used spring_outdoorsTileSheet and added the dot in front to see if that would work, and it remains static/doesn't patch with the recolor mods I have nachowoozy

ornate trellis
#

when you release your mod

pine elbow
#

My brain is not comprehending SDVpufferwaaah

lavish terrace
#

as in do not include them in the zipped file

#

oh wait

#

heck >w<;;;

#

aaaaa it's so hard to follow conversations in here lmao

lucid mulch
#

I would recommend doing the . prefix on the filenames and let Tiled use the dot.
SMAPI will skip the dot, and make sure it doesn't accidently actually use that file

lavish terrace
ornate trellis
#

i shouldve also probs used the command for explanation

lucid mulch
#

and then when packaging, to make file sizes smaller skip them from the zip file

lucid iron
#

looks like your tmx is invalid somehow yggy

#

did you write it by hand

lavish terrace
#

not the recolored

lavish terrace
ornate trellis
#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

pine elbow
#

Yes, but then wouldn't. the issue re-appear? If I already have the dependency, why does it need to be in my maps folder. I'm not trying to be difficult I genuinely don't understand SDVpetcatangy

lavish terrace
lavish terrace
#

o

lucid mulch
#

the asset pipeline / "virtual filesystem" that SMAPI will use to load the tilesheets, and what Tiled is doing are very different

lavish terrace
lucid mulch
#

Tiled needs them to be in the same folder, because when the asset pipeline is going to look for them, it will assume its all in the same "folder"

ornate trellis
#

thanks, SinZ

#

my brains not braining enough anymore to properly explain things not in my mothertogue evaporated

pine elbow
#

ohhh okay, I think I see. So just. don't. worry about it once things are completed? delete the tilesheets from my folder and don't worry about what tiled screams about?

#

I was for some reason under the impression they used the same grab method...silly me

lucid mulch
#

SMAPI/Stardew will always load the tilesheet as Maps/{WhateverTiledSaid}
and SMAPI will yell at you if you try to do Maps/../somethingElse

pine elbow
#

tiled doesn't know what a dependency is! It only knows tilesheet!

#

Am I getting it?

lucid mulch
#

yes, tiled only sees the physical filesystem

uncut viper
#

however, make sure you do not ever save your .tmx when the tilesheet is not present, even if its only a tiny quick change

pine elbow
#

Thank you, helpers! I appreciate the patience!

ornate trellis
#

id always keep a copy of your mod without the deleted tilesheets at hand tho btw in case you gotta edit stuff. then you dont need to do the whole re-adding them to the folder etc stuff

#

gestures its 3am, water im doing

lucid mulch
#

I don't do content/map authoring, but I would always keep them (with the . prefix) and just try avoid to zip them up

ornate trellis
pine elbow
lucid mulch
#

xml is corrupt on line3, would need to see what the file looks like

ornate trellis
#

aba gave me the tip with having them in a tilesheet folder and also directly in my maps folder with a dot and then before release told me to delete em so thats what i go by because idk i believe aba is smarter than me in that topic lol

lavish terrace
lucid mulch
#

oh wait no I actually looked at the log for realzies

#

its due to the outtdoors.tsx file external tilesheet reference

lavish terrace
#

YEP I noticed that while you two were talking notlikethis

lucid mulch
#

embed the tilesheet reference to outdoors or whatever the term is

lavish terrace
#

oh embed it?

lucid mulch
#

the actual map makers can correct me here, but iirc tsx files are nearly always bad

ornate trellis
#

<w>

lavish terrace
#

sorry if this is a stupid question but what do you mean by the reference; the name?

#

or where it says source in tiled?

#

under image

ornate trellis
lavish terrace
#

AH okok <3 ty

#

o it is greyed out, I assume that means it is already embedded?

ornate trellis
#

yeah

late pewter
#

Question: How difficult would it be to port a Solid Foundations mod to Content Patcher?

lucid mulch
#

Mostly trivial iirc

late pewter
#

Or does [SF] do things that [CP] cannot??

lucid mulch
#

Solid Foundations was a backport of 1.6's buildings functionality, so would only need to tweak a few minor syntax things to align

late pewter
brittle pasture
#

[[Modding:Buildings]]

ornate trellis
#

god, i think im gonna go to bed. im not tired at all but i feel myself slacking

lavish terrace
#

eep well!

lucid iron
#

i should finish this guide...

pine elbow
#

Tail between my legs....I'm still getting the error and I've copied the sheet into my maps folder...SDVpufferweary

acoustic summit
#

@indigo yoke from the custom skills stuff you were sharing today, I got inspired to tackle what you commented on the forums about and allow people to make custom skill buffs in skillful clothes revamped, so hopefully you won't get any more complaints about the mods not working together! SDVpufferheart

ornate trellis
#

also in regards to your Delotti mine edit...I remember Dottie wanting to edit the same thing in the past but idk what came out of it so maybe you can ask Dottie for guidance whenever it is around?

lucid iron
ornate trellis
pine elbow
ornate trellis
#

happens to the best of us

pine elbow
#

replace tilesheet
still get error
check tiled
forgot to embed the new tilesheet
mfw

#

okay if this doesn't work i'm. gonna go insane

#

Guess who is gonna go insane

lavish terrace
#

:O is it you???

pine elbow
#

nvm I forgot to save

#

I'm actually so dumb sometimes LMAO sorry chat

lavish terrace
#

ok so I didn't get any errors this time but I have yet to go to the location in-game to check and see if it worked

#

butt we shall see!!

ornate trellis
pine elbow
ornate trellis
#

the same exact error? huh

pine elbow
#

she also isnt showing up in cjb cheats menu

ornate trellis
#

well, her sprite issues still persist so she wont be loaded until its fixed

pine elbow
#

Oh okay sorry I just read that part of my log -- I can fix that ez

ornate trellis
#

im just a bit confused why the tilesheet climbing is still a thing when you put them into the folder alongside your map and replaced them in tiled

pine elbow
#

That's what I'm puzzled on too?

#

I even made a new save

ornate trellis
#

maybe you gotta do the thing in the tilesheet command...

#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

ornate trellis
#

the bottom part

#

or delete those hxW in tiled completely and freshly readd them? but that means redoing your asset placements

pine elbow
ornate trellis
#

i also wonder what this the mod setting something to null is and the locations error thonking

pine elbow
#

Isn't that because of the tilesheet?

ornate trellis
#

not sure, lets hope we get it fixed and then see if those errors still stay or not

lavish terrace
#

well, it's displaying right ;w; but it's still the vanilla outdoors tilesheet for some reason :T better than nothing still, I suppose

ornate trellis
#

do you still have the tilesheet in your maps folder

lavish terrace
#

in tiled, before I copied into the mod folder?

#

or in the mod folder

ornate trellis
#

in the mods folder

lavish terrace
#

no, there's no tilesheets in the mod folder

ornate trellis
#

where the map is

#

hm

lavish terrace
#

idk either ¯_(ツ)_/¯

#

but this is a start :'D

ornate trellis
#

true

#

its now almost 4am i should probs really head to bed, huh

lavish terrace
#

yes definitely

#

but thank you for your help :'3

ornate trellis
#

i tried xD

lavish terrace
#

hey, I made progress!

#

that's not nothing >w<

ornate trellis
#

im just too tired i guess but good luck (to you too, sage)

brazen arch
#

Hello, sorry if this seems intrusive but does anyone know how to fix the flickering window tile at the Carpenter Shop and the missing window tile at the Saloon? I'm trying to edit an outdated town recolor mod, and I'm trying to figure out how to fix those two glitches.

brittle pasture
#

Robin's window is animated, you need to also patch the two anim tiles

brazen arch
#

Oh ok thank you so much!

brittle pasture
#

Dunno about Gus window but probably the same issue

#

you can unpack the vanilla files and compare

tiny zealot
#

the cursed window reappears

calm nebula
#

I think one of the popular mods adds the animation

#

I suspect

tiny zealot
#

fairly sure it's animated in vanilla but the tiles are all the same so it's not visible

brittle pasture
#

IIRC it is very vaguely animated with a fan animation only during the summer

lavish terrace
#

in vanilla, robin's window has a fan in summer

#

oop

#

x3c ya selph is right

heady trout
#

Hey y’all, I was wondering if theres any YouTube videos or guides that can help me and my brother make a stardew valley mod were really struggling to make one

If no one can help that's ok 🙂

pine elbow
#

Can always get help here, though!

lavish terrace
#

what kind of mod are you trying to make?

fierce vault
#

! npc

#

oops

#

Ok, wrong command

vernal crest
#

There's no space after the !. But are you doing the command for ms beans?

fierce vault
pine elbow
vernal crest
#

They didn't mention an NPC though

#

!startmodding

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.

pine elbow
#

Also if any of you have that handy dandy info graphic on how to arrange bed tile layers in tiled. That'd be greatly appreciated.

vernal crest
#

I don't know where to find it but you can just experiment Sage it doesn't take long

#

And just look at a vanilla map bed

pine elbow
#

Ack alright SDVpufferweary I'll do that tomorrow

pine elbow
#

My silliness precedes me

vernal crest
#

(I would offer you the infographic if I knew where it was but in the absence of that...lol)

#

A surprising number of people never think to look at vanilla as a guide for how to do things.

#

So you are not alone ^_^

pine elbow
heady trout
#

Well we want to make a mod were asreil from undertale was in the game and had a story line in the game. 🙂

pine elbow
#

!npc

ocean sailBOT
#
Creating a Custom NPC

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

heady trout
# ocean sail

Ok thanks ill show this to My brother and will see what we Can Do

pine elbow
heady trout
heady trout
#

Hey, would anyone recommend making Stardew mods with CTT or C#?

#

C++*

stuck wraith
brittle pasture
#

sdv is only written in C#

brittle pasture
#

!startmodding though depend on what you want to make you may not need C#, just data files in JSON

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.

heady trout
#

What programs do any of you use to make mods with C#?

brittle pasture
#

the getting started guide above has more info

#

usually (on Windows) you use Visual Studio

tiny zealot
#

if you are making a custom NPC, i recommend using content patcher and not bothering with C# unless you discover some arcane shit you absolutely need and can't do any other way

#

(you probably don't need that stuff. and if you are asking about what programs and language to use, you don't have terminal programmer brain that would make you want to use C# for an NPC /lh)

late pewter
#

Alright, I looked into it: Nope, I'm in over my head, I have no idea how to port this [SF] mod to [CP] on my own. Gonna need to practice making my own building mod in [CP] so I can understand the framework better before I try porting someone else's mod...

heady trout
#

Which Visual Studio template should I use, and is it the best for Windows?

brittle pasture
#

seconding ichor that you don't need C# if you're making an NPC (scrolled back up to your previous posts just now)

#

what exactly do you want to do beyond just adding a new character that has their own dialogue, sprite, schedule, home, and heart events? because that's all doable without C#

tiny zealot
#

however, you should install a decent text editor for editing your content files (Notepad is not decent). Visual Studio Code (sadly, not the same as Visual Studio, thanks microsoft) and Notepad++ are popular choices

late pewter
#

Also keep a tab open for JSONlint

strange dew
#

i have searched and searched and i cannot find an answer NOOO

i'm trying to make a custom animal house, but i cant figure out how to make the feeding bench function or how to add auto feeders? i have the feed hopper included but i cant find anything on what else needs to be done

brittle pasture
#

feeding benches are tiles with the Trough property on the Back layer

#

auto feeding is the AutoFeed property on the map itself

#

(I don't blame you for finding this confusing since this is only explained on the Maps page and not the Building page lmao)

strange dew
#

omg

#

thank you so much ❤️ i felt like i was going crazy trying to look for this lol