#making-mods-general

1 messages Β· Page 576 of 1

fleet oxide
#

one more try temporaryAnimatedSprite TileSheets\\animations 1920 256 64 200 100 4 30 15 15 false false 1 0 1 1 0 0\\emote {{ModID}}.Boris 16\\beginSimultaneousCommand

#

tysm!

royal stump
#

(also backslashes will cancel out markdown, like \ ` in my examples up there)

calm nebula
#

You'll need to switchevent

#

To get back to using / as the event deliminator

#

Basically

royal stump
#

I was wondering if escape quotes like temporaryAnimatedSprite \"TileSheets\\animations\" 1920 would help, but ig it depends on whatever parsers are involved

#

not something I've ever tried

fleet oxide
#

Thanks! I'll try both methods and get back to you

severe cairn
#

oh! for quick questions, if you put an additional (break) after, it'll run that after the options and you can use / as deliminator again

#

as long as you havent switchEvent or end in your choice

#

so (break)choice1\\end(break)choice2\\switchEvent eventchoice3(break)insert code here/regular delimiters work again

Only choice 3 will run the code after, cus it hasnt switched or ended, and since theres no more choices you break out of the quick question and can use regular / as deliminator, so no need to switchEvent unless you actually want to switch events ofc

fleet oxide
#

Got it working! I ended up using your option Nassi. using switchevent did work too. and esca your option didn't work SDVpuffersquee

severe cairn
#

sdv events are more painful than you would ever expect 😭 we all gotta stay strong

buoyant moon
#

1.6.16 is gonna streamline so much in event scripts with labels and choose, can't come soon enough

fleet oxide
#

Can anyone help me troubleshoot my temporaryAnimatedSprite a little further? It's reading the command correctly now, but nothing is showing up. I have a feeling that I don't understand some of the later values correctly. temporaryAnimatedSprite TileSheets\\animations 0 1920 64 64 200 4 10 15 15 false false 1 0.1 0 0 0 0

#

It's supposed to be the four fire frames from the animations sheet on a loop

royal stump
#

the 1 in false false 1 might be causing it to layer behind things, since it's on tile 15?

sort tile Y The tile Y position to use in the layer depth calculation, which affects which sprite is drawn on top if two sprites overlap. The larger the number, the higher layer the sprite is on.

#

reducing 0.1 to something lower like 0.01 might also be necessary, since it seems like that's per millisecond

fleet oxide
#

Do you know how many layers there are, or is that dependent on the individual map?

lucid iron
#

You have 4 normal layers Back Buildings Front AlwaysFront

#

And then u can have numbered display layers

royal stump
#

I think in this case it's not about map layers, just relative to anything else being drawn in the same frame and batch
it's not always relevant since the game closes and reopens the batch a lot, just something worth testing

lucid iron
#

Front1 or whatever

royal stump
#

oh, and the 0 in 1 0.1 0 seems to be scale, which should probably not be zero

#

1 is probably the default

fleet oxide
#

Ah got it

#

I'm getting there! Think I just have to change the scale a bit because that was a really big fire, lol

marsh reef
#

does anyone know how the "HasValue" check works when you want it to be true to a multitude of possible values? bc just commas doesnt seem to work

royal stump
marsh reef
#

oooohhhh, that's how i check the, okay, i was tryna figure that out earlier, thank you again 🫑

devout otter
#

I think Spicy Krobus would love it.

royal stump
fierce vault
#

So, I'm still working on a letter background, and I was wondering if this would have everything needed for the game to identify it? I was following the example from the wiki, but I'm not sure if that works for custom letters"Entries": {"{{ModID}}_santaLetter": "{{i18n:Mail.parcy.jack_santaLetter}}[letterbg Letter_GreenCandyCane 0][textcolor green][#]{{i18n:Mail.parcy.jack_santaLetter.title}}"}

fierce vault
royal stump
# marsh reef :( no worky

"When" is a CP field, it shouldn't be underneath a "Trigger"
If you're trying to use it as a condition for trigger actions, you'll need to put it in Condition with {{}} after all. This might be the best format for it there, since it doesn't work like "When". SDVpufferthinkblob
"Condition": "ANY \"{{TruffleNumber |contains=10}}\" \"{{TruffleNumber |contains=11}}\" \"{{TruffleNumber |contains=12}}\""
that should turn into something like "Condition": "ANY \"false\" \"true\" \"false\"" when the game sees it, which should be treated as true

see this for what fields you can use inside trigger actions: https://stardewvalleywiki.com/Modding:Trigger_actions#Triggers
and here for how condition fields work (it's a lot) https://stardewvalleywiki.com/Modding:Game_state_queries

marsh reef
#

there's.. theres no more compact way around it, there's hella numbers 🀣

royal stump
#

like I mentioned last night, this is a lot of work just to make it slightly simpler for people to edit spawn amounts in FTM, yeah SDVpufferdizzy

marsh reef
#

πŸ˜” i cant put the when in the condition?

royal stump
#

not directly, no, conditions are game state queries (GSQs) and use a whole different syntax
technically you could apply it to the Data/TriggerActions edits (placing it outside the trigger action data), but whether that'll work depends on the setup and how players use it, since it needs to already exist to be triggered at start of day

calm nebula
#

what aboit using the spacecore spawn system

royal stump
#

whole separate set of syntax, but yeah, still simpler than the CP->FTM wiring without 2.0

#

(which is also new syntax) (my rec's still just telling people where to find the min/max values in content.json)

fierce vault
#

Oh, I think I need to load these

marsh reef
fleet oxide
#

I have a functional kitchen fire event πŸ₯Ή this took me actual days to get right

royal stump
#

dynamic tokens might help simplify it better than using contains repeatedly, ig

fierce vault
wanton pine
#

How the heck do I get Krita to subtract a given value from a layer's color channels? I have differrent values that need to be subtracted from each of the rgb channels.

marsh reef
#

variables 1-10 of being true false when numbers, can i use "When": for those? or? i haven't read about the dynamic tokens yet, then those variables go into the conditions of the mail flags

royal stump
#

e.g. if you want a token like {{MyTokenIsTenToTwelve}} where it's true if {{MyToken}} is 10/11/12:

"DynamicTokens": [
      {
         "Name": "MyTokenIsTenToTwelve",
         "Value": "false"
      },
      {
         "Name": "MyTokenIsTenToTwelve",
         "Value": "true",
         "When": {
            "MyToken": "10, 11, 12"
         }
      }
   ],```
#

the "contains" thing is probably simplest for just getting true/false from a single setting

marsh reef
severe cairn
#

How would I... spawn a slime during an event... (SMAPI and content patcher alone) do I have to make a new sprite with all the parts combined?

#

I dont mind doing the latter btw, but wanted to know if there was another way

marsh reef
royal stump
royal stump
# marsh reef Does this then turn back off when it’s not 10-12

it'll be true or false whenever MyToken is in that range, and it should update whenever MyToken changes, iirc
so "Condition": "{{MyTokenIsTenToTwelve}}" should trigger when 10-12 is the setting, or be skipped if not
or the opposite with "Condition": "!{{MyTokenIsTenToTwelve}}"

marsh reef
#

😭 this cannot open game because it is already open is gonna drive me insane, no steam its not still open

fierce vault
#

Hey, I've currently got a {{season}} for spring and winter before each TMX patch to change a poppy on the map, but there is a better way to do it without making two other TMX's for summer/fall isn't there? I need a separate winter tmx to get rid of the poppy and its data in winter, but it would be nice if the rest could just be on separate season spritesheets. Would that work?

calm nebula
#

Are you indoors or outdoors

fierce vault
#

Outdoors

calm nebula
#

Just use separate season tilesheets if you can

#

Like the game does

#

spring_blah

fierce vault
#

Ok. Having a separate winter tmx will not mess with that right?

#

I'll try it out

#

thanks!

marsh reef
#

πŸ™ i believe it's working now, gotta fully implament it, thank you Esca 🫑

void aspen
#

Seasonal cursors omg SDVpufferwow

#

Gotta make those

#

I wonder if I could just do something like from: assets/{{season}}.png with edit image

gaunt orbit
#

hnnng feeling the itch to do shaders again

#

but if I wanna do shaders I gotta do art first SDVpufferwaaah

toxic topaz
#

are there any tips for making pixel art lol, im really bad at art, and this is something im dreading doing lol

calm nebula
#

!pixelart

ocean sailBOT
#

Where to Start With SDV-Style Pixel Art
If you've never done pixel art before, don't stress! It's easy to pick up the basics - the key is to start small, ask for feedback, and incorporate that into your work.

To start, you'll want an art program. See a list of recommended programs in the !software command.

Here's some good beginner tutorials!
http://pixeljoint.com/forum/forum_posts.asp?TID=11299&PID=139322
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2d1e31a5ceab

To start off, try opening an existing portrait and changing the outfit. Start small: edit a shirt pattern, change a jacket collar, or remove a scarf and draw the clothes underneath. Ask for feedback too! The best way to improve is learning how to identify what's wrong and why, so then you can work out how to fix it.

Here's more good tips from the artist of "Celeste":
General pixel art 1: https://www.patreon.com/posts/pixel-art-1-6971422
General pixel art 2: https://www.patreon.com/posts/pixel-art-part-2-11225146
Outlines: https://www.patreon.com/posts/outlines-14106192
Shading: https://www.patreon.com/posts/shading-13869731
Portraits: https://www.patreon.com/posts/portraits-8693396

SDV has a few quirks to remember too:

  • Colour limits: Limit the number of shades you use - stick to six including the outline.
  • Hue shifts: Rather than making shadows and highlights lighter or darker versions of the base tone, SDV shifts the hue too. Eg. a base orange will have yellow highlights and red shadows. This goes for skintones too!
  • Light source: SDV uses a top-right & slightly forward light source - check the vanilla art for reference.
    Most importantly, don't hesitate to ask questions and get advice from people. Have fun!
void aspen
#

Before doing stardew style, you may wanna learn general basics of pixel art tho

toxic topaz
#

i really should yea Gladge im the type of person that kinda goes headfirst into something and keeps going until its passable lol

fierce vault
#

is there a reason the game won't recognize my empty winter_poppypatch tileset? I had to get rid of the {{season}} TMXs, because when in the json, the game needed more maps for summer and fall.

gaunt orbit
#

honestly for small sprites you can just kinda draw whatever as long as you put on an outline and like some super basic shading

gaunt orbit
fierce vault
#

Yeah

#

that's what I changed

gaunt orbit
#

is the location marked as Outdoors?

fierce vault
#

The empty einter png isn't being used though

#

Uh

#

I used the busstop as a base, so probably

gaunt orbit
#

hmmm

fierce vault
#

I didn't change it to indoors

gaunt orbit
#

can you post the tmx?

calm nebula
#

It's based on the asset name iirc

#

And screenshot the folder

fierce vault
#

Ok, I'll try

#

The poppy does show btw, the empty winter one is the problem because it just uses the spring one. I can not verify if fall and summer are broken because they look the same.

calm nebula
#

Ah I think you actually have to load the tilesheets into the game for this

fierce vault
#

Oh, ok!

gaunt orbit
#

you do, yes

fierce vault
#

that makes sense then

gaunt orbit
#

in general it's better to do that anyways than to use local tilesheets, so that they can be targeted by recolor mods

fierce vault
#

Ah, ok. Thanks for the help

#

Did you even need to look through the tmx to figure that out once I shared the picture? πŸ˜…

gaunt orbit
#

nope

fierce vault
#

I run into a lot of trouble by not loading assets πŸ€¦β€β™€οΈ

#

is putting the mod id's like this still compatible with recolors? { "Action": "Load", "Target": "{{ModId}}/spring_PoppyJack, {{ModId}}/summer_PoppyJack, {{ModId}}/fall_PoppyJack, {{ModId}}/winter_PoppyJack", "FromFile": "assets/{{TargetWithoutPath}}.png" },

gaunt orbit
#

all tilesheets have to be in Maps/, and if you want the seasons to work, they need to start with season_, so if you want to put your mod id in there, it should be after Maps/spring_, though of course then if you use TargetWithoutPath the filename will include your mod id

additionally, if you want SMAPI to actually load your custom tilesheets instead of using the local copy, you'll have to put them in a different folder as the map

fierce vault
#

Oh, so I should skip out on the mod id if I don't want to add it to the filenames then?

gaunt orbit
#

yes? no? the purpose of adding your mod id is to make sure it doesn't overlap with another mod. if your tilesheet names are already specific enough that they're unlikely to overlap, it's fine, but otherwise I would just add the mod id or at least your username to both the assets and the files

fierce vault
#

Hmm, I guess best practice would be to make them a little more unique

#

I can add parcy in front, I suppose

#

Or

#

at the end

#

cause of the season stuff

gaunt orbit
#

you could do like spring_parcy_poppyjack or something like that

void aspen
#

Im kinda slow but why mod id doesn't work for you

fierce vault
#

I hate having asset names longer than they have to be

lucid iron
#

if i understand this spaget correct Maps/{{ModId}}/spring_PoppyJack should work

#

string text = Path.GetFileNameWithoutExtension(tile.TileSheet.ImageSource);

#

however this is a annoying to actually use

#

so im not against Maps/spring_parcy_poppyjack

gaunt orbit
#

oh do subfolders work?

fierce vault
#

Oh? yeah, that does seem a bit complex for me πŸ˜…

lucid iron
#

ppl wont have to make a subdir this way

gaunt orbit
#

I thought I remembered there being some issues wth the mines maps because of that but maybe it was a directory climbing issu

fierce vault
#

subdir?

lucid iron
#

sub directory

#

i.e. when u are making the map

calm nebula
#

Mines are weird

void aspen
#

All I want for 1.7 is mechanics from mines and volcano to be not hardcoded

gaunt orbit
#

spacecore kinda does that

void aspen
#

Allow me to use those volcano gates Eric

urban patrol
#

use MMAP

void aspen
#

Using frameworks is neat but it's something inside of me really wanting some of that stuff to be naturally accessible in vanilla settings

urban patrol
#

the existence of a framework that does a thing lessens pathos' desire to dehardcode said thing, afaik

void aspen
#

Fair enough

fierce vault
#

Understandable

urban patrol
#

(and i say this as someone who has done cool dungeon stuff, fwiw, so i understand the urge)

lucid iron
#

i think mines and volcano r especially hardcoded and weirdβ„’

calm nebula
#

Chue plz explain name

fierce vault
#

Well it works now! but the tiledata/buildings layer block remains when it doesn't make sense to have it there. I still need to figure out how to swap my regular tmx for a winter version only. Is that possible with this? Because the reason I tried seasonal tilesheets was so that I wouldn't have to have a {{season}} before 4 separate tmxs{ "Action": "EditMap", "Target": "Maps/BusStop", "SetProperties": {"CurrentTime": "{{Time}}"}, "Update": "OnDayStart", "FromFile": "assets/maps/PoppyPatch.tmx", "PatchMode": "Replace", "When": { "HasSeenEvent": "parcy.jack_lastHi"}, "ToArea": {"X": 27, "Y": 18, "Width": 1, "Height": 1}, },

void aspen
#

I'm not sure seasonal tmx would work the same as seasonal tilesheets

#

But it's possible to do

gaunt orbit
#

there's a few ways to do it

fierce vault
#

I made one and it worked, I just needed 4 for it to not break in the other seasons

gaunt orbit
#

the simplest is probably to just have a single-tile map patch that deletes the property when the season is winter

urban patrol
fierce vault
#

Uh, I'm not even sure

urban patrol
#

i can't find that on the maps wiki page is why i'm asking

#

do you know where you got it from

fierce vault
#

Yes

#

hold on

#

Oh

#

I think it's a docs link

#

let me see

fierce vault
fierce vault
#

Or, a patch the game searches for in winter, and the original patch that the game searches for every other time

#

I'm starting to question whether 4 {{seasonal}} TMX's would be worse lol

urban patrol
#

but regardless if you don't know what it does in your patch, you probably don't need it

fierce vault
#

I can test that at some point and see I suppose!

gaunt orbit
#

you can use "Season": "Winter" for one and "Season |contains=Winter": "false" for the other

#

so one will only run in winter and the other will run only not in winter

fierce vault
#

Ah, ok. And both of those would stick around to get called on again after the other one runs out, right?

gaunt orbit
#

what do you mean stick around?

fierce vault
#

I mean, when it queries for the regular poppy, it doesn't just do it once, and then not apply the poppy anymore after it queries for the winter variant

#

I assume it sticks around

gaunt orbit
#

ah okay so I think you may be misunderstanding how the asset pipeline works

fierce vault
#

Oh, wasn't there an asset pipeline TM

#

that someone posted? SDVpufferthinkblob

gaunt orbit
#

I've explained it many times but I will do so again bc it bears repeating

fierce vault
urban patrol
gaunt orbit
#

of course!

fierce vault
#

the more explanations, the better, because they can cover different angles πŸ˜…

lucid iron
#

i usually tell ppl its a pizza

#

someone Load the dough

#

everyone else can Edit toppings

urban patrol
#

totally off topic: can one make boots that give immunity to a certain debuff (slow when walking on x type of tiles)

gaunt orbit
#

so the loading process for an asset looks something like this

  • when the game wants to load something, it asks its content loader for the thing, which in this case is SMAPI.
  • smapi turns around and sends out a ping to every mod that does things with asset saying "hey, can anybody give this to me"
  • if no mods say yes, it checks the content files, otherwise...
  • SMAPI asks the mod for it, and the mod creates or loads it and then hands it over to SMAPI
  • SMAPI then sends out another ping that says "hey, anybody want to edit this?"
  • all mods apply their edits in order of priority and then load order
  • SMAPI now has a custom, modified asset, which it hands back to the game

by default, as mentioned, this is only called once ever, but SMAPI also adds a way for mods to say "hey, I need to make changes to this asset, the current stored version isn't valid any more", which will make SMAPI get rid of the stored version, and go through the whole process again next time the asset is needed

content patcher is essentially a macro for hooking into SMAPI's asset pings. You tell it "hey, I want to load this asset when x is true" and then the next time someone asks for the asset, CP will check if the condition is true, and then tell SMAPI "hey I can load this for you" Additionally, so that conditions can actually change, it has the UpdateRate field, which determines how often it tells SMAPI to "refresh" the asset and ditch the stored version. By default, this is the start of every day

#

TL;DR, patches are always applied from a blank slate, and they won't be reloaded unless you tel lthem to

gaunt orbit
#

we could ping a junimo to do it if you think it's worth pinning, but a command is probably better

autumn tide
#

oh yeah!

gaunt orbit
#

I'm not sure how to make commands though

urban patrol
#

(if it'll fit lol)

#

you do /define

autumn tide
#

!define

ocean sailBOT
#

To define a new custom command, use /define

urban patrol
#

it brings up a window

#

if it won't fit, then you can link to the wiki page i'm about to stick this in

autumn tide
#

maybe a !loadorder?

fierce vault
tiny zealot
#

chiming in to add that, as mentioned, there is no intermediate asset cache, so whenever a mod needs to re-patch an asset, the entire thing has to be rebuilt from scratch, including running every mod's patches. this is why it is notoriously bad for performance to use OnLocationChange or OnTimeChange for edits to commonly-patched assets like Cursors.png

spark wharf
#

excuse me, what is the process of updating a mod on nexus?

autumn tide
gaunt orbit
fierce vault
#

Oh... I was told that onTimeChange was worse though, so I've avoided that SDVpuffersweats

autumn tide
tiny zealot
spark wharf
brave fable
fierce vault
#

Yeah, my other mod needs an on location change, so I've had to use it there

brave fable
#

nowhere in the rules does it say you only need to Load a base or Edit toppings specifically

gaunt orbit
spark wharf
#

Oo okay

gaunt orbit
brave fable
#

then i have just the mod for you

urban patrol
autumn tide
#

y'all think !loadprocess would work for a command?

#

cause !loadorder already is a thing

urban patrol
#

i wouldn't put load in there, because it's more than just loads

lucid iron
#

!contentpipeline

#

but idk if it needs to be explained that often RunRun

autumn tide
#

hmm fair

#

i do like !contentpipeline though!

gaunt orbit
#

I've explained it a few times

brave fable
#

(amusingly on mobile at 75% zoom the doughnut super react just makes a lot of top-left corners of doughnuts. very sdvpufferchickbig1)

autumn tide
#

okay, /define time then!

gaunt orbit
#

it's most useful when someone gets confused about how assets work or why <x> patch isn't applying when they want

whole prism
#

quickj question

#

if a player has never obtained a quest yet

#

but has played on their save file

#

and I update the quests trigger

#

(like, adding a friendship level requirement)

#

will their game follow the new requirement, since they havent gotten teh quest yet

#

or is it only new save files?

#

even if they havent obtained it yet?

gaunt orbit
#

Yes it will follow the requirement if they don't already have it

#

Only active quests are saved

urban patrol
tiny zealot
ocean sailBOT
#

New command added! You can use it like !contentpipeline.

whole prism
#

it will have at least 30 brand new quests

#

non intrusive

#

locked behind friendship levels

#

and rare events

#

3 days and im 17 quests into my goal 😫

autumn tide
#

(you can use /define again to edit/update any command)

fierce vault
#

uh oh

#

I triggered grandpa's evaluation when testing to make sure everything worked SDVpuffersweats

#

I have nothing to make him proud ☹️

#

But my poppy patches do work now!!

#

no

#

Terrible spelling error just there πŸ˜…

#

thanks so much for the help!

wanton pine
royal stump
#

seems like you can delete }, on line 8, it's closing ConfigSchema before your second option

wanton pine
#

ah

#

Goes with the above:

ocean sailBOT
#

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

wanton pine
#

removed line 8 "},", rerunning...

#

nope. Same issue. Infuriatingly:

mellow laurel
#

did you put a comma after the } on line 7

wanton pine
#

There was, but I removed it before rerunning it in SDV.

#

As it is currently, lines 1 to 14:
{
"Format": "2.8.0",
"ConfigSchema": {
"EnableCellar": {
"AllowValues": "false, true",
"Default": "true"
}
{
"UnlockCellarWithHouseUpgrade": {
"AllowValues": "false, true",
"Default": "true"
}
},

urban patrol
#
{
   "Format": "2.8.0",
   "ConfigSchema": {
      "EnableCellar": {
         "AllowValues": "false, true",
         "Default": "true"
      },
      {
       "UnlockCellarWithHouseUpgrade": {
         "AllowValues": "false, true",
         "Default": "true"
         }
      },```
#

you need a comma

mellow laurel
wanton pine
urban patrol
#

button has a json tutorial, let me find it

long jungle
#

If I want to send some letters from villagers, can I do it on the main content.json or do I need to make a new Mail.json for that?

brittle pasture
#

it doesn't matter how you organize your files

#

as long as it's either in content.json or a file imported by content.json itself

long jungle
#

So using separate .json files is just a form of file organization?

#

Thanks!

long jungle
#

AFAIK, tool upgrades retain the enchantments that the tools had before the upgrade.

Is this not possible to achieve with weapons, when say, doing a trade?

Weapon1(<enchantment_name>)

Trade>>>>>

Weapon1(<enchantment_name>)

Example:

Rusty Sword (Artful)

Trade>>>>>

Rusty Sword (Artful)

#

__
I'm assuming no, as the tool upgrade system is special and very different from directly "buying" from a shop. But still worth asking.

brittle pasture
#

nope
(maybe I should make the 'upgrade tool' thing in Carpentry Catalogue also available for regular shops, not just blacksmith ones)

#

(Carpentry Catalogue/Blacksmith Bulletin/Custom Builders/etc.' tool/weapon upgrade system does carry over enchantments and attachments, but it's currently tied to a blacksmith shop that requires days to upgrade)

#

(let me know if you'd be interested in this feature also being available for regular shops)

fierce vault
#

Y'know, I'm glad I figured that poppy patch thing out today, instead of making 4 different tmx files, becuase now I'll be able to apply that concept to my other mod which will need winter seasonal varients for much bigger maps!

ornate locust
#

You guys happen to know what sheet mannequins are on?

#

OH THEY HAVE THEIR OWN

ornate drift
#

hmmmm i should consider making my mod compatible with more seasonal outfits πŸ€”

brittle pasture
#

(you don't need a seasonal outfit mod to give your NPC seasonal outfits)

ornate drift
#

Is it possible to do this?

#

Like i want him to reach the wardrobe, change clothes, and at 9:20 AM, start moving to the register

#

And then, let's say, at 12 PM, he goes back to the drawer, changes clothes, at 12:20 PM, he goes outside

brittle pasture
#

NPCs only update their appearance after warping
you'll need to briefly phase them out into a closet location

ornate locust
#

oh that's a good idea

#

I was going to say I saw people fighting with updating clothing, like changing into a bathing suit, but that's a good idea to get around it

ornate drift
#

that's...huh SDVpufferfish

#

So i need to make a new warp map, add a location, add a warp tile, warp my NPC to there, make him change his clothes, and then warp back immediately?

brittle pasture
#

yes (the new location could be a black void as long as it serves its purpose)

ornate locust
#

Make it a NPC only warp, of course

ornate drift
#

right

#

Actually to make it make sense i should probably add a door there

#

but inaccessible to the player

#

Similar to Haley's upper room

marsh reef
#

chat, question, on a scale of one to ten, how difficult would it be to make a simple npc that serves the same amount of purpose as an animal crossing npc, that just exists on the farm around their house a bit in the day? πŸ€”

urban patrol
#

depends on if you know what you're doing

#

have you made an NPC before

brave fable
#

"on the farm" is the qualifier that kicks this up a few numbers

marsh reef
#

making a custom farm btw

urban patrol
#

is it the player's farm

brave fable
#

i have no idea what an animal crossing npc does, but a simple npc is very simple indeed

urban patrol
#

or a separate map

marsh reef
marsh reef
loud sandal
brave fable
#

becombus

urban patrol
#

you might want to fake it by using trinket tinker to make a trinket that looks like an NPC, rather than dealing with NPCs on the farm

ornate locust
#

A NPC is gonna wreck your fences without extra mods

marsh reef
brave fable
#

I'm not sure if npcs even have pathfinding on the farm to allow for a schedule, but even if they did the schedule works in absolute tile coordinates, so farms of different sizes will place the house and NPC in different relative positions

urban patrol
#

there's a framework called trinket tinker that allows the creation of custom trinkets. you have a high degree of control over their appearance and behavior, and you can manually equip the trinket for the player. you can anchor them to things like trees and weeds and pretend they're working

ornate locust
marsh reef
#

it's a whole thing of animal crossing new leaf stuff

brave fable
#

that does simplify compatibility, but the pathfinding question remains

#

i should really know the answer by now but I've simply not tried myself

urban patrol
#

yeah, if someone builds a coop where your NPC is supposed to stop, you're fucked

marsh reef
ornate locust
#

In some places, it doesn't

#

Which is the problem

urban patrol
#

like the farm

marsh reef
#

hmmmm i see

ornate locust
#

And even with the paths marked, you're going to need to take steps to make sure they don't build or place ANYTHING in their way

#

because they will obliterate it

urban patrol
#

this is why spouses are really boring in vanilla btw

ornate locust
#

or go around it and maybe obliterate something else

marsh reef
#

πŸ€” the tiledata blocks should do, no?

#

i like the term obliterate considering the fact they do legit just walk through it with no added issue

brave fable
#

you can use nobuild and nofurniture tiledata to cordon off an area of the map for your pathfinding, but that's if it works

urban patrol
#

i think trying to make a real NPC work will be an enormous headache

urban patrol
#

my advice is still faking it with a trinket

marsh reef
ornate locust
#

Oh yeah

marsh reef
ornate locust
#

Like a Terminator or something

urban patrol
#

trinkets are a vanilla concept

#

added in 1.6

marsh reef
#

πŸ§β€β™‚οΈ okay...

#

how does one become a fake npc

brave fable
#

alright history for farm pathfinding is mostly people like me who just vaguely assume it's disabled or broken, but ameise did say it's outright blacklisted so I'll trust his judgement

urban patrol
urban patrol
urban patrol
brave fable
#

he did say that 4 years ago, so if 1.6 changed this then we're back to being unsure

#

i don't have the codebase in front of me to check

urban patrol
#

i can pull it up if you know where it might be

loud sandal
#

I use trinket tinker a lot with my mods, what are you trying to do?

marsh reef
marsh reef
brittle pasture
#

Farm.ShouldExcludeFromNpcPathFinding() returns true

#

so yes still banned

loud sandal
brave fable
urban patrol
long jungle
marsh reef
brittle pasture
#

another option is Have More Kids, which I believe can make "kid" NPCs run around the farm

urban patrol
#

another banger from chu

loud sandal
marsh reef
loud sandal
#

Thing is, anchors from what I recall are like stone, trees, crops, forage, things like that.

urban patrol
#

the documentation for trinket tinker is where you'll find all that info

loud sandal
#

So if you don't have those on the farm, they won't anchor

urban patrol
#

^ and will default to following the player around

brave fable
#

as you can gather, this task is quickly rising on the scale from 1 to 10

marsh reef
urban patrol
#

you wouldn't need two trinkets; a real NPC could exist in their house because it's not the farm, as long as they don't try to leave via the farm

marsh reef
#

i think i can do it if ive got the time

loud sandal
#

Let me have a look, see if it is going to be up near the 10 on your scale lol

marsh reef
urban patrol
#

the good thing about TT is there are a lot of example packs out there

marsh reef
urban patrol
marsh reef
urban patrol
#

no worries!

marsh reef
#

πŸ€” πŸ™‚β€β†•οΈ okay so all i need is a custom npc for inside the house, with it's own animations and what not, then use those same textures for the trinket, which i have down as automatically equipped without taking up a slot and only visable outside?

urban patrol
#

yep!

marsh reef
#

epic, and if I have the npc inside be pretty simple, that part should be pretty simple too? only hard part being the art atp?

urban patrol
#

NPCs have a lot of moving parts, but there's a step by step tutorial

#

!npc

ocean sailBOT
#
Creating a Custom NPC

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

loud sandal
#

Yeah since you said C# and likely harmony is going to be a 10, that's the only downside, since you could have an override for the anchor, like a building or placeable object instead of stone, trees etc. But it would just hang there and not really walk around. So you would need to do some even more invasive coding to get it to waypoint between anchors using timers. Since it doesn't get stuck on objects or have collision that would work. But yeah, you would defs need C# and harmony and hook into the TT framework.

marsh reef
#

hmmmm

#

vas

#

:/ if need be i can just have em stay in their homes πŸ˜…

urban patrol
#

that knocks difficulty down to like a 3 imo

marsh reef
#

i have time but idk about enough to learn the needed coding and workings of other code

marsh reef
urban patrol
#

(also, i'm not sure if you would strictly need to hook into TT, because i think the chances of there not being any rocks or crops or trees on the farm is very low, but that IS what you would need if you wanted to anchor to something else, yes)

loud sandal
#

Yeah depends on the farm, seen a lot of farms with like none of that and it's just buildings and placeables haha

marsh reef
#

hmmm

#

πŸ™‚β€β†•οΈ unfortunate, ill revisit this project in some years when i know code enough to overwrite the lack of npc pathing on the farm if it isnt already done my someone else

#

but for now we'll have some chronically inside lil guys

loud sandal
#

OH btw @urban patrol would you be able to showcase my Wumbus mod please?

urban patrol
loud sandal
#

Nah none of that with me haha

urban patrol
#

i figured but i always check haha

loud sandal
#

That's good you do tbh, I've never been into any of that

#

Thanks!

urban patrol
#

no problem

marsh reef
#

can AT do npcs?

orchid glade
marsh reef
tranquil olive
#

would there somehow be a content patcher way to have love of cooking recognize book(s) as an ingredient?

hard fern
brave fable
#

it might be slightly odd to put a book and a flower in a frying pan

#

it's hard coded, i'm quite sure

tranquil olive
#

that's fair πŸ˜… was curious, hm...maybe I can have the recipe not show up if LoC is detected? SDVpufferthinkblob or something else, hm..

#

thank you both ^^

marsh reef
#

i consume knowledge at a pace no one has ever dared attempt

ornate locust
#

πŸ“– This edible book is made from dark chocolate jacket binding and white chocolate pages with two chocolate poles for structure and balance resting atop the ball.

Writing on tempered shine side up white chocolate was tough, I had no printed transfer sheets and I don’t yet know how to make custom sheets but I need to start this.

This book...

brave fable
#

an item can be cooked if it fulfils all these conditions

return item is not null && item.Category > -90 && item.HasTypeObject() && item.canBeTrashed() && item.canBeShipped() && !IsSeasoning(item);
proven spindle
#

VMV has convinced me that books are delicacies

brave fable
#

i suppose books fail the category check

orchid glade
proven spindle
#

Individual books work in recipes, interesting that the general book category doesn't

brave fable
#

ideally it'd just be a flower that you slam in the loc cookbook to get the pressed flowers

#

simple solutions πŸ“•

tranquil olive
#

I wonder if I can change it to a wood option maybe if LoC is spotted, kind of like how cornucopia has that fish and wood (stick) recipe

orchid glade
#

If they just wanted a dried flower, you could use the dehydrator

#

I did wonder about a 'machine' that was a heavy book that took flowers as input

brave fable
#

mmm flower kebab

ornate locust
#

The machine is just War and Peace

tranquil olive
#

oh I have a dehydrator option also..although I'm not sure if people know that...might mention it in an event or something maybe for a future update

orchid glade
#

Lol how many ways of doing this do you need?

brave fable
#

having failed to read dostoyevsky on several occasions, i can confirm his novels are so dry they'd work as a dehydrator

tranquil olive
#

at least 3 SDVkrobusgiggle idk just wanted options

verbal glacier
#

isn't war and peace by tolstoy

brave fable
#

i haven't read it, just chiming in since we've run into the rare topic of books and dehydrators πŸ™‚β€β†•οΈ

verbal glacier
#

i dropped it and need to try again cause it is a big boi

ornate locust
#

War and Peace is the book TV shows go to when they want a book you can cause brain damage by dropping on someone

brave fable
#

don't drop it too often or you'll leave a crater

ornate locust
#

or at least they did when I watched TV as a kid.

verbal glacier
marsh reef
#

anyone have tips on making custom tree designs? not to be cut down, just for visual

#

mm, idk if this is the one for that, but i do gotta head off so ill just figure it tmr

brave fable
# marsh reef anyone have tips on making custom tree designs? not to be cut down, just for vis...

🌳

  • structure tip: draw the stem and branches first to help guide your overall shape for the foliage, match the usual structure of your type of tree, and maybe tell a story for the age and environment of the tree if it's important
  • size tip: iirc most vanilla trees are about 64~80 wide and 80~96 tall, avoid going much larger. the bigger they are, the harder to draw. making smaller variants adds variety, character, and environment.
  • reference tip: use the winter/summer vanilla tree sprites to compare foliage/stem shapes and stay stylistically consistent with vanilla
  • shaping tip: avoid drawing individual leaves, just blobs of foliage around the branches, with a sort-of-top-down angle, to better create a whole contiguous tree rather than a collection of disconnected leaves
  • lighting tip: blob in foliage in strips of colour or clusters of leaves, from dark to light, bottom to top, maybe 1-2 leaves in height each depending on the size of the tree, blending these to give a sense of depth and self-shading to match vanilla trees
  • rendering tip: be careful of using too many tones per leaf, especially around edges to avoid making them thick and blurry, and instead use tones/groups of tones to influence the overall lighting of the tree, using the minimum per leaf to blend them and hint at the iconic shape of the leaf for the tree. likewise for the wood, balance your use of tones more towards iconic texture and features of the tree than lighting. don't draw ANY detail until the shape and silhouette is readable and satisfying.
  • time-saving tip: some vanilla trees reuse the same base/stem/branches and only vary the foliage, so you can get away with copying the base trees for your own, or copy your own trees if you're making several similar sorts
  • most important tip: use reference photos and the vanilla spritesheets!!! trees are unique in subtle ways and you'll best recreate those by studying them
  • warning tip: drawing trees takes fucking forever
brave fable
#

thanks i hate trees

void aspen
#

Hmm

#

I can try making some kind of a tree generator specifically for sdv just for sillies

void aspen
#

especially leaves

orchid glade
#

Amaze

jaunty shuttle
#

WIZARDRY

gentle rose
#

were you the one who sent the steam page for this app a while back? I know someone did!

void aspen
#

And for three years no one talked about it here

#

Till I started using it and sharing some of its features

near imp
#

Conclusive evidence that sasha is a wizard

void aspen
past loom
#

When do you guys typically release your mods? I'm working on an NPC and I would say she's half finished (functional, but without most events), and I'm wondering if it's better to release her now or wait until she's finished. Do people even download unfinished mods?

severe cairn
#

I had to release mine in a heavily WIP state due to modfest ending, and it did get downloads but I think it's best to wait until it's done so people can just download instead of waiting

near imp
#

Personally I wouldnt release before its finished

severe cairn
#

Yeah, that early rush of people does a lot, a shame I'll miss out on it with this one haha

near imp
#

Aside from the modfest time crunch a lot of people experienced, time isnt really an issue now, so i dont really see the benefit of giving people access to something thats not near complete or very close to it. I dont personally download mods that seem unfinished shrug

hard fern
severe cairn
#

Yeap, agreed

#

WIP modfest release was a necessary evil πŸ˜” definitely not something I would ever do otherwise. Hate releasing stuff unfinished...

past loom
#

mmm yeah I suppose that makes sense, I'm just worried 😭 Since I thought that with an early release people might give feedback about what to add/change

fading walrus
severe cairn
#

If you're just missing events I think it's fine to finish them. People can still give advice after, and you can always ask here what people think if you think an idea needs work, but yeah don't wanna release a WIP if possible

near imp
#

Make the mod how you like it. early release isnt really a substitute for a proper beta testing stage. if you feel your mod needs testing by multiple people i think its most fair to be upfront about wanting testers, rather than downloads from regular users. beta testing is not the same as using a mod the regular way one would use a mod

fading walrus
#

If she's romanceable, she needs heart events in the initial release, but if she's non-romanceable, then having at least her dialogue and such done is good, but you'd still need a couple events to keep people engaged

#

That being said, I recommend doing a proper beta in this server first

#

And/or elsewhere if you have the audience on your socials to request beta testers

severe cairn
#

Is there a place you can ask for beta testing in this server actually? I normally ask my friend but they don't know stardew well (they are a BUG MAGNET though. Literally everything that can go wrong will go wrong when they test stuff. Even things that happens to literally no one else idk how they do it)

severe cairn
#

As an appetizer apparently ibis ads will paste itself as an IMAGE ON THEIR CANVAS sometimes. What did you even doooo

#

They can erase it and stuff, like how does that happen 😭

past loom
#

alright, I think I will try to finish it first and then get my friends to test it before release ^^ How would that work, actually? Would I need to share them the mod file somehow?

fading walrus
severe cairn
#

Ohh tyty, do you just ask and then share the file or is there an etiquite for it?

fading walrus
#

I'd just put out a message during slightly busier hours with a blurb of what the mod does and saying that you're looking for testers!

#

If you find that you'll need a thread, you can ask a cheeto to make one for you

severe cairn
#

Tyty :3

jaunty shuttle
#

How difficult would it be to add selective breeding mechanics to the game? Not anything crazy like getting into the actual genetics, but like minecraft horses/alpacas type thing

hard fern
#

✨ with c# anything is possible ✨

jaunty shuttle
#

Noooooooo SDVpufferwaaah

hard fern
#

you cant even choose specific animals to breed in sdv

#

(i mean i guess you can if you give the game no other choice but)

jaunty shuttle
#

Yeah it'd have to either be Animal Husbandry's insemination mechanic or add a mechanic needing a male and female for a pregnancy to happen

hard fern
#

SDVpufferwaaah mind you, we have no male cows or sheep

#

wait

#

sheep maybe

#

cows

#

ugh all i know is mpreg is possible

jaunty shuttle
#

Pigs can be male or female. So that's not as hard (I hope) it's just adding a new animal type

#

The pregnancy requiring both would probably have to be a new mechanic though... and designating 2 parents to an animal

#

But it'd be soooo cool for animals to have traits you can selectively breed to bring out certain ones, like with irl animal husbandry/ranching

lucid iron
#

Besides the C# stuff you would have to define what these traits even mean

hard fern
#

yeah, i was going to ask what traits are you selectively breeding for to beginw ith

#

cuteness?

jaunty shuttle
#

I was thinking certain pretty/showring features yeah, that increase sell price. Along with the amount of produce they provide, and/or how much meat you get from them

#

Like with reptiles (irl) you generally breed for strong rare traits that make them desireable, with cows you generally breed for milk or meat production

stoic chasm
#

Helloo people. I have some questions! For the introduction dialogue, is it possible to ask a question in it? Is there anyway of having a higher heart level with a npc from the beginning of a save?

hard fern
trail brook
#

hi! I'm new to mod making and am trying small for now (before trying to be insane and make an npc mod lmao). I'm having a hard time looking for resources to start understanding how mods work in general, and was wondering if anyone knew any articles or vids I can watch to hopefully get a grasp? I've been fighting with a small recipe mod as a starting proof of concept but it is NOT going well lol qwq

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.

trail brook
#

ah ty

ornate trellis
torpid sparrow
#

i forget but i think i did it let me just chcek wiki

#

yeah you can ask a question

stoic chasm
#

Oo okay! Thank you

jaunty shuttle
#

I would just love for there to be something like that with animal ranching, since it's kind of obsolete to breed/sell animals in the game, even with mods like animal husbandry

near imp
#

would be interesting for animals with a bunch of colors too

jaunty shuttle
#

Yeah ikr! And it's such a core principle of irl farming/ranching

#

Not to mention reptile/dog/cat/horse/livestock breeders and etc being a whole thing

#

Imagine just raising bunnies in SDV SDVemoteowo

#

But yeah any idea how hard that would be to do? Like could I nerdsnipe say... Selph, into making it, or would that require learning complex C#?

near imp
#

poor Selph 😭 not sure anyone deserves to be sniped quite that hard

jaunty shuttle
#

People have been nerdsniped worse

near imp
craggy goblet
#

LMAOO

#

Happens when you're basically the one person who actually knows their way around stuff πŸ˜‚πŸ˜”

jaunty shuttle
#

Mhm, selph has some animal mechanic mods. I'm sure they'd manage :p

near imp
#

hey dont sell the rest short like that SDVpuffersquee

jaunty shuttle
#

Sadly i've already nerdsniped Chu too much to ask for more... for now

near imp
#

you just woke up today and chose violence huh SDVkrobusgiggle /lh

craggy goblet
#

If you can't beat up people, then it's the pixels' turn πŸ˜€πŸ«ΈπŸΌπŸ€›πŸΌ

#

oh wait, should prob change server tag πŸ’€

#

better lol

barren tapir
#

How would you play a sound in a c mod? And is there a way of listening to the sound(s) associated with each id?

near imp
#

for the last one, Soundboard mod for the vanilla sounds iirc

barren tapir
#

πŸ‘

near imp
#

bah scope creeped myself into moving every vanilla crop up a pixel or two where possible to make them look neater and more consistent in garden pots SDVpetcatangy

#

ive been wanting to check out cornucopia too which means ill have to do those as well aSDVpufferbonk
maybe one day they will find a cure

jaunty shuttle
#

It could be worse. I’ve scope creeped myself into learning C# for a furniture mod

calm nebula
#

Do it

#

C# is fun

near imp
#

for your unapologetic crimes against framework modders i feel less sorry for you /lh /j SDVkrobusgiggle

barren tapir
# jaunty shuttle But yeah any idea how hard that would be to do? Like could I nerdsnipe say... Se...

Instead of breeding 2 specific animals, you could have the other animals in the building effect the output. For example, if you had 2 white cows and 1 brown cow in a barn, whenever a cow in said barn gives birth there could have a 2/3 chance of being white and 1/3 chance of being brown (and maybe you could altar those odds a bit based on the animal giving birth).

With that in mind, you'd probably want to also add an item that forces an animal to give birth, even if it is just for debugging

jaunty shuttle
#

Oh interesting

torpid sparrow
#

is there an easy way to edit the minimap

near imp
#

(but ye C# scarier scopecreep than some pixels SDVpuffersquee )

calm nebula
#

What minimap

torpid sparrow
#

like the world map

jaunty shuttle
#

I feel like that’d create some possible methods of abuse though, like making a barn with 2 of the type animal you want would basically guarantee certain traits

jaunty shuttle
barren tapir
#

You could add rng to the mix (for example, there could be a 5% chance of there being a blue cow).

hard fern
#

can just edit loosesprites/map or wshateer it's called

near imp
#

-# do traps work as well if youre shouting Trap! Trap! while running towards your victim? ...asking for a friend

hard fern
#

(no)

#

(yes)

#

(depends on the victim)

torpid sparrow
#

i wonder if other mods edit the map (ik sve does) SDVpufferthinkblob i havent noticed

#

compat hell if so

near imp
#

quite a few custom farms make edits to the world map

barren tapir
#

It also seems to be fairly compatible with other mods that edit the map

jaunty shuttle
#

Ridgeside edits it too

hard fern
#

anyways unfortunately i got lore creeped by myself so i have to go write down everything SDVpuffersweats

torpid sparrow
#

oh cool SDVpufferwow

brave fable
verbal glacier
#

it also has tons of pictures for all kinds of npcs/expansions

lucid iron
#

Pls don't just EditImage ok

torpid sparrow
#

good thing u said that

lucid iron
#

Dead boys detective does it properly

torpid sparrow
#

ill check

#

yay for nic

barren tapir
void aspen
#

Eugenics in stardew valley

near imp
jaunty shuttle
#

Yeah, like my thought is then you would need multiple barns to selectively breed certain pairs or it’d be random

void aspen
#

Id love a chance to breed a smaller but faster horse tbh

#

I'm tired of it being stuck everywhere

near imp
#

if wanting to add more player input theres doubtlessly a variety of ways it could be implemented though. for example if going for a lighthearted silly sort of science then the player could feed the animal foods that affect the odds, like how its done in the sims, with apples or something affecting the sex of the baby (might be misremembering the specific food)

barren tapir
# near imp personally i feel like having other barn animals influence the outcome takes awa...

I mean, here's how I'd view it working:

  • you have animal 1. This is the animal that is giving birth.
  • you have animal 2. This is a randomly selected animal of the same species in that barn.
  • From there, you could combine their stats, whether that be in the form of taking their average, or randomly deciding which parent stat to use. And if you want to add mutations, you could have a chance of incrementing/decrementing a certain stat by a random amount
#

I think that'd be the easiest way of doing it without needing to go off the deepend of c modding

near imp
#

but the amount of coding that would be required for even simplistic inheritance of traits sounds pretty immense to my uneducated self. and it would only increase the more complex the inheritance mechanics get, not to mention if you have more types of traits needing to be stored and calculated

calm nebula
#

insert Nike logo

barren tapir
jaunty shuttle
void aspen
calm nebula
#

No

near imp
#

they dont even hop in vanilla and you wanna make them flop across the floor like a cursed flesh mop 😭

void aspen
#

More rabbit legs for my gifts

patent lanceBOT
jaunty shuttle
barren tapir
near imp
#

a coarse implementation of stats could be how many days to produce product? SDVpufferthinkblob not sure if it would go up a whole day step at a time though

#

or chance to produce deluxe item or something

barren tapir
#

Or maybe the size of the animal

near imp
#

friendliness = how much friendship gained for petting etc

#

breeding for friendliness means befriending the animals is overall easier

barren tapir
#

But for testing purposes, you could also just add a few dummy attributes that you can track.

jaunty shuttle
#

Yeah exactly the kinds of things I was thinking. And I think you could get the genetic part relatively simple. Give them traits on the backend and have something like 75% chance for a trait be inherited if both parents have it, 40% if one parent has it, and maybe like 5-15% for certain additional traits to be added that neither parent has, and just run the check for an animals stats upon birth. Then once it’s traits are decided, have some sort of β€˜strength level’ be set for each trait, maybe based on the parents with %’s the same way the traits themselves are decided

#

Then make the actual changes happen in game based on those values

hard fern
#

making-gene-specialists-general

barren tapir
near imp
#

just crush sashas dreams of 20 legged bunnies like that SDVpufferwaaah

hard fern
#

terrifying

rich cliff
#

augh I'm not yapping enough

barren tapir
rich cliff
#

This pie looks so good, who wan some?

near imp
#

0 leg bunny 3Dhmm

hard fern
#

the bun

#

it just kinda slides awkwardly to get around i guess

#

like a worm

barren tapir
near imp
#

negative legs would indeed be bad

hard fern
#

... negative legs... is the bunny folding in on itself

near imp
#

no he goes around in the night and robs the other bunnies

#

brings down the property values cause of the unsafe neighborhood

hard fern
#

so less quantum horror

#

just midnight robberies

near imp
#

actually how would he go around in the night BigHmm

hard fern
#

worm

barren tapir
#

No, the legs would be comprised of antimatter that immediately disintegrates.

near imp
#

antileg SDVpufferfear

#

what happens if antileg and leg touches?

fading walrus
#

kablooey

barren tapir
hard fern
#

( 😭 im like half asleep and reading this chat is . im trying not to laugh)

jaunty shuttle
# barren tapir Just be sure to set an upper and lower bounds of those values.

Oh yeah ofc. Like for the friendliness trait you could (for a very ruff example) have 5 levels that are β€˜+ 10 friendship points on interaction’ up to β€˜+ 100 friendship points on interaction’ and you basically selectively breed to get higher levels of traits. And you’d have to have some traits that don’t mix, like you can’t breed for β€˜level 5’ milk production and meat amount it has to be one or the other (or make it dynamically somewhere in-between, like say you can only have say 6 levels across milk and meat combined)

barren tapir
near imp
#

top 1% rattata cow is too strong. it must be stopped

barren tapir
#

It's become a baked in pavlovian response

fading walrus
fading walrus
#

and I'm the easter bunny SMCKekLmaoDog

lucid mulch
#

the venn diagram of "is willing to do reverse engineering for fun as a hobby" and "gets paid to solve hard problems" overlaps quite a lot

fading walrus
#

that would explain how I ended up here, except I haven't gotten to the "gets paid" part yet

barren tapir
near imp
#

-# smart seems more like being able to do stupid things faster with greater umph and efficiency SDVpuffersalute

past loom
fading walrus
lucid mulch
#

have you tried simply being older and already being established in the market already

near imp
#

wise words

hard fern
#

have you tried being born with 10 years of experience

near imp
#

the babies just need to pull themselves up by their bootstraps and invest in the stock market. being 5 months old is no excuse

barren tapir
fading walrus
#

I have 5 internships under my belt but I'm getting smote by language requirements since I'm a migrant

#

this is a recent development, had I known it would be like this I'd have started working towards fluency years before I moved here

barren tapir
fading walrus
barren tapir
#

Granted, I didn't need to make an inference

jaunty shuttle
# jaunty shuttle Oh yeah ofc. Like for the friendliness trait you could (for a very ruff example)...

But yeah I don’t think the genetic aspect itself would have to be very complicated, you’d just have to be careful to balance the values.

So the core bits would just be:
Allowing 2 animals to be specified as parents, with pairs selected from the current barn.
Creating a pretty simplistic traits system, using % chances based on the parents traits.
Implement the traits in game to have visual/functional effects.

#

See? Totally do-able. Someone get nerdsniped and make this please pxdangel

craggy goblet
#

If you break it down like that, it DOES sound doable... until you actually try it. πŸ˜”πŸ˜‚πŸ˜‚

barren tapir
#

I mean, I'd have a rough idea as to how to do most of that.

The thing I struggle with the most with modding is A) learning the ins and outs of the Stardew Valley code itself and B) syntax mistakes from switching between Python and C. Plus, my syntaxes have been absolutely demolished since College (there was a period of time wherein I was actively working with 5 or 7 different programming languages at the same time πŸ˜…)

near imp
#

-# (psstt mailia, they're halfway into the trap already. dont startle them 🀫 )

jaunty shuttle
#

Yeah I feel like it’s mostly just knowing how to do C#, not that the concept itself would be complicated to make. Like for me it would be super difficult cause idk how to even code % chances, but for someone familiar with how to do those things I think it’d be relatively straightforward?

barren tapir
#

Plus, if I do any animal C# animal mod, it's probably gonna be one that adds a galaxy golden animal cracker. #GalaxySoulsDeserveRights

fading walrus
#

I should probably learn C#

calm nebula
#

Do it

fading walrus
#

Maybe once I'm done studying for the certification I'm doing

#

CIPP/E first, atra

#

C# second

#

I'll do that power bi course on the side while prepping for CIPP/E though, it looks stupidly easy

toxic topaz
#

If i was doing a content pack for a new character, but also need to do some C# for parts of it, i know it wouldnt be possible to have them be like together. Is the way to do it like having the c# be kind of a separate mod working in tandem with the content pack? not sure if i described what i meant well lol

near imp
#

think so? much like how you see mods that have a CP and an AT module

hard fern
#

Things like sve do it this say

toxic topaz
#

ooh yea thats what i was thinking of

hard fern
modest dagger
#

why is ambient lighting making my maps so DARK

brittle pasture
#

look at the documentation for bundled content pack

toxic topaz
#

i see, ill look up what that is then

eager tree
#

hi! if I wanted to recolor the ocean of the Ginger Island, how would I go about that? I read somewhere that recoloring water can be tricky? do I simply recolor the tilesheets or do I need to do something else

lucid iron
#

The color overlay is on cursors Cursors

#

So the trouble here is that location changed cursor edits suck very much

#

If u want i have implemented water texture and color things in mmap

eager tree
eager tree
lucid iron
#

If u put this on the ginger island location context it will apply to all locations there

ornate trellis
#

MMAP is a godsent

lucid iron
#

The underlying tiles are still just tiles ofc, u have to recolor that too

#

This is just for the water overlay

eager tree
#

thank you, you make the best frameworks ever

ornate trellis
#

quick question cuz idk where i heard it or if i imagine it but...was there a way to make an NPC glow?

eager tree
#

I would be interested in knowing the answer to that too

ornate trellis
#

dangit

lucid iron
#

A long time ago i made a C# to do it but it's pretty annoying

ornate trellis
#

i thought i could make my anglerfish dude glow

#

cant one just plonk a istorch thing on them, sigh /j

#

now, if nps could jsut hold things and we could give em a glow ring...well, anyway. i guess my usecase is way too specific lol

lucid iron
#

New mod: When You Gift People Torch They Glow

ornate trellis
#

ngl i had hoped there was something like the effect for BC/scarecrows where you could just be like yeah thats totally a toch, its not, but lets just pretend anyway xD

quick frost
#

probably never actually making this mod bc i dont have the skills needed BUT. i dont think anyone has capitalized on the alien that ends up running loose in the valley. would be cute to make that a modded npc

tiny zealot
#

somebody made an alien in hiding but i don't know if it was meant to be the one from the capsule

quick frost
#

and bc i came up with this when i was reminiscing abt adopt n skin, would be cute if the alien comes to admire earth animals and we introduce the alien to the concept of animal shelters so that it doesnt just. collect animals to collect them. and then we have an animal shelter in the valley to adopt animals!!

quick frost
#

Stardew valley has some scifi elements going on that nobody really ever acknowledges lmfao

tiny zealot
quick frost
#

CUTE

merry river
#

Is there a way to add glow to a certain forage object?

past loom
rain inlet
#

on a scale from 1-10 how important is line-by-line debugging when making mods

rain inlet
lucid iron
rain inlet
#

bet

lucid iron
#

I would say it's about as important as line by line debugging in any single threaded application

rain inlet
#

neovim it is then

#

i gotta reinstall tho, my settings are very messy

#

i'm just waiting for when cosmic becomes more stable so i can do a system wipe and restart

stark ocean
#

new day new attempt at fixing this, if anyone can decipher the red text in this smapi log any help would be awesome :,) i have been trying to figure this out for a while now

rain inlet
#

looks like a bad room map file

urban patrol
#

!invalidtilegid

#

damn

gaunt orbit
#

!giderror

ocean sailBOT
#
"Invalid tile GID: <#>"

What does this mean?
You edited your map without one of the tilesheets present in the same folder as your tmx, causing the XML data to lose information about the tilesheet and recalculate the starting GID's for the other tilesets incorrectly.

And/Or

A tilesheet your map references no longer exists in the files, causing the same above problem.

How do I fix it?
Make sure all the tilesheets your map uses are in the same folder as your tmx, then make any small change to your map, and finally save your map.
This should cause Tiled to update the XML data and recalculate the starting GID's. You can then remove the change you made and save again.
Always make sure to have your tilesheets in the same folder as your tmx when editing your map (unless you're using tilesheetinator) in order to avoid invalid tile GID errors.

And/Or

If your map was using a tilesheet that no longer exists (several were removed in 1.6.9+), then you need to replace any reference to that tilesheet with one that does still exist or get a copy of it and ship it with your mod.

urban patrol
#

i thought i made that a command

rain inlet
#

oh awesome

urban patrol
#

oh yay there it is

rain inlet
#

y'all have a command for everything lol

modest dagger
#

my speed surpasses urs nic muahaha

rain inlet
#

i just realised i don't have a usb drive to reinstall linux with lmao

gaunt orbit
#

.quote

patent lanceBOT
#
#4531

I HEARD ITS LIKE..... AN UMAMI GASPLOSM

gaunt orbit
#

hm.

rain inlet
#

an umamusume gasplosm

urban patrol
#

i’m on mobile does someone else want to add !invalidtilegid as a synonym for !giderror

#

otherwise i’ll set a reminder

modest dagger
#

apparently nic the command u were looking for was invalidgid

#

not invalidtilegid

stark ocean
# modest dagger

this is where things get a little iffyβ€”i had the tilesheets in the same folder as my tmxs but removed them since i was done editing the maps, and thats when it gave me all the errors. i was under the impression though that it would auto redirect to the maps in the game files if it couldn't find the ones in my folder

rain inlet
#

hmm i should probably actually learn to mod instead of just adding mod ideas to my notes app

urban patrol
modest dagger
#

i fear the day i need to remove the tilesheets from my maps folder

urban patrol
#

wizzzz use TSinator i swear it will change your life

modest dagger
#

have ye seen my latest map nic

#

is small but i'm proud of it so far

urban patrol
#

the textile shop? yeah i’ve loved your progress!

stark ocean
modest dagger
#

what does tsinator even do

urban patrol
urban patrol
modest dagger
#

okay but what if i use my own tilesheets on top of vanilla ones

urban patrol
#

then that’s fine you just tell it to also look in your custom tilesheets subfolder

#

(because you should be loading those to the content pipeline so others can edit them as well)

modest dagger
#

(no no one touch my tilesheets they are my chaos babies)

urban patrol
#

the recolors wiz

#

recolor hell

modest dagger
#

u think anyone gon want to touch this

rain inlet
#

yowza

urban patrol
#

that actually looks very neat and organized

rain inlet
#

it does, but i'm also scared of tilesheets

#

i feel like if i touch it wrong, it'll collapse

stark ocean
urban patrol
#

i have no room to talk

modest dagger
#

so did you fill in the blank spots so you didn't accidentally use them too? 😭

ornate trellis
#

you all want to see true horror on a tilesheet

tiny zealot
#

of course

autumn tide
#

yes

ornate trellis
#

I like to think I'd make CA proud

#

you can see where i gave up

autumn tide
#

it's not that bad

ornate trellis
#

anything bigger will now be cut down to fill the left spaces

ornate drift
#

everything is CA what the fuck

ornate trellis
#

i regularly forget where i put certain assets

autumn tide
#

ye but there is both rhyme and reason to it- have you seen cursors

ornate trellis
#

i like my dedicated invisible tile

urban patrol
#

omg you do this too?

ornate trellis
#

ofc

#

ngl more often than not i was thinking of filling my other empty tiles but since ive always been editing it to add more i havent done that so far

stark ocean
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 17 C# mods and 5 content packs.

stark ocean
#

i am at a loss

urban patrol
#

oh you’re trying to use tilesheets outside the maps folder

#

this is possible as of a recent SMAPI update but you have to specify the file path

#

i think it’s ../TileSheets/furniture

stark ocean
#

ohh where would i have to go to change that then? sorry, i am a newbie to this kind of stuff haha

urban patrol
#

the clue is in β€œThe tilesheet couldn't be found relative to either the map file or the game's content folder.”

severe cairn
#

I also have some dedicated invisible tiles
One for npc passable and non passable and stuff

urban patrol
tiny zealot
tiny zealot
rain inlet
#

horrifying

stark ocean
urban patrol
#

actually let me check something

ornate trellis
# tiny zealot

why did I decide to check back into this chat at this very moment

verbal glacier
#

same

tiny zealot
#

to have another chance to glimpse His glory 😌

urban patrol
#

@uncut viper did you implement checking for/fixing the path of tilesheets outside of the maps folder in the map fixer? i don’t remember if you were planning to or not. scroll up for context

ornate trellis
#

for a totally non-specific reason i suddenly want cake

tiny zealot
#

(for context, this was irocendar making a mod that replaces every* texture with nicolas cage)

urban patrol
#

incredible

stark ocean
#

i can send a screenshot of where i'm looking but it'd be skinnyyy lol

urban patrol
#

i think it’s ../TileSheets/furniture.png

#

whatever the path of it is in your unpacked files

#

the key is β€œrelative to the content folder”

stark ocean
#

hmm maybe i'm in the wrong spot. i only see the image source but no place to insert file path

#

hollup

urban patrol
#

yeah image source

stark ocean
urban patrol
#

yep that’s where

stark ocean
#

oooooh okay i was overthinking it

urban patrol
#

maps look scary as text i get it

stark ocean
#

i'd type it exactly as you sent it? ../TileSheets/furniture.png?

urban patrol
#

yes*
*caveat that i’m on mobile and don’t have the files in front of me so that’s from memory

#

the .. is the β€œrelative to the content folder” part

stark ocean
#

alright bet, imma change em quick

#

CLUTCH IT WORKS

#

thank you so much oh my god

urban patrol
#

yay!

stark ocean
#

that had me stressin so hard

urban patrol
#

i was hoping the map fixer tool would be able to go β€œfurniture png? umm did you mean TILESHEETS/furniture png?” but we’ll have to wait for button to answer

stark ocean
#

i'm so sad i only found out about tilesheetinator after i had already done everything the long hard way </3 it seems so helpful

urban patrol
#

i wonder if the maps wiki page mentions it

#

imo it’s a must have for any mapmaker who wants any sort of QOL

#

but i think the wiki may not want to link to outside stuff

faint ingot
#

Question about using the appearance system, I have an event that can cause an appearance change for a spouse, and I want that appearance to NOT APPLY anywhere on the farm (porch, spouse patio).

#

I'm using !LOCATION_NAME Here Farm but that isn't working

#

I think I know why but I'm not sure what the correct approach is

ornate locust
#

I think "here" just applies to where the farmer is, not the NPC

#

maybe that's making it go weird

faint ingot
#

yeah I agree and I know that the appearance system applies when the NPC changes locations, not the farmer, which is why I think it's not working.

#

but is there a way to use the appearance system and have that not apply on the farm?

stark ocean
#

i'm wrapping up my custom npc mod and i wanna make sure i have all my bases covered. does anybody have any tips/recommendations/advice before publishing? it's my first mod so i feel like there's probably something i'm forgetting, haha

torpid sparrow
#

i probably should have tips but usually im just anxious to publish xd

faint ingot
torpid sparrow
#

testing events would probably be something

#

if there's a sequence of events make sure they trigger correctly. same goes for quests and mail and such

ornate locust
#

very basic, very easy to forget if you didn't make your Nexus page ahead of time

stark ocean
ocean sailBOT
#

@stark ocean You leveled up to Cowpoke. You can now share images in all channels!

torpid sparrow
#

as long as ur npc isnt breaking u can fix other bugs as they come up

stark ocean
uncut viper
# urban patrol <@78657757846188032> did you implement checking for/fixing the path of tilesheet...

it never fixed the tilesheets for things outside the map folder for ata and it never will for SMAPIs version of it either. what the ata check did was just skip "correcting" some specific climbing paths if they existed. it never added the ata prefix. the map fixer will also never add for example "../TileSheets" in front of furniture.png because there is literally no way for it to know it's supposed to do that

ornate locust
#

I have seen many people go "AH CRAP I FORGOT MY UPDATE KEY" and I've damn near done it myself, it's sooo little and easy to forget

torpid sparrow
#

ive done it its grr

stark ocean
#

i'll for sure be pushing future updates, what ivaras has now is a more basic version of what i want him to be, BUT it'll get him out there and i will be adding things when i have the time :3 i feel like there's so much to learn yet and i've only skimmed the surface rahhh

eager tree
ornate locust
#

oh updating the version number is the worst. I try to get around forgetting it by updating the number the SECOND I edit anything

eager tree
#

im trying to do that now too lmao otherwise i just forget

torpid sparrow
#

after i publish a new update i go into my manifest and up the version number immediately

ornate locust
#

that's also a good idea

faint ingot
torpid sparrow
#

its hardcoded for a few vanilla npcs

faint ingot
#

the schedule is in place and working I just wasn't sure what to call it

#

the point is I can target Tue/Thu/Fri when my NPC has a schedule so they shouldn't show up on the porch those days, right?

gentle rose
#

where's chu

I'll have you all know they're really annoying me, how dare they make exactly the update I asked them to make in a super reasonable amount of time so now I, after a much less reasonable amount of time, have to do what I said and integrate it SDVpufferwaaah

torpid sparrow
#

oh are you referring to a generic schedule that is meant for the npc to go to job and not the specific job schedule key?

gentle rose
#

chu your helpfulness offends me >:(

torpid sparrow
#

if so that makes sense

torpid sparrow
#

if they have a schedule they will use it

faint ingot
#

right, I misspoke by calling it "job", I just think of it that way because the NPC goes to their old job on those days

#

its not the specific key

torpid sparrow
#

it would be nice if we could use the job key but i guess its about the same level of complexity

toxic topaz
#

is it possible to change the home of an npc using the when condition?

faint ingot
#

yes but it takes a day or so for the home change to take effect in my experience, and it can cause their schedule the next day to be wacky. warp rooms are helpful for this

toxic topaz
#

warp rooms?

faint ingot
#

right, so for example my mod lets you put people in jail which I could potentially handle by changing their 'home' to the jail when conditions are met. But it works better to have them ALWAYS have their home be a custom 'warp room', and then change the warp target if they're in jail

#

I haven't found a solution that works perfectly 100% of the time but the warp room solution has been the most consistent for me

#

It is potentially problematic for compatibility with other mods though which could be a concern

#

unless its just your own NPC that you're changing

gentle osprey
#

Hi! I'm not sure if this is the right place to ask, but is there any way to change the farmer's design/model? Like, draw it and add it to the game

torpid sparrow
#

yes but i think its hard

gentle osprey
#

I've never done a mod before, I'd appreciate any help

gentle osprey
torpid sparrow
#

i encourage u to try!!

faint ingot
spark wharf
#

could someone take a gander at this json and let me know what I did wrong? this is a content json of a mod (not owned by me) that I edited for my own personal use, and the edit I made was adding strawberry seeds to the list of Y1 buyables at Pierre's. The section with the item ID 745 is the part I added. The mod worked before without adding that part, but afterwards SMAPI said "[13:52:35 WARN Content Patcher] Can't apply data patch "Year 2 Seeds In Year 1 > EditData Data/Shops #3" to Data/Shops: the field 'SeedShop' > 'Items' > '(O)745' doesn't match an existing target" so I dunno what I did wrong.. https://smapi.io/json/none/f8305e34b3844ab2a8d6a8d125445f7f

gentle osprey
faint ingot
uncut viper
toxic topaz
uncut viper
#

there are no strawberry seeds in pierre's shop at all, so your patch starting on line 28, which is looking for an Items entry whose id is (O)745, is failing

spark wharf
#

oh I think I understand.. because he never sells them at all I can't use the same format as the other seeds?

uncut viper
#

correct, all the others are just changing the conditions of existing Items entries

#

you would need to separately add the entry anew

spark wharf
#

makes sense to me, thank you. I'll see what I can do about figuring that out before I come crawling back here πŸ˜„

gaunt heath
#

Button, do you have an example of a BETAS DelayedAction? I can't seem to make it happy with my formatting

#

I'm trying to delay a MMAP action which may be too cursed

uncut viper
#

no, but odds are its an issue with your quotes and the amount of escaping needed

gaunt heath
#

Ahg I was chucking that action in loose like a dumbass

uncut viper
#

yeah you need to quote it

#

and if it has quotes inside it they need to be nested properly

gaunt heath
#

That would definitely do it, lmao

#

Thank you!

uncut viper
#

if you have more than 2 layers of nesting or some amount of tokenizable strings or if its just getting too annoying then i would just DelayedAction to delay a Spiderbuttons.BETAS_TriggerAction and put all the stuff in the trigger action you call instead

inland cipher
#

Hello, I am new here, and I know this might be an extremely stupid question, but what is the best way to get an existing mods source code to update it?

uncut viper
#

github/gittea/gitlab/whatever if they put it in their mod description

#

assuming its a C# mod

gaunt heath
#

That did it SDVpufferparty
I'm just delaying one of Chu's fancy warps, so it's not too fussy

uncut viper
#

keep in mind a mods permissions and that you may not be allowed to update it (you can do so for personal use as long as it never leaves your computer, but uploading may be a no go)

#

if it's not a C# mod (i.e. a content patcher mod or an alternative textures mod or some other content pack) then the mod you download IS the source code

inland cipher
#

Ok. Tysvm.

rotund marsh
#

So I decided to be overly ambitious and decided to make an expansion because I wanted to parse out a new farm and area for a mystical mod I've been thinking of making and I'm running into a brick wall on the C# component. Does anyone have any walk throughs or wikis that might help? I've tried looking but most things I've found have mostly been centered around Content Patcher

uncut viper
#

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

uncut viper
#

the second bullet point has stuff for setting up a C# mod and getting a very basic example mod running

#

beyond that C# is very, very, very freeform bc you are literally just writing all the code you need yourself and using whatever game functions you can find or know about in the decompile so there aren't really guides to doing anything. its all DIY

#

not guides for specific things, anyway

#

some (but not all) people here may be able to help point you in a general direction for suggestions on how to go about accomplishing something but 99% chance there wont be a tutorial for it

#

since if you're making a C# mod you're sort of expected to know C# already as teaching that is beyond the scope of things here

rotund marsh
#

Oh that's fine. I don't mind relearning code. Its been a decade since I did any coding and it was mostly C++ and Java but I'm always happy to learn other languages. Just was hoping for a launching point. But thank you! I'll definitely read over than and continue going over the wiki until things make sense πŸ˜‚

torpid sparrow
#

what C# components are u planning for (curious)

gentle rose
#

there are very few things that make me feel as dumb as attempting to find where something is on nexus

where are my premium months

torpid sparrow
#

ummmmm

#

wallet

#

maybe

#

let me check

ornate locust
#

I would try to help but I think my brain is annoyed at me for trying queries:
"Query: '{{Spouse:anyPlayer}}' = 'Abigail' OR '{{HasSeenEvent:anyPlayer |contains=SebastianAbigailWedding}}' = 'true'": true
does this look okay

gentle rose
#

found them

torpid sparrow
#

account settings, billing @gentle rose

#

DARN

#

be slower next time

faint ingot
ornate locust
#

if it works, it's MUCH neater than a thousand conditional patches...

gentle rose
#

they're in billing, which is a sensible place for something I have never been billed for

torpid sparrow
#

kicks rock

faint ingot
#

I misunderstood what Target was used for before so that's good to know

ornate locust
uncut viper
gentle rose
#

I'll have you all know that this is all chu's fault

ornate locust
uncut viper
#

no, that will work

rotund marsh
# torpid sparrow what C# components are u planning for (curious)

I was trying to use Durin's Rest (trust me, I know) as a good way to look into what can be done since I saw the mod author has been looking for people to help rebuild it and when it was working I enjoyed how it felt like its own area and was hoping to build an area with its own warp points, special locations, dedicated farm that you can switch to. I did decompile the code for the game itself to get a better idea of how things are done and what was possible but I've been staring at it for the past week going what am I even looking at so I'm honestly just trying to see what is even possible with c# vs something like content patcher

torpid sparrow
uncut viper
#

the way that one works is checking if Emily is inside the list of values that Spouse:anyPlayer returns

gentle rose
ornate locust
#

oh wait I saw a query thing about lists...

faint ingot
#

also I'm dismayed from testing that one of my very common NPC spouse responses seems to be missing a portrait, which was an easy fix but this error has probably been around for like a year (I normally marry my other NPC in my own playthroughs and somehow missed the issue in testing the other one)

torpid sparrow
uncut viper
#

but if two people are married in multiplayer then your query will be Query: 'Haley, Abigail' = 'Abigail' for example

torpid sparrow
#

im not sure about the new farm area, but locations, warps can be done with CP

rotund marsh
uncut viper
#

there is IN for query to check if things are in a list, but I don't think it'd be in the right format from the token

ornate locust
#

yeah I was looking at that...

quick frost
#

Would anyone be interested in hearing my character ideas for an alien NPC who would run an animal shelter?

uncut viper
#

You'd need the single quotes around each entry and I'm not sure how you'd get around that

quick frost
#

I had a lot of ideas today lol and I have some dialogue

ornate locust
#

dying sounds

torpid sparrow
void aspen
#

Reviving sounds

torpid sparrow
#

test the limits of CP and then bring in the C#

ornate locust
#

I really don't want to have twenty copies of this patch for every potential combo of married to player, rival hearts marriage thing...

uncut viper
#

Query: '{{Spouse:anyPlayer |contains=Abigail}}' OR '{{HasSeenEvent:anyPlayer |contains=SebastianAbigailWedding}}': true

faint ingot
torpid sparrow
#

grumbles

ornate locust
#

Oh another contains! THANK YOU

torpid sparrow
#

kicks more rock

#

expansions r a lot of work grumble

uncut viper
#

There's plausibly a better way to do that kind of OR check but Im still waking up so idk it

modest dagger
#

YEA THEY ARE

rotund marsh
uncut viper
#

(like without a Query i mean)

#

oh yeah Merge. you should probably do Merge

ornate locust
#

Merge?

torpid sparrow
uncut viper
#

"Merge: {{Spouse:anyPlayer |contains=Abigail}}, {{HasSeenEvent:anyPlayer |contains=SebastianAbigailWedding}}": "true"

quick frost
ornate locust
#

oooo

uncut viper
#

That will become, for example, Merge: true, false which just becomes the set true, false so it'll check "true": "true" which is... true