#making-mods-general

1 messages · Page 429 of 1

brittle pasture
#

so I browsed the source code; your code is correct, the reason it doesn’t work for shops is because the shop code uses 9x10 for the source rect instead of 9x9
so you need another set of patches for the SC override with height 10 instead of 9

sterile solar
#

I see, before I had issues with animating it with non symmetrical x by y, but ill check if that works.

shut edge
#

somehow these doors are refusing to accept my i18n...

brittle pasture
#

post your i18n file?

shut edge
uncut viper
#

and you've done an i18n_reload or game restart since adding the i18n, too? since it doesnt get reloaded with patch reload

shut edge
#

ah i was wondering that

#

ok yes, that was it

#

thank you

uncut viper
#

the actual i18n folder and anything inside it is not managed or at all touched by Content Patcher, it's a SMAPI thing

shut edge
#

i'll make myself a note

shut edge
#

made this mod in one day!11 (if i ignore that i made the maps themselves months ago)

sterile solar
brittle pasture
#

!decompile

ocean sailBOT
brittle pasture
#

the ShopMenu class’s draw function specifically

sterile solar
round flume
#

Hi everyone! I’m looking for someone who might be interested in helping me put together a simple custom NPC mod. I’ve already written out all of the dialogue and heart events in text files, so the creative side is covered — I just need help packaging it into a working mod.

Key details:

New NPC (unique design: pink hair, pink hoodie).

No schedule needed — she can stay in one spot (likely the Saloon).

Fully marriageable.

5 heart events, already written, with player choices.

Dialogue theme: she loves food, starts out a little shy, but her lines escalate into very funny/hungry requests as the relationship develops.

I don’t want to replace an existing NPC.

This is just for personal play, not for public release, so it doesn’t need to be polished for Nexus. If anyone is willing to help me get it into a Content Patcher or JSON Assets format, I’d really appreciate it. I’ll provide the full text files with all the dialogue and events.

Thanks in advance!

slow basin
#

does anyone have a npc mod on hand that they know uses i18n sdo i can see how its usually set up?

#

im gonna go lookin as well but thought id ask

brittle pasture
#

there’s also an i18n converter

brittle pasture
ocean sailBOT
brittle pasture
#

(just something to consider)

gentle rose
#

I took a break from the portrait mod for like a week and now I’m realising I want/need to restructure the entire data asset and part of how the mod works pffft it’s for the best but whoops

brittle pasture
#

(especially for events where having the script is only half the battle)

ornate locust
#

In events, having the script isn't even half the battle if you don't know the code, I ended up changing a lot for dialog and events when I realized how the code worked

uncut viper
latent mauve
#

Yeah, I'm going through and doing the i18n for my Zelda NPC Overhaul mod and realizing that I could have handled some of these EditData actions in a much more targeted way, so I'm rewriting lots of code too. xD

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:

calm nebula
#

It really is not hard

slow basin
#

🙂‍↕️

#

ig im just anxious to get it done right lmao

gentle rose
slow basin
#

thinking i might make it where my character can sell some pets if thats simple enough with content patcher

#

mainly balloon doge

uncut viper
lucid iron
#

You don't need dependency if u want a pet shop in general (just OpenShop PetShop is enough)

#

But until next version u need dependency for filtering pets

fading moon
#

anybody know if ellle's town mod also recolors the paths in town? i think it does but i can't find the file that recolors it.

desert ibex
#

is there anywhere i can find tips on spriting buildings accurately in the sdv style?? YUM or if anyone in the server has tips and Tricks lmk….

slow basin
#

is it possible to make an animal locked behind friendship with someone at marnies ranch like with a custom pet

brittle pasture
desert ibex
#

thank you!!!

dire kestrel
brave fable
#

flash's is pretty close to my usual workflow. it's important to block things out first in vague shapes in 2 tones for whatever major colour blocks you're using; 1 tone each for lit and unlit surfaces. example from yonks ago

desert ibex
#

oh!! yes this is exactly what i was looking for lol

brave fable
#

size references with base game features and characters are important, maybe even having a 1x scale screenshot of the location it's meant to be in as a canvas background on and off

desert ibex
#

perspective was giving me a bit of issues

#

so seeing just the shapes blocked out really does help

#

i think i should make my base npc sprite first then so i have something for scale..... stupididiotdumbidiotmridiotstupi

brave fable
#

well presumably your npc is roughly the same height as the others lol

#

chuck abigail in and call it a day

desert ibex
#

he's on the taller side so i might nab sam since his hair goes all the way up to the height limit lol

#

💭 need to make sure the doors big enough

shut edge
#

i can tell you from my own work it is real easy to make buildings way too damn big

#

stardew buildings are unrealistically tiny

desert ibex
#

THATS WHAT IVE NOTICED TOO YEAH

#

im trying to make an abandoned church.. which would LIKELY be massive but this is stardew so i have the perfect excuse to not draw All of that <3333

brave fable
#

i can't name a single game in this style where anything is to scale other than doors to people

#

which is to say make your buildings disproportionately small, but with to-scale features. chibi buildings

desert ibex
#

okay!! im pretty good at that.. i think

shut edge
#

2 big

desert ibex
#

i think i also want to draw my npc sprite first because well.... i need to figure out how to dumb down this design to something itty bitty sooner or later

desert ibex
#

i said though twice.... ignore That

shut edge
#

thanks

#

two of those i think i'll make a couple new desert screens for

#

so they can breathe

desert ibex
#

theyre really cool..... i love the shape and style of them.. 1 day ill get that cracked at spriting buildinfs

shut edge
#

i just kind of banged my head against them for weeks so don't feel bad about where you are

dire kestrel
late gull
#

How do I go about adding custom behavior to furniture? I have some skeleton code for the behavior and a Furniture.json with the custom item but I'm a bit lost on where to go from there. Do I need to define a new furniture type in my code then define that furniture piece as the custom type in the json? I feel like that's not right.

brave fable
#

it's one option, but not ideal imo. i've messed around with custom furniture types and it's a mess having to make a whole new class and type definition, it gets out of hand fast especially for one-off furniture pieces.

imo it's simpler, cleaner, and more maintainable to do it as vanilla does, and just add your entry to Data/Furniture with the usual expected behaviour, and any custom interactions can be handled with a harmony patch on the appropriate furniture action method

#

there's also the option of using furniture (tile) action frameworks such as spacecore for some simpler behaviour, or if you wanted a non-harmony method of calling a registered action

#

(note: this is a non-harmony method only in that spacecore does the harmony for you)

late gull
#

Thank you for all of that! I am going to try coding up the classes for it. I'm not a fan of harmony api tbh, but it is good to know there's a fallback if i cant figure out how to do it otherwise. Thank you again, much appreciation!

brave fable
#

harmony's a sharp knife, it's usually a very quick and clean way of getting into the game code. you don't have to go in stabbing and rearranging everything and cutting bits out, but the more unhinged people here usually can't resist the temptation

#

just keep it simple and don't listen to what the knife tells you

slow basin
#

ok im gonna try to do an npc over the next few days exciting!

#

might take me longer than a few days but ill need a few days to wrap my head around it :3

rotund saffron
slow basin
#

if i want to have a scene event where my character is wearing a different look (shes a clowna dn i want an event without her makeup on) would i need that on a different spritesheet or would i need to put that on the same as the other sprites like the regular look sprites

brave fable
#

up to you, whichever's easier. vanilla generally puts unique event portraits on the same sheet, since they only use 1~2 new frames

#

you'd need to keep in mind though that the usual dialogue portrait commands would still use the regular portraits though, so you'd need to specify the new portraits in dialogue

slow basin
#

aaah ok

brave fable
#

is there a vanilla or modded method of having male-female clothing variants for a single item? my current setup chooses the asset based on the current player's gender, so male players will see male shirts, and female players will see female shirts. obviously this completely flops in multiplayer, because the current player will only see boobs equal to their own

#

also probably doesn't invalidate on cmenu gender edits during gameplay

#

this is something of a relic of json assets' gendered clothing setup, though it's since been migrated to content patcher only after ja was discontinued, so this was the compromise solution

calm nebula
#

Vanilla no longer does that iirc

#

You just have a (W) item or a (M) item

#

I guess the closest and fastest would be to define a method that swaps one to the other upon getting the shirt in your inventory

brave fable
#

this is less than ideal lol

#

also does FS take game asset names as texture sources at all, or just local filenames?

calm nebula
#

There are flat chested women and men with tits

#

(Okay I'm very much joking now)

oblique meadow
brave fable
#

in any case defining double the items sounds like an absolute drag

#

being able to set one or the other appearance per body shape would be the simplest solution

#

at least it wouldn't be almost guaranteed wrong for everyone in multiplayer

lucid mulch
#

could do what the pan thing does and convert between the regular item and equipped item when going into the equipped slot, and convert it to the gender specific equipped form

calm nebula
#

Is the spriteindex persisted

brave fable
#

this all sounds very C# for my shirts and pants mod

calm nebula
#

Just make yourself a framework

tiny zealot
calm nebula
#

Dont worry you can call me out

tiny zealot
#

atra, i would never

calm nebula
#

Tell me that every extra minute of my lifespan I'm getting by exercisin is being spent on the stairs torture machine

uncut viper
#

(me with my 4-6 frameworks depending on how you count them SDVpufferlurk)

calm nebula
#

Or I'm a basic bitch for liking Taylor swift (I am a basic bitch)

brave fable
#

i'll take that as a 'no, you cannot do this' then

calm nebula
#

That's quitter talk

brave fable
#

then i quit

calm nebula
#

Dont worry I quit too

brave fable
#

also sure doesn't look like i can make someone's FS repack of my mod use my CP mod as an asset source

#

why must things be slightly difficult and not very very easy

indigo yoke
slow basin
#

i have a dance sequence i want my character to perform at a certain time during the day, how do i make them do that?

vernal crest
#

Schedule animations

slow basin
#

oo ok lemme look that up

#

do i put the scheduled animation thing in the content json between the brackets or is that stored elsewhere

latent mauve
#

You can make a patch to edit Data/animationDescriptions in your content.json file between the square brackets (which is where all your patches will go)

slow basin
#

aaa ok

latent mauve
#

Just change the key and the sprite frames accordingly!

autumn tide
#

hey! I wanna make a thought bubble show up over a character's head during an event like a normal speech bubble, would that be possible without too much coding?

#

mostly just change the shape of it, maybe make it partially transparent

autumn tide
lucid iron
#

You can use normal emotes it's adding any custom one that is hard

brave fable
#

what's stopping you from just adding a new temporary animated sprite?

#

i suppose the text

autumn tide
#

my clueless ass has no idea what that is

urban patrol
brave fable
#

i would suggest simply editing the speech bubble sprite for the duration of your event, which would be fine if no other speech is used, but given it's a stretched 3-slice sprite it probably wouldn't look good

#

how do you imagine the end product looking?

autumn tide
#

my idea is it looking similar to a normal speech bubble, but make it semi-transparent, and make the edges look cloud-like

brave fable
#

rrrrgh i can't even try and send a PR for FS to use texture targets since it's apparently not even being updated

autumn tide
#

total modding novice btw

brave fable
#

would there be text/translations in the thought bubble, or just a bubble sprite?

autumn tide
#

text, but it's only one line

#

really appreciate your help btw!!

calm nebula
#

Doesn't /textoverhead exisr

brave fable
#

if you were fine with the text possibly extending past the thought bubble, you could use a conditional EditImage action to clear/wipe the speech bubble sprite during your event, use the textAboveHead event command to show the text and invisible speech bubble, and at the same time try the temporaryAnimatedSprite event command to add a non-stretching thought bubble where the text appears for the same duration

autumn tide
#

uhhhhhhhhh okay!

brave fable
#

not that i've tested any of this, mind. it could easily be the case that the sprite appears in front of the text or whatever other issues come up when trying something new and silly

tiny zealot
#

events are something of a cursed entity

autumn tide
#

that's alr, tysm!!

lucid iron
#

More seriously I think u can just distribute it if u really gotta

#

It's GPL

autumn tide
#

uhhh where might I be able to find the speech bubble in the game files?

#

(can't believe I'm trying this lol, I still barely know how to code-)

brave fable
#

maybe moreso than the person who commented on desert bus to request i choose from one of several entire games about cooking to add to the love of cooking, since apparently kanade's minigame addon did in fact not stop the cooking minigame requests

latent mauve
#

I believe the speech bubble is in Cursors, but I could be wrong.

brave fable
#

i'd really rather not have to support an unofficial fork of fashion sense

#

like, extremely absolutely not. ever

slow basin
#

i spelled it wrong my bad

autumn tide
latent mauve
slow basin
#

Aa ok, I thought since it said data then that it wanted a json file in the data folder or something 🙂‍↕️

latent mauve
#

The file already exists in the base game's content files, in a folder called Data. You're just telling the code where to put your changes. 🙂

slow basin
#

oo gotcha thanks smm sm

latent mauve
#

!unpack

ocean sailBOT
#

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

slow basin
#

also i just noticed but fire red lily did you make the pelican lofts

latent mauve
#

Yep!

slow basin
#

cool! im gonna be using it as a dependancy for my mod :3 thanks for housing my npcs :3

#

its a lot less terrifying when i know i dont gotta make a whole new spot for em X3

latent mauve
#

Awesome, always glad to see new NPCs taking up rooms in the apartments!

#

I tried to make it fairly easy to set up NPCs in the rooms, but feel free to ping me if you have any questions.

desert ibex
#

wait there’s an apartment mod…. user fireredlily i owe u my life and will keep this in mind for when i make more npcs out of my ocs 💭💭💚💚💚

latent mauve
desert ibex
#

THANK YOU 🙏🙏🙏🙏

#

unforch i’m in the fantasy npc mines for this zoharchibicon guy right now 💔💔💔

tender agate
#

is it possible to get the map name in the location that the game is busy messing with?
messing around with Crop.harvest, and want to get map name so I can use mod data saved under that map name. I would assume currentLocation doesn't work when junimos or something else is harvesting and we're not on that map

uncut viper
#

the crop itself stores its currentLocation

#

Crop.currentLocation

unique tusk
#

Quick question, I'm writing an event and I'm trying to get an npc to walk a few tiles then make an emote but they keep making the emote WHILE walking. I keep looking through the commands to fix this but I cant see any commands like "wait" (the closest is "halt" which didn't work), is there anyway to fix that?? Or make the npc wait before executing the next command??

royal stump
#

some options like waitForAllStationary exist, but as far as I know, commands already wait for completion by default; you might just need to remove the "continue" flag from your move command (the true part at the end)

#

a lot of the built-in events also include a pause 500 or some such before emotes, though, so that might improve how it flows

brave fable
#

good news, this was a truncation error rather than an actual issue with the ingredient matcher 🥪 should be fixed in the next version, whenever that is

indigo yoke
#

context: still learning Transpiler
Question: I want to insert code right before a return. So in the transpiler I look for OpCodes.ret and then insert the code there. The code normally returns a value. Since I stuck something right before the return, will that value not be returned?

brave fable
#

yes, i'm quite sure you'd be creating an invalid program by inserting IL between the return value and the return operation

indigo yoke
brave fable
#

so you just posted that as a question to make me look foolish eh

#

i know your games now

indigo yoke
brave fable
#

so does the 'something' you stuck between the return value and return operation provide a new return value?

#

e.g. call operation with a matching return value type, ldarg with matching type, etc

indigo yoke
brave fable
#

not sure what to say. upset my transpilers catch fire on sight but yours let you put method calls between stack loads and return calls SDVemoteconfuse

indigo yoke
uncut viper
#

if the value to be returned is not on the top of the stack when the ret happens, it does not return the value

#

but putting a method call between it does not necessarily mean the value won't still be on top of the stack when it returns

obtuse wigeon
#

I'm editing a custom farm house mod for personal use, I'm trying to add light using the paths tilesheet but it doesn't seem to be working.
Just to make sure I haven't forgotten anything, I add the tilesheet to the same folder as the map, add it in tiled and check Embed in map, then place the light tile anywhere I want on the Paths layer right? Do i need to do anything else?
I think I've edited the right map, I just got the cellar upgrade so thats Maps/FarmHouse2 and Maps/FarmHouse2_marriage after getting marries right?

#

Even adding it as an overlay rather than in the farmhouse file itself isn't working, odd...

neat magnet
#

For someone with no modding experience at all, how hard is it to make a custom farm? I want more space than my current modded farm, but also want it to perfectly fit my laptop screen with no scrolling 😆

desert ibex
#

speaking of.. :/ i want an npc that lives in the secret woods, but apparently that's an area i should avoid if i want them to leave and do things around the town?? 😭 is there any work around for this or am i just fucked and have to figure out some other area for them to live in the woods

brave fable
brave fable
# desert ibex speaking of.. :/ i want an npc that lives in the secret woods, but apparently th...

it's a common 'gotcha', the game doesn't allow pathfinding for any NPCs in the secret woods. your alternatives are either picking another location, or adding a location inside the secret woods with an NPC-only warp directly out of the secret woods to wherever else in the world you'd send them. a warp room is a fairly common thing to make in this situation, since you'd have an npc-only way of sending them to wherever you need

brave fable
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
#

if you can work your head around both Content Patcher (well-documented and with logical solutions) and the Tiled map editor (not particularly documented, lots of funky sdv-only behaviour, lots of pitfalls but ultimately quite fun) you're golden

#

there's examples to work off already of course, i'd recommend Pathos' Small Beach Farm as a reference since it was made to showcase how to create custom farms with content patcher

#

it even includes a wikipedia link for the relevant geological features in the farm. how fortunate for you

desert ibex
uncut viper
#

(Small Beach Farm is a C# mod)

desert ibex
#

tbh i think i mightve chosen. the most complex oc of mine to turn into a mod first 😭 bc hes technically like. two people... idk how im gonna make that work.. but ill figure it out....... even if ive never modded before

tender agate
hollow parcel
brave fable
#

why did he

uncut viper
#

its got a whole .dll in there

#

its an old mod

brave fable
#

version 1.3 compatible....

#

mother

#

i can't even pretend i meant Jen's Small Beach Farm since that one uses some custom tilesheets and other fluff we don't want right now

#

fuming atm

uncut viper
#

your crimes are unforgiveable, blueberry

brave fable
#

MY crimes

uncut viper
#

sentenced to 2 more years of LoC minigame comments

brave fable
#

do NOT test me i WILL choose not to push the update

uncut viper
#

is this a bad time to say i dont have it installed

brave fable
#

GOOD

uncut viper
#

(not for any particular reason i just havent done a modded 1.6 playthru yet)

desert ibex
#

its 1:33 am rigjt now i dont think it'll cooperate and let me understand what the hell im reading

brave fable
uncut viper
#

out early for good behaviour

brave fable
#

get bnack in the box

#

i sent you a cat picture and this is what i get

hollow parcel
uncut viper
#

the cat giveth and the cat taketh away

hollow parcel
#

Thank God I managed to churn out a single portrait 😭

desert ibex
#

DUDE YEAH <//3 EVERYTIME

#

i finished like... a base portrait also and the Concept of an overworld sprite and right now im working on the church hes gonna be in (which i think being somewhere in the secret woods is PERFECT for) but then i remember

#

coding <///3

#

i am also writing dialogue but i still need to work on heart events... trying to focus on giving him his own personal map in game so i have something to base everything on bleeghhhhhhh oh and i started this Last Night

#

oh beautiful i will thrive when you are in my Game 💚💚

hollow parcel
hollow parcel
dusky sail
#

cain ur oc is so pretty i like his design a lot

desert ibex
#

THHAANK YOU!!!! hes originally a curse of strahd player character and i have Sooo much art of him

desert ibex
hollow parcel
desert ibex
#

ME AS WELL

#

the most ive done is open up a map editor and draw..

#

😭 bc im an artist.. its all i Can do,...

#

coders will relinquish their witchcraft to me SOONER OR LATER!

hollow parcel
dusky sail
#

I find coding easy enough but character writing always has me staring at a blank word doc and sobbing

desert ibex
#

extremely grateful tjat ive always has a fascination with pixel art but lird. it does test me

#

especially the 64x64 canvas size

dusky sail
#

Ive been doing this stuff for years why is it suddenly difficult!!

hollow parcel
desert ibex
#

ALSO I UNDERSTAND U AS WELL.. i have like. the concept of a character in my brain bc. well of course i would this is the oc ive been obsessed with for two and a half years

#

but how do i Write You...

#

im only an artist i lowkey suck at everything else BUT I WILL LEARN 💚 for him zoharchibicon💚

hollow parcel
desert ibex
#

whicj means we can do everything we set our minds to btw just so u know 💭stupididiotdumbidiotmridiotstupi

#

crossing my fingers that i dont burn out too soon

hollow parcel
desert ibex
#

YUPPP u just gotta keep at it

#

even if its like 20 minutes a day

#

i <3 being unemployed i have nothing else to do all day

hollow parcel
dusky sail
#

Wish i didnt have to go to work damn

desert ibex
#

i want a job so bad u dont understand . social security is refusing to let me get an ID bc theyre taking their sweet ass time NOT UPDATING MY SSN CARD <////333333 but while i wait im doing more productive things (like modding my all time babygirl into stardew valley so i can marry him in every save)

hollow parcel
#

Be the change you want to see in the world lol

desert ibex
#

ME TOOOOO 💯 💯 💯 no one wants to romance the haunting corpse of a priest who has a head neighbor (its the true owner of the body he's possessing) canonically but i do...... Boy do i want to...

hollow parcel
desert ibex
#

HES A VERY INTERESTING CHARACTER TO ME!! as well as his counter part..

#

super fun to draw and write

dusky sail
#

Man fuck this "no access to a computer" stuff im gonna start writing code on paper. (If theres any errors it can be considered part of the goof i dont have my reference materials rn)

desert ibex
#

HHHEELLPP NO YOURE REAL AS HELL ACTUALLY

uncut viper
desert ibex
#

wait... maybe writing it down would make it easier to understand for me

hollow parcel
# desert ibex super fun to draw and write

I want to make a yandere, but like lean lean on the horror aspects of it. Like he'll actually hurt you and stuff, I really like horror. I played the yandere Elliott mod and wanted to do worse 😭

#

Which will be super fun to write

desert ibex
#

URETHRA! ☝️💡/ref

uncut viper
#

(please be aware that yandere mods and mods that feature violence like that are not permitted on this server)

desert ibex
#

ooooh

#

makes sense

hollow parcel
dusky sail
uncut viper
#

as long as any assets (including just text) that fly afoul of that rule (rule 6 specifically) are removed then you'll still be allowed to ask for help in here

dusky sail
#

Rock that's worth a million gold but if you eat it it kills you instantly

uncut viper
#

the braces are right tho

dusky sail
#

NOOOOOOOO

#

Now that youve said it i realize my mistake... but i wrote this in pen....

uncut viper
#

time to bust out the whiteout

#

the traditional patch reload

#

thats how our ancestors used to do it

obtuse wigeon
#

Somehow, somewhere, I have changed something in a mod that causes the game to crash when I full screen it... I really should change only one mod at a time, and only little bits at a time too

#

Well it only occurs when the save is loaded and I'm inside the farm house, I now have idea which mod is the cause

uncut viper
#

thats a kind of impressively specific and niche crash circumstance

obtuse wigeon
#

It really is, especially when only changing a content pack for CP

uncut viper
#

is it MMAP

obtuse wigeon
#

Oh and the logs show nothing, like at all, it crashes before printing the issue

#

I don't think it's MMAP

#

yet atleast

uncut viper
#

well its not going to be a content pack

obtuse wigeon
#

Oh is certainly something I've done in a content pack that a framework isn't liking and causing the crash, weird that it only happens some times though

desert ibex
#

hi.. i need quick feedback does this look enough like a fist or just. closed hand in general? 😭 hands are so difficult on a small scale..

hard fern
#

But like im also a little tired so i thought it was a banana

uncut viper
#

looks to me like someone holding a closed fist up to their mouth like "ahem..." or just thinking maybe

desert ibex
#

yeah... his body is yellow

#

OK GREAT

#

THATS WHAT IM GOING FOR

obtuse wigeon
#

It looks like a thinking pose to me, fist to mouth "Hmmm..."

desert ibex
#

yes... thabjk you.... stupididiotdumbidiotmridiotstupi

uncut viper
#

( #making-mods-art is generally a better place for art feedback though. not that its disallowed here (i think?) but thats the intended place for it)

desert ibex
#

OHHH

uncut viper
#

(in case you wanted more specific feedback or tips or w/e)

desert ibex
#

i thought that was kind of just a gallery at first KLSFKJGAKSJF THAT IS MY FAULT ill post this kinda stuff there next time

#

i mostly just wanted to see if it was understandable to like. general eyesight...

#

does that even make sense

#

like is it conveying what i meant to the general audience yes thats what i was looking for

#

banana coment is funny though itll try to make it have more clarity after i polish it xP

brave fable
dusky sail
#

Ur so right

#

When im at my computer i make much fewer mistakes tho bc i have the cp docs up on my second monitor and my main screen split between the project im working on and some sort of example code from a previous project.... doing it all from memory was 😵‍💫

#

But worth it for the goof

soft radish
#

Okay so I have spent hours making a custom NPC and have done everything I was meant to but every time I try to load up the game it says files are missing and dont exist and I have tried fixing this and have come to the point where I need to ask for help.

obtuse wigeon
#

Send us your log and we can have a good look

#

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

brave fable
#

evolution....

hard fern
#

Artemis?

obtuse wigeon
#

That first one desperately needs to be an emote

brave fable
#

the first one desperately needs coffee

brave fable
#

still gormless

#

honestly luna turned out way better but wcyd

hard fern
#

Misread tuna

#

Luna

#

As tuna

#

Im very sleepy

obtuse wigeon
#

"Misread tuna" sounds like a band name I'd listen to often

patent lanceBOT
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 43 C# mods and 58 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

soft radish
#

probably messy got so may mods on there im so sorry

true coyote
obtuse wigeon
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

obtuse wigeon
#

Also it's often best to test mods on a very minimal mod list, ideally the modlist should be the mod you're working on, it's dependencies, and any other testing mods like CJB cheats for instance, it helps eliminate any potential incompatibilities

brave fable
#

SDVitembass damn, forgot that it's pointless to post a progress slide. i just look at it again and notice all the stuff that needs redrawing

calm nebula
#

Anyways make sure it isnt a .png.png situation

brave fable
#

ear need to be fluffy, chin needs to be wider, neck less defined, eyes tweaked, soft edges adding, tail redone, ..

#

desperately just trying to drop the mod updates and be productive again

gentle rose
brave fable
#

i do not want to see those two so i leave now

gray bear
#

iro why

gray bear
soft radish
drowsy pewter
#

If you're tired it's okay to take a break and come back later ^^ Troubleshooting is going to be a long process, so its better if you're able and wanting to follow everything we ask about

#

people will definitely be here to help whenever

#

modding especially npc modding is a marathon not a sprint SDVpufferowo

lucid mulch
#

Looking at the log and without seeing the content.json the error is less about the images not being in the right place, and more that the content pack is missing a Load action for target Portraits/{{ModId}}_Dobson and as a result smapi tried loading it as a vanilla XNB instead which failed

nimble marlin
#

I have a mod that has its configuration options created with CP, but I want to use the GGCM API to make the configuration options available only in the main menu. Is this possible, or only with configuration options created without CP?

mortal lintel
ocean sailBOT
#

Log Info: SMAPI v4.1.10.3 - 1735840167 with SDV 1.6.15 build 24354 on Android Unix 35.0.0.0, with 42 C# mods and 39 content packs.

autumn tide
lucid iron
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).

autumn tide
#

honestly disappointed that the tortilla fad died out so fast 💔

oblique meadow
#

It didn’t die out all that fast

#

It lasted longer than some of the other tangents

autumn tide
#

True

#

still miss it tho-

obtuse wigeon
#

It won't die if you dont let it, make more tortilla centric mods

oblique meadow
#

I’m going to somehow sneak a tortilla into my fairy glade farm

#

Not sure how yet

autumn tide
#

i'll try to as well lol

#

long live that weird tortilla fad thing

oblique meadow
#

Don’t sneak things onto my farm

#

That’s rude

autumn tide
#

I WILL

true coyote
#

Tortilla artifact

#

Of Aztec past

autumn tide
#

gonna break into your farm and add tortilla artifact dig things

true coyote
#

Still haven't seen a tortilla fish yet

autumn tide
#

hmmmm

#

hmmmmmmmmmmmmmmmmm

dusky sail
#

There is a tortilla fish

autumn tide
#

oh there is?

dusky sail
#

Yea

#

Hold on

autumn tide
#

ooh okay!

dusky sail
autumn tide
#

tyyyy!

nimble marlin
lucid mulch
#

the general approach is having all the config in the C# mod using the api, and expose the config as CP tokens

tiny zealot
latent mauve
#

Depending on what is being changed by the config, the setting changing while in the save may cause things to behave badly.

My unpublished bathroom renovation mod had that issue if you attempted to change the bathroom from a farmhouse renovation to a map patch, because of how the farmhouse works.

#

The spouse room and cellar doors went poof if you changed it mid-save, and mods like Farmhouse Fixes did not resolve it

lucid mulch
#

I have a proposed fix for the spouse room part in smapi, didn't see if cellar door had the same problem

latent mauve
#

It fixed when you reloaded the save, but that made me not want to publish it in that state

cedar jackal
#

How do i go about changing the town path to this texture? I like it but its just a broken mod

tiny zealot
#

that makes sense, although i would probably just warn people about it and not try to prohibit access

obtuse wigeon
#

Spouse rooms and cellars are issues I've seen on many house maps, the house I'm using rn has that issue

obtuse wigeon
#

Do check to see if the original uploader allows for it though if it isn't your texture

hard fern
#

It's not in outdoors

#

It's {{season}}_town

latent mauve
#

Patching sections of the farmhouse is frustrating at times because of how it interacts, LOL

obtuse wigeon
#

yep you're right, thank you for the correction, getting tilesheet blindness bahaha

hard fern
#

But you'd basically want to extract just the pathing from the town png from the mod, and put it onto its own sheet

#

And then PatchMode: Overlay that over the town tilesheet

tiny zealot
obtuse wigeon
#

The farmhouse is a location I refuse to make now, even though I really want to

hard fern
ocean sailBOT
cedar jackal
hard fern
#

No

cedar jackal
#

its for my own use i already have the mod

hard fern
#

You need some kind of image editor

#

One that can preferably handle pixels

#

Well actually all of them should be able to

#

But well something like grid snapping will help

lucid mulch
#

Remind me in 18 hours to fix cellar tiles going poof in propagation

patent lanceBOT
#

heh heh I hope it's not too important... nefarious grin (#6869304) (18h | <t:1758271343>)

cedar jackal
hard fern
#

Where are you looking

#

Show a screenshot

cedar jackal
obtuse wigeon
#

Should be top left on the Town tilesheet, it has grass on the paths too

#

Paint is fine, it works

cedar jackal
latent mauve
#

!software if you want something more specific

ocean sailBOT
hard fern
obtuse wigeon
latent mauve
#

Will probably need to edit the town square block too to match

obtuse wigeon
#

That red area includes bridges, playground and a few other rarely used path bits

hard fern
obtuse wigeon
#

Oh ye and the red circle to the right

cedar jackal
# obtuse wigeon

thank you so much i really needed that its kind of confusing lol

obtuse wigeon
#

It is quite confusing and overwhelming when you look at the tilesheets, I still can't find things I look for

latent mauve
#

If you are changing the light brick path, then you will need to change it there too, because the town square meets up with the path

true coyote
#

Tilesheets are like fridge blindness tbh

latent mauve
#

It's not just a red circle overlaid on top, it has the background that matches the path

true coyote
#

I ciuld stare and just not see what I need lol

cedar jackal
#

im trying to add the light brick path instead of the regular grey stone one

hard fern
#

I like to pretend i know where everything is on a tilesheet

oblique sleet
#

for making portraits im seeing stuff about each portrait having a number.. what does each number mean and like how do i place it

obtuse wigeon
#

I believe that's for dialogue, when writing dialogue, you can add commands, and theres a command for different facial expressions and the number is the portrait index I think

oblique sleet
obtuse wigeon
#

I don't think it matters as long as you use the right one in the dialogue for which ever portrait matches the emotion?

#

oh hang on no

red egret
#

there is a grid

obtuse wigeon
#

I think theres a few things where it may matter, have a look at the vanilla portraits and see how they've layed them out

warm field
#

When making a new item, how do you pick an item ID for it? Since you don't wanna accidentally have the same as someone else's items ...

brittle pasture
#

prefix with {{ModId}}

warm field
#

Aren't they numeric?

obtuse wigeon
#

Usually you should do {{ModID}}_<YourItemName>

brittle pasture
#

they’re strings now

#

since 1.6

obtuse wigeon
warm field
#

Ah I see. That helps a ton

obtuse wigeon
#

the old items from before 1.6 are still numeric however

brittle pasture
#

that goes for almost every unique id now, you no longer have to pick a number and pray they’re not used

warm field
#

I suspect many of the modding tutorials are from before 1.6 then?

brittle pasture
red egret
#
obtuse wigeon
#

Always use the wiki as a first source, it will almost always be up to date

warm field
#

That's where I found said tutorials

obtuse wigeon
#

The official wiki goes into the basics, and the modding wiki can do into more depth, they compliment each other well

#

Could you get the link for the outdated tutorial please? I'll go ahead and add it to the update list

brittle pasture
#

and you can add as many portraits as you want not limited to those 6

oblique sleet
brittle pasture
willow nest
#

Hello, I published the mod I talked here some weeks ago. I don't want to spam here the link. What's the procedure for it to be showcased in #mod-showcase ?

desert ibex
#

extremely random question if i wanted to give an npc vfx (ie. making them glow at night) is there a framework already out there for it? i’m assuming if not i’d have to make a c# code from scratch huh.. 😭

obtuse wigeon
#

I'd reccomend posting it in #modded-stardew , I can keep an eye in there if you want to publish it in mod showcase?

oblique sleet
#

GUYS I FOUND SOMETHING

willow nest
#

Ok. I'll send a message in that channel soon.

warm field
#

-# (not serious)

oblique sleet
#

lmaooo

desert ibex
round dock
#

-# you can even go beyond 11 up to 100 if you so wished

desert ibex
#

i found one but it’s short.. only 6 frames and i got too lazy to expand it

desert ibex
round dock
desert ibex
#

maybe i’ll be that person too.. (absolutely unnecessary for everything i’d ever do with my npc)

#

SOMEONE HAS ACTUALLY GONE UP TO 100?

warm field
#

Is it just for different emotions or is it also being used for various occasions, like, a party?

obtuse wigeon
#

is 100 a hard limit or only a soft one? asking for an insane friend

warm field
oblique sleet
obtuse wigeon
desert ibex
#

NO!!!! GET OUT OF MY SKIN!!!!!!!!!!

round dock
#

Not exactly 100 SDVpuffersquee

obtuse wigeon
#

You can already do that with portraiture I think, possibly spacecore too? not certain about spacecore

round dock
#

104 to be exact lol

obtuse wigeon
#

that 4 is very neccissary

oblique sleet
brittle pasture
#

you can animate any texture segment with spacecore

#

iro is also working on something™

desert ibex
round dock
desert ibex
#

even if i complain about the canvas size however it doesnt feel right doing anything else...

gentle rose
warm field
#

In that case, the year having 104 days to celebrate in, you need the basic 6 and 104 = 110!

gentle rose
round dock
desert ibex
#

if anyone ever makes a framework on making npcs have special effects........ someone ping me asap sleepy im not going down a c# rabbithole just to make my npc glow 💔

tiny zealot
oblique sleet
#

also guys for portraits its 64x64 for content patcher right

obtuse wigeon
brittle pasture
#

last I remember chu has something but it’s a bespoke C# component

oblique sleet
desert ibex
#

THERE IS?? if u remember please send it my way 🙏🙏 would be greatly appreciated

#

oooh...

tiny zealot
#

spacecore does some kind of NPC glowing effect, innit

desert ibex
#

IT DOES?

brittle pasture
#

aerocore is deader than dead lol

obtuse wigeon
desert ibex
#

sorry im kinda new to this modding thing and you can tell 100%

gentle rose
#

avi testing the limits of portraits, local tokens, button's patience--

brittle pasture
round dock
tiny zealot
round dock
brittle pasture
#

the closest thing is my glowing farm animals

gentle rose
autumn tide
desert ibex
#

ill look through rn... crossing my fingerssss

warm field
oblique sleet
gentle rose
#

you can do larger with portraiture and eventually my portrait mod

indigo yoke
#

question: if I have two transpilers affecting the same method from the same mod, how would harmony decide the order they are applied?
class name in the file?

gentle rose
#

you can set priority iirc, but why not do it all in one transpiler?

#

I can't think of a benefit to having two SDVpufferthinkblob

brittle pasture
#

without explicit ordering/priorities I wouldn’t rely on any deterministic ordering

lucid iron
#

You will have to make them 1 transpiler if you want ordering

autumn tide
indigo yoke
gentle rose
#

why not log them in the same transpiler? that's what I do

#

when I want to see the IL I generate

lucid iron
#

Yeah i just foreach the matcher.Instructions

#

Now if u want to find out final state i guess you can put a transpiler with priority Last

#

To capture other mod's transpilers

calm nebula
#

(Cough, HarmonyDebug)

#

(Cough)

lucid iron
#

That is too sensible

indigo yoke
desert ibex
# autumn tide if you find please let us know omg

bad news... im seeing a feature that allows for longer npc animations, but none for applying an ingame effect to them... L!!! tbh i feel like an npc vfx framework would be so niceee... imagine breath clouds in the winter

lucid iron
#

But again moonslime if this is just your transpiler you don't need a second one?

#

What are you trying to debug here

autumn tide
indigo yoke
autumn tide
#

BETAS might have something?

desert ibex
#

if only i knew c#

desert ibex
#

OOOH TYTY

autumn tide
#

there!

desert ibex
#

now if only i could figure out how to get my npc to glow... why cant they just have their own inventories so that i could just slap a glowring in there and call it a day

autumn tide
#

oooh that'd be cool

#

what are you making?

oblique sleet
desert ibex
# autumn tide what are you making?

custom npc!!! hes kind of undead and he glows and stuff.. just such a minute detail that im okay with him not glowing if it means i dont have to use c#

lucid iron
lucid iron
#

It is indeed possible to do this in C# and there actually is a class (temporaryanimatesprite) that supports attaching such things to a character but it's all pretty manual

desert ibex
#

TYTYY... one day ill get him to glow in game after i have more modding knowledge

#

ooooh..

#

i'll keep this in mind.. i only really want him to glow at night so maybe its for the best if i do it manually/with more specifics 💭

#

wait

oblique sleet
desert ibex
#

i havent personally played those mods so i wouldnt be able to say <//3 that sounds dope af though

cedar jackal
brittle pasture
#

it’s not an action, it’s an option for Action EditImage

cedar jackal
#

nvm that the asset name for the town path i have to find that KarinaThink

cedar jackal
indigo yoke
#

question for those who might know...

in all my testing, I can't figure out what is a treasure tile. Code snippit from the vanilla game.

public virtual string checkForBuriedItem(int xLocation, int yLocation, bool explosion, bool detectOnly, Farmer who)
{
    Random r = Utility.CreateDaySaveRandom((double)(xLocation * 2000), (double)(yLocation * 77), Game1.stats.DirtHoed);
    string treasureType = this.HandleTreasureTileProperty(xLocation, yLocation, detectOnly);
    if (treasureType != null)
    {
        return treasureType;
    }

Like, I been trying to figure out what treasure type is, because it isn't artifacts from artifact spots. that is handeled elsewhere. anyone know what that tile property is?

gentle rose
#

can you check what the HandleTreasureTileProperty method does?

#

it will also help us if you tell us what class that’s on (I’m guessing Game1?)

calm nebula
#

Unused

#

That is unused

gentle rose
#

shhh don't give away the answer /j

indigo yoke
# calm nebula That is unused

that's what I figured but wanted to ask since I dont know 100% know vanilla maps inside and out and what property each tile has.

brittle ledge
tiny zealot
#

now i'm not sure which type of limit it is, but the only one remaining is that the texture has to be addressable by your graphics card, so if you exceed the maximum texture height you will have a bad time

#

if memory serves, 4096 pixels is the safe, conservative upper bound for textures, which would be 64 portraits high (128 total). in practice, your card can probably use larger ones than that but things like phones and old computers may not

pine elbow
#

hey guys

calm nebula
#

Just require a graphics card for your mod 😛

warm field
#

Well, every mod needs it, this isn't a text-only game after all

calm nebula
#

(It was a parsing limit in 1.5.x. it assumed 2 digits max)

velvet narwhal
calm nebula
#

Happy birthday Avi!

autumn tide
#

oh happy birthday!! SDVpufferparty

pine elbow
#

testing out a kaiju mod

round dock
#

HAPPY BIRTHDAY MAAAAAAAA @velvet narwhal bcaLove5hugs

golden basin
#

@latent mauve Hey lily could i dm you about your hotel mod?

oblique meadow
#

I have a random question. So my understanding of the light index is that 10 should just be a small pinpoint light ie

#

But when I set it at that value for light in MMAP it's going a bit...wild

#

Am I misunderstanding how it works?

tiny zealot
#

i don't know the details of mmap or light indexes, but those index numbers in your first image don't look right to me

#

usually indexes start at zero and don't skip 3

oblique meadow
slow basin
#

me and my beautiful son XD

i love modding i gotta go back to look and see what i did wrong lmao

oblique meadow
#

I pulled it from here

#

update. Ok. It looks like it's setting a radius for the light and not lining up with light levels as standard. I put in .5 (which is not a normal light index number) and got this:

gray bear
#

mushroom

pine elbow
#

i have a big idea for a stardew mod

lucid iron
oblique meadow
#

I don't think so...? Maybe

#
                //Medium Mushroom - Pink
               "Layer": "Front",
               "Position": { "X": "73", "Y": "44" },
               "SetProperties": {
                  "mushymato.MMAP_Light": ".8 #fd5181"
                  
               }
            },
            ```
#

Thats working

lucid iron
#

Yeah the first arg is radius

oblique meadow
#

Which i got off the examples

#

ah ha, ok. I get it now.

So "mushymato.MMAP_Light": "6 #fd5181 10", would be the line then

dapper crown
#

How do yall deal with i18n maintenance? Someones requested translations support in my mod, but frankly, it seems like much too great a maintenance burden to keep translations I cant personally read in the main mod

peak kelp
gray bear
lucid iron
#

I put 1 or 4 for index 90% of the time

#

If you need a special shaped like then make the tx

round dock
gray bear
#

first ones easy

uncut viper
lucid iron
finite ginkgo
slow basin
#

fixed it 😄

lucid iron
#

People understand that you need to put the fr.json into the i18n folder usually

#

I personally do accept PR if it's just a few config but i also don't go out of my way to update them cus I don't speak french/german/etc

uncut viper
dapper crown
#

Ill include include translations for eng/ger then and ask other languages to be maintained separately. I also recognize there's slightly increased friction in dealing with my source code because I'm self-hosting a forgejo, and even though I have github login set up, a lot of people wont be comfortable with that so maintaining translations would be hard

gray bear
#

i never figured out the github thing

uncut viper
#

(that reminds me I think I have a translation PR for BEB that I've forgotten about...)

dapper crown
#

Theres one guy who tried to interact with my forgejo and that was before i allowed sign-ups, which i fixed more recently, but they havent put their suggested changes into PR form and at this point its kinda outdated as well

#

Had to do with supporting fast forward mod better

#

(probably obsoleted by input simulation rework)

brittle ledge
#

Letting them post separate also allows them to opt into DP if they want kyuuchan_nod2

#

I don't opt mine in generally (for personal reasons), but I'm fine with translators doing so if they want

slow basin
#

can you make schedules for independant days like monday - friday and then also vary it per season or is that not a thing

brittle pasture
#

have you looked at [[Modding:Schedule_data]]

slow basin
#

oh shoot

#

ty selph

lusty halo
#

I had an idea. Here's the Content Patcher files with some Alternative Textures files overlayed on it (the red parts). Basically you'd need to use either a CP+AT combo, or an AT+AT combo to make the perfect wrought iron fence, like the wall left to the player which now looks properly aligned and "closed" (it doesn't normally, as you can see on the leftmost wall). Kinda complex but also easy? How does it look? Too much work?

polar knot
#

Walk of Life requires hoppers for Automate to apply profession perks. Filtered Chest Hopper is excellent for automatic organization, but makes Automate ignore hoppers.

i'm trying to figure out how to get everything working together. first idea is to add a new hopper item, modify Filtered Chest Hopper to use that instead of the original one, and remove the line that makes Automate ignore hoppers

is there an easier way to do this or another approach that might be better?

https://github.com/Shivion/StardewValleyMods/tree/develop/FilteredChestHopper

lucid iron
#

It allows you to define all 47 variants but u need to make them not a fence (gotta be furniture or big object)

lusty halo
lucid iron
#

It is possible to connect 2 different kind of furniture as well

#

I think the main problem perhaps is that u get none of the fence gameplay so to say

lusty halo
#

It's a wonderful resource, but I don't think I have the brain energy to learn all that. SDVpufferdead I am already taking too long with writing the -content patcher furniture directly in game via catalogue- thing, I do not think I can add more workload. I do appreciate the suggestion though, you did a great job with that! SDVpufferheart

gentle rose
#

Somehow, miraculously, the move to the new and improved data structure went off without a hitch

shadow urchin
#

hello, i am trying to edit a modded map, but when I open on Tiled, it still screws me over. what I am doing wrong?

iron ridge
#

copy the tilesheets from the vanilla content (unpacked)/maps folder to where you're editing

shadow urchin
iron ridge
#

oh

#

maybe restart tiled?

gentle rose
#

you can't just put the extension in your downloads folder, it has to go where the instructions say to put it

#

either that or you need to move all the vanilla stuff into the actual folder the map is in (Downloads/[CP] .../assets) , not just your downloads folder

oblique meadow
#

So chu. Any chance you’re going to scope creep some more and add custom critter functionality?

gaunt orbit
#

Working on documentation and cleanup, sourcegen package will be available soon ✨

#

Please ignore that I haven't written any analyzers for it yet

lime maple
#

Hi there can anyone help me with json assets and SeedPurchaseRequirements?

#

I want to know if it supports game state queries

urban patrol
#

why are you using json assets? are you adapting an old mod?

lime maple
#

pardon? because I use json assets lol

gaunt orbit
lime maple
#

JA is not for legacy mods, it is just a wrapper for CP to make easier to bundle objects, items, crops, etc

uncut viper
#

JA is for legacy mods.

#

the edits it does now are not the edits it did back when it was first made

gaunt orbit
uncut viper
#

it predates the feature you want

lucid mulch
#

JA doesn't wrap content patcher

lime maple
#

guys, lol

uncut viper
#

Wren already gave you your answer

lime maple
#

ok, so I should update to use cp directly

gaunt orbit
#

Yes, you should use cp instead of ja for 1.6+ mods

oblique meadow
#

My son is teaching himself to make a custom Roblox games
Me: what language is this written in?
Him: Eng…..lish? I don’t speak any other language.
Me: ……

gaunt orbit
#

(Lua)

oblique meadow
#

Oh I looked it up. Just thought you all would appreciate the comment 😝

calm nebula
#

Smh

#

I code in emoji

#

Bluebs!

#

Long time no see

#

How goes my favorite cooking modder

brave fable
oblique meadow
#

It did nothing. I tested. For science

brisk rover
#

I don't know why this keeps happening. I did the translation just right, but only the event is bugged for some reason?

uncut viper
#

!json please use the validator

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

brisk rover
#

Sorry aboyut that

brave fable
uncut viper
#

well the key in your i18n token doesnt exist in this json

calm nebula
#

I like ignoring things

brisk rover
#

I also have the file for the event itself

uncut viper
#

no i mean your i18n file literally doesnt have the key you're trying to use

brisk rover
#

But what do you mean by Key? What did I do wrong?

#

uh?

#

eh?

#

EH????

#

oh my god

uncut viper
#

EventDialogue.34259_5 doesnt exist

brisk rover
#

why is there an event in this mod that has no dialogue

#

This 9isn't even mine I just translated it

oblique meadow
#

You should make them say “gibbity goba. I’m mother effin’ Yoba”

Because why not

brisk rover
#

I SHOULD

autumn tide
#

please do omg

round flume
#

Hey, I’m working on a personal Stardew Valley mod where Abigail is rewritten into a “foodie” version (less goth/dark, more fun and snack-obsessed).

I’m using Content Patcher and I’ve already got custom daily dialogue working, but I need help rewriting her heart events with new text.

For example, here’s my rewritten 2-heart event (ID 1 in Data/Events/SeedShop) that swaps her gaming dialogue to foodie-style:

"1": "speak Abigail "Oh—hey! I was in the middle of this game, but honestly... snacks keep distracting me."/pause 400/speak Abigail "I brought a pile of cookies in here. Um… most of them are already gone."/pause 500/speak Abigail "Want to play? I warn you: I get competitive… and snacky."/pause 400/question fork0 "Let’s play!" #"I’ll watch — but share the snacks."/fork fork0/speak Abigail "Yes! Teamwork time. You can even pick the first cookie."/friendship Abigail 40/end/speak Abigail "Haha, you’re fun. Next time I’ll bring twice as many snacks. Maybe three times.""

I load fine, but with original dialog

All of Abigail’s heart events (IDs 1, 2, 3, 4, 195019, 195012, 901756, 6963327) get properly rewritten and replaced.

The rewritten events flow smoothly and don’t break conditions.

If anyone’s experienced with event scripting in Content Patcher or SMAPI, I’d really appreciate some guidance. This is just for personal play, so a clean “foodie Abigail” rewrite would make the game a lot more fun for me. Thanks!

brisk rover
#

brb gonna make Yoba call you out for being a modding crazed fanatic

round flume
#

I don't have much disposable income so with have to be free or cheap

uncut viper
#

sounds like something that can give a bad impression of the original mod author of the mod you are translating.

brisk rover
#

true

#

I'm gonna go find the original event and hope it wasn't deleted

uncut viper
#

which is to say, i personally think "translating a mod wrong on purpose" is a pretty terrible practice

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

brisk rover
#

very good point

#

I didn't think of it like that

#

thank you

brave fable
# calm nebula Option 1: just ignore it

well i was hoping to do that since it's been a few years since it was uploaded and now it's outdated, but ofc the author is still around and eager to update it with all my new content

oblique meadow
sharp scroll
#

Quick Question: Does anyone know if FTM or any other mod that can create items spawns has a way to code for spawning by item type or context tag? So it would randomly choose an item to spawn by that type or context tag? I'm no coder, so I'm looking for something about the level of FTM for complexity at worst.

brave fable
#

half the reason i didn't bother updating the mod for 1.6 for a year is because someone posted a repack in the comments which apparently everyone uses instead of the original anyway since it's fs instead of cp

#

they did offer to hand the updated repack to me to host but i dont particularly know. weirdly biased against fs for unknown reasons. maybe just repack spite that wont go away

for the record i'm glad they made the repack since there was a solid period of time where i just wasn't updating the mod and it meant that people could still use it, but also i didn't actually allow it myself and the permissions disallow it. they're also not profiting off it and are polite about it. but all the same SDVpufferfush

brisk rover
#

So from what is available, this event is just completely EMPTY. The other available versions don't have it anymore. There is a scripted event but no dialogue, which is weird.

#

I can't tell if this is on purpose, a leftover from the old mod that isn't available anymore or what

#

Do I just remove that event?

uncut viper
#

my opinion is that if you are only translating a mod, you only translate the mod. and not alter the mod. regardless of any issues within the mod itself

brave fable
#

yep, just stay in the i18n folder in your own file. whatever happens outside of that file is not your concern

brisk rover
#

Gotcha, I'll make sure to post that in my mod page.

brittle pasture
sharp scroll
# brittle pasture from glancing at FTM's documentation it doesn't seem to support item queries. if...

I think this concept may be more advanced than my skills are. Is this a C# thing? I'm not even close to looking at that aspect. I'm just looking to spawn items on a map in certain locations the way FTM does. Trick is, I might prefer to do it by item tag so I can make it work with a content pack concept. Have things with common tags always be eligible to show up without having to redo the list of options each time a new pack gets added.

devout otter
brisk rover
brittle pasture
devout otter
brittle pasture
#

FTM doesn't seem to support item queries, however the vanilla game does support forage location spawns so worse come to worst you can use that

#

people usually use FTM instead of the vanilla forage spawn functionality because they don't want their stuff to replace the vanilla spawns

brisk rover
brittle pasture
devout otter
# brisk rover

Alright, honestly that is weird because the key is not in this file. Do the entire event dialogue give the error?

brisk rover
#

yup, like in my screenshot

royal stump
#

SDVpufferlurk yeah, FTM currently doesn't support item queries, it just recognizes unqualified IDs or internal names
(FTM's upcoming 2.0 stuff does use 1.6 spawn data, so queries will be possible when that's done)

brisk rover
#

Man, I just like translating Korean, I didn't sign up for the phantom event in a broken mod lmao

calm nebula
#

The more people want to take my mods off my hands the happier I can

#

I can b3

devout otter
brisk rover
#

yup

#

4 heart event

devout otter
#

You can try just adding the key yourself in the default.json.

brave fable
#

well sure but this is also my first mod and i kind of like it. maybe even a little proud of it. it's not something i much want to give away

brisk rover
#

I don't know how I feel about that

devout otter
#

I mean, just to see if it'd work.

brisk rover
#

Button brought up a really great point, which is that my job is just translating

devout otter
#

No, I mean, you're still translating right?

#

The Korean script is already in the Events.json.

uncut viper
#

(to be clear, I thought you meant like the original lines didnt exist for you to find, either)

brave fable
#

like the mod is nothing without the art, so having all the art repacked just for a format change stings a little
ideally i could just tell FS to use the CP assets as texture targets but apparently that's not possible, so even the best-case scenario of having the CP mod as a loaded dependency for an FS data pack isn't there (which would mean they can host theirs on nexus legit with credit for the work they did, being solving wild FS data models, and i still get the engagement or whatever and my slice of pie for the art)

devout otter
#

You can just trqanslate that using your new added key.

brisk rover
#

It is?

devout otter
#

Yeah, the 4 hearts event, right?

brisk rover
#

Oh yeah! I see it!

sharp scroll
brisk rover
#

Welp, gonna get started on that

brittle pasture
# sharp scroll I think this might be beyond me. While all the pages of tags and such give me so...

the wiki does assume you're familiar with content patcher editing, so do give it (specifically the guide for using EditData). it probably helps to break it down, like the following example for editing the Town's list of forages:

  • you're editing forage spawns of a location, so you're editing Data/Locations
  • you want to edit Town's forage spawns, so you target edit the Town entry's Forage field
  • in Entries you put a list of item query objects that you want to spawn
sharp scroll
round flume
#

I need someone to make for me i tried

brittle pasture
#

then you put in that location's name
is this a new location you're adding?

sharp scroll
#

No, existing.

brittle pasture
#

then yeah target field into forage

{
    "Format": "2.8.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Locations",
            "TargetField": [ "LocationIdHere", "Forage"],
            "Entries": {
                "NewForageItem1": {...},
                "NewForageItem2": {...},
            }
        }
    ]
}
#

the ... part is the item query for your stuff

sharp scroll
#

Amazing! Thank you!
And to randomize what appears of those items?

oblique meadow
brittle pasture
sharp scroll
#

So, for random custom items:
"New Forage Item1": {
"ItemId": "RANDOM_ITEMS (O)",
"MaxItems": 1,
"PerItemCondition": "ITEM_ID_PREFIX Target MyAuthorName_MyModName_"
}

?

brittle pasture
#

assuming all your items are named MyAuthorName_MyModName.TheActualIdHere then yes

#

(you don't need the "MaxItems": 1, line, since locational forage already spawns a max of 1 per entry anyway)

sharp scroll
#

How does it know where to put the item within that map?

brittle pasture
#

random unoccupied tile

sharp scroll
#

Any way to control that or constrain it?

round flume
#

Instead of commission maybe someone could tell me what's wrong

round timber
#

if you describe your issue here then ya someone should be able to help you out

oblique meadow
#

Hi Vin

round timber
#

hi!

lime maple
round flume
#

Here is one of the codes I tried
{
"Format": "1.24.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Events/SeedShop",
"Entries": {
"1": "speak Abigail "Oh—hey! I was in the middle of this game, but honestly... snacks keep distracting me."/pause 400/speak Abigail "I brought a pile of cookies in here. Um… most of them are already gone."/pause 500/speak Abigail "Want to play? I warn you: I get competitive… and snacky."/pause 400/question fork0 "Let’s play!" #"I’ll watch — but share the snacks."/fork fork0/speak Abigail "Yes! Teamwork time. You can even pick the first cookie."/friendship Abigail 40/end/speak Abigail "Haha, you’re fun. Next time I’ll bring twice as many snacks. Maybe three times.""
}
}
]
}

brittle pasture
#

I'm not really a map modder but you can look at the vanilla mountain.tmx map for example

devout otter
#

So you need to put the entire "1/f Abigail 500/p Abigail/d Sat" there.

#

And you can't put in just the dialogue. You'd need to copy all the other actions too.

sharp scroll
oblique meadow
#

Do it in tiled

#

It a tile property

#

I think on the back layer

tiny zealot
oblique meadow
#

Wow I can’t type

#

Lookup NoSpawn

sharp scroll
#

And that's where this exercise goes beyond my skill, sadly. Sounds like I need to learn map modding just to get something random to spawn in a restricted range of squares without using FTM. If only FTM supported random item spawning.

Still new tools in the tool box. Thank you @Selph! Super helpful!

oblique meadow
#

Hol’ up. Why are you trying to change nospawn ranges on an existing map

#

I maybe missed that part

#

Those are in place for a reason usually

brittle pasture
#

(I may have forgotten that they weren't adding a new map)

sharp scroll
#

So, it's a map that doesn't normally spawn items. I'd like to have a random item of a certain type (custom items by context tag) have some chance to spawn there anyway, like FTM does. I may have content packs so I'd rather do it by tag, so I don't have to mod the main spawn list so situationally.

brittle pasture
#

but yeah this is where the vanilla data shows its limitations

sharp scroll
#

FTM doesn't support calling random items apparently, so I'ms tuck with looking for another option.

#

Item Queries could work, but to constrain the spawn to a specific part of the map (say the back room of the saloon), I'd have to learn map modding, which I am not ready for.

oblique meadow
#

How many different random items are you trying to do?

sharp scroll
#

Or at least so it seems at the moment

tiny zealot
#

!anyonecancook one step at a time

ocean sailBOT
#
sharp scroll
#

Any item with a given context tag, and the list may change.

drowsy pewter
tender agate
drowsy pewter
#

I do this for forage in cornucopia flowers so they dont spawn out of bounds

sharp scroll
tender agate
#

curious, how so?

oblique meadow
#

If you're willing to narrow your list, you might be able to come up with a wonky solution

#

and yes. Wonky is the accurate HIGHLY technical term here

sharp scroll
# tender agate curious, how so?

So, (assuming I am following you right), in my core mod, I have up to lets say one of 10 possible items to spawn in an area. Fine, set list, no problem. Now, I want people to be able to add content packs and have the content pack item get added to the list of options that can spawn in that same location, but without adding more total items to the spawns.

drowsy pewter
#

oh great, i cant link the spacecore docs cus i have no idea where they got disappeared to

brisk rover
#

Now his ENTIRE SPEECH is janky

sharp scroll
drowsy pewter
#

it can all be in a cp pack

#

sounds complicated but you can get the hang of it once you do one

tender agate
#

if I'm understanding correctly

devout otter
# brisk rover

Probably just missing syntax. Can you share your default json again via the json validator?

brisk rover
#

kk

oblique meadow
#

you can do it with CP technically. Like if i wanted to add forage to Robin's house i could do:

      "Action": "EditData",
      "Target": "Data/Locations",
      "Fields":
    { 
        "ScienceHouse":
        {
#

Target forage

drowsy pewter
#

they need it in a specific map tile range

#

that's why we're on this

brittle pasture
oblique meadow
#

Got it

#

ill shut up then

devout otter
brisk rover
#

ahhhhhhhhhhhhh

sharp scroll
# tender agate if I'm understanding correctly

Not sure I'm following you either. So, core mod spawn list would be ten possible items. Content pack adds two more I want it to look for. Whatever mod determines the spawns should look for any of the twelve items. If that made sense. 🙂

#

(My goal is to have content packs that would add spawned items unique to new custom NPCs, so you wouldn't have to worry about which content pack was installed, it just picks from the available options with that context tag, thus anywhere it can find an "npc_special_item" tag, that item is now one of the possible spawns.)

oblique meadow
drowsy pewter
#

Husky, i dont think so at all

sharp scroll
tiny zealot
#

context tags are like ideal for this kind of mod interaction

oblique meadow
#

Maybe the main ones are fine. But there's going to be outliers.

#

You can't accomodate EVERYTHING

drowsy pewter
#

they're talking about their own content packs

sharp scroll
drowsy pewter
#

Okay I do think spacecore spawnables is your best bet here, I just dont know enough about ftm to say it cant do what you want, you know

tender agate
sharp scroll
#

Yeah, if FTM could just pull items by context tag, I'd be golden.

round timber
#

does esca take feature requests meowderp

sharp scroll
#

As it is right now, I made a bunch of mini FTM mods, one for each content pack, but the drop rates get too high after awhile, and break the feel I'd prefer.

drowsy pewter
#

yeah that happens when stacking ftm mods

#

well if you do decide to swap to spacecore and want help you can ping me, otherwise i'll bugger off for now since it sounds like you want to use ftm

sharp scroll
drowsy pewter
#

Why not?

sharp scroll
#

Oh, FTM I meant, sorry

drowsy pewter
#

Uh ok

sharp scroll
#

SpaceCore looks possible, but it's learning curve looked ominous from the examples page.

royal stump
#

future features aside, one option might be to use a GSQ like synced random in each FTM pack and only enable the pack/spawn area when it has specific results SDVpufferthinkblob
https://stardewvalleywiki.com/Modding:Game_state_queries#Randomization
e.g. for 5 packs,
SYNCED_CHOICE day {{ModId}}_ForageKey 1 5 1 in the first pack
SYNCED_CHOICE day {{ModId}}_ForageKey 1 5 2 in the second, etc
each area with a GSQ condition like that would be mutually exclusive

drowsy pewter
#

yeah its a multi step process, but I have examples I can help you template with, and it can be integrated into your existing npc mods cp packs. But let's see what esca says first

drowsy pewter
sharp scroll
royal stump
#

game state queries (a.k.a. queries or GSQs) are explained at the top of that wiki page; the game's various "Condition" fields use them, while FTM spawn areas each have a list of them in the field "GameStateQueries" (in the "ExtraConditions" section, iirc)
e.g. in an FTM pack, each relevant area could have a setting like

"GameStateQueries": ["SYNCED_CHOICE day {{ModId}}_ForageKey 1 5 1"]```
#

something similar could probably be done with Content Patcher's randomization tokens in FTM packs' "CPConditions" fields

scenic pasture
#

Just wanted to show off WIP progress I'm proud of for my dialogue tool. :3 It lets you see what is currently valid from all CP mods, heart event mods, and what mods are using the same keys. Yeah the UI could be..better lol

sharp scroll
#

I think I'm following that now. "ForageKey" being the context tag?

royal stump
#

ForageKey there is the synced randomization key; if it's the same in every mod, "synced_choice" will always roll the same number in each mod

#

e.g. if you have 5 FTM packs and they all say SYNCED_CHOICE day {{ModId}}_ForageKey 1 5 1 or SYNCED_CHOICE day {{ModId}}_ForageKey 1 5 2 or etc, every day each pack will see the same random number from 1 to 5, and only the one that matches will activate

sharp scroll
#

So in your example, it will pick one of the content packs to use if each is numbered differently? Otherwise if the packs were numbered the same, then...? I'd love to co-mingle items from the packs, rather than have one or the other. Ideally it's a a "pick from core options + all loaded pack options" spawn output. Sounds like this would only one pack at a time, but would randomize between which pack?

royal stump
#

essentially yes, but synced_random accepts multiple options at the end; it can get pretty complex, but for example:
SYNCED_CHOICE day {{ModId}}_ForageKey 1 4 1 2
SYNCED_CHOICE day {{ModId}}_ForageKey 1 4 2 3
SYNCED_CHOICE day {{ModId}}_ForageKey 1 4 3 4
if you had 3 forage areas set up like this, then each day:

  • if 1 is rolled, only area 1 spawns forage
  • if 2 is rolled, the first and second areas spawn forage
  • if 3 is rolled, the second and third areas spawn forage
  • if 4 is rolled, only the third area spawns forage
calm nebula
#

A stupid thing you can do is randomly set a mail flag

#

And then only spawn if the mail flag exists

#

Where that is controlled by q trigger action

#

So you can add to it via your content packs

royal stump
#

other workarounds like that might dodge the "limited number of possible rolls" issue, yeah
or just switching to vanilla/spacecore for direct item ID randomization, since that's ultimately the chosen goal

#

there're a lot of ways around it with most mods, but complex randomization gets like this most of the time

sharp scroll
#

This also sounds like it might speak to a second question I had. I was also wondering how to limit the number of spawns globally to a single item, but have the exact map it appears on be random (within a list).

#

So for example, the "lost item" could be in one of three maps, but the player has to visit all three to find out.

#

Only one should spawn, but could be across three possible maps.

#

That might also fix my problem

royal stump
#

that might be possible with a recent change in FTM, though I need to double-check something in the code SDVpufferthink one sec

#

at very least, atra's trigger action suggestion could do that

sharp scroll
calm nebula
#

(Heads up - I'm logging off for today, sorry)

#

Night nkght!!

royal stump
#

unfortunately, I don't have FTM set to use the spawn area's map in the context when checking GSQs, so I don't think a 1-spawn-area solution is viable, but

#

Say you have an FTM pack with 3 forage areas, or 3 packs with 1 area each, etc. Each has the same forage ID for the lost item, and each area is set to a different map where it could spawn.
In a synced random setup, each area would use one of these settings:

"GameStateQueries": [SYNCED_CHOICE day ForageKey 1 3 1]",
"GameStateQueries": [SYNCED_CHOICE day ForageKey 1 3 2]",
"GameStateQueries": [SYNCED_CHOICE day ForageKey 1 3 3]",

With that, once per day, exactly 1 of those areas would activate and spawn the item in its particular location.
(edit: fixed the numbers SDVpufferdizzy) (and the key, because FTM doesn't support ModId & it can be any text)

scenic pasture
#

Sorry for the digress but in humor, this just happened. (Probably..not the best tile location choice.)

royal stump
#

Alternatively, as atra was saying, you could check for mail flags with that, then use Data/TriggerActions to set a mail flag each day, e.g. "YourItemFlag_Forest" or "YourItemFlag_Town" etc. If you want that to work more than once, though, you'd also need to unset the flag each night.

sharp scroll
#

Thanks to everyone who added their thoughts. A few new tools to consider now!

spiral wave
#

I have a long way to making lvl 25, 😅 , but I will get there

#

So potentially dumb question when filling out the manifest.json can I have two Author's or just one, ie make Author's an array [] instead of a value

brittle pasture
#

no, it's a string

spiral wave
#

that's what I thought

brittle pasture
#

you can do "Author1, Author2"

spiral wave
#

thanks for that

lucid iron
#

the author string doesnt really do much

#

you may put whatever you like

spiral wave
#

Alright, well I would like to take some of the older content packs and make them current

#

but I'm worried about permission

#

I have some permission but not everyone

#

so I thought Author1 and Author2 but maybe I just need to put the shout-out in the README

lucid iron
#

if u r in contact with them and gotten perms you can ask for opinion

vernal crest
spiral wave
vernal crest
#

No answer = not allowed

spiral wave
#

right that's what I assumed

#

and github?

vernal crest
#

Okay I wanted to be sure because you were talking about putting author names in, as though you were going to just publish them anyway and put their author name in.

spiral wave
#

I wouldn't do that:))

vernal crest
spiral wave
#

That does give me an idea though, I should probably check that out to see what license they are using

devout otter
#

Does anybody have insight on what the C# part of Make Gil Real is for?

lucid iron
#

y it adult...

devout otter
#

Swearing/Profanity tag.

#

DISCLAIMER: Gil says "hell" and "damn" quite a bit.

lucid iron
#

i decompiled it real quick it hides gil's shadow

#

no idea why they need this

devout otter
#

Aa, thanks!

#

I'm guessing because at certain moments Gil would "merge" into his sleeping-on-chair map tile version and a shadow would be weird there.

lucid iron
#

i guess so blobcatgooglyblep

cedar jackal
#

is there a way i can fix these fences? theyre out of place

spiral wave
#

@vernal crest ++

#

oops sorry not in Slack, 😅

hard fern
cedar jackal
#

i tried a different cp fence and the glitched ones showed through still

brave fable
#

you mean why some fencepots are closer together than others?

oblique meadow
#

ok really random question. and Im sure I could figure it out but im also mentally lazy atm. The Junimo sprite is gray. How does the game assign them colors?

cedar jackal
oblique meadow
#

got it

devout otter
brave fable
# oblique meadow got it

(in this case, tint would be using the color param in either the junimo draw method or the spritebatch draw method inside)

#

(i forget if the junimo class has a method for fetching junimo colours)

tired matrix
#

"MINES": {
"Texture": "Mods/{{ModId}}/assets/Xavierevol",
"Width": 16,
"Height": 32,
"TextureScale": 4,
"ShadowScale": 3,
"NPC": "Xavier",
"Name": "Xavier",
"Portrait": "Portrait/Xavier",
"ShowBreathing": true,
"Condition": "PLAYER_LOCATION_NAME Current Mine" ,
"Priority": 6
},
"CAVE": {
"Texture": "assets/Xaviertinkercave.png",
"Width": 16,
"Height": 32,
"TextureScale": 4,
"ShadowScale": 3,
"NPC": "Xavier",
"Name": "Xavier",
"Portrait": "Portrait/Xavier",
"ShowBreathing": true,
"Condition": "PLAYER_LOCATION_NAME Current SkullCave" ,
"Priority": 6