#making-mods-general

1 messages · Page 290 of 1

golden spire
#

I don't normally list it as a requirement, because it's not required for my things to work

uncut viper
#

well Custom Farm Loader is like, indistinguishable from its surroundings, so if thats the one with the highest number of dependents, then the others aint gonna be much better

spice inlet
#

could also simply be how mods with multiple requirements are displayed

royal stump
#

(oh, you're right, a lot of mods do list it on nexus these days SDVpufferdizzy)

uncut viper
#

i selected CFL and then zoomed out to view the entire thing at once again and immediately lost it

#

its in 105th place when it comes to dependents, though, with 19 dependents

#

but SVE CP has 461 and you can see how small it is still, so that kinda sets the scale expectations here

#

the purple cluster above GMCM is linked to GMCM actually, so its just that theres not enough to form a blob around it and GMCM is being pulled in two directions, which is why its a bit far away from them
The other purple on purple cluster above GMCM and to the left of AT is... Mod Updater?

lucid iron
#

Is that the old erinth mod

#

Aedenthorn

uncut viper
#

im just surprised its got enough to have its own little bubble

gaunt orbit
#

I think that's plato's thing

royal stump
#

yep, that's the plato one from 2020

uncut viper
#

(also nexus page requirements are not taken into account here, this is only manifest data. each mod listed as a dependency is given its own edge)

lucid iron
#

it would be fun to scale the dots by udl on nexus to see what's contributing the most

uncut viper
#

(and also each mod listed as a contentpackfor, which is being counted as a required dependency but i can differentiate them by colour later, just not in Gephi)

blissful panther
#

MEEP has a similar problem in that it isn't picked up in the mod stats because of how it's never a direct dependency.

It also has too few packs to make it into the dedicated list of frameworks in the stats, but still. SDVkrobusgiggle

gaunt orbit
#

I almost used that, but it required you to host the zips as files on github separately from releases, which was too weird for me

lucid iron
#

Though idk how to resolve this with already scaling with number of dependents

uncut viper
#

well you also have to remember this is the whole mod dump

#

its not a nexus dump

#

its nexus, curseforge, and moddrop

#

(de-duplicated with the nexus version preferred in cases of collision)

gaunt orbit
#

I wonder if you could scrape the logs on the smapi website to get mod usage metrics

uncut viper
#

arent the logs unscrapeable by design

gaunt orbit
#

It would of course be wildly skewed but still

#

I meant in the general sense

#

I'm sure pathos has a way to access them

uncut viper
#

also, even if i did get the UDL info for the nexus ones, i definitely do not have the special API permissions that Pathos does

#

i would absolutely tear through my general API limit

iron ridge
#

no auth + higher rates

iron ridge
uncut viper
#

i dunno how id do that without a custom discord bot or a userbot account, both of which i feel like the junimos are not interested in me having here SDVpuffersquee
the graphql api thing is interesting though, ill make a note of that

#

though, id worry that itd fall under their "Don't fetch data en-masse with the intent to rehost the info" thing on their acceptable use policy

lucid iron
uncut viper
#

i dont think pathos wants me to scrape data from logs that are meant to be ephemerable and not recoverable

urban patrol
#

can anyone think of any quests whose requirements are to see an event, basically? i'm trying to figure out how to write these completion requirements. i think the quest type would be basic

uncut viper
#

and i also do not want to do that

lucid iron
#

The graphql api kind of succ according to barley

gaunt orbit
#

Honestly it would be nice to have some form of automatic error reporting, although with harmony in the mix that would get hairy fast

faint ingot
#

Am I correct in saying there's no event command that will force the player to HOLD a particular item?

lucid iron
#

It gives up very readily

iron ridge
#

i don't think he'd mind if you're just getting numbers since @ocean sail does that anyway

uncut viper
#

is showItemAboveHead not what you want

faint ingot
#

no I was hoping to equip an item like a weapon and have them walk with it

rigid oriole
#

but if you want to get things in batches be prepared to cry based on bad nexus update keys because the "get mods in bulk by legacy id" endpoint is not best-effort and will fail saying all mods don't exist if one mod doesn't exist

uncut viper
iron ridge
#

all the logs you'd be able to get have censored paths

lucid iron
#

Selection bias for ppl with problematic old mods in their log

uncut viper
#

also i need to actually finish it as is first, i cant be accepting scope creep for my fun one day project already

rough lintel
lucid iron
#

No i get doxed by better crafting everytime

rough lintel
#

me when better crafting posts my full name and address in my smapi log

faint ingot
#

follow up question would be does anyone know a good visual resource for farmer sprite frames? besides the wiki? I want them to do a throwing motion not sure if there's anything better than the tool/weapon use ones but I can play around with it

lucid iron
#

There's just the wiki page afaik

uncut viper
#

farmer sprites is kinda hell so good luck

tender bloom
#

the wiki page represents the sum total of my knowledge, at least

empty sail
#

quick question if someone can answer

#

if i specify a dialogue line to occur in "Year1_spring_Mon" will that work?

#

so itll only be said in year 1 spring mondays

#

on the wiki page i saw it says you can set the values with using either a 1 for first year or a 2 for any year after that but not entirely sure what it means by that

rigid oriole
#

"Year1_spring_Mon" is not a valid dialogue key in vanilla. You want "spring_Mon_1" I believe (the <dayOfWeek>_<firstOrLaterYear>) dialgoue key

#

(well it's valid, but it doesn't do anything)

empty sail
#

Ah gotcha thanks

#

also one other thing if you dont mind

#

if i specify the hearts with something like "Mon2" does that mean it exclusively plays on exactly 2 hearts or is it 2 and above

rigid oriole
#

it's 2 and above unless a higher heart level one exists like Mon6

empty sail
#

ok brilliant

#

thanks this has helped me alot

golden spire
#

if you want more control/options than the base game provides, you can use when conditions with content patcher to match all kinds of things... "dialogue spoken on mondays, when raining and you have 5 hearts with Abigail and 2 hearts with Shane and you picked the geologist trait" (for some strange exact combination)

urban patrol
#

does anyone know more about the mail flag NOQUEST_<questID>? there's no information about it but i'd like to use it if it means a mail flag is raised upon quest completion

lucid iron
#

it prevents you from getting that quest again (by mail)

#

but i do not see where it gets set

urban patrol
#

darn okay

#

i'm looking for a way to trigger an event to happen only after a quest has been completed

lucid iron
#

if the quest is some kind of item delivery, you can set flag in the response dialogue

proven spindle
#

For quest completion mail flags, the best methods I've found are to either include npc reaction dialogue with an action trigger mailflag at the end, or to use the questcomplete conversation topic in a trigger action to set it

urban patrol
#

it is item delivery!

royal stump
#

(even searching back to SDV 1.3, I don't think the noquest flag is ever actually set, just checked for in the letter menu SDVpufferthinkblob)

lucid iron
#

i wonder what the intended usecase is

#

theres NOSPECIALORDER_ too

urban patrol
#

so i would write the final entry in the quest to be "dialogue diaolgue$t{{ModId}}_CTName"?

tired dirge
#

im seeing i should use .net 6.0 but visual studio isn't giving me that as an option

lucid iron
#

did you install .net 6

proven spindle
#

I usually use action addmail mail_name_here

tired dirge
#

i thought i did

lucid iron
#

just in case, what are you trying to do

#

setup the button press C# mod example?

urban patrol
royal stump
#

make sure you're selecting Class Library as the project type, not Class Library (.NET Framework)

proven spindle
#

The npc response will be the trigger (so you talk to the npc at the end of the quest, and the action trigger is within their dialogue)

urban patrol
#

do you have an example of a trigger within dialogue i could look at? i'm just not sure of the syntax

tired dirge
lucid iron
#

oh you don't need any C# then bolbsunglasses

#

[[modding:maps]]

lucid iron
#

u can do all that with content patcher

proven spindle
# urban patrol do you have an example of a trigger within dialogue i could look at? i'm just no...

There are examples at the bottom of the trigger actions page, here's the one for dialogue:

"Mon": "Hi there! Here's 10g and a parsnip, don't spend it all at once.#$action AddMoney 10#$action AddItem (O)24"

You'd just do similar in the quest reaction text (how to add reaction text is on the quests wiki page)

One of my mods (sebastian's frog sanctuary) uses this a few times if you want an example mod to look at

urban patrol
proven spindle
prisma ibex
#

Does someone know where the TV animations/display images are located in the game files

proven spindle
urban patrol
prisma ibex
golden spire
#

loosesprites....

also cursors2 for the ones added by 1.5 (island and the fish channel)

tender bloom
#

Cursors is an image

#

There's also Cursors_1.6

#

but I don't think there was new TV in that one

#

just fun facts about the proliferation of cursors

gaunt orbit
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!

gaunt orbit
#

This will be easier in the long run

prisma ibex
#

I'm using mobile so just downloading the image directly by holding it and then packing it after modifying it is easier :V

spring marlin
#

how do i reload my content patcher mod without restarting my game(i think i saw you can, can't remember how though)

golden spire
#

patch reload modid

#

in the smapi console

gaunt orbit
prisma ibex
#

لا إله إلا الله محمد رسول الله
أستغفر الله العظيم
أعوذ بالله أن أشرك به شيئا وأنا أعلم و أستغفره لما لا أعلم

tired dirge
latent mauve
#

Do you need to add them in Tiled, or in the game?

#

(also, are you adding custom or vanilla tilesheets, because if it's vanilla, save yourself some pain and start from one of the pre-existing farm maps where the vanilla tilesheets are attached already)

spring marlin
#

im using MMAP and it seems like a QuestionDialog inside a QuestionDialog doesn't work

#

can someone help? my entire mod is based around having a category and then you select from whichever category you choose

lucid iron
#

!json

ocean sailBOT
#

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

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

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

lucid iron
#

post your def

spring marlin
#

it has the same problem even if its not recursing

rough lintel
#

ok, why did my tempactor disappear. it loaded up just fine before, now that mf gone 😭

lucid iron
spring marlin
#

doesn't work D: (my entire mod is just that but at a bigger level)

#

it seems like if you go into a dialog from one nothing works :(

lucid iron
#

yea that is what i mean, the afterQuestion doesn't seem to be a queue PecoWant

#

ill see what can be done to fix it

rough lintel
empty sail
#

Anyone know if there is a way for me to get a line of dialogue to use a portrait i cant put in with a $ number

#

is there any way of me putting the portrait file in and somehow linking it to the dialogue

#

its not going to overwrite any existing portrait

urban patrol
#

why can't you use the $ ?

ornate locust
#

Sounds like it's a different image?

empty sail
#

well the $ ive been using seems to only go up to the number of portraits i have as my standard ones but this one is a seperate png

urban patrol
#

personally i would resize your portrait png and tack it onto the next row. i don't know of a way to call another file entirely

ornate locust
#

Yeah you can just make the image bigger

empty sail
#

oh so it would work if i put the png portrait onto the existing one and it would then be the next $ number

urban patrol
#

yep! you can look at bachelor portraits for an example, they hold a lot more than the standard 6 portraits

ornate locust
#

If there's a number restriction for how long a portrait file is, it's pretty damn high

empty sail
#

is there any sort of guide somewhere for resizing pngs to the right side and adding them on? im quite new at all of this

urban patrol
#

6 is bare minimum but yeah you can have as many as you want afaik

#

what software do you use for pixel art?

rough lintel
#

yelling at it fixed it. now onto my next quemshun: removing shadow from a tempactor: possible or no?

empty sail
#

I dont plan on adding too many anyway

empty sail
urban patrol
#

try using the crop tool or else look up how to resize an image in gimp. make sure you do it in multiples of 64 pixels, and always keep it to only 2 columns

#

i don't use gimp myself so idk specifics unfortunately

empty sail
#

Right ok thank you

#

ill give it a go and most likely be back here when i end up doing something wrong haha

urban patrol
#

good luck 🫡

golden spire
# empty sail gimp

just remember when you resize to set interpolation to "none", otherwise it will antialias/smooth pixels

empty sail
#

to my surprise i actually got it working on the first try

#

cheers for all the help

normal root
#
"When": {
    "HasFlag": "thatflag AND NOT thisflag"
}

does this work to check if the player has thatflag but does not have thisflag?

lucid iron
#

You need |contains pretty sure

normal root
#

ok, just found it in the docs, thank you!

delicate solstice
#

uhmm how do i make a recolour ? i wanna make custom tool sprites or wtv but idk where to start

lucid iron
#

!startmodding

spring marlin
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.

delicate solstice
#

ooo

lucid iron
tiny zealot
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!

delicate solstice
#

okk

tiny zealot
#

that will extract the .xnb files in your content folder into readable and editable data, in particular .png files which you can use as the basis for your edits

delicate solstice
#

awesomeness

proven spindle
#

Hmm, I need some help with a shop. I'm having trouble with ClosedMessage

lucid iron
#

What do you mean by wtv tho

patent lanceBOT
#

@brittle pasture: report the wood chipper issue (9h ago)

proven spindle
#

I have this action

"MapTiles": [
{
"Position": { "X": 65, "Y": 23 },
"Layer": "Buildings",
"SetProperties": {
"Action": "OpenShop {{ModId}}_PowerShop"
}
},

And this shop entry

"{{ModId}}_PowerShop": {
"Id": "{{ModId}}_PowerShop",
"Owners": [
{
"Id": "{{ModId}}_Open",
"Name": "AnyOrNone",
"Dialogues": [],
"Condition": "TIME 800 1700",
},
{
"Id": "{{ModId}}_Closed",
"Name": "AnyOrNone",
"Condition": "!TIME 800 1700",
"ClosedMessage": "{{i18n:Si.BC.BFNotBegun}}",
},
],
"Items": [

All the stuff from Items onwards works fine, the shop itself works perfectly

EDIT figured it out, should anyone else come seeking this knowledge see the comment below this one for what I did SDVpufferfall good luck!

#

The closedmessage does not

EDIT figured it out, here's what I did:

"MapTiles": [
{
"Position": { "X": 65, "Y": 23 },
"Layer": "Buildings",
"SetProperties": {
"Action": "OpenShop {{ModId}}_PowerShop none 600 2600 65 23 1 1" // Added owner tiles and set open times to all day
}
},

"Entries": {
"{{ModId}}_PowerShop": {
"Id": "{{ModId}}_PowerShop",
"Owners": [
{
"Id": "{{ModId}}_Open",
"Name": "AnyOrNone", // Set to AnyOrNone
"Dialogues": [],
"Condition": "TIME 800 1700",
},
{
"Id": "{{ModId}}_Closed",
"Name": "None", // Set to None
"Condition": "!TIME 800 1700",
"ClosedMessage": "{{i18n:Si.BC.BFNotBegun}}",
},
],
"Items": [

#

I've tried adding open times to the openshop action, switching the name between Any, None, and AnyOrNone, and removing the {{ModId}}_Open entry; nothing works

#

Anyone see any issues with the code?

delicate solstice
merry rampart
#

someone posted this on one of my mods and I'm here wondering if debris does in fact stop the opening cutscene from progressing on a modded farm map?

tiny zealot
#

hmm. if memory serves, the debris on your farm map is fully deterministic on a new save, so it should be easy to verify one way or the other

merry rampart
#

i suppose i can test it out and see

urban patrol
#

does anyone have experience making temporary animated sprites? i have these double-wide sprites that i was able to animate during schedules using spacecore, but i'm not sure how to add it to events, since they have to be animated manually. i had the idea of using temporary animated sprites but i'm not sure what arguments to put

#

texture would be the target of the load, right? how does it know which sections are a frame?

tiny zealot
#

i don't know much about TAS but i'm picturing an extremely cursed event script with temporary actors and a sickening amount of beginSimultaneousCommand (i don't really recommend doing this unless you are a masochist)

urban patrol
#

don't worry i have to have temporary actors too :')

merry rampart
#

nope, the debris wasn't the issue. she has a clear path to the front of the farmhouse

#

so idk what else it could be

#

ugh. i found the issue. i had to move the house up a space

#

dangit i really dont want to do that. i like it where it is :/

urban patrol
#

can you can conditionally patch the map to have the house be one tile up only in the initial scene? or do you feel that would be weird

merry rampart
#

i dont know how to do that x.x

urban patrol
#

well i know there's a GSQ for IS_EVENT, although i haven't used it myself

merry rampart
#

a what

urban patrol
uncut viper
#

cant use gsq in when condition without dependency

urban patrol
#

aw man, never mind me then

uncut viper
#

dependency also wouldnt work her eanyway as token wouldnt refresh in time

merry rampart
#

sigh. i suppose moving the house up a tile wouldn't be the end of the world

proven spindle
#

Not too familiar with modding farm maps, but do you just need the house to be at certain coordinates? Wonder if adding an extra row to the top or side (making the map slightly bigger at an edge and moving the 0,0 coords) would be enough to shift that

merry rampart
#

no, unfortunately. i gotta move the house up

#

other option would be to edit the opening cutscene itself and that would create more of a headache

#

because then it would require translations

tiny zealot
#

isn't the meadowlands farm house at different base coordinates? or am i misremembering

merry rampart
#

i think there's a special cutscene for meadowlands

calm nebula
#

Wait a second

#

Does the cutscene not take into account farm house offs

merry rampart
#

nope

tender bloom
#

I would try to copy something from a vanilla event

merry rampart
#

there is npc pathing to the front of the house

urban patrol
merry rampart
#

but if the house is in that pathing, the cutscene cant play

tender bloom
#

It’s picky about where the animation spritesheet lives, iirc

uncut viper
calm nebula
#

I thought so too!!!@@

tender bloom
#

Texture is the spritesheet, rectangle is probably either the starting xy of the frame or the size of the frame (I forget)

calm nebula
#

Hi button

uncut viper
#

only reason it wouldnt actually match the door is if you have a FarmHouseEntry map property on the farm that doesnt match

#

hello atra!

calm nebula
urban patrol
#

so this is what i have temporaryAnimatedSprite Characters\\EdwinPayne 0 288 32 32 360 2 9999 48 91 false false 6 1 1 0 0 with Characters/EdwinPayne being where i loaded the spritesheet to

calm nebula
#

What should we convince Button to do today 😛

urban patrol
calm nebula
#

Probably easier tbh

urban patrol
#

i'll for sure try it

uncut viper
#

im not convinceable right now, im still fighting that dependency graph from earlier

vernal crest
#

TAS is super easy imo

urban patrol
#

so would rectangle encompass the 32x32 area starting from the upper left corner of the first sprite?

#

how does it know to find where the next frame is?

vernal crest
#

Yes, if that's where your coordinates are. It just looks at the next square across for the next frame.

urban patrol
#

oh okay. so for the cricket bat animation (the second guy) i would tell it that it's 3 frames, and it would know to stop?

#

and does this mean that every frame has to be the same length and cannot be repeated

vernal crest
#

Yes and it depends. If you mean can you play 0, 1, 1, 2 - no you can't. If you mean can you play 0, 1, 2, 0, 1, 2 etc, yes you can. You can also do 0, 1, 2, 1, 0.

urban patrol
#

oh yeah it can loop and pingpong but not 'pause' on a frame, got it

vernal crest
urban patrol
#

temporaryAnimatedSprite Characters\\EdwinPayne 0 288 32 32 360 2 9999 48 91 false false 6 1 1 0 0 0

i don't get any error in SMAPI, but he straight up doesn't show up. he also disappears, but that's desirable because i warp him away right before to replace him with the TAS

#

wait nvm i needed a decimal point in there!

tender bloom
#

But there's one flavor that's specifically the animations spritesheet i think (maybe only in C#)

vernal crest
#

There's also a confusing number of event commands with temporary sprite in the name and two of those have restrictions on spritesheet location

lucid mulch
#

events are probably the biggest area that 1.6 lightly touched for extra validaiton and stuff, along with tooling to help language consistency, but didn't outright change.
Events being a spaghetti string delimitated list with weird encoding and formatting rules (including sometimes using backwards slashes to encode steps that are nested) is a weak point that should be overhauled, but that is modpocalypse territory without modrewriters being ready and waiting

#

Did get named preconditions, but legacy events weren't allowed to use them for backwards compat

strong tide
#

im using stardewui and am fiddling around with it, i am wanting to reference the achievement (platform sprite), is that stored in the games files or is it just best for me to get them separately?

half tangle
half tangle
strong tide
#

yeah i have looked, i believe the platform icons for the achievements are not stored in-game as the ingame achievement icons are the stars

half tangle
#

Can you share a screenshot of the image you're talking about? I'm not sure what the "platform" you're referring to is

urban patrol
#

for a vanilla TAS, where can i find the texture for monsters?

#

would it be Characters/Monsters/Ghost?

tacit sparrow
#

Characters/Monsters/ then any monster names
Angry Roger
Armored Bug
Armored Bug_dangerous
Assassin Bug
Bat
Bat_dangerous
Big Slime
Blue Squid
Bug
Bug_dangerous
Carbon Ghost
Cat
Crow
Duggy
Duggy_dangerous
Dust Spirit
Dust Spirit_dangerous
Dwarvish Sentry
False Magma Cap
Fireball
Fly
Fly_dangerous
Frog
Frost Bat
Frost Bat_dangerous
Ghost
Green Slime
Green Slime_dangerous
Grub
Grub_dangerous
Haunted Skull
Haunted Skull_dangerous
Hot Head
Iridium Bat
Iridium Crab
Iridium Golem
Lava Bat
Lava Crab
Lava Crab_dangerous
Lava Lurk
Magma Duggy
Magma Sparker
Magma Sprite
Metal Head
Metal Head_dangerous
Mummy
Mummy_dangerous
Pepper Rex
Putrid Ghost
Rock Crab
Rock Crab_dangerous
Royal Serpent
Serpent
Shadow Brute
Shadow Brute_dangerous
Shadow Girl
Shadow Shaman
Shadow Shaman_dangerous
Shadow Sniper
Skeleton Mage
Skeleton Mage_dangerous
Skeleton
Skeleton_dangerous
Spider
Spiker
Squid Kid
Squid Kid_dangerous
Stick Bug
Stone Golem
Stone Golem_dangerous
Tiger Slime
Truffle Crab
Wilderness Golem

urban patrol
#

thank you!

tacit sparrow
#

should decompile so you can actually look at the images to get the correct size of image

urban patrol
#

i have the images, i just wasn't sure how they're assigned in the actual code :)

#

that smiley isn't meant to read as passive aggressive

spring marlin
#

hmmm, i guess i need to make a "more" section or something along those lines

#

btw for anyone wondering these are teleports to sunberry village

rigid musk
#

How do you get the overlay of the leaves and stuff floating around, like in the secret woods ?

brave fable
#

i thought that was simply from weather debris on windy days?

#

i suppose you could force it by creating a new location context that exclusively uses windy weather, and assigning that in your location data entry

#

but it'll also come with pshhhwooowwshhhwooshhwh effects

tender bloom
#

Secret woods has at least some C# I thought

#

For the sunbeams?

rigid musk
#

Specifically the floaty leaves

#

might be an SVE thing actually, I was playing with mods when I saw it and was like 'hm yes this would look nice on my map'

spring marlin
#

is there a mod that allows me to see the ID of an item that i have in my inventory?

median forum
brave fable
spring marlin
#

where is the junimo plaque thing located?(like the sprite)

frigid hollow
#

townInterior i think? near the junimo hut

#

yeah that's it i think

hallow prism
#

yes, and the one that is in 3 frames is the bulletin bundle

drowsy pewter
#

I want to do something with CP tokens and GSQs to return true on every 3 days rather than manually list out every day number that is true. I want to use the CP modulus (%) operator but I'm not 100% sure how to. would it be something like this?

"Condition": "{{Query: ({{Day}} % 3) = 0}}"?

#

I'd be fine with listing out every day number, but a player has informed me that they play with a mod that extends every month to be 56 days long asjhksfjdsfs

spring marlin
drowsy pewter
frigid hollow
#

but does it proc on day 6 normally

#

or is it offset by 1 across the board

drowsy pewter
#

across the board, I believe whtas happening is that the CP token {{Day}} evaluates after produce has appeared on that bush for the day, therefore {{Day}} evaluates as 28 on day 1 and 1 on day 2, while the GSQ DAY_OF_MONTH evaluates correctly as 1

#

So what I did was write "Condition": "ANY \"DAY_OF_MONTH 1\" \"{{Query: ({{Day}} % 3) = 0}}\"",

#

This is more intuitive for players anyways since they would expect the bush to produce on day 1 of its valid season

lucid mulch
#

I need to do something about NPCMapLocations and NPCLocationCompass if I want to play with this many npc's 😦

blissful panther
#

Those spikes do feel familiar to my experience!

lucid iron
#

is that every 10min

lucid mulch
#

like every tick

#

trace console is screaming with profiler being angry

#

zoomed in more to actually see individual units better. the darker bars are locationcompass, lighter (and more frequent) is npcmaplocations

frigid hollow
#

woah how many npc's is this on

lucid iron
#

just don't play game until cam's mod is out ez

lucid mulch
#

intro quest is in the mid 150's, no idea how many more that are exempt from the intro quest

#

what's cams mod?

lucid iron
#

google maps mod that pathfinds you to an npc

#

its active start/stop navigation rather than passive on all the time

lucid mulch
#

tbh I need the mods less for myself but for the online multiplayer farmhands.
the lag is from serializing and networking the location data to the other clients as farmhands can only see their own map (and other active locations)

lucid iron
#

hm how does BETAS perform for you?

#

it is indeed sending broadcasting npc position all the time

#

button did a fair bit of caching tho so it might be better bolbsunglasses

lucid mulch
#

ok taking a brief glance at BETAS code, it will probably be fine

lucid mulch
#
  1. its never more than once a second (LocationCompass runs at a 1/4 second frequency and npcmaplocations is config but defaults to half second)
  2. only networks the delta
  3. even is clever and runs on a tiered cache system to save time even checking locations
whole raptor
vernal crest
whole raptor
#

Found it, I'll take a look

#

Ah so basically google maps for SDV SDVpuffersquee

lucid iron
#

ig npc map locations does have to check all npcs all the time tho bolbthinking

vernal crest
vernal crest
#

googly maps

lucid mulch
#

ok looked it up now, very interesting, but without multiplayer support I'm stuck with npcmaplocations + locationcompass

calm nebula
#

Realistically:

  1. Npc map locations could probably just send data when the farmhand opens the map
#
  1. Location compass could send the "deltas", only cares about the map of the npc (not the precise location) until an npc steps on your map
#

Neither seems hard to do.

#

(+ when an npc steps on your map their location becomes accurate anyways)

whole raptor
#

Will this work...? Or will tokens get messed up 😅
{{i18n:<key>{{random:1,2{{WizardFemComp}},3}}}}

lucid mulch
#

tokens run inside out, so yes it would work

whole raptor
#

Nice, thanks

versed wyvern
#

Is it possible for us to have a mod activate the self-service bus ticket and Saloon purchasing that the game uses when Pam and Gus leave their stations for Ginger Island? I'd like to make them leave for a bit of social interaction time

thorny tiger
#

there's a mod I believe that makes every vendor self-serve so im sure that's doable in some capacity

versed wyvern
#

Hmm, there is indeed a mod that enables the bus without needing Pam but that's a dll mod and doing C# is still outside of my ability right now rubyslime

thorny tiger
#

ah you might struggle without c#

#

I'm sure there's a mod though

sly marsh
#

hi, does anyone here do mods for commission? if anyone here's able to do a mod to hide hud elements dynamically please DM me

ocean sailBOT
thorny tiger
versed wyvern
sly marsh
#

the idea of just fading out things as theyre not currently in use is lovely to me

thorny tiger
calm nebula
#

If you don't give her a schedule point on busstop that is

thorny tiger
#

well don't I feel like a fool then

#

just Gus I suppose

versed wyvern
#

Oh, for real? That's perfect O2Wow Never would've thought it's coded to be controlled by the schedule point

thorny tiger
#

actually I'm not the fool but I'm the fool for saying I'm the fool as it appears self serve doesn't apply to Pam's

#

which now makes sense

versed wyvern
#

There was a separate mod I found for Pam that was also a dll

#

I guess for Gus then I could work around it by making the shop openable without someone at the counter only on the days I plan to make him leave blobthink

lucid iron
#

These are both fairly hardcoded yep

#

For Pam bus the central station mod lets you take bus stop -> central station -> desert all the time

whole raptor
#

How do I turn on "snap to grid" for TileData in Tiled? SDVpufferthink I could have sworn it was by default when I used it before reinstalling

whole raptor
#

I'm blind... thanks 😅

spring marlin
#

is it possible to make a chest-like container open on a tile/touch action?

lucid iron
#

Hmmm global inventory tile action...

#

I don't think any map things framework has it, but you do sorta get it with special order drop boxes

spiral lion
#

Hello, I have a question about spites/animations/schedule.
Abigails schedule says:
Abigails "fall": "900 SeedShop 39 5 0/1030 SeedShop 2 20 3/1300 BusStop 22 5 2/1700 SeedShop 3 6 0 abigail_videogames/1930 SeedShop 1 9 3 abigail_sleep",

How to you define custom animations? Like "abigail_sleep" and "abigail_videogames"? :))

whole raptor
#

data/animationDescriptions

vernal crest
spiral lion
#

thank you! 🙂

whole raptor
#

Out of curiosity... how much would I break my game if I swapped all the "Update": "OnTimeChange" to "OnLocationChange" in my mods folder SDVkrobusgiggle

golden spire
#

probably not that much

whole raptor
#

Time for an experiment

tawny ore
#

OnTimeChanged is sometimes a necessary sin depending on what the mod is trying to do, but should be avoided unless absolutely necessary. Sometimes it seems like mods choose that because they don't know any better.

whole raptor
#

Yeah, absolutely true

#

I see way too many in places where there's no reason for it to be there

tawny ore
#

It's not too different from C# mods that run their main loop code way more often than they need to

#

Like every game tick when every second would suffice

whole raptor
#

Replacing all OnTimeChange in a loadout of 350 mods reduced handling time of GameLoop.TimeChanged by half (69ms to 34ms) for me SDVpufferthinkblob I wonder how many of these were actually needed...

golden spire
#

maybe 20%? (wild guess)

whole raptor
#

I might just roll with it for my playthrough and see if anything is obviously broken SDVkrobusgiggle

calm nebula
#

Mining bitcoin on time changed is fine right

tawny ore
#

Of course it is. Otherwise, imagine all the wasted cpu cycles.

#

I am once again requesting a Content Patcher OnGameTicked /s

whole raptor
urban patrol
#

is there a way to delete your own comments on nexus? my replies to people posted like 10 times 😭

golden spire
#

not directly no

whole raptor
#

You can hide comments if it's on your mod page, I thiiink it's the same as deleting..?

royal stump
#

yeah, the "manage" -> "hide and optionally report post" option is effectively a delete, assuming the comments are on your own mods

calm nebula
#

That makes it SEEM like your post is like nine million times

#

Refresh thr page first, see if they vanish

old edge
#

oh I see item extensions can do something related.

#

I spent a few days trying to make my code work if anyone can help me out with C#? I have this code that seems to work only problem is the light doesn't stay permanently on the item.

lucid iron
#

If you want the light to follow character you need to reposition

upbeat crow
#

Hey can someone pretttyyy please draw for me the mods and i am going to codding them?:>"

PS: DM me and you can also you then use the mod that you created with me<3

brittle pasture
#

!commissions this is also helpful

ocean sailBOT
calm nebula
merry thunder
#

I hope I'm in the right channel but I need help with making a mod. I tried following the tutorial and I thought I did everything perfectly but it's not working cryign

urban patrol
#

what are you trying to do? also consider uploading your log and json here so we can see

tender bloom
#

You’ll have to explain more what exactly you tried

#

Also which tutorial is helpful info

merry thunder
#

Ill also grab the tutorial link :o

uncut viper
urban patrol
merry thunder
ornate locust
#

also if anybody good at FS happens to know why part of an accessory changes color when you layer on another one even if I have color totally disabled for it and why that part would also just VANISH if I try to use masks to make part of it uncolorable, that'd be swell.

#

because man I'm out of diagnostic options

tender bloom
#

That tutorial should be fine, since it's from FS itself

golden spire
merry thunder
golden spire
#

it's better to send the logs via https://smapi.io/log rather than screenshots... but that looks like you don't have the image for it anywhere..

#

where is your hair.png image?

merry thunder
#

Im struggling with the link but heres a screenshot hsdkjsdh of it

#

The hair code is right next to it?

golden spire
#

it is looking for an image file named hair.png

#

not "template.png"

merry thunder
#

OOOOHHHH wait wait how did you figure that out?? :O

golden spire
#

because that's what it says in the error you showed a moment ago

#

"no associated hair.png given"

merry thunder
#

Wait I renamed the png to hair.png and I'm still getting that error

brittle pasture
#

it looks you don't have show file extensions on

#

so maybe the file is actually named hair.png.png

golden spire
#

view -> show filename extensions on Windows

brittle pasture
#

!fileextensions

ocean sailBOT
#
Hidden File Extensions

Windows and Mac hide most file extensions by default. If you are creating or updating mods, it's helpful to show file extensions so that you can be sure all mod files are named correctly.

To show file extensions on your computer:

On Windows 10, open File Explorer, click on the View tab, then check the File Name Extensions box.

On Windows 11, open File Explorer and click on View > Show > File Name Extensions.

On Mac, open Finder, and in the menu bar, click on Finder > Settings (or Preferences) > Advanced, then check the Show all filename extensions box.

merry thunder
#

Quickly testing if it works now

#

OMG IT WORKED

#

You guys are life savers!!!! If I could I would give both of you big hugs ;v;

strong tide
#

has anyone got experience with StardewUI here? im following the docs to learn right now and im coming across a couple issues like Input string was not in a correct format and the conversion from a Tuple<Texture2D> to a Func<Texture2D,Recangle> which i have very little experience with lols

uncut viper
#

i havent, but its creator does have a thread in this channel that they posted in about 10min ago if you wanted to ask for help there

golden spire
#

Button did you have any luck with expanding the movie tiles horizontally?

strong tide
#

i'll have a look thanks

fathom rapids
#

how do i do math in content patcher?
what im trying (a dynamic token)
"Value": "Query: {{GalaxySwordMin}} / 2",
what im getting (smapi log)
Could not convert string to integer: Query: 100 / 2.

ivory plume
fathom rapids
#

thats what the usage examples in the documentation show... ill try, ty!

#

im guessing patch reload doesnt update dynamic tokens...

hallow prism
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
uncut viper
uncut viper
fathom rapids
#

aha ty

uncut viper
#

SDVpufferthumbsup When conditions must always have the outermost braces removed, whether its a Query or a Season or anything else

fathom rapids
#

i tried that but patch reload didnt reload the dynamic tokens i think. so now im restaring the game. itll be another twenty minutes or so

uncut viper
#

that govbot command says it wont reload dynamic tokens

latent mauve
#

I'm looking at the Spacecore Guidebook documentation (and rewriting/reformatting it for my own understanding), and I have a terminology question based on my CP knowledge: Are data models and dictionaries considered the same thing?

uncut viper
#

dynamic tokens and configschema are immune to patch reload

fathom rapids
#

mhm

uncut viper
#

i dont know about the other outside-of-changes fields SDVpufferthinkblob

#

i assume theyre also exempt

fathom rapids
uncut viper
#

i dont know if there really is a formal definition of what a "data model" is (i could be wrong)

#

ive always just kinda thought of it as just, the term the community decided on. it does model data that is true tho

#

not all dictionaries are data models though

#

in the context of most stardew though data models are often dictionaries

golden spire
latent mauve
#

Trying to figure out how I'd describe a Guidebook entry to be more accurate. It's a series of fields and dictionaries enclosed in a { }

uncut viper
#

importantly, to be a dictionary, everything on the left of the colon must be the same type and everything on the right side must be the same type

#

(excluding, ofc, object types which everything is)

#

(i mean you can do a dict of object to object i guess...)

latent mauve
#

Basically, if it's nested, is it a model or a dictionary? Or does the nesting not matter as far as the term used?

fathom rapids
#

unless youre including like book dictionaries

uncut viper
#

colloquially i wouldnt call Characters/Dialogue/Pierre to be a data model

#

but it is a dictionary

#

something being nested also doesnt preclude it from being a dictionary or a data model

fathom rapids
#

i mean, a data model is a more meta thing. that file is an example of a dictionary, where a dictionary is an example of a data model?

uncut viper
#

hence, "colloquially"

latent mauve
#

I'll leave the already existing terms the same to be safe, but as far as this one: Pages - A list of pages, which are objects containing the following values:

#

Would they be object models?

gaunt orbit
#

In terms of assets, data models are structured in a specific way because they are backed by a class. As opposed to dictionaries and lists which do not have predefined elements

latent mauve
#

or data objects?

#

or another term entirely

fathom rapids
#

ahhhh okay i gotcha ty

uncut viper
#

wren describes it much better

#

an object in json is just a {} section

#

but its not an Object Model

fathom rapids
#

in my defense i learned this in russian lol

uncut viper
#

an Object is a Dictionary though, in json

#

just not called a dictionary

#

im not sure what the context of the documentation is, but i would call it a List of PageData objects, or Page data models

latent mauve
#

I guess in my head, I'm comparing the structure of pages to the Home system in NPC data, and so I was thinking in those terms.

torpid wolf
#

I just had an interesting idea. It would be fun to design an "Omelas" mod for Stardew Valley based on that Ursula K Le Guin short story that appears at the endgame

gaunt orbit
#

If you want to get technical, json has no concept of objects, only maps and lists

latent mauve
#

Since it's a list [ ] with key/value pairs further enclosed in { }

uncut viper
#

well it is called "javascript object notation"...

#

thats a concept of objects SDVpuffersquee

latent mauve
uncut viper
#

ive only ever heard em referred to as objects and not maps, though the difference is technically meaningful i spose

latent mauve
#

So you can see how those blocks are laid out

fathom rapids
gaunt orbit
#

See this is why I like things that are planned instead of just being hodgepodged together

uncut viper
#

but yeah wren described it much better than i did, whether something is a data model or not id say is whether or not its backed by a class that expects specific things

#

and since each PageData object expects specific things, since presumably its going to be deserialized into some PageData class on the C# side, its a data model

#

wheres Characters/Dialogue/Pierre is also a bunch of objects, but you can put any key value pair you want in there, as long as its string -> string

#

a bunch of pairs* not objects

#

the entire thing is an object

#

but its not a PierreDialogue data model

uncut viper
torpid wolf
fathom rapids
#

ok now im getting a new error!
Could not convert string to integer: 120.0.

#

i think this is the result of the query. its a float that got turned into a string and now wants to be an integer

uncut viper
#

that might be something to do with content patcher not being able to determine what type the token will be at runtime and so it cant correctly treat it as a float (bc it could just as easily result in a string or a bool) and thus not auto convert it? just a guess. probably a question for Pathos

fathom rapids
#

i think Round should do it?

uncut viper
#

worth a shot

#

iunno if round expects a number and not a string though

fathom rapids
#

i swear ive had this exact problem before and handled it with something content patcher has

#

round looks like it should work

golden spire
# uncut viper its milliseconds. all movies are actually just Events constructed at runtime. ea...

guess there is some added delay that happens with lower numbers, when I initially did it I worked out the maths for the correct ms delay between frames and it just played too slow, set it to 1, and it just played correct, but 1 frame per 1ms would be too quick, or may simply can't run that many frames that fast so it's pure coincidence... but I'm abusing what the file is even designed for soo doesn't matter too much :p

uncut viper
#

theres probably just more than 1ms of overhead in parsing and running all the event commands

#

but i didnt feel like figuring out how to do the math to calculate how many milliseconds would be just right when we're only playing every 3rd frame

golden spire
#

the one i had it was at 68 which played fine for me with the missing frames

uncut viper
#

it was pretty off for me! dunno why. the movie ended but the song kept going for like a minute more

whole raptor
#

So big hats can break UI mods, I knew they were powerful, but damn SDVpufferchickcry

fathom rapids
#

so that worked, it's no longer complaining. now its just inexplicably not working. patch applied. the numbers as per F1 are the same. am i looking it up wrong

#

oh well zzzzz time

#

thank yall <3

fathom rapids
undone hawk
#

Question! How would I load custom farm type data from Data/AdditionalFarms?

#

var farms = Game1.content.Load<Dictionary<string, ModFarmType>>("Data\\AdditionalFarms");
This doesn't work I think :3

calm nebula
#

Try DataLoader.AdditionalFarms

#

In general if you're loading a vanilla asset, please use DataLoader

undone hawk
#

Gotcha, I wasn't using that before. How would I go about setting up a LocalizedContentManager?

calm nebula
#

Just pass in Game1.content

#

Unless you have a compelling reason not to

undone hawk
#

Ohhhhh gotcha

uncut viper
#

(you probably do not have a compelling reason not to)

undone hawk
#

I've used Game1.content a million times and never realized its type was LocalizedContentManager until now

#

So I saw the method required a LCM, and just went "Wat dat"

#

Hm okay I now have the ModFarmType data but it doesn't have what I need
How would I get the location data of a custom farm? :3

#

(I need the fish stuff, surprise surprise)

uncut viper
#

the data/locations entry key should be Farm_<farm id from additionalfarms>

#

if it exists. which it may not, so dont assume it does

latent mauve
#

well, time to figure out why Spacecore thinks I have a null or empty asset name when I try to run the triggeraction to open the guidebook

gaunt orbit
#

I would use Game1.RequireLocation("Farm").GetData() if all you need is the current farm type's data

#

Button is correct, but I will also note that it falls back to the general Farm entry for location data if no specific entry exists

#

GetData() of course handles all of that logic for you, but only works with the currently selected farm type

undone hawk
ocean sailBOT
#

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

latent mauve
#

What am I doing wrong when trying to run the guidebook trigger action?

uncut viper
#

you dont seem to have a TabIconTexture for your Chapter

latent mauve
#

ah, I missed that the Tab texture was required.

#

Lemme try again, I'll just borrow the one from S&S for the moment to test with.

#

okay, it opens now but my pages are throwing errors, so back to looking at my code again. Thanks for catching the tab icon thing, Button!

steady gale
#

Hey, guys! Brand spanking new to mods -- I'm about to post my first, and wanted a bit of advice! I'm really wanting to make sure I do this right and give absolutely everyone due credit, as is deserved ❤️

I've seen Nexus modders upload header images of a mod they've made that includes custom content made by other people (example: someone posts a screenshot of a mod they've made that reskins an NPC, but their farmer has a custom hairstyle created by someone else). Am I okay to put these screenshots as my mod's header image as long as I link the other modder's content in my mod's description? I'm not really sure what the general ruling is on this since I'm new to the scene

tiny zealot
#

it's definitely common practice to have a list in your mod description along the lines of "mods used in screenshots:" and listing all the stuff that shows up there

latent mauve
# latent mauve okay, it opens now but my pages are throwing errors, so back to looking at my co...

It's angry at something in the BBCode for the page formatting I think. I'll post the i18n in case anyone feels like looking at it while I go start cooking dinner, but it should be almost an exact copy of Mateo's entry from S&S, so I'm very confused.
i18n: https://smapi.io/json/i18n/574d373ba2854fb4a9b77802cb3547fb
"guidebook.chapter.Characters.Malon" is the page content that isn't loading.
Fresh error log: https://smapi.io/log/12367bae42e04ee4809ead0fcde20c63

Update: Apparently the comma in "the children of Pelican Town, Komali and Medli" was the issue? Not sure why but it works now that I've rephrased it to remove the comma.

steady gale
tiny zealot
#

it's fine! i think most mod authors would be happy to have another mod tacitly, or maybe even explicitly, endorsing their work

steady gale
#

That's what I was feeling, too, but was feeling extremely nervous as a first-timer 💀

latent mauve
#

I didn't wanna disrupt the conversation, so I've just edited my message. ❤️

steady gale
#

Oh crap, I'm real sorry, I fully interrupted, myself ._.

latent mauve
#

nah, it happens

#

My issue is frustrating and likely gonna take a lot longer to answer than your quick etiquette question. ❤️

tiny zealot
#

don't worry about it. it's a fast-moving channel and people frequently have multiple convos going in here

latent mauve
#

Yep, it's fine, I just wanted to make sure all my stuff was grouped together some kinda way

proud idol
#

When iterating through Game1.objectData, is there a way to tell what mod, if any, added that item to the game?

brittle pasture
#

your best bet is to hope that they prefix the item id with their mod id(aka the way lookup anything does it)

proud idol
#

if the ItemId doesn't contain a period, is it safe to assume it's a vanilla item? Assuming modded items would use format "{ModUniqueId}.{ItemId}"

brittle pasture
#

not really, modders are free to name items whatever way they want

#

cornucopia for example uses "Cornucopia_Avocado"

steady gale
short scroll
#

@steady gale your message got flagged by the auto mod, I removed the timeout

steady gale
#

LOL thank you so much!

uncut viper
#

there is no 100% way to determine if an item is modded or vanilla unless you break into SMAPI itself

steady gale
#

so sorry also for the direct reply, did not mean to do that

short scroll
#

Yea we have the tiny font blocked cause scammers like to use it

steady gale
#

ohhh, I see I see, the more you know, thanks!

short scroll
brittle pasture
#

well you can always hardcode a list of vanilla items...

uncut viper
#

that aint 100% either, as it breaks when the game updates

brittle pasture
#

then it will only break when 1.7 l- yeah

uncut viper
#

also, a mod could remove a vanilla item and replace it entirely with their own

proud idol
#

hmm so what are all the most common formats that modders use to name their item ids?

brittle pasture
#

I mean that'd just be a retexture right, but we digress

uncut viper
#

UniqueId_ItemName

#

you can change all the other data about the item too, not just the texture

proud idol
#

they use underscores, not periods?

uncut viper
#

the uniqueid typically has a period in it

#

but UniqueId_ItemName is the convention yes

calm nebula
#

Why do you need to know vanilla items?

#

There is a way to do this

#

You just instantiate your own LocalizedContentManager and load the asset

uncut viper
#

xnb mods?

calm nebula
#

Fuck xnb mods SDVpufferhmph

uncut viper
#

well now we're just movin goalposts /lh

brittle pasture
#

at this point I feel like we should ask what they are trying to do

#

is this an informational thing?

uncut viper
#

atra just did

brittle pasture
#

ah yeah i missed that

#

just bed things

proud idol
#

well my mod adds bags to the game that can store items inside them. a lot of users create their own bags for my mod to load but they have to painstakingly specify every item they want the bag to store. so I was just looking into adding a new feature where the users could define a set of filters to retrieve the items instead of explicitly listing each item. One of the filters I wanted to make was something like a "FromMod:{ModId}"

tiny zealot
#

have you tried item queries

brittle pasture
#

also side note - have you considered context tags

tiny zealot
#

context tags my beloved

proud idol
#

yes context tags would be another of many filters I was planning to support

uncut viper
#

(i dont think they were only gonna filter by mod id yall SDVpuffersquee )

proud idol
#

things like filtering by category id, context tags, id contains, name contains etc

brittle pasture
#

item id prefixes can work, not a lot of mod omit it nowadays

drowsy pewter
#

starting with uniqueid is the convention, but not every popular mod does that SDVpuffersweats /sweat

uncut viper
#

but, this is basically one of the main reasons theres a convention for this sorta thing, as just checking for the conventional format will be good enough for a lot of cases

#

not all cases, but a lot of them

#

SOME mods by SOME mod authors who may or may not be here will be UNBAGGABLE /lh

brittle pasture
#

you can specify a list of mods, or have the user manually specify a prefix themselves

calm nebula
#

Yeah, my dear nearly a square number

brittle pasture
#

assuming this is a UI thing

acoustic summit
#

I mean, if you were planning to sort which items belonged to which mods by what was in their itemID, I feel as though just checking if the itemID contains X would do the same thing, no? (As in you don't need to make that filter)

drowsy pewter
#

atra! we're adding kale in the next update

tiny zealot
calm nebula
drowsy pewter
calm nebula
#

6480! I'm planting Thai basil this year

uncut viper
#

if you really wanna take it a step further, you can give the user the ability to designate an item as being from a certain mod, and store that in some data in their save folder or mod folder

#

and load it next time

latent mauve
#

Well, I figured out my issue, in case anyone's curious. Apparently commas inside the i18n Page Contents breaks it.

#

I rephrased to avoid the comma and suddenly it works.

brittle pasture
latent mauve
#

(it was broken outside of i18n too, so I think SpaceCore just isn't escaping the comma somehow in the Guidebook page Contents)

drowsy pewter
#

people dont want to type their mod id everywhere and want to pick something more interesting for their npc's internal name

#

like the last name, etc

tiny zealot
#

i think it's partly inertia and partly people don't want to type out a long-ass NPC name in event scripts (use a dynamic token)

calm nebula
#

Yeah, items are items

#

But people develop strong feelings for their npcs

brittle pasture
#

the Baldur's Village devs are lucky Larian gave their NPCs wack names like Wyll with a y

tiny zealot
#

modders have more or less collectively decided that The Convention Does Not Matter for their NPCs. i will continue to politely disagree

uncut viper
#

i have strong feelings for my OC but i never considered her raw internal data to be part of that. babygirl i will make you SO compatible, i would type out a thousand tokens for you

calm nebula
#

I have strong feelings about my OC too

uncut viper
#

to be faaair....

tiny zealot
#

(it's even easy to convert the name after the fact! there's a field in the NPC data that will do all the work for you! it's fine! grumble grumble)

uncut viper
#

the NPC tutorial that we always link does not use the mod id

calm nebula
#

That's why my OC will feature only on some backwater part of AO3

calm nebula
tiny zealot
#

that too. lots of long-in-the-works NPCs don't use it and those are the best examples everyone uses all the time, so it persists

proud idol
#

Is there a way to tell if an item is donateable to the museum without instantiating it? I dont see anything in ObjectData/ItemMetadata/ParsedItemData

tiny zealot
#

there's a context tag for it if memory serves

proud idol
#

hmm ill have to find a wiki page on the common context tags

tiny zealot
#

i think anything of one of the correct types is donatable unless it has the not donatable tag, but i forget what the tag is offhand

uncut viper
#

theres a context tag for it being not donatable

latent mauve
#

I am victorious:

proud idol
#

ObjectData.ContextTags documentation says "The custom context tags to add for this item (in addition to the tags added automatically based on the other object data)." Any ideas as to what other tags its referring to that are added 'automatically based on other object data'?

uncut viper
#

not_museum_donatable

brittle pasture
proud idol
#

hopefully that tag is on the ObjectData object

uncut viper
#

theres a static method in LibraryMuseum

#

LibraryMuseum.IsItemSuitableForDonation(string itemId, bool checkDonatedItems = true)

proud idol
#

oh nice, thanks

uncut viper
#

you'll want to set checkDonatedItems to false

#

probably

brittle pasture
#

or look at the source code for PopulateContextTags

uncut viper
#

actually thats just up to your choice ig. if its false it will check if emerald is donatable normally, even if you already did donate it

#

otherwise it will return false if its already been donated

proud idol
#

yea I would make 2 separate filters for that. Some users might want to make a bag that can only store items that they still havent donated

uncut viper
#

(apparently, there is also a museum_donatable tag...?)

#

i guess you can just make anything donatable then as long as its an object

brittle ledge
#

I think I mention it in the tutorial, but it's not in my examples because that's all Jorts and Jean or Wren, both of which are 1.5 era

#

(I know Wren just released but she started three years ago 🙈 )

#

If there was a way to tag my NPCs as being from my mod without changing the internal name, I'm all for it

#

mmm I do mention it but I recommend just pre/suffixing, I can edit that

tardy tinsel
#

Hi...Sorry for interrupting the conversation. I am working on a new NPC mod,if I wish to make them to be a roommates instead of spouses (just like krobus). Then what should i do SDVpufferwaaah,I have no coding experiences

gaunt orbit
#

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

tiny zealot
#

i think with the correct item and "CanBeRomanced": false you get krobus-like roommate behavior

brittle ledge
ornate locust
#

I thought Lavril was broken

tardy tinsel
#

I see! Thanks a lot!SDVemoteheart

ornate locust
#

in that one function anyway

brittle ledge
#

(I think Juna is updated for 1.6, Lavril may not be. Moon from Sunberry is also an example but uh I don't reommend using an expansion as an example because they're huge 🙈 )

whole raptor
#

Lavril was updated iirc SDVpufferthink

brittle ledge
#

I know Ark had issues in early 1.6 not because of the update but because all the ES maps changed, I don't know if that's still an issue

ornate locust
#

It was updated, but I have heard multiple times that the roommate part doesn't work

brittle ledge
#

Huh. Mentioned that to Ark?

ornate locust
#

It's been reported several times on the page

#

Didn't want to be the however manyth person to mention it

whole raptor
#

So I won't be able to let Void take a swim in the cauldron every morning SDVpufferwaaah

lucid mulch
#

Was a thing ideally used when migrating to 1.6 to begin with, trying to do it late after the fact is more difficult

vernal crest
brittle ledge
#

It's why we can't even prefix RSV

vernal crest
#

Ooh I didn't think of that, I must warn Void.

undone hawk
#

@formal crown Kedi! I've identified that VPP is incompatible with my mod, due to behavior changes with legendary fish. Do you mind if I take a look at your Git repository and see what's what?

brittle pasture
undone hawk
#

I have it open already! I just wanted to ask and be courteous

#

I dunno the ethics of this stuff

rigid oriole
#

if it's public, you can look at it

#

whether or not you can distribute the code from the repo falls under its license, but you can absolutely look at the repo if it's public

undone hawk
#

Makes sense, I just wanted to err on the side of caution

vernal crest
#

Some people also prefer to be asked before being sent a PR, I think (Pathos does iirc?) but I don't know if there's any way to even tell if someone has just looked at your repo

uncut viper
#

also no one can (or should) stop you from looking at files on your computer too so even if it wasnt public, ILSpy helps

undone hawk
#

Very fair! I also felt it worth getting three birds with one stone and letting them also know about the incompatibility (and maybe they magically know exactly whats wrong a girl can dream)

uncut viper
#

Pathos likes being asked about PRs ahead of time just cuz it might save you time if he says he doesnt want the feature or has a specific way he'd want it implemented

#

instead of you working on it, submitting the PR, and then being told to scrap/revamp it after

undone hawk
#

@ Pathos I wanna PR every mod you've made and add a random silly log message in all of them, you down? /j

vernal crest
uncut viper
#

i agree! dont get it confused with him explicitly not wanting undiscussed PRs tho. PRs always welcome still, afaik

steady gale
#

a HUGE thank you to everyone who helped out a lil newbie like me to create my very first mod!!! she's up on Nexus now, and I am still freaking out a little LOL

undone hawk
#

Hooray!

#

Good luck! I hope you don't have too many bug reports (those stress me out so bad omfg)

brittle pasture
#

I think all my PRs to Pathos was unsolicited SDVpufferclueless

odd ginkgo
#

how do you tell the game what animation to use at Ginger Island?

calm nebula
calm nebula
odd ginkgo
#

sorry, for a custom NPC

calm nebula
#

...that I swear I documented somewhere but apparently not

brittle ledge
#

it's not in GIMA's stuff?

calm nebula
#

I thought it was!

#

It's after atra bedtime though so

brittle ledge
#

I think you told me ages ago but uh good luck searching that

tiny zealot
#

please hold

brittle ledge
#

_chair is all I remember because I use that for Wren

vernal crest
#

Found these ones on the modding wiki:

"<npc internal name lowercased>_beach_towel": "#/#/#",
"<npc internal name lowercased>_beach_dance": "#/#/#",
"<npc internal name lowercased>_beach_drink": "#/#/#",
"<npc internal name lowercased>_beach_umbrella": "#/#/#",
calm nebula
#

Yes!

tiny zealot
#

found this

odd ginkgo
#

that's hardcoded in

#

okay, got ti!

tiny zealot
#

there are more that will play a matching animation if applicable (e.g. _Bar). but those three cannot be selected as resort activities unless the animation is defined

odd ginkgo
vernal crest
#

And yes <npc internal name>_beach_chair is also one.

vernal crest
# tiny zealot

This is about the dialogue keys though isn't it? Those three keys require the matching animation to be defined. I would assume you can define the animation without a dialogue key though.

undone hawk
tiny zealot
# vernal crest This is about the dialogue keys though isn't it? Those three keys require the ma...

you can define whatever animations you want, but the GI code for NPCs tries to select activities at random and checks for matching dialogue/animation keys as part of the validity check
so if it tries to pick "towel" for your NPC's activity, it will check for there to be a _beach_towel animation. if it's missing, it will cancel and pick something else, since towel requires the animation key. if there's a matching animation, it will try to load the _Towel dialogue key, but if that is missing the default is just to load the Resort dialogue

#

but e.g. "bar" does not require the animation, so if it's missing it just won't play one. and i think e.g. "wander" doesn't even check for an animation, since it does the "wander in a square" behavior instead

ornate locust
brittle pasture
#

(I know it's the cause because according to the log the mod is throwing when processing legendary fishies, and that entry happens to affect legendaries)

hard fern
#

SDVpuffersweats why is vscode making my cursor "disappear"

#

all because i wanted to use light mode...

ornate locust
#

Is there a flag or something I can check to see if you've had a baby? trying to do a mail trigger CT thing so a NPC will congratulate you on kids.

vernal crest
brittle ledge
brittle ledge
#

For the actual event, I believe More Conversation Topics adds one!

vernal crest
#

I wonder what mod I have that makes NPCs comment on my baby, since I don't appear to have More CTs

brittle ledge
#

SDVpufferthinkblob is there a new 1.6 vanilla CT?

vernal crest
#

I would've expected ichor to put that on the wiki when he did his CT update if that was the case

ornate locust
#

There's a bunch of new CTs in 1.6 and the mail flag thing means I can basically replicate anything I wanted from More Conversation Topics

#

Like I should be able to do a trigger action with a GSQ to make the CT, right?

#

but if there's another thing already in there, that'd be smoother

#

this started with Sterling bypassing the boulder making my CT that's supposed to reference the railway being opened up mess up and now I'm in a trigger action rabbithole

vernal crest
#

Ooh I just realised that playing with Lasting CTs locked me out of an event because in vanilla it's supposed to expire in 4 days but it never did

ornate locust
#

oops

#

You don't happen to know offhand what NPCs comment on your baby, do you? because I could look at that to see how it does

vernal crest
#

I'm fairly confident it was from a mod, especially since I'm looking through the decompile now and can't see any CTs that ichor hasn't included on the wiki.

brittle pasture
#

that wouldn't work with LOCATION_FISH, but you want special casing for that anyway

brittle ledge
vernal crest
#

If I could remember any of the lines I'd search my mod files to be totally sure but I can't. I could make a test save and cheat my way to babyhood but that will take a bit because it's my play mod setup so it's going to have some long loading times.

vernal crest
ornate locust
#

Ah don't worry about it. A trigger action should be able to do it since there's a GSQ I can look at

#

like I'll just look for An Kid and if it just fires once, that's basically right

vernal crest
#

You'll get some players having weirdness if they install your mod after having kids because they'll get your NPC commenting on the birth of their kids long after the child is born, but that probably won't be many players.

ornate locust
#

Yeah I'm filing that under "good enough"

#

It'll already be weird if, for example, it's installed after Morris is gone

vernal crest
#

Yup you can just give the usual caveat that installing the mod on an existing save might cause some weirdness

undone hawk
uncut viper
# vernal crest You'll get some players having weirdness if they install your mod after having k...
  1. have a different trigger action run first on daystart, IncrementStat ChildCount {{Count: {{ChildNames}}
  2. the second trigger action runs next also on daystart. it only fires though if !PLAYER_STAT ChildCount {{Count: {{ChildNames}} {{Count: {{ChildNames}}
  3. that means on the first day, if you started with 0, you do meet the minimum of 0 and maximum of 0, so no trigger action. if you have 1 child, then childcount will have been set to 1, so you do have between 1 and 1 children, so no trigger action. same with 2, 3, etc.
  4. if you started at 0 but went to 1 from having another kid, then the GSQ is now !PLAYER_STAT ChildCount 1 1, but your ChildCount stat was set to 0 initially (and only happens once the first time a save is loaded), so childcount is not between 1 and 1, thus the trigger action (and thus CT) fires. same for if you started at 1 but go to 2, and so on.
#

if you'd like you can also increment ChildCount at the same time you fire the CT in the second trigger action, that way its stored for next time and the CT becomes repeatable

#

(assuming you make the trigger action itself repeatable)

vernal crest
ornate locust
#

Aha

median forum
#

is it possible to show the farmer drinking different things (beer, coffee, tea) in a heart event?

#

i haven't looked at the farmer animations before

sour sleet
#

Is it possible to add custom monsters?

median forum
vernal crest
#

Vanilla uses farmerEat

ornate locust
#

Not sure you can see what you're drinking in those. You can change what is drunk in an event, but I think it's just effects applied

median forum
#

oh yeah for sure

uncut viper
#

you can specify an item id for farmerEat

#

as long as its unqualified

median forum
#

unqualified?

uncut viper
#

dont put (O)

median forum
#

ohhh okay

#

cool, thank you

#

i wanted the player to be able to order whatever drink in this event and have the npc comment on it

#

just silly flavor text stuff

vernal crest
#

Despite being called farmerEat, the animation for that command is in fact drinking from a cup lol

median forum
#

lmao oh

uncut viper
#

its determined by the objectdata IsDrink field

median forum
#

ah that still works

#

idk why i thought it looked different in the different heart events i remember; my imagination must've filled it in

#

thank you again!

ornate locust
#

eating my soda

uncut viper
#

dink my oiter

ornate locust
#

horrible can crunching sounds

median forum
#

it's called recycling, look it up

vernal crest
median forum
#

i'm glad that'll be there when i actually go to code this

vernal crest
median forum
#

NO but i asked lily and they fixed it

vernal crest
#

Did she say what was wrong?

median forum
#

yeah it was uh lms

#

I think what the problem was with your other event was that you were putting the switch events inside of the origional event instead of making a new entry

that and your quickquestions for those were the first command which causes issues for whatever reason

#

me being inexperienced as hell, more or less. i know it's better to start with a small change for your first mod and i absolutely didn't do that

vernal crest
#

Haha that's fair enough

median forum
#

i probably should've just added a custom item or something instead of breaking up a marriage, adding a spouse, writing like eight heart events, etc etc etc

vernal crest
#

Thanks for satisfying my curiosity. It's definitely looking like Thylak's advice is going to need some more editing if you can in fact have both end commands and nested quickQuestions in a quickQuestion.

median forum
#

i can send you my fixed code that lily sent me if you want to see what she did

vernal crest
#

Yeah that would be great, thank you ^_^

median forum
#

sure!

median forum
#

i'm at work on my phone so there's what she sent me

vernal crest
#

Oh you did end up with some switchEvents after all. I thought Lily was getting rid of all of them?

median forum
#

we got rid of all of them but out ended up a little busted, i think because of how i have the quickquestions dispersed

vernal crest
#

(By the way, your message about Pierre's magazine cutouts should also be in i18n.)

median forum
#

i had it working with nested quickQuestions

#

oh god

#

yeah thanks

#

that's embarrassing

vernal crest
#

Nah it's so easy to overlook things like that

median forum
#

since you read it, is it clear that i mean uhhhhh explicit adult imagery

#

i was trying to imply it without saying it

vernal crest
#

Yes, but the server rules don't allow us to discuss it so let's leave it there lol

median forum
#

oh yeah no that's totally fine

#

i didn't want to broach it further

#

i don't either in my mod, it's not that kind of a mod lmao

vernal crest
#

(I didn't think you were planning to but I just wanted to make sure that anyone coming across this conversation also knew that we weren't going any further with it)

urban patrol
#

oh wise advancedMove knowers, bestow upon me your knowledge: why does edwin glide during his advanced move and the farmer run in place upon reaching their destination no matter if i make them walk 3 or 4 tiles?

so sorry for the wall of text to follow but my entire event json is so long i don't want to make you hunt for it

#

"{{ModId}}_edwinhearts10/f EdwinPayne 2500": "sweet/8 10/farmer 6 17 0 EdwinPayne 7 8 2/skippable/globalFadeToClear/pause 1000/speak EdwinPayne \"Hello, @. You got my message, I presume?\"/pause 300/move farmer 0 -9 0/faceDirection farmer 1/faceDirection EdwinPayne 3/speak EdwinPayne \"Since we've grown closer, I've been...#$b#...Well, I've been realizing some things.#$b#Your friendship means a great deal to me.\"/pause 500/speak EdwinPayne \"I never anticipated growing so attached to anyone when Charles and I came to Pelican Town, but you have embedded yourself quite firmly in my heart.\"/emote farmer 20/advancedMove EdwinPayne false 0 1 4 0/pause 500/animate EdwinPayne false true 120 27/advancedMove farmer false 0 1 3 0/emote EdwinPayne 40/speak EdwinPayne \"Where is that spellbook...#$b#Ah, here it is. Charles must have done some reorganizing when fiddling with his bag of tricks.\"/stopAnimation EdwinPayne/faceDirection EdwinPayne 3/speak EdwinPayne \"@, I... I find I cannot bear the thought of you getting hurt, and being unable to stop it.#$b#I know your adventures can be dangerous, and it would put my mind at ease to know that I have made you at least a bit safer.\"/emote farmer 8/speak EdwinPayne \"Would you allow me to cast a spell of protection on you?#$b#It should lessen any damage you take.#$b#I've also modified it with my own flair to improve your luck.\"/emote farmer 20/speak EdwinPayne \"Excellent. This shall only take a tick.\"/faceDirection EdwinPayne 2/pause 1000/warp EdwinPayne 0 0 true/temporaryAnimatedSprite Characters\\EdwinPayne 0 288 32 32 360 2 20 11 8 false false 9 0.0 1 0 0 0/pause 500/playSound yoba/pause 2000/removeTemporarySprites/warp EdwinPayne 11 9/action AddBuff edwin_defense -2/faceDirection EdwinPayne 3/speak EdwinPayne \"That should do it.$h#$b#Thank you, @.\"/emote EdwinPayne 20/emote farmer 20/end",

ornate locust
#

I don't know, but I got around it by putting in a command to stop movement

urban patrol
#

hmm i'll try it

#

/halt ?

ornate locust
#

finding it...

vernal crest
#

You can try stopAdvancedMoves, halt, or simply adding a pause as the final number pair in the end of the advancedMove command.

#

I don't think there's an easy answer for why it happens, all I've managed is to sometimes find ways to stop it (but not always).

ornate locust
#

ah yeah, that

#

very much confused me when I was running against a wall eternally in my event

urban patrol
#

i find it very ironic that i can write moves much easier than advancedmoves lol

#

when advanced is supposed to give you a lot more control

ornate locust
#

It's like a car. More control means more difficult

vernal crest
#

It does but it has its own quirks. Sometimes waitForAllStationary is helpful too.

urban patrol
#

oh also speaking of, i don't know if this is 100% certain, but i'm pretty sure that move can't be used with 1. every time i try to make anyone only move 1 tile, they overshoot it and end up in furniture. i've tried it in multiple events

vernal crest
#

I had to use that at one point because if I had Hiria and Louisa run toward each other while the bear was still moving, Louisa would jump and then slide sideways instead

urban patrol
#

sometimes i swear they have a mind of their own lol

vernal crest
#

Try the pause

ornate locust
#

/advancedMove farmer false -2 0 0 -1 4 5000/ here's my advanced move that worked

urban patrol
#

oops, i tried halt next sorry lol

vernal crest
#

Not the pause command, mind.

urban patrol
#

but halt seems to have worked, with the caveat that edwin is still gliding during his move

#

advancedMove EdwinPayne false 0 1 4 0/pause 500/animate EdwinPayne false true 120 27/advancedMove farmer false 0 1 3 0/pause 2000/halt/emote EdwinPayne 40/ that's what i've got rn

vernal crest
#

Is he meant to animate during his move?

urban patrol
#

no, upon reaching his destination

vernal crest
#

Oh sorry that's the farmer moving

urban patrol
#

he was actually working before i changed it lol

#

i can record a snippet if it'll make visualizing it easier

vernal crest
#

Changed what?

urban patrol
#

uhhh i don't know exactly which command 😬 but i know that 30 minutes ago he was working

#

let me see if i can roll back changes just to see

vernal crest
#

I just tested the farmer and Penny moving one tile each with the move command and it worked properly, by the way

urban patrol
#

so it just hates me then 😂 i'm glad to know it's not broken though

vernal crest
#

This is the entire event script I tested:

"Question1": "
    continue/
    36 13/
    farmer 36 14 2 Penny 39 14 2/
    skippable/
    pause 1000/
    move farmer 0 1 2/
    pause 1000/
    move Penny 1 0 1/
    pause 5000/
    end",
#

Usually what I do when a command isn't working properly is I take out every other command in the event and check if it works, then add commands back in until it stops working again.

urban patrol
# vernal crest Changed what?

okay i rolled back changes and this is the entirety of what i had earlier

"{{ModId}}_edwinhearts10/f EdwinPayne 2500": "sweet/8 10/farmer 6 17 0 EdwinPayne 7 8 2/skippable/globalFadeToClear/pause 1000/speak EdwinPayne \"Hello, @. You got my message, I presume?\"/pause 300/move farmer 0 -9 0/faceDirection farmer 1/faceDirection EdwinPayne 3/speak EdwinPayne \"Since we've grown closer, I've been...#$b#...Well, I've been realizing some things.#$b#Your friendship means a great deal to me.\"/pause 500/speak EdwinPayne \"I never anticipated growing so attached to anyone when Charles and I came to Pelican Town, but you have embedded yourself quite firmly in my heart.\"/emote farmer 20/advancedMove EdwinPayne false 0 1 4 0/pause 200/animate EdwinPayne false true 120 27/advancedMove farmer false 0 1 4 0/emote EdwinPayne 40/speak EdwinPayne \"Where is that spellbook...#$b#Ah, here it is. Charles must have done some reorganizing when fiddling with his bag of tricks.\"/stopAnimation EdwinPayne/faceDirection EdwinPayne 3/speak EdwinPayne \"@, I... I find I cannot bear the thought of you getting hurt, and being unable to stop it.#$b#I know your adventures can be dangerous, and it would put my mind at ease to know that I have made you at least a bit safer.\"/emote farmer 8/speak EdwinPayne \"Would you allow me to cast a spell of protection on you?#$b#It should lessen any damage you take.#$b#I've also modified it with my own flair to improve your luck.\"/emote farmer 20/speak EdwinPayne \"Excellent. This shall only take a tick.\"/faceDirection EdwinPayne 2/pause 1000/warp EdwinPayne 0 0 true/temporaryAnimatedSprite Characters\\EdwinPayne 0 288 32 32 360 2 20 11 8 false false 9 0.0 1 0 0 0/pause 500/playSound yoba/pause 2000/removeTemporarySprites/warp EdwinPayne 11 9/action AddBuff edwin_defense -2/faceDirection EdwinPayne 3/speak EdwinPayne \"That should do it.$h#$b#Thank you, @.\"/emote EdwinPayne 20/emote farmer 20/end"

urban patrol
proven spindle
#

I have figured out the closedmessage issue with my shops. At long last I can rest SDVpufferparty

proven spindle
#

Needed owner tiles in the action openshop + anyornone for owner in the open entry and none for owner in the closed entry

#

I edited my previous messages on it to include that in case anyone else goes looking for the knowledge

urban patrol
#

nice!

vernal crest
#

Oh of course I didn't notice you didn't have an owner in the tile action

proven spindle
#

tbf every other example I looked at seemed to indicate I didn't need it

#

But most shops either have an actual owner or stay open all day so ig I just had a weird case lol

#

Might edit the wiki later to clarify that

vernal crest
#

The ones that have owners should have had the owner tile area because that's required for a shop to have an owner

proven spindle
#

It's actually not! I was able to get my shops working without any owner entries, it was only when I started trying to add a closed message that I ran into issues

vernal crest
#

No no I don't mean shops require owners

#

I mean that in order to have an owner, a shop must have an owner tile area.

proven spindle
#

Ah gotcha

#

I was mostly working with examples of ownerless shops since mine didn't up till that point SDVpufferflat

urban patrol
vernal crest
#

And I think that can be gleaned from the wiki as-is, but it's not necessarily explicit.

ornate locust
#

I'm glad they don't need an owner, because my shopkeeper is furniture

vernal crest
urban patrol
urban patrol
ornate locust
#

She blinks, but the nice lady is very glued to the map LOL

urban patrol
#

god bless map tile shop owners tbh

#

i am NOT creating a disposition/dialogue/schedule/etc for every shop i want to add

vernal crest
ornate locust
#

I have still faked some life into her by putting her as a Central Station tourist and stuck in a cameo in the party in Downtown Zuzu, but those are also furniture, it is just less obvious

urban patrol
#

in the interest of perfection but not being too bothered about it, is there a way to offset a TAS? my guy's animation is double wide so he jumps 8 pixels when replaced with the TAS and when removing the TAS

ornate locust
#

makin my standee blink

vernal crest
jaunty jetty
#

You can try using when have child to trigger a hidden event to trigger ct dialogue, immersive family is supposed to be as simple as that, a blackout 0.1 second event trigger one dialogues for each villager for each kid, but eventually scope creeping...😅

#

Custom token mod can be used if you want to trigger at certain age

vernal crest
#

You don't need a dummy event to add CTs (I think that's a 1.6 change) because you can use trigger actions, mail commands, and dialogue commands as well.

jaunty jetty
#

Pengu badly outdated, sound awesome now😅

urban patrol
vernal crest
#

Events are mysterious creatures

urban patrol
#

for real

#

thank you for the suggestion though!

#

good night everyone

vernal crest
#

Night!

pine elbow
#

Anyone else have issue where dynamic reflections night sky reflections sometimes just don’t work

Like one day, all areas will reflect night sky and another day, some areas won’t and will only show blue water

#

and you have to manually go to mods and re enable sky reflections for it to turn on for that area

vernal crest
#

!mh It sounds like you might be talking about this in the context of playing the game rather than making mods. If that's correct, you'll want to head to the modded tech support forum because this channel is for support/discussion about mod-making :)

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

pine elbow
#

Oh my bad, i thought this was a general type chat

#

On the topic of mod making, is the guy who made dynamic reflections still updating? I see there’s a lot of bug posts on the nexus mods page

#

Or is there any mod maker willing to take a commission to fix dynamic reflections bugs with the original authors permission

vernal crest
#

Peaceful is on hiatus and I don't know if they are contactable. The permissions for the mod on Nexus are closed, even though it has a GPL licence on GitHub, so I'm not sure if anyone would be allowed to release an update without contacting them.

rigid musk
#

Oh btw Aba I found some info out about quickquestion and using switch event! (I was able to fix skipdozer's event thing after some testing earlier) i know you were involved in the og issue and were curious about the nested quickquestions and how that worked so I was wondering if you wanted to know what I found/how I did it wiggle

pine elbow
#

oooh oof that’s unfortunate

#

Hopefully he comes back or releases perms to modify

vernal crest
#

I asked skipdozer and he said you fixed it and showed me his fixed json. But my understanding was that you were going to avoid switchEvent entirely, yet you ended up with two of them?

pine elbow
#

It really is one of the best visual mods out there

lucid iron
#

Since it's GPL you can do a github release as long as you obey the license there

#

That said it's both complicated and not broken enough for anyone to be motivated to fix

pine elbow
#

Yeah the two biggest bugs I found with it were the horse snapping and night sky reflection not working consistently

#

Then there’s the smaller bugs with SVE high land map or maybe some puddle issues

#

If anyone here is capable, I’d be down to pay a commission for a mini update while the author is on hiatus (if that’s allowed within the license)

rigid musk
# vernal crest I asked skipdozer and he said you fixed it and showed me his fixed json. But my ...

So essentially what I figured out is that you can have as many quickquestions as you want as long as there's only one continuous path at the beginning or end. Essentially what that means is you can only have one "continue" with as many end branches as you want as either the first OR last option. (Putting it in the middle breaks it)

The switch events was to help fix that issue because I hadn't realized that would happen since, when I did my tests and how I do my events has always been that way. The largest test event i did with the QQs went something like:

End/Continue

End/End/End/End/Continue

Continue/End

End/End

So in this example you have eight endings but there's only one continuous path (if I'm remembering correctly those continues can be the first or last option in the "answer" order, I'd have to double check)

But because what skipdozer wanted was:

Continue/Continue

Continue/Continue
End/End

Continue/Continue/Continue
End/End/End

(So five endings but nested within the two continuing options) it broke it, I believe it's because of how the script is read, the game doesn't know to return to the original options

The SwitchEvents weren't working initially because skipdozer had them nested inside of the original event instead of as separate entries, as well as having started the next sequence with the QQs instead of using a command first (which events hate) and also the way the event was coded was a it wrong with how the switch events were done.
What i ended up doing was using the fact that you can have the nested QQs as well as the switch events to make it so that there weren't any 'multiple continues' that caused it to break. So minimal number of switch events, same amount of QQs

#

This is a visual of how you can do QQs by the way with all the endings

#

Theoretically you can also have some lead back to a main script but I haven't tried that

vernal crest
#

If I'm understanding you right, then that was the issue I pointed out before I went to bed last night. Specifically the thing about wanting to have two continues, I think (I'm conceptualising that as having a QQ nested inside both branches of the first QQ but I think it's the same thing with different language).

rigid musk
#

When I did my initial test I also ended up adding the other quick question at the end of my code, so it didn't break as it would have continued the pattern

Also I honestly was pretty sure you could but again I ended up testing it in the way that wouldn't have shown me the issue (I also thought you just meant having multiple quick questions in general)

#

(I was also very tired last night at the point I was hovering around to help so i might have just not understood what you were saying)

#

Which was also kind of why i sent the event i did with Qi

vernal crest
#

Initially I did mean multiple QQs in one event (counting the events switched to with switchEvent as separate events) because I hadn't parsed your event code properly.

But once you pointed yours out to me I went back and looked at it properly and realised that your event goes "enter QQ, branch to an end, branch to a non-end, exit QQ through the second branch" and then enters the second QQ. Then I clicked as to why your event worked but skipdozer's wouldn't: because he wasn't able to exit the first QQ before entering the second one. Which would make the game read the code from the second QQ as belonging to the first one and therefore be unable to execute it properly.

rigid musk
#

But now I know how to use switch event so that feels pretty cool honestly samsungcool it was confusing to me before...now I can have an infinitely long event. Event forever, event never end (I'm not doing this)

daring ruin
#

I might be late to the party, I am trying to create a Stardew Valley server project. But running on ARM is a pain regarding SMAPI, has there been a case of it working? Specifically Linux ARM64

vernal crest
#

All of this from you has helped me to not only understand the basics of QQ but jumped me straight into understanding the ways in which nesting QQs can and can't work which is really helpful for me. Thank you for being willing to bring it back to me to explain it SDVpufferheart

vernal crest
ocean sailBOT
lucid iron
#

Does sdv itself run on arm

daring ruin
#

Very good question, I thought so due to Android and Mac M1+ chips

rigid musk
#

It was a very fun side project to do

lucid iron
#

Mac has that rosetta thing

daring ruin
#

I will try that first to see if its even SMAPI, for whats its worth:

root@561bb0313701:/data/nexus/SMAPI 4.2.1 installer# bash install\ on\ Linux.sh
install on Linux.sh: line 19: ./internal/linux/SMAPI.Installer: cannot execute binary file: Exec format error
lucid iron
#

And phone is a different build of game

vernal crest
daring ruin
lucid iron
#

So yeah i would try to see if you can run game at all first, if that works then look into building smapi from source perhaps

daring ruin
lucid iron
#

Ah well there ya go

rigid musk
daring ruin
#

So I would need to ask the devs directly.

lucid iron
#

Idk if proper arm support is possible, limit could be monogame

#

Sdv always on server has a number of other issues even if you get it to run

daring ruin
#

So far I managed to make a server instance with modern packages instead of Debian 10 or something.

#

For my job I am a Linux/DevOps engineer, so this is a fun project for a game I love

lucid iron
#

Sometimes mods only supports doing things on the host

#

Or rely on host being there for event

#

It's less "the always on server is implemented badly" and more "people don't make mods with that in mind"

daring ruin
daring ruin
#

And to be fair, its not easy work.

lucid iron
#

I have a mod where i needed savedata so only the host gets to make changes in current implementation kyuuchan_run

#

Net mutex succ

median forum
spring marlin
#

how do i make a new type of rock that spawns in a new area(im trying to make a mines area similar to Sunberry Village's mine area)

rigid musk
#

You can use item extensions to make nodes

#

You can also spawn them via farm type manager, but maybe you can use content patcher for that? I didn't I used FTM

rigid musk
proper bobcat
#

Just have a question dialogue loop that doesn't stop until you choose the right option

rigid musk
#

The loops brother.../silly

#

Let me get The Link

#

Loop

#

Oh

#

You meant make the event never ending by doing that wheeze

#

I thought you were asking HOW to do it kekw

proper bobcat
#

Nah no worries, this is a cool tutorial anyways XD

#

(And tbf I was wondering if that was possible myself)

stark spindle
#

Hey Im not sure what im doing wrong here. I'm trying to change the starting location for lewis. Am I way off ?

        {
            "Action": "EditData",
            "Target": "Data/Characters",
            "TargetField": [ "Lewis", "Home" ],
            "Entries": {
                "Default": {
                    "Id": "Default",
                    "Location": "AnimalShop",
                    "Tile": {
                        "X": 16,
                        "Y": 5
                    }
                }
            }
        }
lucid mulch
#

at a glance looks fine

latent mauve
#

If you have made the change and it's not showing it in effect, make sure you have either slept or loaded up a brand new save

stark spindle
#

ooooo shit youre right. I did an new save and it works now. thanks

hallow prism
#

sometimes you need to sleep twice

#

because there's one sleep that will refresh the spawning point and one that will refresh coordinates

calm nebula
daring ruin
#

But Raspberry Pi's don't have that I think

calm nebula
#

So basically no tbh

#

I would say Rosetta is an x86 emulator

#

(Which is accurate to the first degree)

#

Raspi does not have that no

#

I think I looked into it once but some of the binaries do assume x86, forgot which

proud wyvern
#

the whole game still thinks it's on x86 when played on Apple Silicon

daring ruin
#

Weird. Hopefully it comes to arm!

#

Which I know it can, with Android for example