#making-mods-general

1 messages · Page 590 of 1

toxic topaz
#

uhhhh ye i think

strong kite
marsh reef
#

?

#

we fr?

brave fable
#

CanSocialize just handles whether they appear in the social menu and can accept gifts iirc

marsh reef
#

ah i see

toxic topaz
#

made a total of one dune of progress FeelsGoodMan and i cant tell if it looks good or not

marsh reef
#

gifts seem important

marsh reef
toxic topaz
#

ngl the whole make not being complete is messing with my brain more than it should be

#

maybe?

marsh reef
#

:3

toxic topaz
#

yea idk Gladge the pyramid i can do because its a simpleish shape, but these dunes are like hypothetical aPES_Think

strong kite
toxic topaz
#

and speaking of, i think tomorrow ill work on the textures for the pyramid in the physical map

marsh reef
#

send me the picture you have rn

#

chat where did my nav bar go

toxic topaz
strong kite
#

I guess I don't know exactly how it all works

marsh reef
#

where did everything go??

#

the two sides of my application

toxic topaz
#

huh?

marsh reef
#

everything helpful to me is gone how

uncut viper
toxic topaz
#

ohhhi think you click that?

marsh reef
#

there isnt that....

#

i just restarted, idk

strong kite
#

Button might you at all know why my NPC isn't interactable?

uncut viper
#

Getting an NPC to be interactable requires you to assemble every piece of modding Exodia and unfortunately I don't know how to play the card game

strong kite
uncut viper
#

(I can never remember what the pieces are)

strong kite
#

Welp time to go looking at another mod

brave fable
#

do you have dialogue for the current day, and does a patch summary show it's applied?

uncut viper
#

Are you sure you actually have dialogue for the day you are talking to them

#

Like if it's Tuesday they need a Tue dialogue key

strong kite
#

Does all of this count?

uncut viper
#

(at minimum)

strong kite
#

(and yes these are all written)

uncut viper
#

is that file actually included?

strong kite
#

Yes

uncut viper
#

Then I would check the patch summary

toxic topaz
#

ngl, i feel like a plants vs zombies type of beat would be good for a sandstorm aPES_Think

uncut viper
#

I wasn't looking in this channel until like 2min ago, I assume you have the gift tastes sorted?

strong kite
#
        "Target": "Data/NPCGiftTastes",
        "Entries": {
            "{{ModId}}_Darkrai": "{{i18n:DarkraiLovedGiftDialogue{{NPCFriendshipLvl}}}}/277/{{i18n:DarkraiLikedGiftDialogue{{NPCFriendshipLvl}}}}/{{ModId}}_EnigmaBerry {{ModId}}_NightmareSmoothie {{ModId}}_NightmarePokepuff 305 308/{{i18n:DarkraiNeutralGiftDialogue{{NPCFriendshipLvl}}}}/166/{{i18n:DarkraiDislikedGiftDialogue{{NPCFriendshipLvl}}}}/879/{{i18n:DarkraiHatedGiftDialogue{{NPCFriendshipLvl}}}}/773"
            }
        }
    ]``` I think I have it sorted enough to not cause errors?
uncut viper
#

Then yeah my suggestion would be blueberry's suggestion which is to verify things with the patch summary

#

Beyond that I am no help here

strong kite
#

Alright, how do I check that?

uncut viper
#

patch summary <ModId>

#

in the console

strong kite
#

Oh god this is a lot of information- Oh wait is this including stuff from like ALL of my mods?

#

Ohhh this is including a ton of extra stuff

brave fable
#

if you didn't write a specific mod unique id, yes

strong kite
#

Oh. It's also including stuff like active quests and whatnot

#

Anyway.. [X] | [ ] | [ ] | Default | Include data/gifttastes.json > EditData Data/NPCGiftTastes #2 // invalid tokens: NPCFriendshipLvl Thonking

uncut viper
#

Make sure you do it when a save is loaded, if that is a dynamic token thats checking the {{Friendship}} token

strong kite
#

Yeah I made sure to load a save first

#

So does that mean the token isn't functioning properly?

#

[X] | [ ] | [ ] | Default | Include data/dialogue.json > EditData Characters/Dialogue/{{ModId}}_Darkrai // invalid tokens: NPCFriendshipLvl Same thing here

#

Uh oh that might be it

brave fable
#

do you not have an unconditional patch for your dialogue?

strong kite
#

uhh wdym?

uncut viper
#

You put braces around the names

brave fable
#

there's yer problem

uncut viper
#

Don't do that

strong kite
#

Good to know

toxic topaz
#

i see people talk about it a lot, but idk what a token is...

uncut viper
#

Remove the braces and it'll be fine

#

just "Name": "NPCFriendshipLvl"

brave fable
#

a token is a value substituted for another

strong kite
#

As it turns out I am completely helpless if the console doesn't tell me in big bold red that something is wrong Tiredkip

uncut viper
#

Well did it say it in yellow text

strong kite
#

No

brave fable
#

for example, {{ModId}} is a token that'll be substituted for your unique id, such as blueberry.my.funny.mod

strong kite
#

I've been getting 0 errors related to the mod in question

toxic topaz
#

ahhhh, that makes sense thank you

brave fable
#

31 DynamicTokens[0].Name The token name should be alphanumeric with no special characters.

toxic topaz
#

so like a display name for the real thing?

brave fable
#

not necessarily, more of a formula that may have a different result when evaluated, hence static and dynamic tokens

#

in this case, {{NpcFriendshipLvl}} is a token that may evaluate to Friend or Servant, depending on the game state

strong kite
#

i still cant interact with Darkrai...

uncut viper
#

Dynamic token changes cannot be patch reloaded

#

So make sure you restarted.

strong kite
#

I've closed the game twice now

uncut viper
#

If you still cannot interact after that, load a save, try to talk, patch summary, and send a log.

#

(And ideally your most up to date jsons)

strong kite
#

[X] | [X] | [ ] | Default | Include data/dialogue.json > EditData Characters/Dialogue/{{ModId}}_Darkrai (=> Characters/Dialogue/TntDove.PBB_Darkrai) // hint: asset name may be incorrect (shouldn't include '.PBB_Darkrai' extension).

uncut viper
#

That is not a log!

#

And that's a harmless message anyway

strong kite
#

I'm just posting what looks like it's probably an issue!

#

oh okay

uncut viper
#

Well don't do that and send a log instead SDVpufferthumbsup

strong kite
#

Where do I find the log again?

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
#

The instructions on that page will tell you.

strong kite
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 53 C# mods and 27 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brave fable
#

if it's being loaded, it's in your mods folder

uncut viper
#

It's in your Mods/TMXLoader folder

strong kite
#

I doubt that's causing the issue but I'm glad to get rid of it

uncut viper
#

Do you have a blank load for your dialogue anywhere?

strong kite
#

Uhh considering I don't know what that means, probably not?

uncut viper
#

Right, ok, then your EditData adding all your dialogue (not the gift tastes but the normal dialogue) isnt doin anything

#

You need to make a json file that has n othing in it but {}
You can call it blank.json or empty.json or whatever you want

strong kite
#

Ohhhh THAT'S why mods have those!

uncut viper
#

You need to then Load that blank.json to the same target as your dialogue asset

#

This will make that dialogue asset Exist first before your actual Edits can then happen

strong kite
#

Ahhh alright

uncut viper
#

You'd need to do this same thing for their custom schedule asset and any events that take place in custom locations, but you can reuse the same blank (and even the same load patch) for it

strong kite
#

Good to know. Thankfully I don't think I'll be doing those but very good to know

uncut viper
#

(any data asset (i.e. not a map or texture) that doesnt exist in your unpack folder needs a blank load, essentially.)

#

(important note: if you're using frameworks, they are the ones doing the blank load (or its equivalent) on their end for their custom stuff. blank loads are for assets that you and you alone are in charge of)

strong kite
#

So would I add a load for both of those in the dialogue.json?

uncut viper
#

that is, dont do a blank load to a SpaceCore asset or something

#

Data/NPCGiftTastes already exists and needs no blank

#

If you load a blank there, you will erase every vanilla gift taste

#

Your dialogue asset though does not exist and needs a blank load

#

If you meant something else with "both of those" and not gift tastes then I misunderstood

strong kite
#

I meant the Dialogue and the Blank

uncut viper
#

The blank itself doesnt get a patch to load it to a blank asset

#
"Action": "Load",
"Target": "Characters/Dialogue/blabla",
"FromFile": "assets/blank.json"
#

This loads the blank json to your characters dialogue asset

#

replace blabla with their actual ID I just was lazy

strong kite
#

This should work then? Does it matter which file or where in the file it is?

uncut viper
#

As long as it's not inside an Include that isn't actually included, it doesnt matter where it is. All Load patches are processed before any EditData patch as necessary

strong kite
#

Alrighty, thank you!

#

Here's hoping this works and doesn't unearth a million new issues with the dialogue!

torpid sparrow
#

i was going to ask if a blank was loaded about 10 minutes ago but decided against it

#

i should just ask next time SDVpuffersquee

strong kite
#

MY MANS CAN SPEAK!!!

#

This isn't the introduction dialogue but I figure that's because this is a year 3 test save who knows how screwed thing have become lmao

brave fable
#

what happens if you scan the qr code he's standing on

strong kite
uncut viper
#

Introduction is a conversation topic that lasts for 4 or 7 (idr) days when a save is created

strong kite
#

oh.... shoot...

uncut viper
#

1.6.16 will add a FirstMeeting dialogue key that works in the usually expected way

torpid sparrow
#

ive been meaning to ask, what does pathos mean when a build is deployed? it's not yet accessible to us right?

uncut viper
#

If it's critical that they say their introduction dialogue the first time the player speaks to them no matter when it happens, you could always replace ALL of their possible dialogue with JUST that line for as long as the player has not met them yet

uncut viper
torpid sparrow
#

would it cause issues for players who aren't on that branch

strong kite
uncut viper
toxic topaz
#

huh? isnt there already an introduction key?

strong kite
#

I still want to ask if ConcernedApe could maybe add an event command to make an NPC walk backwards heehee

torpid sparrow
brave fable
uncut viper
#

No. Not unless they are also in the alpha.

#

And using alpha builds of Content Patcher and SMAPI

torpid sparrow
#

Oh okay yea confirming what I thought

#

When do alpha builds become uhh the regular branch

brave fable
#

when they're done 🙂‍↕️

uncut viper
#

You can of course include some alpha things in your current version CP mod that will be useless until 1.6.16 actually releases but then immediately work once it does

#

But not a lot of things

#

You could add the FirstMeeting key now, for example. Harmless to add. Just won't do anything until 1.6.16 releases.

torpid sparrow
#

Ah right

uncut viper
#

Also, 1.6.16 has been in development since August 2025.

strong kite
#

Yeah.. I should really find a way to include this dialogue

torpid sparrow
#

Oh wow

uncut viper
#

Don't plan your modding around the alpha until there's an actual expected release date or its said it might be soon.

strong kite
#

The stardew font in all caps is surprisingly disturbing

torpid sparrow
#

Im just excited for the textabovehead for farmer

uncut viper
#

Also it might be even earleir than August 2025 idk thats just the oldest edit on the wiki page history but it was also the 1.7 page at one point or maybe it got changed back or blabla i dont knowww its old ok

#

I think it was actually March 2025 as thats the oldest edit on the 1.7 migration page.

strong kite
#

Also I was mainly so concerned about this dialogue cuz I was thinking I'd make it so going through it then spawns the first bundle book, but with the way I wrote it I think the book will be meant to already be there

brave fable
#

oldest message in the alpha thread is from late june 🙂‍↕️

toxic topaz
#

1.7 is going to add a lot of post marriage stuff right?

torpid sparrow
#

Nearly a year whew

uncut viper
#

We don't know what 1.7 is adding.

brave fable
#

i'm just hoping for more pam content

uncut viper
#

Modding wise, we know what kinds of new moddability some things will get. Content, no clue

toxic topaz
#

oh, i thought i saw something about making kids like better

strong kite
#

But how would you suggest I go about making the dialogue appear for the first time Darkrai is spoken to? Before 1.6.16

uncut viper
#

To be clear there is absolutely no new content, like new features and such, in the 1.6.16 or 1.7 alphas.

#

Those alphas are purely for modding stuff

strong kite
#

We are the content now heehee

strong kite
#

Ah- I was hoping for maybe a little more specifics on how to go about doing that HehSweatCloseup

toxic topaz
#

im excited for the new sneak peaks that ca posts in the future, if there is any MeguHeart

#

i was so hyped when the 1.6 one was released

brave fable
#

i suppose you could add your own conversation topic/dialogue event that lasts forever, and use that as your one-time first-time dialogue key

uncut viper
#

That's probably a lot easier

#

And by probably I mean definitely

brave fable
#

sneek peek*

strong kite
#

Ohhh wait you're right, and I could totally have it so you get that topic from the event immediately before entering the zone for the first time!

uncut viper
#

I would just make an unconditional trigger action that does it on day start

#

No chance of it being messed up by any event skipping or event limiting or what have you

#

Or teleporting

strong kite
#

Oh right.. if an event gets skipped then any flags don't get set, right?

#

That were at the end at least

brave fable
uncut viper
#

Well technically you can decide when something is skippable

#

So you can just put the CT before the skippable option

brave fable
#

hell if you're worried about event mishaps you can use firstVisit

strong kite
#

Well in this case it's a mail flag

uncut viper
#

But imo the trigger action method is less prone to another mod messing it up

#

No, in this case it has to be a CT

#

You can't use a mail flag to control what dialogue is used like a CT can

strong kite
#

Oop- no sorry I'm talking about another thing HehSweatCloseup

uncut viper
strong kite
#

But theoretically I could move these CTs and MFs to the start of the event so the window to miss them from skipping is very small?

uncut viper
#

In vanilla at least the window would be nonexistent

strong kite
#

actually why am I making this so needlessly complicated

#

There are literally commands to make these things happen if the cutscene is skipped

#

Me actually just ignoring this command

uncut viper
#

Tbc, I was more worried about other mods causing the skip in non-intended ways

strong kite
#

Well in that case maybe those other mods should be more considerate heehee

uncut viper
#

It is always easy to place the blame on another mod but it will never stop people from leaving bug reports on yours instead 😌

#

Whether they should or not

strong kite
strong kite
#

Im not sure how to set an unconditional trigger

uncut viper
#

You just don't include a condition

strong kite
#

tbh VS code automatically placing a pair of brackets and quotes is getting on my nerves..

#

Alright now I can focus on the code lmao

#

So this should be good, and now I just need to hook this up so that when you talk to Darkrai with this conversation topic you get that dialogue?

uncut viper
#

Well you probably want it to last Forever* and not 0 days

#

*Not technically forever but 999999 should be good enough

#

Do keep in mind that trigger actions run only once per save file unless you take steps to specifically reset them. So if you have this trigger action in your code when you launch the game to test, it will run, and then if you save, it will never run again even if you make changes to it later, unless you also change the ID

strong kite
#

Ohh good to know

#

Right now I'm on the dialogue modding page just trying to find how to connect dialogue to if you have the conversation topic

uncut viper
#

Just make a dialogue line where the key is the same as your conversation topic key

strong kite
#

Oh alright

uncut viper
#

i.e. instead of Introduction add one for {{ModId}}_DarkraiFirstMet

strong kite
#

Alright, excellent!

#

Ty for all the help!

#

It is storming like hell right now and also 1:30 AM so I should probably get off for the night LUL

strong kite
#

As much as I want to entertain the idea that i could be done with the update for my mod before Tomodachi Life releases (April 16th), I don’t think I actually want to release it like that. Cuz even if I “finish” it I’m still gonna wanna comb it all over to make sure things look good
So I think ima try and just stop worrying about whether or not I’ll finish it in time and just try to get back to it when I can if Tomodachi Life completely takes over for a week

marsh reef
#

i love when my knees feel like they have pressure as if im standing on em but im sitting :3

void aspen
#

Hmm, if there's a mod that makes players reflect in the water, there's a way to make working mirror then
Tho it requires c# I suppose

#

Since water reflection mod is also on c#

hard fern
#

😭 i need money...

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 22 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

void aspen
#

Have you considered doing what thing above says?

stoic chasm
#

Updating a mod? The mod that I think it's refering to doesn't do anything with what I'm trying (I forgot to remove it from my mod folder)

hard fern
#

check the documentation for how to add non-maps tilesheets to maps again

stoic chasm
#

Okie dokie

#

Thank youu

stoic chasm
#

I have forgot where that page is- SDVpufferchickcry

void aspen
#

This one iircm but thats a wiki

#

Also do you use tilesheetinator

stoic chasm
#

Yes I do

void aspen
#

then you should be able to do it the easier way

stoic chasm
#

What's that, exactly-?

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 21 C# mods and 8 content packs.

hard fern
#

sounds like you didn't properly fix the path

#

from when you added it in tiled

#

when working on a map, you should keep tilesheets in the same folder as the map, because things like this happen otherwise

stoic chasm
#

Ooh okay. What do I do after I'm finished with the map though? And is there anyway I can fix it now?

hard fern
#

or manually fix the path

#

by opening the map in vsc or some other editor

stoic chasm
#

How would I go about doing both of those options? Sorry

hard fern
#

(aka, whatever the tilesheet mod loaded the file to)

stoic chasm
#

Ooh okay. Thank you!

craggy goblet
#

So I wanted to make some more letters and looked at the Wiki... but that doesn't help against my confusion at all 😅😭
Like, what's the order for the backgrounds and buttons? 😔

sullen rain
#

Anyone know why I'm getting this with my strings?

verbal glacier
#

it might need to load through a blank.json for Strings/schedules/NPC, if you haven't done that already

sullen rain
#

I did do that

hard fern
#

l
v
e
r.Mona⬇️ Mona:library⬇️working.001

verbal glacier
dawn ore
#

I am looking to add a second floor to Lewis's House (Mayor's Manor), and id ike to move the objects on the top left to put in a staircase. I tried just moving the objects layer in Tiled in a map patch, and the prize machine works fine elsewhere, but the divorce book and multiplayer fund book don't seem to work in the community centre for example, and the lost and found will forcefully overwrite my patch and reappear in its original location (but does seem to work)!

At the moment I'm just using CP, is there a way to do this with CP alone, or will I need some external solution and if so what is it? Thanks

royal stump
twin tulip
#

I decided to replace my mod's main image with a prettier one. What do you think?

dawn ore
#

Bummer! The prize machine seems to work fine elsewhere, so that must be location independent. The divorce and funds book seem to work elsewhere in the mayor's house, so maybe I just try to nudge them elsewhere inside the house.

royal stump
#

yeah, the prize ticket system is just implemented on the general-use "GameLocation" code, but the others seem to be in the "ManorHouse" location type, only used there

verbal glacier
royal stump
#

it also applies these map edits, depending on whether it's a specific event or not

public override void MakeMapModifications(bool force = false)
{
    base.MakeMapModifications(force);
    if (Game1.eventUp && Game1.CurrentEvent.id != "prizeTicketIntro")
    {
        base.removeTile(4, 5, "Buildings");
        base.removeTile(4, 4, "Front");
        base.removeTile(4, 3, "Front");
        base.setMapTile(4, 6, 635, "Back", "1");
    }
    else
    {
        base.setMapTile(4, 5, 109, "Buildings", "untitled tile sheet2", "LostAndFound");
        base.setMapTile(4, 4, 77, "Front", "untitled tile sheet2");
        base.setMapTile(4, 3, 110, "Front", "untitled tile sheet2");
        base.setMapTile(4, 6, 604, "Back", "1");
    }
}```
calm nebula
#

What breaks if you make your location ManorHouse

#

Other than hardcoded map edits

fading walrus
dawn ore
#

Ah, so for the event where Lewis introduces the prize tickets, even if I get rid of the Prize Machine tiles normally it will reappear for that event. Will it disappear afterwards?

dawn ore
craggy goblet
royal stump
calm nebula
#

In json you can actually change the specific type a location is

#

I was musing what would happen if they made their location manorhouse and just mirrored that little table in their location

#

And then just made the manor a normal Gamelocatipn

royal stump
#

making a new location for that stuff could maybe work, yeah

calm nebula
#

Does it affect ||the basement||

#

Gooood morning everyone

verbal glacier
twin tulip
royal stump
calm nebula
#

Hah!

#

This might work then

royal stump
#

SDVpuffersquint actually, this part is pickier than it should be, so the stairs might be a problem

/// <summary>Perform an action when the user interacts with this object, assuming it's a staircase.</summary>
/// <inheritdoc cref="M:StardewValley.Object.checkForAction(StardewValley.Farmer,System.Boolean)" />
protected virtual bool CheckForActionOnStaircase(Farmer who, bool justCheckingForActivity = false)
{
    if (this.Location is MineShaft mine && mine.shouldCreateLadderOnThisLevel())
    {
        if (justCheckingForActivity)
        {
            return true;
        }
        Game1.enterMine(Game1.CurrentMineLevel + 1);
        Game1.playSound("stairsdown");
    }
    else if (this.Location.Name.Equals("ManorHouse"))
    {
        if (justCheckingForActivity)
        {
            return true;
        }
        Game1.warpFarmer("LewisBasement", 4, 4, 2);
        Game1.playSound("stairsdown");
    }
    return false;
}```
#

ig a warp isn't hard to mimic though

dawn ore
#

Ok, I haven't interacted with the idea of naming locations. So, let's say I make a new room (map) that's accessible elsewhere, maybe via a separate door or something, and I copy the objects from the mayor's house (2 books + lost and found), how do I do this naming swap?

dawn ore
royal stump
#

I can't guarantee it won't have odd side effects, but that makes it use the same extra code that Lewis's house does

#

you could also remove that from Lewis's house by editing its entry to say "Type": null, though the same warning applies

calm nebula
#

Then the hardcoded stuff appears in your map

dawn ore
#

Cool, thanks folks, I'll try that tomorrow.
I really appreciate everyone here! 💖

fading walrus
sullen rain
#

Had them loading from the wrong spot was all

stoic chasm
#

I still can't get the interior to load innnnnnnnnnnnnnnnn SDVpufferchickcry I am sad

desert tinsel
#

Good morning, sweets. I'm trying to create an item in the game where the player can craft and eat the item as well, just like with Life Elixir.
But since I'm quite new to this mod topic, I can't understand what's going on or missing. Could someone help me with this? Please

https://smapi.io/json/none/f7c993583f7e4bd2ad6c4169405cc825

brittle pasture
#

and what isn't working?

desert tinsel
#

This happens here, my dear.

brittle pasture
#

I see your recipe has "is big craftable" to true

#

set it to false (your item isnt a BC)

#

big craftables are tall placeable items like kegs or furnaces

#

same with the ingredient

#

829 is Ginger, (BC)829 is not a valid item

desert tinsel
#

Or did I misunderstand?

brittle pasture
#

no, you just use 829 instead of (BC)829

desert tinsel
#

Like that?

brittle pasture
#

like 16 is Wild Horseradish, (BC)16 is a Cheese Press

#

if you want your recipe to be crafted from a cheese press you use the latter

brittle pasture
desert tinsel
#

It worked!! Aahh, thank you so much, sweetie! TwT💜💜💜💜💜💜💜

brittle pasture
#

the "more correct" id for ginger would be (O)829, but the game usually defaults to Objects if the qualifier isnt provided

desert tinsel
#

Ahh

#

I wasn't stretching it well while reading this, but after your summary, I think...

#

I think I got the hang of it 🥹

merry river
#

I want to add a traveling cart to my custom map. How do I use the sprite from cursors in my map? Or would it be smarter to just drop it into my own tilesheet?

void aspen
#

no need to make another tilesheet

#

oh hm its not on the 16px grid

#

weird pick CA

#

ig you can make your own then

scenic ferry
#

question for yall: How do you decide what should be a new mod as opposed to updating an existing one?

For example I'm thinking about making a new npc that would rely on my main mod, VaelsFamiliars. Should it be a new mod that requires VF, or just a large update?

void aspen
#

Depends if your npc can be a separate mod without vf

jaunty shuttle
#

A lot of it’s personal preference. You could always do it in the same mod and have a config too

brittle pasture
#

the main downside of making updates is that you don't get that sweet Nexus trending visibility

brittle pasture
#

arguably I'd say go for a separate mod

scenic ferry
#

NPC would require VF, VF would not require NPC - and the nexus visibility is nice :')

I made a huge update to VF For a different npc but ahhh, barely anyone saw it

#

hence why im questioning it now

#

i think I'll go separate mod? I think?

#

maybe?

#

Okay, ultimately I think new mod is the play.
I want to do a lot of different things with the lore ive created here, and this way the player could pick and choose what additional features they do or dont want.

IE, if someone just wants Yuzuki adoptable and doesnt want a second shop, they just need VF + Yuzuki Adopt.
Vs, if they dont care about adopting Yuzuki and they just want to crop expansion, they wouldn't have to worry about that feature at all.

Keeps it from one mod getting too bloated and creates a sort of ecosystem where Vaels Familiars is base content, almost like a framework piece, and the rest is expansions that you could pick and choose?

#

Like the four pillars dont necessarily interact with eachother, other than that they tie in to base VF

#

Yeah okay I think thats where im leaning

Sorry yall im basically talking to myself here LMAO

foggy crescent
#

Hello, i am new to modding and i would love to do hair/outfits etc. I tried today to do a hair version, just took a vanilla png and tried to animate it bc. i want hair with animation. but it does not work ingame, there is also nothing in the smapi log regarding the file. i think theres something wrong with the json files. attached you can find the png and json files. im thankful for every help!

strong kite
#

Chat is 9 bundle books too many?

latent mauve
latent mauve
strong kite
fossil osprey
#

depends how hard the bundles are and what they unlock

strong kite
#

Uhh the unlocks are gonna be difficult cuz I don't know yet 😭
All I know is I got carried away with making the map and there's room for like 9 bundle books Azusob

fossil osprey
#

oh it's for a map, yeah it's alright I guess

strong kite
#

Ye, here's the map and all the locations for bundle books very clumsily placed in the snipping tool

#

And they're gonna unlock as you complete them

fossil osprey
#

If your whole expansion is around completing bundles to advance the story, then it's not too too much

strong kite
#

This is all for the fun of it 😭
-# and also a place to unlock recipes

fossil osprey
#

…oh SDVkrobusgiggle

#

Then I hope that whatever it unlocks is very good ^^'

torpid sparrow
#

guh pathfinding broke now i must figure that out

strong kite
torpid sparrow
#

hmm does anyone know why my npc is walking into the void? the schedule loads. There's an accessible warp in my tmx

fossil osprey
#

Why would you said "iirc", isn't that your expansion? /j /lh

latent mauve
strong kite
#

Mainly, I thought it would be really cool to have bundles because I LOVE completing the CC bundles

latent mauve
#

And now I have to wonder if a cooking school mod exists

strong kite
#

They're such a good point of progression and I often see it as the goal for the game despite all the content afterwards

latent mauve
#

The fact that it's books is what's confusing me in this context I think

strong kite
#

It's book because that's how they work by default and I don't want to figure out custom assets for this heehee

latent mauve
#

Ah, I see

#

No kitchenette bundles for you 😛

strong kite
#

Well well now hang on I never said that LUL

latent mauve
#

(could always borrow Linus's roasting spit and cook pot for a start rather than making new assets)

strong kite
#

Well it's also a mythical pokemon so I feel like using something mythical and magical like the junimos is a fair idea

#

Again I'm also just being lazy lmao

#

I kinda feel like I should add more forage or something.. just so I can have a basic forage bundle 😭

#

Or you know what maybe the intro bundle just has only 2 pages that also works

#

though I do like the idea of adding more forage regardless..

#

Oh god wait actually WAIT- The e-reader berries! Oh my god those could be AWESOME for forage!
Because then I don't have to implement and seeds or crop sprites! LUL

fossil osprey
#

whisper scope creep! scope creep! scope creep!

strong kite
#

ahhh mann these only have berry Tag sprites which are 48 x 48 default. I'm gonna have to downscale them to 16 x 16. I can do that, though.. probably..

#

Oh dear god I could also add forage to the rift dimension using the hyperspace berries from Pokemon Legends Z-A.... It would be kinda fitting but feel so out of place 😭
I'll keep that idea on the backburner though...

void aspen
strong kite
#

Emily's dream sequence, right?

void aspen
#

yeah

strong kite
#

I'm realizing I could also add Apricorns as forage pichusad

kind fjord
#

Hii y'all does anyone plays mods on stardew on android or on chrome os Is it safe to do and how is it like when you guys play with mods? Because I'm Doubt I want to do it but then again I don't. Pff, what is it like to play with mods and so

strong kite
#

guys scope creep is real and it WILL get you

void aspen
#

Modding is safe as long as you download the ones from verified creators on nexus tho

#

This channel is for people who make mods

rich cliff
#

Hallo! I think I'm starting my making mods journey now. Just a warning for those who may choose to help me out, I like to jump into things. I don't mind making mistakes as long as I can learn from them.

kind fjord
kind fjord
void aspen
rich cliff
#

I'm making animated hairstyles with Aseprite so what size should the canvas be?

scenic ferry
#

Reworking my entire mod oh my god why do I do this to myself

(Im having fun i swear)

round dock
#

(don’t forget to take breaks and rest!)

void aspen
slim marlin
#

Is it normal to hate commas and speak to smapi as if it can argue back?

rich cliff
#

yes

#

very normal

void aspen
#

tho im not sure how animated hair work

#

is it fs

rich cliff
#

yeah

void aspen
#

oh its something I never tried to work with so im not sure

rich cliff
#

I'll look more into it then

void aspen
#

you may wanna check other peoples mods to see how they work

round dock
#

Shardust’s known for their animated hairstyles

void aspen
#

oh I just got vsc and its cool

#

tho I dont feel like fixing stray commas

torpid sparrow
#

is there a faster way to test CTs?

#

like faster way to get them over with

#

i just need to make sure whatever i have set up to trigger after its done actually triggers

#

and i dont wanna sleep 20 days </3

strong kite
#

I'm starting to question if I change the name of my mod. But I feel like if I change the name of my mod then it's just gonna suffer even MORE scope creep and also probably alienate previous downloaders

round dock
#

Why would it be more scope creep? Will changing the title substantially alter your content?

strong kite
round dock
#

And I don’t think a change in name would necessarily alienate your user base, esp if you feel like a new title would suit it better

strong kite
#

I have specifically chosen NOT to add mineable revive ore nodes to the mines for the fact it strays a tad too far from a mod that is supposed to add just "Pokemon Berry Bushes"

whole prism
#

i will cri if so

#

no it doesnt look liek that

#

looks like map palcements

round dock
void aspen
#

for monsters

strong kite
whole prism
#

ohhh

round dock
#

(what’s the original title and your proposed one)

strong kite
#

Oh I don't have an idea for the new title

#

But I've just added a lot BEYOND the berry bushes I feel like it might make sense to

void aspen
#

i have 100 errors in it too

#

only commas

#

lmao

round dock
strong kite
void aspen
#

only 2400 lines of code too

round dock
#

And if you feel like what you want to implement feels totally distinct from what you’re working on, you can just make a separate mod out of it SBVLmaoDog

void aspen
#

I guess it was the point I decided to use include now

strong kite
#

Granted the NPC doesn't have a schedule or anything..

#

Doesn't really move either.. but I've also added several events relating to all that

round dock
woeful lintel
#

!vscodejsonc ?

#

!jsoncvscode

iron ridge
#

!vscjsonc

ocean sailBOT
#
How to make VSCode not scream at json comments

In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add

"$schema": "https://smapi.io/schemas/content-patcher.json"

at the start of your content.json file.

woeful lintel
#

here you go

round dock
#

(my marriage mod for Harvey’s supposedly a dialogue expansion, but I added lots of bits and pieces like marriage perks where he doesn’t bill you the full amount when you die, medicine you receive from the mail etc etc)

round dock
strong kite
#

And that's a downgrade from my original completion goal which was to make 1 recipe that each berry is the star of, but now that I think about it that's a guaranteed 67 (now 79/87) recipes ON TOP of any other things I come up with so.. yeah I'm just gonna stick to making sure each berry can be used for SOMETHING

#

This update started as a distraction while I waited for Tomodachi Life LTD to release, but honestly working on the mod has been really enjoyable and the community in this server has been very welcoming, so I've been legitimately having a ton of fun working on the mod and learning so much more about how to add things!

marsh reef
toxic topaz
#

thats nuts 😭

severe cairn
#

i probably have a similar number of warnings due to unnecessary commas lmao 😂 I'm too paranoid

toxic topaz
#

going to do the outside of the pyramid is going to kind of a pain lol, but luckily i only need to get it to look kinda good PepeHappy

severe cairn
#

the amount of times I added a new entry but forget to add a comma on the last one.. wont happen if i add a comma every last one uwu

toxic topaz
#

the sandstorm haze will cover a lot of inperfections

calm nebula
#

Please for the love of God switch to jsonc

faint ingot
#

I finally went in and figured out how to turn off comma warnings

toxic topaz
#

i just stole the rest from the skull cavern assets

severe cairn
#

I use jsonc stuff in standard json just fine lol

severe cairn
brittle pasture
torpid sparrow
#

guh anyone know how to fix this? i have an npc warp set up here and it doesnt seem like theyre using it. they just get stuck and dont move

faint ingot
#

For those that want to know, in vscode it's in file > settings > preferences... go to Extensions > JSON > JSON: Schemas > Edit, then paste in ```{
"files.associations": {
"*.json": "jsonc"
},
"security.workspace.trust.untrustedFiles": "open",
"editor.minimap.enabled": false,
"json.schemas": [

{
"fileMatch": ["*.json", "*.jsonc"],
"schema": {
    "allowTrailingCommas": true
}

}]
}```

severe cairn
#

whee

marsh reef
#

I read jsonc as j sonic

royal stump
#

(ah, just saw the other server update, nvm if it's functional again)

torpid sparrow
#

yeah i dont know whats going on

#

break, i add thing, fix, break again, i remove same thing, fix

royal stump
#

using multiple warps there might cause more harm than good, they should be able to share a regular map property Warp with the player in a map like that

torpid sparrow
#

yeah it just wasnt working before

#

which is why i added an NPCWarp

#

but then it started working again after i removed it

royal stump
#

yeah, not sure why, but solving the weird inconsistency is preferable

torpid sparrow
#

i do not know why it broke in the first place

royal stump
#

pathing's pretty fragile in general

calm nebula
#

I'm pretty sure LockedDoorWarps are used bt the scheduler

royal stump
#

yeah, I wasn't sure because pathing, but afaict that's the only way NPCs get inside from Town etc

#

though they shouldn't be used in that interior exit anyway

whole prism
#

Does anyone know of a very easy way to learn cutscenes? I wanted to make a simple cutscene between Pam and Penny, but I'm unsure how it works

torpid sparrow
#

ummmm

#

run an event and read the script while its playing

#

preferably a short event

whole prism
royal stump
whole prism
#

tyty

round dock
torpid sparrow
#

time to finish the rest of this update...is there a faster way to test CTs?

#

as in getting them over with

royal stump
#

looks like clearing all CTs with debug clearactivedialogueevents is the only built-in command related to them

torpid sparrow
#

hmm okay maybe ill just set a short ct and then up it after im done testing

royal stump
#

oh, there might be a workaround with trigger actions

#

debug action AddConversationTopic <ID> [days to keep it active]

torpid sparrow
#

that wouldnt speed it up though right

royal stump
#

(and the removal one along those lines)

#

debug action RemoveConversationTopic <ID> should get rid of a specific one, if that's the goal

torpid sparrow
#

yeah im kind of paranoid about CTs not working but i will try that to speed up my testing

royal stump
#

(also ig it's possible to test the memories that way by adding it with the _memory_etc suffix, probably)

whole prism
#

quick question

#

how can u activate that tile inspector visualizer thingy

#

was it pressing "~"

#

or similar button?

#

it would like tell u the tile and all

#

in game

torpid sparrow
#

yeah its ~

#

if u dont set another keybind

whole prism
#

oof

torpid sparrow
#

tilde

whole prism
#

doesnt do anything for me

torpid sparrow
#

err open gmcm menu and look for debug mode

whole prism
hard fern
whole prism
#

ohh

#

i forgot, what mod bundles that?

hard fern
#

None

verbal glacier
whole prism
#

tyyy

verbal glacier
#

np

whole prism
#

ya it workiii tyy

#

hehe i shall make events

#

and break my gameeee

nova gale
#

Well that's a neat mod

whole prism
#

does anyone know where the music files are isted on the docs

#

or in the unpack?

#

so i can see which soundtrack plays nicely with a cutscene

whole prism
#

tyyy

#

HEHEHEHEHEE

#

SO MANY AUDIOSS

#

TYY CONCERNEDAPEEE

severe cairn
#

i18n for events are cruel and evil...

whole prism
severe cairn
#

oh they can be 😭 especially with the forks and questions and question forks

whole prism
#

i ddint think of forks

#

and questions

#

😨

severe cairn
#

and queries...

#

and sometimes the dialogue repeats and i dont want a translator to deal with that so i have to find the repeat...

#

god it took me hours to go through the whole event lmao 😂

#

if its a smaller one tho it should be easy enough

whole prism
#

we're getting closer

#

accidentally wrote an insanely far tile

#

with her walking through it all

#

i shall fix

#

its ok tho isnt it normal for evelyn to walk through tables? she is immortal

toxic topaz
#

she already passed on PES_Hands

keen ivy
# whole prism

Glad I’m not the only one naming my testing saves test LOL

void aspen
#

mine are always buncha numbers for every possible entry

#

farmer name farm name favourite thing

severe cairn
#

Mine are like
Scheduletime
Testing
Test
Clean
Clean2
Modtest
SDVpufferwaaah

faint ingot
#

Random question but does anyone know what "playerControl" actually does in an event script? I know it's only used in Haley's beach event with the command "playerControl haleyBeach", to find her bracelet. However I don't see "haleyBeach" anywhere else in the unpacked files.

uncut viper
#

It's used in several places, not just Haley's event.

#

It's all hardcoded stuff in C#

#

You can't add your own

severe cairn
#

I wish I knew abt it when I wanted something similar to happen T_T

#

But well it's fineee, player control is a bit funky

uncut viper
#

Well you wouldn't have been able to do it with just Content Patcher anyway even if you did know about it

severe cairn
#

Ahh okay okay

faint ingot
#

OK thank you for the answer.

#

I'm fiddling with what to do to conclude my passive festival. It will be a murder mystery event where the player has to get clues from villagers about the identity of the criminal, and will find and retrieve the fictional murder weapon.

#

I guess I could have the event trigger whent hey have the weapon and have a dialogue fork where they identify the killer but I wish there was a more 'actiony' way to do it

#

Like the guy running the event could give them an 'accusation object' to give to the killer, but I don't want the player to have to track them down on the map since they will have been doing that all day already

#

And I don't want to edit schedules because if it results in them walking through walls that will ruin the whole thing

toxic topaz
#

Does anyone know the best way to go about recreating the sandstorm effect from botw using C#?

I managed to make a few particles drifting across the screen to imitate wind blowing and everything. But it looks kinda crappy lol. Id imagine I’d need to draw a sprite/animation thingy similar to the water texture that’s in the game already

verbal glacier
#

There's an update to the mod weather wonders in the works which will feature a sandstorm, you might be able to implement this in your mod

uncut viper
#

You are not allowed to just take Weather Wonders' implementation as it is not open source.

verbal glacier
#

oh

brittle pasture
#

though that's a content pack for Cloudy Skies right

uncut viper
#

It is

brittle pasture
#

so you can make a content pack for the underlying framework

proven spindle
faint ingot
#

Possibly, I will give that some thought

scenic ferry
#

I suspect I have done something silly

Been editing my shopdata and now my closedmessage isnt workin, it just opens the shop with no owner

#

past 8am works as intended

proven spindle
scenic ferry
proven spindle
#

How about setting specific close times? TIME 600 800 and TIME 1400 2600

#

And give each entry its own Id field

scenic ferry
#

still just opens anyway ;-;

proven spindle
#

What if you set the name to just 'None'

scenic ferry
#

nope :')

#

man at this point im just going to abandon a closed message and lock the doors regularly

brittle pasture
#

can you verify with a patch export that your code is saved

scenic ferry
#

eyup, exported data/shops and like, it looks correct there

#

im sure im missing something silly

verbal glacier
#

i think you might be missing a ] to close the dialogues

#

oh wait i just saw in the other sreenshot nvm

scenic ferry
#

all good lol

latent mauve
#

I feel like using AnyOrNone AND None will cause conflicts?

scenic ferry
#

been trying both in any variation i can think of, initially had it all set to AnyOrNone but no dice

latent mauve
#

I feel like one should probably have a Condition on it or something, but I could be mistaken.

scenic ferry
#

they all have conditions set

latent mauve
#

Also, this might be another one of those situations where the list goes from the top to bottom until it finds one that meets the condition, so if you aren't seeing the conditional ones, that may be why?

scenic ferry
#

Its specifically ClosedMessage that hasnt been working - everything else works fine :')

proven spindle
#

What times do you have set in the openshop action?

latent mauve
#

ohhhh

#

well

#

"If the selected entry sets this field, the shop is closed regardless of any other fields or whether the shop owner is present. When you set the Name field, that affects whether this entry is selected (i.e. whether the shop is closed)."

scenic ferry
#

I have no times in openshop action, so it should be "open" 24 7

latent mauve
#

That is for the ClosedMessage field, by the way

#

So uh, you might need to REMOVE the conditions and apply them to ClosedMessage for at least one entry.

#

to properly check

#

oh, wait, just saw your above message

#

Saying you don't have any Action Open Shop conditions

scenic ferry
#

i feel like im playing a game of spot the difference going between the wiki and what I have

brittle pasture
#

and you dont have any "shops always open" mods?

scenic ferry
#

nope

brittle pasture
#

and the action refers to that shop id?

#

stupid questions i know

latent mauve
#

so here's an example from the vanilla files: { "Condition": "SEASON_DAY Winter 15 Winter 16 Winter 17", "Portrait": null, "Dialogues": null, "RandomizeDialogueOnOpen": true, "ClosedMessage": "[LocalizedText Strings\\\\Locations:Desert_Trader_Closed]", "Id": "Closed", "Name": "AnyOrNone" },

#

It's right up at the top as the first entry under Owners, so that condition is checked first (for the Desert Trader).

torpid sparrow
#

ive not been able to get closedmessage to work either

#

i know for sure ridgeside's pika closedmessage works maybe that will help

scenic ferry
proven spindle
#

This is what I have for one of my book fair shops:

"{{ModId}}_NonfictionShop": {
"Id": "{{ModId}}_NonfictionShop",
"Owners": [
{
"Id": "{{ModId}}_Open",
"Name": "AnyOrNone",
"Dialogues": [],
"Condition": "TIME 800 1700",
},
{
"Id": "{{ModId}}_Closed1",
"Name": "None",
"Condition": "TIME 600 800",
"ClosedMessage": "{{i18n:Si.BC.BFNotBegun}}",
},
{
"Id": "{{ModId}}_Closed2",
"Name": "None",
"Condition": "TIME 1700 2600",
"ClosedMessage": "{{i18n:Si.BC.BFEnded}}",
},
],
"Items": [

Along with the action:

OpenShop {{ModId}}_NonfictionShop none 600 2600 57 24 1 1

scenic ferry
#

I tried setting it to be closed from 600 to 800 and 1400 to 2400 but it did not appear to do anything so I set it back to !800 1400

#

past 8am, works flawlessly
before 8am, opens with no dialogue and no owner, completely ignoring the ClosedMessage

latent mauve
#

What does this parse out to? {{i18n:VaelShopClosed}}

brittle pasture
#

yeah by all accounts your code is correct

#

can you show log just in case

latent mauve
#

I am wondering if your i18n string is invalid somehow

proven spindle
#

If you're patch reloading to test the changes try sleeping and or closing/reopening the game as well

scenic ferry
whole prism
#

Events are going very well hehe

#

wasnt too bad to learn

#

...learn basic events at least

#

very, very basic

marsh reef
#

wsp chat

whole prism
#

wsg

scenic ferry
marsh reef
scenic ferry
torpid sparrow
#

ur not pure of heart /j

latent mauve
brittle pasture
#

and your log just in case

scenic ferry
#

im so sure im just missing something small somewhere and i am goin to scream

#

will do gang

marsh reef
#

the other ones work?

latent mauve
#

well, we can't really offer any other suggestions until we see the log and the i18n, because as stated, the code looked correct.

marsh reef
#

maybe bro had to afk rq dw

latent mauve
#

(not trying to be rude, just don't want him getting sidetracked since this is the second time Selph asked for a log)

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 13.4.0, with 9 C# mods and 2 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

modern mantle
#

Is this enchantment (from Strings/EnchantmentNames) unused in vanilla?

scenic ferry
#

so sorry i straight up missed selph askin for the log before oh dear

brittle pasture
#

it's fine haha
everything unfortunately looks in place

scenic ferry
#

sobs

latent mauve
#

and you tried to interact with the shop during the session this log was taken from?

scenic ferry
#

yep

latent mauve
#

oof

scenic ferry
#

i appreciate yall doing your best at least so i know im not going crazy lmao

#

i guess ill abandon the closed message for now as annoying as that is

proven spindle
#

Dumb suggestion what if you give the shop entry itself an id

"{{ModId}}_VaelShop": {
"Id": "{{ModId}}_VaelShop",
"Owners": [

brittle pasture
#

as a last ditch I'd request the mod file so I can test it myself but I'll not be home for another 5 hours SDVpufferpensive

proven spindle
#

And make these ID fields case sensitive ('Id')

#

"ID": "{{ModId}}_VaelShopClosed",

latent mauve
#

one last possibility, you have some overlap between your !TIME and TIME conditions on two entries, could maybe remove the overlap?

scenic ferry
#

o7

#

alas: Gave Ids, changed the capitalization, and removed the condition, no dice

uncut viper
proven spindle
#

That's why it was a dumb suggestion lol

proven spindle
scenic ferry
#

kind of, it was working when I had it set up as a LivestockBazaar shop - but I decided to change it over to a vanilla shop and since then, no dice

latent mauve
#

Oh, so it's never worked as a vanilla shop then?

whole prism
#

2 out of 3 cutscenes done :3

latent mauve
#

Possibly irrelevant, but I did notice that the Night Market does this silliness for their closed condition instead of negating the TIME GSQ: TIME 0000 1659

scenic ferry
#

the closedmessage specifically hasnt worked vanilla yeah

#

oh lord

latent mauve
#

So that'd be TIME 1800 2600 and TIME 0000 759 for the equivalent of yours?

scenic ferry
#

yes but I have reason to believe the condition is not actually the issue

For science I tried removing the condition entirely and the closedmessage still does not work

latent mauve
#

gotcha

#

and your action is just Action OpenShop <the shop ID> ?

scenic ferry
#

yep

latent mauve
#

hmm

scenic ferry
#

as far as I can tell, with no conditions, and it being the first owner entry, there is zero reason it should be failing 😭

latent mauve
#

Just to rule out absolutely everything, can you comment out the other owner entries?

#

If it's the only option, does it still fail?

#

How stubborn is this closed message

proven spindle
#

Another test to try, does it let you have multiple conditioned entries while the shop is open? like ' TIME 800 1000 RandomDialogues '"dialogue1" "dialogue2"' ' ' TIME 1000 1400 RandomDialogues '"dialogue3" "dialogue4"' '

scenic ferry
latent mauve
#

woooow

#

and you've patch reloaded in between?

scenic ferry
#

yep :')

marsh reef
#

cody should i get carne asada fries?

scenic ferry
scenic ferry
marsh reef
#

aight

void aspen
#

I don't need to do a location entry for something ill use to overlay on vanilla map right

#

only editmap

scenic ferry
#

believe so

latent mauve
#

Location entries are for brand new locations

#

so entire maps

proven spindle
# scenic ferry i honestly dont know how I would implement that - dialogue (and randomdialogue) ...

{
"Name": "{{ModId}}_Vael",
"Id": "{{ModId}}_VaelTendingShop1",
"Condition": "TIME 800 1000",
"Dialogues": [
{
"Id": "{{ModId}}_VaelItemShop_Dialogue",
"RandomDialogue": [
"{{i18n:VaelShopOpen1}}",
"{{i18n:VaelShopOpen2}}",
"{{i18n:VaelShopOpen3}}"
]
}
]
},
{
"Name": "{{ModId}}_Vael",
"Id": "{{ModId}}_VaelTendingShop2",
"Condition": "TIME 1000 1400",
"Dialogues": [
{
"Id": "{{ModId}}_VaelItemShop_Dialogue",
"RandomDialogue": [
"{{i18n:VaelShopOpen4}}",
"{{i18n:VaelShopOpen5}}",
"{{i18n:VaelShopOpen6}}"
]
}
]
},
And then add some random i18n entries for dialogues 4-6

modern mantle
#

Starting on a Welsh translation mod for fun, and. This one's a bit unfortunate

proven spindle
scenic ferry
#

ah, I know its reading the conditions fine, since the other owners - Vael and AnyOrNone - both only work during their conditioned time

tranquil olive
scenic ferry
#

Did you ever get yours working for Evelyn?

tranquil olive
#

mhm, aba helped with that

latent mauve
marsh reef
scenic ferry
#

added the 600 2600 open times to the openshop action yeah

marsh reef
#

600?

latent mauve
#

600 2600 means always open

#

So that's bad

marsh reef
#

If you want it to be 8 that’s 800 no?

latent mauve
#

800 1400 is probably what you actually wanted.

scenic ferry
#

for the closedmessage to work the shop needs to technically be open

#

but yes I could also just close it normally and have no message

marsh reef
#

🙂‍↕️ if you do a normal locked door tile action it says it’s only open blah blah just not specifically vael

latent mauve
#

Well, it's not a door action

proven spindle
#

Maybe you could do an action message for the times it's closed instead. That really shouldn't be necessary tho

marsh reef
latent mauve
#

Action OpenShop is the counter.

proven spindle
#

What if you don't have any owners? Could it be reacting to the npc just being in the vicinity?

scenic ferry
#

the npc is not in the vicinity i fear

marsh reef
#

What if you’re the owner

#

😨

scenic ferry
#

what if im the owner of the shop

#

no youre so right

marsh reef
#

😂

scenic ferry
#

at this point its straight up sunk cost fallacy of how long ive spent trying to get this to work
Like its not really a big deal if theres no closed message

proven spindle
#

Swap the owner entries order maybe? Put the 'shop closed' entry at the bottom of the list

#

No but you see, you've got us intrigued now

scenic ferry
#

haha im glad im not alone at least in this insanity

proven spindle
#

There is no better way to learn to mod than to go mad debugging something

patent lanceBOT
strong kite
#

Alright I'm not really comprehending what I'm looking for from the wiki so I'll ask here. How do I add a GSQ for season ON TOP of the random chance? Like how would that look? do I use just a space, a comma, a slash?

proven spindle
#

"Condition": "RANDOM 0.6, SEASON Summer"

#

(assuming I'm understanding the question right)

royal stump
#

in this case "If RANDOM 0.6, SEASON Summer ## or some such
but yeah, GSQ queries are separated by commas to indicate "A and B and etc"

devout otter
strong kite
#

Ahh, alrighty! Ty both!

uncut viper
royal stump
#

...oh, yeah, if those are all summer, it'd make more sense not to staple it onto the randoms

strong kite
#

But the job is already done LUL

#

But yeah uhhh I should probably do that instead lol

#

I would've been upset if I hadn't used the replace function

royal stump
#

yeah, that'd check the GSQ once for every action being performed, so it's worse for performance than just putting it in "Condition"

proven spindle
devout otter
#

-1 is basically omitting the start/end times if you want to determine the owner tile area.

royal stump
#

so the defaults for all the OpenShop stuff, if you don't provide them, are null for the direction (same as "none" or any other not-direction) and -1 for all the others
in the times' case, it works like this

if ((openTime2 >= 0 && Game1.timeOfDay < openTime2) || (closeTime2 >= 0 && Game1.timeOfDay >= closeTime2))
//then it's closed```
i.e. it won't check the open and/or close times if it's negative, which is about the same as 600 2600, time mods aside
devout otter
#

My speculation is that the shop tile data having no determined owner tile area is what makes the closed message not work when the owner's name is AnyOrNone. (but of course, I don't actually know anything)

proven spindle
#

Hmm so interpreting that with what the wiki says, if the owner is anyornone and there's no usable npcs in the area (since wiki says it'll check the whole location if owner tile area isn't set in openshop), then it'll fail?

devout otter
#

Maybe. I have no idea what the logic is. Just that it somehow works when I do it like that. 😅

strong kite
#

I'm really tempted to create forage in my custom location but thinking about it I'll probably need to figure out how to make which tiles possible for forage to spawn on and THEN figure out what forage would actually spawn there HehSweatCloseup

royal stump
#

SDVpufferthinkblob so I think the OpenShop mention on Modding:Maps is a bit vague, and Modding:Shops is technically wrong? the latter says this:

When searching for an NPC, each entry checks either the [owner tile area] from the Action OpenShop tile property (if set), else the whole location. If no entries are matched, the shop isn't opened.
but when OpenShop is used with a blank (or -1) owner area, it opens the shop menu with forceOpen set to true, which I think just kinda skips all entries with ClosedMessage and uses an open one, or if all else fails, just opens it with no NPC

#

whereas using a rectangle of 0 like Dolphin mentioned means it just checks an area of 0 tiles (and still checks closed messages that way)

scenic ferry
#

hmm- okay, so, if I just set the area it should theoretically work? On it

proven spindle
royal stump
#

should be fine that way, yeah, it's just a bit weird to document

#

I suppose the "searches the whole location" part in the shops doc is technically true? it just notably ignores closed entries and doesn't require an NPC (or matching entry at all)

scenic ferry
#

holy crap, never been so glad a shop is closed in my life

#

ty so much!! Thrilled we finally figured it out

I think the wiki is definitely in need of some rewording then? on Maps, "[owner tile area]: if specified, the tile area which must contain one of the shop owners for the shop to be available. For a custom shop, these are defined by its Owners field. This must be written as: <x> <y> <width> <height>." implies that the shop wont open if it doesnt find an owner in the target area, which seems misleading?

proven spindle
royal stump
#

yeah, using all -1s for the area or just not providing it = force open mode

#

(only using some -1s throws an error)

#

I think it will grab a valid NPC if your owners entries define one, but it'll ignore any entries with a close message & eventually just give up & open with nobody

#

it's a bit weird to trace & I'm about to fall asleep, but that seems to match the behavior anyway, and I recall people going over this a while back

#

(mistook it for a .16/1.7 bug or something, but I probably misremembered)

uncut viper
#

Iirc from many past times of people also getting confused with it, I think it is technically documented correctly, but the feature itself is just really weird and unintuitive

#

I could be wrong but that's what I recall

torpid sparrow
#

Does the remind me command work here?

#

I wanna look into this tmr

royal stump
#

I didn't parse the maps/shops articles as mentioning the force-open logic, but yeah, it's hard to describe at any rate

torpid sparrow
#

And hopefully also be successful SDVpuffersquee

royal stump
#

yeah, that command should work here

torpid sparrow
#

Remind me to look at closedmessage stuff in 18 hours

patent lanceBOT
#

ooo not sure if I can count that high but I'll give it my best shot!!! (#7147438) (18h | <t:1776360379>)

proven spindle
#

I guess that best place to mention it would be under openshop's owner tile area section, maybe something like 'if using closedmessage as one of the owners, set these parameters to zero even if not using them to avoid a forceopen shop'

#

The fact that action openshop needs to be open during closedmessage hours could also be clarified better

torpid sparrow
#

that’d be rly helpful

proven spindle
#

(I can add something to that effect now since I've got the wiki open but feel free to reword it when you look at it tomorrow @torpid sparrow SDVpufferheart)

torpid sparrow
#

I haven’t read the full discussion here so I’ll look at the wiki and try to fix my shop tmr and if it works then yay!

uncut viper
#

I would just advise to make sure you are 100% confident about how specifically the entire command works before editing the wiki to say how it works

strong kite
#

Where are the vanilla bundle icons located? I found a set in LooseSprites but this def does not include all of them..

#

I seem to have found the remixed bundles icons but not the base icons

#

Omg okay I found them I was NOT expecting googling it to help

void aspen
#

Im gonna finish my sprite finder one day

proven spindle
# proven spindle (I can add something to that effect now since I've got the wiki open but feel fr...

(Thinking out loud here, feel free to critique)

Current wiki text under OpenShop:

[open time] and [close time]: the start & end times in 26-hour format when the shop is available. Interacting with the tile outside those times does nothing. If omitted, the shop will be open at all hours (however it is possible to close it using a ClosedMessage in its Data/Shops entry).

Going to change 'available' to 'interactable' since the former implies 'shop is open'.

'however it is possible to close it using a ClosedMessage in its Data/Shops entry' being after 'If omitted, the shop will be open at all hours' implies that the ClosedMessage part applies specifically when the open and close times are omitted, so that needs to move.

New text proposed:

[open time] and [close time]: the start & end times in 26-hour format when the shop is interactable. During this time, the shop can be closed using a ClosedMessage in its Data/Shops entry. Interacting with the tile outside of [open time] and [close time] does nothing. If omitted, the shop will default to being open at all hours.

proven spindle
# proven spindle (Thinking out loud here, feel free to critique) Current wiki text under OpenSho...

More current wiki text under OpenShop:

[owner tile area]: if specified, the tile area which must contain one of the shop owners for the shop to be available. For a custom shop, these are defined by its Owners field. This must be written as: <x> <y> <width> <height>.

What's needed: if omitted, shop will ignore any closedmessage owner entries and forceopen even if no viable npcs around.

New text proposed:

[owner tile area]: if specified, the tile area which must contain one of the shop owners for the shop to be interactable. For a custom shop, these are defined by its Owners field. This must be written as: <x> <y> <width> <height>. If omitted, the shop menu will force open regardless of whether the shop owner is present and skip any Owners entries containing ClosedMessage.

faint ingot
#

I should know this but it seems #$e# can't be used in conversation topic dialogue? It didn't resume after the first part when I tested just now.

proven spindle
faint ingot
#

I thought so too maybe it was just a bug when I tested it.

uncut viper
#

Once you talk to someone with an active CT, the CT dialogue is marked as seen already. It won't be an option when you talk to them again

#

So further dialogue boxes won't get it

faint ingot
#

Ah OK thank you

#

I guess if you really really needed to replicate the functionality you could add $action AddConversationTopic TopicID_Part2

faint ingot
#

huh when I tested my character did first part of CT dialogue, then did regular dialogue, then nothing. When I changed the #$e# to #$b# it did all three parts without breaks as expected

#

I guess I'll do some more testing thanks

marsh reef
orchid glade
# proven spindle (Thinking out loud here, feel free to critique) Current wiki text under OpenSho...

Moving the note about ClosedMessage makes it less clear to me, and doesn't make sense to put right in the middle of a description of how to use [open time] and [close time].

It also makes it sound like you can only edit a Data/Shops entry during the open hours / or use ClosedMessage when open and close time are specified (and NOT when they are omitted and the shop is always open). I assume from the original description that ClosedMessage acts as a sort of override of OpenShop? (if not, then ignore my critique).

I would propose an order that:
1 - describes [open time] and [close time]
2 - describes behaviour if these values/OpenShop is omitted (not sure which)
3 - mentions that ClosedMessage will result in closing the shop regardless of 1 or 2 (assuming that's the case)

proven spindle
#

We've had a group going for the better part of the day (see CodysOasis's messages) trying to debug their shop bc of that exact issue lol

#

So closedmessage needs to be used during the openclose times specified, with an owner tile area specified (even if it's just zeros)

orchid glade
#

(your first edit about [open time] and [closed time], not that one about [owner tile area].

proven spindle
#

openshop has 8 total param areas: shopid ownerdirection opentime closetime ownerx ownery ownerwidth ownerheight. To define the last 4 params, something needs to be in the spots for the first four params. it could be 600 2600 (or -1 -1 as Dolphin Is Not A Fish found out) but it does need something there, or the game won't know that the last 4 params are the owner tile area

#

If opentime and closetime are omitted, closedmessage also won't do anything

devout otter
orchid glade
#

Ahh I see

proven spindle
#

Because the openshop action which calls the shop id containing the closedmessage won't be active

#

I appreciate you asking about it! Helps with making sure I'm considering all angles SDVpuffersquee

orchid glade
#

Yes, I'm definitely commenting as a person interpreting what is written rather than understanding the underlying mechanic

orchid glade
proven spindle
#

That's how most people are going to be reading it, so definitely important

uncut viper
#

Important to remember though that's how it works with everything that has multiple optional things. Whether it be a map action, trigger action, event command, etc.

#

(Unless specifically said otherwise. I think theres a GSQ about museum donations that is a bit of an outlier)

proven spindle
#

That was my thinking about not originally mentioning that all params are needed to get to owner tile area (since it's so common), but now it's got me wondering if that's actually mentioned anywhere at all in the modding docs

#

It's not necessarily clear to new modders who don't have a programming background

strong kite
#

I think the biggest issue with having 8 bundles to complete is having to come up with 8 big and just rewards for it like the CC bundles

orchid glade
#

Oh yeah, it does currently say "All arguments besides the ID are optional"

strong kite
#

Although I've actually got 4 ideas already which is pretty cool!
implementing them might be a different story-

orchid glade
#

Which I understand means you can omit them all...

#

And I would kind of wonder how to use if you wanted to omit one in the middle. I probably wouldn't assume I could leave one in the middle out, but there's no guarantee lol.

devout otter
#

I do wonder why it specifically says that for the OpenShop action, considering that it's far from the only one where all arguments besides the ID are optional.

uncut viper
#

Which is not true of every thing with optional arguments.

#

(Or you are the aforementioned gsq outlier which will check both variants. As well as a couple event commands maybe like viewport. As always there is the implied "unless it specifically tells you that you can do something else")

orchid glade
#

Ah, so then listing a value that it knows to ignore would be helpful like -1

#

This is why I love when there's a usage example

proven spindle
#

I think we just don't really have it specified anywhere not to skip over values. A new modder can see

OpenShop <shop id> [from direction] [open time] [close time] [owner tile area]
and
All arguments besides the ID are optional
And say 'I only want open close times', which results in
OpenShop {{ModId}}_shopname 800 1600
And then wonder why they're getting an error (bc they skipped [from direction])
(This example is disingenuous bc openshop [from direction] defines in the wiki that setting it as 'none' disabled it, but that's not always the case)

devout otter
#

Probably a section at the top of the section like "<> is compulsory, [] is optional, but you can't skip" would be helpful.

orchid glade
#

So it's not so much "all arguments besides the ID are optional" and more "each subsequent argument beyond ID is optional"

devout otter
#

I'm still iffy about having that statement specifically for OpenShop because it's potentially misleading like "oh so it's not the case for all other actions"?

proven spindle
proven spindle
orchid glade
#

I was reading the wiki just a couple of days ago and wondered what <> and [] meant in that context. But I also thought I had read it somewhere in the past

devout otter
proven spindle
#

I agree, but I think the reason it's there right now is specifically bc it doesn't seem to be written anywhere else so I'm hesitant to take it out till there's a good place for it to go

strong kite
#

I've come up with rewards for every bundle in my mod except for the final bundle... I'm really not sure what reward would be good or even be NECESSARY at this stage of the game because this is supposed to be end game content

toxic topaz
#

i mean, stardrop tea is always a good reward

strong kite
#

Uhhh I don't.. think so in this case? HehSweatCloseup

#

This the kinda bundles that would require stardrop tea as something you need to put into it (not actually but I haven't decided yet)

uncut viper
#

one single copper ore

#

as a reminder of where you came from 😌

#

and how far you've come

strong kite
uncut viper
#

that's also good, I would enjoy that

#

Stuff you can't get by other means is nice, then it means whether its end game or not doesnt really matter

strong kite
#

I was also considering the ability to have Darkrai as a roommate but unironically that feels really boring and pointless if you have a spouse

uncut viper
#

And you've gotincentive to actually do it

calm nebula
#

A picture of Darkrai

#

A small master ball model

toxic topaz
#

Actually, make the reward a painting of something

#

But poorly drawn

strong kite
#

Honestly I think that's just the best idea

#

I love the thought that the penultimate reward is just infinitely better than the final reward though LUL

brave fable
#

if you want something endgame there's only a handful of superpowered options like magic rock candy and stardrop tea, otherwise you can always make something lucrative or ludicrous yourself

strong kite
#

Though tbh I think the other rewards I've come up with are not balanced in the gosh darn slightest

brave fable
#

one dainty kiss from a nightmare being

strong kite
uncut viper
#

exclusive prismatic darkrai hat

strong kite
#

Balance is gonna be so screwed but honestly I don't know if I mind LUL
Some of these are supposed to be available only late in the game anyway

nova gale
#

Balance is a bit of a fools errand anyway once folks are modding

brave fable
#

for desert bus i made the rewards cosmetic (pam outfit), convenient (free bus tickets), and ridiculous (cursed desert bus arcade machine)

#

i think pretty much all of those options are good at any stage of the game

uncut viper
#

fashion is the true end game of many games

void aspen
#

Clothes that give buffs for as long as you wear it

#

Basically better boots

strong kite
void aspen
#

It's not vanilla

brave fable
#

but also desert bus isnt exactly a paragon of normal modding or even remotely popular

void aspen
#

Except boots which only provide immunity

strong kite
#

Yeah like stat boosts from reading a book could be a good reward! I kinda wish I thought of that 😭

void aspen
#

And armor

#

Okay maybe they do

#

Considering how things work

devout otter
brave fable
#

how about Instant Perfection

void aspen
#

Oh also cinder boots have a silly sound

strong kite
#

For context, here's my ideas in order.
The first actual reward is a building that goes on your farm that lets you teleport into the rift without having to go to the Wizards Tower

void aspen
brave fable
#

if you already have perfection you can get Double Perfection and that makes everyone else feel bad

void aspen
#

Lol

uncut viper
#

You can't do anything that you couldn't already do without the book

#

So basically just buffs

strong kite
#

Hey a permanent speed boost is a permanent speed boost

void aspen
#

😭

strong kite
#

From both vanilla and my mod

#

Then an item shop that sells things like seeds at better prices than Pierre's, unique seeds not sold elsewhere, and some other special things

void aspen
#

I wanna make a mod that will add mana and spells as another way to do damage and stuff

uncut viper
#

Bear in mind that the berries thing won't apply to berries that already exist in the world once you get that power

void aspen
#

That's something I'll probably draw and never code cuz I don't know how to

strong kite
uncut viper
#

Not a huge deal, only affects one harvest

void aspen
#

But having a spritesheet ready hopefully will motivate me

uncut viper
#

Or well

#

One harvest assuming the player didnt sell it asap

#

Actually idk why I even assumed they were a crop

#

Are players meant to keep berries on hand?

strong kite
#

Berries are indeed a crop

uncut viper
#

Of course, I totally knew this

void aspen
#

I suppose using some framework for weapons and then I'll just clay something out of it with some pixel magic of mine

uncut viper
#

BETAS can actually update the price of existing berries, but I wouldn't strongly recommend it unless you really cared

strong kite
#

The next reward is access to the "Aether" which will be an area above the Rift that acts as a warp hub to many areas in the game. This is a reward from completing a bundle with stuff from ginger island so it's supposed to only be post CC for reference

#

The reward after that is a bunch of really powerful recipes with some insane buffs (I have a habit of making totally busted foods :3)

#

And then the penultimate reward is access to the "Abyss" which will be an area below the Rift that spawns unique forage only found there that's INSANELY valuable

#

The only other reward I've been thinking of is another farm area like Ginger Island but honestly if that's the final reward I'm not sure what you'd need that space for that late in the game?
So.. yeah something cosmetic is definitely the way to go

#

So basically I have a LOOOT of work to do and Tomodachi Life releases tomorrow 😭

void aspen
#

Deltarune chapter 5 TOMORROW

#

I gotta finish my deltarune inspired mod already but I'm so tired

toxic topaz
#

mmmmm, okay i really want to get this sandstorm vfx done PES_Hands i wonder if i can just do something where i make an animated sprite of sand going across or whatever...

#

i want to get it like that botw sandstorm if you know what i mean

orchid glade
toxic topaz
orchid glade
#

Well I don't know how lighting is applied in the game, like asset-wise. But from a visual perspective I'd say as well as the sand pixels flying around, having a colour mask with varying degrees of alpha is what you'd need.

#

Like how green rain day makes everything sort of green. Is this a weather or an event?

#

Or, a location

toxic topaz
#

its a location

#

think like, the deep desert

orchid glade
#

So there will always be sandstorm happening?

toxic topaz
#

yes at all times MeguNod

void aspen
#

Map property

#

I forgot

#

Is it day tint

toxic topaz
#

ambientlight

void aspen
#

Basically make it darkness but with yellow effect

void aspen
toxic topaz
#

true yea aPES_Think ill try to play with that aswell

void aspen
#

It's gonna be visible around you with a light ring or torch

toxic topaz
#

but that alone cant give the sandstorm effect.

orchid glade
#

AmbientLight ?

void aspen
#

How does your particle system work

#

Texture wise

orchid glade
#

Oh I'm a bit behind

#

But you could use both ambient light and the particle effect right?

toxic topaz
#

true aPES_Think

#

and i could probably have a vignette

void aspen
#

Can particles be animated

#

Yeah they can be

#

Game has these falling leaves on windy days

#

Hm

orchid glade
#

Though ambientlight is subtractive so would make darker rather than brighter I guess

void aspen
#

I actually thing sandstorm would be good with some math noise

toxic topaz
#

ill see how it works with using ambientlight

void aspen
orchid glade
#

Oh actually it's subtractive from white, and daylight is 95, so just have a lower value than that

brave fable
#

what do you expect negative colours to do SDVdemetriums

void aspen
#

Light darkness

orchid glade
#

negative values would risk putting value over 255 which is impossible

void aspen
#

Sometimes not following the rules is what makes our world a magical place

#

Breaking laws of physics

toxic topaz
#

hmmm did that and looks like nothing PES_Think

void aspen
#

70 80 170

#

That's greyish blue me thinks

toxic topaz
#

... im not noticing anything

#

does ambient light not work outdoors?

void aspen
#

It should work all things considered

#

I think you did rgb the other way around

toxic topaz
#

wym?

#

i did the 70 80 170 like you said

#

it just looks like this PES_Think exact same as normal

void aspen
#

No that's the other thing, I just calculated your color