#making-mods-general

1 messages · Page 518 of 1

brittle pasture
#

but I'm a strong proponent for quest framework unification so I might be a little biased

#

like there's no difference between a quest that tells you to fish 20 tilapias and a special order that tells you to fish 20 tilapias, aside from the latter having a nicer format to work with

golden basin
#

but the way i have my quest written its not possible...

#

i have my quest written in a way that randomizes things sort of infinitely

brittle pasture
#

with CP tokens? you can do that with SOs too

golden basin
#

see

hard fern
golden basin
#

is randomly chooses a person, objects, reward etc

scarlet warren
#

But.... like... they all have that comma? Why just line 30?

royal stump
#

tbh when SOs became a thing, I figured they'd convert quests to it later SDVpufferdizzy
Quest Framework was available back then too, but hard to maintain with all the changes iirc
(also I may have misread your post a bit, just got back)

brittle pasture
#

SOs even have native randomization built in so you can use 0 tokens if you want
but I see why you would not want to convert that again

golden basin
#

it was hellish creating yeah

calm nebula
#

Wasn't that QF in 1.5

#

Anyways

golden basin
#

if i knew csharp id just code it in but oof

calm nebula
#

You're nominated, DH

blissful panther
calm nebula
#

I expect to see it on my desk on Wednesday

blissful panther
#

I will make QF Redux within five years unless a replacement happens, guaranteed!

golden basin
#

i mean i guess i could rewrite my code...

calm nebula
#

I guess i did not specify which Wednesday

golden basin
#

is there a mod example esca for your frame work for the board i learn better with examples

blissful panther
#

There are lots of Wednesdays. SDVkrobusgiggle

brittle pasture
#

hmm isnt there like a framework for interactable images (i might be hallucinating)

royal stump
calm nebula
#

My favorite is the one for the TV show

royal stump
brittle pasture
#

mount vapius has its own board as an example

royal stump
golden basin
#

so if my order type is Esca.EMP/{{ModID}}/RepeatableQuest

its that or the RepeatableQuest part?

royal stump
#

if your SOs have "OrderType": "Esca.EMP/{{ModID}}/RepeatableQuest"
then the action should be Esca.EMP/CustomBoard Esca.EMP/Fellowclown.YV/RepeatableQuest
or w/e the actual mod ID since, since the token won't work directly in a map

golden basin
#

oooo

#

thank you

royal stump
#

(oh, and yeah, true at the end for the ! part)
(I forgot it's not a separate tile property SDVpufferdizzy)

golden basin
#

no worries

#

now to figure out....randomization

royal stump
#

and for comparison, VMV has "OrderType": "Esca.EMP/MtVapiusBoard", in its orders, with Action | CustomBoard MtVapiusBoard true in the tile property
(you can omit the first "Esca.EMP" parts in the action, but I recommend leaving it so it can't conflict w/ mods)

#

Farmhouse building logic tends to be weird/unique, and Lookup Anything seems to show a blank indoors value. You could try something like this instead:

if (__instance.indoors.Value is Cabin cabin)
{ /* check cabins here first */ }
else if (__instance.buildingType.Value == "Farmhouse")
{ /* check farmhouse here */ }

or if that field doesn't work, __instance.nonInstancedIndoorsName.Value seems like it should be "FarmHouse"

golden basin
#

the fact that the speical orders require context tags only and i cant use item ids is a sin

stable grotto
#

send a log?
it doesn't matter which one you put in the query, either one should be fine but the CP one is correct

lucid iron
#

You can always use id_o_itemid

golden basin
lucid iron
#

All items get an autogenerated context tag

#

So u can use that one

golden basin
#

im gonna eat my hands thank you

lucid iron
#

U can check what tags r on item in game with lookup anything

golden basin
lucid iron
#

Yeah basically

#

Checking in game is just to validate

golden basin
#

you just saved me so much extra work thank you

brittle pasture
stable grotto
golden basin
#

testing the board now

rotund plume
#

Hello! I'm new to stardew modding and before I dive in I just wanted to check that this info is still up to date? Any new guides specifically for custom NPC/schedules & map modding?

autumn tide
#

hey! we have new resources how lol, one sec

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

autumn tide
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

rotund plume
royal stump
#

in general I think the pins are still accurate, but yeah, the modding wiki with guides is new & some of that's more specific to new modders

rotund plume
#

It even looked like the stardew wiki might be out of date so I wasnt sure

ivory plume
#

(Worth noting that all those links are in the pinned message, except for the NPC-specific links. I can add the tutorial wiki to the pinned message too though.)

royal stump
ivory plume
#

Possible draft for the pinned message, which tries to briefly summarize the difference between the two wikis:

autumn tide
#

hm, maybe specify tone and formality as well?

uncut viper
#

that edit looks fine to me

ivory plume
#

For the purposes of the pinned message, I think the important bit is "why would I click this link?". The tone is more of a style guide question when editing the wiki, it's not really relevant when a new mod author is just looking for info.

stable grotto
scarlet warren
#

Ive never tried conditions before. this is all new to me

golden basin
#

my speical order board works!!!

stable grotto
#

like for the block that doesn't patch vpr-colours you should put "HasMod |contains=grapeponta.VibrantPastoralRecolor": false as to not patch the same file twice

#

swapped the ModID for the CP one 'cause I have plans ||for easter eggs|| that involve the C# ID independently

#

works fine now

#

oh... there's two rows of pixels missing right beneath the hut that I somehow didn't catch yesterday it's a feature

stable grotto
scarlet warren
#

Ahhh, Hasmod is sperate from the ID

scarlet warren
#

ah

#

Let me see if I can edit it on my end

#

Does the default map edits really need a false-positive for your mod? What if other people are using mods from others?

stable grotto
#

?

scarlet warren
stable grotto
#

it's not a false positive

scarlet warren
#

Sorry, I probably used the wrong term

stable grotto
#

it will apply those edits for all cases except for when vpr is detected

scarlet warren
#

ah

#

because then it should switch to the vpr version

stable grotto
#

exactly

scarlet warren
#

Uhh, will it not switch to the vpr version without that? Even if it sees the mod?

stable grotto
#

it would otherwise do both

scarlet warren
#

lol

hallow prism
#

part of today's modding progress (mainly the sprite. portrait is older, was refreshed a bit inspired by airyn's salt and pepper art i saw at some point)

scarlet warren
#

Did I mention I hate code?

hallow prism
#

and a flower dance outfit (now if i can find a flower i want to add, that would be cool)

dire kestrel
#

aSDVemoteheart gorgeous

golden basin
#

for special orders, is there a way to put a custom currency as the reward

hallow prism
#

yes if it's an item

#

in which case you add it like you would for normal items, there's a field for that that i don't remember off hand, but both my order mod and VMV use it

#

i learned it from desty

golden basin
#

okay ill take a look if its okay>

#

?*

calm nebula
#

It's the same as the qi gems iirc

hallow prism
#

yes it is ok, it's why i mention it

reef creek
#

Hey I know this is a very simple question but I genuinely can't figure it out. In the event I'm making I'm trying to make the player sit at the saloon while facing the counter. what is the specific code i could use to achieve this?

calm nebula
#

You basically give the exact frames you need

#

Check out....Alex's saloon?

hallow prism
#

yeah sitting is annoying because you'll need to find the proper frame

#

wiki lists some

ornate locust
#

that's vanilla done anyway for ramp 1 (Fair1 is identical to the location normally, so that saved a bit)

reef creek
# hallow prism wiki lists some

do you know which wiki page? is it the event data because I couldnt find it on there but I might just be dumb and missing it

calm nebula
#

I wonder if there is a debug mode thing for it

hallow prism
#

so it is listed in event data info when you look at the animate command, but it is a bit hidden

reef creek
#

thank youu

frosty cairn
#

heyo, I'm working on a mod that sends out a regular series of letters and I'm sending each letter with its own trigger action - is there a better way of accomplishing this besides copypasting this block over and over again? SDVpufferowo

ornate locust
#

Do the letters need to be on specific days or are you having the letters sent out regularly starting when the person loads the mod (which may not be at the start of a save)?

uncut viper
#

also, do the letters need to be unlocked in order?

frosty cairn
#

they don't need to be on specific days, it's meant to mimic a magazine with an issue coming in every week or so

I did not think about the fact that someone may add this mod later in a save, so it probably shouldn't have these hard dates in that context

they do not have to be in a specific order - I've numbered the issues but there's no through-line story or anything

uncut viper
#

my personal choice would be to do this with a conversation topic timer

#

have one trigger action at the very top set a CT (conversation topic) for 7 days. every other trigger action below that sends a letter
each letter trigger action checks for not having the CT active. this will only be true after it expires after 7 days. if the CT is not active, then do two things: send the letter, and start the CT again

#

(you can alternatively omit the first trigger action that just starts the timer, the intent was to make the first magazine appear 7 days after installing the mod)

hallow prism
#

in VMV i used synced random, which was simple but not perfect

uncut viper
#

(but if you want them to get the first one immediately you can remove it, or change it to 4 days ,etc. each letter can use its own timing)

#

each letter can even use a {{Random}} token to decide how long to set the next cooldown for if you want

#

this method does however assume that you dont want to resend the same letter ever

frosty cairn
#

Definitely wouldn't want to repeat the letters!

uncut viper
#

makes it plenty easier then

frosty cairn
#

I'll start digging into CTs and the token and see if I can rewrite this to with all this in mind, thank you!! SDVpufferwow

golden basin
#

at first i got my special orer board working and now it just....stoppped out of nowhere

#

like its just blank now its so weird

hallow prism
#

you may not have enough orders repeatable that can be offered

golden basin
#

ooh i see

#

okay

#

hm its still not working maybe is hould take a break though

ornate trellis
#

here's a shot in the dark but you used item_o_itemID or w/e? I found for myself that SOs with that didnt work and I had to go with item_itemID instead(without the middle)

golden basin
#

interesting it was working before but ill try it

ornate trellis
#

just a random thought since it was what was the problem for me so i thought id mention it

golden basin
#

i know im pretty furstrated with it right now it was working perfectly before and then it just stopped

#

no errors either

ornate trellis
#

ye i get that, was in my case too, i was so close throwing the whole code out ngl

golden basin
#

yeah no still blank quest on the board

ornate trellis
#

damn

#

but wwhen you use commands they do work?

golden basin
#

let me test that

#

Got it workin!!!

soft lance
#

nicee!

#

for anyone here, got a quick question: https://smapi.io/json/none/4700cdaf20e64a26b24f74f63d1159c3

I'm trying to add support for a custom map, I wanted to add one of my modded fish into their ocean/water when detected, however, it seems like it does nothing, I got the right ID i used the whereis (or similar name), and checked in the code

#

Do you think I'm using the HasMod condition improperly? I'd love to know

ornate trellis
#

ohh nice, what was the issue? O:

golden basin
#

the way i was randomizing the quest id

ornate trellis
#

ohhh

golden basin
#

Im makign infintely generationing special orders

#

if you want the code set up im happy to share

ornate trellis
#

sounds neat, i am always intimidated by complicated things like that fdsfsd

golden basin
#

there we go fully functional

ornate trellis
#

I've like 2 SOs right now i should probs think of more at some point, hm

ornate trellis
uncut viper
#

there does not have to be an opposite entry

soft lance
#

ima try

#

this rq

#

ima see if it works

ornate trellis
#

inch resting thonking then again someone told me long ago which was like 1.5 so we dont talk about it

uncut viper
#

it's never been the case

ornate trellis
#

yeah i know i mean whoever told me was probs wrong

uncut viper
#

your original condition had an errant ":" though

ornate trellis
#

just mentioned 1.5 to imply how long ago it was

uncut viper
#

"HasMod:" is wrong, "HasMod" is right

#

so it was plausibly trying to use your contains as an input argument which HasMod doesn't look at

#

(it also might not have been doing that, im not 100% sure how the parsing shakes out with an empty input argument, but either way the colon was wrong and could have been messing it up)

ornate trellis
#

🤔

soft lance
#

no error, no logging, bizzare

hallow prism
#

try a patch export

soft lance
#

alr

uncut viper
#

im not familiar with fish data myself so I'm not much more help here

soft lance
#

some user requested

#

but yeah i'll do a patch export to look into it

dusk mulch
#

i had a mod idea before i went to sleep and i forgot to write it down now i can’t remember it

#

ooo i got another one

hallow prism
#

it happens, sometimes it will return once you encounter something related to it

#

note this idea now however

dusk mulch
#

already done lol

pine elbow
hallow prism
#

me : "i should add an event to character A, B or C instead of character G."
me : "let's add this event for character G!!!"

ivory plume
lucid iron
#

hm can i use modmanifestbuilder for gh workflow u think

ivory plume
#

For ModManifestBuilder, I think you put your mod info in the .csproj and it creates the manifest.json for you? As long as it uses the standard <Version> field and runs on a standard dotnet build, that should work fine with this.

ornate locust
#

SVE versions done, don't need Joja ones for this particular ramp... but I will for ramp 2, that one's going last

lucid iron
#

ah the workflow doesn't handle submodules

ivory plume
#

The default one doesn't (since the vast majority of mod authors won't use them), but it's just adding a standard extra step to the list.

lucid iron
#

yar i gotta find the magic words

lucid mulch
#

Hmm, with the reference assemblies do they also have internal methods in them?

As my monorepo has a few mods that depends on compile time access to smapi internals (and some hardlinked to cp and one hardlinked to automate)

ivory plume
lucid mulch
#

Sweet, so just a case of adding some logic to download the other mods somehow

ivory plume
#

Are they in submodules, or something custom?

ivory plume
lucid mulch
#

They just rely on hint paths into a mod folder

<Reference Include="Automate">
      <HintPath>$(GamePath)\Mods\Automate\Automate.dll</HintPath>
      <Private>False</Private>
    </Reference>
lucid iron
#

hm idk why but the Directory.Builds.props didnt work (even locally)

#

i can make it work by putting the thing in csproj tho

lucid mulch
#

My newer mods use the manifestbuilder which adds some syntactic sugar around it but automatechests is ancient

ivory plume
lucid mulch
#

I thought I read something on the action steps that it's doing direct XML parsing of the csproj not running the full tooling to find the version

lucid iron
#

i prefer to have it just in csproj anyways (single mod repo)

#

hrm it build debug

#

how do i make it pass -c Release

autumn tide
#

hey! making custom price modifiers, wanna check, do the modified prices to buy something include edits to profit made by professions?

#

(lemme know if i put that right-)

lucid iron
#

ah i just put it in the yml ok ukimasu

#

i wonder if i can make it do it only when i make a tag (probably?)

#

mod CI/CD era wew

ivory plume
#

Is there a benefit to releasing debug builds? I was just about to add --configuration Release to the default workflow.

lucid mulch
#

Tag runs of actions will have a different ref pattern you can check for

gentle rose
#

on a semi related note, is there a way for the monthly mod stats to track how many c# mods are not using ModBuildConfig? we've been noticing a rise recently (mostly from AI mods) so it would be interesting to keep an eye on

lucid iron
#

i do not release debug builds

#

some ppl do just cus they didnt bother with having separate

ivory plume
#

I think building Release in the workflow by default makes sense, and might improve performance. The author can always just tweak the workflow if they don't want that.

uncut viper
#

dont debug builds show line numbers in exceptions whereas release builds dont, or am i misremembering

proud wyvern
#

that's unrelated

ivory plume
#

I think the default .NET build configuration might (at least in old .NET versions). The mod build package configures PDB symbols for all builds though.

lucid iron
#

oh yea what is the path in the exception

#

atm i do this to hide my file system path in release

  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <PathMap>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)/..'))=mushymato/</PathMap>
  </PropertyGroup>
proud wyvern
#

that's a thing? :O

ivory plume
#

Oh, I didn't know that was an option. Could be useful to add that to the mod build package; we don't care where the build was on the original author's filesystem, so starting at <ModName>/ would be fine.

lucid iron
#

yay

#

the only downside is that u cant use debugger on a build that did this lol, hence release only

proud wyvern
#

oh

ornate locust
#

yessss Ramp 1 complete, Ridgeside festival maps basically just change the area I fixed to look like the original for vanilla and SVE

#

556 lines of content patcher to replace one staircase with a ramp, ~that's compatibility~

gentle rose
proud wyvern
#

it would be so weird for AI to recommend manual setup

lucid mulch
#

Are the ai mods even open source to know if they used modbuildconfig or not

proud wyvern
#

ModBuildConfig has been a thing for... pretty much forever, from the perspective of AI

autumn tide
lucid mulch
#

Iirc modifiers on sell price don't affect buy price

ivory plume
# gentle rose -# <@226803198218731520> bumping this because I forgot to ping <:SDVpuffersquee:...

Not trivially; I think there'd be a lot of edge cases in trying to match mods to the mod build config package. It's also not really a good indication of AI code (e.g. the author may well create the tutorial mod or use a template, then add AI-generated code to it). The dump is public if anyone wants to try it out, but it's probably not useful or reliable enough to add it the main stats unfortunately.

autumn tide
#

gotchaaa okay

#

wanna add discounts to dwarf's shop when the player's roommated, but I don't want ppl to turn a profit on stuffs

ornate locust
#

well... alright the other ramps went really fast, guess it's just 2 now.

#

puts on hard hat

#

On the bright side, the only festival changes that touch it in vanilla are Christmas 1 and both egg festivals

#

and Halloween 2

#

where it gets spoodered

gentle rose
# ivory plume Not trivially; I think there'd be a lot of edge cases in trying to match mods to...

oh I didn’t mean it as an indicator of AI use, I was just curious about how many mods do it (I assume there were also a lot more mods that didn’t use it earlier on but adoption increased). AI use was just the context in which I first saw them (plus, I’m interested to know if AI is doing this on the basis of real mods or if it’s just the result of most c# code it’s trained on obviously not being for stardew). Interesting about the edge cases though, I kind of assumed without verifying that it would be a simple check but it sounds like it isn’t. Ty for replying though! If I ever am able to dig into the mod dump myself I’ll see if I can have a look

cedar turtle
#

So.. A cookie dispenser.
Basically, a recoloured Statue of Perfection, but it gives cookies instead.

I reckon I can just take the code from the statue and adjust the output ID and amount?
But how do I actually add the machine? I'm looking at the wiki but don't really get any smarter (nonzero chance I'm looking at the wrong place)
Ideally, the unlocking of the recipe would require having the regular cookie recipe from Evelyn. Also, for the scope creep, how would I change the output amount based on the day? E.g. more on Winter Star, or on the kids' birthdays.

hallow prism
#

machine requires both a bigcraftable, and machines rules

#

you can have a stack modifier which can use whatever condition you want, on machine side

#

and can either multiply, add, set or whatever the amount

worldly wadi
#

Hey guys can someone help me? For some reason, my npcs are not loading where I coded them to load, they are loading in the middle of the town at the same spot and are not following their schedule. Is this a compatibility issue or something related to the coding? Has anyone else faced the same problem? There are no red texts on smapi

lucid iron
#

did you give them a Home

worldly wadi
#

yes

ornate trellis
#

town is the standard fallback i think when your chosen one isnt working. best to provide log and json for people to take a look at(even if log says nothing much)

worldly wadi
#

How can I do that?

ornate trellis
#

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

ornate trellis
#

!json

ocean sailBOT
#

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

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

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

worldly wadi
#

One sec

#

Can I send it here?

latent mauve
#

Use those links for smapi.io/log and smapi.io/json to upload your console log and JSON files, and share the links to them here.

#

(we use those sites to make it easier to read and not have giant blocks of code in the chat)

worldly wadi
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 47 C# mods and 70 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

latent mauve
#

Failed loading asset 'assets/Characters/Anahi/Dialogue/MarriageDialogue.json' from SMAPI\cheshiresatelier.thtexpansion: the JSON file is invalid.

#

Can you share the link to the JSON for the MarriageDialogue patch?

#

A lot of your JSON files are throwing errors in the log for your mod, so if you can share your content.json (and any Included JSON files), that would help

worldly wadi
#

one sec

#

Is it okay to send the whole mod here?

latent mauve
#

You CAN if it's your mod, but you are more likely to get faster help if you just share the JSON file links rather than the entire mod

#

Currently it's your dialogue, marriage dialogue, Items.json and maps.json that seem to have immediate errors

#

maps.json will likely be why your NPC schedule isn't working, as the error seems to be that it can't add a warp, so you might not be adding an NPC-compatible warp (which is a Warp or NPCWarp map property, not the same thing as an Action Warp tile property) correctly.

worldly wadi
#

I'll send it here one sec

#

Imma test smth one sec

eager tree
#

does anyone know if it's possible to add animated texture to loosesprits? i want to add an animated texture to the parrot platform

scarlet warren
#

Hey weird question, but is there a way for one of my custom farms to forcibly change where Stardew Valley Expanded's nexus portal is placed?

worldly wadi
soft lance
brittle pasture
#

look into its documentation

brittle pasture
#

what's your goal

scarlet warren
brittle pasture
#

though isnt the nexus' entrance in the backwoods

scarlet warren
#

Id like to think I could add a line like, "if havemod sve, place warp nexus at xy instead"

scarlet warren
#

and its set to be where the farm totem puts you

brittle pasture
#

oh yeah i forgot about that

#

you can just follow what SVE's custom farms does probably

scarlet warren
#

Oh? One of their custom farms have a unique spot?

#

I havent tried any of them since they're all replacers, and I use my own T.T

brittle pasture
#

all of vanilla + SVE's farms put the nexus warp point near the vanilla totem, while if you're playing another custom farm it puts the warp on the grandpa's shed map

#

SVE does have a config option that allows the user to specify a custom on-farm warp point

eager tree
brittle pasture
#

so how SpaceCore's feature works is that you have to specify the exact area that the game uses (ie. you can't animate the entire texture)

#

so if the image has 4 segments that are used separately you need entries for each of them

eager tree
#

ohhhh makes sense, thank you

brittle pasture
#

in this case for the main platform there are 2 rectangles: (0, 0 ,48, 68) and (48, 0, 48, 68)

#

(x, y, width, height)

#

the shadow is (48, 73, 48, 32)

#

the debris in the bottom left doesnt look like it's used

eager tree
#

thank you so much!! SDVemoteheart

#

you have no idea how many hours i spent trying to make this work 😭 this helps a lot, truly

red heart
#

Is this an ok channel to share mod ideas?

vernal crest
#

For a mod you're planning to make?

red heart
#

Yeah

#

I had it today and am planning on doing it in my free time

mellow laurel
#

hi @lucid iron something is exploding with HMK and Mirren (it was a phone call), I reported it there and they said it's on your end: https://smapi.io/log/9665e67c588548808847305af6bc72db

game didn't crash, just much red and I closed out and stopped answering the phone after restarting. (just like irl)

ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 191 C# mods and 373 content packs.

vernal crest
pale river
#

i dunno, I found sprites in tilesheet

#

oh you mean the colour over the screen when it rains I thought you meant the rain was the rectangle drawn over and over again for some reason, sorry for the random ping

tiny zealot
#

don't worry about it. the particle effects when farmer eats/drinks something are drawn using a particular white pixel in the moon on cursors.png

mellow laurel
#

so fast aSDVpufferfast and now log menu is mad about the phone call instead but I assume that's on their end? either way ty SDVpufferheart

lucid iron
#

well idk why the speaker is null...

#

that seems kinda weird

cedar turtle
nimble karma
#

Anyone know if it’s possible to give x object the ability to keep soil around it watered like a river would?

#

I know there was an old Wetlands mod on a Korean site for 1.5 but I don’t know if that’s still a thing

calm nebula
#

a building yes

brittle pasture
#

MMAP has a "treat furniture has having tile property" feature

#

so you can make furniture that has a 'Water'

brave fable
cedar turtle
#

Mhmm. I figured. I was more planning on asking how it all works :)

ivory plume
nimble karma
lucid iron
#

well it's a path so it does what paths do

nimble karma
#

The reason I’m asking is because the first original mod I have planned is a tree that usually lives partially in water on coastlines

#

So I’m trying to brainstorm ways to have it be in water (if that’s possible)

#

I mean, I might just have to put some on the coast of the beach and say good enough lol

pale river
#

how are bridges coded? Since they're buildings on the map

brave fable
#

no particular code, just very particular tiles used in very particular places with the appropriate Passable and Water tile properties

#

in some places, some invisible Buildings tiles bordering as well

ornate locust
#

HECK

#

FOUR, George goes up FOUR staircases to get to the festivals in Ridgeside

#

I forgot the bus access was a staircase SDVpufferchickcry

ivory plume
#

(George doesn't forget arm day.)

autumn tide
#

(also as a disabled person I love that you're making the valley accessible SDVpufferheart)

lucid mulch
#

I mean in vanilla george would need to solve staircases in some capacity to get to the commmunity centre

autumn tide
#

i like to headcanon that george can teleport

#

like the wizard

ornate locust
#

I'm putting ramps there too

#

so Alex doesn't have to lift his whole grandpa and wheelchair over his head to get him up there

#

which is what I imagine

lucid mulch
#

what I'm hearing is a C# pathfinding mod that makes it so george can't path on staircase tiles and routes via ramps instead

autumn tide
#

teleporting is more fun SDVpufferwoke

ornate locust
#

I just like the image of Alex with his grandpa held over his head, nyooming around like he's playing Sandrock or something where you can hold a whole building over your head

lucid mulch
#

Extra points for doing the grumpy emotes, wizard teleporting in, then teleporting them both to the other side of the staircase and wizard teleporting out

autumn tide
#

heh an event where that happens would be fun

lucid mulch
#

though lore wise I feel like george wouldn't appreciate it based on the letter event with penny

autumn tide
#

yeah that's why he teleports himself

vernal crest
#

This is making me want to make a mod where George and my farmer commiserate over the difficulties of accessibility in the valley

autumn tide
#

he's got one of those staff thingies SDVkrobusgiggle

ornate locust
#

Alex: Grandpa, it's doing me a favor, I gotta practice lifting! PUPPY EYES

autumn tide
#

the urge to add every rep i can to sdv-

lucid mulch
#

have a special order with Maru to upgrade georges wheelchair to have hover/jet propulsion for staircases

autumn tide
#

YES

inner adder
#

I like to ask of y’all infinite wisdom of code: how can I bypass the tutorial fishing mini game (not catching any fish) in the current version? SDViconyoba

autumn tide
#

THIS IS PERFECTION

ornate locust
#

Like Professor Xavier's from the X-Men cartoon!

autumn tide
#

best idea- ever

lucid mulch
#

newwho dalek elevate

autumn tide
inner adder
lucid mulch
#

if you don't catch any fish then you don't see the tutorial

inner adder
#

Right, thing is, I want to catch a void mayo (which I tried), but it seems like I’m unable get one unless I pass that tutorial catch first. Unless I’m wrong on this (wiki have no info on this unless I’m blind)

uncut viper
#

are you asking for a mod you are trying to make?

lucid mulch
#

but in terms of actual code to ensure the tutorial never happens, just have the player.fishCaught net collection has something in it

inner adder
#

No, is for a challenge SDVpufferwaaah

vernal crest
#

Then you are in the wrong channel :)

inner adder
#

Okay, what count as a fish but not a fish SDVpufferweary

autumn tide
inner adder
vernal crest
ornate locust
#

Is there a mail token for the railroad being accessible or something? I swore I got a mail about it, but I'm blanking on that, and I want to make the ramp there only show up when the rock's gone

#

or was that a different rock problem caused by Joja that had the mail

autumn tide
#

hm, earthquake for that one i think...

vernal crest
#

Yeah the railroad is the earthquake in the night I think. The mines access has the mail.

autumn tide
vernal crest
#

You can make it date related so it doesn't apply until the day after the earthquake

#

Ok I must leave now, my beat sabers need me

autumn tide
#

godspeed Aba 🫡

ornate locust
#

ah, that makes sense

royal stump
#

I thought there was technically a flag, but the mountain itself basically just looks at Game1.stats.DaysPlayed >= 31 SDVpuffermlem

opaque cobalt
#

is it okay to have two files editing an NPCs beach outfit? I have a beach and snorkeling outfit for a character and trying to set up as can have A, B, or A/B (random chance which one is used on a given day). Slowly getting back to understanding how to do basic appearance modding as I make the Mk II version of a seasonal mod
https://smapi.io/json/none/b944b34186294e91aae4c3962f7a0759

ornate locust
#

so if I did a "DaysPlayed = 31" for a map patch condition, would it remain after that, or an I over thinking this

calm nebula
#

so....I personally think you're overthinking all of it, as boulder will be over ramp anyways

royal stump
#

sounds like that would only effect the exact day and then be undone next time the map loads

#

but yeah, might not be necessary if it's under the boulder

calm nebula
#

BUT if you were to want that, I recommend instead doing smth like

  1. Make trigger action look at LocationIsAcessible
ornate locust
#

you know, you're right, I should just try to stick it in there and see how it looks

calm nebula
#

(or whatever the fuck it's called.)

royal stump
calm nebula
#

(sorry, I am tired and yelling at the gods in the sky the people who have not, as of the 18th of Jan, provided me my new health insurance cards)

ornate locust
#

Been fighting with insurance over the whole holiday season

#

Just imagine that scene in your head of Mr Incredible throwing his boss at the insurance company through a wall

#

well, like three walls

opaque cobalt
royal stump
#

SDVpufferpensive 🤝 I was on the phone for several hours last month because someone mistook nexus's company for an unreported job of mine

#

rather, the paypal payments for me working there (in england ig)

opaque cobalt
#

Or, actually, I guess the better question is does editing the beach outfit need to be done via editimage or would it work without issue using appearance modding. When referencing Seasonal Cute Characters, they have it as an editimage and then an outfit marked as island attire. Checking the "Tutorial: Adding Seasonal Outfits via Appearances" did not provide much illumination on this particular instance

brave fable
#

if you mean the ginger island spritesheets, those don't use appearances and have some hardcoded behaviours

#

you'd likely need to use editimage on the Beach assets

calm nebula
#

(they can use appearances)

royal stump
brave fable
#

is that so

calm nebula
#

oui

brave fable
#

it is so.

calm nebula
#

blueberry how's the healthcare situation in Austalia

brave fable
#

getting more expensive every year

compact mountain
opaque cobalt
#

Just to double check, beach sprites are only used on ginger island, so I just need to mark them as island attire? Haven't actually played a save in so long I don't remember where all sprites get used

brittle pasture
compact mountain
#

Huh. Thank you! :DD

shut edge
#

it's cool when it's that easy

compact mountain
#

It really is! \o/

elfin kindle
lucid egret
#

hey guys im working on adding compat for GNMT (using this guide https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Gender_Neutrality_Mod_Tokens_(GNMT)_Compatibility ) and I figured out the normal dialogue part fine but i was wondering if its possible to switch out single lines of dialogue in events using tokens, as opposed to duplicating events just to edit a few lines

Stardew Modding Wiki

Last edited by AtlasVBot on 2025-09-13 18:56:02
This tutorial is aimed at mod authors who would like to add compatibility with Gender Neutrality and Gender Neutrality Mod Tokens to their mod or adapt another mod so that it offers gender neutral or nonbinary dialogue.

devout otter
#

Hello! Which event do you want to edit?

lucid egret
#

Events for adventurer's guild expanded

devout otter
#

Oh. So you already have the standard event in your mod, and then you want to patch in the GNMT version, with a When GNMT is installed conditional?

tiny zealot
#

one way you can swap out a single line is by using a config setting token or a dynamic token as part of the key in your use of the i18n token

#

so if your event calls for e.g. {{i18n:myevent.line4.{{GenderMode}}}} and then you have defined GenderMode based on something involving GNMT

lucid egret
#

Ah I see

ornate locust
#

yeah I'm gonna need a condition on that one

tiny zealot
#

in the i18n you would want to define lines for all the values that token can have (or use defaultkey)

ornate locust
#

this one's working though

lucid egret
#

oh wow i just realised it's literally in the guide at the very end SDVpufferpensive

half badge
#

how would i go about patching a sprite mod myself? i want to make portrait accurate sprites compatable with befriend marlon and gunter

#

the sprite mod's sheets obviously don't account for the way befriend m&g allow them to move around so their walk cycles just default to showing this white part

#

should i edit the modded sprites from the sprite mod, or try and edit the sprites the NPC mod uses to match the sprite mod?

#

and then how would i make something that overrides my sprite mod with my edits

#

obviously all this uses CP

devout otter
#

Befriend Marlon and Gunther has already patches over the vanilla sprite. So assuming your mod would not work without Befriend Marlon and Gunther, what your mod needs to do is patch over that mod's version of the sprite.

devout otter
half badge
#

i guess im just asking how to make a patch that does the "Target replace" thing

#

to override both mods

#

so that my patch out-prioritizes them both

devout otter
#

Aa, so the portrait accurate Marlon is another mod?

half badge
#

yes, i have a sprite mod and the mod that changes the mechanics

#

im editing the NPC mod sprites that add extra animatins ect to match my sprite mod

devout otter
#

Basically you just do the same patch the portrait accurate mod does, and then in the manifest.json of your own mod you put a false the dependency for both it and Befriend Marlon and Gunther. That should ensure your mod is prioritized over them.

#

Can you link to the sprite mod?

half badge
half badge
devout otter
#

So try opening the content.json of that mod.

half badge
#

done

devout otter
#

Search for "Marlon". You should see a group of 3 lines.

half badge
#

the action load ones?

devout otter
#

Yep.

#

That's the patch that edits Marlon's sprite. That's basically all you need for your own mod's content.json. Just change Load to EditImage.

half badge
#

so if i make a seperate folder with its own manifest and content with just the two replacement sprites and just the two commands that "edit image" it will override the load command?

devout otter
#

Yes. An EditImage would always applies over a Load.

half badge
#

ill look up the other mmod setup files myself

#

awesome thanks!

devout otter
#

Just make sure to have a dependency of BM&G on your manifest.

half badge
#

im totally new to all forms of programmin ect this is so fun to learn

half badge
weary sail
#

“assets/sprite.png”

woeful lintel
#

after double-checking that the asset is really at this path, can you share your log saying that the asset doesn't exist?

wicked harbor
#

Hello all! I am trying my hand at making a mod to actually upload and running into a small issue. I've tried googling it but haven't had any luck. Hoping to someone here can help me. I've been making personal mods for yeras now but mostly just making my own retextures and replacing the png files in mods I already downloaded. I am trying to load my own mod to test but keep getting the error that content.json can't be found but it exists in the folder. I've tried rewriting it multiple times to the same error. I am just trying to create a retexture mod for SVE premium barn and coop.

hallow prism
#

verify it's indeed a json in term of extension

#

windows usually hides the extension format and you end with a content.json.txt

heavy pewter
#

I cant seem to find the bool field or property to use as condition here, i want to check if Robin is busy, can anyone help

public void CarpenterMenu()
        {
            if (//here)
            {
                Game1.drawObjectDialogue("Robin is busy.");
                return;
            }
            Game1.currentLocation.ShowConstructOptions("Robin");
        }
wicked harbor
brave fable
#

Game1.netWorldState.Value.builders.Contains("Robin")?

vernal crest
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.

brave fable
#

ideally showing all columns in the file explorer, particularly Type

#

or whatever the equivalent is on mac

vernal crest
#

Mac doesn't usually hide file extensions, does it?

wicked harbor
hallow prism
#

thanks! the process of finding what's wrong is a bit tedious so details are really helpful

#

we'll need a log too next

#

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

vernal crest
#

It's generated a config file, so at some point it's been able to read the content.json

wicked harbor
#

Here is the content file. It's my first try and I tried following the wiki. I am started this test mod just changing the barn first. I am attempting to make a seasonal mod.

vernal crest
#

Please use the json website in future :) I linked it above

wicked harbor
#

Oh sorry, didn;t see the link.

vernal crest
#

You have accidentally closed your content.json way too early. That closing curly bracket above the changes line should not be there.

#

Nope, ignore me

#

Ok the curly bracket should be there, but there needs to be a comma after it

#

I recommend getting Notepad++, Sublime Text, or Visual Studio Code (NOT Visual Studio Community) so your text editor will actually warn you of this stuff

wicked harbor
#

The last closing one?

#

I will download one of those now and try to rewrite teh content file again. Thanks.

vernal crest
#

The one above the Changes line

wicked harbor
#

I added the comma after that bracket just to test it. Still getting the same error though. I was initially trying to close the the opening bracket from the third line.

#

I will try to rewrite it all in Visual Code to see if there's any other errors.

vernal crest
#

Just copy and paste it in

wicked harbor
#

👍

#

Just pasted it in.

vernal crest
#

It has no errors other than that one, so if you're getting an error that there's no content.json, I think you have another issue, like that you have forgotten to save the file or are editing the wrong one.

wicked harbor
#

I left the comma you recommended and it looks correct but got an error for the comma after the bracket directly above it.

vernal crest
#

Like Lumi said, it would help a lot if we could actually see your log

#

Because seeing the exact error message and the context from the rest of the log makes a big difference

wicked harbor
#

Oh I will use the link provided now!

vernal crest
#

You put the comma on line 8?

wicked harbor
#

that is the original file, unchanged.

vernal crest
#

Okay, and your log?

wicked harbor
#

Well the file after adding the comma you suggested.

#

I copy and pasted it into Visual Code and it looks to have adde an comma after the bracket in line 7.

vernal crest
vernal crest
wicked harbor
#

Sorry, I think I am bit tired and typing a bit too last fast and lazily. Can you clarify your question? MIssing a word where?

vernal crest
#

Oh, no, you aren't missing a word. I thought "Well the file after adding the comma you suggested." was a reply to my request for a log, but it's meant as an addition to your "that is the original file, unchanged." sentence.

wicked harbor
#

Yes, Sorry. I am pressing enter to fast. Need to slow down and reread my messages and add what is needed before posting.

vernal crest
#

You should be able to check the file in game again now.

wicked harbor
#

do you recommend I keep the comma added in line 7?

blissful panther
#

It's technically invalid, but it won't cause any problems for CP.

vernal crest
#

I already responded to that, you must have missed it.

#

A warning about trailing commas? Ignore that - we can use trailing commas in Stardew so they're not errors.

#

I used to get rid of my trailing commas but my number one error ended up being that I'd forgotten to add the comma when I put a new item in, so now I embrace the trailing comma lol

#

!jsonc

#

Darn it what's the jsonc command

blissful panther
#

!vscjsonc

vernal crest
#

!vscjsonc You can follow these instructions to make it stop complaining about the comments (though there's a different trick to deal with the trailing commas)

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.

wicked harbor
#

I tried running Stardew. Still getting the error.

vernal crest
#

Whoops sorry DH!

#

Then we return to: we need your log, please

wicked harbor
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 26.1.0, with 8 C# mods and 11 content packs.

vernal crest
#

According to your screenshot of VSC, your content.json is not in /Volumes/Crucial P310 4T/SteamLibrary/steamapps/common/Stardew Valley/Contents/MacOS/Mods/<mod folder>, it's in /Volumes/Crucial P310 4T/My_Mods/Visual Code. Did you make sure to save it into the mod folder?

wicked harbor
#

Oh I didn't save the VC file to the mods folder becuase I didn't make any changes since you said the trailing comma was okay. I can move it to that folder now but it's the same file as above.

vernal crest
#

Can you take a screenshot of the mod folder again, but show the entire filepath in the screenshot?

wicked harbor
#

I moved the content.json file created in VC to the mods folder and overwrite what was there.

vernal crest
#

Hmmm I was helping someone the other day with a mystery missing i18n folder and the issue was that Mac doesn't strip out trailing spaces. Can you make sure your file is definitely called content.json with no spaces anywhere at all in the file name? It doesn't look like that'd be the issue but we might as well make sure.

wicked harbor
#

Yes, I've had that issue before but no blank spaces here.

vernal crest
#

Can you show a screenshot of inside the manifest?

wicked harbor
vernal crest
#

I...do not know what is going on

#

Can you put a period in front of your content.json file and copy another mod's content.json in to the folder? Doesn't matter which mod, I just want to see if it's going to recognise it

wicked harbor
#

Okay so I copy and pasted the content.json file for the Alternative Bus Stop into my mod's folder and tried launching the game and got the exact same error that the content file could not be found.

#

So does that mean that the problem is with the folder itself somehow?

gentle rose
wicked harbor
#

Yes, still no dice.

vernal crest
#

I am baffled, because it just shouldn't recognise the mod at all if it's the folder, but it's clearly reading the manifest.

#

Try going the other way - copy your content.json file into another mod's folder and check if that works

blissful panther
#

Actually, I might have it...

#

Okay, nope, but I am heavily invested in this now...

brave fable
#

did you share a log file at all with the error?

vernal crest
#

And we've got screenshots showing the right filepath, showing the file type, showing the content of the content.json. I'm not sure what I'm missing

#

Maybe this is a weird Mac permissions thing?

wicked harbor
#

Ok, I hid my mod folder and hif the content folder in Alternative Bust Stop folder then copy and pasted my content file to that folder.

vernal crest
#

I think I saw someone comment on a Nexus mod saying that one file in a mod they downloaded was not appearing because of perms issues, plus Audri often comes across it in tech support

wicked harbor
#

I now get this error.

gentle rose
#

one last request if it isn’t figured out: unhide the mod folder, make sure the content file is the latest version, and restart your computer. then try starting stardew again (just in case there’s any weirdness there)

vernal crest
#

Ok that's a good sign, because it means the config.json that was generated from the original content.json for Alternative Bus Stop is not finding matching fields in the content.json - but it's not saying the content.json doesn't exist at all

wicked harbor
gentle rose
#

(if it still doesn’t work, a new log would be good just in case)

wicked harbor
#

Okay! Restarted my Mac, relaunched Steam, and restarted Stardew and still getting the same error. For whatever reason, it just doesn't see that file when added to my mod folder.

ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 26.1.0, with 8 C# mods and 11 content packs.

brave fable
#

dare i ask what if you just make a new folder and a new content.json and copy the contents of the file over

vernal crest
wicked harbor
#

Just the file itself.

gentle rose
#

I’m with blueberry on the new folder thing

vernal crest
#

Okay, good, thanks. I recommend following blueberry's suggestion of making a brand new folder with a new content.json and then copy the json inside your content.json across.

wicked harbor
vernal crest
#

Did you definitely make a completely new content.json file?

#

You did not move the file?

#

With a completely different folder name?

#

(Sorry to be so pedantic about it, but this is a seriously puzzling problem.)

wicked harbor
#

I will try again. I am not against anything at this point. I even tried just opening another mod's else's already created content file (thinking it was a permissions) and erasing everything there and copay pasting my own code into it. Still got the same error. Even though the mod works with it's own code with no issues.

vernal crest
#

Can you zip up the mod folder and send it to me, please? Feel free to DM it if you want to keep it private. (Also if you're not comfortable doing so, you can of course say no)

#

I want to try it in my game

blissful panther
#

Okay, nuclear option time. This will print out a list of all JSON files in the directory of any pack that fails to load, and the contents of said files.

brave fable
#

okay, nuclear option time. delet the folder

blissful panther
#
[11:45:13 ERROR Content Patcher] Could not load content pack '(NPC) TEST MOD': content pack has no content.json file.
[11:45:13 INFO  Content Patcher] Files in this content pack: 
[11:45:13 INFO  Content Patcher] File: /home/alan/.local/share/Steam/steamapps/common/Stardew Valley 1.6.15/Mods/[CP] Test/manifest.json
[11:45:13 INFO  Content Patcher] Contents:
[11:45:13 INFO  Content Patcher] {
[11:45:13 INFO  Content Patcher]    "Name": "[NPC] TEST MOD",
[11:45:13 INFO  Content Patcher]    "Author": "DecidedlyHuman",
[11:45:13 INFO  Content Patcher]    "Description": "TEST MOD.",
[11:45:13 INFO  Content Patcher]    "Version": "3.2.3",
[11:45:13 INFO  Content Patcher]    "UniqueID": "DH.WeirdBug.TestMod",
[11:45:13 INFO  Content Patcher]    "ContentPackFor": {
[11:45:13 INFO  Content Patcher]       "UniqueID": "Pathoschild.ContentPatcher"
[11:45:13 INFO  Content Patcher]    },
[11:45:13 INFO  Content Patcher]    "UpdateKeys": [
[11:45:13 INFO  Content Patcher]       "Nexus:00000"
[11:45:13 INFO  Content Patcher]    ],
[11:45:13 INFO  Content Patcher] }
[11:45:13 INFO  Content Patcher] File: /home/alan/.local/share/Steam/steamapps/common/Stardew Valley 1.6.15/Mods/[CP] Test/dffdscontent.json
[11:45:13 INFO  Content Patcher] Contents:
[11:45:13 INFO  Content Patcher] {
[11:45:13 INFO  Content Patcher]     "Format": "2.0.0",
[11:45:13 INFO  Content Patcher] /*
...

Just like this.

#

This should at least give us a definitive answer for what's actually in the folder it's trying to load.

wicked harbor
vernal crest
#

Well, I just ran the file that you sent right at the start and it's working fine

blissful panther
wicked harbor
#

What could I possibly be doing wrong?

blissful panther
#

It's a real mystery! Just install that custom version of Content Patcher, run the game, and upload the log so something is hopefully uncovered.

vernal crest
#

Your mistake is in owning a Mac

wicked harbor
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 26.1.0, with 8 C# mods and 11 content packs.

vernal crest
#

I don't have SVE for your premium barn texture to apply to, so I switched the first patch to a Load and you've got the FromFile fields incorrect - the underscore is in the wrong place

blissful panther
#

(╯°□°)╯︵ ┻━┻

vernal crest
#

Does the fact that the mod folder has an unnecessary space at the end of it matter?

#

Oooh

blissful panther
#

I wouldn't have thought so...

vernal crest
#

It's SMAPI reading the manifest but CP reading the content.json

#

So they might have different parsing rules

#

A space at the end of an i18n folder made CP think the folder didn't exist

blissful panther
#

At this point, it's worth trying anything.

wicked harbor
vernal crest
#

Try removing that trailing space from the end of your folder name

blissful panther
#

I need to step away for a good few hours now, but please ping me if anything happens! SDVkrobusgiggle

wicked harbor
#

OMFG!! All that just becuase of a freaking trailing space in the *folder name? I am no longer getting the error. The mod isn't working but no error in terminal at least. Good lord!

vernal crest
#

I AM A GOD!

wicked harbor
#

I'm sorry I put ya'll through all this for a freaking trailing space. Most anti-climatic resolve ever.

vernal crest
#

We are extremely lucky that I encountered this problem just a couple of days ago

dire kestrel
#

macos aSDVpufferroll

vernal crest
gentle rose
vernal crest
wicked harbor
#

Still have to figure out getting it to actually work now that it loads. Lol. So first attempt still not complete.

gentle rose
#

the special build of content patcher has me thinking, a debug tool for things like this would be nice

wicked harbor
#

Hopefully that is less frustrating.

vernal crest
wicked harbor
#

You guys are awesome! This is the most help I've gotten with anything since I decided to make the mod. Other forums are really dry. Glad I found this discord.

brave fable
#

if there's a mac troubleshooting page for authors this should be in bold haha

wicked harbor
#

I got it working! Mod is showing up correctly. I used console commands to skip through the seasons and it's all working. Woohoo. Now just gotta refine it a bit and then upload to Nexus mods. Thanks again everyone.

blissful panther
#

Found the "bug" in SMAPI at least, potentially. I had five minutes to come back and couldn't help myself.

Not sure why this would only apply on MacOS, though...

#

At least this might be the problem. Not guaranteed.

#

No, this shouldn't be it... I'm going to dig more later!

vernal crest
#

SMAPI was reading it, it was CP that wasn't

#

Because SMAPI could see the manifest

#

I don't know about Linux, but windows trims trailing spaces so you can't have them.

blissful panther
#

Yeah, but CP reads it through SMAPI, which is why it gets fun.

#

If nobody has by time I get back, I want to do a deep dive on this, because it's weird. SDVkrobusgiggle

lucid mulch
#

ContentPack.ReadJsonFile<T>(string path) uses PathUtilities.NormalizePath, but the manifest scanning logic as part of SMAPI.Toolkit only attempts to use PathUtilities.NormalizePath after it tries directly first when its recursively scanning folders to find mods.

so My Awesome Folder /manifest.json would work but I think My Awesome Folder /ManIFeST.jSon would fail as it'll trigger the case insensitive logic to trigger containing the trim

#

on windows trailing spaces aren't a thing (or the underlying windows apis are willing to silently correct for it and do a similar trimming operation), though Linux allows it perfectly fine (and presumably macos too, as its at least closer to unix filesystem despite being case insenstive)

calm nebula
#

And is valid on mac

#

I was pretty mad when I found out aboit this (2yrs ago?)

lucid mulch
calm nebula
#

Iirc this isnt the issue

#

Iirc is in the actual path api for dotnet

lucid mulch
#

the trim feels like it should only be a thing on windows and just.. don't on other platforms

vernal crest
#

I don't think I'm following, because why would smapi need to trim whitespace out of windows filepaths when windows itself already does so?

lucid mulch
#

though it is possible to cause folders to exist in windows with trailing spaces, but you can't actually cd into them via command line

gentle rose
#

it’s possible the issue pops up when copying files from linux to windows? otherwise I’m also confused about why santisation is even necessary

lucid mulch
#

explorer can handle it fine, but could just be on the long list of ancient forbidden things like 8.3 filenames or stuff like COM

vernal crest
#

I just tried making a folder with a trailing space on windows and it immediately trimmed it

lucid mulch
#

I made the folder while in wsl

vernal crest
#

Yeah I just did it through explorer

lucid mulch
#

I did earlier tests with windows mkdir and it also trimmed

#

but it trimmed in the same way cd is trying to trim

vernal crest
#

So it's possible to have trailing spaces on windows but you have basically got to be really trying lol

lucid mulch
#

though I'm also giving it an extra test because my F drive is ReFS instead of NTFS

#

though same thing happens on ntfs

calm nebula
red heart
#

Here's a mod I came up with a few days ago and started to create: It allows your kids to grow up into adults/late teens. Maybe they could be friendable NPCs with heart events. You could watch them grow up, go to school with Jas and Vincent, maybe date a romanceable NPC for a few seasons. Maybe if you have 2 kids, one can go off to Zuzu city for work (Possibly come back to Pelican Town on weekends so that you can still increase friendship with them). The other could stay in Pelican Town and possibly find a job in town or be a farmhand on your farm.

#

I spent last night creating a few different sprites, but I have absolutely no idea how to code. Does anyone know any Youtube tutorials or anything to help me learn?

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.

fading walrus
#

Sounds like you want the NPC section, though I suggest looking into existing child frameworks that let them grow up as well

vernal crest
#

For growing up into adults, I think that'd be either HMK or custom C#?

#

But maybe something like LittleNPCs does allow kids to grow fully into adults, I don't know

#

I always quit before my kids are old enough to leave toddlerhood anyway

worldly wadi
#

Hey I modded my npc to be marriageable, but she doesn't appear as single, what should I do? (About the schedule thing, I was able to come up with a solution so I'll ignore this for a while)

royal stump
#

(or the relevant one if you're using Include, etc)

plucky mirage
#

hello! been a long time since i chatted here

#

i was told to come here as i am looking to make my actual first mod

#

currently reading the documentation to see if it would be even possible to do with the CP framework as i do not know coding

red heart
lucid iron
#

Well if you want to use some kind of framework (littlenpc or have more kids) you'd be making a content patcher mod

#

If you have some additional feature that the frameworks don't cover then you can make your own C# component yeah

worldly wadi
#

I can send the dispositions file if you need

royal stump
#

that'll help, the dispositions file would be the one that decides whether they're dateable

worldly wadi
#

The broken npc is the third one, Bebel

vernal crest
#

Please give your NPCs unique names

devout otter
vernal crest
#

They should have your mod id as a prefix for their internal name

worldly wadi
vernal crest
#

Bebel is set to "can be romanced": false

lucid iron
vernal crest
#

So she is not marriagable

lucid iron
#

And move their Home to somewhere else

#

This one lets u define how long it takes for that to happen

worldly wadi
#

It's from before the farmer has seen an event

#

After the event, she's marriageable

#

Anahi also has that

#

But she works fine after

vernal crest
worldly wadi
#

It's on dispositions.

#

Unlock conditions

vernal crest
#

Unlock conditions are not the same as being romanceable

royal stump
#

that isn't how that works, you'd need "when" conditions specifically

vernal crest
#

That's whether the NPC is around at all

worldly wadi
#

Ooooooooh

vernal crest
#

Anahi is still not romanceable

royal stump
#

you've got two "Bebel" entries being added, but one just overwrites the other or gets ignored

vernal crest
#

You can use a GSQ in romanceable

#

Can't you? It's just a bool field

#

Oh I see I missed that Anahi's just always romanceable as soon as she is unlocked

royal stump
#

you can use CP tokens in bools (iirc), but no, GSQs would only work in specific string fields like UnlockConditions

#

but that field decides whether an NPC spawns at all, romance is just on/off unless you use When conditions to edit it

devout otter
vernal crest
#

That's a bit rude that can socialise is a GSQ but can be romanced isn't

royal stump
#

being romanceable affects max hearts and such, so it's a bit more awkward to implement, I imagine

vernal crest
#

But being able to use tokens means you could use HasSeenEvent instead of needing a when condition

devout otter
royal stump
#

(not any weirder than turning it on/off as it is, but yeah)

worldly wadi
#

So, should I use "When"?

devout otter
#

Then, you can look into using a framework like Have More Kids to do the "children grow up" part.

royal stump
#

yeah, you'll want one default entry for your NPC, and then you could use "Fields" to change their romance field to "true" after the event

worldly wadi
#

I'm a bit lost aaaaaaaa

royal stump
#

e.g. keep the first entry with romance = false, and remove the unlock condition
then have a second edit with CP's When condition for events and romance = true

worldly wadi
#

Oki oki I'll try that

#

Thank you! :D

plucky mirage
#

hi, i have a question; i never did this before and don't know coding so please bear with me!

i've spent a while reading the CP documentation and tokens, and have a rough outline of what i "should" do to get the effect i want. if i want to append text to an item's description, i should do the following:

  1. i use an EditData action?
  2. in it, i create a "When" token
  3. "When" the player is hovering over the item, i input text i want into its description

is this correct? or even possible? thanks in advance

lusty halo
#

okay I solved the little issue I had with the new "Patchmode": "Mask" . I simply forgot that if the texture you want to replace has a black background in the original tilesheet, it has to be kept in the replacement file (as shown in the image) even with the new mode. Now I can finally start rearranging my files to update my mods.

lucid iron
plucky mirage
#

hi chu 😞

#

i'm trying to do what i said i shouldn't haha

lucid iron
#

Easier to just change description in general

royal stump
plucky mirage
#

there is a HasCraftingRecipe token - i want to use it as a condition

royal stump
#

CP's "When" conditions update each in-game day by default, with the other options being "when the player moves between locations" and "when the in-game clock changes", so nothing particularly fast

plucky mirage
#

if the player does have a recipe, input the text, if not, say static text

royal stump
#

that should be fine, though whether it's necessary depends on your exact goal

plucky mirage
#

yes that's what i'm saying

#

i'm on it

#

i am saying i want to use it

vernal crest
#

Oh sorry

#

I misread that as "is there a"

plucky mirage
#

no worries

vernal crest
#

And I was surprised you got the wording perfect xD

plucky mirage
#

my line of thinking (again, i'm no coder, so please excuse me) to achieve my effect was:

check if player is hovering over item i define -> check again if recipe is discovered -> if recipe discovered, say text i define -> if recipe not discovered, say other text

#

i don't know if any of this is feasible or correct to do

#

(with CP)

vernal crest
#

You can't check if a player is hovering with CP

gentle rose
#

we also generally advise not to increase the update rate too much unless you really need it, because if any other mods are editing the same asset, every single time your patch updates all of their patches have to rerun too which can cause pretty severe lag to build up

plucky mirage
#

so i can abandon the hover thing and just directly edit description i imagine

vernal crest
#

You can check if they have the recipe when the day starts, when they change location, and on time change (but don't)

#

A day started check would be fine for this I think

royal stump
#

a basic example would be something like this (though I'm not sure what IDs in the crafting recipe token should be)

{
    "Format": "2.9.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Objects",
            "Fields": {
                "Pizza": {
                    "Description": "Hi! You have the recipe!",
                }
            }
            "When": {
                "HasCraftingRecipe": "Recipe ID here"
            }
        }
    ]
}```
if your mod looks like this, CP will check each morning whether to override pizza's description with the new text, and update it if so
plucky mirage
#

but then, say you learn a new recipe from the TV - this would invalidate the item description

#

i don't know if i can NOT use a timed thing

vernal crest
#

Unless you think that them missing it would ruin everything, in which case location changed would be maybe possible

#

Why would learning a new recipe invalidate the item description?

royal stump
#

short of constantly checking with C#, some things just need to be on a delay

plucky mirage
#

because i want the item description to mention it is in a recipe - and if the player just learned the recipe, they'd have to wait until, say, the next day for the description to also update

#

isn't that unintuitive?

vernal crest
#

Yes, but not game breaking, unlike everybody using OnTimeChange in all their patches which is game breaking

royal stump
#

the game doesn't specifically expect item descriptions to change much, if at all, so there's no quick update process built in

plucky mirage
#

sure, ideally if i knew C# i'd do it with that haha

lucid iron
#

It can be but that's where u may wanna ditch content patcher and do it in C# yeah SMCPufferjail

plucky mirage
#

i don't know what a correct "delay" would be, maybe every minute?

plucky mirage
gentle rose
#

basically content patcher doesn’t update descriptions when they’re viewed, it updates when you update them. that means that you have to constantly be checking and re-updating the description just in case it will be seen, which you don’t want to do because it will mean constantly recalculating everything in Data/Objects, which you are very much not the only one changing

gentle rose
royal stump
#

I mentioned earlier that with CP, your options "start of day", "player changed maps", and "every 10 minutes in-game"

vernal crest
#

And we are all saying "please do not use every ten minutes"

royal stump
#

but yeah, editing Data/Objects for that would cause some lag just for the sake of updating a description

plucky mirage
#

is "player changed maps" taxing?

lucid iron
#

What you can do in C# is

  1. Still just do a description edit no problem with that, do so OnAssetRequested
  2. Invalidate the description asset when player obtains a recipe
vernal crest
#

Even location changed is overkill, imo

royal stump
#

it is less noticeable because there's the slower fade-out as they switch locations

#

leaving it as a next-day change is the easiest to mask because the game does a lot there anyway

#

(i.e. players won't notice if it takes 0.5% longer)

gentle rose
brittle pasture
#

the "best" method is to straight up harmony patch the description getter/function

royal stump
#

yeah, C# is optimal if you really need live updates & the game doesn't already do them
(if you also know how to code it well SDVkrobusgiggle)

vernal crest
#

Nobody is expecting an item description to change after getting a recipe because the game doesn't do it, so it not happening until the next day is not going to feel weird to most people imo

#

In fact, if I were playing I wouldn't ever notice it had changed lol

plucky mirage
#

i could use next day i suppose

#

if you're saying this is the best practice and won't hurt performance (much)

#

i wouldn't want to meddle with other stuff

blissful panther
#

A little message popping up the next day trying to prompt the player to look at their items to see that something's changed might be optimal. Otherwise like Aba says, a lot of people might not even notice.

gentle rose
#

(“there’s no hook for this, you have to poll instead” continues to be the bane of my existence in all programming matters SDVpuffersquee /lh)

lucid iron
#

Hm is the recipe known collection a net collection

gentle rose
#

ooo interesting point

blissful panther
#

Then you can just have it update on day start along with that message. There's probably something in BETAS or something to display the message, so then it would be all CP.

gentle rose
plucky mirage
#

does the action EditData actually append my text to the existing description or would i have to copy the native description of the item into it?

gentle rose
#

look into content patcher text operations

plucky mirage
#

uhhhh

#

i'm on the tokens page right now

royal stump
vernal crest
#

You want the text operations page, right above it in the files list

royal stump
#

(I've never actually tried using net field hooks yet SDVpufferlurk)

calm nebula
#

I need to warn you that NetList is weird

plucky mirage
#

sorry if my questions are stupid

gentle rose
vernal crest
plucky mirage
#

i am looking at Delimiter, under text operations - it doesn't seem like i can edit a linebreak between the original description and my new text?

#

am i supposed to insert an "\n" or something?

calm nebula
royal stump
plucky mirage
#

yeah i'm referring to the item description

plucky mirage
royal stump
#

"Entries" adds or replaces an entire entry; if you used it in that example, it'd reset every other field for the pizza item to the default (no name, etc)

#

"Fields" just edits the specific fields you list there

plucky mirage
#

is "recipe ID" just the full item ID of the resulting item?

#

like would i put the ID for Fried Calamari here for instance

brittle pasture
#

no, it's the key of the entry in Data/CookingRecipes (or CraftingRecipes)

brittle pasture
#

you can refer the unpacked files

plucky mirage
#

unpacking the game now

#

thought i wouldn't need to do this

#

goddamn that is a long ass ID

#

"Fried Calamari": "151 1 246 1 247 1/3 3/202/f Jodi 3/",
does this look correct?

#

like is the ID actually the entire thing in the second quotation signs?

brittle pasture
#

the ID is the first one (the key)
the second string (the value) is the content of the recipe

plucky mirage
#

in "HasCraftingRecipe" i just need to put the item name (the first field)?

#

i have absolutely NO idea if this is correct 🥶

#

in theory this is supposed to add the text above to the Diamond item if i have the Tortilla cooking recipe unlocked

#

i suppose i should create my manifest.json and test this out lol

lucid iron
#

Your format is wrong

#

The version number that goes there is content patcher's version

#

Also When needs to be on same level as Action

royal stump
plucky mirage
#

is this more correct?

lucid iron
#

I think you are missing a closing ] for text operations

plucky mirage
#

is the bracket before last not that

#

sorry idk what the etiquette of this format is

#

i copied Esca's example and modified it

lucid iron
#

Every [ needs a ]

plucky mirage
#

yeah there's one of those before the last squiggly bracket

#

do i need an extra one?

lucid iron
#

You have 2 [

plucky mirage
#

oh

lucid iron
#

One for Changes one for TextOperations

plucky mirage
#

you're absolutely right, i see now

lucid iron
#

!json

ocean sailBOT
#

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

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

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

lucid iron
#

You can use validator for this or find some json plugin for ur text editor to use

plucky mirage
#

i recall using one of those years ago yeah

#

holy shit i think i did it

#

the validator says it's correct

#

it only took like 10 minutes to figure out wtf i was doing wrong

#

this looks unholy

#

i'm sure i broke every convention of formatting here

#

i made a manifest.json in hopes of the mod being loaded and seeing if this works

#

🕊️ ✌️

#

i can see Diamond in Data/Objects, not entirely sure what i did wrong

lucid iron
#

Oh diamond should have a number id right

#

You need the key not the Name

calm nebula
#

72

plucky mirage
#

i can see that it's 72; would i need to do this for every item?

opaque cobalt
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 40 C# mods and 50 content packs.

plucky mirage
lucid iron
#

That is still json parsing error

#

You can share your content.json through validator

plucky mirage
#

it says it's valid (i just used the first one i found on google)

#

what do you mean by "share through"; just post my JSON here?

opaque cobalt
#

I believe they are talking about this json validator to make sure things are written properly for SMAPI
link to validator: https://smapi.io/json

plucky mirage
#

ohh ok hang on

hallow prism
#

if i want a character to have a specific animation during festival, is it more work than the classic appending?

patent lanceBOT
#

@calm nebula: look. (6d ago)

plucky mirage
#

i can always resume tomorrow

#

i'm not entirely sure why i get that error when every validator says it's fine

lucid iron
plucky mirage
#

i am directly editing it and saving my changes in the mod folder

#

but i'll test again tomorrow

#

been a real physical day and i'm barely keeping my eyes open haha

#

unless i misunderstood what you meant; my mod folder just has a content.json and manifest.json, nothing else

cyan marsh
#

random thought, how would I go about making a mod that can change the prices of items

#

I'm wondering what variable to change

gentle rose
#

sell price, pierre price, joja price, travelling cart price, or something else?

calm nebula
#

Remind me in 5 days to look

patent lanceBOT
#

all right atravita but next time you better bring me 20 nirnroot or i ain't doin it (#7037032) (5d | <t:1769280982>)

calm nebula
#

We love you

latent mauve
#

A large portion of your overlays have Festvials instead of Festivals, which may be an issue if you are attempting to change a Portraits/Festival target instead.

opaque cobalt
#

Thank you. That would almost certainly be my issue. I didn't even notice. I think in my head I autocorrected to Festivals instead of noticing the error

latent mauve
#

Sometimes you just need fresh eyes to see mistakes that your brain wants to autocorrect

opaque cobalt
#

yep. Thank you for being that set of fresh eyes

umbral edge
ocean sailBOT
#

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

ornate locust
#

I've done it

#

all is ramped.

#

and I at least loaded it up to see nothing exploded or was in weird spots, thank god for my SVE Joja save, cheated though it may be

#

festival testing uuuugh i don't wanna

rotund plume
#

If Im making a custom room in Tiled, do I have to run exclusively off vanilla tile sheets? Can I use custom furniture mods or will png files not work

brittle pasture
#

with the latest SMAPI you can use any tilesheets as long as they're loaded, so your custom room can add those mod as a dependency (since you obviously don't want to redistribute those files in your own mod)

#

other modders have also made tilesheet mods for use in maps

#

note: i don't know what the etiquette is in term of using someone else's graphics in your mod (even if it's via a dependency and not redistribution), do reach out to them just in case (unless it's a tilesheet mod whose perms is explicit)

#

tl;dr yes, but make sure to delete the pngs once you're done and only pack the tmx

lucid iron
#

You can also use tilesheets like hxw which just has their furniture

#

i.e. using extra tilesheets not on the original farmhouse is fine

gaunt orbit
ocean sailBOT
#

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

gaunt orbit
#

I have a slight suspicion that this person is using a pirated copy of my mod, but I can't prove it

rotund plume
rotund plume
uncut viper
gaunt orbit
lucid iron
#

I don't think array constructors can throw index out of bounds think

gaunt orbit
#

yeah that's the thing that's confusing me

#

the error looks like array indexing but the line number is just an array constructor

lucid iron
#

Since they are in chinese though, do u think it's a problem with each character taking up more than 1 char

gaunt orbit
lucid iron
#

I don't think they are doing that actually

#

If u look at what they renamed it's stuff that has gmcm

#

A sadly common practice to do that cus can't localize mod title there

gaunt orbit
#

most of the code in that class is a modified version of the logic from SpriteText, so if iterating chars was broken it would be broken in the base game too

lucid iron
#

Yeah honestly idk since i never had problems with hhd in chinese

gaunt orbit
#

yeah, I figured if it was a language issue someone else would have probably reported it

calm nebula
#

What about line 42

#

My experience is that in release mode line numbers are not necessarily reliable

gaunt orbit
#

hmmmm

uncut viper
#

i was told like, yesterday that it was unrelated to the release vs debug mode

calm nebula
#

That said 18 to 42 is a lot

gaunt orbit
#

that could fail if a string contains zero whitespace

uncut viper
#

the other line numbers are also incorrect, though. BluePrintMenu line 347 doesnt call .Layout or ShowOverlayText

gaunt orbit
#

I'm not sure if that's the error but it would be good to fix

gaunt orbit
#

which is part of why I'm wondering if it's a modified binary

uncut viper
#

i was gonna ask why ShowOverlayText didnt show either but maybe in release it got inlined more or sometihn idk (i barely know how inlining works)

gaunt orbit
#

yeah I'm sure that got inlined since it's so small

#

release builds do tend to do that

#

so yes even though the line numbers are off, it's likely a chinese language key with a blank value which is causing that trailing text detection to fail

calm nebula
#

That can happen in Chinese yeah

calm nebula
#

Release mode inserts less instrumentation and has more optimized code, both of which can throw off the line number

ornate locust
#

working on my thumbnail

ornate locust
#

the ramps are loose

brittle pasture
#

that doesnt sound safe

ornate locust
#

aaand there's my compatibility update for it. Tadaa

autumn tide
formal crown
umbral edge
formal crown
#

I'm writing up a fix rn

formal crown
#

(This one only contains the .dll, don't delete the CP part)

formal crown
#

I'll see whatever you find in the morning, since its past 1 am rn

lucid iron
#

can i use a record across pintail

uncut viper
#

yeah

lucid iron
#

do i gotta make the record inherit from interface or can i just put the record bolbthinking

ocean sailBOT
#

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

uncut viper
#

pintail only works with an interface doesn't it

#

so it's gotta inherit from one

lucid iron
#

ah ok

uncut viper
#

this is at least going off other mods I've seen using records in their apis

hallow prism
#

hmm

#

i have some new locations added in VMV next update including some players may overlook since they "know" the area

#

is a small quest (kinda like mine exploring) overkill for introducing those?

lucid iron
#

i think it's fun Dokkan

royal stump
#

that's pretty standard for new areas in commercial games, at least, usually unlocked after interacting with the base game somewhat
which in this case would mean giving them the quest when they've visited a VMV area, or if they've made some progress there, etc
whatever feels right, really

#

(contrast with Elder Scrolls games that tend to just give you DLC pop-up windows midway through the tutorial SDVkrobusgiggle)

hallow prism
#

i feel it removes a bit of exploration but also yeah, people will likely not reexplore stuff just because maybe something was added there!

urban patrol
#

the way i introduced my location i added later was an event where the townspeople go "oh did you hear the old docks east of the beach opened back up? what's with the mysterious guy who lives there?" and then just a Location quest to visit the docks (edit: not sure where half my message went)

royal stump
#

adding a visible change to draw their attention from existing areas could also work, but might be hard to get right

ornate locust
#

Yeah, people who know the area would be likely to walk right past it

#

my words bad today, too many ramp

hallow prism
#

part of my difficulty is that i like immersive paths which sometimes means a bit of dirt in grass to lead to somewhere so ... 😄

uncut viper
#

you could always wait an in game week or month or something to send the quest/letter

hard fern
#

i think maybe adding mail might work too, something relatively simple to get the player's attention

uncut viper
#

and not send it at all if they've visited before then

hallow prism
#

hmm

#

maybe i can add a timer like having visited the location at least once using the ct location stuff

#

and preventing it if they indeed visited the other locations

hidden tinsel
#

hi, does anyone have experience working with the mod Scale Up 2 by Platonymous? I'm hitting a roadblock 😅

uncut viper
#

there's just a PLAYER_VISITED_LOCATION gsq

hallow prism
#

(currently idea is to have this in area A, to encourage visiting B and C)

#

yes

uncut viper
#

using the location visit CT would be more complicated

hallow prism
#

there is also a CT

#

so i can have a CT about visiting A (so it doesn't trigger on first visit) and not having visited B and C

#

so they have a chance to explore naturally