#making-mods-general

1 messages · Page 267 of 1

little anvil
#

Yup yup, at least from what I searched up, it should be right

lucid iron
#

If you tell us what exactly you want to make we can tell you if you need C#

hot gale
#

Sorry what I meant to ask I guess is what is your mod going to be, it may not require learning C# content patcher is quite robust

little anvil
#

I’m planning on starting out with simple NPC’s tho, and that I know is not going to need it

#

But I have a bigger project in mind, and ya, I just won’t start it yet

little anvil
#

But thats just a little part of it

#

Ty for helping me !!

faint ingot
#

So new food can be added by editing data/objects, if you want the player to be able to cook it you also need to edit Data/CookingRecipes and provide a way for them to get the recipe (through the mail etc). If you want "new" buffs that aren't just a new combination of existing food buffs that will be a a c# component

little anvil
brittle ledge
#

If you've done HTML or CSS, you should be fine with JSON (what most content mods are coded in), it's a similar level of complexity kyuuchan_nod2

outer schooner
#

question, how do i change what a fish pond gives for a custom fish?

lucid iron
#

Add a new FishPondData entry

dusk mulch
#

how are we doing

outer schooner
#

thank you!

hard fern
dusk mulch
hard fern
#

Im a bit confused

shut mountain
dusk mulch
shut mountain
#

I guess

dusk mulch
little anvil
#

Hey hey !! Sorry if this is a sorta stupid question, but Yk the

{{ModId}}_ in the content.json file inside the changes ?

? Well my question was what do I add after the _, because I’m really not getting it, maybe because it’s getting late, but I really have no idea what to put afterwards. SDVpufferwaaah

#

English also isn’t my first language, so I’ve just been confused while reading that part

ornate trellis
#

you put it in front of your Items IDs, Map names etc to make em more unique

little anvil
#

That’s what I’m confused about lol

ornate trellis
#

the {{ModID}} will automatically get converted to whatever ID you put in the manifest for your mod

little anvil
ornate trellis
#

yeah for example, you wanna make an item. The object.json wants you to give it an ID so you can go {{ModID}}_YourItemName to make the item name more unique (same goes to when you make NPC events etc)

little anvil
#

Tysm !! I get it now, ty helping me SDVpufferheart

ornate trellis
#

👍

ivory plume
#

(@rancid musk I'll need to postpone my mod updates a bit. The updates depend on SMAPI 4.2.0, but there's a couple of users reporting crashes with that update, so I want to look into those before I enable update alerts for 4.2.0.)

worldly sundial
#

Hey everybody I'm new to modding, what happens if two mods do a harmony post or pre patch on a function? Does it crash or does one get chosen to go first? If one goes first and returns false does it not go on to the next?

brittle pasture
#

every prefixes and postfixes are applied and run with no issues (if they arent skipped)

#

as for skipping, from the harmony docs:

The first prefix that returns false will skip all remaining prefixes unless they have no side effects (no return value, no ref arguments) and will skip the original too. Postfixes and Finalizers are not affected.

rancid musk
craggy cape
#

tryna make a compat for foragers nooks and crannies and cuter mines + blue grass recolor. Only issue im having is getting the recolor to show.

#

i replaced the tilesheet in the mines tmx of FNC with the cuter mines one, otherwise the brown dirt appears

lucid iron
#

What is usecase

uncut viper
#

it catches exceptions doesnt it, evne if its not from one of your patches

brittle pasture
#

I guess if you're really paranoid about other ppl's patches crashing?

uncut viper
#

it guarantees your code runs after a function no matter what

#

unless your finalizer crashes ig

lucid iron
#

If someone else patch crashed im not sure if I trust gamestate enough to let my own patch run

craggy cape
uncut viper
lucid iron
#

That makes sense Dokkan

green patrol
#

Hey hey quick question on making items inherit a color from its input. Ik the wiki says you have to include "ColorOverlayFromNextIndex": true when defining the object. Is there anything you have to do when defining the machine rule for the corresponding output? Kind of like how you can inherit an item's ID with the "PreserveId" field?

Asking bc uh...well I have a colored sprite and it's not applying the color . I have the colored parts in the spritesheet and the color overlay property set to true

nvm I found the issue. forgot to set the copycolor thing in the custom data

worldly sundial
#

Maybe I'm dumb but I don't see in the docs, is there anyway to know (or request? enforce?) execution order for two pre/post patches? I guess its probably unreliable to assume one way or another so I would want my patch to work either way for potential other mod compat

gentle rose
#

you can't guarantee yours will load after everyone else's because what if they also want to do that, you know?

uncut viper
#

patches can have priorities relative to other patches or mods

lucid iron
#

But don't preempt compat tbh

#

Is there a specific problematic mod?

gentle rose
#

(Harmony has priorities?)

final sequoia
#

Hello! I have given my NPC life, and he now moves. Trying to figure out a schedule kind of sucks. But I found he is currently taking a very efficient, but not really believable, path to place. For example, in one instance he goes from the Mountain to the Fountain in the town - except he is walking behind the Community Center. Okay, sure, but no.

Is there a better way to have him walk in a more believable path? (Like, for example, the other villagers who walk down the path towards the town.) I thought of putting little spots for him to go to on his way to the fountain, but see NPCs will stop where they are supposed to go and then continue when the time does another tick. If I did it that way, he would be found occasionally "stopping" depending on when he lands on the spot before continuing. Which may look even weirder.

gentle rose
#

huh. Harmony does indeed have priorities. I don't think I've seen them used yet in stardew though SDVpufferthinkblob

rancid musk
lucid iron
#

i used it once

gentle rose
#

looks like you can also explicitly request running before/after patches with specific IDs

brittle pasture
lucid iron
#

dalion's enchant mod broke me mod

gaunt orbit
gentle rose
worldly sundial
#

I'm only thinking about the compat because I was looking at a large popular mod (item extensions) to help myself learn and ended up doing something very similar.

Ah I see the priority in the docs now, thanks! I'll keep it in mind if I get to that point

lucid iron
#

but yea its the reason why we recommend mod id in the harmony constructor

#

so u just go a before "mod id" and it goes

brittle pasture
gentle rose
#

nearly reacted a sleeping cat instead of pufferwow. I think I should interpret that as a digital freudian slip

gaunt orbit
urban patrol
#

does anyone know the pros/cons of using Action Message vs. Action Dialogue? It seems to me like it would be easier to just use Dialogue instead of messing around in Strings, but maybe i'm missing something

gaunt orbit
#

The main other difference is the tooltip

#

Message shows a spyglass cursor, Dialogue I think has the normal interact cursor

urban patrol
#

i see i see

gaunt orbit
#

From what I recall, Message is typically used for things like signs, while Dialogue is used for stuff like Welwick at the fall fair

urban patrol
#

hmmm okay

uncut viper
#

message also does not do tokenizable strings

hot gale
#

leetle aliens inhabit the ship now

true coyote
#

So I'm fixing a bit of code for my fences -- I'm looking to make sure that my changes are correct.

            "When": {
            "Seasonal": "True",
            "Grass Change": "SB Blue Spring",
            }```

If I change the file path directly to this single file when the config option is set to it, will it then continue to the rest of the seasonal stuff (ie this one's spring, so would it continue to call the other seasonal files correctly for sum/fall/win) -- or do I need to add a `when: Season : Spring` modifier?
#

I 'm also not sure if just leaving it as picket fence blue_{{season}}.png would still work, since a summer fall and winter version dont exist

urban patrol
uncut viper
#

or just conditionally edit the tile property

urban patrol
#

makes sense

brittle ledge
brave fable
# final sequoia Hello! I have given my NPC life, and he now moves. Trying to figure out a schedu...

hi, pathfinding tries to prioritise dirt and stone tiles over grass by assigning them each a value/cost and calculating the best-value path, but if the full path behind the community centre is that much shorter then it'll be preferred even if each individual tile isn't.
it's probably best you have him stop for a short break out front of the community centre so he can plot two preferable paths rather than beelining from mountain-to-fountain

#

or as tia said try and park him south of the fountain if you don't mind changing the endpoint. i don't think it'd look weird, and no user in the world is going to think 'hey, this guy's pathing is blatantly contrived to manipulate the pathfinding algorithm. what a sham'

#

or maybe they will, i'm not a user

dusk mulch
#

so i have made the minigame, how do i get it into SDV though

brave fable
#

probably you can't directly, you'd need to translate it to use the game events and instances

dusk mulch
#

this took me like a week

brave fable
uncut viper
#

i would like to remind that you were told at the very start that it was not a matter of simply dropping it in

lucid iron
#

there's this IMinigame thing that you need to subclass

#

it provides stuff like update loops

uncut viper
#

for what its worth, making a minigame in monogame in the first place is still an achievement to be proud of

dusk mulch
gentle rose
lucid iron
#

yea i mean now u just need to go make ur first buildable C# mod

#

then figure out what code to paste where

brave fable
#

yep from here it's pretty trivial, the creative part is the hard part. this is just copying it in and fixing it up

lucid iron
#

bit of a roundabout route but not really a waste

brave fable
#

anyway as i said, subclass IMinigame and fill in the blanks (note: IMinigame is one large blank)

dusk mulch
#

alright... i will go see how long this takes me

lucid iron
#

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

brave fable
#

consider looking at TargetGame, FishingGame, probably not AbigailGame for reference on each of the methods in IMinigame

lucid iron
#

follow the C# mod guide to make that button press mod first

brave fable
#

person's already got the tutorial mod down pat

dusk mulch
lucid iron
#

yep then u look at decompile and see how minigames get started

dusk mulch
#

ty!

lucid iron
#

u just need to make it start your mini game instead

dusk mulch
#

well its nice to have an example to go off of

brave fable
#

the base game does have a whole bunch of examples as well though. virtually all cutscenes implement IMInigame

#

it's not just the games

dusk mulch
#

so i need to make a new project with the Nuget packet?

uncut viper
#

the reason it was suggested originally to just try making one in monogame first is bc IMinigame really is just one big blank like blueberry says. you can kinda do whatever in there, so long as you understand the fundamentals of C# and the monogame framework

dusk mulch
#

ahh, alright

brave fable
#

you can work off your tutorial buttonpress project if you like

uncut viper
#

you can draw whatever you want to the screen and dont need to worry about being constrained by some data model or anything

lucid iron
#

sdv space cadet when

dusk mulch
brave fable
#

yeah it sounds pretty awful trying to follow a tutorial for learning c# for making a simple game while applying sdv behaviours and content pipelining as you go

#

that's a good thing

brave fable
#

being constrained is a bad thing

lucid iron
#

beloved

dusk mulch
#

istg im going insane, every time i switch tabs i see someone start typing then when i switch back nobody is typing

brave fable
#

i briefly thought about pinball in sdv as a funny, but also i don't have a goddamn clue

hard fern
#

Juniball

tawny ore
#

In this case being free from constraints is a good thing, but I wouldn't say that's always true. Pixel art, for example mostly exists because we didn't have the ability to produce better graphics than a limited palette and low-resolution. That's a constraint that games were given, and as a result we have an artform that most of us can appreciate today.

uncut viper
#

what about Pinmo? healthy and strong

tawny ore
#

Sometimes working inside the box helps you be more creative

rancid musk
#

You run across some of the most peculiar code decisions working on game modding.

#

Found someone who was passing around Func<ModEntry> instead of just ModEntry...

tawny ore
#

But what if you want to pass a different ModEntry, huh?

rancid musk
#

That's the neat part. You don't.

tawny ore
#

Imagining the use cases where you might want to arbitrarily pass different mods, and you need to have dynamic state

lucid iron
#

like what is the usecase besides calling it directly

tawny ore
#

I was told parameterizing everything is better, and the logical progression of that is having all the parameters also dynamically reload on every call

rancid musk
#

In this specific case they're using primary constructors for the class and then using it like cs internal class SomeClass(Func<ModEntry> modEntry) { internal void SomeFunction() { if (modEntry().SomeThing()) // ... } }

lucid iron
#

well at least its not ai code right

#

cant imagine any llm giving you this pattern

tawny ore
#

Is it not though... weird coding decisions seems suspiciously like AI to me

#

I guess never attribute to AI what can also be explained by inexperience

lucid iron
#

in the various times i tried genAI a sdv mod for funsies

#

they do tend to get the ModEntry thing right

#

bc thats very publically available

#

the LilyDerp comes in whenever they need to access game internals

calm nebula
#

Or maybe not

rancid musk
#

I mean not knowing how classes work wouldn't get you directly to Func<ModEntry>, but I could see someone accidentally-ing their way into discovering primary constructors.

#

Though I'm not criticizing the constructors. They're... fine? lol

tawny ore
#

It doesn't help that some IDEs automatically suggest you use primary constructors

lucid iron
#

im glad im safe from khloe audit as ive never made a game menu related mod kyuuchan_run

#

i like primary constructors tho...

tawny ore
#

I don't mind the primary constructor pattern, but I hate how IDEs automatically suggest them as a replacement for assigning readonly private properties

ornate locust
#

hypothetically, if I want dialog to appear after the Railroad opens up, after that overnight event, how would I... I can't really find where that event is or if it has an ID or anything

lucid iron
#

you can't just hard code the date?

uncut viper
#

use the location accessible GSQ

tawny ore
#

No one is safe from Khloe. Who know what game mechanic she will tackle next.

lucid iron
ornate locust
#

Actually either of those would work, true.

lucid iron
#

sweats

uncut viper
#

if you mean you want like a little dialogue box to pop up right after the midnight noise, i dont think you can

tawny ore
#

inb4 better animal shop menu or something

ornate locust
#

Thanks, coming at it from the wrong angle

dusk mulch
#

Is there documentation for IMinigame?

uncut viper
#

the existing minigames are the documentation

gentle rose
lucid iron
#

didnt you already get audited

tawny ore
#

Most mods require a lot of reverse engineering without much if any documentation since SDV is a closed source game that we decompile to see how it ticks.

dusk mulch
gentle rose
#

don't see how. there's nowhere to audit me on. if only there was a hub for git or something

uncut viper
#

nothing to apologize for. there just isnt documentation for it, bc theres nothing to document. its freeform

tawny ore
#

ilspy all your mods

brittle pasture
#

kids these days and their fancy hubs of gits. back in my days we trade patches over usbs mailed over post

calm nebula
#

You what

uncut viper
#

you didnt atra?

lucid iron
#

just include a console command that prints your entire source ez

tawny ore
patent lanceBOT
calm nebula
rancid musk
#

git has always existed and we never had to rely on cvs or svn or mercurial nope there is good version control in ba sing se

gentle rose
#

back in my day we used semaphore towers to broadcast the binary executable bit by bit

lucid iron
#

well, people did literally have source code in magazine for the reader to compile

rancid musk
#

Modders not using GitHub, I hope you're at least using git locally to keep a history of your changes.

gentle rose
#

...you weren't here the other day for the ilspy crimes, were you

rancid musk
#

do the ilspy crime do the why isn't my transpiler working time

tawny ore
#

If you're not worried about losing all of your code, then it's not a big deal

gentle rose
#

see here

dusk mulch
#

i will go make a backup real quick

gaunt orbit
gentle rose
#

(for ILSpy crimes)

gaunt orbit
#

Long answer: if you ever need to undo changes or get back something you deleted, or want to be able to work on multiple features at once without them interfering with each other, you're fucked without version control.

#

Also using github gives you a remote backup in case your computer breaks, and also makes it easier for people to see how your mod works

odd ginkgo
#

Hey all! Super massive thank you, I was able to publish my desert canyon mod today

lucid iron
#

github isnt the only git host

gaunt orbit
#

Very true

lucid iron
#

you can also use gitlab codeberg etc

odd ginkgo
calm nebula
#

Gitlab is the other major one

lucid iron
#

point is just offsite backup really

odd ginkgo
#

couldn't have done it without ya'll

lucid iron
#

and ez way to share w/ people

#

do you want a showcase?

dusk mulch
#

well i just made a backup of both of my C# projects

gaunt orbit
#

Bitbucket and gitlab are also options, as is self-hosting if you have server space

tawny ore
#

I had a power fluctuation that fried my primary drive, and lost a day or two of sdv mod code because I hadn't recently pushed it to GitHub

#

That was awhile ago, but I learned my lesson then

odd ginkgo
# lucid iron do you want a showcase?

That would be awesome! plus the more people try it out, the more bug-fixing I can jump into haha.... although I'm really hoping there's minimal bugs

tawny ore
#

And it was one of those days where I was in the zone coding a new feature, so it was a lot of lost progress

dusk mulch
#

well what git hoster do yall recommend?

lucid iron
#

theres zero bugs if you never test ez

gaunt orbit
lucid iron
#

what would you like me to say?

#

usually ppl do a sentence or two

tawny ore
#

I use GitHub, but I also self-host Gitea for private repos I maintain like ones with my system config and stuff

gaunt orbit
#

Github is fine but I only use it because I already had an account. Haven't tried any others, so I can't speak for them one way or another

odd ginkgo
#

ummm, maybe that it's a mini content expansion that I made because I was homesick for arizona, it has a new crop, new barn animal, a few recipes, and items

rancid musk
#

GitHub is definitely fine.

dusk mulch
tawny ore
#

I don't just upload though. I use git.

dusk mulch
tawny ore
#

The entire concept of version control

dusk mulch
#

Okay... how do I set up "git"?

gaunt orbit
dusk mulch
#

Windows

tawny ore
#

The main difference is how I manage changes in my code. I can code on a branch and push when it's ready. I can maintain an entirely separate worktree for a major change I'm working on the side. I can also accept changes from others, like for translations.

#

Git helps manage all of those things for me.

dusk mulch
#

Interesting

tiny zealot
#

feature branches my beloved

#

since it keeps history, if you update a mod and you introduce a regression, you can easily compare the new code with what it was before, to help you figure out what you missed

lucid iron
#

im pretty sure i used git incorrectly when my feature branch started with tossing out the entire previous mod

tiny zealot
#

tl;dr version control is indispensable, don't do programming without it

tawny ore
#

tbh I learned enough git at first to get by. Like you can go far just understanding clone, add, push, pull, commit. I took a long time to properly understand things like branches or even resolving conflicts.

uncut viper
lucid iron
#

is there a distinction between "feature branch" and "branch" in git itself

tawny ore
#

Conflict resolution for me before was basically just forcing changes and sometimes wiping out history, which is definitely the wrong way to do things.

uncut viper
#

i dont believe so

tawny ore
#

Calling it a feature branch is more of a convention because every change is a feature. It's distinct from your main branch though.

#

So it's really just to differ itself from your main branch, if you decide to use that convention.

#

Most modders probably just commit/push into main

lucid iron
#

ah yea i called my new branch main bc it was previously master and i wanted to unify that Dokkan

tiny zealot
#

i call it a feature branch if i make it to keep an in-progress feature separate from my dev branch

uncut viper
#

i usually just commit to main bc i dont really have things i consider off-shoot features, theyre usually just kinda the main point

lucid iron
#

mods are just self hosted feature branches for the game if you think about it

tiny zealot
#

i typically do that if i expect significant changes and/or time commitment

uncut viper
#

reworks get a branch though in case i decide i wanna just toss it all out

#

i know i can just reverse commits but its easier to just delete a branch

#

and not be tempted to work on other, non-rework things in the middle

tiny zealot
#

yeah if the feature doesn't pan out for whatever reason, i just delete the branch. and if i'm not done with it and other things come up, it's painless to switch back to the dev branch or to another feature branch for those

tawny ore
#

I'll do a branch and worktree so that I can easily navigate between the stable and alpha version of my mods

lucid iron
#

the other reason why im bad at git is bc instead of being smart and branching first like ichor

tawny ore
#

Like I can still easily do bugfixes on stable without worrying about some of the major changes I've made in my alpha

lucid iron
#

i hard reset to the last non fubar commit LilyDerp

tiny zealot
#

these days i have prod for the mod as it is published and dev where i do work. and i do some byzantine stuff with release branches before merging to prod

lucid iron
#

re this, i think it'd be a lot of effort on player's part

uncut viper
#

its an option you can do for a reason

tawny ore
#

I've said this before, and I don't know if this is still the case, but Digus is one of the few modders I've seen do proper feature branches in their mods

lucid iron
#

wow this is very proper i respect it

uncut viper
#

tbf wouldnt you not know if most others did, since you can delete a branch once its merged and it wont show there?

tiny zealot
#

one nice thing about git is you don't have to make the branch until you're ready to commit. you can start working on a thing, realize it's going to take more than a quick one-off, and then do checkout -b just before

golden basin
#

Crawls in

lucid iron
#

i only ever do proper branches with it's a PR tbh

tawny ore
golden basin
#

I posted my mod concept question in the wrong channel like a dummy

uncut viper
#

sure but how often are you looking in there for other modders

tawny ore
#

I look at everyone's repos, branches, and PRs /s?

lucid iron
#

i think nermnermnerm has a scheme where they PR themselves

uncut viper
#

oh, you're a git user? name every pr

lucid iron
#

with a different git acc

uncut viper
#

i am actually much more branch and PR proper and best practices and whatnot on my professional account. im just more fast and loose on my personal account which is what i use for modding

golden basin
#

I feel weird typing my question again I don't want spam, could a coder go look in #programmers-off-topic and see my question? If it's okay

lucid iron
#

yea i forwarded it

golden basin
#

I posted in the wrong channel before

lucid iron
#

although hm

golden basin
#

Ooo

lucid iron
#

i think Let's move it let you move NPCs too right

tawny ore
#

I think both channels are probably swapped at the moment because we're getting into more coding talk than modding

uncut viper
#

we arent talking about dna in here yet though so its fine

lucid iron
#

no we r auditing best git practices

golden basin
#

Channels are hard to keep track of pfff

lucid iron
#

i keep track based on whether Crumble is there

tawny ore
#

Looks like Digus has moved to the master+develop branch which is what I see most commonly used in SDV mods like what Pathos has in his StardewMod repo.

ornate locust
#

not for festivals anyway

lucid iron
#

yea but u just need to get the blokes out so u can talk

ornate locust
#

ye.

#

I've done it before

tawny ore
#

Should make a mod where you can spam click on NPCs and have them move a tile like you can do with Chests

ornate locust
#

Had someone with that looping dialog on someone else, picked em up and chucked em over

lucid iron
#

and let me pick them up

royal stump
#

I'd worry a lot more about branches if anyone else had direct access to my repos SDVkrobusgiggle
if it's just PRs and I'm writing one update at a time, it's just "main" and maybe a "dev" if I remember

tawny ore
#

I suppose grab and throw like Zelda could be fun too

ornate locust
#

Hilarity: Picking up Lyell

#

guy's like 7 feet of wall, just pick him up like a chicken

golden basin
#

I was imagining a hand tool and you pick em up, the npc vibrates like they're scared as you move them and then you can place somewhere else

brittle pasture
#

the farmer can carry 999 iron bars, they can handle him

lucid iron
#

hmm

#

mod that makes your farmer says Excuse me

golden basin
tawny ore
#

(in vanilla)

lucid iron
#

gold is heavier

golden basin
#

Is it? I didn't know that

tawny ore
#

I wouldn't know. I only have a cast-iron pan, not a cast-gold pan.

ornate locust
#

farmer may be an anomaly of some kind

lucid iron
#

Gold: 19.30 g/cm^3
Iron: 7.87 g/cm^3

uncut viper
#

but what about iridium

lucid iron
#

so assuming the sprite is depicting bars of same size gold is heavier by a lot

tawny ore
#

I wonder if that's the heaviest stackable item in the game. Would Diamond technically be heavier?

lucid iron
tawny ore
#

Assuming it's possible to have a brick of diamond.

lucid iron
#

iridium 22.562

#

but sdv iridium is magic and purple so who knows

#

the gems r ambiguous cus idk if u literally have a diamond the size of your head

lucid iron
#

if we going by crafting logic

#

anvil = 50 iron bar

tawny ore
#

Is it stackable?

lucid iron
#

its a big craftable yea

tawny ore
#

I feel like this is a "They Did the Math" moment

brittle pasture
#

how about solid gold lewis

tawny ore
#

Assuming 999 Anvil and 36 backpack slots, at 50 iron bar per anvil

lucid iron
#

oh thats true but u can only get one of those

calm nebula
#

Aren't diamonds just carbon

royal stump
#

one of the statues seems competitive too SDVpufferthinkblob

tawny ore
#

Iridium Bars have to be light, or the farmer has got some muscular fingers

calm nebula
#

Maybe the recipe is inefficient

tawny ore
#

True, we have to account for material loss

royal stump
#

I can only assume it's hollow and full of compost

ornate locust
#

It's not like we have any smaller versions of smelted ore

#

you have this entire bar with a ring-shaped hole in it

lucid iron
#

the real recipe only needed 1 bar and 10 essence each but we suck and messed up 4x

calm nebula
#

Anyways

tawny ore
#

I think Anvil has the highest quantity of any bar in its recipe. Just browsing the wiki.

calm nebula
#

Iridium irl is v dense and comes from space and isn't purple

brave fable
ornate locust
#

It's not like we can make the recipe "1/10th of a bar" though

#

not an option, it's a bar or nothin

brave fable
#

so give me 10 rings.

tawny ore
#

I mean in machining, waste material is a factor if there is a high rate of failure

#

Maybe the ring only really uses half a bar, but there's a 5% success rate

#

Why has no interviewer ever asked CA these questions. The people deserve to know /s

calm nebula
#

Please, Mr. CA, what is farmer's max squat and max deadlift

#

Curious players want to know

ornate locust
#

"yes and yes"

brave fable
#

you literally can't even lift one of alex's dumbbells. pathetic

ornate locust
#

That's because they're made out of black holes

gentle rose
brave fable
#

i don't believe alex is worthy of anything

calm nebula
#

He is worthy of those dumbbells

#

And nothing else

#

In life

#

Dude eats raw eggs

gentle rose
#

what is with the alex hat-- yknow what, valid

#

that is a weird thing to do and he probably hs a tiktok account where he makes way too much eye contact with the camera

calm nebula
#

I guess so does the farmer (eat raw eggs)

ornate locust
#

So he's roughly the size of a barge?

dusk mulch
#

where are the .dll files for ILspy?

calm nebula
#

Oh, Alex spends 50% of his free time posing in front of the mirror

#

Hitting lat spreads or whatever

brittle pasture
dusk mulch
dusk mulch
tawny ore
#

!decompile

ocean sailBOT
brittle pasture
#

yeah I was confused by the "ILspy dll" part

lucid iron
brittle pasture
#

ilspy is a program for decompiling. it presumably has dlls, but you want to use it to decompile the game's dlls

brave fable
#

can i feed alex an ostrich egg 📝

tawny ore
#

It works on any? dotnet application, including closed-source mods, but don't use that for evil

brittle pasture
#

yes, he tells you he will slurp on it for a week

tawny ore
#

I'm just imagining him sticking a straw right in it

rough lintel
#

heyo, how do i add machile rules and make sure they go to the top of the list rather than at the bottom?

#

machine* wtf

brittle pasture
#

MoveEntries

rough lintel
#

oh! thank you

brittle pasture
#

if you need examples, cornucopia as always has some; it adds veggies and fruits with unique keg/jar outputs

rough lintel
#

does it delete the vanilla entries of those items, or just move their results to the topo

brittle pasture
#

move to the top

#

pls dont delete anything vanilla

tawny ore
#

The way not to do it is to replace the entire list, and I mention that because that's definitely something other mods have done. Don't do that.

rough lintel
#

oopsie i inherited the wrong item flavor

tawny ore
#

Replacing the entire list including the vanilla entries is kind of like doing a prefix Harmony patch where you copy all the vanilla code

calm nebula
#

Got it, prefixing game1.update

#

God I feel like shit

lucid iron
#

Matt do u knw that one mod which loads xnb over crafting recipes

calm nebula
#

(Unrelated)

lucid iron
#

What is it called again

drowsy pewter
calm nebula
#

Don't we all, lol

brittle pasture
royal stump
#

(same but with anything that tries to multithread)

drowsy pewter
#

definitely tidier without all those extra modded recipes

brittle pasture
#

to be fair it's only a problem if two mods do it

calm nebula
#

(Or if a mod breaks 1.6 changes)

#

(Or causes special orders to die because they changed the internal name of a fish)

brittle pasture
#

yeah, lots of "1.6 recipes misisng" bug reports with that mod

#

when 1.6 came out but it wasnt updated

#

and if 1.7 comes out with new recipes that's a new batch of bugs as well

#

tldr pls just use better crafting

rough lintel
#

is additional consumed items used in vanilla

sour sleet
brittle pasture
#

yes (coal for furnaces)

rough lintel
#

oh thank you

brittle pasture
#

it will make every recipe for that machine need those fuel

rough lintel
#

not just that output item?

#

oh fuck

brittle pasture
#

yep
you need extra machine config for per-recipe fuel

rough lintel
#

i see

#

okay

#

ok tweaked

drowsy pewter
#

Yeah cause if you notice, additional consumed items is listed on the machine-level tier of data rather than in the outputrule data

rough lintel
#

okay, now the question becomes... if no fruit available, i just want it to default to making regular fresh soju. but since the flavored iteration is at the top, it automatically makes me require said extra fuel

lucid iron
#

thats what EMC is for

rough lintel
#

it can do that too??? hoyl shit

#

im looking at the docs rn my bad fellas

lucid iron
#

yea cornucopia flavored mayo as mentioned

drowsy pewter
#

I think you can tell it to skip the rule if unavailable

#

Let me think

lucid iron
#

but hm

#

you would want to do it like fruit main ingredient

drowsy pewter
#

You can't because this is supposed to coexist with wine in kegs from what i understand that lani said?

rough lintel
#

nodnod

drowsy pewter
#

If theres no fruit available, it uses the second nonflavored output

rough lintel
#

! oh....!!

drowsy pewter
#

I do something like this with yogurt qualities in cornucopia

#

(different output qualities from the same input based on the quality of the fuel)

rough lintel
#

but then all wine ded

lucid iron
#

no u do it like

drowsy pewter
#

You can fix that thing with EMC too

lucid iron
#

fruit main thing, unmilled rice fuel

#

but the fuel is output specific

rough lintel
drowsy pewter
#

You can't make the fruit the main thing because the player would not be able to choose whether to make wine or soju (except by controlling whether or not rice(?) is in their inventory, which may lead to a lot of mistakes)

lucid iron
#

the thing EMC gives you in this case is per output fuel, vanilla only let you set a shared fuel

drowsy pewter
rough lintel
drowsy pewter
#

Inside each OutputItem block, you can set a different item output

rough lintel
#

so should i make rice the fuel, or keep the various fruit at the fuel and make the rice the thing you drop in

#

just so i dont fuck with wine

#

and who tf is making unmilled rice juice, anyways

drowsy pewter
#

I personally believe that fruit as the fuel makes sense to not clash with wine, though it also means that players will have a bit less control over what flavor soju they make (having to rearrange their inventory to make sure they're using the right fruit)

#

You could also test both approaches and see what feels better to play with?

#

You should think about automate users as well since many modded players use that

#

Personally I'd make a new machine but I can understand finding that to be a hassle for just one item

still frost
#

im wanting to make a personal patch for a mod, the mod edits the cellar layouts, the problem is unless you use specified farmhouse layouts(which i dont plan to use atm) the warp points are off. am i correct in assuming the fix is as simple as finding the warps in the content.json and editing them to match the proper coordinates?

calm nebula
#

I think cellar may be hardcoded

rough lintel
#

to inherit the fuel preserve id, i just do the "selph.ExtraMachineConfig.InheritPreserveId": true, in customdata?

drowsy pewter
#

You actually want the thing from the section above that (in the EMC author guide)

brittle pasture
rough lintel
#

woof

still frost
calm nebula
#

Hardcoded = not editable outside a c# mod

#

I think Cellar.cs has it

gaunt orbit
#

yes

uncut viper
#

i dont think anything in Cellar hardcodes it? there was nothing in Cellar.cs when i was poking around in it last night

#

if its hardcoded its elsewhere

gaunt orbit
#

you can move warps but not add any

#

I know you can move the cellar entrance, but I forget how exactly that works

uncut viper
#

are you sure bc i didnt see anything that moved the entrance either

gaunt orbit
#

let me check ilspy

uncut viper
#

the cellar stairs are one of those fucked up map overrides

rough lintel
uncut viper
#

that the farmhouse has

#

i spent like several hours trying to move all of them

calm nebula
#

And cellar.cs handles warping you back to the right farmhouse I think?

uncut viper
#

yes but it just updates the target location

#

like the name of the location

still frost
#

theres a warps.json in the cellar mod, and i dont really know coding languages but this looks like the normal framework im used to

gaunt orbit
#

it is not hardcoded as far as I can tell. But you do have to use TouchAction Warp Cellar for the cellar entrance rather than a real warp

calm nebula
#

What about thr warp back

uncut viper
#

that wont change the position of the stair tiles themselves, though

gaunt orbit
#

you also have to move the tiles in Maps/FarmHouse_Cellar

#

it's a full-map overlay, so not position hardcoded

#

I think that is new in 1.6?

still frost
uncut viper
#

its not hardcoded in that sense, but it's also still not possible to set where it goes on the farmhouse map itself

#

you have to design the overlay for the specific farmhouse layout

#

which is why its a pain and not very helpful still

gaunt orbit
#

and adjust the warps in the cellar

#

if other mods are moving it, they should be just editing warps (and the stairs patch)

#

so in theory just loading your map with the vanilla warps should be okay if you want to replace the cellar

drowsy pewter
#

I've never used that feature so im not sure!

rough lintel
#

the PB&J uses it though

#

in cornucopia sweating

drowsy pewter
#

theres no pb&j in cornucopia lol

rough lintel
#

wait holy shit thats just an example on the wiki im dumb

#

goodbye im flying away

#

god it was just so convincing

#

anyways!

drowsy pewter
#

:pufferwave:

still frost
#

it looks like in the mod theres already two variants of the cellar, one with the cellar stairs out on the top right and one on the top left, i want to use the top right variant instead of the top left one. the top left one is the version with the unmodded farmhouse layout. does that explain my problem better or am i making less sense?

rough lintel
#

yknow what. ill just test it out and see.

#

haha put requiredtags instead of requireditemid silly me

gaunt orbit
rough lintel
#

damnit, now it doesnt brew flavored soju 🤣

still frost
brittle pasture
rough lintel
#

ooh

#

ok changed

#

does that make the internal name change to DROP_IN_ID_1 as well, or keep it as preserve_id_1

brittle pasture
#

keep it PRESERVE_ID_1 yeah

rough lintel
#

attempt 3

still frost
#

maybe ill just get one of their farmhouse layouts instead lol, im not too attached to the vanilla layout anyway, ty for the help pointing the way though peeps SDVemoteheart

rough lintel
#

it does not let me put the rice in even if i have a fruit in my inventory 💔 frick

gaunt orbit
#

ah I see sorry

still frost
brittle pasture
rough lintel
#

sure did

brittle pasture
#

also check Lookup Anything

still frost
rough lintel
#

it did before when it was two seperate recipes, but once i added freshsoju as its own output to the inputting rice thing it just doesnt like it anymore

#

ill use LA and see

#

attempt 5…

#

mfw fruit in my inventory still no dice

#

im gonna BLOW UP

lucid iron
#

why do u have query

rough lintel
#

i dont, its just a condition

lucid iron
#

is that how LA displays the GSQ?

rough lintel
#

yeah

lucid iron
#

would like to see original either way it looks slightly strange

#

also u can do debug gq yourquery in game to test stuff

rough lintel
#

it just keeps acting like i have no fruit is where i'm at rn lmao

drowsy pewter
#

lets try removing the default soju rule and trimming down any unknowns (like the condition) to just make sure we can test the flavored rule itself

rough lintel
#

oh its commented out already

lucid iron
#

category_fruits

rough lintel
#

god damnit

#

attempt 6 pepeTorch

drowsy pewter
#

hahaha

rough lintel
#

ok its back to working, but sometimes itll make default soju when i have a fruit in the inventory 💀

#

also its STILL using the wrong name bwehhhfdjsjksh

#

but its working and thats what matters maybe

lucid iron
#

it should work now

#

dont mind the beer for testing

rough lintel
#

attempt 6.5 because i need to see why it’s inheriting the wrong color

brittle pasture
#

ah, it's because it's copying the color from the rice

rough lintel
#

also, would {1} Soju work instead of {0}

#

(i answered my own q. it wont)

lucid iron
#

this is the other reason why i was like main ingredient

rough lintel
#

im seeing your side now chu lmao

lucid iron
#

EMC should let u do it tho

rough lintel
#

but alas, i must be complicated

brittle pasture
#

actually it won't
you can't set color of fuel as primary color yet
I admit I didn't expect ppl to break that feature open with all the different combinations of color/flavoring

rough lintel
#

tadah

#

okay, this thing at least recognizes different internal name for when it uses a diff fruit now, so partial win

#

however, name still borked, and color needs to be inherited properly 🥹

brittle pasture
#

ah okay I see the issue

#

your fuel flavor is being passed into the item's secondary fuel instead of its primary fuel

rough lintel
#

!

brittle pasture
#

so your item has two flavors currently - the main flavor, which is Rice, and the secondary flavor, which is the fruit

#

so what you need to do is:

  1. change %PRESERVED_DISPLAY_NAME to %EXTRA_PRESERVED_DISPLAY_NAME_1
  2. make the monochrome color mask one tile away so it uses the color of the fruit instead of the rice
drowsy pewter
#

learning

rough lintel
#

so this needs to be ANOTHER tile away instead of next to it?

#

currently theyre next to each other

brittle pasture
#

yes SDVpufferwaaah

rough lintel
#

dang what the flippy

brittle pasture
#

as I said, I did not anticipate the "fuel's flavor/color into output's main flavor/color" use case

#

I was like "who does not want the main input's flavor/color as the output's main flavor/color"

#

apparently at least two people (you + that mead mod author)

half tangle
#

Does anyone know where in Content some kind of footstep sprites are? Like when the player walks in snow

lucid iron
#

tbh this seems fine?

rough lintel
#

ooooof then what do i do about coloroverlayfromnextindex

brittle pasture
#

keep it true just in case

rough lintel
#

because it defaulted to the normal one prrbt

lucid iron
#

search farmersprite if (footstep == "snowyStep") for context

brittle pasture
half tangle
#

thanks, chu! looks like I'll have to do some work after all lol

#

(that was correct, just need something a bit different)

rough lintel
#

attempt… 7

mystic skiff
rough lintel
lucid iron
#

lani what if you make the rice color the label

#

in case u like

#

have different color rice later (is that even a thing)

rough lintel
#

(it is not a thing)

#

got the translation right at least 💀

brisk wedge
#

anyone here use hot reload in c# (i assume only available through visual studio?) if yes how easy is it to use and how complete is it

calm nebula
#

Incredibly easy to use (hit one button!) Very incomplete

brittle pasture
rough lintel
#

lets check

#

omg hey pathos

dusk mulch
#

oh how come we cant have tilesheet climbing but CA can have 20+ lines of tilesheet climbing without problems SDVpuffermad /j

ivory plume
#

(That looks like a decompile of part of .NET, not the game?)

dusk mulch
#

i did say /j

uncut viper
#

well, you can have that kind of climbing too, if you want, as long as its just for your csproj

brisk wedge
dusk mulch
#

are yall sure the IMinigame thing is in the dll file?

rough lintel
#

where would i see the internal name of this.

#

because LA does not seem to show it.

brisk wedge
#

tbh im just fishing for a better setup because I've been doing close game -> edit file -> re build -> open game again and there has got to be a better way to do this

brittle pasture
#

enable data mining fields

lucid iron
#

if u rebuild less it is not that bad Dokkan

rough lintel
#

okay checking again

brisk wedge
#

I am bad at writing correct code :((

rough lintel
#

i realized i set up my output to be “flavored soju 50% of the time, fresh soju 50% of the time” instead of ALWAYS BE FLAVORED IF POSSIBLE

#

so i need to tweak that

lucid iron
#

hot reload is nice to have ofc, but it doesnt work very well outside of IDEs (vs and rider)

#

i dont have it but i did at least setup debugger

rough lintel
#

im going to assume it did not log the Peach anywhere

dusk mulch
#

thats it im getting lookup anything

#

it seems too good

brittle pasture
#

nope
maybe try again with fresh items?

#

oh wait

#

I see the issue

rough lintel
#

?!

brittle pasture
#

put "selph.ExtraMachineConfig.ExtraPreserveId.1" (and Color) in ModData, not CustomData

#

(they're ModData because they are not just machine features)

rough lintel
#

like so?

brittle pasture
#

basically make a ModData dict right below CustomData and put those in

dusk mulch
#

what part of the Stardew Valley.dll file is IMinigame in?

brittle pasture
#

yep

rough lintel
#

ah gotcha

brittle pasture
rough lintel
#

OH SHIT IT DID IT

#

but something went wrong with the sprite.

#

woohoo

#

bro got kilt

dusk mulch
brittle pasture
#

the former

dusk mulch
#

alright, ty!

dusk mulch
rough lintel
#

lastly, i just have to figure out how to make it always produce flavored soju if theres a fruit in the inventory

brittle pasture
#

set UseFirstValidOutput to true

#

that makes it go down the list instead of randomly

rough lintel
#

ok swag

#

is that on the same level as MinutesUntilReady or is it inside of OutputItem

brittle pasture
#

former

rough lintel
#

yippee

#

lets TEST AGAIN

#

i have learned so much tonight. this is so fun.

brave fable
brave fable
#

yep, in ILSpy

rough lintel
#

IT INHERITS THE RIGHT COLOR NOW

#

WOOOOOO I LOVE LIFE

#

not even yoba can stop me now

dusk mulch
#

yeah i put StardewValley.dllinto ILspy after opening it in C# then saved it to new code

brave fable
#

i can't actually check in my own copy at the moment, but it looks like you've saved an entirely different project

dusk mulch
#

i will redo it then

#

are you supposed to select all of the files in ILspy then put them to new code?

dusk mulch
#

no like

rigid oriole
#

!decompile if someone hasn't done this

ocean sailBOT
brave fable
#

Right-click on Stardew Valley and choose Save Code to create a decompiled project you can open in Visual Studio.
as in, in the left sidebar, click the dll you opened for 'save code'

#

not all files, only the dll as it appears there

dusk mulch
#

i dont have that?

rigid oriole
#

You need to open StardewValley.dll

#

File > open probably

dusk mulch
#

OHHHHH

rigid oriole
#

C# tutorials for modding tend to place slightly more expectations of knowledge on the audience, for better or worse

uncut viper
#

please code the rest of the owl

rough lintel
#

soju now working, need to fuck w the price a little bit to make sure the modifier applies to the fuel and not the rice item, otherwise itll all be 90G lmao

lucid iron
#

code rest of the goose

calm nebula
#

Code the rest of a game

dusk mulch
#

What would be the if statement to load an asset for the minigame? Since there is no name for it I can't identify it with that

This is hurting my brain more than I thought it would.

gentle rose
#

honestly it sounds like you should stop for today and keep going once you've had some sleep

#

sleep both helps us digest concepts and will be a good break so you can think about things in a fresh way tomorrow

dusk mulch
#

Alright, will do

orchid glade
#

Does anyone know the difference between using @ and {0} for the player name (in event dialogue)

uncut viper
#

{0} just means something is going to be substituted there

#

it doesnt mean its going to be the player name

orchid glade
#

Okay, in the event I'm translating (player death) it is using it for the player name. How does it know what is being substituted there?

uncut viper
#

code in the C# side of things determines what gets substituted in

#

{0}, {1}, {2}, etc just means that at some point, some code is going to decide something should go there and thats how the code finds what to replace, by looking for numbers in braces

#

"Hello, {0}!"
and then eventually in C# i can call string.Format(thatText, Game1.player.Name) and it will replace the {0} with the player name
but, i might not put Game1.player.Name there. its contextual

orchid glade
#

Ok. I can just leave it as {0}, I was just wondering if there wouldbe areason to use that instead of @

uncut viper
#

there's no difference as long as you dont start thinking {0} = player name everywhere

orchid glade
#

Yeah I've seen in the dialogue modding wiki that it can be used for like, another NPC your spouse is jealous of 😉

#

Oh cool, just a quirk then. Yeah I definitely know that it's not always player name, good to know broadly how it works though.

uncut viper
#

which death event were you looking at btw, which one specifically

orchid glade
#

PlayerKilled

#

A modded version of it, but vanilla uses {0} as well

uncut viper
#

the one in Events/Mine?

#

bc looking at the code it seems like {0} should actually be the rescuer name

#

(there are several PlayerKilled events)

orchid glade
#

Oh sorry, Events/Hospital

uncut viper
#

ah yeah, okay, the only one of those several where {0} is the player name lol

orchid glade
#

lol

craggy cape
#

i wonder how recoding a JA mod to CP would go

uncut viper
#

there are converters iirc

craggy cape
#

the converter doesnt work for me 😔

shut mountain
craggy cape
#

i mean as long as you have a tilesheet image for the items it doesnt sound too difficult ..

#

but tbf i know nothing of JA

shut mountain
#

Ik but I'm braindead rn

craggy cape
#

fair lmao

shut mountain
#

I love JA

vernal crest
#

My thought is: find a CP mod that does a similar thing to the JA one, make a copy of it, figure out which fields correspond between the two and then edit the CP one with the JA values.

shut mountain
#

That sounds harder than it probably is

craggy cape
#

so what if it was switched .ᐣ

uncut viper
#

what do you mean switched? that would mean finding a JA mod that does something similar to a CP mod?

craggy cape
#

okay lets say like, i wanted korean blossoms to be a CP mod

#

thats just the first JA mod i can think of

#

or maybe a toast item mod

uncut viper
#

then Aba was saying you find a mod that does something similar to Korean Blossoms, but is made for CP

vernal crest
#

So you'd find a CP mod that does something similar and away you go

tender bloom
#

You can literally patch export and make a CP mod from the data

#

JA is just a wrapper around data edits for the most part

tender bloom
#

JA does like 1-2 special things that chances are you aren't even using

#

I don't remember what they are offhand

craggy cape
#

so basically any fruit tree mod that adds new assets

tender bloom
#

maybe buying things in shops

orchid glade
#

I would just make the CP from scratch tbh

craggy cape
#

and i can use that as a "base" in a way code wise

vernal crest
#

Now that Elizabeth has reminded me I'd definitely go with the patch export method first lol

tender bloom
#

JA, to be clear, does still work and you are not required to make the switch — but if you do, there's many ways to make it happen

vernal crest
#

Least work

craggy cape
#

how do i do the patch export .ᐣ

tender bloom
#

what kind of item are you making

#

patch export Data/ObjectInformation if it's an object

#

and copy out the entries for your objects

craggy cape
#

ooh

#

so if i were to convert a crop mod it would be the CropInformation .ᐣ if food, FoodInformation or smth .ᐣ

brave fable
#

Data/Objects in sdv1.6

craggy cape
#

or would it be like BigObjects kinda deal ꒰ though i think thats moreso for craftables ꒱

#

ah

brave fable
#

Data/Crops for the growing crops, but their produce is in Data/Objects

craggy cape
#

ahh oke

brave fable
#

there's no such thing as FoodInformation, but Data/CookingRecipes has the crafting info for making objects at the kitchen

craggy cape
#

close enough to my original thought LOL

#

but yes i understand so far

brave fable
#

you can unpack your game files and browse the folder structure to find whatever you're after

uncut viper
#

when it comes to figuring out what to patch export though, close enough will just get you errors if you try

craggy cape
#

fair

tender bloom
#

Unpacking the game files would be highly recommended to get an idea of what you're looking at

brisk wedge
#

should i be using a namespace? if my mod is small, does it have any use?

brave fable
#

yes, a namespace is required, and should match your folder structure

#

so a file in MyFunnyMod/CoolStuff will use the namespace MyFunnyMod.CoolStuff, or one in the root folder will simply use the namespace MyFunnyMod

lucid iron
#

can u build mod without namespace LilyDerp

#

ive always used one but it does seem to err at syntax level if i dont

brave fable
#

i don't think that's legally or morally acceptable

#

but you can use file-scoped namespaces if you want to pretend you don't have any

brisk wedge
#

I got rid of every namespace Something statement in my files and it seems to build fine? Is it just inferring from file structure or something?

uncut viper
#

i mean my first question is why did you even wanna do that

lucid iron
#

anyways when u have namespace u can do using

#

and organize ur code easier

brisk wedge
#

I guess I should preface this with idk what a namespace is

lucid iron
#

it is like a path sorta? the bits that qualify full complete name to class

brave fable
#

i probably couldn't explain it in any meaningful way, but it's defining your own project structure to other projects essentially probably

brisk wedge
#

Do other projects care about my file structure tho?

uncut viper
#

yes

lucid iron
#

yea if i patch or reflect u

uncut viper
#

your namespace is important if other people want to patch your mod

#

or reflect into it yes

brisk wedge
#

oh ok makes sense

uncut viper
#

its not file structure its project structure

#

its just recommended to follow the file structure

brisk wedge
#

it sounds like I'm not supposed to be able to be getting away with no namespace statements right now, is that correct?

uncut viper
#

we use Stardew's namespaces all the time and we aint stardew

#

i would put them back

brave fable
#

for example, you probably will have using StardewModdingAPI; using StardewModdingAPI.Events; at the top of your ModEntry file once you start using SMAPI methods and events

#

those are the namespaces for the SMAPI classes you're referencing

brisk wedge
#

I also don't understand how im getting away with not defining a namespace for my classes and still somehow having folders and being able to reference classes in files from that folder

#

Are they all just hanging out in some global namespace because I didn't specify?

brave fable
#

probably nepotism. put them back 😌

lucid iron
#

ig its like u r put things in /

#

like yes u can but dont?

#

what do u have against namespaces anyways

#

if it is just indent u can do it like

#

namespace CatMod.VeryKool;

#

this makes whole file that namespace without need for {}

brisk wedge
#

Is it bad practice to have the file structure be different from the namespace path (is it called a path)?

uncut viper
#

from what i understand no its not good practice to do so

lucid iron
#

what do u want to call it

brisk wedge
#

nothing specific, i was just curious

#

should the modconfig also be in the namespace?

lucid iron
#

prob wanna consult official docs then

#

u can have many namespaces and do whatever u like

brave fable
#

you cannot exist outside of space. the config will be in some namespace or another

#

generally you shouldn't even think about namespaces and just let VS assign them for you as you make and move files around your project

brisk wedge
#

Ah I've been using vscode, so I think I've been getting away with a lot of bad practices lol

lucid iron
#

doesnt vscode still give u the little dots

#

r u unbothered

brisk wedge
#

They're kinda small? I didn't notice them

hot gale
#

Teaser for something im working on

faint ingot
#

looks like an archaeological dig site and you're uncovering a civilization with lost, advanced technology

rigid musk
#

You know, one of my friends turned 21 today so I had some drinks with them, and for a split second I was like am i actually gone right now why is this image moving

#

I am not, I'm quite fine, but just for a second I thought I was done in a few hours after we had stopped lol

proud wyvern
# hot gale

i'm not an artist, but it looks a bit flat compared to the rest of the map / game aesthetic

#

lacks perspective

rigid musk
proud wyvern
#

this actually reminded me that i saw some kind of mention of feedback rules a long time ago, and i went looking for it, and i couldn't find it, only to realize it's specifically pinned in the art channel

#

technically not applying to this channel

#

but i'll keep it in mind

#

(i do have the art channel muted and hidden)

uncut viper
#

i doubt thats really in the spirit of it

rigid musk
#

I think it generally applies even if not explicitly stated here pondering usually I don't offer feedback unless it's asked for, for that reason

proud wyvern
#

would be nice if it was stated in the general rules too then

#

otherwise people can easily miss it

#

like me

rigid musk
#

Best practice anyways, sometimes people just wanna show what they're working on :]

#

That's fair

#

As far as I've seen people usually just explicitly ask for feedback if they want it anyways

proud wyvern
#

sorry

hot gale
#

Im not offended, I didn't make the ship art 😅 Im no artist so I am working with what I can find that's available for use

rigid musk
#

You're fine! I'm not a mod or anything I was just sharing my own thoughts, plus they could be wanting feedback and I don't know it

rigid musk
craggy cape
#

im tryna add my dog into the game and im doing it by replacing a yet another dog mod sprite..
thing is, my game keeps crashing everytime i get rid of my current dog, buy the dog i want, and walk into my house.
i DID do a patch extract command but that was way before this, i dont understand how to fix it.

https://smapi.io/log/0a09a7d951074242a514cbf37e929f27

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 106 C# mods and 361 content packs.

craggy cape
#

also every other method i tried to add Lady into the game didnt work LOLLL so thats why i opted for sprite replacements

rigid musk
#
  1. Probably shouldn't be testing this with that many mods
#
  1. A json would be good
  2. I can send what I did for my dog/cats to add them as additional pets in a few if you want
#

I can't leave where I am right now as I'm waiting for my friend to fall asleep first

uncut viper
#

generally speaking its very difficult for a content pack to make a game crash

craggy cape
#

ah i keep forgetting about the json files. its just an unedited YADM json though

uncut viper
#

are you sure its even your mod doing it

rigid musk
#

It looks like there's an issue with some sprite width texture thing (i only glanced at it)

#

Something with the texture

uncut viper
#

and are you sure its actually crashing

#

and not just error spamming

uncut viper
#

BETAS doesnt count

brave fable
#

content code my beloved

craggy cape
#

error spamming followed by "The game has crashed" text and smapi being unable to recover the game

#

i did do a patch extract command as an attempt to convert a JA mod so it MIGHT actually be that

rigid musk
#

Like Button said are you sure it's YOUR mod

uncut viper
#

the fact that there are 5 things patching SpriteBatch.Draw directly scares me

rigid musk
#

It's kinda hard to tell when you have so many

#

Best practice when making mods is to test it with just your stuff until you're working with compatibility

#

(And sprite replacements should be compatible with anything that doesn't replace what you're replacing anyways)

#

and also shouldn't do.. that

craggy cape
#

lemme get the images too

uncut viper
#

the point remains that its really best to test with as minimal a list as possible because i really have no idea how to tell what could be crashing it given how general the error is and how many different content packs you have that may or may not touch the same textures

rigid musk
craggy cape
#

yet another dog mod

rigid musk
#

Oh

uncut viper
#

(or if not touching the same textures then touching the same piece of relevant draw code somewhere upstream)

gentle rose
#

that doesn't answer the question people are asking you, Dottie. Right now, what you need to do is 1) find out if the error is consistent (happens every time you do a certain thing) and 2) if it is, remove all the mods except your mod and the mods it requires and see if it still happens

uncut viper
#

a missing texture in a content pack causing the game to crash is not typical

brave fable
#

have you tried replacing /* please work*/ with something more forceful

craggy cape
#

i'll remove YADM and see if that fixes it, otherwise idk

gentle rose
crude plank
#

please work or else

gentle rose
rigid musk
#

I think you should remove ervery other mod other than yours and test it to see actually

#

(And it's requirements)

gentle rose
#

we can't help you debug if you don't do what we suggest.

rigid musk
#

Or "your" mod /edits

brave fable
#

yep it's super simple to setup a new Mods folder with the basic mods in it, plus your own, and then run that instead while keeping your other mods exactly as they are in their own folder

#

means you can have the best of both worlds

uncut viper
rigid musk
#

That's how I do my testing 🕺💃🕺✨️

brave fable
#

!modgroups

ocean sailBOT
gentle rose
rigid musk
#

I have two folders in my mods folder: Testing Mods and [name of modpack I'm playing] and then I just put a . In front of whichever one I'm not using

uncut viper
#

i have like 5 mod profiles

gentle rose
#

I had like ten just for testing various loadouts lmao

uncut viper
#

and then several older general mod folders holding my mods from like. 1.5 back to 1.3 that i just back up after an update and never delete

hot gale
#

OF course you can, duh why didnt I ever think of that

brave fable
#

i used to have a few different Mods, Mods [testing], Mods [mulitplayer] folders with their own shortcuts, but over time that turned into Stardew Valley, Stardew Valley [my mods], ...

rigid musk
#

You can!

#

It's quite neat honestly

hot gale
#

I have like 5 installation folders, my testing installation is gonna be so mint now that I can truncate mods to singular folders like that

gentle rose
#

it would literally just create a folder with symlinks to the relevant mods, start smapi with it as the mod folder, and delete it once you exited smapi / it crashed

hot gale
#

Testing mod folder looking mint now

craggy cape
#

ok so it is the dog mod,
when i had it installed, after i butterflied my dog and bought another dog, upon entering my house the game crashed.

did it this time around and i was able to enter with no problem.

#

im gonna reinstall it again and see if i run into the same issue, and if i do it has to be from the sprites i got

uncut viper
#

is that with just the dog mod and almost no other mods installed?

craggy cape
#

still running 470 mods, just not the yet another dog mod at all.

gentle rose
craggy cape
#

im gonna try with the vanilla + dog mod to see if thats the issue now. im certain its the mod though

uncut viper
#

im not. it shouldn't be hard crashing

hot gale
#

That feeling when a dumb little mod you make in an hour has more downloads than the one you've been working on for a couple weeks 🤣

gentle rose
#

We're suggesting things we know will help figure things out based on a lot of collective modding experience. If you refuse to try them and just keep doing other things, we literally have no way of helping you, so we may as well save our breath.

There's no need to make guesses if you check these things the correct way.

craggy cape
#

same issue

uncut viper
#

can you post the latest log?

craggy cape
#

wait let me do a few more tests, one without the itemspawner so i can butterfly my dog lmao

#

wait does krobus sell butterfly powder base game

uncut viper
#

the item spawner mod is one of the ones that's almost certainly fine to keep

#

assuming you mean cjb

gentle rose
craggy cape
#

no

#

2 mods, well 3 if you count itemspawner

#

the content patcher and yet another dog mod

gentle rose
#

cool, can we see a log then?

crude plank
#

post the log with just the 3 mods

craggy cape
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 2 C# mods and 1 content packs.

craggy cape
#

i also gotta change the xnb file cus i forgot about that pft

#

thats for the book texture though

#

booting up ONE more time, and without item spawner. but ye

hot gale
#

I've never even seen an error like that, this is for a content patcher mod?

uncut viper
#

the... Xnb?

gentle rose
uncut viper
#

(this log is also much clearer, thank you, the previous one had a bunch of different mods named in the stack trace)

#

was making it very hard to pin down what might've crashed and when

craggy cape
uncut viper
#

i am concerned about the xnb mods you apparently have though? are you certain you've never installed any xnb mods that affect pets or animals?

craggy cape
#

its for the books texture, so its only effecting tilesheets/objects_2

vernal crest
#

What about all your other xnb mods, Dottie? Have you removed them recently?

craggy cape
#

ye

#

that or converted/merged them

uncut viper
#

i forgot SMAPI logs it, and your old log only mentions the book one too, so I guess it's irrelevant

gentle rose
craggy cape
ocean sailBOT
#

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

craggy cape
#

also the files were these
icons, lady-black, and lady-black-collar.

i did not touch the content.json file, just those assets.

#

and lemme get the edited files

#

the two lady sprites were replaced with this
( difference is one has a red collar, other doesnt.

uncut viper
#

wait so is literally none of the json you sent earlier edited or written by you

craggy cape
#

i just said i didnt mess with the jsons

#

i did the first time, when i tried to add as a seperate sprite, didnt work tho

#

so i reverted the changes

uncut viper
#

if you'd like help, you're free to receive it from someone else who doesnt mind receiving a snippy answer when just making sure we're on the same page

craggy cape
#

sorry 😭

uncut viper
#

but otherwise i am simply trying to make sure i understand all the variables

craggy cape
#

but yeah all i changed was the icon and black-lady pngs

#

if i come off as snappy or aggressive its not my intention , my apologize

uncut viper
#

is this the standalone version of YADM or the vanilla replacer?

craggy cape
#

standalone

uncut viper
#

theres two versions on the nexus page (well 3 but this doesnt look like AT)

vernal crest
#

YADM works fine

#

I just tested it

#

Got myself a little Pomeranian

craggy cape
#

oh and heres the icon.png i changed too

uncut viper
#

just trying to get things side by side for comparison

craggy cape
#

the question is though, would a patch extract command break everything? since thats what i did before i done the sprite replacements.

uncut viper
#

it wouldnt have an effect

#

or rather, it wouldnt be the cause of the breakage

vernal crest
#

Yeah patch export just gets the data and gives it to you, it affects nothing in game

uncut viper
#

it might show where it broke, but it wont crash

craggy cape
#

i had the patch export file outside the mods folder

#

cus thats where it defaulted to

#

yk where like the reshade files go and such?

vernal crest
#

Yes it exports to the patch export folder

uncut viper
#

can you send it?

craggy cape
#

i deleted it and then this happened

uncut viper
#

in the json validator

#

oh

#

can you re-export Data/Pets?

craggy cape
#

it was the crops data only

vernal crest
#

Was your dog texture replacement for YADM working in game before that, Dottie?

craggy cape
#

no

#

it partially worked, as the shop icon changed

#

but the sprite didnt

vernal crest
#

Did you do the patch export in the same game session that you tested the texture replacement for the first time?

craggy cape
#

yeah\

#

i was trying to use the patch export cmd to get everything and convert it to content patcher since that was a mentioned way to convert JA

vernal crest
#

I think the patch export is a red herring here

gentle rose
uncut viper
#

did you rename your lady-black and lady-black edits to have the same name? the ones you uploaded aree only called dog

craggy cape
#

yea i did

#

i renamed them

#

lady-black and lady-black-collar

gentle rose
#

and they're the same file type as the originals?

vernal crest
#

The problem is the files

#

They just broke my game too

#

Same error

gentle rose
#

interesting. Are they the same file type as the originals, aba?

craggy cape
#

well they were created by fellowclown,
both files are transparent PNGS, the shop icon i just edited myself using the sprite from the dog.png file i recieved
both of the full sprite files are 128x128

vernal crest
#

That or the issue is with the original dog