#making-mods-general

1 messages · Page 8 of 1

velvet narwhal
#

i have 1 random token and then 5 distinct ones

#

so a failsafe, if it picks the npc's name instead, it'll still randomize

round dock
#

oh this is cool, i'll follow this instruction. a modder raised that i forgot to include onekid_2 (theyre right) so i was thinking of just adding one but i just might add extra

velvet narwhal
#

yeah you can be lazy as well

#
"OneKid_1": "{{i18n:LanceOneKidMarriageDialogue_0}}",
"OneKid_2": "{{i18n:LanceOneKidMarriageDialogue_0}}",
"OneKid_3": "{{i18n:LanceOneKidMarriageDialogue_0}}",
"OneKid_4": "{{i18n:LanceOneKidMarriageDialogue_0}}",

"TwoKids_0": "{{i18n:LanceTwoKidsMarriageDialogue_0}}",
"TwoKids_1": "{{i18n:LanceTwoKidsMarriageDialogue_1}}",
"TwoKids_2": "{{i18n:LanceTwoKidsMarriageDialogue_2}}",
"TwoKids_3": "{{i18n:LanceTwoKidsMarriageDialogue_3}}",
"TwoKids_4": "{{i18n:LanceTwoKidsMarriageDialogue_4}}",```
#

make it all say the 1 dialogue

round dock
#

i just went straight to 3, forgot the 2 lmao sorry ;-;

#

thank you!!! u r a heaven sent to my dialogue mods ^___^ @velvet narwhal

vernal crest
#

What happens if you don't have all the keys? Like if you removed "OneKid_4"?

velvet narwhal
#

i don't think it works proper

#

my mod works because i'm running off an already existing npc with the dialogue keys, but euuuu i vaguely recall my customnpc not enjoying not having all the keys

vernal crest
#

Ok good to know

zenith sapphire
#

guys, with quest framework and smapi how i force start a quest in the console? wich command i have to put?

analog flower
#

quest framework is broken in 1.6, why/how are you using it?

zenith sapphire
#

im usiing it in 1.5

#

i need to start a quest in multiplayer that didnt started for my friend

#

so its like broken untill he get this quest but i dont get how i make the game to force accept a specific quest for him

rancid temple
rancid temple
#

Not sure how I feel about it being a forum now, I never went there in the first place so I guess I dunno what the hit rate was on actually getting help

velvet narwhal
#

honestly my issues stem from me making my own mod, so yeah i haven't had a need to go there either

calm nebula
#

Honestly my issues stem from my childhood

rancid temple
#

I don't have the bandwidth to participate in multiple channels

rancid temple
calm nebula
#

Ahhh that's interesting

#

I thought this because it used to crash the game if the player didn't have an appearance the host did. Or was that skins

#

(I think I didn't realize it because ELR messes with it.)

drowsy pewter
#

just because of the format of how easy it is to lose messages

velvet narwhal
#

SDVpufferthink fair

#

Sometimes I feel like they think we're jerks for linking the modded support but then again I'm like SDVpufferflat 98% of the time in here I just wanna bing chill and read the c# chaos

paper sundial
simple bramble
#

hiii im syrine and id appreciate it SO much if someone makes me a sprite (i have all the pics, i just dont know how to code)

vast rover
#

what does null mean in the cooking recipes json??

iron ridge
#

in what field?

vast rover
#

uhh

#

what do u mean

dense tartan
#

That should help explain..

ashen oak
# simple bramble hiii im syrine and id appreciate it SO much if someone makes me a sprite (i have...

Hi syrine!

I'm no expert on SV NPC sprites but it looks like you mostly followed the convention correctly with respect to layout. Some notes, with the caveat that I could be wrong about anything:

  1. It looks like there is blank space around your sprite sheet, I think SV expects the sheet to be just the frames.
  2. When I load up your image, it looks blurry. Did you save your image as a .jpg instead of a .png? If not, it's possible that pasting into Discord wrecked it.
  3. Once those are situated, you basically already have your sprite. All you need is a very short block in your Content Patcher mod's content.json. Something like:
    {
      // Homestar's overworld sprites (this line is just a comment, you can delete t)
      "Action": "Load", "Priority": "Low",
      "Target": "Characters/Homestar",
      "FromFile": "assets/CharacterFiles/OverworldSprites/Homestar/Homestar.png"
    },

(Adjust the file path in "FromFile" to match the location of your sprite sheet, and replace "Homestar" with your character ID.)

Sources:
https://stardewvalleywiki.com/Modding:NPC_data#Overworld_sprites

Stardew Valley Wiki

← Index

dense tartan
shadow vortex
round dock
#

As far as I'm aware, this is already an existing mod that's dated 2020.

ashen oak
round dock
frail elm
#

Are content patcher mods hard to make?

#

I can't imagine they're very coding intensive because theyre just replacing sprites

ashen oak
#

Depends on what you're patching. Baseline, not at all

frail elm
#

(Im not talking about the drawing and designining process)

ashen oak
#

If you're just replacing sprites then no, they're pretty simple

ashen oak
#

In fact you may not need Content Patcher at all in that case, right?

lucid iron
#

Just make sure you have sprites that match vanilla format, or make sure to use EditImage instead

ashen oak
#

Ah, right, that's safer

round dock
#

if you're also patching dialogue, they're def not complicated (as much as I thought it was gonna be initially lol).

lucid iron
#

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

frail elm
#

ooh

ashen oak
#

Definitely do that, it's very easy and kinda fun to get lost in the game's content files for a bit

frail elm
#

Now all thats missing is my idea

#

Literally i had an awesome idea for a content patcher mod but i forgor it

ashen oak
#

Oh no X D

frail elm
ashen oak
#

I have a backed up text file with so many ideas because I kept forgetting them

#

Will literally stop mid-play and write them down as they come up

lucid iron
#

Just to be clear, don't go around replacing assets without content patcher (or equivalent C# mod)

ashen oak
#

I should make a Kanban board or something

lucid iron
#

xnb mods not recommended

frail elm
#

Really the only programming language i have experience withis Python

lucid iron
#

Just learn it in 10mins ez AquaThumbsup

#

But you only need to consider C# if you are adding new game mechanics/behaviors

ashen oak
#

Can I get a code design sanity check?

Problem: In an event handler, I want to iterate over nearby chests in increasing order of distance from the player and manipulate their contents.
Problem: Multiplayer means that for each chest, I need to lock its mutex before manipulating.
Problem: I can't just loop over the distance-sorted list of chests requesting locks and manipulating in the acquired callback because requests aren't guaranteed to be granted in request order.
Problem (?): I don't know whether yielding/sleeping the thread in an event handler is Bad™ but I suspect it is.

Solution 1: Have the event handler enqueue operations into a queue, then have a separate update loop request, do nothing until acquisition, manipulate, and release each chest before proceeding to the next.
Solution 2: Kick off a separate thread to do all this stuff more legibly. (I'd love to do this but have no idea what the ramifications are.)

Is there a simpler solution?

#

(note to FlowerSun: This is not the kind of problem you have to solve if you're doing sprite replacements)

next plaza
#

New thread is bad

#

The game doesn't handle multithreading well

ashen oak
#

Yeah I figured as much but I held out hope

#

"I'll just write my own pseudothread manager and " never hear from Molli again

lucid iron
#

Why is order important

ashen oak
#

I want to do stuff to nearby chests before I do stuff to further away chests

#

(I understand this may be a feature design smell but will address that later)

lucid iron
#

queue sounds fine assuming order matters, but u should consider if you actually care in this case

dense jolt
#

Made a mod that automatically pets pets and animals
https://www.nexusmods.com/stardewvalley/mods/27203

Nexus Mods :: Stardew Valley

The AutoPetter mod automatically pets your farm animals and pets (cats and dogs) in Stardew Valley. No more running around to each animal to show them some love—this mod does it for you, ensuring yo

ashen oak
#

Congrats!

lucid iron
dense jolt
#

Sure!

ashen oak
#

Hmm. If I do some preprocessing I may be able to remove the order requirement without altering the visible behavior

lucid iron
#

What do you want as message?

round dock
dense jolt
# lucid iron What do you want as message?

The AutoPetter mod automatically pets your farm animals and pets in Stardew Valley. No more running around to each animal to show them some love—this mod does it for you, ensuring your animals stay happy and produce the best quality goods.

calm nebula
#

I would consider using the delegate on a "get mutex" for "mutex get failed"

#

Ah, never mind

#

Yeah you're writing a task manager. Enjoy!

ashen oak
#

No worries, it wouldn't be the first time (or the fortieth, honestly)

#

Use case is: I'm writing yet another autostash feature, but I really really want to favor closer chests when there are multiple chests with a given item

#

But the more I think about it, the more I wonder whether that "really really want to" is the right desire

#

I'd probably spend my time better implementing a way to mark chests as "don't stash here" or otherwise let the player categorize

#

(Trying not to end up completely reimplementing Better Chests if possible)

frail elm
#

GUYS I JUST REMEMBERED

#

it was replacing the pig portrait with the "Brother may i have some oats" meme

ashen oak
#

Anyway, thanks, folks, having someone to bounce questions like this off of almost makes me feel employed again SDVpufferchickhands

calm nebula
#

If it makes your life easier there is a slot for a delegate on the fail to acquire case

#

(I mention it only because vanilla never uses it.)

lucid iron
#

What if we make mod that turns every (O) object into wallet currency

ashen oak
#

Yeah, I think finding a way to specify chests as no-stash is the way to go here, it more neatly solves the problem that ordering attempted to solve (accidentally stashing in an undesired stash location)

lucid iron
#

Never stash anything ever again

ashen oak
#

But multiplayer sharing resources -_-

lucid iron
#

(\j)

proud wyvern
#

how about just ignoring mutex-locked chests

ashen oak
#

(/running with it) brb, writing new wallet UI w/ search bar and scrolling

vast rover
#

help I don't know why it does this It has the description as the title for some reason

next plaza
ashen oak
#

Yeah I'm actually okay with a failed lock request just failing

lucid iron
#

You put i18n key for desc in the title I assume

tall raft
#

I have a bit of an odd question. I apologize if this is the wrong place, but I'm really not sure where to ask.

I am in need of help writing some of the events for my mod. I can get the vibe of some of the characters easily, but others give me enough trouble that I can feel myself slowing down in my progress. I have absolutely ZERO desire for that to happen, and would greatly like to at least release the first edition of it before I take a short break and work on planning the next update.

I'm looking for someone who would be able to, at the very least, allow me to bounce ideas off of them and give me constructive, clear feedback. Where would I go to request assistance like that?

next plaza
#

Also, uh, if anyone adds THAT many virtual currencies with SapceCore, I'll add a scrollbar. But not before.

#

Don't we have a creative writing thread

#

Maybe that'd be useful for you?

calm nebula
#

Each rock is a different currency

tall raft
#

We do? I had no idea! 😵‍💫

#

Thank you so much!

ashen oak
#

Keeping rocks as objects but adding meta to each single rock specifying its composition, geologic history, etc.

next plaza
#

I should probably pop in there at some point, I've been having trouble coming up with events for a thing

#

But then I'd be perceived

calm nebula
#

If I have to think of a crystal structure again this week it will be too soon

ashen oak
calm nebula
next plaza
#

Terrafirmacraft so-many-rock-types flashbacks

lucid iron
#

!stone

ocean sailBOT
#

🪨 The item ID for Stone is 390.

calm nebula
#

(Okah I know what Minecraft is but I do not know why biomes are involved. )

next plaza
calm nebula
#

(It's that game thr lawyers play. They keep on setting each other on fire.)

next plaza
calm nebula
drowsy pewter
#

someone gave you a response

#

for more help, we need to have more info about your code

vast rover
#

crap

#

sorry didn't notice earlier

vast rover
#

oh wait

#

nevermind

#

i see now

round dock
#

FINALLY I CAN APPLY FOR A CHEETO ROLE

ashen oak
#

In the interest of not spending inordinate amounts of time on this feature, for now I'm just adding a sentinel item ID that, if placed in the chest, excludes it from autostashing anything but that item

#

That should keep our farmhands from accidentally stashing all their wood in the kiln feeder

round dock
#

Hi, I'm trying to apply for the Cheeto role I'm so lost SDVpufferwaaah

lucid iron
#

Did you DM bouncer?

round dock
#

Yeah :3 i'm trying to do the entry thing rn SDVjuniheart

lucid iron
#

Oh the part where you edit the wiki?

dense tartan
#

I'm using CP and want to make a mod that sends a letter every year and I'm stuck. I've looked over event data, mail data, and even tips on the modding wiki and I can't seem to figure it out.

lucid iron
#

Need to make account but after that just copy someone else's entry and fill in your data

brittle pasture
#

That's where you want to make the changes

latent mauve
#

You'll need entries for your Mail itself, and Trigger Actions to determine when your Mail is sent.

dense tartan
#

Interesting. I managed to get one letter to send by creating an event in Farm and a follow-up letter as well, but the follow-up letter only sends once and I want it to happen every year. So Trigger Actions instead of Events in this case?

round dock
#

Wait how do I get the unique ID (I barely use Discord, unless it's sdv related lmao)

velvet narwhal
brittle ledge
#

Should be clairesstoryofseasons#0 yeah?

#

SDVpufferthinkblob I probably need to update mine on the wiki, I bet it still has the actual number on there

dense tartan
#

@velvet narwhal - the first one is unique then everyone after that will be the same. Like Pierre's messages about the rebate.

velvet narwhal
#

ah then you'd have two, one that sets the conditional of receiving it in general, then the other one sends every consequential year after received

#

the first conditional one doesn't need to repeat, the 2nd can have the false appliedaction

dense tartan
velvet narwhal
#

yeah trigger actions

#

do you have a specific idea of how the first mail should be received?

#

like what requirements

round dock
#

Oh no sorry I meant Discord ID

#

I'm looking where I'm supposed to get it and there's so many error sounds popping on my head rn sigh

lucid iron
#

clairesstoryofseasons

round dock
#

Oh... thank you 😭

dense tartan
# velvet narwhal like what requirements

Totally! The way I have the event currently set up it to send a message on Fall 24, doesn't matter what year. The second event is set up to send on the same day as long as the player has received the first message. Unfortunately, using Events, once the second message is received it won't send again.

velvet narwhal
dense tartan
velvet narwhal
round dock
#

Do I just send the entry here? SDVpufferthinkblob

velvet narwhal
#

So your condition can be season fall day 28 to send out the first one, then the 2nd trigger action is player_has_mail and a player_stat check for greater than 1 year

#

My brain is blanking on "repeated year" conditional right now but you can probably apply the same fall 28 to the 2nd

#

Does the command work I pray

#

[[Game State Queries]]

velvet narwhal
#

[[Game_State_Queries]] ?

#

Nope I give up

next plaza
#

It's /wiki

round dock
#

Oh btw sorry if I pinged you

lucid iron
#

it's 1269333396149244025 but i don't think thats what you need?

#

you can enable developer options in settings to have ability to copy user id

round dock
#

I think it's required in the fields for the entry.

ornate trellis
#

your username is enough, the instructions were from the time where you had a 4 digit(or) more number combo but discord changed the way names are

dense tartan
ornate trellis
#

oh wait, it actually does now that i look at the link where it tells you how to add yourself lol (i dont remember adding mine tho)

brittle pasture
velvet narwhal
#

Selph for the win

dense tartan
#

Thank you. I was looking for "conditions". 😆

round dock
#

Yeah :(( i was kinda confused where to find it cuz I see people with a bunch of numbers on their discord id

ornate trellis
#

there is a link to explain every entry and how to fill that spot right above the list

round dock
#

I just want the chimkin cheeto role now that I have farmer lowkey but that's what Bouncer instructed :3

ornate trellis
#

there it also says how to get that ID :)

velvet narwhal
#

I refuse cheeto until I'm purple

ornate trellis
#

you can just right click your username here in the chat and the last thing should say get username id or something (idk exact words since I have it set to German :B)

tiny zealot
#

ooh, congrats CSS!

velvet narwhal
brittle pasture
#

Whats hardcover

velvet narwhal
#

Autocorrect

round dock
#

Just edited it :3 hehe

brittle pasture
#

hmm what's hardcoded about bee hives?

round dock
#

CHEETO

velvet narwhal
#

Something about crops vs flowers

frail elm
#

How do i make a content patcher mod?

#

Im going to replace the Pig Painting with one of 4 alternate paintings

#

I want an option were you can choice between any of the four

brittle pasture
velvet narwhal
#

I think it was aloe that was dealing with flowers

rancid temple
ocean sailBOT
frail elm
#

👍

brittle pasture
velvet narwhal
#

Ah I think the thought about emc came up because I was in my own thought process of, "purple corn honey SDVkrobusnaughty "

dense jolt
#

Found a mod that does the same thing as a mod I was working on but implemented it for more use cases and implemented it better. 😬

lucid iron
#

2 cakes

brittle pasture
#

better beehouses definitely let you achieve your corn honey dream

velvet narwhal
#

Honestly I'd say don't let your dreams fall through just bc you weren't the pioneer, it's a big world

frail elm
#

Does anybody know what the filename for the Pig Painting is? (i don't want to unpack all of the files for 1 image sry)

uncut viper
#

its not likely to be its own image, all the furniture is placed on tilesheets. you'd need to unpack your files anyway to get its coordinates

frail elm
#

i see

dense jolt
dense tartan
#

@velvet narwhal It doesn't look like there's any need to mark the first mail action as applied because they're applied by default. Yeah?

brittle pasture
lucid iron
#

pig painting is on TileSheets/furniture_2.png

uncut viper
#

i mean tilesheets for related things makes sense to me

ornate trellis
#

from a game making point of view tilesheets are a godsent. try make a map without tilesheets and instead with individual images and you'll start to understand why

lucid iron
#

it's pretty common for games to put related graphics in 1 image asset yea

lucid iron
#

whether everything on cursors is "related" is a topic for another time

ornate trellis
#

CA just...got a bit creative with a few tilessheets, like the mentioned Cursors

uncut viper
#

and when making a game if making tilesheets is easier for you to help accomplish that I imagine that's more important than thinking "hmm but what will modders 10 years from now think"

velvet narwhal
ornate trellis
#

but tbh still a mood. when i started to make my own tilesheets for my mods it began being a big hassle moving things around once you started using the assets so ofc at one point i gonna go "oh, ill jsut slap these in those free spots"

sleek aurora
#

What code should I use so that the color of the temporary sprite is the same as the color of the loaded item?

teal bridge
#

I think what makes Cursors special (aside from having a lot of not-so-cursory sprites) is that there's no regularity to it; everything is in a totally arbitrary position with a totally arbitrary size, so pretty much anything you reference from cursors needs to be hard-coded. There's no meaningful "sprite index". No other tilesheets are like that; they're all fixed-size sprites which means they get the benefits of being performant and also easy to program around and those are both Very Good Things. (tm)

#

Tile sheets in general aren't just good, they're essential, you can't make a 2D game without them.

uncut viper
#

it would be much worse to have 900 individual pngs for each item for sure

teal bridge
#

Much worse. Not just because of the organizational issues but because of all the texture overhead.

velvet narwhal
#

Also people don't enjoy physically drawing maps SDVpuffermoustache

sleek aurora
#

Then so. I have a stump for mushrooms. A texture with 2 sprites was created for it. The first sprite is the stump itself, the second is the grown mushrooms. I need the sprite of mushrooms to be superimposed on the stump and inherit the color of the mushroom placed in the stump. Is this possible?

rancid temple
#

I still like Atra's bit of terrible knowledge that there are menu sprites in Maps

lucid iron
rancid temple
#

The weirdness of cursors I can at least understand because UI is a complete nightmare to work with even when your tools are decent

sleek aurora
lucid iron
#

ah ok, i dont think you can dynamically change what the ready to harvest texture looks like (inb4 selph)

brittle pasture
#

you can specify load/working effects depending on the output item

#

you cant do it automatically but you can specify a rule for each color you can think of

lucid iron
#

it's also possible that you actually want to make a custom bush that grows mushrooms

#

cornucopia has some examples

brittle pasture
#

but I don't think you can set the ready sprite based on the output unfortunately, only the processing sprites

brittle pasture
brittle pasture
#

with the IncrementMachineParentSheetIndex field

#

tldr I am 60% sure what you want is possible, albeit a pain to implement

sleek aurora
#

My stump works like a crystallarium i.e. creates what is placed in it. Is it possible to use triggers to record the color of the input element and return it to the output sprite?

lucid iron
brittle pasture
#

You don't need to add new triggers, just multiple output items in the OutputItem list
one conditioned on the input item having the tag color_red, one for color_blue, etc., all of them identical aside from the IncrementMachineParentSheetIndex field

lucid iron
#

but u would have to manually make these sprites with color right

brittle pasture
#

you can group multiple similar colors to reduce toil (ie blue and dark blue)

#

yea

lucid iron
#

cannot use as color mask

royal nimbus
#

hey i been trying to find where this one icon is located. there is one on cursers but it didnt seem to be the one here. anyone kno where i can find the paint buildings icon? i want to make it invisible

uncut viper
#

its in cursors2

sleek aurora
#

I have an option with individual colors, but I wanted something universal. Are there ContextTags that combine, for example, all shades of green? It is too tedious to list each one.

rancid temple
#

Modding Stardew is just kind of a lot of toil

lucid iron
#

the context tags arent that detailed u just have color_green

brittle pasture
#

whats that link to 6480's color sheet

velvet narwhal
#

do we already have the "where is the objects.png" as a command?

uncut viper
#

there are more than just color_green for green colours

brittle pasture
inland cedar
#

in my mod if have this for example
public static void OnCall (string something)

I want to divide the mod into 2 and put OnCall to a new mod. Is it possible to call that from the original mod?

lucid iron
#

divide mod into 2 C# mods?

lucid iron
#

what is the reasoning here

ocean sailBOT
#

Most vanilla object sprites are in the Maps/springobjects asset. See a table of springobject sprites by index.

Some newer object sprites are in TileSheets\Objects_2. You can check the entry in Data/Objects to see where its sprite is stored; SpriteIndex is the position, and Texture is the asset name (defaulting to Maps/springobjects).

inland cedar
#

yes I added OpenAI in ( that OnCall ) and thinking about put that seperated as a dependent mod, well in case some people dont want that AI

finite sequoia
#

Not to interrupt, but I'm having a precondition issue: my event, CPFIsaacIIntroEvent, loads and can be played, but there's some tomfoolery with the preconditions I need to sort out. Currently, it has the precondition "CPFIsaacIIntroEvent/F/n CPFIsaacIReturnLetter", and the mail is added through a triggeraction that works. The player recieves the letter using that mail id, but the event won't play (Even though preconditions are met). Here's the trigger action:
"CPFIsaacIReturnTrigger": { "Id": "CPFIsaacIReturnTrigger", "Trigger": "DayEnding", "Condition": "SEASON_DAY spring 24, PLAYER_HAS_SEEN_EVENT Host 145857", "Actions": [ "AddMail All CPFIsaacIReturnLetter", ], }

#

Here's a json with the event in question, as well as the triggers

lucid iron
uncut viper
#

!codeblock (just for future reference)

ocean sailBOT
#

You can embed code in Discord using a series of three ` :

Your code can go here
Even if not a haiku
Just an example

For syntax highlighting, add the language code on the same line as the first (with a space between, like json). The usual codes are cs (C#) and json.

finite sequoia
#

Again, the event plays fine, it's just getting it to start in-game that's strange

uncut viper
#

oh what happened to the governor formatting there. what did they do to him

velvet narwhal
#

what did they do to my boy

royal nimbus
velvet narwhal
finite sequoia
#

It's in the bus stop

uncut viper
velvet narwhal
#

does the busstop have it's own data/event

uncut viper
#

it does

finite sequoia
#

And again, it's not the event itself that's the issue- I've bug tested that, and it works- it's just triggering it naturally without cheats

#

That I can't seem to do successfully

sleek aurora
#

And one more question. If temporary sprites are specified in the vehicle operation settings, when the vehicle is demolished, these sprites remain on the map. Can this be fixed somehow? So that the temporary sprite would disappear when the car is demolished.

round dock
#

Is the mod author for MT here? I actually wanted to ask a question re npc clones

brittle ledge
#

Market Town? The mod author is often here, yeah

finite sequoia
#

(To restate my issues, because my explanations were really bad 😅 basically...)

  • I start with a trigger action that works, with the sole command of "AddMail All CPFIsaacIReturnLetter"
    -The player receives the letter in the mail
    -The event's only precondition is to trigger not on a festival and when the player has the mail flag (Which they must, becuase thye recieve the letter in the mail)
    -The event won't trigger once I go to the bus stop, even though it works when I debug it
lucid iron
# inland cedar yes I added OpenAI in ( that OnCall ) and thinking about put that seperated as a...

a simple example

// Stored delegate, initially pointing to the vanilla version (that i defined in this class)
private static Func<StardewObject, IEnumerable<Vector2>> CompatibleGetSprinklerTiles = GetSprinklerTiles_Vanilla;

public static void SetUpModCompatibility(IModHelper helper)
{
    // Check for better sprinklers here, then update the delegate field if needed
    if (helper.ModRegistry.IsLoaded("com.CodesThings.BetterSprinklersPlus"))
    {
        BetterSprinklersApi = helper.ModRegistry.GetApi<Integration.IBetterSprinklersApi>("com.CodesThings.BetterSprinklersPlus");
        if (BetterSprinklersApi != null)
        {
            // GetSprinklerTiles_BetterSprinklersPlus also defined in this class
            CompatibleGetSprinklerTiles = GetSprinklerTiles_BetterSprinklersPlus;
        }
    }
}
// thereafter, call CompatibleGetSprinklerTiles
velvet narwhal
#

i'm trying to recall the issues i was having but the only one that pops up into my head is the data/events not existing, you have the / for a string event, so that's not the issue either, it plays when you debug it, but it's not triggering upon entering said map SDVpufferthink

#

when you do a patch summary uniqueid it's applied?

uncut viper
uncut viper
#

oh

#

my bad

ornate trellis
#

yo guys i am a bit confused about bug report i got? I sat on that couch in every direction and dont get any second couch appearing...but ofc i didnt get any log or screenshot or anything...does anyone happen to know about an odd known issue like that

velvet narwhal
#

i've honestly had the godsend to not get those, my bugreports always send me the full detail of what went wrong or they give me a smapi log

uncut viper
#

does debug starting the event mark the event as seen for the player, and thus remove the possibility of it starting again on its own?

finite sequoia
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 17 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

velvet narwhal
#

but i assume you've just relogged

finite sequoia
velvet narwhal
#

it's not about the mailflag i wanted to look for, i wanted to see if your changes to data/events/busstop were actually taking effect

round dock
# inland cedar yes it is probally me

Were the cloned NPCs removed on the new update? I actually dont know if the cloned Sebastian and Sam were from MT but guessing from your update post, it could have been the case.

uncut viper
#

it seems like your bus stop event isnt being applied because the ImportToken token is not valid

finite sequoia
#

Aghh, I messed around with i18n'ing earlier 🤒 that must be the issue then

calm nebula
uncut viper
#

i think you're passing the input into the i18n token wrong

finite sequoia
finite sequoia
uncut viper
#

what does your CPFIsaacIIntroEvent.1 dialogue key look like?

#

in your default.json

#

for i18n

inland cedar
finite sequoia
#

"CPFIsaacIIntroEvent.1": "@, I knew you'd make it!$1{{IsaacIReturnBeef}}",

#

Yup, the Import Token was def what was killing me

velvet narwhal
#

i assume the thing that's getting mad is that yeah

round dock
velvet narwhal
#

/speak APTMarcus \"{{i18n:CPFIsaacIIntroEvent.1 {{ImportToken}} }}\"/

uncut viper
#

i assume you were trying to replace the returnbeef thing with the import token

finite sequoia
#

I'll remove and reload, then try again!

#

I use an automatic converter that adds the whole {{ImportToken}} nonsense and missed it 😅

velvet narwhal
#

when in doubt, patch summary and start squinting

uncut viper
#

{{i18n:CPFIsaacIIntroEvent.1 |IsaacIReturnBeef={{ImportToken}} }}

#

oh

#

dunno what the converter meant by it then

#

but if you mean to pass a token into i18n like that then thats how you'd need to do it i think

#

since default.json cant access tokens on its own

finite sequoia
#

Let's try it out!

rancid temple
#

Is that an exception to the suggestion to not put tokens in i18n?

uncut viper
#

its not an exception, thats just how you pass arguments to the i18n token

ornate trellis
velvet narwhal
#

if you have specialty portraits, you need to do that

uncut viper
#

if you want your dialogue to say "Today is the first day of {{Season}}!" then you need to pass the season token into the i18n with the i18n token

rancid temple
#

Right, I just wanted to make sure before I said: you should avoid putting tokens into i18n so that translators don't think they have to translate that and break the token

uncut viper
#

(or use a tokenizable string but that was just for example)

velvet narwhal
#

yeah it is an attempt to keep translators from breaking things, i think people even separate the emotes to deter that

rancid temple
#

Yeah, I'm not familiar with special characters in translation, but I'd probably avoid putting any special command types in there too

uncut viper
#

in this case it would be better i think yeah to separate the different sections of the dialogue into their own tokens

#

own i18n i mean

velvet narwhal
#

i don't put any of my $actions into the default.json, but i left my emotes for my translator to understand what to look at, but that's case-by-case basis

uncut viper
#

and then in your EditData patch just string em together with the command separators between em

royal nimbus
uncut viper
#

but if you want the dialogue itself to have a random token in the middle of it but still be translatable then i dont think there's a better way

#

i mean you could split the sentence right in the middle of it or something but thats awkward

velvet narwhal
#

"just don't touch the brackets" //note for my editors

uncut viper
#

instructions unclear, they changed everything inside the braces

finite sequoia
#

Update: BUTTON THANK YOU!

#

Saved my mod, it was that pesky import token

uncut viper
#

thank avi i forgot about the patch export thing SDVpufferthumbsup

velvet narwhal
#

LMAO

rancid temple
#

Instructions unclear, deleted system32

velvet narwhal
#

ayo i love patch summary it solves 98% of my problems

#

the 2% is me forgetting to load a blank.json

uncut viper
#

(though you shouldnt touch anything inside brackets either. parenthesis are fine tho)

#

((unless the thing inside the brackets is EscapedText...))

velvet narwhal
#

i have tried my utmost BEST to save my translator the trouble of trying to reason my chaos

royal nimbus
#

okay i figured out my issue. it was never added to my content file lol. rip. fixing it now

buoyant ivy
#

Hello!
I dont know if i am right here but i have a small question.
i am currently working on a mod that adds item which i want to let spawn at certan locations. I already have it added with content patcher and let it spawn with ftm.

Now I'd like to know, is there any way that i could enable and disable the spawnin through config manager?
Or is there another way to let items spawn like forage besides ftm that works with a config set by the contentpatcher part?

velvet narwhal
#

where's esca i don't understand ftm

uncut viper
#

i also dont know enough about FTM unfortunately to know if its configurable or not

velvet narwhal
#

(to ping... or not to ping...)

buoyant ivy
#

i already tried a few things but i had no luck so far 😄
like setting the config schema in the ftm content json.
well, its not a problem if none of you have an idea how i could do that. no need to ping for that. 🙂

#

i just try around some more. maybe it is even not possible what i want to do and i have to find another way. in the end, the challenge is what makes it more fun for me.
Still Thanks. If I find a way i make sure to tell how i did it 🙂

velvet narwhal
#

esca will probably ping you if they see it, if not then i can reroute whenever they're around

buoyant ivy
#

thanks!

ornate trellis
#

wooo, I fixed my couches. Turned out I had the wrong size :B

velvet narwhal
#

i just had an evil idea but that might be my meme mod instead

dense tartan
#

Nice! Don't you hate it when it's that simple?

velvet narwhal
#

adding geese, and they bite you if they're disgruntled by you

lucid iron
#

geese that steals your crops

velvet narwhal
#

you have them free range? say goodbye to your crops

dense tartan
velvet narwhal
#

gotta put that in a note somewhere, i'll probably work on it if my c++ class is slow

ornate trellis
#

i am terrified but also intrigued

velvet narwhal
#

but at max hearts with a cracker they lay a golden goose egg

#

what i'll make the golden goose egg do? idk, i'll figure that out later

simple bramble
rancid temple
#

Hatch golden geese

simple bramble
#

if ykwim

rancid temple
#

A mod someone else made I'm assuming?

#

If it's for an existing NPC, the easiest way would be to find another up to date mod that changes what you want and see how they're doing it

hallow prism
#

<time> [location] <tileX> <tileY> [facingDirection] [animation] [dialogue]

(optional) The direction to face after reaching the destination. The possible values are 0 (up), 1 (right), 2 (down), and 3 (left). Defaults to down.
The wiki

2000 Lumisteria.MtVapius_AsterHouse 8 16 4????

What the fichtre did i do???

velvet narwhal
#

did you eat the wiki

hallow prism
#

no, i try to understand why i have facing of 4 in my schedule

velvet narwhal
#

oh lol

#

i think you're thinking of the advancedmove command

#

advancedmove uses 4

rancid temple
#

It's your subconscious politely requesting a break /j

round dock
#

It's a custom NPC, iirc.

rancid temple
#

I usually just tell mine that we'll rest when we're dead, but that's apparently the wrong answer

hallow prism
#

that may explain why my npcs are facing in weird directions, they probably keep whatever facing was in previous part of schedule

velvet narwhal
#

To make an actor pause, use the direction to face and the number of milliseconds to pause. 1 is right, 2 is down, 3 is left, and 4 is up. The reason 4 is up and not 0 is so that advancedMove can tell the difference between a pause command and a move up/down command.

#

advanced move is burned into your brain

hallow prism
#

i did the schedules before ever trying to look at what advanced move was doing (because i was afraid) but it's likely one reason of the mix up

#

that or me offsetting the value in my mind

velvet narwhal
#

i vaguely feel like festivals use 4 as well

#

but i'm unsure

velvet narwhal
#

honestly when i'm doing facing direction, doesn't matter how many damn events i've coded, i still point "north east south west" "0 1 2 3" when i'm doing it, and i feel dumb every time

#

schedule commands

dense tartan
#

@velvet narwhal I swear I'm missing something here.

            "Target": "Data/TriggerActions",
            "Entries": {
                //First Time Mail
                "{{ModId}}_DecoSale1": {
                    "Id": "{{ModId}}_DecoSale1",
                    "Trigger": "DayStarted",
                    "Condition": "SEASON_DAY Fall 24, !PLAYER_HAS_MAIL Current RobinHolidaySale01 Received",
                    "Actions": [
                        "AddMail Current RobinHolidaySale01 Now",
                        //"MarkActionApplied Current {{ModId}}_DecoSale1 true"
                    ]
                    },
                //Start Follow-up Mail Loop
                "{{ModId}}_DecoSale2": {
                    "Id": "{{ModId}}_DecoSale2",
                    "Trigger": "DayStarted",
                    "Condition": "SEASON_DAY Fall 24, PLAYER_HAS_MAIL Current RobinHolidaySale01 Received",
                    "Actions": [
                        "AddMail Current RobinHolidaySale02 Now",
                        //"RemoveMail Current RobinHolidaySale02 tomorrow",
                        "MarkActionApplied Current RobinHolidaySale02 false"
                    ]
                    },```
hallow prism
velvet narwhal
#

i haven't used the season_day command tbh

hallow prism
#

well, i think i need to put "cleaning schedules" on my todo list

velvet narwhal
#

nvm that's not it

dense tartan
#

I was about to say. 🙂

lucid iron
#

ah so AnimatedSprite.faceDirection has a switch case for 0 1 2 3

#

no default so 4 just falls through Bolb

velvet narwhal
#

i assume you've just cut the fat but did you lock these in their own { }

dense tartan
# velvet narwhal nvm that's not it

I did, yeah. I think it has to do with the MarkActionApplied thing. I may have to create a third entry then tell each trigger to mark the other as false. But there has to be another way. There aren't two entries in the vanillia mail.json for every repeating event.

velvet narwhal
#

so what the "MarkActionApplied Current RobinHolidaySale02 false" means, is that it's going to constantly check on dayStarted if those conditions are true

velvet narwhal
#

you said you wanted these yearly, yeah?

hallow prism
dense tartan
hallow prism
#

what a joy, i already LOVED schedules so much (/sarcasm /irony /cry)

velvet narwhal
#

i think you can get away with... my modulus query

#

hold on

#

{{Query: ({{DaysPlayed}} % 111 = 0)}}

#

that's a full year

#

wait hold on

#

full year -1 day, for it to spawn on the appropriate fall date that you want

dense tartan
velvet narwhal
#

yes, that is what you want

#

but you need a 3rd condition to make it only check every year

#

or not check, but y'know it's counting down the daysplayed

#

so if the daysplayed is a perfect division of 111, it'll send the mail

dense tartan
#

Sorry, I was asking about the markactionapplied comment you made about it constantly looking at DayStart for the conditions. My brain is melting - been staring at this and work stuff all day.

velvet narwhal
#

oh, that one's fine

#

that one is necessary for it to "repeat" on the 2nd trigger action, you can remove it for the 1st

#

and trust me, i've been looking at trigger actions for the past week, so i understand the brain melting

#

i've learned a lot of things, but i was also set back because button reminded me i'm dumb when it comes to ITEM_ID gsqs

lucid iron
#

i suspect this is just decompile shenanigans, but stardew has code like this for building strings

DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(5, 1);
defaultInterpolatedStringHandler.AppendLiteral("fps: ");
defaultInterpolatedStringHandler.AppendFormatted(frameRate);
string fps = defaultInterpolatedStringHandler.ToStringAndClear();

is this just unrolled version of $"fps: {frameRate}" or actually better in some ways?

next plaza
#

Yeah, that's what $"{meow}" type things unroll to I believe

proud wyvern
#

apparently even a simple one like that

#

i've been doing $"{someNonStringValue}" a lot

#

i've stopped after seeing the decompile

calm nebula
#

Yeah

proud wyvern
#

someNonStringValue.ToString() it is

calm nebula
#

It's surprisingly dumb

#

Roslyn, sometimes

gilded comet
#

is there a way to change the reward of mail with c#

#

wait can you send the same mail id multiple times or

#

yeah you've gotta be able to. there's repeating mail events

brittle pasture
#

mails rewards are part of the mail strings so you need to do some string manipulation
and yes you can send a mail multiple times, but I think a single mail with unique ID can only be inside the mailbox once per day? there was a convo about this above

uncut viper
#

only one of the same mail id per day yes

gilded comet
#

Game1.addMailForTomorrow looks like you can't get the same mail id again ever? with that one player.hasOrWillReceiveMail check

#

it's fine i can figure that out

old edge
#

Just figured out what RemoveDelimited does.

velvet narwhal
#

(is ender gonna drop the unlimited tree update 👀 )

finite ginkgo
#

(sorry not a tree update this time, just gotta ping pathos cause i found a bug in 1.6.9 ;p)

velvet narwhal
#

(we love pinging pathos with bugs)

finite ginkgo
#

(and i'm also a nervous wreck about pinging pathos so this short message which should've been sent like 10 years ago takes, well, 10 years to send ;p)

#

@ivory plume as of 1.6.9 the AcceptGift_<id> dialogue key has stopped working, NPC.GetGiftReaction never checks TryGetDialogue("AcceptGift_" + gift.QualifiedItemId)

velvet narwhal
#

y'know i was terrified about the broken_capsule and everyone was like, "okay but the summit is the only one that's incorrect"

#

wAIT THAT'S IMPORTANT TO ME THOUGH LMAO

naive wyvern
#

hello gang Im having a hard time with expanded storage 😭
[Content Patcher] Ignored Pau's Winery Racks > Include data/WineBarrel.json > Load Wine Barrel Rack: Entries > '{{modID}}_WineBarrel' value is invalid: '{{WineBarrelCapacity}}' can't be used as a token because that token could not be found.

WineBarrel.json https://smapi.io/json/content-patcher/2ef81c57217b4ba4b5c9155db441606d
content.json https://smapi.io/json/content-patcher/f88136984302479faeaf56e110a12db5

if it helps im trying to study 6480's storage variety, and I think i have everything set up but clearly not hiodshdiugh

gilded comet
brittle pasture
finite ginkgo
#

^

hallow prism
#

the good news is that the facing 4 in schedules was mainly on one character so at least there's not that much to fix...

calm nebula
#

You can do whatever the heck you want in c#

naive wyvern
#

Oh !! wait I think I see exactly where I glossed over 6480's code; the top part 😭
thank you aaa

gilded comet
#

sorry i've literally never messed with mail

velvet narwhal
#

no no, should

gilded comet
#

ah ok

velvet narwhal
#

someone is making a first person stardew, cause chaos

brittle pasture
#

You can edit the mail asset with an AssetRequested event or you can edit the mail dictionary after it's loaded. You can even patch the function that adds the rewards

#

Depends on what you want to do

gilded comet
#

alright. thank you!

brittle pasture
#

though I recommend the first route

ivory plume
lucid iron
#

@ivory plume The fairy box trinket light source only appears on the local player, is that intentional?

ivory plume
royal bough
#

There’s a mod that gives the farmer portraits right?

umbral vault
#

I had a strange encounter with CJB Cheats Menu where Fishing was set to level 60 when I was at level 9 and then level 59 when I leveled up to level 10

old edge
#

Which class are the monster abilities in the decompiled code

hallow prism
#

wording questions, if you want to say someone wasn't obligated to do an effort for you, what would be a common sentence to say that? like they are giving you a hand with tedious task or whatever

velvet narwhal
#

like in a rude way? or a nice way?

drowsy pewter
#

"oh you dont/didnt have to" "feel free to say no" "oh you shouldnt have" (very nice, surprised)

velvet narwhal
#

rude: "Even though I was under no obligation to offer help, I decided it was necessary."

drowsy pewter
#

thats from the wrong pov

hallow prism
#

nice way, from the person receiving the help

velvet narwhal
#

oh receiving help

#

"I appreciate the effort even though you were under no obligation."

#

or like "i'm not gonna take your hard work for granted" something

umbral vault
#

"“You didn’t have to do that, but I really appreciate it.”

hallow prism
#

thanks 🙂

velvet narwhal
#

SDVpufferthink will temporaryanimatedsprite <fade> command get mad at me if i set it to a negative if i want it to slow transition from nonexistence to existence

brittle pasture
#

which all derive from Monster

frail elm
#

Hello!

#

Im making a content patcher mod to replace the pig painting

#

I found the painting; its in tilesheets/furniture_2

#

I had received some advice about the "coordinates", but im not sure what to do

hallow prism
#

any reason why you replace rather than adding a new one?

frail elm
#

idk

#

I mean content patcher is easier

#

than adding something new

uncut viper
#

content patcher can also add paintings

hallow prism
#

ok 🙂 well, adding furniture isn't that much difficult if you want

frail elm
#

Maybe ill add the furnitre in another version

hallow prism
frail elm
#

Its just that i already ahve the pig paitning so its easier

hallow prism
#

and yes, that is fair, i wanted just to let you know 🙂

uncut viper
#

if you're fine with just changing the current painting then the EditImage stuff Chu linked is what you want to look at

lucid iron
#

yep, in particular the bit about PatchMode

pine elbow
#

hi, is it possible to have a range and select lines in i18n dialogue? for instnace i want lines 1-10 and 13 how would i do this using range? currently im using {{i18n:anony.NPC.0-4.{{Random:{{Range: 1, 10}}}}}} just to get lines 1-10

next plaza
#

{{i18n:anony.NPC.0-4.{{Random:{{Range: 1, 10}}, 13}}}} I think

uncut viper
#

thatd make line 13 a lot more individually likely than any of the other 10, right?

next plaza
#

No, it'd be even

#

How it works is it'll generate 1-10 first

frail elm
#

Hi

uncut viper
#

oh yeah

frail elm
#

Im getting an error when i try to use my mod

#

[Content Patcher] Error preloading content pack 'Brother, May I Have Some Oats?'. Technical details:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods[CP] Brother\content.json.
Technical details: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'ContentPatcher.Framework.ConfigModels.ConfigSchemaFieldConfig' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'ConfigSchema.Changes', line 16, position 15.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in E:\source_Stardew\SMAPI\src\SMAPI.Toolkit\Serialization\JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentPack.ReadJsonFile[TModel](String path) in E:\source_Stardew\SMAPI\src\SMAPI\Framework\ContentPack.cs:line 76
at ContentPatcher.Framework.RawContentPack.TryReloadContent(String& error) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\RawContentPack.cs:line 80
at ContentPatcher.ModEntry.GetContentPacks()+MoveNext() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\ModEntry.cs:line 455

uncut viper
#

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

uncut viper
#

!json send your json too since it seems like your config setup is wrong

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.

frail elm
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 13 C# mods and 10 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

you copied the json link wrong, i think, just leads to an error

mossy belfry
#

hi, i just joined a few minutes ago. i have no experience modding games, but ive spent the past few several hours looking into stardew modding, downloading content smapi and content patcher and stuff, reading guides and things on the modding wiki-

my goal is to add some fish, namely gourami. issue is, using the guides and the wiki i cant figure out what Exactly i need to be putting down, and what folders i need to have set up to include the new assets.

i know that at least on the wiki, adding fish is a fairly advanced thing to do? if anyone has any advice, or can direct me to at least something else i should do to get a better handle on how exactly to add things, i would really appreciate it.

uncut viper
#

ah yeah, missing a closing brace before "Changes"

drowsy pewter
uncut viper
#

currently the json is trying to add your Changes stuff inside the config which doesnt work

drowsy pewter
#

You don't need to have your mod files organized in any particular way. Mod file organization is pure preference (for CP mods)

#

I would suggest trying to add any random object first

mossy belfry
#

so could they just be like, loosely thrown into the mod folder? lol

frail elm
drowsy pewter
#

yeah its more about how your code refers to each file

#

as long as your code names the files correctly then they can be anywhere

uncut viper
drowsy pewter
#

Have you made a working CP mod first? Literally anything?

hallow prism
#

i suggest starting by making the object and focusing on that alone

mossy belfry
#

makes sense, thank you! and no i have not 😭 ive honestly sort of just been floundering around between guides haha

uncut viper
drowsy pewter
#

Start with the intro CP wiki guide

#

!cp

ocean sailBOT
drowsy pewter
#

second link, it gives you a dummy mod to set up

hallow prism
#

once you have a working object you can see about having fish info, then location stuff

drowsy pewter
#

once you have the dummy mod set up and working you can come back and i'll give you a template/info for object modding

mossy belfry
#

okay awesome, ill check this out. thanks a bunch!

hallow prism
#

(i emphasis on the step by step, as the location stuff is to be done right to not erase existing location info)

#

luckily the progression is mostly natural at least, you don't have to start by the worse part. Another advice before i go to sleep : install mods like CJB item spawner (and CJB cheat) as they'll make testing easier. I love debug commands, but cheat mods are really more convenient on some stuff. WIth item spawner you can quickly see if your item is properly added/working

mossy belfry
#

makes sense!

#

i appreciate the help

frail elm
#

Finally got it working!

#

Thanks so much everybody!

mossy belfry
drowsy pewter
#

Awesome! Okay, I'll type out a longer message with more direction for you

#

first unpack your game

#

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

drowsy pewter
#

You can keep that folder you set up and use it to start working on your fish mod.

  1. Have the CP author's guide open--this gives you info on different CP functions that you can search through for help https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide.md#readme
  2. Have the Object wiki page open as well--this tells you specifically about the structure of the game's object data (which you can view in the unpacked files in Data/Objects) https://stardewvalleywiki.com/Modding:Items#Objects
    It's the structure that your custom Object (the fish) will follow
  3. Grab my template mod and look through the files/code to familiarize yourself with it. You can copy directly from it to use for your own. My template mod adds one crop and two items (the seeds and the produce), but you just need to worry about adding an item, which is going to be the same format https://github.com/6480k/6480-Stardew-Mods/blob/main/[CP] Mouse-Ear Cress/content.json
#

You can see that my template mod only has a single content.json file, and a folder for image assets. That's because it's really simple and I have no need to split code among other files. If you want to split code between files, you need to use a special CP function called Include for that. But I recommend that you just do stuff in the content.json until you're more comfortable with everything

tiny zealot
#

considering ending a reply to a nexus comment with "hope this helps!" and shriveling into a husk unable to decide if it's genuine or savage. surely this is what tone indicators are for

rancid temple
#

Put a smiley

tiny zealot
#

._.

finite ginkgo
#

"Hope this helps! D:"

velvet narwhal
#

meanwhile all of my changelogs have some form of "i made a woopsie daisie, dumb me"

frail elm
#

how can i show off my mod in mod showcase?

velvet narwhal
#

one of the orange flavored names can offer to put it up, it's a farmer + mod author perk

mossy belfry
sacred sluice
#

Hello!
I need some help: i'm doing my own mod and i'm trying to change Haley's texture, but when i start a new game, she's wearing winter clothes... is there something that i can do about it?

brittle pasture
mossy belfry
#

ah, whoops

#

thank you

lucid iron
frail elm
#

Could you please showcase my mod, @brittle pasture ?

brittle pasture
#

sure, post it!

lucid iron
#

do you intend to give her more outfits?

frail elm
sacred sluice
hallow prism
sacred sluice
#

:(

lucid iron
#

oh i missed the part about new game, thought you just loaded in blobcatgooglyblep

drowsy pewter
#

your winter clothes or *vanilla( winter clothes?

mossy belfry
frail elm
#

@brittle pasture Thanks so much!

lucid iron
#

can't imagine how that'd happen if you are just using Load or EditImage, perhaps post conent.json and a log

brittle pasture
sacred sluice
sacred sluice
drowsy pewter
#

thats an important distinction

#

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

frail elm
lucid iron
#

yea could be that you got your loads wrong

drowsy pewter
#

you probablu just named a texture wrong

sacred sluice
#

I'm going to take a look at it, i think i found the mistake

mossy belfry
dense tartan
#

I'm pretty sure I've asked this before, but When statements don't allow you do to different days per season, right? Like if I want something to be available on Spring 14 and 15 and again for the month of Summer, I need to use Conditions instead. Is that right?

velvet narwhal
#

you can do a query inside of a when

#

you can probably do just the uh comma additions though iirc

uncut viper
#

you dont need to do a query, you can just have two different when conditions, one for spring and summer, and one for the day being 14 or 15

velvet narwhal
#

cause that's an any

#

i have absolutely no when conditions without the |contains lmao why am i like this

drowsy pewter
#

yeah you can just use CP syntax to combine when conditions

dense tartan
modest dagger
#

Hey 6480 how'd you come up with prices for your crops?

drowsy pewter
#

i keep a spreadsheet for vanilla and modded items and balance them so that profit/day roughly matches vanilla

#

thats all i can really say

#

just balance it

#

for machines i made a spreadsheet for time/profit/effort/etc for all vanilla machines

modest dagger
#

hm, alright thanks

dense tartan
velvet narwhal
#

Oh all days the next then yeah buttons 2 different editdata with their when condition

drowsy pewter
#

what is this when patch even for?

#

this sounds like a shop entry?

dense tartan
#

You got it!

drowsy pewter
#

then use the conditions field

dense tartan
#

Does When not apply to shops?

drowsy pewter
#

its the intended method of hiding shop entries

#

i mean you can use When if you want but like

#

MoveEntry only works when the entry exists
other mods patching your shop entry will have to account for the shop entry sometimes being there sometimes not being there

#

its just not something i would do

dense tartan
#

Thanks for the input!

velvet narwhal
#

Oh shops SDVpufferclueless I did not enjoy reading making my custom shop

calm nebula
#

But did you enjoy making a custom shop?

velvet narwhal
#

Making it, yes, reading the nuances, no

whole raptor
#

I'm guessing there's isn't anything like that, but worth asking anyway. Is there a wiki article or something that describes how base game handles internationalization/translations? SDVpufferthink

rancid temple
whole raptor
#

Hmm not quite what I was looking for, but that gives me an idea at least, thanks

deep cypress
#

I have a Redwood I started worked on a week or so before 1.6 was released. I got so bogged down, I still haven’t finished her. She is really tall. It is funny tho cause the vanilla trees which are large, but are just graphics…

next plaza
#

Syntax highlighting for my content patcher type thing for SpaceCore? SDVpuffereyes

gaunt orbit
#

anyone know where one can find the weather debris textures? I can't see it in cursors

next plaza
#

Now, do I go through the trouble of implementing error highlighting...

#

(I have no clue how languages "keep going" after highlighting an error... my parser stops at one)

gaunt orbit
#

aha! it is in mouse cursors

uncut viper
#

i think they might just pretend the error didnt exist or like, if the issue is a missing comma or something, pretend the comma is there, and keep going

lucid iron
#

r u make the abstract syntax tree

#

in those case its ok if a node is kill, it can continue with other branch

next plaza
#

I'm not sure what defines an abstract syntax tree, I kinda just whipped something together

uncut viper
#

(i took a whole course on it and still barely understand them SDVpufferflat)

brittle pasture
#

the only thing I did related to ASTs was writing JS code that wrote other JS code. and yes, it is as cursed as it sounds

lucid iron
#

yea in the context of a functional programming language a leaf is a literal and a branch is a operator, so smth like addition would be like
[+]

  • 1
  • 2
teal bridge
lucid iron
#

u can prob steal homework from the official json extension

next plaza
lucid iron
#

functions are also "operators" kinda

mossy belfry
#

Well, it only took 2 and a half hours but i finally have an item with no image and a broken name, LOL

lucid iron
#

it lives!

drowsy pewter
#

hahah

mossy belfry
drowsy pewter
#

Awesome!

#

the prettiest flower

gilded comet
#

picked a hard to spell name for a mod (i like it) but it has led to at least one Esoteric Tech Issue because i spelled the name wrong 😭

little crag
#

(also i love your carrd)

mossy belfry
#

Haha thank you!!!!

lucid iron
#

There aren't that many mods which use OutputMethod machines right

#

I was thinking of adding some desc for the vanilla ones to LA, to show in place of the current "too complex to display" message

brittle pasture
#

that could be a good idea

lucid iron
#

But it'll be hella hardcoding which bothers me a little bit

brittle pasture
#

LA is already hard coding context tags' readable descriptions

#

since there's like no other way

lucid iron
#

what if I just reverse patch and show the IL it'll be very useful trust

calm nebula
#

No no no

#

Feed the IL to chatgpt

#

See what it says

#

Clearly a machine that can solve a resistor net a third grader can solve can lay out a pcb

lucid iron
#

Prob need more opinion from content mod authors too, whether they would be down with extra work like this

brittle pasture
#

still not as much a slacker as me, who more or less washed their hands of future improvements to LA since it already did what I wanted
(unreadable Cornucopia yogurt recipes be damned)

lucid iron
#

I try not to think about the font wrapping LilyDerp

brittle pasture
lucid iron
#

Oh custom bush integration is just LA calling the api

#

No additional work from content makers

#

Really the ideal case is sneak a context tag model into game itself and make everyone do it kyuuchan_run

brittle pasture
#

or per atra's idea feed the context tag to chatGPT and spit out a readable description

lucid iron
#

Nou

#

Context tag model is pipe dream but I do think it'd be really nice to have display names for locations

#

LA has a bunch of no translation for modded fishing data

calm nebula
#

Don't locations have a display name field

#

It's not always populated but k swear it exists

royal stump
#

GameLoc does, yeah

#

no idea if it's ever used, but it's available as a data field, I guess

calm nebula
#

What about the data model

brittle pasture
#

yeah it does have DisplayName

calm nebula
#

I would check myself but I'm in bed

#

Sl

#

Goodnight!!!!

royal stump
#

it's the first field in vanilla Data/Locations entries, e.g.

"Woods": {
    "DisplayName": "[LocalizedText Strings\\StringsFromCSFiles:MapPage.cs.11114]",```
lucid iron
#

Ah then it is just ppl not putting it in blobcatgooglyblep

#

Prob cus Data/Location is new?

royal stump
#

pretty sure the field didn't exist prior to 1.6, yeah

lucid iron
#

That or LA not updated in this aspect, I'll check tmr

brittle pasture
#

so the fix is probably to bug mod makers to add the display name to their data field

calm nebula
#

Or be that one CP mod that adds it to a bu ch of mods

brittle pasture
#

altruism!

calm nebula
#

defects

#

And by that I mean I really do need to sleep

next plaza
#

Mwahahaha

#

(It can only show one error at a time though)

#

Only problem: It's not very helpful because this is technically valid until the end of the file:

#

Because argument separators and statement enders at the same token

#

And I'd need to add support for all the functions...

fossil stirrup
#

ive never made a mod before, and ive been told this is a good place to ask for help. i think its pretty simple? im just having a hard time understanding the error code im getting when i try to validate my content file. if anyone is willing to give me insight or feedback id really appreciate it. its content patcher texture replacement

faint ingot
#

So this is a longshot but can the farmer's eye color be referenced in a content patcher dialogue line?

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.

lucid iron
#

looks like a missed comma after ToArea before PatchMode

fossil stirrup
uncut viper
#

(i would also highly recommend notepad++ instead of notepad, incidentally)

#

(notepad++ at a minimum i mean, VSCode even better)

gilded comet
next plaza
#

Yeah, I made it for embedding in my C# mods that depend on SpaceCore. At some point I'll make it available for others to make content packs for though

gilded comet
#

really cool

#

it's like my pytocp thing but ostensibly much better

fossil stirrup
brittle pasture
#

TIL wild trees can have a sprite for "has seed", and a sprite for "has moss", but not a sprite for both

faint ingot
#

Does anyone know if I can re-use this format to trigger dialogue after events (from Demetrius' dialogue file)? or do I need to use the event to create a conversation topic? "eventSeen_65_memory_twoweeks": "Don't forget to check that farm cave! There's bound to be something useful in there by now.",

velvet narwhal
#

You can iirc, 65 is the unique event id

faint ingot
#

OK so I can use my own event IDs in this way? awesome

velvet narwhal
#

Yeah I don't have access to the decompile right now but it should fit the template, Abigail has it too

mossy belfry
#

@drowsy pewter sorry again for the @ but 🥹 thank you SO much for the help!

teal bridge
latent mauve
#

If I wanted to try to make my new home renovation room decoratable as far as being able to change the walls and floors, how would I go about doing that?

#

I saw mention on the wiki about decoratable locations but I can't figure out where that gets implemented if I am using CP

gilded comet
#

added a method to Helper.Events.GameLoop.DayStarted and it doesn't seem to get run at all

proud wyvern
#

How did you add it?

gilded comet
#
Helper.Events.GameLoop.DayStarted += OnDayStarted;
#

like you're meant to im pretty sure

uncut viper
#

is that in your Entry?

proud wyvern
#

Can we see the whole file?

gilded comet
#

yeah

#

i moved the method over from another file thats why there's so many method references elsewhere

#

like Code.Helper etc.

#

literally i don't see any reason it wouldn't work

proud wyvern
#

abstract class?

gilded comet
#

oh i have no idea why that's there

#

one second

proud wyvern
#

that would be the reason it doesn't work

#

SMAPI literally doesn't load it

gilded comet
#

got it. thank you

#

that worked!

gilded comet
#

okkk another issue i don't understand the cause of

#

in both a patch on Crop.newDay and a function using Utility.ForEachCrop the Crop instance passed to the function returns an empty string for Crop.indexOfHarvest and returns null for Crop.GetData().

#

i don't know how to get what crop type it is

#

i use

Utility.ForEachCrop(CountMatureFlowers);

with

public static bool CountMatureFlowers(Crop thisCrop) {
        if (thisCrop.dead.Value) return true;

        if (!thisCrop.fullyGrown.Value) return true;
        
        Helper.Log((thisCrop.GetData() is null).ToString());

        if (!Helper.FlowerCache.Contains(thisCrop.indexOfHarvest.Value)) return true;

        Farm thisFarm = Game1.getFarm();

        Helper.Ensure_modData(thisFarm, Helper.ModDataPrizeCheckKey);
        
        int prizeScore = int.Parse(thisFarm.modData[Helper.ModDataPrizeCheckKey]);

        thisFarm.modData[Helper.ModDataPrizeCheckKey] = (prizeScore + 1).ToString();

        return true;
    }
proud wyvern
#

sounds like invalid crop data to me?

gilded comet
#

it's every crop though. not any of them get through

proud wyvern
#

indexOfHarvest seems to be what the game uses to make the crops drop anything though. if it's an empty string, then that functionality would be broken

gilded comet
#

hm.

#

i think i figured something out?

#

nope...

#

lookup anything seems to be able to get the indexOfHarvest just fine

#

but nothing i'm doing works :(

velvet narwhal
#

maybe the gourmand frog code would help?

gilded comet
#

oh thank you

#

it just iterates, i'll see how that'll work

velvet narwhal
#

it was the only thing i could think off the top of my head that "judges" the fact that a crop exists SDVpufferclueless

gilded comet
#

it seems to work?

finite ginkgo
#

(did some testing with Utility.ForEachCrop and seems like it also counts the ginger on ginger island and that seems to have a null indexOfHarvest, so you would've just needed a crop.indexOfHarvest.Value != null in the original code)

gilded comet
#

yeah but all of them ended up null? the correct ones might've gotten filtered out early

#

it's alright it currently works rn

finite ginkgo
#

Hm, in my testing only the ginger is null, the crop i planted works fine (see the top line, that's it's indexOfHarvest)

gilded comet
#

yeah i think i had a conditional that was wrong

#

thank you for checking!

hallow prism
#

do someone spots anything wrong in :

speak Sterling? \"{{i18n: SeedShopMaddy2HSterling01}}\"/```

I thought using ? would avoid issues but instead my event just end
#

so maybe i don't get how ? is supposed to work, but wiki has like, no extra info

vernal crest
#

speak is currently broken with optional NPCs if the NPC isn't present.

#

I think that it should be fixed in 1.6.9 but I am just looking back through discord to check that it definitely did get reported to Pathos as well as the problem with the move command

hallow prism
#

thanks! i was about to say that i have no issue with optional in advanced move command so

#

good to know

#

good thing : it's not me
bad thing : it's not me 😄

finite ginkgo
#

Yup it's in the beta changelog that it's been fixed in 1.6.9

hallow prism
#

thanks 🙂 i'm glad i asked, i would not have solved it on my end 😄

#

("she fixes C# issue with a simple CP trick, developers loves her")

vernal crest
#

Oh whew thanks EnderTedi

#

Ohh I didn't even think to click on the page for the beta to find the changelog. Silly of me.

slender badger
#

I shared this over in #modded-stardew but it'd be more useful over here instead 😆 I've started making a table on the modding wiki with a list of everything contained in Cursors (and eventually Cursors2 and Cursors1.6) with a quick description, co-ordinates, and sprite sizes for easy reference
https://stardewmodding.wiki.gg/wiki/Cursors

Stardew Modding Wiki

The Cursors.xnb is full of various different icons that are used in-game. Of course, at first glance it is difficult to tell what they are used for and where. A running joke in the SV community is that if you are looking for something, it is either in Cursors.xnb, Cursors2.xnb... or Springobjects.xnb.
Note: some of the usage descriptions may be ...

#

It's only partially filled in so far because we've all seen how big Cursors is and there's some stuff that I don't know where it's used, but I've got the main structure set up if anyone's interested in helping fill it out at some point

naive wyvern
#

Omg a guide for cursors yipeee !!!

#

Good morning to me !!!

vernal crest
#

That's going to be very helpful for a lot of people! How are you determining which order the sprites should be listed in the table? I see it's roughly left to right and then down, but the inconsistent sizes interfere somewhat with that approach I think.

slender badger
#

Yeah, it's just a rough order since everything's packed in there

#

The separation bars are at the points where there's a clear line between sprites with no overlapping

hallow prism
#

(is there a thread for the beta or something?)

vernal crest
#

Does the wiki allow multiple people to edit a page at once or does it lock it once one person has started?

slender badger
#

Should be open to anyone

calm nebula
#

Non!

calm nebula
#

But that usually ends in tears

vernal crest
#

Hmm that seems dangerous if more than one person is doing it.

slender badger
#

Though I'm not sure how it'd handle it if two people are editing at the exact same time SDVpufferthinkblob

calm nebula
#

Sometimes in the past when we were discussing wiki edits I'll be like "lock on schedules page, please don't edit until I'm done"

paper sundial
#

About to cause merge conflicts on the wiki SDVkrobusnaughty

calm nebula
#

Yeah, uh

vernal crest
#

I guess if I try to add some stuff to the cursors page I will just do them in a different program in small spurts to avoid a) trying to edit at the same time as someone else and breaking stuff or b) working on something for ages and then someone else has done the same work.

calm nebula
#

How is hiring going

#

Hiria

#

My phone autocorrected to hiring sorry

vernal crest
#

Lol all good

#

She's...kind of going. I get too caught up on trying to make her realistic and forget that I am meant to be having fun lol

hallow prism
#

yeah, focus on the fun 🙂 realistic can always happen if you find a way to make that part fun. Like, a challenge, or just being "oh, Hiria would react (that way) that makes so much sense". Sometimes, you need time for the pieces to click together

#

it's good to not force it 🙂

vernal crest
#

I also realised that I can just shanghai people into realism testing her for me SDVkrobusnaughty

#

It helps to know that I don't have to do things all by myself. If I hadn't joined this server I would've gotten overwhelmed and abandoned her several times over by now SDVpufferheart

tiny zealot
calm nebula
#

Ngl ichor

#

I really do want to know how lacey reacts to specific 1.6 hats

#

(I'm not asking you to tell me, just expressing interest)

tiny zealot
#

the latest update has the 1.6 hat reactions

#

one thing i will spoil in here: in 1.5 i did a gag about the pink bow being enormous. 1.6 added multiple bows of comparable size, so i had to keep riffing on it

vernal crest
#

I am writing a mini-event of Hiria discussing parrots with Demetrius because kākāpō are fat and stinky and I want the world to know about them :D

naive wyvern
#

Oh thats cute @ichor and aba

vernal crest
#

Only problem is that Stardew doesn't do macrons so I have to write it as "kaakaapoo" and that's just awful SDVpuffersob

#

This might be the thing that finally gets me to see if the Font Settings mod will let me add a font with macrons.

hallow prism
#

those are the birds people are trying to reproduce so they don't go extinct?

vernal crest
#

Yeah. They are critically endangered because they are so fat and flightless :(

slender badger
#

Aba, does ä work as a substitute in Maori? I ran into the same issue with Samoan Alex's dialogue since he calls his grandparents Tinā and Tamā, but I found a resource somewhere saying that ä could be used as a substitute for ā in Samoan if needed, which works in Stardew

tiny zealot
#

this is the sort of situation that would get me writing some bespoke C# shenanigans to patch in the macron letters

vernal crest
#

Ooh thanks Airyn I will look into it. I've only seen letter-doubling as the acceptable substitute so far (hence kaakaapoo lol) but I will try specifically looking for two dot substitution.

frigid hollow
#

käkäpö...

naive wyvern
#

out of curiosity I looked up kaakaapoo and omg

#

they look like atis

#

im gonna whip up a meme just for this uno momento

#

uidsgiuguif

#

okay bye HAHA

lucid iron
#

1 kaakaapoo is basis for the party parrot emoji

hallow prism
#

what is atis?

naive wyvern
#

its a fruit !

#

very very yummy

vernal crest
#

The atis looks like a custard apple.

#

I wonder if they are the same?

naive wyvern
#

lemme find what else its called, maybe youre right

#

wiki says theyre also called sugar apples

slender badger
#

I'm pretty sure it is, yeah!

naive wyvern
#

sweetsops, thats a cute name kamo_laugh

thin hamlet
#

Okay, so now everything is under the minerals category, and… nothing can be donated💀

hallow prism
#

i didn't know at all about this fruit, thanks 🙂

naive wyvern
#

looks like airyn and aba are right "The flesh is fragrant and sweet, creamy white through light yellow, and resembles and tastes like custard. "

vernal crest
#

Yeah Australia does call them custard apples - I didn't realise the rest of the world doesn't!

naive wyvern
#

thats so cool !! i learned a new word for them today

calm nebula
#

One of you guys should make a mod that just adds it

vernal crest
#

/cough Pau cough/

naive wyvern
#

hfuahfajuf ill check if cornucopia has it first kamo_laugh the chances of it being there is high

thin hamlet
#

Is there a tag or smthn that lets me donate because it wasnt the category that was the problem

vernal crest
thin hamlet
#

This is for MCGM

hallow prism
#

i have no problem with my mineral being natively donatable

#

can you ensure you are testing with fresh items

#

have place left in museum

#

and show the code

slender badger
thin hamlet
#

Nothing’s in the museum yet

#

This is my fresh test farmer

#

Lemme grab the code

rancid temple
thin hamlet
hallow prism
#

what do you think would be the most convenient for me?

thin hamlet
#

One i suppose SDVpuffersquee

lucid iron
#

1.6.9 seems like all bug fixes tho

hallow prism
#

kinda wish we have a "temporarystaticsprite"

slender badger
#

Pathos mentioned there were some accessibility tweaks too, I think

naive wyvern
#

update from my prelim research, atis/sugar apple/custard apple is not in cornucopia

👁️ maybe I could do it after all

vernal crest
#

Very confused now about what Atra was suggesting be added. First I thought macrons, then I thought custard apples, now I think macrons again. Halp.

naive wyvern
#

sorry for the multi track train of thought uighuigfiudg

hallow prism
#

i must say it, i really resisted but the name of this accent is really really really hard to read

#

T___T

#

cries in french

slender badger
hallow prism
#

thanks, we can return to a normal discussion

vernal crest
#

Yes I saw 1.6.9 is getting fields to support screen reader mods which is awesome

lucid iron
#

Does it work if you make a TemporaryAnimatedSprite that's 1 frame long

thin hamlet
#

here lumi

hallow prism
#

i guess, it's just that it's a list of 18 fields

rancid temple
#

!codeblock

ocean sailBOT
#

You can embed code in Discord using a series of three ` :

Your code can go here
Even if not a haiku
Just an example

For syntax highlighting, add the language code on the same line as the first (with a space between, like json). The usual codes are cs (C#) and json.

rancid temple
#

Lol, poor Gov

hallow prism
#

try type minerals and test with a fresh one? just in case

thin hamlet
#

how the heccdo i get the backwards apostrophe

vernal crest
#

Is that a new problem with the command? I don't remember it being all wonky like that before.

rancid temple
#

It's on the tilde key

#

~

vernal crest
#

Backtick is the key to the left of the 1. The tilde like roku said.

rancid temple
#

You can also copy paste from the message

hallow prism
thin hamlet
#

i cant tab down

lucid iron
#

I usually fix tabs in vscode then paste

vernal crest
#

It's on the 7 key for the French keyboard?

#

Tab down? Do you mean line break?

#

If so that's shift+enter

thin hamlet
#

there we go

rancid temple
#

Usually when I copy paste from VSCode discord decides that my tab spacing is actually illegal and messes it up

slender badger
#

Just send the code via the JSON validator

lucid iron
#

oh yeah discord doesn't like the actual tab character

slender badger
#

Then it's not taking up a huge amount of space

lucid iron
#

I indent with spaces bc I am unfortunately a python dev

rancid temple
#

I thought I had it set up to convert tabs to spaces already

hallow prism
rancid temple
#

Maybe I only have that on regular VS

thin hamlet
#

ok

vernal crest
#
  I tab in discord though
    Have I just never noticed it not working?
#

Hmm my tabs look fine to me

thin hamlet
slender badger
#

I think tabbing only works if it's in a code block

hallow prism
#

i mean, i see no point in sending it if you ignore the suggestion of fix i.... suggested

thin hamlet
#

tabbing dosnt work normlly

hallow prism
#

test with the suggestion and then tell me if it's better, and if not, send the actual version

thin hamlet
#

what?

#

oh you sent something

#

mb

calm nebula
thin hamlet
#

you mean with cjb?

hallow prism
#

...

thin hamlet
#

godammit im so confsed

hallow prism
#

you still have mineral

#

anyway

#

send help pls, i found a sprite for barbecued aubergine i made a while back and now i want to make a recipe

lucid iron
#

Objects that already spawned don't get refreshed from object data changes

#

That is why lumina is suggesting starting with a new copy of the item

hallow prism
#

"maybe this event can learn you (recipe x)" "what about more recipe????". Begone, scopecreep

rancid temple
#

You can also check how vanilla is doing its stuff to see

slender badger
# calm nebula Pride themed yarn, obviously

Thinking about it, I actually can't remember if there's any existing mods that expand on wool & cloth? It'd be really neat to have a mod that lets you dye wool, spin it into yarn, and then create knitted socks, jumpers, cardigans & such

rancid temple
#

A better example I guess, matching your desired category

hallow prism
#

no idea if they released/are up to date

lucid iron
#

irl looms r massive

#

wonder if there's something that let you make bigger big craftables

brittle pasture
#

aedenthorn casey had a mod for that (sorry I misremembered!)

#

not updated though

#

or you can just make a building

calm nebula
thin hamlet
#

I guess my next step is to get a decompiler working 💀

calm nebula
#

Like, the fact that it is a physical object is the point

slender badger
#

Well yeah, but that's also true of a great many things that can be created in games with crafting 😅 It's more "this is a way of expanding what you can do with wool" than specifically about the item itself

calm nebula
calm nebula
thin hamlet
#

And idk what the “localized text” means

rancid temple
#

Your Type and Category have to be set correctly, the game automatically assigns context tags that decide donatability

thin hamlet
#

Im using IE, idk if thatd work

#

Oh ok

rancid temple
#

You could try manually adding one of the context tags as well