#making-mods-general

1 messages · Page 282 of 1

tiny zealot
#

i am the kind of person who would do too much work for this mod. this time i might not, though

brittle pasture
#

add ITEM_ID_REGEX GSQ ez

lucid iron
#

but a silly suggestion to make a iq that does this

tribal ore
#

Can dynamic tokens pull from i18n?

#

I keep finding things that I forgot to put in the translation file

tiny zealot
tribal ore
#

K, I'll give it a try and see. Just wanted to know if there were known issues

#

Thanks!

lucid iron
#

just be mindful of update rates

tawny osprey
#

Hello! I am a first time modder and have been running into some trouble. I started with some tutorials and was able to get an NPC to load in but her dialogue and schedule weren't working as well as the warp to her house would not work and I had not idea how to fix it. I restarted with some of the same stuff but I based it off of "Sydney-A new NPC" mod and I cant get SMAPI to load it in at all. I am hoping for some suggestions on how to fix this or even certain parts. Let me know if there are certain files of the mod I should share. Thank you to anybody who can help!

tribal ore
tawny osprey
#

It said it remove my NPC because it had no data. I will have to try removing my other mods thank you!

tribal ore
#

If SMAPI says that there is no data, I think that means that you're missing a manifest.json

split anchor
#

{
"Action": "EditMap",
"Target": "Maps/{{ModId}}_Outside",
"FromFile": "assets/Outside.tmx",
"MapTiles": [
{
"Position": { "x": 34, "y":16 },
"Layer": "Buildings",
"SetProperties": {
"Action": "LockedDoorWarp 31 31 {{ModId}}_Inside 0900 2100"
}
}

tawny osprey
split anchor
#

this is kinda what my use looked like

tribal ore
#

Just in case

tawny osprey
# tribal ore If SMAPI says that there is no data, I think that means that you're missing a ma...

{
"Name": "Bailey",
"Author": "llennap4",
"Version": "1.0.0",
"Description": "This mod adds a new NPC named Bailey to town. She is an artsy,up-beet game developer who moved to own to be closer to family and to complete her project. She starts more projects than she can keep up with and is always down for an adventure."
"UniqueID": "llennap4.Bailey",
"UpdateKeys": ["Nexus:???"],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}

#

This is what my manifest looks like so far

tribal ore
#

Alright, remove the stuff in the brackets for UpdateKeys until you've actually uploaded your mod to nexus. Nexus provides your ID when you first make the mod page (you don' thave to publish it)

#

Also, you are missing a comma at the end of "Description", so this is probably not valid json

uncut viper
#

the updatekeys are fine to keep like that for now. but yes, you will need that comma

tribal ore
#

Listen to everything Button says, btw. She's far more experienced than I am! xD

uncut viper
#

(unless what button says has to do with maps or machines, in which case listen to someone else if they talk over me SDVpuffersquee)

tawny osprey
#

Thank you both of you!!

lucid iron
#

The ??? suppresses the little warning in log

#

It become trace instead

tribal ore
lucid iron
#

Yep up to u what do

vernal crest
#

Aba is here to talk about maps if needed. Someone else can do machines lol

lucid iron
#

So did you post log yet

#

!logs

#

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

yeah it can be nice to keep the warning there, but it aint gonna break your mod and make it not load, was all i meant

tribal ore
#

I thought the "???" would just break it

lucid iron
#

Nop it's in my mod template even

tawny osprey
lucid iron
#

Yep

#

Helps us start diagnosing your problem

tribal ore
#

SMAPI said that her mod was empty, so I asked about her manifest. A full log would definitely help though

tawny osprey
ocean sailBOT
uncut viper
#

did you add the comma after the description?

#

(also in the future you should upload to smapi.io/log directly)

lucid iron
#

hm i been unable to load logs

#

Uncaught ReferenceError: frameworkName is not defined bolbthinking

tawny osprey
#

I added the comma it has ben parsing my log for a couple minutes now

tribal ore
#

It looks like your manifest is still mangled somehow. Probably that missing comma

uncut viper
#

seems like a thing to report to @ivory plume

tribal ore
#

It's great for catching json errors and pinpointing the exact line

uncut viper
#

(dunno exactly what this is pulling from but i guess frameworkName here should have a fallback or that whatever reads it later should make sure its not undefined)

lucid iron
#

if the log does actually load for you does that error still appear

#

i just get infinite spinny rn

uncut viper
#

who are you askin

#

bc the log wont load for anybody afaik

lucid iron
#

oh ok LilyDerp

uncut viper
#

i just looked in the file uploaded directly to discord

#

which complains about invalid json around Description

ivory plume
#

Fixed!

uncut viper
#

yup, log loads now. thank you pathos!

#

but yeah, make sure you saved the right manifest.json file Bailey, because its still complaining about that part. if you're sure you've saved it, then you should upload your manifest.json again to share it here

tawny osprey
ocean sailBOT
#

Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

the error here is in your MapData_JSON.json file, did you try to write a /* Comment */ but forget one of the slashes?

#

can you upload that file to smapi.io and send it here?

#

And maybe MapProperties_JSON.json too

tribal ore
uncut viper
#

i suspect you have other errors too based on the warnings but let's get rid of the red ones first

uncut viper
#

you do have random *s in your FromArea and ToArea in that file, in the Vanilla section

#

im not sure what you intended those to be

tribal ore
#

Width and height need to be real numbers

#

Not just *

uncut viper
#

if your z_town.tmx contains just like, a single housr you want to add, you'll want to define the area to put it in exactly

#

If your z_town.tmx is the entire Town map but with your edits on it, you don't want to replace the entire Maps/Town

#

so you definitely would need to make sure your from and toarea are correct

#

(i do also have to go for a bit so hopefully someone else will be able to jump in and help further)

tribal ore
#

I'm not super experienced with maps, but I'll try to help for a bit longer

#

I've done a couple of map edits

tawny osprey
#

oops I was supposed to add those later lol. I think I am trying to add a patch to the town map (the first option)

tribal ore
#

You're trying to replace part of the town map with a different chunk of data? Just clarifying

vernal crest
#

Your patch should be no larger than the area you're actually changing, which means your ToArea height and width should be as small as possible.

tribal ore
#

Yep. Draw an imaginary rectangle over it. The width and height should be the number of TILES you want to replace

#

Starting at the x/y tile position (upper left) corner

tawny osprey
ocean sailBOT
#

Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tribal ore
#

I've got to go, sorry. But it looks like your map json is still invalid

vernal crest
#

Your map properties file is still showing as invalid json. Your map data json looks like it's not invalid anymore, but your FromFile for the spouse room and spouse patio don't exist.

#

If they don't exist because you haven't actually got those maps yet, you should comment those code blocks out until you're ready to add them in (just to cut down on the number of errors/warnings so that it's easier for you to read your log).

fierce vault
#

I just realized that I have a specific need, and that I can't find a mod for it, so now I'm wondering if I should make it, but I'd like to be sure it doesn't exist. Are there any mods that make the basic watering can purchasable? It would help out between upgrades, if there is no multiplayer option for some people.

latent mauve
#

Where is the JSON? I can take a look at the map things if needed also.

tawny osprey
#

I do have maps for the spouse room. Is the map properties a needed json? I only added it to replicate a working mod lol

vernal crest
#

None of these json files themselves are technically needed except for your manifest.json and content.json. We split our mods up into different .json files (called Includes, because the CP action to make sure they get into the game is called "Action": "Include") for organisation purposes. Sometimes it can be easier for a new modmaker to just put everything into the content.json at first and only start to split into different includes if they decide they want to do that.

vernal crest
#

As for the content of the map properties json file, I can't say whether you need the patches in it without a) knowing what's inside it and b) knowing what you want to do.

vernal crest
#

But the json has been changed since that message, Lily

vernal crest
tawny osprey
#

Thank you so much! I will work on fixing that. I have to go. But this has helped a lot!

vernal crest
#

You're welcome :) Good luck!

latent mauve
#

There's some weird stuff going on in that JSON that I'm trying to understand, I'll get that link in a moment so others can chime in when Bailey's back.

#

Basically, I'm wondering where the Data/SpouseRooms and Data/SpousePatios targets are coming from? Those are not how you assign those maps to a NPC normally, unless there's some other framework at play that I am unfamiliar with.

#

SpouseRoom and SpousePatio should be assigned as part of the NPC's Data/Characters entry.

lucid iron
#

hm is the npc they referenced old

vernal crest
#

Hmm, it might be related to the fact that she's trying to use an older NPC as her template. Though I'm not sure what Sydney was targeting either. Did those exist in 1.5?

uncut viper
#

Those are pre 1.6 targets

#

They did exist and were absorbed into data/characters

latent mauve
#

Gotcha, so they likely should rewrite their character to the new Data/Characters model for best practices

uncut viper
#

most definitely, though if they're using pre 2.0 format they can technically get away with it if they wanna just deal with it later

latent mauve
#

The use of Custom_ in the location names did at least give away that it's an older format being used for the maps.

vernal crest
# tawny osprey Thank you so much! I will work on fixing that. I have to go. But this has helped...

Just so you definitely see the conversation happening after you left, we have realised that Sydney is not up to date for 1.6 so she might not be the best mod for you to base your efforts on. Things like Data/SpouseRooms don't exist anymore. I'd recommend looking at Hat Mouse Lacey instead, though ignore anything to do with C# (the HatMouseLacey_Core folder) or anything to do with hats (unless you want your NPC to be very hat-focused too lol). https://www.nexusmods.com/stardewvalley/mods/18177

#

I am recommending Lacey because I know ichor is a stickler for using {{ModID}}

latent mauve
#

Lacey is an excellent example.

tiny zealot
lucid iron
#

modid power DokkanStare

tiny zealot
#

(do be careful looking around in there, though. there are a few oddities due to the C# shenanigans)

vernal crest
#

I wonder how fast I can make a new NPC SDVpufferthinkblob

lucid iron
#

you can also use the template avi has

#

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

lucid iron
#

third entry here

latent mauve
#

Pretty fast, especially if you use the template + the builder. 😉

tiny zealot
#

avi's template is an excellent starting point

vernal crest
#

Oh I don't think I'd use a template.

uncut viper
#

if you just want an NPC but with no requirements, there are at least two examples that show you can do it in under two weeks SDVpufferthumbsup

vernal crest
#

Part of my test would be to see how fast I could do it entirely from scratch with the minimal stuff necessary.

#

Hmm. Does using a dynamic token for NPC internal name impact performance at all?

#

I do get very sick of writing {{ModID}}_Hiria and {{ModID}}_Louisa

uncut viper
#

technically yes, practically no

#

just don't run into those weird token bugs that blueberry runs into

#

if a key uses a dynamic/config token and it's value uses a dynamic/config token then actually no it won't the tokens won't be parsed

#

but only sometimes? Maybe?

lucid iron
#

i think you can do it during development and then sed if u want

uncut viper
#

I was able to consistently reproduce it and blueberry has a repro pack in pathos's bug reports already but I don't know all the circumstances it happens in

lucid iron
#

but idk {{ModID}}_Hiria and {{Hiria}} feels basically the same too me LilyDerp

#

just a bunch of characters u shouldnt misspell

vernal crest
#

Oh so if I had Data/EngagementDialogue/{{Hiria}}0: "{{i18n: {{Hiria}}.Engagement.0}} or something it would go wonky?

uncut viper
#

something like that yeah, though it didn't require that the key and the value use the same token

rigid musk
#

I think the only thing I hate about having the {{ModId}} in front of my npc name is that it now works wonky with portraiture... but otherwise typing it has become second nature

vernal crest
#

I don't have any issues with Hiria, it's the {{ModID}} part that slows me down. I always get the capitalisation wrong and have to restart.

rigid musk
#

are ModId and ModID not interchangeable pondering

vernal crest
#

I guess I should stop capitalising the D though

rigid musk
#

I mean i always use the lowercase option but

uncut viper
#

dynamic token in key + config token in value = broken. Any combination of dynamic and config or both breaks

vernal crest
#

I usually write {{MODId}} when I am going too speedily

uncut viper
#

they are interchangeable yeah

lucid iron
#

i think thats fine

uncut viper
#

Not case sensitive

warm imp
#

Content patcher tokens are not case sensitive

rigid musk
#

Alternate option: {{MoDiD}}, every time, forever

lucid iron
#

nou

vernal crest
#

I know they aren't case sensitive.

tiny zealot
#

however, i am case sensitive, and if i see the "wrong" case in my {{ModId}} i will have a fit and be forced to fix it

lucid iron
#

this is true.

vernal crest
#

But I like to preserve case wherever possible in case of incidents.

uncut viper
#

It's a good thing we all know the correct way is {{modId}}

lucid iron
#

anyways something something const tokens pls pathos

vernal crest
uncut viper
rigid musk
#

man... now i have to figure out how to do building stuff

lucid iron
#

well u know what c# consts are like right

#

tokens that only resolve once at load and never again

tiny zealot
#

stop distracting me guys i'm trying to publish

rigid musk
#

Chu was it you who said to make an obelisk, if so I'm cursing your bloodline /silly/j

uncut viper
#

no please explain the concept of a constant to me /lh

rigid musk
#

(texturing that thing was awful, just fyi)

lucid iron
#

so that aba can alias {{ModID}}_Hiria

vernal crest
#

I'm thinking I might just learn how to create keyboard shortcuts that insert text for me

uncut viper
#

so you just want the ability to set any token as immutable... but for what purpose

#

if it's immutable, can't you just use not a token

rigid musk
vernal crest
#

Thank you Lily I do know how to copy and paste lol

rigid musk
#

more talking about the windows v thing

#

cause it keeps the whole list lilguydance

#

or a list anyways

uncut viper
#

gotta turn it on specifically though, or at least I did

lucid iron
rigid musk
#

Was it a toggle? I don't even remember honestly I've had it on for so long now xD

uncut viper
#

it is convenience, but it seems like more than negligible amounts of work to request someone else do for your convenience SDVpuffersquee

lucid iron
#

yea urite

#

i'll PR this one day YuniHappy

uncut viper
#

im not sure if dynamic tokens as they are even have an option for immutability

#

kinda goes against them being called dynamic

lucid iron
#

well i think i'd open a new field

#

ConstTokens

#

I can't believe they aren't dynamic 3sSmolMiku

uncut viper
#

would it really be that much different than checking if the value changed (which it didn't) in terms of performance, though?

#

a constant dynamic token wouldn't have conditions to check, and it'd never update

lucid iron
#

yea im not really sure

#

the idea is that cp literally just does a sed for you ofc, never even tries to access it again

uncut viper
#

hell tbh content patcher might already have immutable optimizations for dynamic tokens without conditions

lucid iron
#

yea but wouldnt dynamic tokens without condition still be able to take in tokens think

#

unless they just dont update in that case?

uncut viper
#

well then they're not constants

#

unless the token they use is immutable

lucid iron
#

things ill find out if i do this PR i guess Dokkan

vernal crest
#

Who shall I marry

uncut viper
#

the concept of an immutable token does ofc exist for things like modId, I just dunno how dynamic tokens implement them, if they do

rigid musk
lucid iron
#

i really gotta finish the cp docs translation but the 2k line long tokens.md is scary

rigid musk
#

alternatively: Krobus
always the best option tbh

vernal crest
#

Yes, vanilla NPCs. I chose Leah. Haven't used her as a guinea pig before.

uncut viper
#

I can translate it for you if you want chu. just tell me what to toss into Google translate /j

vernal crest
#

Krobus will behave differently so I cannot choose him. I probably should test him too though.

lucid iron
#

harvey

#

i do actually toss some phrase into googly

#

then i go "no thats not what it means SDVpufferpensive "

#

wait a sec

#

theres a thing called AliasTokenNames yggy

uncut viper
#

there is yeah

lucid iron
#

it is not quite a const token but it seems useful for things like cmct

uncut viper
#

"not quite" is still doing some heavy lifting i think since its still exactly the same as a non-aliased token SDVpuffersquee

#

wouldnt be able to do {{ModId}}_Hiria with it

lucid iron
#

yea nop

uncut viper
#

you could od like. {{M}}_Hiria ig

lucid iron
#

.m

#

yea i didnt mean that it would be useful here, only that i vaguely thought about wanting something like it b4 Dokkan

vernal crest
#

Game. Wai you do dis

tiny zealot
#

(i use AliasTokenNames for my C#-provided tokens)

#

note that you can't use the alias names (i.e. the short ones) inside your DynamicTokens section, or at least you couldn't back then and i haven't checked whether that's changed

fierce vault
lucid iron
#

yea if u want to

#

like if you were thinking of making a dynamic token that's literally just {{modid}} then u should do this instead

fierce vault
#

I'll have to keep that in mind, because the shorter the mod id, the better. Probably

lucid iron
#

i think modid is more readable

fierce vault
#

How about MID

#

or ID

lucid iron
#

i mean the point is like, if you post a snippet with those out of context

#

someone's gonna ask for clarification on what mid is

fierce vault
#

Oh...

lucid iron
#

most ppl won't ask about modid

#

do what u want tho tools exist to be used

fierce vault
#

Could always leave a comment in the json if sharing it around

lucid iron
#

parser eat comments rn

uncut viper
#

also whats the point of doing tghat if you need to explain it anyway

#

ModId is self-explaining, standard, and expected

#

i would call that better versus raw length

vernal crest
#

If you find it easier to write, it might make the workflow easier.

fierce vault
lucid iron
#

but yea in general programming stuff it is recommended to have descriptive variable names instead of x so that you dont come back months later and go bolbwaitwhat

tiny zealot
#

as descriptive as necessary, but no more

lucid iron
#

cp doesnt have fancy intellisense tho, so i understand if u really do want to just type {{m}}

fierce vault
#

I guess readability is a good programming habit

uncut viper
#

if i want to alias it to {{ModIdFromManifestJsonUniqueIdField}}, you cant stop me

tiny zealot
#

x is perfectly fine as, say, a loop index

lucid iron
#

no i can only SDVpufferpensive in the distance

vernal crest
#

Does anybody feel like peering at the engagementResponse method and explaining what I am doing wrong in my interpretation of it? No pressure, I am just curious.

uncut viper
#

(tbh, unless you're literally iterating over like, x and y axes, i do like loops better when the iterator variable is given a name for what its iterating)

#

(i dont always do that myself, no, but i do like it better)

lucid iron
#

i use i/j bc im used to it

#

wonder which cs textbook spread the standard LilyDerp

vernal crest
#

I do not like any single letter variables

#

I would change the e. if I wasn't scared someone would bop me for it

uncut viper
#

well i is for index innit

lucid iron
#

u can change e i think

#

handlers only care about position and type

uncut viper
#

you can also change the type, if you change it to a parent class

tiny zealot
#

i frequently use a single letter when doing a single iteration, usually the first letter of what the thing or class or whatever is. e.g. foreach (var p in Persons).
if i am nesting loops then i start to use longer names

uncut viper
#

i have on occasion accepted (object? sender, object e)

lucid iron
#

the stuff that do care about name in modding is like

vernal crest
#

I can change the e, I have done it before as part of figuring out what it was.

lucid iron
#

harmony patches

#

pintail stuff?

tiny zealot
#

but i'm also a grognard and i enjoy C and i lived through the great unix vowel famine, etc.

lucid iron
#

other duck typey things probably

uncut viper
#

im a foreach (var person in Persons) girlie myself

lucid iron
#

what about foreach (var prsn in Persons)

uncut viper
#

why are you storing prisons in the Persons list?

brittle pasture
#

it should be the other way around

fierce vault
#

Does this work as a mod id token? {{mod-id}}

lucid iron
#

isnt this longer LilyDerp

#

it won't unless you do the alias

uncut viper
#

i also don't know if aliases like special characters

#

besides the standard dots and underscores

lucid iron
#

just to be clear, you know that {{ModId}} is a token provided by default right

fierce vault
#

I think so?

#

I think it'll work fine

lucid iron
#

what is your goal in aliasing to {{mod-id}} then, just for kebab case?

fierce vault
#

Dynamic tokens? I get that it is longer, for some reason I thought I might like it better that way. I might not end up using it though.

uncut viper
#

why do you want to dynamic token the modid token

fierce vault
#

My npc

uncut viper
#

that doesnt answer it, i mean why would you want to alias modid to mod-id

#

you can just use ModId in the dynamic token

lucid iron
#

well the earlier discussion is about add dynamic token for {{ModId}}_Hiria(so something like {{ModId}}_ParcyNPC for you)

uncut viper
#

yes, but then what is the point of aliasing modid

#

if you are not even going to be writing modid

#

or mod-id

#

also if ichor is correct you cant even use aliased token names in dynamictokens

fierce vault
#

I think I saw in the wiki that I can just set up a token as my npc name without the mod id even present, so I don't even know what I'm asking this for anymore. You are right. I think I had forgotten that

uncut viper
#

the modid has to go somewhere

tiny zealot
uncut viper
#

if you're making a dynamic token that just turns {{ModId}}_ParcyNPC into just {{Parcy}} then thats fine, but it still needs that modid in the value

#

but then in that case the aliasing is pointless

fierce vault
#

Yes, that was what I was originally going to do, before I forgot it... Sorry, my question was pretty pointless

lucid iron
#

the aliasing usecase would be {{M}}_ParcyNPC but as discussed thats bad for readable Dokkan

uncut viper
#

nothing to apologize for, i was just very confused for a moment

lucid iron
#

no its ok we r just the peanut gallery here

fierce vault
#

I confuse myself sometimes

uncut viper
#

if you dont want to use a dynamic token and do just wanna write {{mod-id}}_ParcyNPC everywhere you still can if you like mod-id better than modid

#

you will be asked every single time you post a json in here though "why is your token mod-id"

fierce vault
#

lol

vernal crest
fierce vault
#

yup

#

I need to go back to the CP docs for ALL the basics. I had a hard time navigating github last time, but I think I've gotten better?

vernal crest
#

Yes, me seeing that is what started this entire conversation lol because I wanted to know if it was worth doing. I don't think I want to risk the key:value bugs though.

uncut viper
#

you might give blueberry some company, so far its only blueberry ive ever seen complain about them

#

right before blueberry asks why its always only them experiencing them

vernal crest
#

My approach for perusing github docs is that if a file in github ends in .md, I will peek at it

lucid iron
#

i think blueberry is some kind of token menance

fierce vault
vernal crest
uncut viper
#

tbh it would probably take me at least 10min of staring at it before i remembered they existed too

vernal crest
uncut viper
#

when given an actual json to look at my mind works a lot differently than thinking about it in abstract

vernal crest
#

Not unless you're an X-file

lucid iron
#

this particular thing is probably a bug anyways

#

in theory it will one day be fixed, or marked as limitation

uncut viper
#

if i have actual code to look at then my brain looks for like, syntax first, then typos, expected fields, etc. doesnt even think about bugs in the underlying system til the end

vernal crest
#

My testing resulted in the same conclusion, so I think you did do it correctly ^_^

#

Okay, engagement dialogue testing over. Time to return to my work on my actual NPC before I procrastinate myself into creating a new one for no reason.

rigid musk
#

What type identifier to rings have?

#

(is it just (O) ?)

vernal crest
#

That's their qualifier, yeah.

fierce vault
#

I made 4 others before I even knew I was making a mod, so I've definitely gotten side tracked before. At least, I think that's how it went?

rigid musk
#

thank you :3

vernal crest
#

Because they are sneaky and want to trick you into thinking they work the same way as other objects.

rigid musk
#

they 100000% do definitely absolutely forever

brittle pasture
#

Rings are cursed - they are (O), but in C# code they don't actually inherit from Object, so if you're careless with casting your code will blow up

vernal crest
#

That caused me much agony for a while trying to figure out why their names and descriptions didn't update like other things

#

I have made myself some code snippets so I can just type "h" and then hit tab for VSCodium to insert {{ModId}}_Hiria.

fierce vault
#

I visualize myself just copy pasting my mod id over and over. Not sure if that’s even technically easier in the long run lol

vernal crest
#

Easier than typing the mod ID out?

fierce vault
#

maybe

#

I do not have the short version yet though

#

So, I might not actually mind it

#

the token, i mean

vernal crest
#

Using the token is definitely easier if you ever find yourself changing your mod ID for any reason (as I have done during the development of Hiria).

fierce vault
#

Do you have a 'hardest part' when it comes to the development of an npc?

rigid musk
#

Yes. /silly

fierce vault
#

Lol

vernal crest
#

For me, definitely trying to cram the characterisation into the bits-and-pieces approach of the video game. I've been working on Hiria for nearly a year and I still struggle to find her voice and haven't decided on a story arc properly.

fierce vault
#

I still have a majority of basic dialogue to write, and no real deeper understanding of my character yet.

rigid musk
#

Honestly I would agree with Aba there, though I guess it's a bit different for me since for me it was hard because I wanted it to fit the vanilla NPC but there's... not... much to work with, with Qi so

#

Characterization is really hard B')

vernal crest
#

I loathe writing the technical aspects of heart events because they're so intensely tedious to test and act so unpredictably, but apparently I try for more complex event actions than a lot of people so that's a me problem lol I test my events dozens of times, usually after every few lines that I've written.

#

(Uh by lines I mean event commands. I use multilining so they're on separate lines for me.)

rigid musk
#

pain I've gone through my entire i18n at least 5 times

fierce vault
vernal crest
#

Yes I was clarifying my own message unrelated to yours lol just bad coincidental timing

fierce vault
rigid musk
#

5 times

#

If I kept saving old versions like I was doing at the start I feel like I'd never get anything done

vernal crest
#

I haven't revised Hiria's non-event dialogue much so far, but that's largely because I've still not found a way of actually doing the technical aspect of her dialogue that I'm happy with so I just keep avoiding it haha

rigid musk
#

🤝 Sending you all of the good luck vibes

vernal crest
#

This is where versioning via git is very helpful

fierce vault
#

I just like seeing how a line has improved since its conception. It makes me confident that it is definitely better

vernal crest
#

All the saving of old stuff without actually keeping dozens and dozens of files around

fierce vault
#

I have one, just with nothing on it

#

Oh, all the older versions are in the same file, btw. They are right next to each other for ease, so I can move on or compare at a whim

vernal crest
#

In the same file? I would get so confused and my files would be like 20x longer than they are haha. I have redone my entire dialogue file four times so far.

hard fern
# fierce vault Do you have a 'hardest part' when it comes to the development of an npc?

I think the hardest part for me is execution, because im looking at my npc as the author/creator, so of course i know everything about them, but i need to think about it from the perspective of an outsider. Someone who is just beginning to learn about this character, and i have to figure out ways to slowly dish out bits of their personality as the relationship deepens

#

That and i really need to remember to actually write down my ideas instead of sleeping on them and then forgetting XD

fierce vault
#

Oh, been there

rigid musk
#

It's why I have a little discord server i use as a notes app - every time i have a random idea i put it in there... do i do them? ... we don't have to talk about that

#

but they're there :)

fierce vault
#

I have five other npcs that will likely not see the the light of day, so…

rigid musk
#

I only have one other NPC I plan on creating... plan on

#

But I have to finish this mod first ... I have to

#

'finish' anyways (aka implement everything I planned on implementing)

fierce vault
#

I can NOT turn my mod into an expansion, when I haven’t even finished my first and most important character.

rigid musk
#

heh oh but you could...

#

ooo scope creep ooo

fierce vault
#

But that doesn’t stop me from drawing the others

hard fern
#

I've been twiddling my thumbs essentially

rigid musk
#

Truly I don't think I can legally call my mod 'Friendable Mr.Qi' when I've added so much that it's essentially its own expansion as of now... the only thing I'd have to do is add more NPCs and it truly would be (im not doing that)

vernal crest
#

I have decided there are no expansions in my future. I like fewer, more developed NPCs than a higher number of NPCs with less depth.

rigid musk
#

(im still keeping it as friendable mr.qi, i don't want to change it, its too late)

#

Honestly same, I don't have any intention of making a full fledged expansion. The most im doing with that is helping Person with one of their mods

#

But I didn't have to make any of it initially so B) it's easier that way

hard fern
#

I have an expansion im working on as my "big passion project" so to speak, mainly because I've always wanted to bring my ocs to life

#

And also partly just because i can XD

vernal crest
#

I make single-purpose characters. I've never had "OCs" that travel with me, so to speak.

#

Hiria did not exist before my idea for this NPC mod and she will not exist outside of it.

fierce vault
#

I hope people wouldn’t be too disappointed if I introduced my other unique character concepts as basically one off interactions with my main npc.

#

I’m not sure if I should, honestly…

hard fern
#

🤔 these npcs haven't really traveled with me, i actually kinda came up with them on the spot. But i grew attached

#

I uhmmm scope crept myself

fierce vault
#

Funny, my npc concept was from a Stardew valley themed dream from years ago

hard fern
#

I think my main "idea" i had was sort of just thinking about what is outside of the valley.. like a completely detached town

#

Because the new town expansions like rsv, es are attached to pelican town in some way

#

I felt like my npcs would never interact with the residents of pelican town 🤔

fierce vault
#

Detached towns seem to be morphing into the only major compat possibility for new mod authors these days.

fierce vault
#

It wouldn’t really fit the 'vibe', or lore, if you will

vernal crest
#

The DTZ NPCs don't interact with Pelican Town. It does make it hard to get to know them, I must say.

fierce vault
#

Probably because you’d have to go out of your way to meet them, right?

#

Not just meet, but also consistently visit

vernal crest
#

Yeah. It makes it hard to gain friendship with them because I'm not seeing them incidentally. I imagine that for people playing with friendship decay enabled it'd be even worse.

#

Not necessarily a reason not to do it, but important to keep in mind, I think.

#

The VMV NPCs also don't interact very much but because VMV itself is so appealing to visit for the progression stuff, it made it easier to get incidental chats with the NPCs in.

fierce vault
#

I think people would really need to be drawn in by the mere concepts of my npcs if they lived in their own teeny tiny town, in order to want to visit them. I hope that people will feel that way about the singular character I’m making, who is a bit out of the way.

Partly why I want to offer more with my mod than just the character itself. Stuff to unlock I mean…

inner harbor
vernal crest
#

Yes that is definitely true. But RSV was either made by a team or by someone with WAY more pep than I have xD

hard fern
#

🤔 i remember when rsv was still in the works

#

I feel old

inner harbor
#

Lol me too. And it had help but is mostly Raf.

fierce vault
#

I don’t see how a 50, or even 10+ character expansion could be made by any average npc modder. CA, the game developer, is NOT an average example, that’s for sure

#

(One person I mean)

brave fable
#

RSV was absolutely just raf being a progress-seeking missile who had no problems with doing and doing-again until things came together

lucid iron
#

its effort x time

#

im counting talent under effort but they r kinda same thing here

inner harbor
#

Also i forgot i was in making mods and thought you were saying you were intending to only play standalones

hard fern
#

😔 effort x time... Unfortunately i am lacking in the latter

lucid iron
#

a lot of expansions r like, 80% one person (dont quote me on this number)

inner harbor
#

I think you need to be sble to hyperfocus

lucid iron
#

lemurkat is in this group too Dokkan

vernal crest
#

Lol no I am definitely a player of expansions. But I could not afford the energy to be a creator of an expansion with the depth I would need it to have and have no interest in producing an expansion with less depth.

fierce vault
#

Maybe I could do it. I just don’t know if it is worth years of my life, because that is what it would take

lucid iron
#

its a hobby

#

do what feels good

brave fable
#

if you're happy spending free time working at the computer then go for it, but it adds up like you wouldn't believe

#

slippery slope from attraction to obligation

fierce vault
#

I don’t feel any pressure to go further than just finishing what I started, luckily

#

At least, not right now

brave fable
#

i still think it's fun and productive after a good few years, so it's up to you

fierce vault
#

If I can finish this one, with all I would have learned, maybe it would be worth it then

vernal crest
#

I'm coming up one one year, which is the longest I have ever stuck with an effortful hobby

fierce vault
#

That’s no easy feat in my opinion

half tangle
brave fable
#

usually my interest fades after a year or so, surprised i went 3 years of modding before taking a solid break

hard fern
#

I have ideas and i sure will make them
-basically my sole motivator.

I got pretty burnt out last time but i feel like this time my ideas are too cool to not make

#

(well, and so long as i still play the game...

#

)

fierce vault
#

Someone has to make the cool stuff. I haven’t seen an npc even close to mine before, so on that merit alone, it needs to exist, lol

#

One of my biggest fears in regards to this, is no longer wanting to play the game at all, when I can finally play it with my own npc in it…

hard fern
#

Oh yeah i feel that

#

It's kinda hard to keep your interest in playing the game when you havent played in a while

vernal crest
#

That is not a fear of mine because I know I will not want to play xD

lucid iron
#

imagine playing gamew

vernal crest
#

I will need to wait 3-4 years before I will want to play with my own NPC anyway. I have to wait until I have mostly forgotten about her.

hard fern
#

I want to play myself, but idk i got bored. XD which is why im making mods to make myself less bored. But said mods take time. So in the meantime i am still bored

brittle pasture
#

it's totally normal, like actors who don't watch their own films

lucid iron
#

i do try to play a little bit though

#

but i play one day and then my brain go "ok work done time for fun C# times"

fierce vault
#

I will hopefully maintain mine for a few years, forget the details, and then come back to play my mod and be pleasantly surprised by it.

vernal crest
#

Oh yeah I suppose if other people play with Hiria I might not get the chance to forget about her. Sometimes I forget that other people might be interested in playing with her.

brave fable
#

no, i think you'll come back to play your mod and then go 'hmmm i need to update this dialogue, very outdated. could be improved. maybe adjust the outline on these sprites too. why did i draw the hair like this? the lighting is all wrong'

fierce vault
#

😦

brave fable
#

as was foretold in the ancient texts (making-mods-general)

fierce vault
#

You could be right

hard fern
#

n

fierce vault
#

lol

#

I hit enter

vernal crest
#

Every single time I go to draw a new outfit for Hiria I tweak some part of her skin, so that tracks.

fierce vault
#

I’m already updating my character’s good portraits to be even better, and I don’t need or want to at the moment anymore!

#

It was on a whim

#

and now I need to finish what I started

lucid iron
#

since u sound like proud parent i have faith you will finish ur npc SDVpufferthumbsup

brave fable
#

i made a blood pact to stop adjusting the portrait sprites. so what happens? i make new ones instead. this world is a prison

brittle pasture
#

I wonder if I should jump on the NPC train. Most likely not any time soon, but, well, I made that Carpenters mod for a reason

#

there's a reason Leah is not named Leah in the demonstration video

lucid iron
#

tbh the more i hang out here the more i become convinced that npcs are cursed and i should never make one

fierce vault
#

hard fern
#

I made my portraits too small and now im redoing them (joy to the world)

lucid iron
#

moving around a temp anim sprite who sometimes give you dialogue box seems easier for my purposes

fierce vault
#

Lol, you should go for it then

vernal crest
brave fable
#

give your critter a tragic backstory and revenge plot

lucid iron
#

yep

fierce vault
#

But beware, something small can easily get out of control if you get invested enough

lucid iron
#

u should understand that my theoretical npc is a waterfowl, this doesn't really apply if you want a normal 16x32 human npc that walks

hard fern
old edge
#

Alas, After some meticulous tinkering, I’ve succesffuly integrated Hot Reload into my Arch Linux setup for Stardew Valley modding. A true testament to technical mastery.

fierce vault
lucid iron
#

he does talk, but he really doesnt need to be a NPC.cs for that

fierce vault
#

Nice

lucid iron
#

this is partly what i made trinket chatter stuff for anyways Dokkan

#

water birbs just dont move very much tho

#

they r like

#

stand on a pole all day being birb

#

or float in water all day

hard fern
#

Oh what a simple life

brittle pasture
#

swimming in water, dispensing random wisdom to farmers passing by

fierce vault
#

And gifting useless trinkets? Or is that only crows? SDVkrobusgiggle

lucid iron
#

yea water birbs r too dum for that

#

they might yoink ur food tho

fierce vault
#

Add a chance of it robbing bread from your inventory!

#

If you can do that, anyway… might not be so simple without an event

lucid iron
#

well, i would do most of this in C# so its fine

hard fern
#

A bird, on water/floating, buoyant and serene/the life of a bird

lucid iron
#

pottery

brittle pasture
#

well birb robbing you when you talk to it is doable in CP

fierce vault
#

It would be the after message that would make it worth it though, otherwise players might think it is a bug…

#

Oh, unless

#

You made the dialogue about it stealing the bread with no discretion whatsoever

lucid iron
#

at any rate i dont see myself starting this anytime soon, it lives as vague imaginings in my head

fierce vault
#

Well, theorizing can be a fun hobby in and of itself

lucid iron
#

what i am more interested in doing is not the npc part but instead the theoretical volcano dungeon adjacent thing

fierce vault
#

A dungeon, you say?

lucid iron
#

just gotta accumulate more map nonsense and then it become possible Sleepden

brittle pasture
#

nonhardcoded lava when

lucid iron
#

spacecore has dungeon feature if u want something like that rn

fierce vault
#

Ah, I heard about that

#

I don’t think I’ve seen it in action though

#

i have no dungeon mods

lucid iron
#

sword and sorcery uses it i believe

#

its a relatively new thing

rigid musk
#

I fgotta figure out why the uhh actual trinket icon isnt loading but yippie yippie thank you chu

vernal crest
#

Snake bite your hat

rigid musk
#

She's hungry ;3

rigid musk
vocal zealot
#

would a 256x256 portrait be counted as HD or still pixelated? i heard stardew portraits are mostly 64x64

uncut viper
#

anything over 64x64 is an HD portrait

#

and will require an additional mod dependency to use

vocal zealot
#

what would the 'additional mod dependency' be?

uncut viper
#

Portraiture, typically

vocal zealot
#

ahh got it SDVpufferthumbsup

lucid iron
#

There's a few others (scale up 2, spacecore) but portraiture most common

golden spire
gray bear
versed wyvern
#

I'm slightly confused by the note about the dialogue event command $v talking about the command having to be at the very beginning of the dialogue, does that mean on a per-line basis, or the command has to be literally the only thing in the dialogue key?

hallow prism
#

my understanding is that it needs to be at the very start (right after the opening quote), but other stuff can come after

golden spire
#

only mod or even vanilla file I can see with that command is your mod Lumina 😛

hallow prism
#

and i used a very simple thing for it

#

so i can't really tell what are the extend of the use cases

golden spire
#

flashbacks.. or something? -shrug-

vernal crest
#

The wiki says there is a debug movie command already.

golden spire
#

that just plays it

#

but once done

#

you cant rewatch

#

the peformance is over

vernal crest
#

What does it do when you use the command again?

golden spire
#

just says the performance is over for the day.. like you normally get for watching it.

vernal crest
#

Does it do that too if you use the ID rather than just letting it default to the day's movie?

golden spire
#

tried both but maybe because they were the same id, I don't know if switching to different ones would work.. but a fiddily worka round

#

ok, I realised what was doing it, it's because I'm running it in the theatre still, if I run outside it will play again fine..

vernal crest
#

Oh that's a relief

golden spire
#

so, mental note for anyone you have to not be in the theatre after watching it to be able to trigger it again

vernal crest
#

Huh, it won't work for me even after leaving the theatre. It just says the movie has concluded and warps me into the lobby, but when I go to leave the theatre it asks if I want to leave without watching the movie. Did you purchase a ticket to watch it the first time?

golden spire
#

yes and my game save is me already inside after purchasing

#

but now outside with no ticket and it will run fine.

#

I don't know how often people use/test this command, so there probably are a number of quirks with it.

vernal crest
#

Oh I bet I know why mine went weird. I had already forgotten but I used debug endevent to make the movie finish faster haha

#

Yup that was definitely the problem. I actually watched the movie this time and was able to play it three times in a row (leaving the theatre in between like you said).

crisp rivet
#

This is my json file and the Velociraptor image (the Velociraptor2 image is just a different color). I want them to sleep with different motions. However, when they sleep, they all sleep with the same motion, and sometimes during the day, the sleeping motion is visible. What should I do?

tawny osprey
vernal crest
golden spire
#

during a movie

#

but I think most are useless

vernal crest
#

I'm not sure what you mean? I added the info about needing to go outside the theatre to play a movie again

golden spire
#

sorry I overwrote the initial part of what I was saying.. I initally wrote: "very nice does make testing the script/commands easier"and then just added on general chatter about the "movie script" in general.

vernal crest
#

Ah I see haha

mighty ginkgo
# crisp rivet This is my json file and the Velociraptor image (the Velociraptor2 image is just...

i don't know how to have multiple different sleeping textures, since the SleepFrame is a single image as far as i can see, but the sleeping frame appearing during the day is might be because the index 16 is used as "eat" frame according to this https://stardewvalleywiki.com/Modding:Animal_data#Spritesheet_layout . i have no experience dealing with animal textures/animations so take it for what it's worth

crisp rivet
#

thank you!!

fathom hound
#

Does anyone know if I can texture the mushroom log to have different sprites depending on which mushroom’s produced?

golden spire
#

as it's producing or after it's produced? I'd probably just make a custom machine that produces that mushroom

fathom hound
#

That’s what mushroom propogator does. I just want a retexture

brittle pasture
fathom hound
#

But wasn’t sure if I could potentially tweak it somehow to have custom frames SDVpufferpensive

brittle pasture
#

and by default it will be one of the unique anim frames I believe

#

you can try adding the sleep frame below the main frames and set SleepFrame in animal data to that, not sure if it works though

brittle pasture
#

just have the "animation" be a singular frame

#

though hmm that wouldnt work when the machine is ready

fathom hound
#

Aw SDVpufferwaaah

brave fable
#

maybe CA didn't win after all 😌

fathom hound
#

The blueberry stays victorious

lucid iron
#

Anaira what if u just make mushroom log <-> mushroom propagater recipe

fathom hound
#

I wanna play as close to vanilla as possible, I just like how blueberry’s log looks …

brittle pasture
#

though I wouldn't be opposed adding something like ReadyEffects to a certain machine mod...

fathom hound
#

(Idk how to say that without feeling awkward)

#

Selph always coming in clutch

gray bear
#

actually i'm not 100% on how that works haj_sweat

crisp rivet
#

everybody thankyouo I gonna try these

stray sky
#

does anybody have a list of "positive energy" foragables by any chance? SDVpufferheart

#

and does a foragable that gives 0 energy count as positive energy

hard fern
#

technically since it's not deducting any it's "positive" 🤔 but idk how the game would consider it

vernal crest
#

Have you slept at least one day in game? Person with the NPC schedule issue who just deleted their message?

lucid iron
#

!unpack

ocean sailBOT
#

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

lucid iron
#

Look at edibility in Data/Objects

hot oasis
#

sorry i deleted my message because i noticed somebody else was asking a question and didnt want to intrude haha..but no i havent!! ill try that!

stray sky
#

ahhh no no it's okayy!! please go ahead SDVpufferwaaah SDVemoteheart

lucid iron
vernal crest
lucid iron
hot oasis
#

Well i appreciate it! Im not familiar with the etiquette! But i appreacite the help because I slept and that did solve the issue!!

#

Thank you!

tiny zealot
hard fern
#

I propose: shorts juice?

craggy cape
#

what about Egg juice

#

also im ngl i wanna make a "no more bow legs" mod for every sprite with bow legs, and maybe include some custom NPCs too 5thonking

#

i mean it doesnt seem too difficult, only challenge will be getting the sprite edits to look good

tiny zealot
craggy cape
#

LMAO

#

atp i might as well make my own sprite mod for the base townies atleast SDVpuffersquee

tiny zealot
craggy cape
#

omg yes

#

"the label on this says its from sam.. maybe you should fulfill his prank at the Luau"

#

alternatively the description is just
"why would you make this"

steady gale
#

hey, everybody -- I'm extremely new to making mods (like just got hands-on with .json files for CP for the first time literally yesterday). I've been using the pathoschild github link and also the sdv wiki modding guide as my lifelines, but wanted to clarify here for some extra help. is there any way through editing .json files to make a heart event cutscene happen during a different time of day?

#

I was trying to work with SetProperties, but I think I'm misunderstanding what that command actually does

spring marlin
#

is it possible to have a shop trade take multiple items?

calm nebula
tiny zealot
#

events are a string->string dictionary, and the preconditions for the event are part of the key. in order to change a key, you have to delete the entry for the old key and add a new entry for the changed key with the different parts

steady gale
#

ah, I see. thank you!

tiny zealot
#

the other headache involved with that is that there is no way in CP to grab the content of the event, so you will have to copy its contents into your json. that's irritating to have to do and it hurts compatibility, but alas

spring marlin
brittle pasture
#

Item Extensions as mentioned by atra

steady gale
tribal ore
#

That way you won't get two versions triggering by accident

#

Call it {{ModId}}_Event_10heart or something

tiny zealot
#

yeah that's essentially what you have to do even if you don't want to change the event content

brittle pasture
tiny zealot
#

one of many reasons i am lobbying (not fervently) for event data model in 1.7

spring marlin
steady gale
#

Yes, I also saw the null option! I'm a little too scared I'll muck everything up that way, to be honest 😬 I've had some decent success changing just the dialogue options, so I'm content just sticking there for now

brittle pasture
#

like at which point we're trying to make a scripting language jn json

steady gale
#

maybe i'll revisit once I feel more comfy haha

tiny zealot
#

renaming keys for this sort of situation seems extremely useful, but at least for this i'd rather just have a data model for events

lucid iron
#

Rename key is kinda like CopyEntries

tribal ore
steady gale
#

yeah, I tried to change a farmer emote and got stuck in a perma-emote loop and was like o_o

craggy cape
#

i seen a mod on Naver that changes the images of elliotts events to have a night time and day time, but i cant confirm if it works + it was like, posted in 2020 or so

tiny zealot
#

then again, renaming keys is fairly trivial to do if you use C# and SMAPI's content API so maybe that's enough solution

craggy cape
tribal ore
#

FWIW, I think making the boat scene happen at night would be interesting, so I say go for it! Just make a backup copy of your work before and after so you can easily roll back.

craggy cape
#

^

steady gale
#

Thank you guys so much for the help, I get a little shy talking for the first time in servers, so you guys are amazing 🥺

lucid iron
#

Ah do they just do a different temp map

craggy cape
steady gale
lucid iron
#

That is easier than doing the key yea

brittle ledge
steady gale
#

I sure will!!

viscid ferry
#

Hey, people!
I just downloaded ContentPatcher and I was wondering if there was a way to only replace a map with my own if the player has completed perfection, using the "When" field?

brittle pasture
#

Farm_Eternal is the mail flag for perfection

viscid ferry
#

Thank you!SDVpufferheart

calm nebula
#

Or use spacecore trigger actions to launch the event

steady gale
#

thank you!

viscid ferry
#

Ahh, Thank you!

tribal ore
brittle pasture
shadow pagoda
#

I am doing things related to the CC where the player can do the normal or joja route. Ik the regular route is locked once the player buys the joja membership, but I want to verify when the joja route is locked. Is it when the player finishes a bundle, the entire room, or the entire CC? I just finished the bridge upgrade doing the normal route and Morris is still offering me the membership the day after the cutscene.

tribal ore
#

I don't think it's ever locked. Not until you finish the CC, right?

tiny zealot
#

as long as you can still enter the jojamart, you can buy the membership (including on the day when you finish the last bundle, which i believe can cause problems)

steady gale
#

one more quick question: does anyone know why this would be happening?

#

This is my SMAPI menu, and Elliott's 10 Heart Cutscene is what I've been working on -- it's been doing this ever since I set up the bare-bones manifest.json and content.json

#

(so sorry if this is a stupid question, I tried looking for answers before coming here, and I truly cannot stress how new I am to all of this 💀)

tiny zealot
#

did you try writing a mod in C# first?

steady gale
#

omg

#

yes

#

I didn't realize it was still in there, thank you!!!

tiny zealot
#

np

#

at this point you should know that a single mod cannot be both a C# (SMAPI) mod and a content pack for another mod

#

in your manifest.json, you specify exactly one of EntryDll (C#) or ContentPackFor (content pack) and the other one simply isn't applied

spring marlin
#

is there a good example crafting recipe mod for content patcher?

tiny zealot
#

so if your mod is still doing C# and you are working on content patcher you will need to switch over

steady gale
#

I do, I had scrapped the C# attempt, I didn't realize it was still in my Mods folder

tiny zealot
#

ah, i see. very good then

viscid ferry
#

Hi, how would I go about making the bottom layer of map move?

golden spire
#

move? what do you mean?

#

animated?

tiny zealot
normal root
#

Hey yall, im working on a greenhouse upgrade mods, and am having troubles applying the new map. I use a content patcher thing using "Target": "Maps/GreenhouseOverhaul_Greenhouse1" and targets "FromFile": "assets/Greenhouse1.tmx", and inside my upgrade i use "IndoorMap": "GreenhouseOverhaul_Greenhouse1", but when the upgrade is applied, the new map does not get applied as well. The weird thing that happens is that if I leave the game and reopen it the map is applied. Is there any way to apply the map immediately?

odd ginkgo
#

Does the map update the next day? Like if you upgrade and then go to bed? It could be that you want to change how fast the patch is applied.

#

look for "OnLocationChange"

normal root
#

It only works when I get back into the game

#

I'll try using OnLocationChange

#

It still doesn't work, only when i reload the game

#

Could it be that you cant make new maps using Action: Load

#

and I have to edit the original Greenhouse?

golden spire
#

you can type patch summary yourmodid to see what your mod is doing what things are or are not applying

#

in the smapi console

normal root
#

The map is loaded and the conditions match, but it is not applied

hot oasis
#

Hi guys! I was able to change Pierre's hours through Tiled and EditMap..just wondering how to have it opened on Wednesdays! Thanks!

pine elbow
#

So I wanna make a mod that adds a crop question 1 how do I start question 2 what do I use I've never made a stardew mod

normal root
# pine elbow So I wanna make a mod that adds a crop question 1 how do I start question 2 what...

You'll want to use Content Patcher to load it in --- no coding required. See https://stardewvalleywiki.com/Modding:Content_Patcher for how to start with content patcher and then https://stardewvalleywiki.com/Modding:Crop_data to see how to add crops. If you have questions during the process feel free to ask

Stardew Valley Wiki

Creating Content Patcher packs

Stardew Valley Wiki

← Index

urban patrol
#

does anyone know if/how i could change the sound that plays when clicking on a door to warp to a new location? not for all doors, just a specific one

rose path
unreal spoke
#

You forgot to close your Entries with a }.

#

Same issue for all of them btw.

#

... looks like you're missing a closing ], too. Remember: Every opening { or [ needs exactly one closing } or ].

rose path
#

oh 😭 thank you lol

ornate drift
#

im having issues trying to replace elliotts sprites
when i change it here it doesnt change the sprites at all ingame

#

i also noticed i was missing and i in "assets/Eliott" so i fixed that but it still doesnt work

ornate drift
#

oh nvm it works

uncut viper
floral sedge
#

👋

#

Is there anyone here who could give me a hand with a forked event?

urban patrol
#

what’s up with it?

floral sedge
#

well, I'm using a regular event as a template, but I changed the map and added a forked question

#

and now I'm really confused with the info in the wiki and several blogs on modding stardew

#

some say I have to write the forked answer on "Data/events/"original map" and others that it has to go in "Data/Events/Temp"

#

And I'm honestly real confused

urban patrol
#

does your event take place in a location that you created?

floral sedge
#

no

#

I just used the map for sebastian event

#

the one in the cliff

urban patrol
#

do you use the switch to temporary map command during the event?

floral sedge
#

yes

urban patrol
floral sedge
#

Sorry ><

urban patrol
#

!json and actually while we’re at can you upload your event 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.

urban patrol
floral sedge
#

"Action": "EditData",
"Target": "Data/Events/Mountain",
"Entries": {

#

that part?

urban patrol
#

yep! so your location is Mountain

#

try putting your fork as a new entry under Mountain, and if it throws an error, then put it under Temp

floral sedge
#

I will try that

#

thanks ^^'

urban patrol
#

np! and if someone else contradicts me listen to them lol i’m still learning myself

floral sedge
#

I have no idea how to program anything, I'm just a writer too down the rabbit hole

#

so you'll probably hear about me again

urban patrol
#

we’re all happy to help whenever you need

#

i’ve gotta go get some work done but ping me with the results?

floral sedge
#

sure!

#

and thank you ^^

pine elbow
#

so i have gotten my crop into the game (i think) but for some reason i cant plant it

#

like the seed item exists but it wont let me plant the crop

golden spire
#

without seeing your json, we can only guess

pine elbow
#

witch one

lucid iron
#

Did you have Data/Crops

#

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

It'd be in your content.json or an include

#

Assuming content patcher mod

pine elbow
uncut viper
#

(use the json uploader in the governor command please)

uncut viper
#

none or content patcher, but it doesnt really matter, we can change it when we view it if need be

uncut viper
#

yup, copy the link and send it here

uncut viper
#

same concept for logs too, theres a log uploader at smapi.io/log or in a link oin the left side if anyone ever asks you for a log

brittle pasture
#

change all instances of {{ModId}}_WeedSeed to {{ModId}}_WeedSeeds

#

the id in Objects and Crops must match

pine elbow
#

o

brittle pasture
#

you're missing an s in the latter

pine elbow
#

lmao im smrt

uncut viper
#

and importantly for things in general, the "Name" field in Data/Objects should most often match the key, too

lucid iron
#

Weedses DokkanStare

uncut viper
#

(tangentially related, but if 'Editdata' isnt case sensitive bc their seed does evidently exist then i wonder why the validator complains about them)

lucid iron
#

I think the schema is more strict than what is accepted by cp

pine elbow
#

well im about to check it selph's thing fixed it

uncut viper
#

the content patcher schema more strict than content patcher. makes perfect sense SDVpuffersquee

gray bear
#

yeah the schema complains about things content patcher literally doesn't care about

uncut viper
#

i just wouldve expected the cp specific schema to account for it, is all

#

the None schema i woulda understood

lucid iron
#

Yeah i dunno why either

gray bear
#

still pretty helpful when making the code though whoo

uncut viper
#

but, i dont get paid enough to think about how to handle regex

gray bear
#

only pathos knows

uncut viper
#

so i cant blame it for being good enough

#

the validator is also making me only realize now that MoveEntries apparently uses "ID" instead of "Id" like just about everywhere else

pine elbow
#

well its working

#

now i gotta work on my textures

uncut viper
#

yeah im just thinking out loud re: case sensitive stuff, dont worry about the case sensitivity errors in your json

#

those ones, anyway

pine elbow
#

then figure out how to do crafting

spiral lion
ocean sailBOT
#

Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
# spiral lion Hello! I am workning on my mod and tried to add the character to the mod, but it...

i dont see any loads for just Portraits/Hazel or Characters/Hazel in your Load actions
also, at some point you're trying to load a Hazel_S_Winter_Indoors.png file, but that file evidently does not existin your folder, so double check you've got the name right
{{WinterIndoorOutdoorOutfits}} is also not a valid token, so double check it matches what i presume is a dynamic token in your content.json

spiral lion
#

Thank you 🙂

sour sleet
#

My custom fruit tree sapling is loading in game and I'm able to plant it, however it's not growing past that stage. Any reason for this?

#

I'm using CJB to skip the season, could that be causing issues?

gray bear
#

skipping the season doesn't actually skip the days

hard fern
#

🤔

#

Yeah

#

It's just like "ahaha it's summer now"

gray bear
#

neither does skipping the days from what i've been testing

sour sleet
#

i'm skipping the days too, and I went to sleep

hard fern
#

How mant days though

gray bear
#

season long nap time

sour sleet
#

like 10

hard fern
#

Only 10

#

Hm

sour sleet
#

I'm going to try and sleep for 30 days lol

fathom hound
#

I have a question, sorry if it’s worded weird I’m a bit in a rush , is it possible to set things to the same config but in different .json files?

gray bear
#

have a productive nap

#

i'm afraid i don't know what you mean Anaira

uncut viper
#

(excepting localtokens)

gray bear
#

so will dynamic tokens

uncut viper
#

config options are tokens

#

(in this context.)

gray bear
#

i dunno what happened to my reading comprehension there

fathom hound
uncut viper
#

config can only be defined in content.json

gray bear
#

^

uncut viper
#

the only thing you can put inside an Included file is a Changes list

gray bear
#

you can use them in additonal files but they have to be in the content

fathom hound
#

Oh man.

lucid mulch
#

The config scheme and dynamic tokens are scoped to your mod and are available in includes, they can only be defined in content.json

gray bear
#

got a lot of configs?

fathom hound
#

Wish I didn’t make my first mod such a huge one /hj

fathom hound
gray bear
#

you let the player disable every single one or

fathom hound
#

There are none rn

gray bear
#

ah well

#

godspeed

fathom hound
#

I just am adding new recipes to VCR, thought I could update it to have configs too 5266_pensive_clown

#

How bad can it really be? /srs

#

And also, ty all for answers

sour sleet
#

I'm happy to report that my long nap worked wonders SDVpuffersquee

golden spire
fathom hound
#

Is VCR like an old tv thing?

golden spire
#

yes

fathom hound
#

Oh.. hehe

golden spire
#

Video Cassette Recorder

fathom hound
#

Ohhhh yea I heard of that before

golden spire
#

you younglings

fathom hound
#

WAIT so I can still have separate .json folders I just need to make a subfolder for each recipe?

#

And I can put that in my content right?

#

My brain might be working a lil bit for once

uncut viper
#

you dont need to do anything to use includes

#

they dont need folders and they dont need specific names and they dont need specific tokens or anything. you can just use them

#

how you organize your mod is up to you

fathom hound
#

I thought I had to make it configurable by having it set up in content.json

uncut viper
#

you dont configure an include. you just write an Include patch. you can make that Include activate or deactive with When conditions but thats not really configuring the include itself

#

you can also use Include patches inside a file that is Included, and not in content.json

#

like you're not gonna write a config option for "include recipes1.json"

#

.. unless you do literally wanna name it that and confuse your users

fathom hound
#

Just double checking, I don’t need to change my content.json then right? That’s what I’m understanding atm

uncut viper
#

well where are you going to write the Include patch

#

i dont know what your content.json is like right now

fathom hound
#

Gotcha. Sec

uncut viper
#

to be clear i dont need to know what its like. you just need to know that a json file is not going to magically be included without you telling CP to include it

#

if you've already included it, great, if not, you need to include it somewhere

fathom hound
#

Oh okay ya this is an existing mod, I just wanted to add configs to it

brittle pasture
#

!software @manic pawn

ocean sailBOT
manic pawn
#

! thank you :D

spiral lion
#

does anyone know reasons why the "Introduction": xxx, part of the dialouge might not be working??

brittle pasture
#

the Introduction CT only lasts 10 days

#

are you trying to talk to them beyond that?

fathom hound
#

Yeah idk I don’t see how I can do this without making each recipe its own folder

spiral lion
#

noo i made a new save just to see if it works!

uncut viper
fathom hound
#

All of the recipes are under the same Entries though so I’d need to break them all up

brittle pasture
uncut viper
#

sure, but that doesn't mean they need different folders

fathom hound
#

Well different .jsons then

spiral lion
uncut viper
#

they don't need different jsons either

spiral lion
#

it just shows the normal monday dialoge insted

uncut viper
#

you can just write multiple patches in one json

fathom hound
#

Oh I see. Thanks

#

Wait how could there be 2 actions for the same thing though?

uncut viper
#

i don't know what you mean

fathom hound
#

Cause it’d be Action: EditData and Action: Include

uncut viper
#

they are two different patches

#

im still not sure what your intent with includes is in the first place

fathom hound
#

OH I see okay so I need to put the include in my content.json

#

Tysm!

fathom hound
brittle pasture
uncut viper
#

if the data is divided into different jsons then they already need includes? what were you doing before if not including them?

fathom hound
#

Yeah it has includes, I was just wondering what would be easiest to do since they’re altogether

spiral lion
#

can dialoge be to long maybe??

fathom hound
#

Wait I’m still confused. How will the content.json know which recipe is configured

#

Data/ItemData/Objects.json cause it’s taking the whole thing still

#

That’s why I don’t see how I can do this without different jsons

#

"Data/ItemData/Objects.json, Data/ItemData/CookingRecipes.json, Data/ItemData/NPCGiftTastes.json, Data/ItemData/Mail.json, Data/ItemData/TriggerActions.json"

These would all need subfolders for Include to work to make the recipes each configurable

uncut viper
#

content patcher will absolutely never _require _ multiple jsons to do anything. never

#

if you want individual recipes to be configurable, you make them separate patches and give them When conditions

#

this can be done all in content json or it can be done in includes or it can be done in a mix of both. it doesn't matter

fathom hound
#

Oh f…. I thought the Include/When were always together SDVpufferpensive

#

Thank you for helping me

uncut viper
#

no. You can put conditions on an Include but you never need to

tribal ore
uncut viper
#

they are not interchangeable

#

they are different functions altogether

fathom hound
#

Ugh that’s a relief. Thank you

spiral lion
fathom hound
#

I need to change my all my “{{ModID}}”s in my mod too

tribal ore
#

?

fathom hound
#

So no interferences. Like that person just got

tribal ore
uncut viper
#

you... Should not do that

tribal ore
#

That's the point of using {{ModId}}

#

It gets substituted automatically

fathom hound
#

Oh it does??? Why do I see some code written like that

uncut viper
#

because content patcher is not going to force you to use a token and couldn't even if it wanted to

fathom hound
#

Should I change my other mods that didn’t use that to {{ModID}}? Cause I would refer to other codes and that’s how I formatted some

tribal ore
fathom hound
#

Okay thanks! I had it backwards

tribal ore
#

It ensures that all of your item/event/whatever IDs are automatically unique from all other mod ids

uncut viper
#

if the mod is already released and what you wrote does not exactly match your unique ID, then I would not change them at this point unless you're sure nothing is going to break old saves

#

or break items in those saves

fathom hound
#

Ooo okay thx guys

#

Yeah I won’t then

#

I’m so excited, this might be my last update SDVpufferprideowo

steady gale
#

okay, I fear I'm back with another question -- working on EditData with the use of null in a .json to try and rewrite a cutscene. Have I used null incorrectly here?

#

before I was utilizing null and just replacing dialogue, the cutscene was still triggering, but since i've tried to implement null, this specific cutscene is no longer triggering at all

latent mauve
#

You don't want to end your key quotes after the ID, you still need the preconditions as part of it.

#

Everything after 43 and before the : is part of the preconditions

#

So you still need it before your : and the event script.

#

So in this case, your key would have to be:
"{{ModId}}_10Heart_Event_Day_Dating/f Elliott 2500/w sunny/t 700 1300":

#

And then the"ocean/..." bits as your event script after the :

latent mauve
steady gale
#

oh, thank you so much!!

fierce vault
#

There is a command to tell people about ` formatting too, but I can’t remember it.

#

Anyone remember that? Because it is a convenient way to write code in the channel over ussing screenshots

whole raptor
#

!json this one?

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.

fierce vault
#

No, this

#

oh

#

Hold on

#

This symbol: `

#

There is an information command about it

whole raptor
#

Interesting, I don't think I've seen a command for that SDVpufferthink

lucid iron
#

!codeblock

ocean sailBOT
#

You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```

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

fierce vault
#

Yes!

#

I can’t find out how to type it myself though

#

oh

#

Nvm

#

I see the command above

whole raptor
#

Oh, so that's how adding syntax to it worked SDVpuffereyes

lucid iron
#

Yeah but the highlighting doesn't work on phone

latent mauve
#

Honestly, unless it's a VERY short snippet, I'd rather see people use the JSON Parser

quasi dew
#

so I have a list of values that I want to turn into tokens. is there an easy way to do that? the mech engineer hubby said to use parentheses to pull a value, but that didn't work.

latent mauve
#

How are you intending to set the values? By a config option, by a condition, or just assigning them as a static value?

#

That documentation will explain the types of tokens available through Content Patcher, as well as the pre-existing tokens

quasi dew
#

I'm off the acceptable token beaten path rn. I'm trying to use CMCT to pull a value from another mod

#

long story is that polyamorysweet has a config option that I want to use (order of spouses sleeping in bed) as a token so those spouses show up in events. :S

latent mauve
#

Well, you still need to know what type of value you're pulling 🙂

#

okay, so it's a config token

#

Guessing you've already read through the mod description for the instructions for Content Patcher Mod Authors?

quasi dew
#

yep!
the config value I want is being pulled correctly, even! I just was wondering if there was an easy way to pull the first (or second, third, etc.) of that value if they're separated by commas

#

I'll do some more digging later. I gotta eat dinner
ty for your support, fireredlily!

latent mauve
#

Nice timing, Button. 😄

lucid iron
#

but what was the deal with ordering bolbthinking

uncut viper
#

they will be in whatever order the original config value is in

lucid iron
#

ordered set then ok

uncut viper
#

less an ordered set specifically and more so that CMCT asks CP what the values are in the token and CP passes CMCT a list of tokens

#

so if CP grabs the values in order than CMCT will get the values in order

#

and then return those values in order to the person using the CMCT token

#

i say this just bc its not technically a guaranteed order and is at the mercy of CP internals and outside of my control

#

but the order will be consistent

safe badge
#

Hello, trying(and failing) to make a map in tiled, and I cannot seem to figure it out.
I’ve unpacked vanilla files and pulled up the farm map, but does anyone know of a good video tutorial? I’m a little lost on how the mechanics work…

lucid iron
#

video tutorials are pretty rare

#

the main guide would be [[modding:maps]]

lucid iron
#

what are you stuck on?

safe badge
tribal ore
#

Sanity check: it's not possible to overwrite another mod's i18n, right? So the best I can do is detect the mod is installed and try to select a higher priority with the load order?

lucid iron
#

you can't affect another mod's i18n/default.json contents but you can certainly overwrite whatever field they edited via {{i18n:key}}

#

and can't is pretty soft anyways in C# you can probably reflect into their translation helper LilyDerp

#

its just like, a bad thing to do tho

tribal ore
#

Yeah, I don't want to be a poorly-behaved mod. I just keep getting asked about SVE compatibility

#

I might be able to write a patch for some of the lines they have that are lore-incompatible. Will see

lucid iron
#

idk button you tell me?

#

i thought blueberry was doing this 3sSmolMiku

uncut viper
#

(/j yes CMCT reflects into their translation helpers. a translation helper is read-only though afaik)

lucid iron
#

what if you harmony patch the translation helper

uncut viper
#

if you reflect you can actually call SetTranslations to set a new dictionary of translations to use