#making-mods-general

1 messages ยท Page 594 of 1

vital solstice
#

Hold on I gotta edit it back since ive been trying to add in a when statement but i don't think thats gonna work either

hard fern
#

wtf bot pls work

#

!json

#

nooo

verbal glacier
#

rip

#

!json

torpid sparrow
#

governor died

hard fern
#

guv pls

#

i beg of you

strong kite
#

I had noted down a bug last night where sometimes when handing Darkrai a bouquet, sometimes it shows this instead of the rejection dialogue I set

torpid sparrow
#

!json

severe cairn
#

!json

torpid sparrow
#

sadness

severe cairn
#

:(

verbal glacier
#

:(

strong kite
#

:(

patent lanceBOT
#

:(

hard fern
#

you might have to cover all your bases

severe cairn
strong kite
severe cairn
#

who put the shorts in the pot, Governor we need you ๐Ÿ’”

vital solstice
#

{ "LogName": "Add Toshinori to 10 heart group event; rabbits foot",
  "Action": "EditData", 
  "Target": "Data/Events/Saloon",
  "Entries": {"195099/f Shane 2500/f Sebastian 2500/f Sam 2500/f Harvey 2500/f Alex 2500/f Toshinori 2500/f Elliott 2500/o Abigail/o Penny/o Leah/o Emily/o Maru/o Haley/o Shane/o Harvey/o Sebastian/o Sam/o Elliott/o Alex/o Toshinori/e 911526/e 528052/e 9581348/e 43/e 384882/e 233104/e 661700007/i 446/k 195013": "playful/-1000 -1000/farmer 27 19 1 Sam 36 20 1 Sebastian 37 19 2 Harvey 39 19 2 Shane 40 17 2 Elliott 41 19 2 Alex 42 20 3 Toshinori 42 22 3/animate Shane false true 200 20 20 20 20 20 20 20 20 20 20 21 22 23 24 24 24 24 23 22 21 20 20 20 20/pause 1000/message \"For some reason, you decide to place your hand in your pocket... to check if the mod is working\"/pause 500/message \"You touch the rabbit's foot, and feel a sense of relief...\"/move farmer 5 0 1 true/viewport 37 19 true/move false/pause 500/faceDirection Sam 3 true/faceDirection Elliott 3 true/faceDirection Harvey 3 true/faceDirection Alex 3 true/faceDirection Toshinori 3 true/faceDirection Shane 3 true/faceDirection Sebastian 3 true/textAboveHead Sam \"Hey!\"/textAboveHead Alex \"What's up?\"/textAboveHead Shane \"Oh, hey\"/pause 2000/move farmer 3 0 1/emote farmer 32/pause 500/speak Harvey \"You showed up just in time for the first ever Pelican Town 8-ball tournament!\"/pause 500/speak Elliott \"Don't worry, I've never played before, either.$h\"/pause 500/speak Shane \"It's easy, you just gotta put some mustard on the cue ball...$h\"/pause 500/fade/viewport -1000 -1000/pause 1500/message \"You played a round of pool with the boys.\"/pause 1000/message \"Sebastian won, of course... but it was still a lot of fun!\"/pause 500/end"}```

Starting with the rabbits foot one cause it's easier, i slapped him in there with the other ones, followed the format, but it only works if I *dont* put in the prerequesits so the "f Toshinori 2500", "o Toshonori",  "e 661700007"

I've tried with the new updated proper ones too, doesn't work. My next try was going to be a when statement, but that is harder than i thought and I assumed it wouldn't show up anyway because then "when" wouldn't override the OG ![hmmKitty](https://cdn.discordapp.com/emojis/666464008303280178.webp?size=128 "hmmKitty") i don't think, idk, i'm just a little guy
strong kite
#

If this doesn't work then it's actually cursed heehee

fallow musk
strong kite
#

I DIDNT THINK IT ACTUALLY WOULDN'T WORK WHAT-

calm nebula
#

How big is your house

vital solstice
fallow musk
strong kite
vital solstice
#

"CanBeRomanced":true,

strong kite
#

Nope, cuz he isn't supposed to be but is supposed to have dialogue for trying to give him a bouquet

severe cairn
#

it be like that sometimes ๐Ÿ˜” happened to me too

hard fern
strong kite
#

Here's the intended exchange, which triggers sometimes

strong kite
uncut viper
#

That's because it is, it's a 50% chance to get the generic dialogue instead.

strong kite
#

BRO THAT'S SO LAME

#

Is there a way I can make it always trigger? Cuz this dialogue is tied to learning one of his loved gifts (and also the existence of Bouquet Ashes)

uncut viper
#

You can conditionally edit Strings/StringsFromCSFiles:NPC.cs.3955 when you're in Darkrai's location if you're sure there's not gonna be any other NPC in there, but it'll still just be the same kind of messgae box and not dialogue.

strong kite
#

Literally why LUL
Like I'm not even mad at this point I'm just curious

uncut viper
#

Because it's a 50% chance to get the generic dialogue

#

It's literally just flipping a coin to decide which dialogue to use, the generic or one of the other ones.

strong kite
#

Why would it be coded like that I mean
Maybe I just wouldn't get it cuz I never date anyone in stardew

#

I don't think I've ever seen these dialogues in game

#

atp I just find it funny LUL

ivory vapor
#

hello all. i'm working on a dialogue mod (using json files) and i need some help. i want to make it so that the player can use generic mod config menu to choose a certain title to go by (farmer, florist, brewer, etc) but i'm new to modding so i'm lost as to how to do so.

strong kite
#

Anyway I wont worry about it then. It's not like it's Darkrai's only loved gift, and they'll also learn about it in one of the final bundles

ivory vapor
#

any help would be appreciated ๐Ÿ™

ivory vapor
verbal glacier
#

check out the other documentation as well super helpful for making content patcher mods

royal stump
#

you'd basically want something like this in your main content.json

"ConfigSchema": {
    "FarmerTitle": {
        "AllowBlank": false,
        "Default": "Farmer"
    }
},```
and then use `{{FarmerTitle}}` in dialogue where needed
ivory vapor
#

oh thank you so much

#

you guys have helped a lot :) i appreciate it

royal stump
ivory vapor
#

that's a helpful tip! i was thinking about that for the start of sentences so this is also necessary

round dock
uncut viper
#

(notably, mail does not)

ornate locust
#

Yeah mail doesn't, for one

toxic topaz
#

i feel like i could get a good sandstorm like outcome if i added sandly color clouds into the screen, and have them be partially dispersed by the light areaPES_Think

#

sand is annoying in games and irl PES_Hands

royal stump
#

(yeah, I figured token strings would work in dialogue, but I'm not familiar with what checks it)

uncut viper
#

it obv does not go into detail about what specific parts of these assets support it and which dont tho bc i was lazy at the time

gentle rose
verbal glacier
#

happy belated birthday claire SDVpufferparty

round dock
#

So Iโ€™ll apply the greetings retroactively thanks

severe cairn
#

happy birfth

torpid sparrow
#

happy birthday claire 3ohokay

dire kestrel
#

huh did my message fail

dire kestrel
strong kite
#

apparently my event's skip actions aren't working Tiredkip

#

Maybe I just make this one event unskippable just cuz it does like several things

rich seal
#

How do buff durations work? I decided to put buffs on some of my food items so everything isn't just +health and +stamina, but when I went to give a buff 120 for the duration, it doesn't last for 120 seconds. Kinda driving me nuts that most buffs have weird durations and I want to do a whole new mod that makes everything last for less insane times, like 12 minutes instead of 11 minutes and 41 seconds for example.

strong kite
#

Why does it say Darkrai is on the farm??
I actually should not be testing things with my mood today..

#

cuz Bug Fixing is not something I'm in the mood for HehSweatCloseup

craggy goblet
#

That sprite is so detailed tf ๐Ÿ‘€๐Ÿซก /pos

strong kite
#

It's just the PMD sprite, don't credit me HehSweatCloseup

craggy goblet
#

Uhhhhh... I don't quite recognize that abbrev ๐Ÿ˜”๐Ÿ˜…

strong kite
#

Pokemon Mystery Dungeon

craggy goblet
#

Ah... Figures ๐Ÿ˜”๐Ÿ˜…๐Ÿ˜…

#

Idc, still detailed

#

Love it

mellow laurel
strong kite
#

Ohhhh okay yeah

#

In that case I wont worry about it, unless there's a super easy fix

#

I think tomorrow I just need to pick something to work on and work on that exclusively until it's finished. Because wow today has been a mess

proven spindle
#

Does anyone know if actions work with the $c dialogue command? Like does the mail in

"Mon": "$c 0.5#Thanks!#Thank you!#$action AddMail Current {{ModId}}_M1",
get sent out regardless of which dialogue appears, or will it only work if the second dialogue gets chosen?

Edit: aight did some testing with this dialogue:

"Mon": "$c 0.5#Thanks!#Thank you!#$action AddItem 591",
If the first dialogue is chosen, no item is received. If the second is chosen, the item is received.
On the other hand:
"Mon": "$c 0.5#Thanks!#$action AddItem 421#Thank you!#$action AddItem 591",
If the first dialogue is chosen, then item 421 is received. If the second item is chosen, both items 421 and 591 will be received.

So I guess the tl;dr is 'no, actions don't work well with the $c command' in case anyone else is searching for this. Though I guess you can have the player double receive a mail using the second method if that's what you're going for instead

royal stump
rich seal
#

Oh, I overlooked that. That's gonna drive me nuts, but I'm now motivated to "fix" the buffs so they all last for exact minutes. Just gotta do a lot of number crunching it seems lol. Thanks.

royal stump
#

more generally, some things run on game logic ticks or frames, which will be a lot less clean than the few things that check actual time (buffs, npc/monster movement in some cases, etc)

#

most often indirectly by checking the in-game time, ig

barren tapir
#

Is there a debug command to show what mail flags you currently have?

fierce vault
#

patch summary, maybe?

calm nebula
#

patch parse {{HasFlag}}

royal stump
barren tapir
#

Using PeliQ, how would you have a shop add a flag when an item is purchased?

#

Really, I just need to add a flag without sending a letter

royal stump
barren tapir
hollow grove
#

Do you know if this is possible for a cabin fireplace? I'm trying to figure how to turn off smoke from a trailer cabin that doesn't have a chimney (by design, if I can turn off the smoke).

royal stump
barren tapir
#

So it'd be AddMail Current <Flag> received?

royal stump
#

yep

#

for the local player, at least

barren tapir
#

Got it

latent mauve
#

As each cabin seems to set its own custom ChimneyPosition in the skin's metadata, it might even not impact the other cabin types, but I am not certain.

uncut viper
ornate trellis
#

i just found out one of my schedules aint working and idk why shinji

#

why do i keep finding broken shit when i am doing soemthing else

hard fern
#

: โœจ magic

ornate trellis
#

so what i wanna know is what exactly is making Constance void walk in this schedule point...32 34 is free to walk to
615 Beach 32 34 2 \"Characters\\Dialogue\\{{ModID}}_TheFishmonger:{{ModID}}_constance.squidfest.000\"/

latent mauve
#

Is this on a fresh save, Void?

hollow grove
#

Ok that sounds promising. I've found ChimneyPosition on the wiki and understand this is likely an EditData change, but my experience hasn't gotten this advanced. It sounds like Metadata is in the save file too (?). Any suggested structure?

latent mauve
#

Metadata is the name of a field in the Data/Buildings entry, nothing to do with the save file.

ornate trellis
hollow grove
#

Thank you - That's the page I'm on, but it's not forming concepts in my brain yet. My data/buildings file (unpacked) doesn't have cabins or metadata mentioned. I'm clearly missing something (likely) obvious. -- oh wait, I found it. Search is not helpful on these files.

latent mauve
#

It's definitely in there

ornate trellis
#

man, i should fix her fishing sprite...her hands doing a lil magic trick detaching from her arms and all

hollow grove
barren tapir
#

OMG ITS FINALLY MOSTLY WORKING!!!

barren tapir
royal stump
#

not in a single action use, but ActionsOnPurchase takes multiple actions, for example

#
"ActionsOnPurchase": [
    "AddMail Current flag now",
    "AddMail Current flag received"
]```
or some such
#

though there's usually not a reason to worry about multiple mail states at once

latent mauve
#

What's the intended use case for applying both, out of curiosity? I'm just having trouble picturing why you'd want to do that because received skips the mailbox and now adds it to the mailbox.

barren tapir
#

For whatever reason, it isn't adding the flag until I've slept

torpid sparrow
#

will this work? i want to make it so that the event only plays when the config token is NOT Joja

barren tapir
torpid sparrow
#

no clue

latent mauve
#

Is Tilly's Route the name of one of your config options?

torpid sparrow
#

yes

orchid glade
#

Looks right to me (I usually do it without the spaces)

latent mauve
#

then you shouldn't need to prepend it with query IIRC

orchid glade
#

Query is not required for that

torpid sparrow
#

great!! thank you guys

barren tapir
#

Yall, I just realized there is like a 0% chance that the mod I'm working on will work in multiplayer ๐Ÿคฃ

latent mauve
#

That depends on if your conditions rely on checking the host for flags rather than the Current Player. ๐Ÿ˜›

barren tapir
#

Well, here's the thing I'm just beginning to realize. Of the 5 or 6 powers this mod adds, only about half of them know who's calling them ๐Ÿคฃ

#

Would looking at data from the Host in C# default to the player in a singleplayer game?

I've never played multiplayer stardew ๐Ÿ˜…

severe cairn
#

I'm pretty sure it'll be the player in singleplayer yeah, since they created the world I'm assuming they're considered the "host" (I don't know for sure but idk why it wouldnt)

uncut viper
#

(tomorrow also puts a blank letter in the mailbox)

#

(assuming you still don't have a Data/mail entry)

barren tapir
uncut viper
#

If you do AddMail with the received mailbox, it is added immediately. Tokens and patches will not update until daystarted by default.

hollow grove
# latent mauve It's definitely in there

My cabin is still smoking. I'm getting an error for the building id, which I pulled from the Data/Buildings file. Is there a different way to refer to this building? Error text: {{Trailer Cabin}}' key is invalid: '{{Trailer Cabin}}' can't be used as a token because that token could not be found.

            "LogName": "Disable Smoke Trailer Cabin",
            "Action": "EditData",
            "Target": "Data/Buildings",
                "When": { "Use": "Trailer Cabin" },
            "Entries": {
                "{{Trailer Cabin}}": {
                "ChimneyPosition": null }
            }
        },```
vital solstice
#

Okay so hmmKitty through the power of searching, I did find an answer to my issue of not being able to edit the pre-conditions for a vanilla event. You have to Null the preconditions of the vanilla event first. (updating the 10-heart group event to add in a unique NPC)

However Nulling will probably cause issues if there's another person trying to add characters to the event, since they will need to null out their preconditions, but it's basically been "moved" via my mod. Is there any elegant way to account for that? it is just kinda of an SOL situation? 1blobSweat

ornate locust
#

From what I know, you will break something either way

#

compatibilitywise

lucid iron
#

and u need to TargetFields into there like

#

Cabin > Skins > Trailer Cabin > Metadata > ChimneyPosition

hollow grove
#

I changed my target to this, but get the same error:
"Target": "Data/Buildings/Cabin/Skins/Trailer Cabin/Metadata/ChimneyPosition",

lucid iron
#

target fields is a list lemme get u the docs

vital solstice
lucid iron
#

the Target is still just Data/Buildings

ornate locust
lucid iron
#

also "When": { "Use": "Trailer Cabin" }, does nothing remove that

uncut viper
ornate locust
#

Ohhhh THAT event

#

yeah that tracks

uncut viper
#

(I'm just guessing it's that event, it's the only one I can think of that fits "10 heart group event")

#

There'd technically be a way to change the preconditions while preserving the original event, but it's require marking the other two events as seen to make sure they don't show up instead, which may be undesired if other mods are checking whether you've seen that event for something

#

Maybe you'd be able to mark it seen on LocationChanged or something if you know it's about to play anyway

calm nebula
#

Can't you just null the event but very late

#

I'm loathe to mark it seen because what if someone like checks for it

uncut viper
#

How do you plan on getting other peoples edits to the event if you null it

#

That's why I suggest marking it seen only right before it plays naturally, to let yours play instead, if a locationchanged trigger action would do that quick enough

#

Because since event scripts are run through the tokenizable string parser, this is a totally valid event script:

"myEventId/GameStateQuery TRUE": "[LocalizedText \"Data/Events/HaleyHouse:195019/f Haley 2500/f Emily 2500/f Penny 2500/f Abigail 2500/f Leah 2500/f Maru 2500/o Abigail/o Penny/o Leah/o Emily/o Maru/o Haley/o Shane/o Harvey/o Sebastian/o Sam/o Elliott/o Alex/e 38/e 2123343/e 10/e 901756/e 54/e 15/i 446/k 195012\"]"
hollow grove
# lucid iron also `"When": { "Use": "Trailer Cabin" },` does nothing remove that

Some progress maybe - the error changed to this: [Content Patcher] Can't apply data patch "(CP) Farm Buildings - ES Meadow Farm Style > Disable Smoke Trailer Cabin" to Data/Buildings: the field 'Trailer Cabin' doesn't match an existing target. This is what I have for it now:

            "LogName": "Disable Smoke Trailer Cabin",
            "Action": "EditData",
            "Target": "Data/Buildings",
                "When": { "Use": "Trailer Cabin" },
            "TargetField": [ "Trailer Cabin", "ChimneyPosition" ],
            "Entries": {
                "ChimneyPosition": null }
        },    ```
uncut viper
#

This would grab the original event script with any other edits applied, but be attached to your own preconditions

calm nebula
#

Edit the script with the event preconditions otherwise

lucid iron
uncut viper
lucid iron
#

im assuming this one's the vanilla cabin skin and not a custom thing

#

and u still need to remove "When": { "Use": "Trailer Cabin" },

calm nebula
#

So you're trying to get it to not play in this one condition

uncut viper
#

I don't actually know if they also want to edit the event itself tbf

lucid iron
#

to clarify ur target field should be this

["Cabin", "Skins", "Trailer Cabin", "Metadata"]
calm nebula
#

Then use text operations hell to edit the event yourself and hope that doesnt break terribly :P

uncut viper
#

(it definitely will, if other people do the same)

#

(Unless you're only setting up a character)

ornate locust
#

They're trying to add a condition to when it plays, I think. Not just not get it to play in a condition

uncut viper
#

I do see what atra means though, if you null thme until your own condition applies then its efectively the same as adding a precondition

#

It'd be harder the other way around though (removing a precondition)

calm nebula
#

Are tokenizable strings recursive?

ornate locust
#

ah I see

uncut viper
#

They are recursive

#

Well

#

Okay big asterisk there

#

If you put a tokenizable string inside a tokenizable string, i.e. [LocalizedText [CustomToken]] it will work

uncut viper
#

But in the above event script, since there is only one tk string to begin with, it gets replaced with the whole script, and unless the token parser is called again on the result, tkstrings that come about as a resulkt of that remain unparsed

calm nebula
#

What if I have [LocalizedText blah] where blah is [LocalizedText Mrep]

uncut viper
#

So this little hacky workaround probably won't work in 1.7 (or 1.6.16, i forget which merges all the localizxed events into one)

hollow grove
lucid iron
#

did u reload game

calm nebula
#

Well, maybe you can convince Pathos to make token parsing recursive

lucid iron
#

do patch export Data/Buildings and see what it says

uncut viper
#

There is a chance I'm wrong and it would actually work, it's been a while since I tested it

#

So I would only ask when I've made sure I'm not being an idiot ๐Ÿ˜›

#

But I don't think it'd work

vital solstice
gaunt heath
#

Anyone know if this is include/include exclude/exclude, or is it include/exclude include/exclude

hollow grove
# lucid iron did u reload game

I did a patch reload not a full shut down and restart the game. I did the patch export and it has this:

        "Id": "Trailer Cabin",
        "Name": "[LocalizedText Strings\\Buildings:Cabin_Name]",
        "NameForGeneralType": null,
        "Description": "[LocalizedText Strings\\Buildings:Cabin_Description]",
        "Texture": "Buildings\\Trailer Cabin",
        "Condition": null,
        "BuildDays": null,
        "BuildCost": null,
        "BuildMaterials": null,
        "ShowAsSeparateConstructionEntry": false,
        "Metadata": {}
      }```

I'm restarting the game now to try that.
uncut viper
vital solstice
uncut viper
#

If you are not using fancy text operations to add your character into the event itself, and are just editing it with Entries and overwriting the whole script, the point is moot bc you're already ruining peoples edits and might as well null the whole thing out

calm nebula
ornate locust
#

I don't think anybody adding their NPCs to that specific event would work very well compatibility-wise if they want the precondition.

calm nebula
#

And sooooo much sql

#

I'm so tired

uncut viper
#

You should write SQL for a stardew mod instead

ornate locust
#

like they're gonna have to have the same fight you are here

vital solstice
uncut viper
#

If everyone else adding to that event also did atra's null method then they'd all work together

#

Not the preconditions, the event itself

vital solstice
#

atra?

calm nebula
uncut viper
#

You can edit individual fields of an event script with text operations (or Fields but mostly people use textoperations)

#

working towards self sufficiency = atra

lucid mulch
#

during the 1.6 modpocalypse mitigation, I was effectively doing PowerBI to analyze what mods were having problems and what were the most common problems

gaunt heath
uncut viper
#

atravita

gaunt heath
#

Atra of the Temp Gimmick Username

ornate locust
#

You're already going to be fighting SVE over it, I imagine

vital solstice
uncut viper
#

I'm not talking about the preconditions here

#

I am talking about how you are changing the event itself

vital solstice
#

I was just editing the whole thing as is.

uncut viper
#

If you are just re-including the entire original script itself then that will always potentially break peoples edits regardless, so there is no point in worrying about how to maintain the same original preconditions, you can jsut null it out because compatibility is already out the window

vital solstice
#

that make sense hmmKitty sorry i've been spending hours on this ๐Ÿ˜‚ trying to get it to work and seeing if there were any better ways to do it

#

But thank you hypeShark

ornate locust
#

...I think SVE just has a version of the event that happens if you happen to be dating the added NPCs, if I am reading this correctly

#

(SVE being the first thing I look at when I think "is this compatibility going to be a Thing or what)

lucid iron
#

i thought they just had their own events

vital solstice
#

I mean I could just leave it out too walmartelmofire

#

it'll beee fiinneeeee, if I see a lot of complaints about it, I'll just remove it

uncut viper
ornate locust
#

No this is the 195019 ID, this is a version of the event that shows up if you are dating Claire, Olivia, and Sophia

#

Same ID, different preconditions

uncut viper
#

It probably could be recursively done if you just keep checking "does the string still have [ && is the string not equal to the last time we tried parsing"

#

in a while loop

ornate locust
#

They do also have a different confrontation event if you try to date Victor and Olivia at once

#

which you might be thinking of

latent mauve
void aspen
#

How do I add pool/cave steam effect to a map c# free?

uncut viper
#

MMAP

latent mauve
#

For the ChimneyPosition issue, you will need a second patch that uses the Target Field for ["Cabin", "Metadata"] instead to make sure you are hitting the base cabin also.

hollow grove
# latent mauve For the ChimneyPosition issue, you will need a second patch that uses the Target...

I have this in now, but still smoking. I was looking at the Chimney Position upgrade level on the wiki and tried that but nothing changed.

            "LogName": "Disable Smoke Trailer Cabin",
            "Action": "EditData",
            "Target": "Data/Buildings",
            "TargetField": [ "Cabin", "Skins", "Trailer Cabin", "Metadata" ],
            "Entries": {
                "ChimneyPosition": "null" }
        },

        {
            "LogName": "Disable Smoke Cabin",
            "Action": "EditData",
            "Target": "Data/Buildings",
            "TargetField": [ "Cabin", "Metadata" ],
            "Entries": {
                "ChimneyPosition": "null" }
        },```
#

I also tried changing to coordinates instead of null, and the smoke location didn't change at all when I did that.

latent mauve
#

Just to confirm are you reloading your save when you make these changes? The ChimneySmoke in particular doesn't seem to redraw until you reload, so using patch reload by itself isn't necessarily gonna help here.

hollow grove
#

I'm doing a patch reload mostly though I did restart a couple of tries ago.

#

But that was before putting in the Cabin version.

latent mauve
#

My Farmhouse Variants skin mod has a known issue in bold letters that tells people to reload their save to see the smoke changes, specifically because of the weird quirk of the smoke not changing position according to the entry until the save is loaded again.

hollow grove
#

I saw that - I will restart now and see. Thank you!

#

It's working!!!! as in, it's no longer smoking!!! @latent mauve @lucid iron thank you thank you. For your patience and teaching, I truly thank you.

#

My default cabin isn't smoking either. But I am OK with that ๐Ÿ™‚

#

Er I spoke too soon - default cabin is smoking but about half a cabin to the left. Huh...I will have to examine that.

lucid iron
#

u have to bonk the Metadata on the default cabin too prob

latent mauve
#

(based on their code block, it looks like they did bonk the default cabin's metadata, chu)

#

Not sure why it'd be moved but not gone unless you forgot to change it back to null after testing the swap of the coordinates though

royal stump
gaunt heath
#

Thank you, that's what I thought was the case but I've got more than one thing potentially going wrong so testing wasn't helping lol

hollow grove
last plover
#

Hi there, as it is keeping me awake right now could anyone be bothered to look into my crafting issue withing modded tech support? basoFerox

uncut viper
last plover
lucid iron
#

@loud sandal i merged your PR and did a lil cleanup, more importantly I added MinTargetCount to go with MaxTargetCount so if u want a non random count you want to set MinTargetCount only

oak pelican
#

Hi, i was told this was the channel to go toโ€”

(Context, I just started conquering my fear of computer jargon yesterday)

Trying to make a simple sprite recolor mod. Made some edits in Pixel Studio. Saved them as pngs, put those into the smapi json validator, andโ€ฆnothing. Tried a random online json converter. Nothing.

please point out what Iโ€™m missing here, Iโ€™m sure itโ€™s something foolish but I will appreciate you forever

tiny zealot
#

!startmodding the first links here about content packs are good reading to start with. you'll need a handful of files inside a folder in order to construct a working content patcher pack

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.

tiny zealot
#

to wit, you make a folder named whatever you please, which will contain your mod. e.g. Sillyboy's Sprite Recolors.
inside that you need a file called manifest.json, which will tell SMAPI about the mod, and also a file called content.json, which gives Content Patcher your instructions about which game assets to replace with your versions. and lastly you'll need your pngs

oak pelican
tiny zealot
#

sounds like you mostly have it. you can organize the files in your mod however you please; it is customary to have an interior folder called assets, but it is not required. what matters is that your FromFile values match the file paths in your mod folder

#

but since it isn't working, can you start by showing your mod folder's contents? (a screenshot of the folder should suffice)

oak pelican
tiny zealot
#

ah, yes

#

ok there is an option you should turn on now in your file explorer. i think it's in the View menu and it should be called something like "filename extensions"

#

the first problem here is that your json files are called content.json.txt and manifest.json.txt, so SMAPI is not loading your mod

#

when the .txt extension is visible in your file list, rename the files and remove that part. windows will probably warn you about changing the file type, but say OK and allow the rename

oak pelican
#

ahhh okay yes I did that and it changed the error message when I tried to run it again. manifest is invalid now

toxic topaz
#

... well i managed to make a dust trail

barren tapir
void aspen
toxic topaz
#

its more like a racecar dust trail lol

void aspen
#

Yeah..

lucid iron
#

I thought it was seaweed

ornate locust
#

poopin dust

#

it is very much at butthole level

tiny zealot
# oak pelican

the second problem here is that your FromFile values should include the .png filename extension. e.g. "assets/BabyGirl.png"

loud sandal
tiny zealot
#

(but we'll get to that when the manifest is sorted out)

lucid iron
#

I think it's max inclusive? Forgor tbh

tiny zealot
#

random.next i believe includes min but excludes max

loud sandal
lucid iron
#

Jk it says exclusive

tiny zealot
#

e.g. Random.Next(4) gives one of 0, 1, 2, 3

loud sandal
#

Exclusive then

#

yeah

lucid iron
#

So ye no max Sleepden

#

I think most rands i did work the same way here

oak pelican
#

wait let me make sure changes were saved and try again

loud sandal
#

Thanks for being so quick with it, now I can work on my trinkets hahaha

oak pelican
lucid iron
#

The other thing I was gonna do is improve the tile picking ability args

#

Maybe I'll add a grass planting ability 4 fun bolbsun

brave fable
#

i think i've noticed CP itself using inclusive min and max random for its bounds when specified

loud sandal
tiny zealot
# oak pelican rats, still didnt work

!log okay next step is to upload a SMAPI log.
close and reload your game, play enough that you should be seeing your texture, then follow link instructions and paste the resulting link here so we can see what's going on

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.

barren tapir
#

How would a C# mod check the Stats of the player and/or the Stats of the host if in multiplayer?

lucid iron
tiny zealot
lucid iron
#

So ofc it'd include all members of the set

brave fable
#

i may also be thinking of SDV in one or other of the data models with a min-max range, like forage spawns or something

uncut viper
#

CP is just choosin from a list yeah

barren tapir
brave fable
#

anyway i use random(min, max + 1) when giving min-max as a data model

uncut viper
#

as you should ๐Ÿ™‚โ€โ†•๏ธ

brave fable
#

as chu should ๐Ÿ™‚โ€โ†•๏ธ

lucid iron
#

Smh

uncut viper
#

at least chu doesnt load textures in the draw call

lucid iron
#

I think I already chose exclusive for a lot of other things though

uncut viper
brave fable
#

sinz (renowned performant mod author) backs me up and that's all i need

uncut viper
#

The host is still a farmer that needs to be synced to the farmhands

lucid iron
#

But i probably never noticed cus it was randoming on a float or a double

royal stump
#

each player only has reliable access to their own stats; in theory you can sync them by other means (multiplayer messages, mod data, etc), but it's not available on demand

uncut viper
barren tapir
brave fable
#

i can only imagine it's a method call and a dictionary access further removed from just holding the cached instance yourself

patent lanceBOT
uncut viper
#

every cpu cycle counts

calm nebula
#

We love all our cpu cycles equally

brave fable
#

they hated jesus because he told the truth

calm nebula
#

Except the ones I kill by going time.sleep(1)

lucid iron
#

Button u drew the world twice i think blueberry can get a pass

latent mauve
#

Feasibly, could someone use a stat increment to set a mailflag on the host player and then check that?

calm nebula
#

Oui

latent mauve
#

Or would it run into the same sync issue

uncut viper
calm nebula
#

When did u draw world twice

lucid iron
#

It's for shader stuff atra

uncut viper
#

Agromancy

calm nebula
#

Oh

uncut viper
#

I needed the world to be blurred and grayscale

brave fable
#

you don't get a say after mirror mode

toxic topaz
#

hmmmm, what do you guys think of a boss kinda like moldorm from a link to the past as a concept in stardew PES_Think

uncut viper
#

Mirror Mode doesn't redraw anything

calm nebula
#

I see shader i run in the opposite direction as quickly as I can

uncut viper
#

I don't think there's a single draw call in mirror mode

calm nebula
#

I'm pretty fast so this is some distance

brave fable
#

surely mirror mode uses cpu cycles all the same

calm nebula
#

Surely all game uses cpu cycle

brave fable
#

like the clappers, i'd assume

uncut viper
#

(Disclaimer: I've not looked at Mirror Mode's original code in a while. But most of its mirroring is done entirely by just editing the assets themselves to be mirrored)

tiny zealot
#

nightshade adds multiple full-screen draw calls per frame and i explain them all upfront in the mod description. none of us is free of sin

uncut viper
#

It might turn on spriteeffects.fliphorizontally for some things

calm nebula
#

We must save the cycles for the important stuff, like doing lots of math for electronic money

uncut viper
#

It's different when you cannot feasibly avoid using cycles. But Load() inside a draw...

#

cardinal sin

loud sandal
calm nebula
#

We are all sinners.

๐Ÿ

royal stump
lucid iron
uncut viper
#

You'd have to be the one controlling the stat increment though

royal stump
#

stat sync is mainly an issue of a) deciding how to do it, b) not expecting it to be available and accurate without delay

uncut viper
#

And have it be something that can also do the mail at the same time

#

Like, you can't react otherwise to, say, EggsHatched being incremented

royal stump
#

(I blame stepsTaken for it not just being a net field)

uncut viper
#

(bad example perhaps as thats an overnight thing. stepsTaken then)

toxic topaz
lucid iron
#

We need like a hot path stats and slow path stats

toxic topaz
#

idk, but the concept of a boss is super cool

calm nebula
#

It's only one 64 bit value per tick smh

lucid iron
#

And only sync when slow path updooted

calm nebula
#

That isn't too bad. Have u seen how directions are synced

loud sandal
tiny zealot
#

i thought about doing a monsters framework but i thought better of it in the end ๐Ÿ˜Œ

royal stump
calm nebula
#

This is fine. This is specifically synced

uncut viper
#

Out of the people currently here I think chu is the most qualified to make a monsters framework

calm nebula
toxic topaz
royal stump
#

yeah, setting a flag on the host would work, but afaik it's just not available at like a same-tick pace

#

but ig that's true in a lot of net field refs, really

uncut viper
#

Presumably though, the reason its stats is because a mail flag wouldnt suffice in the first place

calm nebula
#

Meh, you'll not notice three ticks

uncut viper
#

This may be an incorrect presumption

loud sandal
toxic topaz
#

how does one even make a framework

uncut viper
#

With C#

royal stump
#

C# and making assets that tell it what to do, the way SDV itself does

tiny zealot
#

make a C# mod and give mod authors a way to put data in it

royal stump
#

(or similar methods etc)

toxic topaz
#

well yea, but i mean like what does a framework even do

#

ah, i see

uncut viper
#

What does a mod do?

calm nebula
uncut viper
#

As long as you accept the content pipeline and let people edit your assets, you're golden

calm nebula
#

"We're going up up up...."

royal stump
#

ps now that I recall what I'm thinking of, I'm picky about stats due to briefly trying to make them sync for my CP stat token

#

and I don't trust any method to make that make sense, so it's just local-only

uncut viper
#

I still think you woulda been justified to ignore stepsTaken for that token SDVpuffersquee

royal stump
#

probably SDVkrobusgiggle

#

I think there was one other spammy one, but it'd probably work, I just didn't want to think about it more

uncut viper
#

I can't think of any reason why someone would want to use that stat as a token anyway

calm nebula
loud sandal
#

I did a stats mod just coz I wanted to see my stats change in real time based on what is equipped and that's just purely local Game1.player

uncut viper
#

I don't get it

royal stump
#

inventory item pedometer, ig

uncut viper
#

That wouldnt work anyway!

royal stump
#

with, uh, warp updates

calm nebula
#

Inventory item pedometer but IRL

uncut viper
#

That's actually so much worse than just

#

The tokenizable string

#

[FarmerStat]

calm nebula
#

Use the Google fit API

royal stump
#

yeah, those would make 1000% more sense for anything with text

uncut viper
#

Or pedometer item descriptions SDVpuffersquee

#

Your edit makes me look silly now

#

Hope you're happy

calm nebula
#

Anyeays

royal stump
#

SDVpuffermlem I'm retroactively accurate with my phrasing

uncut viper
#

That's my favourite kind of accurate

calm nebula
#

Someone should make an actual in game agility skill based off of irl steps taken

royal stump
#

anyway iirc I just added the stat token as part of a goal of "let CP do math" and lost track of practicality
(better, I mean) (with variables)

calm nebula
#

Plz shake ur phone for stardew and not just Pokรฉmon go to the polls

uncut viper
oak pelican
calm nebula
#

Does Health Connect cost money?

uncut viper
#

I think it'd be easier to hook up a wii fit board to your mod

tiny zealot
calm nebula
#

My attempts to get people to touch grass are often not successful

#

Possibly vrcsuse I keep touching ants or wasps

oak pelican
#

But it WORKED

oak pelican
#

And also thank you for being so patient and likeโ€ฆbeginner friendly heh

tiny zealot
#

sure thing! that's what we're here for SDVpufferheart
(and also complaining about loading textures in the draw call, and wii fit boards, and so on)

oak pelican
#

:))))

brave fable
uncut viper
#

I'll file a complaint to the certification board

tiny zealot
brave fable
#

in truth i've only done it for two half-baked features in an unreleased half-baked mod as a shortcut to testing if it even works. but i stand by it all the same

calm nebula
#

Smh u of all people should know better. 30 minutes at 425F with the lid on, 25 minutes at 375 with the lid off. Add ice, and dont be afraid to be mean to the dough

hard fern
#

Are we making bread..?

royal stump
#

using the word bake in any context gets you conscripted into bread-making SDVpuffersalute

brittle pasture
uncut viper
#

Does it support making them different parts of the prismatic colour set from each other

#

So they aren't always identically prismatic

brittle pasture
#

only for multicolored items

uncut viper
#

multicoloured items my beloved

brittle pasture
#

this may or may not be sneak peek into Cloth and Colors's next version

calm nebula
vernal crag
#

Never thought that nights in SVE look that deep fried before trying Gentle night Lighting

fierce vault
#

you call it deep fried, but Iโ€™d call it vibrant ๐Ÿ˜…

cerulean saffron
#

Not sure where to ask for help figuring out mod features so I'm just gonna put this here

In SVE's frontier farm, how do I get Robin to build/move buildings on the frontier land section? And is it possible to move buildings between the farm sections? I've been looking around for a while but I can't seem to figure it out

verbal glacier
dreamy dew
#

Do you still gain Mastery Exp from Farming even if it's via Auto-Grabber? I can't keep track of my Exp increase, but I'm sure I haven't harvested nor petted my livestock (I use Auto-Petter), but something's causing it to increase (Mastery Exp).

#

I checked behind the codes, specifically the save file, and I notice my Farming skill goes up by the day, which led me to this assumption.

hard fern
#

At least, it would make sense

dreamy dew
#

Collection? Wdym by that?

hard fern
#

Im not 190% sure

#

Collection of products in the auto grabber

woeful lintel
#

did you give it a 1x1 object size?

slim marlin
#

What topics would I look up to make my own compatibility patch where various NPCs refer to Ayeisha instead of Marnie as the person who brought the new pet to the door?

stoic chasm
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 24 C# mods and 8 content packs.

hard fern
#

I assume it's because you're missing the proper path as to wherever the tilesheet was loaded to initially

stoic chasm
#

Rightt okay. So what does that mean, exactly?

hard fern
#

Wait

#

Uhh

hard fern
#

Check whatever the tilesheet mod loaded the tilesheet to

verbal glacier
hard fern
stoic chasm
#

Ooh okay

#

Thank you for the explanationn

#

How do I fix that, though?

hard fern
hard fern
verbal glacier
stoic chasm
stoic chasm
#

I am having troubles again- How do I get the messages to pop up when I interact with items in my npcs house? All that pops up when I interact with it is something to do with strings? Maps strings, I think. I forgot to get a photo-

velvet narwhal
stoic chasm
#

I'm really sorry, but I'm still confused. Could you explain in a different way?

void aspen
stoic chasm
#

Ooh cool! Thank you!

void aspen
#
{
"Action": "EditData",
"Target": "Strings/StringsFromMaps",
"Entries": {
"YourStringKey": "Your text here or your {{i18n:}} token"
},```

then you do an `Action Message "YourStringKey"`
stoic chasm
#

Like this-? I'm kinda just making this up as I go-

torpid sparrow
#

now you need to add the strings to the actual maps

stoic chasm
#

Rightt okay- So what part do I add?

torpid sparrow
# stoic chasm Rightt okay- So what part do I add?

you can open your TMX and add a TileData item on the purple Buildings layer over a Buildings tile, then in the map properties, you want to have an Action Message "YourStringKey"

so for example, Action Message "FamiliarPlush"

#

i can't remember if you need the quotations i feel like no

#

but i genuinely cannot rmb

torpid sparrow
stoic chasm
#

So like this?

torpid sparrow
#

yes

#

again cant remember if quotes are needed or not

#

so

#

test with and without xd

#

(or look at any other map)

void aspen
#

Needed

golden spire
#

wem, I'm doing an update to Ayeisha and can add TIlly to the love token event delivery that I Ayeisha does if it's something TIlly would do. Main question is what item would you like her to give? (usually gems/food/flower)

torpid sparrow
#

OHH postal

#

i thought that sounded familiar

#

im not sure what the love token event is though :3

stoic chasm
# stoic chasm So like this?

Okay so that's the thing- This is literally what I've been doing. But it still isn't working- This is what pops up instead

#

At this point I think maps hate me-

golden spire
#

she comes to the door, with a special delivery from an NPC the player is dating with an item and a note attached that says "A token of my love - (npc name) xxx"

torpid sparrow
#

Ahh okay that's so cute!!

#

hmmm

#

a Pearl

golden spire
#

have numerous custom NPCs in there, just missing a lot of newer ones that have come out

#

okey dokey

torpid sparrow
#

she wears pearls and i think food options would be too on the nose for her SDVpuffersquee

#

oh tea? really? the tea-loving librarian? shocker SMCKekLmaoDog

torpid sparrow
#

i dont see it in ur json i think

golden spire
#

Katrielle is fun as she gives the player an item you can't normally get (as she is a 'glitch' NPC if you've not used her)

torpid sparrow
#

ive seen her and she looks super cool. that makes sense SMCPufferSquee

#

the art on the modpage is so cute

stoic chasm
#

Is this what you mean?

torpid sparrow
#

oh i see it now

#

hmm

severe cairn
torpid sparrow
void aspen
#

do you have default json in i18n folder?

torpid sparrow
severe cairn
#

oh IT IS katrielle!

stoic chasm
#

Yes and yes.

torpid sparrow
void aspen
#

Oh woops\

#

vsc looks a bit confusing

stoic chasm
#

Hm. This is confusinggggg

torpid sparrow
#

ive encountered these errors before i just cant remember how i solved them

golden spire
void aspen
#

mb that somehow messed the thing up

#

theres coma instead of the dot

stoic chasm
#

Oh- Huh, I didn't even notice. Thanksss

void aspen
#

that most likely not it but it still worth a shot

#

maybe check the other ones just in case

#

btw you have this error here as well

#

what does it say

stoic chasm
#

Oooh I think that's for my disposition thingy. I'm not finished it yet so-

#

Just checked-yeah it is for that

stoic chasm
#

Thank you for your assistance everyoneee

void aspen
#

yay

stoic chasm
severe cairn
golden spire
#

okey dokey

void aspen
#

I suppose that vsc and smapi/cp react to random comas differently

#

and while vsc won't do anything crazy, those two will just break everything and explode at the end

#

be thankful your system32 folder is intact ๐Ÿ˜ญ

golden spire
#

I have no system32 at all

#

altough you could argue I have multiple due to wine/proton/etc

strong kite
#

Very cool that windows protection very suddenly started treating Vortex as malicious software SadAshThumbsUp

void aspen
#

Cuz most likely it is ๐Ÿ˜ญ

#

At some point

dire kestrel
strong kite
viral gazelle
#

What do you guys use to view the coordinates of map tiles? For making npc schedules and such

strong kite
#

You could either load the map up in Tiled or use Debug Mode to view them in game
https://www.nexusmods.com/stardewvalley/mods/679

Nexus Mods :: Stardew Valley

Press a button to see a debug info overlay, and optionally unlock the game's built-in debug commands (including teleportation and time manipulation).

#

If you need a link for Tiled I can find it

viral gazelle
#

thanks
I think I have the link open somewhere in my 50+ Browsertabs

gentle idol
#

Anyone with experience making IPA files, could you help me a bit?
Iโ€™m currently learning how to mod recolors for an IPA file to play on iOS.
But after unpacking and converting the PNG files from Nexus mods into XNB files to put into the original game files, I noticed that some files are missing while others are extra.
If I just forcefully replace everything, will it cause any issues?
Thank you very much.

rich cliff
#

My Mind: Random Bs Go!

rich cliff
#

I'm not even sure I did it right lol

torpid sparrow
ocean sailBOT
#

Oops, couldn't parse that file. Make sure you share a valid SMAPI log.

torpid sparrow
#

(the link just has the errors i was given)

#

removeMapTile worked I think

#

but i dont want to remove him entirely

rain inlet
#

wait is he part of the map tile

torpid sparrow
#

the one facing forward yes

rain inlet
#

is he not just an antisocial npc?

torpid sparrow
rain inlet
torpid sparrow
#

jojamart map

lucid iron
#

join us thrive etc

severe cairn
#

I mean he doesn't move anywhere... bro lower than skeletons

torpid sparrow
#

yeah but i need him to disappear for that event

#

so i can place morris on the right

severe cairn
#

I made a thing that patches the map after an event :0

#

its a bit janky th

#

but it happens during the event so good enough i guess

torpid sparrow
#

my issue is why is changeMapTile not working

rain inlet
#

is it a cutscene?

torpid sparrow
#

yes

rain inlet
#

would it possibly be easier to just make a copy of the map and change it?

severe cairn
#

Another solution I had was also to just add a copy of the map

#

yeah

torpid sparrow
#

i mean yeah i just hate doing that

#

and it should work

#

like why is it not working

#

im circumventing the problem instead of fixing it

rain inlet
#

maybe he's just a load-bearing morris

latent mauve
#

And you are absolutely certain you have the correct coordinates and layers for all the pieces of Morris?

torpid sparrow
#

yes

latent mauve
#

Your screenshot cuts off before showing the tile coordinate, so I had to ask

torpid sparrow
#

im not getting error anymore, but the command just isnt working

golden spire
#

playing with no other mods that might be doing their own thing?

torpid sparrow
#

nothing that edits JojaMart

#

afaik

#

im not playing with sve

latent mauve
#

Did you make Morris an actual NPC in your mod?

torpid sparrow
#

no im just using the base game's

latent mauve
#

There are a few mods that change Morris, so you're not using any of those, right?

#

And no recolors or anything that might have accidentally included Morris's image as part of a replace patch instead of doing an overlay patch

torpid sparrow
#

no i dont think so

latent mauve
#

And slimming down your mod list to just your mod + dependencies doesn't fix it?

#

Which just rules out all the above

torpid sparrow
#

let me try

#

yeah still not working

#

no errors either

#

is it because it's an animated tile?

#

does that have any effect

urban patrol
#

youโ€™re not even getting the โ€œno tileโ€ error anymore?

torpid sparrow
#

nope

#

removeTile worked

#

just not changeMapTile

urban patrol
#

which did you just test

torpid sparrow
#

wdym?

#

i tested both

devout otter
#

Yar if removeTile works then the coordinate and the layer is right.

#

So there's some shenanigans happening with how changeMapTile works.

torpid sparrow
#

ive done it on static tiles before and it worked

#

is it really just the animated tiles?

urban patrol
#

i could see that being an issue but presumably animations are stored on the tile itself so to speak so idk

golden spire
#

does it need both static tiles removed?

#

the tiles that are part of the animation

torpid sparrow
#

hmm

#

im not sure

#

i dont see how i could do that

#

because changeMapTile only refers to the x y

#

ill just do a tempMap but this wonky

latent mauve
#

I do recall someone having a similar issue with Gil in an event before

#

A while back

torpid sparrow
#

hmmm yeah hes animated too

golden spire
#

can always do a sanity check and change a tile that is not-morris and see if that is changing

frosty gate
#

Hey, does anybody remember how to get the keybind for the movement keys? In C#?
I can't seem to recall.

#

I think i found it, if (Game1.options.doesInputListContain(Game1.options.moveUpButton, key)){}

#

Wait, I think i have check the other way around.

latent mauve
#

Found that discussion

torpid sparrow
#

grr

severe cairn
#

im curious why you dont use removetile if it works :0

gaunt orbit
devout otter
#

Removetile removes the tile for the entire day, so Morris would be gone.

severe cairn
#

ohh damn

golden spire
#

no great loss

latent mauve
#

That's why the secondary part of the RemoveTile suggestion for Gil was to also add a map patch

golden spire
#

-shifty eyes-

latent mauve
#

So you could add him back in

torpid sparrow
#

hmm i already did a temp map but i could just do that

devout otter
#

Yeah but could you add him back in right after the event ends?

golden spire
#

would anyone really miss him for a few days anyway?

#

:p

latent mauve
torpid sparrow
#

Sable might (joja sales associate here) /silly

severe cairn
#

i would ask if make invisible works but its got some weird dimension stuff

latent mauve
devout otter
#

But there's really no reliable way to just patch him invisible at the start of the event.

latent mauve
#

Creating a custom event command that worked on AnimatedTiles was another suggestion but that's beyond my skillset as it lies in C# land

torpid sparrow
#

request for .16 maybe?

latent mauve
#

I think .16 might change how it works for those two characters anyway with the new ephemeral characters system but I could be wrong

torpid sparrow
#

ah oki

#

i have no clue but ill see xd

latent mauve
#

I couldn't find a direct reference to the tile animation issue in the 1.16.6 thread

devout otter
#

Wait ephemeral is .16 and not 1.7?

severe cairn
#

I didn't wanna deal with the animated stuff and just patched the map while my event happens and patch it out when the event is done lmao (I made it update on location change, but it's only included if you can even trigger the event that day to avoid making smapi load it unnecessarily every time you change location for the whole game)

#

its goofy but well. I guess it works

latent mauve
torpid sparrow
#

map patches slow the game down dont they?

#

im just trying to gauge whether temp map is more efficient than map patching

severe cairn
#

yeah thats why I made sure it'll trigger as little as possible, but to avoid the goofiness a temp map is easiest

golden spire
#

every change slows things down a little bit

severe cairn
#

i kinda had to with mine since it's supposed to be there for days (but can be removed mid-day)

verbal glacier
#

Idk if this is stupid or not but could you do editimage with the gsq being IS_EVENT (ID) to just remove the image temporarily?

latent mauve
#

I always find it amusing how many people actively try to avoid using TemporaryMap xD

orchid glade
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on macOS Unix 26.3.0, with 13 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

torpid sparrow
devout otter
#

Yar I do trigger action shenanigans to ensure that the map patch only apply for a day after the event ends.

torpid sparrow
#

like it feels wrong to do a whole new map

severe cairn
#

haha I needed mine to trigger on the same day right after the event ends SDVkrobusgiggle so I had to make some goofy things to avoid smapi loading it too often

latent mauve
orchid glade
latent mauve
#

(use an "Action": "Load" first to create the game asset and then use that in your Texture field instead)

orchid glade
#

It's the Load that is failing

#

isn't it?, hold up I'll share the json

latent mauve
#

Post your Load JSON?

latent mauve
#

Also is this a content pack for CP or a framework?

frosty gate
# gaunt orbit It's better to store a KeyBindList and then use IsDown, at least for customizabl...

Yup, that's what we were using before, the character creation menu doesn't have proper keyboard nav, so we added dedicated keybinds to move to next items and change slider values and all, also since there are too many options all over the place, it would've been slightly confusing for first time blind/visually impared players, so we went with the dedicated keybinds and moved between elements in a certain order which is different visually.
But now the problem is that by default these keybinds are set to the arrow keys, so as to not interfere the existing logic of movement keys, many new people get confused since all the other menus use the movement keys for nav and end up asking questions in our discord server, and I'm tired of pointing them to the docs, also it was dumb of me to not have suppressed the original logic beforehand lol.

(sorry for the wall of text)

Edit: I ended up doing this btw

if (Game1.options.moveRightButton.Any(e => Game1.input.GetKeyboardState().IsKeyDown(e.key))) {}
orchid glade
#

It's for BroadcastAPI, but it's just listed as a dependency

latent mauve
#

Gotcha, I am taking a look at their documentation now

#

Can you turn on file extensions in your file explorer and confirm that .png is the file extension on your image?

latent mauve
#

Only other difference I am seeing is your dimensions but the framework implies those don't need to match the ones in their example

orchid glade
#

Like the rest of the format is normal CP. I copied and pasted the code from the BroadcastAPI documentation to write a version after a downloaded content pack failed. The EditData works (confirmed with a patch export) but the channel doesn't show up. The Load works if I load to Characters/Emily_Winter (I tested that 'cause I'm married). But it doesn't work if I load to any other things I've tried, including "Mods/{{ModId}}/FarmIcon" directly from the CP docs. I've tried other .pngs that definitely load in their respective mods (like the one in the screenshot). I tried different CP versions.

devout otter
#

Yar, the framework shouldn't affect a Load action, else something there went terribly wrong.

#

Is it just this image that you fail to load?

#

Oh wait you said so.

orchid glade
#

The dimensions of the image I tried had the same dimensions as the example, I tried other pngs I had on hand at different dimensions (a bit of sprite sheet, and a single icon)

#

Just in case the first file was corrupt or somehting

#

I am going crazy.

golden spire
#

can you send the image here?

royal stump
#

running your exact CP file doesn't cause any errors here, so it may be the image or a system issue, yeah

devout otter
#

You could try combining all images into one, maybe?

latent mauve
#

Can you try writing out the Mod Id just to rule it out?

devout otter
#

And just specify the area through the framework patch.

orchid glade
latent mauve
#

(honestly my next move would have been to assume something went wrong with SMAPI or CP and reinstall it if changing the image didn't work)

orchid glade
#

These are the two images of mine that I tried, that I know work when loaded as an actual object texture and as a character texture.

#

I'm going to reinstall SMAPI I guess

#

But the weird thing is it's working for like, my existing mods (like the one the salad is from).

#

Oh I will first try launching not with stardrop, just have to move a bunch of stuff out of my mod folder

royal stump
#

(yep, the first image displays on the TV with your content.json, no errors)

orchid glade
#

Same problem after reinstalling SMAPI

royal stump
#

and no mod manager?

#

if so, we're probably reaching "ask Pathos directly" SDVpufferthinkblob though someone might've seen the issue before, it's tricky to search

orchid glade
#

And same with no mod manager.

#

I thought someone would recognise the issue. Any other Mac users trying this?

golden spire
#

I'm on Linux too, so could test myself, but have you tested on Linux Esca? In case it's some obscure OS related thing

royal stump
#

I haven't, it just works fine on win11

golden spire
#

Can you send me your working test? DM if you want.

royal stump
#

one sec, lost the files in a subfolder

#

OS issues aside, bezajel could try overwriting content.json with this, in case it's an issue with weird invisible characters from a text editor or something SDVpufferdizzy

latent mauve
#

Only MacOS related issue I would know to look for is due to case sensitivity.

orchid glade
twin wadi
#

is there a way to have an npc start with a specific amount of friendship? like just start out with 500 friendship points? (sorry if dumb question, i'm just getting back to modding after 6 months ough )

orchid glade
golden spire
#

working fine for me on Linux

twin wadi
#

-# oh shoot my name is still wumbus

urban patrol
latent mauve
urban patrol
#

jinx lol

twin wadi
#

ohh right my beloved trigger actions

latent mauve
#

Nic beat me to it SDVkrobusgiggle

twin wadi
#

tyty ๐Ÿ’–

golden spire
latent mauve
#

All I know is that I have run into far too many "this doesn't work" comments when a Mac user is getting an error that says something can't be loaded because the file asset is not capitalized in the code but is in the mod folder, LOL.

#

So writing code in the correct case is instinctive now.

golden spire
#

it's best practice for Linux users anyway :p;

#

when that voices mod first came out there was an issue with that and backward slashes so on LInux and Max it was looking for an extremely long file name with backward slashes rather than folders :p

strong kite
#

I love how I said I would just pick one thing to do today and do nothing but that, but then immediately got sidetracked with something else heehee

golden spire
#

had to hex edit to fix it ๐Ÿ˜›

rich cliff
orchid glade
#

So I've tried Esca's version and I get the same problem. Then I went into a working mod of mine and changed the Load target and asset name in that (as well as the actual asset name) from:

            "Action": "Load",
            "Target": "Mods/{{ModId}}/DemetriusFruitSalad",
            "FromFile": "assets/DemetriusFruitSalad.png"
        },```

To:
```        {
            "Action": "Load",
            "Target": "Mods/{{ModId}}/Channel",
            "FromFile": "assets/channel.png"
        },```

The first works normally, the second does not. Also, the error message shows up only when I try to patch export. Before that it just isn't applying the patch (patch summary shows conditions met, but patch not applied).
#

Ohhh okay, so now the second one is working, after only changing another part of my code to use the texture Mods/{{ModID}}/Channel. This makes no sense guys.

royal stump
#

the previous pack's target was also {{ModId}}/Channel (without Mods/), so without another reason to load, patch export would be the first thing causing it

orchid glade
#

So the load won't load until there's a reason to? As in, the patch export failed because the load has had no reason to run yet?

royal stump
#

yes, none of CP's changes actually alter assets until something asks for the asset, including load

orchid glade
#

Okay, so then the root of the problem is not the load failing, but the BroadcastAPI not making the channel

royal stump
#

SDV or a mod ask for a specific asset like "your mod ID/Channel", CP sees which packs can load that, then sees which packs want to edit it, then all of that actually happens

#

the System.Object error from the original log seemed to be implying something tried to load it, but I'm really not sure since I can't reproduce it

orchid glade
#

I thought it wasn't making the channel because the load was failing, but the causal order is the other way around?

royal stump
#

(presumably looking at the TV channel list)

orchid glade
#

Yeah when I look at the TV channel list, my channel doesn't show up. I've been trying on existing saves though. I did try patch reload and sleeping a night, should I need a new save for new channels to show?

royal stump
#

I don't see a patch export in the console here, but it may help to test the actual TV channel then, since patch export doesn't always know what type an asset is

#

(whoops, missed the reply link)

royal stump
#

ig maybe chat commands don't show up in logs the way normal ones do, if you were using those

#

at any rate, your channel worked with my test pack when I tried on existing saves that didn't have BroadcastAPI or the pack before

#

testing on a new save generally helps, though

orchid glade
#

Gonna try with a brand new save

#

This is where I should be seeing the new channel, right?

#

Like, there's no hidden custom channel location?

golden spire
#

when I did it, it showed up spring 1

#

in the list

#

and loading into a random save:

orchid glade
#

Well, the SMAPI log says it's made the custom channel, but it's not on the list even after a sleep. At this stage, I guess I'll just report the error to BroadcastAPI and hope they can figure it out.

#

Or maybe I'll check my Content Patcher is up to date first

#

it is. Well thanks everyone for trying to work it out!

strong kite
#

I have no idea how to set a query I just needed something to stop this from applying while the conversation topic exists ๐Ÿซ 

#

The didnt see anything in the docs on how to incorporate HasConversationTopic so I just followed the closest thing I could find to it

royal stump
#

query isn't necessary there, tokens like that can usually use contains:
"HasConversationTopic |contains={{ModId}}_ShopBaited": false,

strong kite
#

Oh, Okay

#

Although hilariously it kinda seems to have worked LUL

#

Oh shoot.. I think the shadow of the bush above is rendering on top of the part of the sprite that's on the building layer.. uhhh what can I do about that?

royal stump
#

as far as I know, not much, that'

#

's all hardcoded; you could edit out the bush, but they're persistent objects & would still be there on existing* saves, unless you do more work to remove them with BETAS or make people reset with RTF

strong kite
#

I guess.. wait.. it's not there as soon as it rolls over to 6 and the Slurpuff goes to sleep?

#

OH- Cuz the bottom part of the sprite is ALSO on the front layer at that time

#

Well that gives me an idea.

#

Ah- yes... that might be why that solution is not valid HehSweatCloseup

latent mauve
#

what happens if you put an invisible tile on the front layer there?

strong kite
#

If it's invisible, wont the shadow still render cuz there's no pixels drawn in to actually cover it?

severe cairn
#

you can just do like, a few pixels

#

like enough to cover the shadow

latent mauve
#

as opposed to an empty tile, there would still be a "tile" there, so if the shadow is trying to take the same space, it might not?

#

or am I misunderstanding which layer the shadow is rendering on

strong kite
#

I'm assuming the shadow is on the Paths layer

#

Since the bush is spawned by the paths layer

latent mauve
#

ah, I see

#

does Front-1 still make you walk under it?

strong kite
#

I would imagine so

royal stump
#

bushes don't actually exist on the paths layer, they're like trees etc, paths just spawns some

latent mauve
#

I'd expect it would

strong kite
#

Wait wait wait hold on maybe you're right

#

Cuz the top part of the shadow isn't showing, the part that's under the part that on the "front" layer

#

I'll try the invisible tile on the front layer

#

Realistically there's no harm in trying it regardless so that's my bad for brushing it off before

latent mauve
#

I mean, it's absolutely possible that the shadow is rendering on a different draw layer entirely and this will do nothing, but it's worth a try.

strong kite
#

My thought is that the shadow's cut very flat at the top, which makes me think the rest of it is being covered by the tile on the front layer

#

alright rats it didn't work.. unless I just didn't implement it correctly

severe cairn
#

anyway i honestly didnt notice at first haha

strong kite
latent mauve
#

to be fair, there's a lot of weirdness with bushes and furniture placement due to how the things behave in the game already xD

#

See: Bushes placed strategically behind benches

strong kite
#

So.. what i COULD do is up the brightness of the sprites on those pixels so that when the shadow appears over them they go down to the desired brightness

little pecan
#

Making a content patcher mod for the first time and I'm so confused with the content file not working o_o

latent mauve
#

I'm not shocked that the bush weirdness extends to map/building tiles.

ornate locust
#

I mean good damn luck with that, it may not just be a brightness thing

#

Some shadows have a color to them too

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.

ornate locust
#

It's just a thing drawn and then made low opacity

hard fern
#

oh thank god doveregon rok

strong kite
#

I guess I'll learn what it is when I find the right bush in the asset files

hard fern
#

wo

little pecan
#

Or i could just take a picture of it

strong kite
hard fern
latent mauve
#

TntDove: It's likely the one from spring shadows, and all of those are #2e001a at 40% opacity.

strong kite
latent mauve
#

I've spent way too much time adding/correcting shadows on things for new buildings and such, I have the opacity memorized. xD

latent mauve
#

Yeah, they're all different colors per season from the looks of it

strong kite
#

I'm just removing the bush OMEGALUL

ornate locust
#

Yeah not all the shadows are the same color, so I am not surprised it happens by season

strong kite
#

And it's not serious enough of an issue to worry about the bush still being there on existing saves

ornate locust
#

If you use BETAS, you can kill that bush on existing saves

#

I use it to keep trees and bushes out of my building

strong kite
#

oh yeah I guess I could do that, I've already got BETAS as a dependency

ornate locust
#

Yeah, if you already got it, may as well

strong kite
#

Aight how do I do that

ornate locust
#

this clears all the stuff off a square where my map patch is and regenerates the paths layer

latent mauve
#

For that particular set of shadows, I used the eyedropper in Krita on the shadow and then reduced the trasparency until it matched visually:
Spring: #2e001a, 32% opacity
Summer: #3a1423, 32% opacity,
Fall: #310017, 34% opacity
Winter: #230738, 50% opacity

#

In case anyone actually cares for later things xD

#

like new shadows, I guess

ornate locust
#

In Photoshop, I can just see what the opacity is with a mouseover

latent mauve
#

Adobe is banned on my personal PC, it aggravates me enough at work with the constant UI changes xD

ornate locust
#

You went an extra mile LOL

#

also I hate to tell you, but you can't even guarantee all the shadows are the same on the same season

#

They are very variable, like one will be 26% and one will be 35%

#

I usually reference similar things on the season I'm working on and hope for the best

little pecan
#

Did CA just do them based on vibes? x3

ornate locust
#

I would not be surprised

wispy bramble
#

he probably did SDVkrobusgiggle

little pecan
#

He do be silly like that ยฏ_(ใƒ„)_/ยฏ

little pecan
strong kite
#

It's very juvenile but I find this name for the trigger action very funny

ornate locust
#

Dare I ask why you are loading vanilla tilesheets in there? And why Shane's marriage dialog is listed as a PNG?

#

from looking at that, I'm just not sure what you're doing or why

strong kite
#

Looks like a mod for a Blue Horse? Like Shane's blue chicken

ornate locust
#

maybe, but dialog would not be a PNG and I don't know why vanilla tilesheets are being loaded

little pecan
ornate locust
#

You don't need to load vanilla tilesheets, the game already loads them

strong kite
#

Honestly I'd say that's a fair mistake for a first time modder to make

autumn tide
#

I fucked up worse my first time modding tbh SDVkrobusgiggle

ornate locust
#

Yeah, I'm just trying to figure out what's happening here: So it's just dialog and a texture load?

little pecan
#

Replacing some textures and a single line of dialog

ornate locust
#

Aha, okay!

little pecan
strong kite
#

YEAHAHAHHH FUCK THAT BUSH IN PARTICULAR! allthethings

strong kite
#

Again I'd say that's a fair mistake to make, though

ornate locust
#

No, it's fine, you're a beginner, it's just hard to figure out what you were doing with it to give advice on how to fix it. We'll need to see the dialog json too

#

The tilesheet bits made me think maybe you were loading a map

strong kite
little pecan
ornate locust
#

Ah, the book, well you definitely don't want to replace the entire image for that. You want to replace just the bit you changed

strong kite
#

On top of the issues Midnight is pointing out, I believe it needs to be formatted like this

    "Format": "2.9.0",
    "Changes": [
        {
            "Action": "Load",
            "Target": "Animals/horse",
            "FromFile": "assets/bluehorse.png"
        },
        {
            "Action": "Load",
            "Target": "TileSheets/Objects_2",
            "FromFile": "assets/objects_2.png"
        },
        {
            "Action": "Load",
            "Target": "Characters/Dialogue/MarriageDialogueShane",
            "FromFile": "assets/MarriageDialogueShane.png"
        },
        {
            "Action": "Load",
            "Target": "Maps/springobjects",
            "FromFile": "assets/spring_objects.png" 
        }
    ]
}```
ornate locust
#
      {
         "Action": "EditImage",
         "Target": "Maps/springobjects",
         "FromFile": "assets/fish-object.png",
         "FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16 }, // optional, defaults to entire FromFile
         "ToArea": { "X": 256, "Y": 96, "Width": 16, "Height": 16 } // optional, defaults to source size from top-left
      },```
Here's the Content Patcher documentation example for replacing just a part of an image
strong kite
#

That's possibly why the content.json is failing to load at all

ornate locust
#

Replacing the whole horse is fine because there's just one horse, but you can replace just the book that way. And you want to change the marriagedialogueshane asset to .json

ornate locust
#

Just making sure. Trying to keep track of more than one thing at once

little pecan
#

Honestly, i could just cut that change if i can't get it to work

strong kite
#

Hooray my 6 hour detour is technically complete!
I need to stop thinking that modding can be a quick process Tiredkip

little pecan
ornate locust
#

Yeah replacing the whole thing works, but just replacing the book will make it work nicer with other mods

little pecan
#

Btw, the main reason I'm making this mod was because i needed one more thing to add to my portfolio to apply for uni, do you two want me to credit you for helping me fix it if (IF) i ever end up releasing it?

strong kite
#

If you want? I don't think it's really necessary, though

ornate locust
#

same

whole prism
#

ooga booga

little pecan
#

Regardless, thank you all so, so much
I'll give you an update when/if i can get it to work :3

whole prism
little pecan
whole prism
#

ooo

little pecan
#

Basically you begin doing a bunch of different art/design stuff and then you can either choose to specialize on one medium or keep doing a little bit of everything from how i understand it

rich cliff
#

What does it mean by end of file expected?

brittle pasture
#

looks like a few missing commas between the blocks

#

and also missing the top level block encompassing the whole thing

#

also Format should ideally be 2.8.0

rich cliff
#

okay!

#

Alright I did it. The problems are different now. SDVpufferpain SDVpetcatsad

brittle pasture
#

your top level block closes too soon

#

Format and Changes should be on the same level

#

also still missing commas between the blocks in Changes

torpid sparrow
#

doesn't changes need square brackets?

brittle pasture
#

Changes itself should be- yes

torpid sparrow
#

it should be { format changes [ ?

#

i think

#

i never trust myself to set up a json from scratch so i just copy and paste an existing json i have

rich seal
#

Anyone familiar with Producer Framework Mod? Trying to get my custom flavored item to retain the color of whatever I put in, and that's the only thing I'm not getting right. Got my custom item, got the recipes working, no errors in the logs, but I just can't seem to figure out how to make it actually color my item. The template provided in PFM has ObjectColor, ObjectDyeColor, and DefinedColor as the OutputColorConfig options, but the only one that seems to work is ObjectDyeColor, and that just turns my item into a single color rather than the area I assume I defined (second frame of the item sprite). I'm so close to what I want, but this last step is bugging me.

rich cliff
iron ridge
torpid sparrow
#

square brackets too

#

"Changes": [
all of ur patches
]

verbal glacier
rich cliff
#

Thank you!

#

my tabs are getting more compact SDVpufferpain

verbal glacier
#

ah yes tab creep

rich cliff
verbal glacier
#

Praise pathos

rich cliff
#

is that a joja horse??

brittle pasture
#

though the whole object color being tinted issue sounds like you need to set ColorOverlayFromNextIndex in the output item's object data

rich seal
#

So wait, I didn't need to download a whole framework for custom flavored items then? Cause I'm not using Wine or anything from vanilla. I was under the assumption I needed a framework like PFM for that.

brittle pasture
#

nope, vanilla/CP supports that now

rich seal
#

All that effort and pain for nothing

#

So, is there documentation for dummies like me that explains how to make custom flavored items? Because until just now, I was being guided by years old comments from reddit and whatever else Google crapped down my throat because I didn't know it was doable in content patcher

#

Also, ColorOverlayFromNextIndex did work, so thanks for that. Was driving me nuts.

brittle pasture
#

admittedly not much other than examples like Cornucopia or Wildflour

rich seal
#

Something tells me those aren't small mods that are easy to navigate, but that's still a lead, and a lead is better than nothing. I'll go see how they handle it then, thanks.

brittle pasture
#

the relevant things you want to do is:

  • add machine rule
  • set PreserveId to DROP_IN to set the flavor as the input item
  • set CopyColor and CopyPrice
  • set PriceModifiers to multiply your output's price from the input
  • add {0} to the output's internal name
  • set display name appropriately
#

[[Modding:Machines]] more relevant docs

brittle pasture
#

wiops forgot

  • Set PreserveId to DROP_IN
#

I should add this stuff to my basic machine tutorial some other... month

rich cliff
#

Idk why I thought to do this from scratch SDVpetcatsad I hope I'm done with this part

verbal glacier
#

yes?

#

should be changes

rich cliff
#

bc I don't follow directions very well :3

verbal glacier
#

pff

rich cliff
#

is that the last ting tho? Are the squiggles normal under the green text?

calm nebula
#

Yes

iron ridge
#

yes

#

you need to the language to jsonc for your editor to support comments - smapi is fine with them but they're not technically a part of json

verbal glacier
#

putting // in front of something turns it into comments

rich cliff
#

ohhh ok