#making-mods-general

1 messages · Page 355 of 1

urban patrol
#

however you organize your files is up to you

twin wadi
#

how do i set a condition to check if the player has crafted something or maybe to check if there are bigcraftables placed anywhere in the world

twin wadi
sweet wharf
uncut viper
uncut viper
#

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

sweet wharf
gentle rose
#

the one linked to in the governor message right above yours, Hazel

twin wadi
twin wadi
#

(also no worries at all, thanks for helping and it turned out to be a silly mistake by me haha)

gentle rose
#

yes. That's how we can help you validate your json.

uncut viper
sweet wharf
urban patrol
#

your schedule is still targeting jorts from the tutorial!

uncut viper
#

(and if you do use BETAS sugar, id recommend the PLAYER_HAS_CRAFTED_ITEM query (or w/e it is i forget) and not the one that checks if the item exists anywhere in the world)

sweet wharf
twin wadi
urban patrol
#

and your gift tastes aren't targeting the correct thing either; it should look like this

        "Target": "Data/NPCGiftTastes",
        "Entries": {
            "CharlesRowland": "Oh, this is brills! Thanks, @!``` etc etc
twin wadi
urban patrol
#

i do see why you made that mistake though. have you unpacked the game files yet? i didn't truly understand target until i started looking at how vanilla files are structured and named

urban patrol
calm nebula
#

Searching the world for my lost calculator every frame

uncut viper
twin wadi
gentle rose
#

also Hazel, you have lines in your regular dialogue that assume the farmer and Jx are dating without making sure they are. And I don't think you're using Fri10 etc correctly, but I could be wrong (I think it's supposed to be <Day><Date>? so you can't have Fri10 AND Thu10)

uncut viper
#

Conditions and When are entirely different concepts

twin wadi
#

thank you

uncut viper
#

a When condition is not a game state query

#

it is only for Content Patcher

#

and has Content Patcher exclusive syntax

#

what you see on the wiki is how to use a token inside a Game State Query

twin wadi
#

ohhh okay got confused

sweet wharf
gentle rose
#

Right, there are things written like that, but they aren't referring to what you think they are

#

the 10th is always a Wednesday iirc

urban patrol
#

i do think that's the correct way to write heart level dialogue by day though?

gentle rose
#

oh, heart level?

#

uhhhh

#

I'm gonna go check SDVpuffersquee

sweet wharf
urban patrol
#

i just checked mine haha

gentle rose
#

trust nic then!

#

I blame the temperature in the UK

sweet wharf
#

so is there anything else i need to fix and work on?

gentle rose
#

my brain melted

sweet wharf
urban patrol
#

oh also @sweet wharf one more thing about your dialogue, i noticed that some of your ... are ellipses and some are actually . . .

the game won't recognize ellipses, so make sure you're typing out ... every time and not copy pasting it from a word processor or anything that automatically converts it into ellipses

gentle rose
#

is there an override for babyGirl and babyBoy if Jx and the farmer are married? (or does it not work that way lmao)

urban patrol
#

same goes for smart quotes versus straight quotes i believe

gentle rose
#

because having your spouse tell you I heard you have a baby girl now, I know Jas will be excited to have another girl in the valley to play with. might be a bit confusing SBVLmaoDog

sweet wharf
#

that's another thing I was thinking about when i saw it. because what ever tutorial i found in my rabbit hole journey, said that it could work if they were and weren't married

gentle rose
#

I'm sure it works technologically but it's a bit confusing in universe, so I'm wondering if there's a way to override it

sweet wharf
#

the jorts and jean thing is because I was using the tutorial as a guide, but if you found more jorts and jeans things, yeah i think my brain was on autopilot when i was working on it at like 2 am

urban patrol
#

do conversation topics require dependencies?

gentle rose
#

no they don't, that's why I deleted it SDVpuffersquee

urban patrol
#

oh lmao

gentle rose
#

again I blame the heat, until it goes away and I have to find something new to blame

urban patrol
#

i only just started looking at using them yesterday, so i'm in no way an expert

gentle rose
#

because I thought I saw a mention of them in a regular non-jorts and jeans CT but I didn't haha

urban patrol
#

it truly has been an ungodly hot summer

#

which is strange because here at least, may was weirdly cold and rainy

fathom hound
#

Strange and weird? Must be climate change

sweet wharf
sweet wharf
sand timber
#

Wondering if there’s a quick way to test dialogue lines in-game, like how we can test events using debug ebi?

urban patrol
urban patrol
small anchor
#

hey I have a question! I'm writing out the dialogue for my npc right now, and I was wondering if I need to write for everyday. I'm writing right now for the heart levels (Mon2, Mon4, Mon6, etc.) but I don't know if I should write all the spring_1, spring_Mon2, etc stuff. sorry if this was a messy explanation

urban patrol
#

you don't have to, but you can if you want!

sand timber
#

SDVpufferwow Thanks!

small anchor
#

does it change much? what will come up if I don't? just the heart dialogue I'm assuming

pine elbow
#

coding takes time

small anchor
#

I don't mind writing a lot, I'm curious as to if it'll make things better or if it changes much

pine elbow
#

hey guys where would i learn wehre to put files and when to end a file

urban patrol
#

the more you write, the more fleshed out your character will feel, but the more time it will take to do so. also it's not likely players will see every single line of dialogue you write depending on how quickly the befriend your character

urban patrol
round dock
pine elbow
#

any tutorials

sand timber
#

I’ve noted it down ❤️

sweet wharf
round dock
urban patrol
# pine elbow any tutorials

if you want to copy how another mod organizes its files, you can download one that's similar in function to yours and poke around inside of it

small anchor
urban patrol
#

and does the dialogue work now?

round dock
#

For specific seasonal dates, I usually curate my lines based on certain events. It could be anything e.g. weather, birthdays, personal relationships, festivals, lore, etc.

brittle ledge
#

Day of the week + heart level is a pretty good baseline for a custom NPC (and more than vanilla ones)

sweet wharf
urban patrol
#

and you fixed the target of both gift tastes and schedule? hm

#

send your updated jsons again please

#

are there any errors in your log?

sweet wharf
round dock
urban patrol
small anchor
urban patrol
#

(i'll be back in a few, gonna go get lunch)

sweet wharf
pine elbow
#

any tutorial on cpatch

urban patrol
#

type patch reload YourModId in the console

urban patrol
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.

sweet wharf
urban patrol
#

yep

sweet wharf
#

he still won't move 😭 SDVpufferwaaah

urban patrol
#

does the dialogue work?

sweet wharf
#

no

urban patrol
#

ok that sounds to me like there must still be an issue with either gift tastes or some other vital component. can you please remove unnecessary mods from your setup, then run a patch summary and send the resultant log?

sweet wharf
#

okay

sweet wharf
urban patrol
#

yep!

#

generally anytime someone asks for a log they want it through smapi.io

#

same with json

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 1 C# mods and 2 content packs.

sweet wharf
#

i think i figured out what it's doing, because my mod id has .jx_Jx and it shouldn't be that

urban patrol
#

the _Jx is the internal name of your NPC i assume

#

oh is this about the message it's giving you? that's not actually an error and i don't know why it sometimes says that

sweet wharf
#

hm. weird

urban patrol
#

your blank json load looks a little odd to me for the schedule. can i see the patch where you load your blanks?

sweet wharf
#

how do i do that? Im quite confuzzled

urban patrol
#

a patch is inside {} and has an action. whichever patch you wrote that has "Action": "Load", "FromFile": "assets/data/blank.json", i would like to see that

#

(or whatever FromFile path you have)

sweet wharf
#

i think i have that in my content.json

urban patrol
#

okay, do you mind sending that again

urban patrol
#

aha yep look at the target; you have Characters/schedules/{{ModId}}_Jx schedules/{{ModId}}_Jx

#

remove the repeated element

#

this should hopefully fix your dialogue issue as well since a spring schedule is also bare minimum for an NPC

sweet wharf
#

i hope so

twin wadi
urban patrol
#

are your entries allowed to/supposed to have (Recipe) in them? i'm unfamiliar with selling recipes at shops but that struck me as odd

#

if it's normal or required ignore me

twin wadi
#

idk, i just put that because the vanilla fish smoker shop entry has it - i think it makes the item display name have (Recipe) in it

urban patrol
#

gotcha

brittle pasture
#

can you post your BC data

twin wadi
brittle pasture
#

The Name is the issue; if you don't specify otherwise the recipe unlocks the recipe with the Name of the object

twin wadi
#

ohhh so the id and the internal name should be the same?

brittle pasture
#

in this case it's trying to unlock the recipe with the name CatRarecrow

#

yes, highly recommended

twin wadi
#

okay, will do and test again! thank u

#

yay! it worked! thank you selph SDVpufferheart

sweet wharf
# urban patrol gotcha

heyyy, im back. well he's still not talking, and it says there's something up with the schedule so just give me a sec and ill get you the report

ocean sailBOT
#

@sweet wharf You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 1 C# mods and 2 content packs.

urban patrol
sweet wharf
urban patrol
#

it shouldn't be. share your most recent version of your schedule?

urban patrol
#

okay that's really strange because you definitely don't have two entries for spring and your spring schedule looks okay at a glance

#

are the coordinates of the first schedule point meant to be 40 13 1? the other entries all say 40 13 3

sweet wharf
#

well, i didn't know if that would matter since it was the way he was facing, but i think maybe i could change it

urban patrol
#

it's just the only thing i can think of 🤷

#

maybe someone more eagle-eyed than me can spot something wrong

sweet wharf
#

yeah, we're a bit too overheated

#

welp, guess i can take a break and just wait for someone to see if they can find anything

calm nebula
#

a930 backcalculates to 630

#

You have too many schedule points tbh

#

It takes longer than you think for npcs to walk from map to map

royal stump
ornate locust
royal stump
#

if anything, the npc probably doesn't have enough time to get there on time, yeah SDVpufferdizzy

ornate locust
#

citation: when I walked around after my guy to his schedule points and realized he literally just got to one of them and now he's immediately heading to the next one

uncut viper
#

(tbh that might be worth something asking for a fix/safer error handling for in 1.6.16)

#

(since sometimes its not up to you whether or not it gets calculated like that. sometimes another mod may put too much stuff in the way or add another warp somewhere and suddenly it changes it enough to calculate to a duplicate key)

royal stump
#

yeah, starting to wonder if a can be made to clamp to previous step + 10 or something

lucid iron
#

What r the chances of a warp schedule point

ornate locust
#

it's easy to think of IRL stuff like "And he goes here for half an hour" but then you put it ingame and man it compresses time hard

uncut viper
#

imo it might be better to replace the .Add(time, path) with just thedictionary[time] = path

calm nebula
#

That'll cause void walking lol

uncut viper
#

or at least a TryAdd instead of an ADd

uncut viper
calm nebula
calm nebula
uncut viper
#

how would it create void walking

calm nebula
#

Because you're overriding the travel to the previous point

uncut viper
#

then just do the tryadd thing and log a proper error

calm nebula
#

Another solution js making npcs hurry

lucid iron
#

@thorn jacinth The approach is to use content patcher to editdata Data/Machines

#

Add new rules for fruit tree

#

C# approach would be either doing data edit based on Data/FruitTrees or perhaps just custom output method

thorn jacinth
lucid iron
#

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

lucid iron
#

Check content patcher tutorial

thorn jacinth
lucid iron
#

Here's more info on data machines

thorn jacinth
#

I definitely have a lot of reading ahead of me

floral stratus
#

Small question. What's the protocol for making a mod that alters bits of dialogue from other mods? Like changing a vanilla character's name.

Do I need to contact each mod author, or do I check the permissions on the mod to see if it's allowed, or something else?

I want to do it right and not break conventions.

gaunt orbit
#

If you're making a separate addon mod that does not include any assets or code from the other mod, permissions don't matter.

That said, authors often like to see how the community interacts with their mods, so it would be nice to give them a shout and let them know what you're doing

lucid iron
#

It is quite a task u sure u wanna do it? blobcatgooglyblep

calm nebula
#

(Tbh I would contact the other author)

#

You might not get an answer but they can do localized text fun to sub in the name of the npc

gaunt orbit
#

If you are including assets or code, then yes, you absolutely must have or get permission to publish

calm nebula
#

Which is automatically compatible with all mods that rename npcs

floral stratus
#

So, out of curtesy, contact the authors.

twin wadi
#

the animal scarecrow mod is now published! ill be posting in #modded-stardew SDVpuffersquee

#

how do i make a translation request? im not super familiar with github so im not sure how to format everything.

visual dirge
#

like a pull request or an issue?

calm nebula
#

I'm 97% sure the translations github is dead

twin wadi
#

an issue?

twin wadi
lucid iron
#

are you translating other ppl

#

or looking for a translation

twin wadi
#

im looking for translations for my mod, its just config options. i translated it into korean myself though

lucid iron
#

yea nowdays you just post and maybe ppl translate for you

#

reach out through comments and such

twin wadi
#

k it's not super needed though for functionality or anything since it's not like a dialogue mod

#

good to know

green patrol
#

heeey so back with another question about using SpaceCore to do recipe overrides with context tags..

So I have four different groups of objects with the context tags: milk, eggs, meat, and butter (using the context tags milk_item, egg_item, meat_item, and butter_item respectively). I can get the first three to work, but for whatever reason the butter one still only accepts the butter added by my own mod as a valid input without allowing for the use of butter from other mods (like Cornucopia, SVE, Wildflour, etc). It's not showing any errors in SMAPI or the JSON validator. Does anyone have any ideas as to what could maybe be causing this?

Files in question:
context tags file: https://smapi.io/json/none/d041a56f768b447ea23e80f5e99af0e0 - this adds the meat_item and butter_item tags to various items
cooking override file: https://smapi.io/json/none/ab8083a5d7f54b058a0c1e709a012e7b (the first recipe with butter is the Brownie one starting at line 150)

tender bloom
#

If you hold up the butter item in question and do debug listtags does it have the tags you need?

green patrol
#

yeah

#

yeah just triple checked to be sure. They all have the tag

visual dirge
#

what's the best way to implement an npc that has two different stories depending on if you want to romance them or not?

lucid iron
#

theres some feature in spacecore to control whether your npc is datable on a per player basis

#

also a feature to start dating as part of event command

brittle pasture
brazen wigeon
#

for research purposes, what data does stardew valley send in co-op games to synchronize player data between devices

lucid iron
#

that's a very general question, but there's 2 main paths

#

game itself uses Net[Whatever] types associated with a NetRoot

#

smapi provides mp mod message for mods to use

gaunt orbit
#

Players all have netroots that are always synchronized, as is NetWorldState. Aside from that, it's just locations that are synchronized, and only some of them. I think there's a location data field that determines that?

green patrol
#

if it's the one on line 9 then yeah, that's intentional. There's a few recipies that use both butter and meat items, but whether or not they're generalized is handled by two different config settings. The first section handles the case where a player has enabled the generic meat config option and disabled the generic butter config option

brittle pasture
green patrol
#

I'm like 99.99999% sure

#

I see it in the content json file, and I even tested it by just having that one included by default instead of cooking.json

brittle pasture
#

can I see your cooking recipes file

green patrol
#

sure lemme grab that rq

#

cooking_replacements and cooking_replacements_cornucopia are similar, just one uses only vanilla items and one uses some crops that are added by cornucopia. But which one gets included is based on whether or not you have More Crops installed so it's not a case where they're both being added by mistake

#

The only thing I can think of is if it's got something to do with where I'm pulling the category image from. Cause the other three categories I have all pull the image from the Maps/springobjects file, but the butter one pulls it from the mod's spritesheet

brittle pasture
#

what does it show in that slot

#

as in the butter recipe slot

green patrol
#

it just shows the butter image added by my mod

#

which it's supposed to cause that's what the coordinates are for

brittle pasture
#

and what's the butter item's position in the ingredients list

#

pick Brownie

green patrol
#

4

brittle pasture
#

sorry, Empanada

green patrol
#

in which patch?

brittle pasture
#

with generic butter on

green patrol
#

2

brittle pasture
#

ok, that means SC is indeed applied (your butter is position 2 in the SC patch but position 3 in the real recipe)

#

hmm everything else looks fine, strange

green patrol
#

yeah I had to shift the eggs cause SC doesn't let me do the -6 shorthand for the category

lucid mulch
green patrol
#

yeah it's really weird

brittle pasture
#

it is, I'm asking those stupid questions because I can't see anything you did wrong otherwise

#

one last q: you're not using any cooking mods like LOCS or YACS?

green patrol
#

oh don't worry I get it, I have to ask all sorts of stupid questions at work whenever customers come in looking for ink

#

what are LOCS and YACS?

brittle pasture
#

Love of Cooking/Yet Another Cooking Skill

green patrol
#

I had Love of Cooking installed, but I removed it from my dev farm cause I knew that it caused issues with my mod's cooking

green patrol
# calm nebula O.o ink?

I work at an office supply store. the amount of people that come in not knowing what ink their printer takes would astound you

ornate locust
#

oh no

brittle pasture
#

the other mod I know that uses the cooking override feature is Cornucopia Artisan Machines for the cheese cauli to accept Cornucopia's Vegan Cheese/Goat Cheese, I suppose you can test that one works

warped salmon
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 194 C# mods and 528 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

warped salmon
#

I know that, Governor

brittle pasture
#

!json your json is invalid, yes pls post what you have

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.

warped salmon
brittle pasture
warped salmon
#

shoot, sorry

green patrol
#

ty for the help Selph ^_^

calm nebula
brittle pasture
warped salmon
#

Thank you!

pine elbow
#

In the Data/PaintData.json file

All items have Building, Roof, Trim, will they always have all 3, or could a building not have one of these items?

brave fable
#

not only are other colours ignored, but you can completely omit any of these colours without any issues

pine elbow
#

There are two values ​​for each part, do these values ​​have to do with color?

brave fable
#

likewise, you needn't necessarily even have the paint mask's RGB colour regions match up with roof/trim/walls; you might make a wishing well with transparent G for colourable water, full R for a paintable bucket, and maybe use B to change the colour of some birds on the roof

#

from the same heading:

Data/PaintData lists the buildings which can be painted, the group names shown in the UI, and the relative ranges for the brightness slider.
i'd imagine you're looking at the brightness slider, which is explained in the big quote block in the link

calm nebula
#

It is not required to have three parts

#

Nor is it required for them to be named that

brave fable
#

it probably involves a bit of guess-and-check to get it how you like it, but that's an exercise for the reader hahah

pine elbow
#

So it can have other names, not necessarily Building Roof and Trim

calm nebula
rough lake
#

Hi, I'm new to the server and to making mods. Can someone help me get started and make a mod? I honestly don't know where to start. So far, I've only been able to rely on pre-made codes, but I don't think there are any codes made for what I want to do.

twin wadi
#

!getstarted

ocean sailBOT
twin wadi
#

um wrong command

vernal crest
#

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

twin wadi
#

yeah that was what i was thinking of 😅

twin wadi
rough lake
#

oooo thanks

#

Sorry, my English is a bit rusty.

tiny zealot
rough lake
#

And to avoid communication errors, I read everything very carefully to understand it well, and that's why it takes me a while to respond.

#

thanks nwnw

#

nwn

pine elbow
#

What is your native language?

rough lake
#

spanish

pine elbow
#

"Building": "//Roof/-25 0/Trim/-25 -8" << Would that be correct?

#

"Building": "////Trim/-25 -8"

#

"Building": "Building/-50 -10///Trim/-25 -8"

twin wadi
#

yay posted my mod on naver... even as a korean that site is sooo hard to navigate

calm nebula
#

Why would you need that anyways

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 7 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

languid matrix
#

Nevermind, I forgot a mandatory dependency.

sweet wharf
#

@urban patrol I did it, he moves!

urban patrol
#

yay!

gaunt orbit
#

Richmountain, did you mean to post that here? This channel is for creating mods, not playing with them

sweet wharf
# urban patrol yay!

He follows his schedule, but I still can't get his dialogue to work so I'll work on it tomorrow

sweet wharf
pine elbow
# calm nebula Why would you need that anyways

I'm just trying to understand the possibilities, as I'm creating a Python class library to compile code into JSON for the content patcher. If it's possible to omit a specific color, as I've been told here, I need to make that possible.

iron ridge
#

(not related to your question but that sounds very cool, good luck!) /lh

lucid iron
#

i don't think you should make questionable inputs like this possible

static stone
#

Does anyone know if theres a trigger action condition for an npc receiving a certain item?

e.g. gift Caroline a tuna, next day receive mail from her with fish tacos

lucid iron
#

you can use a special dialogue for it too

#

"AcceptGift_(O)120": "Oh a tuna!$action AddMail"

#

syntax prob wrong but u get the idea

vernal crest
#

That writing is art™ chu

static stone
#

oh what you can set dialogues as conditions?

lucid iron
#

no you can make special gift receive dialogue

static stone
#

looks promising ill check it out, thanks all

vernal crest
#

Use the dialogue as the trigger action action, bypass trigger action entirely

static stone
#

sorry can you elaborate, I'm kinda slow SDVpufferwaaah

vernal crest
#

You can use actions in places other than trigger actions. Dialogue, events, etc. What chu is suggesting is that you use the dialogue action command to directly send the mail from Caroline after you give her a tuna instead of writing a trigger action.

#

If you ctrl+f for "action" in the dialogue page it will show you the action command

static stone
#

Ah alr, is there a way to get the DayEnding trigger from trigger action in there? In the dialogue example it reads like I'm getting the mail instantly after gifting (unless I'm wrong). Can it be tweaked so that I receive it next morning using only dialogue?

half tangle
#

you could use the dialogue to set a mail flag instead and then also add a trigger on DayEnding to check the mail flag that sends mail (separate from the mail flag)

vernal crest
#

No, go look at the trigger actions page

#

It shows the arguments, which have a "tomorrow" option

latent mauve
#

I checked the mailflag list but I didn't see what I was looking for-- just in case I missed it, is there a mailflag or world state specifically for when a player has completed ALL of the Monster Slayer/Adventurer Guild board tasks?

vernal crest
#

AddMail <player> <mail ID> [type]

half tangle
#

oh that's simpler

vernal crest
#

If [type] is tomorrow it will add it to their mailbox the next day.

latent mauve
#

I'm really hoping to not have to list them one by one for this event precondition.

vernal crest
#

(I just realised I could pull my Photopea tab out into a separate window so I could open my Stardew group of tabs without risking losing my Photopea work)

vernal crest
royal stump
#

afaict that GSQ can't check the monster slayer one, since it takes an integer ID from Data/Achievements and the monster slayer one isn't included (or displayed in the game's achievement list, etc)

vernal crest
#

Oh that is unfortunate

urban patrol
#

i just noticed this--should i be concerned that the second key (the one with the red arrow next to it) isn't registering green like all my keys normally do? this is in notepad++

#

i've had issues with this one's preconditions before (incorrectly spelled NPC internal name) so now i'm worried

vernal crest
urban patrol
#

oh that would make sense! this is my longest one by far

vernal crest
#

You should be able to check by just cutting a random bit out of it to make it shorter and see if it gets coloured again.

urban patrol
#

it does indeed SDVpufferthumbsup

gentle rose
#

most IDEs have limitations like these, so it’s worth knowing about for sure

flat sluice
# urban patrol i just noticed this--should i be concerned that the second key (the one with the...

Looks like a thing N++ does.
IDK how big your event file is, but for me VSCode doesn't do this even when my events are 100000+ characters long (but a lot of things is commented out, after all...). Just letting you know, not pushing you into VSC at all!
And also, if I may suggest a few things I noticed:

  1. I'd recommend using full preconditions instead of aliases (thanks Aba for noting that!)
  2. Intentional, I guess, but that 5 hearts event is not i18n. This link might help you converting it: https://nom0ri.github.io/sdv-i18nifier-app/
  3. Events can be multilined (https://stardewvalleywiki.com/Modding:Event_data#Multilining) for better readability; however, programs might struggle with its formating, saying that it is incorrect while it isn't, or (the worse one) not saying incorrect things when it is incorrect.
    Just a friendly suggestions I noticed!
Stardew Valley Wiki

← Index

gentle rose
#

oooh this is the stuff I do actually know about! so some more context about all three of these points for anyone wondering why:

  1. To be precise, the short preconditions are deprecated, so while they do currently work, there’s no guarantee they’ll continue to work in future versions. All new mods should use the long ones.
  2. Anything not i18ned can’t be translated in the regular way. Please i18n all in-game text.
  3. To make IDEs correctly understand multiline events, you can use jsonl or json5 instead of json as the “language format” (in VSCode you can set it in the bottom right of the editor) because these formats support multilines (base json doesn’t)
vernal crest
#

3.5. However be aware that setting it to jsonl will take away your error checking so make sure you're confident with your patch syntax before attempting this

gentle rose
vernal crest
#

It will not still check json syntax ^_^

gentle rose
#

oh, it should in a good IDE. That’s strange.

#

what IDE were you using, aba?

vernal crest
#

Note the lack of comma between patches and also lack of complaints

#

I use VSCodium

gentle rose
#

hmm, interesting. I would expect jsonl to complain about this. I’ll check in vscode in a bit

vernal crest
#

N++ with JSON5 just screams non-stop about the multilines

gentle rose
#

I don’t trust N++ anyway SDVpuffersquee

vernal crest
#

Aaand I don't have anything but JSON for Sublime so I must investigate its options

blissful panther
#

Yeah, jsonl definitely not picking that up as an error. Weird!

gentle rose
#

strange. is that vscode?

vernal crest
#

It's because it views each line as a distinct entity so it can't check the line above it, iirc

#

That's how it allows the lines

#

It does change colours if you break a rule inside a line...but it still doesn't actually error

gentle rose
#

…well that’s a strange way of implementing jsonl SDVpufferthinkblob I wonder if that’s the format spec or implementation weirdness

vernal crest
#

Like so

blissful panther
#

This is raw Microsoft VSCode, yeah.

#

Yeah, it doesn't even complain about this monstrosity.

#

That's... close to being completely broken I'd say, honestly.

gentle rose
#

amazing pffft

#

close? that is completely broken lmao

vernal crest
#

Hence my warning that people only use it if they know what they're doing haha

#

VSC doesn't actually complain too much about multi-lines with jsonc

flat sluice
#

That's why I wrote that

vernal crest
#

Okay I did just switch to jsonc and now I have 80 errors...

gentle rose
#

I think json5 outside n++ should have some multiline support but I could be wrong

vernal crest
#

But they're very consistent errors so they're easy to ignore in favour of the actual errors

gentle rose
#

someone should write a language server for stardew flavour json SDVpuffersquee dh I nominate you

#

…I do wonder how hard it is to write one ngl

vernal crest
#

Apparently Sublime doesn't support json5 or jsonl

blissful panther
#

It really does feel like that would solve a huge amount of problems for people.

#

(And cause others.)

gentle rose
#

okay but what if we take the textmate grammar for json and customise it…

lucid mulch
#

jsonl is a format where each line of the document is pretty much considered its own json document, I'm surprised it doesn't error out more and vaguely accept normal looking formatted json

blissful panther
#

Oh, so it's essentially for... a file of lots of minified individual JSON files?

lucid mulch
#

its a way to something thats closer to csv than json

vernal crest
#

CSV but better is what I gleaned from the JSON Lines website

lucid mulch
#
["Name", "Session", "Score", "Completed"]
["Gilbert", "2013", 24, true]
["Alexa", "2013", 29, true]
["May", "2012B", 14, false]
["Deloise", "2012A", 19, true] 

is valid jsonl, as is

{"name": "Gilbert", "session": "2013", "score": 24, "completed": true}
{"name": "Alexa", "session": "2013", "score": 29, "completed": true}
{"name": "May", "session": "2012B", "score": 14, "completed": false}
{"name": "Deloise", "session": "2012A", "score": 19, "completed": true} 
blissful panther
#

Yeah, so it really is just one complete JSON "entity" per line.

#

That's actually pretty cool.

#

Not much help for us here, but cool nonetheless.

lucid mulch
#

using the jsonl proper sites validator, throwing normal json just spits out a bunch of errors, so the vscode plugins kind of a meme

gentle rose
#

so it doesn’t work in that regard either SDVpuffersquee

vernal crest
#

I like that it keeps my familiar colours

blissful panther
#

Even putting invalid JSON on a single line ({ "Thing": [ { "one": "two" } { "three": "four" } ] }), it doesn't complain.

#

So I really think it's just... normal JSON auto-formatting, and completely useless otherwise.

lucid mulch
#

false negatives are arguably worse than false positives

blissful panther
#

You had one job, VSCode jsonl thing. SDVpufferwaaah

#

Though wait...

vernal crest
#

Excuse you, DH. It is doing its one job! It's keeping everything JSON coloured for me!

blissful panther
#

Okay, two jobs!

#

Syntax highlighting and auto-formatting. SDVkrobusgiggle

#

Those two it does!

lucid mulch
#

Syntax highlighting is kinda pointless if you are having to manually play find the missing comma because it will never say theres an error

flat sluice
#

What about CP's JSON schema?

blissful panther
#

That I just have in all of my JSON files by default.

lucid mulch
#

json schema is for the contents of the data structure, not the syntax itself

vernal crest
#

I'm good at not having syntax errors SBVMischief

flat sluice
#

Ah, my bad!

vernal crest
#

(But yes this is the reason that I give caveats when I suggest multilining haha)

gentle rose
#

making an alternate textmate grammar might not be as difficult as it seems… I’m gonna have a look, maybe we genuinely can get a stardew flavoured json language extension SBVLmaoDog

vernal crest
#

And rarely suggest jsonl for it

lucid mulch
vernal crest
#

I wonder if Pathos just ignores the errors or if he uses jsonl

gentle rose
#

I can’t remember what lsp stands for

lucid mulch
#

pathos I think just doesn't violate the json spec

#

language server protocol

gentle rose
#

ah right

vernal crest
#

But Pathos tells people about multilining

#

Perhaps it's a "for thee but not for me" situation lol

lucid mulch
#

I think he mostly uses visual studio anyway

#

but looks like its ignore the errors, as Central station does use comments

blissful panther
#

Rider is still the smothest JSON editing experience I've ever experienced. SDVkrobusgiggle

vernal crest
#

VS doesn't allow for picking languages?

lucid mulch
#

it would have a different language list

#

oh visual studios json editor out of the box seems to not care about comments anyway

#

unless he has some config somewhere in the project or filesystem that made vs happy with it

versed jasper
#

hi im back again ^^;;

#

there isnt anything in the buildings layer that would give them collision

gentle rose
versed jasper
#

and the entire ladder is in the building layer but the top part doesnt have collision

#

tiledata wouldnt give them collision either i dont think

#

so im confused

gentle rose
#

can you send your tiled files?

#

there is tiledata that adds collisions

versed jasper
#

should i add the tilesheets aswell? idk what the rules here are abt sending zip files..

gentle rose
#

sure, and sending zip files is fine if it's your own stuff afaik

versed jasper
vernal crest
#

Unrelated, but none of your tilesheets should be in other folders

#

The top of your ladder is not on the Buildings layer, it's on Buildings2. Buildings2 doesn't have collision, only Buildings does. So just move that tile onto Buildings and that'll be fixed.

versed jasper
#

ouhhh

vernal crest
#

And the two spots you can't go onto have tile 1482 present on the Buildings layer. That's an invisible tile which is why you thought it wasn't there.

gentle rose
#

as for the tiles that have collisions that shouldn't, you have an invisible tile on the buildings layer

#

oh, dammit aba SDVpuffersquee

versed jasper
#

ooohhhhhhhhhhhhhhhhhhhhhhhh

vernal crest
#

But as you can see when I hover over that spot, the number 1482 is visible inside square brackets down at the bottom of the screen. That's the tile ID for the tile present on that spot on that layer.

#

If I hover over the tile next to it you can see it says [empty] instead.

versed jasper
#

thank u both so much...

vernal crest
gentle rose
#

The best way to spot invisible tiles is to use this tool and select somewhere you know is empty! it will highlight all your empty tiles

#

for example in your case

vernal crest
# versed jasper thank u both so much...

Don't forget what I said about the folders, by the way! You shouldn't ever be telling Tiled to look for tilesheets in another folder unless you enjoy giving future you problems they will have to fix later xD

versed jasper
#

i dont think theyre in different folders...

#

well actually

gentle rose
#

they're in a folder called "Tilesheets" (and one is in a "recolors" folder inside it)

versed jasper
#

yeah

#

that was just how the mod creator set it up...

gentle rose
#

they should be right next to your map

versed jasper
#

i put the tilesheets that i needed for the cellar tmx next to it though atleast!

vernal crest
#

Them being in different folders is good for when it's in game because you want the map to use the tilesheets in the game's contents rather than in the mod folder. But when you're editing them they need to be in the same folder so you don't give them a broken tilesheet path.

gentle rose
#

(the other possible thing to do for when they're in the game is to just add a . to the beginning of their names, and the game will ignore them and use the content ones)

vernal crest
#

Yes, I always slack on telling people that part haha

cinder sequoia
#

SOLVED (all by myself I'm very proud) - version has to be a floating point number, can't contain letters...
Heya, I'm new to modding... got an issue when trying to build the example mod on the wiki (https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Create_a_basic_mod), trying to build the project results in an error stating The "DeployModTask" task failed unexpectedly, without any other indication to what caused the error. ModBuildConfig version 4.4.0, sSMAPI version 4.2.1, Not sure what other details I can add, any help would be extremely appreciated :)
csproj: https://hastebin.com/share/ayoxotavud.xml
manifest.json: https://hastebin.com/share/qaraqacedo.json

Stardew Valley Wiki

Creating SMAPI mods

red egret
#

Is there any advantage of AT over CP for furniture?

vernal crest
#

If you like the approach of having lots of skins listed under the same piece of vanilla furniture, yes. Worse performance though. And I'm not a fan - I convert any AT furniture packs I download into CP because I hate having to know which furniture item to check to find things.

drowsy minnow
red egret
#

Worse performance in what way?

#

Yes the looking which furniture it was can be frustrating if you have many

hard fern
red egret
#

Ooh

#

And what's better, if i have a lot of items, one big sprite sheet or many small ones?

vernal crest
#

One big spritesheet is better

red egret
#

Is there a template grid for furniture?

unique sigil
#

you can just make a blank sheet with a width in multiples of 160, because 1 tile is 16x16

#

furniture coding depends on tile index to give your furniture the appropriate texture. a multiple of 160 works best because the index numbers will be easier to determine

lucid iron
#

To make it easier for self you can try to put same size furniture together

vernal crest
#

If you're using Aseprite you can use Lina's index tool

red egret
#

I think i saw a grid with numbers somewhere

#

But can't find it

vernal crest
#

What program are you using?

red egret
#

GIMP

visual dirge
#

not sure if this would be of any use to anyone but i saw the discussion about json editors from earlier -- i edit smapi/content patcher json files with an editor based on gtksourceview, and this is the json.lang config i use to make comments and newlines work right

#

i have this file in ~/.local/share/gtksourceview-5/language-specs but different gtksourceview editors (e.g. gedit) might need it to go somewhere else

sleek flint
#

Hi everyone! My custom TV channels framework is almost finished. Can someone help me come up with a name for it?

halcyon nest
#

Custom Channels has a nice ring to it!

tiny zealot
#

"Custom Channels for Television" or similar lets you abbreviate it as CCTV, which is a fun goof

torpid sparrow
#

+1 for cctv

lucid mulch
ivory plume
woeful lintel
latent mauve
#

The folks here have already explained how to count your custom furniture indexes, but I definitely needed a visual when I was first learning how to do furniture sheets

red egret
inner harbor
#

Do GSQs work in data/character fields like "CanBeRomanced" or is that strictly true/false only?

lucid iron
#

@woeful lintel hey do u know off hand if FF furniture can be PIF doors

spice inlet
woeful lintel
lucid iron
#

is the id just a normal one or special format (i.e. how do ppl know what put)

inner harbor
lucid iron
#

the usecase is someone make big castle furniture and wanted to go inside the big castle, normally you make building out of this but i was thinking maybe you could make just the door of castle a pif door, and then go into a pif room (locked to just that door)

urban patrol
woeful lintel
lucid iron
#

and it is not namedspaced or anything right Bolb

#

ig it is just seeing whose performaction patch win

woeful lintel
#

nope, the authors have to insert their ModID themselves (with a token)

uncut viper
red egret
#

I need a big ass house. Like 4-5x bigger than the farmhouse. Something to fit the church from SDS. Is there a way to make it?

lucid iron
#

you can make a building but u need a bigass farm to fit it blobcatgooglyblep

red egret
#

There are many!

lucid iron
#

i also dont think furniture has any real upper bound on how big they can be

red egret
#

So if i make a reskin of a house it will be enough? (I bet not)

lucid iron
#

you can make it happen yea, but it might mess with events so i recommend no

red egret
#

Uuuuuu

lucid iron
#

so yea up to u what do here

#

but putting it in the game entirely possible

red egret
#

Oho thank you

#

Worth a try

#

Since there are the collision squares i was afraid i'd have to make a map for it

lucid iron
#

so furniture can't have complex collision in vanilla

#

but buildings can

#

there is CollisionMap thing you can set for this

red egret
#

Amazing

empty vector
#

@tawny ore Hi! I always feel so needy pinging people but you said on your mod page I was allowed to (and I hope that goes for this channel as well). I'm trying to edit custom bushes added by other mods for Stardew Valley Balance Overhaul. I want to use CP to change the min and max stack of Growable Forage blueberry bushes (doing this instead of changing prices makes my life a lot easier since I wouldn't have to adjust any related cooking recipes), but my attempts are failing pretty badly.

tawny ore
#

If you want to share how you're going about it, I can take a look

empty vector
#

(I searched you last message to see if you were online and it was in the pre alpha channel and I didn't check first 🙃 )

tawny ore
#

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

empty vector
#
            "Action": "EditData",
            "Target": "furyx639.CustomBush/Data",
            "TargetField": ["(O)481", "ItemsProduced"],
            "When": {
                "HasMod": "furyx639.CustomBush"
            },
            "Entries": { "MinStack": "3", "MaxStack": "5" }
        },```
This was my last attept, but I haven't really gotten close. 
This gives me: 
"Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Growable Forage and Crop Bushes.json #1 > EditData furyx639.CustomBush/Data > entry #1" to furyx639.CustomBush/Data: failed converting Integer value to the expected type 'LeFauxMods.CustomBush.Models.CustomBushDrop': Error converting value 3 to type 'LeFauxMods.CustomBush.Models.CustomBushDrop'. Path ''.." errors
tawny ore
#

ItemsProduced is a list, so I don't think you can target the property MinStack/MaxStack without knowing what entry in the list you're editing

empty vector
#

All I had to do was add a #0 and now I feel a little bit silly for asking

#

But thanks for your help either way! Sometimes all I need is just a little nudge 😇

woeful lintel
lucid iron
#

Yeah they also can with mmap 3sSmolMiku

#

But i think the intended usecase is more of a building

torpid sparrow
#

Another day another bug

#

I'm having trouble getting my conditional textures to load if anyone has insights

#

the texture never changes from the first one loaded (the NoTail version)

#

i thought the priority would fix it but its still not working

gentle rose
#

I don’t think that’s how you conditionally change textures because they might not get invalidated in time? but I could very much be wrong

#

try adding the opposite condition to the initial patch

#

(though again, I don’t think it works like that, someone who knows more about texture modding should come in and clarify SDVpuffersquee)

twin wadi
uncut viper
#

toothless is a pet

torpid sparrow
#

Yur

twin wadi
#

ohhh nvm

uncut viper
#

is the intent to switch the sprites during the event?

gentle rose
#

hi button, you know things, save us please

#

I think the intent is to change it from then on, from what I remember of the movie’s plot

torpid sparrow
#

the way i wanted it to set up was

#

after this event, i want a different spritesheet to be used so i can use it during the next event

#

and then do that again with a different spritesheet

uncut viper
#

(i mostly aks bc im not sure whgat "Wem.Toothless_Play" is supposed o be)

torpid sparrow
#

sorry yeah those are events

#

so after that event, i want to use a different spritesheet which will then show the sprites i want to use in the next event

uncut viper
#

and you're sleeping a day after the events?

torpid sparrow
#

oh i have not

#

i was just debug ebi running the events

uncut viper
#

tokens and conditions are by default not re-evaluated until the next DayStarted

lucid iron
#

Is event toothless the pet or just a temp actor or some sort

torpid sparrow
#

ah okay

uncut viper
#

they will not re-evaluate after an event, the soonest you can do is after the next time change

torpid sparrow
#

i use petactor for most of the commands

uncut viper
#

LocationChanged may be good enough if the event warps you somewhere and then warps you bacjk before ending

torpid sparrow
lucid iron
#

I wonder if u can swap the breed somehow

torpid sparrow
#

the events are meant to be played across different days

#

so yeah i should test it that way anyway lol

lucid iron
#

Then u fine probably

uncut viper
#

well, even if its on different days, if one of the events involves putting the tailfin on, you would see toothless without the tailfin again after the event finishes

#

bc the condition is not re-evaluated

torpid sparrow
#

thats okay he doesnt actually appear outside of events until you adopt him

#

and then he'll be using the tail-on sprites

uncut viper
#

then it probably is fine then

torpid sparrow
#

thank you for the help!

uncut viper
#

also yeah the priorities dont matter at all here

torpid sparrow
#

i thought i was going insane

uncut viper
#

actually theyre Loads

#

so they do matter a lil bit

#

but you dont need Low/Medium/High

#

if you made the first one require having seen neither of the event then it doesnt need priority bc it simply wont apply if you have seen em

torpid sparrow
#

right

uncut viper
#

and same for the second one requiring not seeing the third, and the third then needs no priority

#

but im only explaining this bc you implied you werent sure if priority would help

#

its not actually necessary

torpid sparrow
#

if the events are set up that you must see the previous event to see the next event, would that matter then

uncut viper
#

leaving it like this is still just fine

uncut viper
torpid sparrow
#

oh i see

uncut viper
#

which is when priority stuff matters, at which point you can do it by turning the patch off OR by the way you're doing it now

#

both are valid

#

yours happens to have 3 different states so a simple Low/Med/High works out nicely but if you had more than 3 then you'd have to start doing like, "High + 1" or w/e i think and itd get unwieldy

torpid sparrow
#

oh my events can be triggered without sleeping a day

#

how do i make it so that you must sleep a day

uncut viper
#

you could only patch in the 2nd event with a CP When condition checking if theyve seen the first

#

you can also m,ake the 2nd require a mail flag and only send that mail flag on daystarted/dayending if theyve seen the first

torpid sparrow
#

right okay

#

so then would i do separate editdata blocks with when conditions?

uncut viper
#

yep

torpid sparrow
#

okay perfect thank you

uncut viper
#

oh, theres also CTs

#

i think CTs are how people often do it too, i forgor about them

torpid sparrow
#

what are CTs

uncut viper
#

make an event rely on NOT having a CT active, but that CT gets set at the end of the previous event

#

Conversation Topics

torpid sparrow
#

ohh right

uncut viper
#

so like:
Event 1 requires: Nothing. Event 1 starts "MyCT" at the end of it
Event 2 requires: Seen Event 1 AND "MyCT" is not active

event 2 will only work once the CT expires

#

which you can set to expire after any number of days you want (default 4)

torpid sparrow
#

i see

#

right

#

okay i will tinker around with that thank you! and the sprite changes are working now yay

lucid iron
#

If it's just the day u can set a mailflag that u unset at end of day

uncut viper
#

a CT with a duration of 1 (or is it 0 IDR) seems easier

#

since it gets unset for you

lucid iron
#

Yeah, although u can only use it once right

uncut viper
#

you can reuse it

torpid sparrow
#

"HasSeenEvent": "Wem.Toothless_Play", "Wem.Toothless_GetTailfinRecipe",

is this the correct format

#

or is it "Event ID, Event ID"

uncut viper
#

the only time you'll see quoted things separated by a comma like that is if theyre directly in a list [ ]

wheat shell
#

@alpine mortar

alpine mortar
#

Hi all im just wondering does anyone on here use stardrop to mod if so is it possible if you could help ?

uncut viper
#

for using mods? this wouldnt be the right channel for that, this is the one for making mods

torpid sparrow
#

hmm my removeQuest commands are not working in my event but the addQuest ones are. I looked in the game files and removeQuest is always at the beginning, is that a requirement?

#

nvm fixed it

hard fern
#

sigh, now the decision on if i want to manually put in every item id i want to correspond to this gift taste line or not...

#

maybe just giving each item context tags would be better, but then i feel awkward tacking on like 3 different tags onto items

#

🤔 if you have a unique gift dialogue for a whole category, and then have a unique dialogue for only one item in that category, will that line be displayed when gifting the item, or will it just default to the category line

unreal spoke
hard fern
#

even if it means more work for me...

#

...and even if i might be the only one who will see all the lines....

unreal spoke
#

But you know that the lines will work and that you made them, so you’ll be happy. That’s worth it imo. SDVkrobushappy

#

(Please actually try it in-game, though. I definitely know it’s possible because I took a similar approach with my Everlasting Flowers, but it’s been a while since I made it.)

tiny zealot
#

(RejectItem keys override any level of gift taste, even from a more generic level than a specific like/love, so beware of that)

torpid sparrow
#

hmm i cant get my custom pet to actually move

#

i used the code for the cat pet but it still wont move

latent mauve
#

Did you copy all the behaviors over from the cat?

torpid sparrow
#

yes

latent mauve
#

And are your frame sizes the same or bigger? If they are bigger you might need to tweak some things from the original code

torpid sparrow
#

the pet fits with 32 x 32 is that what you're asking?

pine elbow
#

i hate vs man i hate the snipper system

latent mauve
#

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

torpid sparrow
#

Yes! I have to leave for dinner but if you any suggestions I will add them in after I’m done

visual dirge
#

is it a bad idea to leave comments turned off on my mod page? the bug reports tab is still available

lucid iron
#

it's your mod page do what you want

rough lintel
#

how do i link quests together with the same name? like a questline? it doesn't look like mr. qi's quest does that in vanilla (it says null for the next number), but somehow they still link and i'm like SDVpufferdizzy

#

or does it just matter that the ID is different, the name can be the same

torpid sparrow
#

Like one quest links to another,

#

?

rough lintel
#

bc if so, i just use the next quest field

#

yeah

#

like the mr qi questline

torpid sparrow
#

In the quest modding page

#

It says you can add another quest to trigger after completing the first one

rough lintel
#

yeah i realized i figured out the answer after asking 💀 the id just has to be different

torpid sparrow
#

It’ll be a different ID but that’s how I did it

rough lintel
#

but the name can be the same

#

yeah

lucid iron
#

u want a quest with multiple stages then yea just multi quests it's fine

rough lintel
#

thanku friends

latent mauve
#

For Walk

rough lintel
#

another question: i want the player to gather 4 items, but i don't say what the items are in the description. is there a way to make it so that when the player picks up the right item, it lets them know? like how if you pick up robin's lost axe?

torpid sparrow
#

Ohhh okay thank you!! I’ll test that when I get home

rough lintel
#

also, would it be better to make this part of the quest a special order? it probably would

latent mauve
torpid sparrow
#

I see okay that makes sense

#

I don’t think I would’ve caught that on my own thank you so much

torpid sparrow
#

Sorry I don’t remember the quest well 😭

rough lintel
#

i think it does yes

#

but i dont see any.. like, string in the quest file

#

so im like ??

latent mauve
#

there's something like "better get this back to Robin"

#

IIRC?

rough lintel
#

yeah

latent mauve
#

I edited that line for my NPC Overhaul mod, lemme see where I found it

twin wadi
#

it's in the quests.json file

#

in data

latent mauve
#

ah-ha, yep

rough lintel
#

no thats not the right place lol

#

thats a different file

latent mauve
#

Which line specifically is needed?

rough lintel
#

the messagefoundlostitem

#

but its more like... "Oh this must be the xyz"

twin wadi
rough lintel
#

ya i found it heehee

latent mauve
#

yeah, it's definitely in strings

rough lintel
#

i wonder if i can make. new strings.

latent mauve
#

You can.

rough lintel
#

WOOOOO

#

but how does it know

#

to use them

latent mauve
#

I've added new strings and then called them with the TileData Action Message property before.

rough lintel
#

the thing is, the item is not in a fixed location, so...

latent mauve
#

Trigger action on item entering inventory?

rough lintel
#

!

#

YOOO i can do that??

latent mauve
#

PLAYER_HAS_ITEM <player> <item> [min] [max] GSQ for the Condition, yeah

rough lintel
#

can i make a string appear when that happens? omg

#

in the actions list theres just addmail but no display like.. a dialogue box 😔

urban patrol
#

when do GSQs update?

rough lintel
#

wait BETAS might have something

latent mauve
#

I don't know if there's an immediate action to prompt a dialogue without using something like BETAS

twin wadi
rough lintel
#

yeah i found it in betas :D

#

Spiderbuttons.BETAS_Message

#

woo

twin wadi
#

dang ur fast

rough lintel
#

mr pathoooooooooooos i need this game in my vanilla fuuuunctionsssss

sleek flint
#

Does anyone know where is this map in the game files?

twin wadi
sleek flint
#

I don't know

#

But I know that it's from the game

lucid iron
#

thats a furniture

sleek flint
#

oh ok

#

thanks

twin wadi
#

found it in furniture.png in tilesheets folder

rough lintel
#

@uncut viper hello sweet angel, in your BETAS is there an option for a trigger to occur Now? or when a player gets a certain item? i see CropHarvested and it's almost what i want, but i was just wondering if i had missed something

worn oar
#

anyone know where the seasonal decor item is in the tilesheets?

rough lintel
#

iirc its under the craftables tilesheet

worn oar
#

im trying to find that in vpr redrawn and am struggling big time SDVpufferchickcry

merry rampart
sleek flint
rough lintel
sleek flint
#

It's the closest thing I found

#

And I don't have lots of experience with CP, but can't you make it so when this GSQ is true you give a flag to the player and a trigger action for when the player acquires the flag?

rough lintel
#

the issue is making the trigger fire as soon as that happens

#

currently there's only daystarted, dayending, and locationchanged

#

but i need it to happen at that exact moment lol

brittle pasture
#

surprised neither IE nor BETAS have that yet, I wonder why (performance?)

#

like IE has a bunch of "item and inventory shenanigans" triggers except for the former entering the latter lol

merry rampart
#

the one i posted is the closest you're gonna get i think

rough lintel
#

😔 another dependency it is

merry rampart
#

basically i wanted my event to trigger once the player eats the secret woods stardrop

#

i couldn't figure out another way to do it

#

though ive been thinking about switching it over to dynamic map tiles and using a custom trigger instead

sleek flint
brittle pasture
#

I think you're confused as to what the requirements are

sleek flint
#

wdym? They want a trigger when they get an item, don't they?

calm nebula
#

I might be able to do a mailflag trigger out of smd but it'll be pretty constrained tbh

sleek flint
#

or did I get this wrong?

rough lintel
#

the issue is making it happen at that second

#

the action is fine

calm nebula
#

Also smd will likely see no release in 2025 because I'm lazy

rough lintel
#

but the timing (or the trigger)

#

not the action itself. its goofy wording

sleek flint
#

That's what I am talking about. Make it so when this GSQ is true you give a flag to the player and a trigger for when the player acquires the flag.

merry rampart
#

GSQ is not the same thing as a trigger

sleek flint
#

then the action should happen instantly no?

sleek flint
rough lintel
#

cant, because of when it's applied

latent mauve
#

The confusion is on how often GSQ is checked for the Condition, yes?

#

Or is it on how often the triggeraction is checked?

rough lintel
#

the only time this condition gets checked is on the day started, day ended, or when you change location

#

i need it to be checked... and then applied in that moment, not the next day

latent mauve
#

(sorry if I'm not getting it, my brain is tired)

rough lintel
#

i am going to use the esca thing for now lol

#

nah ur good, trigger actions are evil lol

sleek flint
brittle pasture
#

(vanilla) trigger actions are only checked the three times above

rough lintel
#

nodnod

sleek flint
#

Ohhhh, I see the misunderstanding I didn't mean to put it in the conditions field I mean as a separate check using "when". Like I said I don't use CP so I don't know if this will work.

rough lintel
#

ur all good, i appreciate u trying to help anyways haha

sleek flint
#

NVM I just looked at how "when" is used and yes I am stupid don't listen to me 😭

#

I thought they were more like "if"

forest path
#

Hi all. I am modding the beach map to include a little "shack" with my own NPC who sells stuff on it. How does this work with events like the Luau? like, will be NPCs shack be visible during that event? or do I need to code somethig

rough lintel
brittle pasture
#

festivals have their own map

#
  • night market too
forest path
#

I didnt notice those had maps too! thanks, that makes sense

sleek flint
#

I found this from EMP. EMP_OneSecondUpdateTicked

forest path
#

I may just put it on the water then so it doesnt interfere cuz it looks like the beach luau is quite packed lol

torpid sparrow
#

That would be cute!

#

Huh now that you said that I wanna put a little shop in for my NPC too

forest path
#

I think a little spot on the dock would be cute too!

#

what are these?

latent mauve
#

Not every spot an NPC stands is marked by the circles, though.

brittle pasture
#

those tiles have special meaning in the movie theater/spouse room maps, but are otherwise unused and/or for informational purposes

twilit quest
#

waves Hello folks. Does anyone know of a mod/framework that allows one to change the starting position of the farmer's bed in the initial farmhouse? The tile property "DefaultBedPosition" does NOT work.

latent mauve
#

The level 1 farmhouse's bed position is hardcoded IIRC?

#

DefaultBedPosition only applies when you upgrade your house.

twilit quest
lucid iron
#

do u want it lol

twilit quest
lucid iron
#

it is indeed hardcoded to 9f 8f yea PecoWant

#

but hm

#

even without me doing anything u might be able to relocate the bed

#

it'll be a little weird but let me try real quick

twilit quest
#

Thank you! ❤️

lucid iron
twilit quest
lucid iron
#

you'd be in the void if ur farmhouse tile 9 8 are in the void

#

is not like this moves the player monS

twilit quest
#

I'm working on a custom farmhouse map. I wanted to start with it at full size, but found I couldn't because it puts the player's bed in the void.

#

I'm actually torn about whether I should start it at full size or not. It's a "Broken Farmhouse" mod, where the player cleans and fixes the rooms progressively. I'm trying to decide if it makes sense to have the whole house there from the start (with certain rooms inaccessible until fixed/upgraded) or to start with smaller rooms as in vanilla

#

The full Farmhouse2 map has void at 9,8, and since I used that as the base, that's where the bed went ^_^;

#

I don't know, what do you folks think? This is the starting farmhouse I've currently got:

lucid iron
#

im keeping my house like this Dokkan

#

forest hermit core

twilit quest
#

Do you think it's better to leave it like that, or to see the whole map?

twilit quest
#

Maybe I should just make an option to remove the flavor text

#

And the trash

lucid iron
#

i guess it really depends on whether the upgrade is happening while you are in the map or not

twilit quest
#

The full map looks like this:

#

I thought that might be overwhelming though

#

(I'm still tweaking it and adding things)

lucid iron
twilit quest
#

The end goal being that the player has to spend more resources but less money to upgrade the house - once the Living Room is cleaned and fixed, the player is automatically upgraded to level 1, and so on.

#

I think it's more fun to have more bundles, but I like bundles XDDD

hard fern
#

oh neat it really does look abandoned

twilit quest
# hard fern oh neat it really does look abandoned

There was a really old mod that had a broken initial starting farmhouse that I liked, but it was defunct years ago. So I started from scratch and built my own. I've been working on this mod for years. The scope creep got me. x_x;

lucid iron
twilit quest
lucid iron
#

hm wait i put it on farm map kyuuchan_run

#

i wonder if it'd be nice to just

#

have farmhouse furniture on farmhouse

twilit quest
#

Fully custom maps that don't replace vanilla maps and have their own location, I mean

#

(Is it just me, or is it weird that the starting furniture is defined on the farm map instead of the farmhouse map?)

#

Same thing with starting seeds position

#

Are you using the FarmHouse Furniture property to put the bed in, @lucid iron? Is it usable as a bed?

uncut viper
# rough lintel <@78657757846188032> hello sweet angel, in your BETAS is there an option for a t...

i was out of the house and the others already basically summed things up for you (not possible in BETAS or IE etc) but a trigger happening "Now" is... kind of redundant/a truism or w/e bc thats just what a trigger is SDVpuffersquee like the CropHarvested trigger is "Now" as long as "Now" is when a crop is harvested, yknow?
as for why BETAS doesnt have an item collected trigger, its bc i DID have it at one point, but couldnt figure out a good way to make it only fire for new items received (which was my intent with it originally) and having it fire for every item received seemed like it might be bad for performance, like selph guessed.
(that trigger also had a bug in it that made people lose items as soon as they got stacked which was oopsie so i just disabled it and never re-implemented it)

#

you COULD make the trigger yourself with BETAS harmony quite easily, but it would be a "for every item gained" situation and so it'd fire any time something goes into your inventory, basically

rough lintel
#

or like allow the user to provide said argument/key

uncut viper
#

BETAS Harmony would let you run a trigger action after every time, say, Farmer.OnItemReceived() is called in the games code. combined with the If action you could do If PLAYER_HAS_ITEM whatever # do thing

#

but the trigger itself would happen for every item

rough lintel
#

what if i used Quest.ItemRevceived

#

still the same thing?

#

because this occurs only during a quest

uncut viper
#

quest.ItemReceived is just called from Farmer.OnItemReceived and does nothing when its not attached to a quest

rough lintel
#

ah hm

#

i mean doesnt CA do that with the gunther artifact quest thing

#

so its not... super horrible.. for performance?

uncut viper
#

is this a basic quest?

rough lintel
#

uh it can be if i need to convert it

uncut viper
#

the artifact quest thing manually checks for an artifact not every item

rough lintel
#

but doesnt it check every item to see if its an artifact?

uncut viper
#

you dont need to convert it i was just curious

#

no it checks it when an artifact happens to be created

#

like when you dig one up

#

and then when you pick it up

rough lintel
#

tldr what i wanted to do was -- when you pick up x item, display a message with BETAS

uncut viper
#

and then it never happens again

rough lintel
#

yeah

lucid iron
uncut viper
#

its fine there bc CA knows nothing else will ever care

#

its a performance problem potentially for trigger actions bc if i added an ItemReceived trigger

#

then it must always check every trigger action that uses it

#

even if none of them will apply

twilit quest
uncut viper
#

so it has to check your GSQ every single time

rough lintel
#

so solution is to.. manually place an item?

uncut viper
#

and the GSQ of anyone else using the same trigger

rough lintel
#

like with robin's lost axe

#

😔

uncut viper
#

you could do that but if it is attached to a quest then it might actually work to postfix Quest.OnItemReceived

#

since then it only happens if the player actually has a quest

#

to explain the performance thing a bit more its like
every time a farmer changes location, every LocationChanged trigger must be checked, bc they may need to be applied. if there are 100 mods using LocationChanged triggers then it must check all 100 of them. however, this is fine since LocationChange doesnt happen constantly and it has a loading screen anyway

#

but imagine if 100 mods all used ItemReceived

#

then all 100 triggers must be checked every time the player receives any item

rough lintel
uncut viper
#

which happens quite a lot

#

it might just be yours! but it might also be everyone

#

just like one single mod using TimeChanged update rates is fine

rough lintel
#

ill just place em in predetermined locations i think

lucid iron
#

what about special order

rough lintel
#

yeah this is a special order

uncut viper
#

that said evne if its placed like a lost axe that wont fire any action or anything when the player picks it up

rough lintel
#

special order is like "hey answer my riddles three and bring back these items" and when u pick one up and it. clears the requirement

#

oh, tile property

#

when player picks it up jirachismirk

#

unless i do lostitem but i cant do that in special orders

#

but what if.... i could.

uncut viper
#

(i still think BETAS harmony postfixing Quest.OnItemReceived is actually fine, though it requires me to genuinely recommend BETAS harmony, which im hesitant to do)

rough lintel
#

might go a little crazy and mess around with LostItem stuff

#

who knows. who knows.

#

yeah i think lostitem might be the way to go

#

unfortunately

glossy cargo
#

Nobody else has the failed to deploy the mod error in VS every time they build for the 2nd time without restarting VS?

calm nebula
#

Nope

glossy cargo
#

It's driving me absolutely crazy

#

like VS can't let go of a lock on the mod dll file or something

#

That didn't used to happen, months ago. I have no idea what changed Sadge

rough lintel
#

ok is there rly no "HasSpecialOrder" token in cp

#

or does it fall under HasActiveQuest

lucid iron
#

@twilit quest so i think what ill do is make 2 new map properties for usage in FarmHouse

#

one of them works just like the Farm level FarmHouseFurniture

#

the other one will remove furniture at coord

uncut viper
rough lintel
uncut viper
#

(as far as i know. i may be incorrect)

#

(depends on whether or not Special Orders go inside Farmer.questLog which i dont think they do ?)

#

theres a GSQ for it though

rough lintel
#

made it a mail flag we are out here

twilit quest
lucid iron
#
{
  "Action": "EditMap",
  "Target": "Maps/FarmHouse",
  "MapProperties": {
    "mushymato.MMAP_FarmHouseFurnitureRemove": "9 8",
    "mushymato.MMAP_FarmHouseFurnitureAdd": "2048 4 6 0"
  }
}
#

must be on new save to work since it is specialized

#

this says "remove furniture at 9,8; add (F)2048 to 4,6 with rotation 0"

twilit quest
#

Awesome! I will give it a shot. ^_^ Is it possible to make it override all Farmhouse Furniture added by the map property on the Farm Map without specifying every possible coordinate?

lucid iron
#

"mushymato.MMAP_FarmHouseFurnitureRemove": "ALL",

twilit quest
lucid iron
#

special value

twilit quest
#

This is an awesome birthday gift

#

Thank you so much ❤️

lucid iron
#

lmk if bug kyuuchan_run

twilit quest
hard fern
#

oh great i typoed

tribal ore
#

Hey, all you map gurus -- is there any way to change the color of the lights when they are rendered in game?

#

I'm talking about the "Light" map property. The wiki covers how to add them to the map and change the shape, but I don't see any options for color

#

Ambient light is probably not the right thing

twilit quest
tribal ore
twilit quest
lucid iron
tribal ore
lucid iron
#

the spacecore one is a map prop while the mmap one is a tile prop so pick what u prefer

#

can i use a valuetuple for the key of a ConditionalWeakTable LilyDerp

#

nop SDVpufferpensive

half tangle
#

if you don't need it too frequently, serialize the value tuple into a string, use string as key?

lucid iron
#

well i dont think that'd work for a cwt

#

but i will just use a cwt<key, dict<key2, value>> as i am terrible 3sSmolMiku

half tangle
#

yeah, that is an option... simply bury your values under multiple keys

calm nebula
#

Note that cwt keys on the memory address of the key

#

Not the hash

lucid iron
#

but would that actually give me the weakref

calm nebula
#

Have funnnn

lucid iron
#

thats the concern

calm nebula
#

Exactly!

lucid iron
#

nou

half tangle
#

whoa, use for a tuple that doesn't use a valuetuple

lucid iron
#

i think atra is scam me somehow

calm nebula
#

How am I scamming you

lucid iron
#

i dunno thats why it's a skem

calm nebula
#

I told you exactly what the pitfall is

#

(Note that serialization into a string has thr same pitfall(

twilit quest
lucid iron
#

yay

twilit quest
# lucid iron yay

Do you think it might be possible to do something similar with the FarmHouseStarterSeedsPosition?