#making-mods-general

1 messages Β· Page 606 of 1

calm nebula
#

<ContentPacks Include="content-packs/[CP] More Fertilizers" Version="$(Version)" />

#

There is also this <ModZipPath>$(SolutionDir)\_releases</ModZipPath> but I think that makes the whole zip

subtle condor
#

Not really sure what you mean by that. So I guess I'm not using that XD Is that supposed to go into my manifest for the C# Mod or where should that go?

#

Or do you mean the csproj file maybe?

calm nebula
#

Csproj yeah

#

I think ItemGroup but I might be wrong

subtle condor
#

What would this do? I'm trying to get my mod to be built into a folder that is one deeper. Would this make it possible that it is on the current folder level? So I have this structure:
IslandExpansion
->[CP] Island Expansion
->[FTM] Island Expansion
-> [GWF] Island Expansion
-> Island Expansion Code
--> IslandExpansion.dll
--> manifest.json

And when I build my project, the dll and manifest land on the same level with all the other folders, but I want them to be put into the Island Expansion Code folder. What would the <ContentPacks Include> thing do? How could it help? XD

calm nebula
#

The content packs include make modbuildconfig handle the content packs while deploying, etc

#

I assume it would do so correctly

#

I dont find anything else i did for this mod

subtle condor
#

Okay, let me try around with it for a bit, maybe I can get it to work that way

subtle condor
subtle condor
#

Okay, yeah, I figured out how to do it now. If I just put the manifest files into the content-packs folder in my repo, the build will only replace those manifests, not the whole content files and assets and so on. By doing that, I can still freely edit stuff using VS Code without having to edit them out of my repo, where I then have to build it and so on. It really feels a bit sketchy to replace a manifest file over and over, just so my dll will be put one folder deeper, but you know, if it works, it works XD

strong kite
#

It should be completely possible to make conditional gift tastes, right? Like after obtaining a certain mail flag a character likes something more than they used to?

royal stump
#

as far as I know, yes, unless there's some caching in the gift taste UI or something that I haven't seen

#

taste data is checked on the spot whenever they receive something

strong kite
#

Will I need to make sure the conditional change has a later priority?

royal stump
#

conditional edits would need to come after your "base" unconditional edits for a custom NPC, yeah

#

either later in the file (iirc that's the order CP uses for a single mod) or with a later priority

strong kite
#

I'll have to do later priority as they're in different files (I have an "overrides" file)

#

That's just "Late +1" Right?

royal stump
#

if the base edit is Late, then yeah, that should work

strong kite
royal stump
#

checking
yeah, higher = later
Early is shorthand for -1000, Late for 1000, etc

strong kite
#

Ahh alright

#

I'm realizing that making gift tastes is only such an issue because of my ADHD. Maybe that's why I've been considering ways to offload the work onto other people LUL

severe cairn
#

I've done gift tastes and I'm too lazy to look up what they are to write it down orz

golden spire
#

just be grumpy and hate everything

#

πŸ˜›

tiny zealot
gray bear
#

my main issue is just, item id

#

me n numbers r not friend

tiny zealot
#

(remember that Action:Include works by replacing that patch, in its current location, with the contents of the Changes array from the included file)

gray bear
#

-# should my children like rocks

strong kite
#

I imagine there's no harm in keeping the priorities just in case?

gray bear
#

what is the like, rock id. as in the one that's a resource

verbal glacier
gray bear
#

there's about like 20+ items called Rock

ornate trellis
#

390

tiny zealot
gray bear
#

stone i mean hhhh

#

thank u

tiny zealot
#

!stone

ocean sailBOT
#

πŸͺ¨ The item ID for Stone is 390.

gray bear
#

🩷

golden spire
#

for Katrielle's love token she gifts a player one of those "unobtainable" rock items, which is fun as a 'Glitch NPC'

gray bear
#

mm debug rock

tiny zealot
#

-# how did you get this in your inventory?

gray bear
tiny zealot
#

no, i mean

#

Strings/Objects.json: "ArtifactSpot_Description": "How did you get this in your inventory?"

gray bear
#

lmao

#

just stole an artifact spot from the ground

golden spire
#

collecting worms

subtle condor
#

@gray bear the one for stone is the only stone with category I think basic, every other stone that refers to the stone that you can destroy with a pickaxe, have the category litter and category number -999. I guess it is the same for wood probably?

gray bear
#

!wood

subtle condor
#

No wood for you

gray bear
#

lmao. wood only has one instance, as opposed to stone

verbal glacier
#

388

subtle condor
royal stump
#

iirc choppable twigs are named "weeds"? it's been a while SDVkrobusgiggle

gray bear
#

really??

#

site says twig

subtle condor
#

Ah yes, makes total sense

gray bear
#

weeds does have i think, some debug versions

#

oh, many of em

#

!weeds

#

PensiveClown what is ur id

subtle condor
#

Yeah should be twig, 294 and 295

royal stump
#

yeah, looks like just "twig", I was thinking of ice crystals and such being called weeds

tiny zealot
#

the famous "Weeds" is id 0 (the first item in Data/Objects and first sprite on springobjects)

gray bear
#

see that looks incorrect

tiny zealot
#

(and also a bunch of other ids, if course)

royal stump
#

are you looking for fiber? 771 if so

gray bear
#

oh

royal stump
#

I had to look up the term again SDVkrobusgiggle

subtle condor
#

Ah I see, they're all called Weeds

gray bear
#

don't think weeds with the id of 0 is ever used in the game

royal stump
#

yeah, several things you can't pick up are just called that occasionally

gray bear
#

"it's all weeds"

royal stump
#

id 0 weeds come up with coding errors and such, moreso back before 1.6 when error items didn't work like they do now

gray bear
#

same idea with stone

tiny zealot
subtle condor
# gray bear same idea with stone

Yeah, there are like 25 Stones, including like gem nodes also being named "Stone" XD To be fair, this actually actively makes them destroyable with a pickaxe

gray bear
#

yeah it's not like its the worst implantation, just that it can be confusing

#

you put the wrong stone id in ur recipe and bam! borked

subtle condor
#

Would be easier if the actual stone ID was 2, instead of the Diamond Node being 2 XD

brave fable
#

ahhh fond memories of Weeds Ring from learning sdv modding

gray bear
#

weeds ring,,,,

golden spire
#

Lord of the Weeds

gray bear
#

you shall not scythe!

brittle pasture
#

Dried Weedses my beloved

severe cairn
#

I feel like I remember the weeds ring and yet I don't think I've seen it

calm nebula
severe cairn
#

Shrodingers weeds ring

tiny zealot
royal stump
#

afaik it only ever shows up due to several different modding mistakes
I remember getting it as a debris/tas texture on scything for a some reason, a while back

rich seal
#

The worst part about making a mod is losing track of time. I've been fiddling with my mod for almost a month and I haven't even played the game aside from loading it up, seeing if "thing" works, complaining it doesn't, fixing it til it does, then moving on to the next thing on the list. Then, there's the looming fear that I'm gonna leave some big problem in the mod and not realize it for god knows how long.

I need a way to shut off my brain after I upload my update lmao

dusk terrace
#

if one were to hypothetically accidentally put their mod as an incorrect, much higher version than what it should be,
and now SMAPI hypothetically reports that incorrect version as available
how would one hypothetically fix this?

torpid sparrow
#

like your manifest?

#

or on ur modpage

dusk terrace
#

manifest and modpage show corrected versions but smapi is still caching the old one

#

-# hypothetically

torpid sparrow
#

oh uh

#

errrr

#

did u delete the old file

dusk terrace
#

hmm, archived as best as nexus allows it I guess

#

(not available for download)

torpid sparrow
dusk terrace
#

maybe I could edit those archived files to another version...

royal stump
#

I don't think SMAPI goes through archived files, it should just be checking the main version; I'd just give it time to notice the change

#

though if nexus allows that, you may as well

#

(though by main version I mean this, which is technically a separate setting from file versions)

dusk terrace
#

ohhhhh yup that's the one that wasn't fixed

#

-# someone else had changed it, did not notice

#

thanks SDVpufferthumbsup

calm nebula
opaque cobalt
#

Thank you. I did not realize that. Glad the theory is at least correct

strong kite
#

I have finally finished gift tastes for the bachelors and bachelorettes! allthethings
which means I'm only like 1/3rd done feelsbadman

gray bear
#

may ur gift tastes coding end soon

#

personally i find those horrifying

#

this scares me

#

-# hmm i was talking about making my kids like stone but i already did that

strong kite
#

Ahh, that is not what mine looks like heehee
-# Which is not to say that mine looks better or anything

#

Then again I think that's kind of what my gift tastes for the NPC from my mod looks like, just mine's done in one single line rather than separated like that

gray bear
#

yeah i needed the seperation

#

it does the same thing i just find this a bit more managable

strong kite
#

Maybe I can just be a little less thorough with the non-datable NPCs

rose bobcat
#

i have some ideas for reading from a .json and making it significantly simpler, but jesus christ it's silly lol

gray bear
#

lobster,,,

strong kite
#

I very well may go through gift tastes again at a later date after I've pushed out this update for the mod, but for now I think I should probably just do enough to make me happy

rose bobcat
# gray bear lobster,,,

it's shrimply too easy to get! loved gifts in this mod mostly require you to go out of your way to cook food for people or make a significant investment, i.e. iridium bars for maru instead of allowing gold

barren tapir
rose bobcat
barren tapir
#

Ironically, stone has frequently become the hardest material for me to get.

rose bobcat
#

there are definitely weird troughs of resource access

barren tapir
#

The issue is that stone is used in a lot of recipes, but I don't have many renewable sources of stone

rose bobcat
#

fiber is always the one that gets me

barren tapir
#

100%. A mod idea I've had swimming around in my head has been ways to convert valuable things to resources such as stone and fiber

#

The only reason I don't tend to struggle with fiber is bc its not used a lot in most of the things I craft

tiny zealot
#

although i consider stone easy to get in the mines, i would like to hear more about what sort of conversions you were picturing. i can probably add them as transmute recipes for my magic cube thing

#

(the point of the mod is "create alternate methods to obtain various items", so i'm interested in items that players find irritating or cumbersome to get)

viral gazelle
viral gazelle
rose bobcat
#

maybe a mod for letting you clone 1 stone into 50x stone per day or something w/ the crystallarium?

#

or 25, some number that is balanced

#

needs to give more than just cloning a valuable gem and selling it, then buying stone would give you

thick anchor
#

Hello, Im using portraiture and it needs Locations , Festival Tokens and Event Ids. so im trying to find out how to get those
So i can make unique portraits for Specific places.
Can anyone please help me ?

brittle pasture
#

in my alchemy mod I'm not working on I'm imagining chains of resources associated with an alchemical element, where you can freely upgrade/downgrade between different tiers of materials using special catalysts associated with that element (Water: moss - fiber - wood - hardwood, Earth: clay - stone - coal - copper ore)

#

dunno what I can use for Fire and Air yet maybe I just won't

brittle pasture
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!

brittle pasture
#

you can also check in-game with a mod like Debug Mode

thick anchor
calm nebula
#

What if you can be nice to a crow and the crow brings you shiny objects

#

Or a mod lets you post on the little notice board in the community center

brittle pasture
#

or read their mod file, provided you know what you're looking for

thick anchor
tawdry tundra
#

here to aquire information about throwing action

brittle pasture
thick anchor
#

tried to install it so far it looks great thanks alot

brittle pasture
#

yeah it works with mods

severe cairn
#

can someone explain what attachCharacterToTempSprite does, i mean i can guess from the name but the wiki isnt very clear on the specifics
do they move together, where do they attach, who is above who

barren tapir
barren tapir
barren tapir
brittle pasture
#

yeah stone is plentiful in late game SC bombing runs, but I guess there could be a market for the more combat-averse

#

basically like the XKCD experts comic
"SDV is second nature to us veteran gamers it's easy to forget the average player only makes it to floor 50 on an average SC dive"
"and without toggling on Qi's difficult mines"
"of course"

lucid iron
#

Can i be an earth bender

#

Surround self with rock to bonk slimes

barren tapir
#

Also, dammit, yall convinced me...

... I'm gonna start working on my Rock Refinement mod

barren tapir
uncut viper
rich seal
#

I am making a very cursed thing and it's all the fault of the #modded-stardew channel from earlier.

uncut viper
#

As for the other specifics, best way to find out would be to try it, the code in the decompile for it is a bit messy and hard to parse at a glance

severe cairn
#

πŸ‘€ gonna have to test that cus man it would be soooo useful in so many situationsss

strong kite
#

Uh oh, you don't get errors in the console if you have an invalid ID in gift tastes. I might have to manually check everything to make sure there's no typos πŸ™ƒ

sterile crescent
#

who else up making a shiko x haley rival hearts mod πŸ˜‹

strong kite
#

But I'm done with Gift Tastes! being less thorough towards the end sped things up GREATLY. I wouldn't mind going back through on occasion though and filling in a few more tastes

whole prism
#

i hope its not what i think it is

#

but lmao thats funny

whole prism
#

i forget about them half of the time

rich seal
#

It's literally

  • Put item in machine
  • get flavored milk item
    I'm not sure what you're thinking it could be, but there's nothing weird here (besides the obvious)
whole prism
#

Ohhh!!

#

🀣

#

haha

prisma wing
#

would anyone be willing to help me add a png texture into the Town map. iv been trying for 2 days and i cant get it to show.

rich seal
#

Since I'm making milk out of random things, I need to figure out how to make cheese out of the cursed milk. I know Roe keeps the name when converted to Aged Roe, but I'm not sure how I'd apply that to my milk. Anyone have any idea on how I'd do this?

brittle pasture
#

PreserveId DROP_IN_PRESERVE

rich seal
#

Sorry had to step away for a bit. I just tried that and it worked flawlessly. Thanks!

#

Selph is now partially responsible for the horrors I will unleash later πŸ™‚

#

(I know, wrong category, Will fix it)

half tangle
#

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

prisma wing
barren tapir
#

You need to load clintfate.png

#

Give me a sec to hop on my laptop to explain better

#
"Changes": [
  {
    "Action": "Load",
    "Target": "Mods/{{ModId}}/clintfate",
    "FromFile": "assets/clintfate.png"
  },

  {
    "Action": "EditMap",
    // ...
  "SetTiles": [
    {
      "FromFile": "Mods/{{ModId}}/clintfate"
    }
  ]
  }
]

Make sure to pass the "Target" in your load entry to the "FromFile" argument, NOT the path to the png image.

prisma wing
barren tapir
#

Yes

#

Though listen to nic about the set tiles thing

urban patrol
#

if you just want to insert your tmx into the town map you don’t need all the map properties and map tiles stuff

prisma wing
urban patrol
#

are you following any tutorial or anything?

prisma wing
#

ngl i just started trying to do this 2 days ago and i have a hard time understanding anything on the wiki and i cant find videos on what i want to do

urban patrol
#

if you have questions about the wiki we’re happy to answer

#

videos quickly become outdated though sadly

prisma wing
#

well the texture is just a 16x64 image nothing crazy

#

and i just want it to me a static location

#

like you would see a crate or box in the background

urban patrol
#

gotcha and is this texture custom? like it doesn’t exist in vanilla?

prisma wing
#

yes its custom

#

it does not exit in vanilla

urban patrol
#

okay you’ll need to open up the Town map in Tiled, add your texture as a new tilesheet, make your edits, and then create a patch using EditMap to overlay your 4x1 area over the Town

#

if examples would help you can look at how other mods have done it

#

[[Modding:Maps]] will be a good resource

prisma wing
#

thank you

urban patrol
#

no problem and feel free to ask more questions if you need

barren tapir
#

How would someone define an item that benefits from multiple professions similar to smoked fish? I want to create an item that benefits from both the artisan profession and the gemologist profession.

brittle pasture
#

-# and it doesn't do what you want, Harmony eases all ills

barren tapir
#

YKnow what. I think I'm gonna attempt to make a framework mod to make this easier

brittle pasture
#

I did consider adding that to EMC one upon a time, but other stuff took precedence
oh yeah don't forget about Walk of Life's profession changes up to you whether you want to actually add compat though

barren tapir
#

I need to research how to make a framework mod. But my initial thought was just to cheat the system and define additional multipliers to apply afterwards. IDK, I'm very tired πŸ˜…

brittle pasture
hard fern
#

the blue link text makes it feel ominous

barren tapir
#

Also, for now at least, I think I'm just gonna support vanilla professions. Today has not been the best, and I don't have the mental capacity atm to deal with other mods πŸ˜…

#

Though maybe in the future I can add support for GSQs that also determine whether to apply a boost.

#

Yeah, I think I'm gonna add that functionality immediately. The only sinkhole I can foresee in the immediate future is the GSQ aspect of it, but that's more so due to tiredness

#

Is there a CP mod that uses Extra Animal Config? I'm looking at the framework tutorial, and I want to double check if custom data models work the way I think they do

uncut viper
#

You can look at the "Mods requiring this mod" section on its nexus page to find every mod that uses it

barren tapir
#

thnx

nova gale
#

how stupid would it be to use dynamic tokens to make a crop that grows year round, but at different rates in different seasons?

#

obviously it would make the Lookup Anything page a bit useless since the values would arbitrarily change, but not sure what other negative impacts that would have

barren tapir
#

K, I think I have an idea as to how to test it... 4 hours of sleep don't fail me now!

uncut viper
#

(Or they might. Who knows! Dunno how Crops cache things)

nova gale
#

ah you're saying that they might retain whatever their growth data was at time of planting?

#

iiinteresting, I'll test that out

barren tapir
uncut viper
#

That doesn't help for items that already exist.

#

I'm just not certain how Crops work. Like, Crop.cs objects.

#

Or HoeDirts for that matter

nova gale
#

I'll fiddle around and see how it looks

brittle pasture
#

yeah existing crops save their growth phases, but they will get re-checked if fertilizer is applied

#

so only new crops will have the new grow rate and your idea won't quite work exactly as planned

#

however, may I recommend a framework with a built in "reset crop's grow phases" trigger

barren tapir
#

Just walking through things logically, let's say you want your framework to add an object class whose JSON entry looks roughly like:

{
  "Action": "EditData",
  "Target": ".../CustomModifier",
  "Entries" {
      "EntryID": {
          "amount": 2,
          "conditions": { // See When logic of globaltokens }
        }
  }
}

I have 2 questions.

A) To refer to the the defined CustomModifier EntryID in a JSON file, would one just provide something like "FieldX": "EntryID" in their custom fields?

B) How would the custom modifier class be structured to support multiple conditions? I want it to operate like how global tokens have multiple when conditions.

public class CustomModifier{
  public float amount = 1f;
  public ??? conditions = null;
}

Sorry if this doesn't make sense, I'm sorta working through this in my head as I go along

uncut viper
#

[tv show audience vc] what framework is it!

nova gale
#

this is for my mod where I don't use any frameworks but CP itself, as I like to explore exactly how far just CP + 1.6 can go πŸ˜›

brittle pasture
nova gale
#

although for my other mod that uses C# I could probably have a trigger to reset there

#

if I implemented the concept on that end

#

are those parsnips growing in water?

#

you must have done a bunch of work to de-hardcode tappers for this πŸ˜›

#

hmmm, where fruit trees have the standard item spawn fields which includes Condition I could probably do it by adding 4 "copies" of the same output to a "fruit tree" and set the condition per season with different chance levels

#

it wouldn't be as precise

#

side note: it never dawned on me custom fruit trees use the standard item spawn fields, doesn't that mean you can set item stacks or make them produce random items from a set?

brittle pasture
#

yep

nova gale
#

interesting

brittle pasture
#

VMV adds some conditional drops

#

it's the first major mod that really makes use of fruit tree's item spawn fields, which unfortunately makes it a magnet for bug reports because UI Info Suite 2 doesn't handle conditional fruit tree drops at all

nova gale
#

yeah, apparently pathos got a few Lookup Anything bug reports from my mod because of the recipes on some of my machines

#

well, maybe that's a 2nd reason to try it the fruit tree way, make a fruit tree that looks like a rock, have it grow some fungus for harvesting that changes likelihood with the seasons or weather, and then wait for the bug reports to roll in

#

plus I'll give an artist a chance to re-skin my awful looking rock

ornate locust
#

I think UI Info Suite 2 Alternative works with odd trees

nova gale
#

I actually got bug reports for like a year because half my animals are digging animals and UI Info Suite would put the thing they were going to dig over their head

#

and everyone wanted to know how harvest

uncut viper
rich cliff
#

Chat.. What do I use to make edits? I wanna make this area a beach and I want to add a door sized hole between the waterfalls

#

I'm guessing I have to draw them in a seperate app?

#

wait is this the proper channel for this question?

proven spindle
#

It is :)

#

I assume you have the vanilla map open in Tiled. Can you see the tilesheets in the sidebar?

rich cliff
proven spindle
#

Yep! The top box is your layers panel, and the bottom box is your tilesheets panel

urban patrol
proven spindle
#

You'll want to start by making a copy of the vanilla map, so you can turn that copy into the map patch you'll be patching onto the map in-game

#

Then you can add tilesheets to that box, and use the tiles inside to design your beach. Make sure you use the right layers! The farmer can only walk on back layer tiles, and will collide with building tiles, for example

#

You'll use the Stamp brush in the top bar to add those tiles from the tilesheet to the map

#

Since it sounds like you only want to change the bottom of the forest map and not the entire map, you can also resize your copy to just the area you're planning to patch by using the rectangle select brush and the crop to selection option under Map at the top

#

Once you have your map made, check the content patcher docs for the section on editmap patchmode for adding the patch to the forest map

proven spindle
rich cliff
#

ahh alright, thank you so much SDVpufferheart

proven spindle
#

There's also a more detailed tutorial somewhere in the tutorial wiki, phone's just making it harder for me to track down rn lol SDVemoteheart

rich cliff
inland rain
#

https://www.nexusmods.com/stardewvalley/mods/33900
Dynamic Map Tiles can now change farmer's appearance when triggered

DMT/appearance

Changes various aspects of the triggering farmer's appearance.

Accepted Value

Changes take a comma-separated pair: {type},{value}. Types can include:

  • hairstyle (number value)
  • haircolor (#FFFFFF color value)
  • eyecolor (#FFFFFF color value)
  • accessory (number value)
  • skincolor (number value)

Multiple changes can be triggered using pipes to separate ('|').

Example

"DMT/appearance_On": "hairstyle,1"
"DMT/appearance_Off": "hairstyle,2|haircolor,#000000|"'

Nexus Mods :: Stardew Valley

Makes map tiles dynamic - change tile, tile sheet, and properties on-the-fly; tiles can be pushed and blown up; heal or hurt; give items and money; play sounds and change music; show custom events; tr

barren tapir
#

I think I've figured out the pseudo code for my framework mod. Depending on what happens with work I'll try testing it tomorrow.

golden shadow
#

Having some trouble with something would appreciate any help;

Goal: Check for all queries below if Indoor_Night0-4 or Rainy_Night0-4

Each query is different based on health level, dialogue getting more urgent the lower the player's health is. If the player's health is low, very low, or extremely low I want there to be different dialogue. If the health is full/not at or below 120 the character will just say what i have for "i would say whatever goes here if the query is false", which will be normal dialogue or something.

My issue: I do not know how to make it check for multiple queries in one MarriageDialogue line, making it check for ONE QUERY makes sense to me, but how do i make it check for ALL of these? Is it even possible?


$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #16 #70#@, you--$s#$b#Ugh... Go sit down.$0#$b#Sometimes I wonder if you LIKE all of this. Collecting scars and scaring me out of my damn mind.$a#$e#Can't you think of me a little more before you get yourself hurt again...?$a|i would say whatever goes here if the query is false$0

$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #1 #15#@!!$s#$b#Sit--sit down, or, or lay down-- I-- We should call Harvey, I can't treat this--$s#$e#Don't tell me to calm down, idiot!! You're bleeding all over the floor!!$a#$b#What do you even expect me to be able to do about this?!$a#$b#Even if I could patch this up, it'll probably be infected!$s|i would say whatever goes here if the query is false$0```


PLAYER_HEALTH <Player> <#Min> [#Max]
ref for the Spiderbuttons stuff: https://stardew.button.gay/docs/betas/queries

$query <query>#<if true>|<if false>
https://stardewvalleywiki.com/Modding:Dialogue#Format

1/2
#

Is there an easier way to do this? Do I need to put a query in the query in the query? as in like.... example:
"Indoor_Night_0": "$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #71 #120#slightly panicked text if true$0|$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #16 #70#more panicked text if true$0|$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #1 #15#even more panicked text here$0|here would be NORMAL dialogue because health is too high$0"

Does that even work, lol? I am not a coder so I don't really know what works and what doesn't, haha-

2/2

brittle pasture
#

IIRC you cannot nest $queryes

golden shadow
#

dang, so i can only do one?

brittle pasture
#

yep

golden shadow
#

mannnnnnn >:(

#

thank you for letting me know, though haha

golden shadow
#

can i put {{Random: RandomTextDialogue01 @@ RandomTextDialogue02 |inputSeparator=@@}} into the <if false>?

half tangle
torpid sparrow
#

oh by the harry potter person

#

lol

inland rain
#

by MindMeldMax

torpid sparrow
#

huh and then sexynes reuploaded as well?

#

or then also remade it?

half tangle
#

yeah, I was also confused why sexynes has any association with the mod

#

bc I knew MindMeltMax did some work on your mods when you took a break

inland rain
#

they helped organize the remake

late pewter
#

How hard would it be to use [CP] to make a 4th tier of Speed Gro? Makes crops grow 50% faster. Had a dumb idea and I *might* have the skill to figure this one out BUT I would want to make sure it's even doable before going down a rabbit hole and losing my mind.

tiny zealot
#

i suspect you can't alter or add fertilizer effects without C#, but get a second opinion on that

late pewter
#

Oof ouch owie

uncut viper
#

You can't.

late pewter
#

I haven't a lick of C# knowledge and am too much of an old man yelling at clouds to bother asking some AI to do it for me.

#

Alas, relegated to the bad ideas bin it goes.

#

I guess I need to figure out something else to do with Galaxy Souls.

inland rain
#

example of changing appearance, DMT can trigger hairstyle change when clicking on a wig like this

stoic chasm
#

Hello people. This may be a complicated question, but is there a way for a player to name an npc? Like, the npc in question is meant to be one that cannot remember their past, hence has no idea what their name is. Over the course of their heart events, I eventually want the player to be able to give them a name. Is that possible to do?

hard fern
#

πŸ€” i think to truly be able to name an npc you might need some C#

#

like on the spot

#

wait

uncut viper
#

Yeah if you want like, a text box, that's C# territory, unless you were fine with making it a config thing

hard fern
#

yeah, i'd thought about it as a config where you sorta pre-name the npc, and it just comes up as a choice in an event

#

and then change the npc's display name to whatever the player wrote in the config box

uncut viper
#

It would spoil the story a bit, admittedly

hard fern
#

πŸ˜” yeah, which is why i'd said "perhaps not in the way you'd like" since i figure they'd want it to be during the event you come up with the name

stoic chasm
#

Ah damn- I wonder how hard it would be to learn how to do what I want...

uncut viper
#

maybe you can have a different option choice command thingy for every letter of the alphabet and have them spell it out letter by letter

#

I'm sure that won't be completely god awful

hard fern
#

sounds uh... a little cursed

uncut viper
#

I don't think the C# for it would be too terrible though but for a complete beginner itd still be difficult probably

hard fern
uncut viper
#

probably a lot more viable* with the goto stuff in 1.6.16

*still very not viable

stoic chasm
#

Ah I see- Hm. This is a delemma... (I have no clue if that's spelt right)

hard fern
#

(dilemma)

stoic chasm
#

Oh thanks

hard fern
#

i think it would be worth considering if the potential hit to your mod's storyline by having the player choose the name first is detrimental enough to start learning how to do it in C#

uncut viper
#

If you weren't averse to dependencies, a simple text box that stores the input somewhere accessible to tokenizable strings is probably something I could add to BETAS with relative ease at some point

hard fern
#

( πŸ‘€ )

stoic chasm
#

I'm sorry but what exactly does that mean-? My brain doesn't feel like working properly today

uncut viper
#

BETAS is the acronym of my mod called Button's Extra Trigger Action Stuff

it includes a bunch of things that modders can use in their mod that don't exist in vanilla, but the trade-off is that you would have to require users also install my mod if you wanted yours to work properly (unless you took care to make everything an optional addon)

stoic chasm
#

Oooohh okay

torpid sparrow
#

Button can add that function to BETAS, if you’re open to using it as a dependency. Can confirm BETAS has many cool things you might want to use anyway

stoic chasm
#

Yeah I don't mind

torpid sparrow
#

BETAS chii_kuri_cheer

uncut viper
#

It would also mean that if this was a critical feature for you, and were willing to use BETAS for it, you would need to wait for me to implement it

#

since such a feature currently does not exist in it

stoic chasm
#

Yeah that's fine. I'm working on a personal mod at the moment anyway. This is just a concept I like the idea of for a public mod

uncut viper
#

Ideally, it wouldn't be a long wait, but I wouldn't be able to promise any sort of timeline, so like, genuinely no hard feelings if the response is "I don't wanna wait for you" SDVpuffersquee I've been looking for reasons to get back into BETAS dev anyway though

torpid sparrow
#

Is there anything else you’re planning to add Button?

uncut viper
#

Awaitable trigger actions

stoic chasm
#

That's fine! I'm good at waiting SDVpufferthumbsup

uncut viper
#

Awaitable as in instead of firing a trigger action immediately, you tell BETAS that you want it to keep checking periodically and do it once the condition has been met

#

For example if you want to wait until the player walks within 5 tiles of a specific npc

stoic chasm
#

Oooh that's cool

uncut viper
#

I've got the idea of how to implement it in my mind, just haven't had the drive yet to do it

stoic chasm
#

Fair enough

torpid sparrow
#

Oh yeah that’s rly cool

#

Someone else wanted that function

#

Can’t remember who

uncut viper
#

If you remember who or find the convo feel free to let me know so I can justify the time on it better SDVpuffersquee

daring skiff
#

Dylan James (Dylan James)

strong kite
#

I keep forgetting that I should probably still use the SpaceCore regeneration buffs, but I'll need to go back through them once Casey can fix the issues with them

#

I'm also gonna have to hope that DeLiXn pushes out the Unlockable Bundles update before I'm ready to update my mod HehSweatCloseup

prime garnet
#

I'm creating my own simple version of a forage box mod. Existing SV items worked, but I'm having trouble creating new ones.
Could someone help me?

vernal crest
ocean sailBOT
#

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

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

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

strong kite
#

Hm.... Would y'all eat this?

prime garnet
vernal crest
calm nebula
#

Is that pfm (not sure)

vernal crest
#

(I am going to sleep now so hopefully someone else can help you)

prime garnet
#

But I'm really not sure, I definitely don't know how to create new items, or combine CP with PFM.

lucid iron
#

You can just use CP for the machine too

void aspen
#

object.png 😭

fading walrus
#

shroomb

void aspen
royal stump
# prime garnet This?

PFM doesn't add new items, as far as I can tell. You'll need to look up how to make a CP pack if you're unfamiliar; that kind of data needs to be edited into the game asset Data/Objects to create a new forage-style object.

(You also seem to have picked up some invalid fields from somewhere, so that will need reworking. "Recipe" isn't a real field, "CategoryTextOverride" is only in SpaceCore's object extension data, etc.)

#

As for combining them, your main mod can generally have a main folder like "My Mod" that has sub-folders "[CP] My Mod" and "[PFM] My Mod" for the separate manifest.json and content files

#

oh right, those fields are from Json Assets SDVpufferthinkblob that does still work but isn't recommended for new mods

sour sapphire
#

CP adding animals question: anyone know how to limit drops by animal skin: (eg. brown chickens drop brown eggs and white chickens drop white eggs)? I haven’t found it in the wiki. Is it something in the ProduceItemIds Condition field maybe?

autumn tide
rich seal
royal stump
#

Yeah, that. White and brown chickens are fully separate animals that just randomly get handed out due to the random condition in AlternatePurchaseTypes. Skins don't have any real customization data and are cosmetic, but setting them up like chickens/etc gives them fully separate data.

#

(it might be possible for a mod to make a GSQ that checks the skin in the condition field, but I'm not aware of any, and the base game doesn't)

sour sapphire
#

Gotcha. Thank you both for your wisdom πŸ™

warped vessel
#

noob question:
what's the etiquitte on finding a proof reader or beta tester? should i rely on early downloaders to volunteer that role?

calm nebula
#

You can always ask around here

warped vessel
whole prism
warped vessel
whole prism
warped vessel
whole prism
#

i eat chocolate

jaunty shuttle
#

How difficult would it be to have a building with a sign on it allow the player to write the words on that sign?

tiny zealot
strong kite
#

Is there an easy way to make a food only give a buff after a certain time of day?

#

So like- It only gives the buff after 8PM in game

royal stump
#

you can probably do that with just CP's time-change rate and editing the Data/Objects buff entry

#

no Condition field on objects' buffs, so that'd be the simplest route

strong kite
#

This feels incorrect HehSweatCloseup

#

Cuz like.. I feel like this won't update already cooked foods

#

But maybe I'm wrong

fossil osprey
#

I'd advice you to keep your brackets and fields well indented, because it's easy to make mistakes

strong kite
#

Kinda a little late on that HehSweatCloseup

fossil osprey
#

You just need to add one level of ident to the Duration, CustomAttribute, and LuckLevel lines, and everything will be clean ^^

strong kite
#

I was thinking because I haven't specified anywhere that it updates on time change but idk where to put that for an EditData like this

royal stump
#

the edit needs an update rate

#

mobile rn but check the author guide for CP

strong kite
#

Alright it's the same as I'm already used to

#

Ty!

#

Oh dang okay, it does actually update already cooked versions of the item!

#

Wait so why can't I do something like that for removing the debuffs from these items?

sour sapphire
#

Is there a way to check if a specific item has been donated and not just how many of a type of item has been donated to the museum using Game State Queries?

calm nebula
#

Not really but here's a workaround - create museum donation goal for the item, then key off that mailflag

oblique meadow
royal stump
strong kite
royal stump
#

some fields are baked into existing items as data and won't update, but buffs aren't, so I'm not sure

strong kite
#

gonna try and find where I was told this in the chat history

#

Alright here's where it was said

royal stump
#

yeah, that's not actually true for buffs specifically, as far as I know

#

some things are copied into each individual item/stack once they're created, but buff data is loaded fresh when the player eats them

strong kite
#

Ahh, alright

#

dang I'll have to change the dialogue I wrote now 😭
-# provided this does indeed work but I trust you're correct lol

royal stump
#

(BETAS also has that trigger action to refresh every item in the world, but it's a bit of unnecessary slowdown if it can be avoided)
(though probably fine in this case anyway, since it'd only need to fire once SDVpufferthink) (but yeah, shouldn't matter for buffs)

strong kite
#

I just realized these are not supposed to stack but you know what fuck it we ball heehee

#

Okay wow yeah that truly does just work

#

This might be problematic but screw it LUL (all of those are massive buffs except for the Z icon)

#

If you find the secret bundle set then you can get uber powerful for end game sure

#

1835 damage with the iridium scythe heehee

#

on a crit at least, otherwise like 139. I'm terrified of what an ACTUAL end game weapon looks like with these buffs

#

Also realizing I can totally use trigger actions from BETAS for more trigger actions that buffs can add on apply ^v^
Although outside of AddHealth and AddStamina I'm not sure exactly how much use I'd get. I don't get much use out of the vanilla trigger actions from buffs anyway lol

#

However this is IMMEDIATELY giving me an idea for another mod... heehee

#

Speaking of though-
Is there a way I can have AddFriendshipPoints give points for every met NPC? (or just every NPC)
-# (or even only nearby NPCs)

viral gazelle
strong kite
viral gazelle
#

The farmer is no longer scared of the monsters, the monsters are scared of the farmer

strong kite
#

This is definitely one of those free will moments

royal stump
strong kite
#

Oh that could be smart hmm... Although I doubt "Town" covers all of the NPCs I've got listed, I imagine Sandy wouldn't get included in that?

royal stump
#

yep, she has HomeRegion: Desert in Data/Characters, and is mostly why region exists in the first place

strong kite
#

I imagine Leo is Island but does that update when he moves to the main land?

royal stump
#

Home/Desert/Other are all the official ones

strong kite
#

Home? It's not Town?

royal stump
#

oh, sorry, typo

#

Town/Desert/Other

strong kite
#

Ah alright lol

#

Alright then yeah I can swap that giant block of text over to just 2 commands. One for town region and then keep the add for Sandy specifically

royal stump
#

"other" includes Leo (I think forever, but double-checking code) and various NPCs who might not be social anyway

uncut viper
#

(also to be clear about it, that RegionalFriendship action does only work on NPCs you've already met)

strong kite
#

Ooo very nice!

#

I guess I could just do 3 commands, one for each region and ball from there lmao

hot parrot
#

i was working on a mod that makes it brighter as time goes by for use with the mod earlywakeup do you guys think that it would be simple enough to just edit light level per tick or is it more then that? the goal is to make the light start out at dark since that mod makes you get up at 4 i wanted to make a mod that kept it dark until 4.30 where i planned to increase light level slowly

strong kite
uncut viper
#

Possible, sure, but existing in BETAS right now? Not currently

strong kite
#

Part of me wants to ask if you can add that but I'm already gonna be waiting for DeLiXx to push out a public update for Unlockable Bundles and am pseudo-waiting for Casey to be able to fix the issues I found with SpaceCore. So I don't know if I should add a third person to that list lmao
-# especially since I don't want to end up having to bug people if I finish the update for my mod before then. Though that's only really an issue with UB because DeLiXx gave me an alpha build

#

Anyway- It would be pretty cool if I could make it so eating this food gives all NPCs in the same location as you friendship points, so if you want to add that I certainly wouldn't complain :3c

severe cairn
#

is there a way for me to make something that gets semi-transparent/fade when you go under/behind it like trees?
I saw some mentions of it here and there but all I can find thru discord search is pretty old

brittle pasture
#

only with a dependency

severe cairn
#

sadge πŸ˜”

royal stump
#

it's all user-side rather than mod-side as far as I know, and there have been 4 or so mods covering different things
e.g. mine does most object types
https://www.nexusmods.com/stardewvalley/mods/8891

Nexus Mods :: Stardew Valley

Increases the transparency distance around players for trees and buildings, enables transparency for bushes, and adds custom settings for other object types.

lucid iron
brittle pasture
#

obviously won't work if what you want is say a map decor like those pink trees

severe cairn
#

just debating adding a roof to this but I might add the glass from the spa instead then cus I don't wanna cover the pretty floor (and putting the tiles on it looks kinda ugly lmao)

uncut viper
# strong kite Part of me wants to ask if you can add that but I'm already gonna be waiting for...

I don't mind being asked to add it, though it may not be done as quickly as you'd like, is all. But I can put it in my notes. As with all BETAS requests I will always tell people that I am happy to receive requests so long as a) they dont mind if I turn them down and b) they don't mind waiting on me, because I will never make any promises on any sort of timelines/deadlines SDVpufferthumbsup So even if you did bug me it would not matter, I will get to it when I get to it /lh

prisma wing
#

@urban patrol @barren tapir thanks for the help yesterday i was able to figure out how to do what i wanted. thanks!

strong kite
viral gazelle
severe cairn
#

no wait

#

wee
ok am done sending pics here carry on

steep viper
#

i hope this makes sense. is there a way to mention the players name using a text bubble above head that's i18n friendly? using {{PlayerName}} with the i18nifier makes the event break

#

specifically its the {{ImportToken}} that makes it break

fossil osprey
#

Doesn't @ works for these texts?

uncut viper
#

A token cannot break an event because by the time the game sees it, it has no idea you used a token

#

So if something IS breaking it's a problem with the token setup itself

steep viper
#

ah, Iguess I mean it makes the event not exist I should say

uncut viper
#

Well if the tokens are broken then the patch is broken and wont be applied

#

I'm assuming an {{ImportToken}} is the kind that turns into like, |translation=Whatever or something like that

severe cairn
#

it's probably good to post how that section looks

uncut viper
#

In order to pass through everything into every i18n token

#

Which is a very messy and tricky thing to debug if thats the case because it's just hard to parse

uncut viper
torpid sparrow
#

{{PlayerName}} works

fossil osprey
#

Aw

torpid sparrow
#

i get importtokens all the time with i18nifier i just replace what should be there

steep viper
#

ill try it now. thank you

torpid sparrow
#

yeah the i18nifier just replaces stuff with importtoken; the actual token will work if you put it where it needs to be afterwards

steep viper
#

it probably says that somewhere but im just a dingus LOL

torpid sparrow
#

im not sure if you can put it in i18n string or if it will have to be outside of the i18n string

autumn tide
#

new rank of autism reached SDVpufferwoke

uncut viper
#

You can't put {{PlayerName}} directly into your i18n and expect it to work unless you also pass the value through to it (which I assume is what the i18nifier is trying to do with an Import Token)

torpid sparrow
#

so would it have to be "{{i18n:string1}}{{PlayerName}}{{i18n:string2}}"

oblique meadow
#

Well not with an attitude like that you can't. Pfffft

-# Disclaimer: For legal reasons, this is a joke

torpid sparrow
#

for example

uncut viper
#

Or {{ i18n: MyString |PlayerName={{PlayerName}} }}

torpid sparrow
#

ahh

autumn tide
#

OR- wait button beat me to it

uncut viper
#

However, it's possible to do {{ i18n: MyString {{ImportToken}} }} IF {{ImportToken}} gets turned into |PlayerName={{PlayerName}}

#

But I personally very much do not recommend this

steep viper
uncut viper
#

Some people will take that to an extreme and do this:
{{ i18n: MyString {{ImportToken}} }}
and then have ImportToken actually be this:
|PlayerName={{PlayerName}} |OneThing={{ConfigOption}} |somethingElse={{DynamicToken}} [..]

autumn tide
#

oh jesus

uncut viper
#

Putting every possible value you might want to use in your i18n into one singular Import Token

autumn tide
#

WTICHHHHCRAAFT

#

..oh wait

uncut viper
#

so that every i18n gets every single thing imported

autumn tide
#

WITCHHHHCRAAFT*

uncut viper
#

I dislike it very strongly

autumn tide
#

I mean I do enjoy the audacity

uncut viper
#

Absolute pain in the ass to debug on your own if something breaks somewhere in your wild chain of tokens and nested tokens and i18n. And good luck asking someone else in here for help when something breaks if they also have to parse out your token stuff.

autumn tide
#

makes sense

uncut viper
#

This I imagine is what the ImportToken stuff in the i18nifier is going for

#

(But I've never personally used it, so I cann't say with 100% certainty)

steep viper
#

Ive hard headed most of my issues myself just because of stubbornness but this was driving me nuts, so thank you. Im definitely in the right direction now

severe cairn
#

I've been too terrified to use import token tbh

ocean sailBOT
#

@severe cairn You leveled up to Shepherd. Wow, you've been talking a lot! Have a prettier, slightly more brag worthy, shade of blue.

severe cairn
#

help

torpid sparrow
#

LOL

uncut viper
autumn tide
#

heyyyy congrats!

uncut viper
#

You can also just put {{Whatever}} in your i18n file directly, then you'd instead do |Whatever={{PlayerName}}

#

and so on

severe cairn
#

My level up is through (my own) fear, accurate SDVIridiumKek
altho I genuinely haven't touched import token before it was scawry and I didn't understand it, dunno if there's a tutorial anywhere

autumn tide
severe cairn
#

since april fools

torpid sparrow
#

the yap is strong

autumn tide
#

damn you yap FAST

severe cairn
#

and I'm a wall yapper too, imagine my power if i was a spam message yapper

uncut viper
#

(you're limited to 1 xp per minute, so probably not much different)

verbal glacier
autumn tide
#

ohhh interesting! so you get 1xp for every minute you send a message or react to something?

#

or just send message?

uncut viper
#

Reacts dont do anything at all

autumn tide
#

got ittt okay

uncut viper
#

You get exp for sending a message, but you can only get 1 per minute.

#

Sending more messages within the same minute does nothing for your exp

autumn tide
#

ohhh interesting

torpid sparrow
#

computa, set a 1 minute cooldown for me to maximize xp

uncut viper
#

Also if someone abuses this we can and will remove exp from someone

autumn tide
#

make sense

torpid sparrow
#

DONT READ MY PREVIOUS MESSAGE

autumn tide
#

wait does that happen often?

uncut viper
#

Too late, you will be reset to 0 😌

torpid sparrow
uncut viper
#

Not at liberty to say. Anyway though, making mods

autumn tide
#

aah, the top-secret duties of a junimo SDVkrobusgiggle

#

mods!

torpid sparrow
#

i forgot to make my sam bruschetta mod

#

hmmm maybe i make it today

hard fern
torpid sparrow
severe cairn
#

what if it was random dialogue, all disappointed but there's multiple variations SDVkrobusgiggle /silly

torpid sparrow
#

there will always be ways to scope creep even the measliest of mods

rich seal
#

True facts
<---guilty

autumn tide
severe cairn
barren tapir
#

Can't wait to resume work on my framework mod!

barren tapir
#

Hell, I'll add on to it. Add variation based on the hour!

#

ALL THE DIALOGUE

severe cairn
#

Well Wem the scope creep is neverending πŸ˜”

viral gazelle
torpid sparrow
torpid sparrow
#

i thought by removing my config json, it would prevent user configs from being reset

#

is that not the case?

#

ive seen people saying they get reset

ornate locust
#

It should, but maybe it doesn't if you change the config part of the mod?

torpid sparrow
#

ah

#

yes im always adding new configs

ornate locust
#

I am not sure about that, don't quote me there

#

Also maybe a user deleted the mod folder, including the config, when they updated

torpid sparrow
#

hmm

#

well that is what usually happens no?

#

you delete the whole folder and replace

ornate locust
#

If you use Stardrop, I believe it should preserve the config at least

#

But if you do it manually, yes, but that is where the config is, you can't preserve a config you just deleted

#

you preserve the config by not deleting the config file, just everything else

torpid sparrow
#

hmmmmmmmm

#

im not entirely sure i wont be adding new configs

ornate locust
#

The only thing YOU can do about it is to not include a config file.

torpid sparrow
#

okay D:

#

thanks midnight SDVpufferheart

ornate locust
#

Stardrop does work to preserve configs, but it's not perfect

#

ah BUTTON SPEAKS they will know more

uncut viper
#

If you change the name of a config option, like it used to be called ConfigA but you change it to ConfigOne, but they are the same actual option (like, they control the same thing), people will lose their configs, yeah

#

If you're just adding new ones though, old configs will not be lost as long as the file itself is not overwritten

torpid sparrow
#

ah okay i'll add a note of that somewhere to help players

uncut viper
barren tapir
#

How do you get the custom fields from an object? I have the following:

private static void getPriceAfterMultiplier_postfix(StardewValley.Object __instance, long specificPlayerID, ref float __result)
{
    var farmers = Game1.getAllFarmers();
    //ItemRegistry.Create(__instance.ItemId)
}

And no matter what I try to do, I can't seem to find a way to retrieve a CustomField attribute from __instance

uncut viper
#

CustomFields isnt stored on the object, its stored in the ObjectData that controls how those objects work

#

Look in Game1.objectData to get the ObjectData for that item ID

#

(or call DataLoader.Objects() yourself, or w/e its called in the DataLoader class

barren tapir
#

Thanks!

#

What am I doing wrong here? Why isn't Test showing up in the context tags?

ornate locust
#

Did you make a new one?

#

Sword, I mean

barren tapir
#

Yes

#

And I think I just saw the issue. BRB

#

Nope, still not working

grand gale
calm nebula
#

Do weapons have context tags

#

[[Modding:weapons]]

calm nebula
#

Iirc they may not

#

The documentation does not show them

barren tapir
#

They don't in the base JSON field, but they have a _contextTags field and they show up in Look Up Anything

uncut viper
#

If they don't in their data, then you cant add them via json

barren tapir
#

UGHHHHHH

#

Okay.

brittle pasture
uncut viper
#

They are getting it in 1.6.16

barren tapir
#

Whelp, looks like Millable Bone Swords is gonna wait to update until 1.6.16!

brittle pasture
#

any reason you need a special tag or is it just a convenience thing

barren tapir
#

Back to the framwork mod!

barren tapir
#

I was just using "Test" as a sanity check

coral nexus
#

Hey how would I make tiles on a map that go transparent when walked under? Like having forest leaves above the player that go translucent when under them like regular trees do

brave fable
#

a most timely question πŸ™‚β€β†•οΈ

rose bobcat
#

if i wanted to check if the player has the main 4 tools upgraded to max, would i have to check if they're in the player inventory or is there a way to check chests, too?

#

using C#

#

or am i missing a property of player somewhere ;-;

uncut viper
#

You can use Utility.ForEachItem() to look everywhere in every place

#

Don't do it every tick or something though

rose bobcat
#

nah this is just on day start

#

which should be fine, right?

#

also the player has a .trashCanLevel but not the others, which is funny

uncut viper
#

Yeah that's fine

rose bobcat
#

i guess it makes sense, it's not an item

#

kk, thank you so much!

uncut viper
#

Though do take care to take multiplayer into consideration if you care about individual progress vs shared progress

rose bobcat
#

oof, the idea of making this work for multiplayer makes my head spin lol

uncut viper
#

(Along those same lines, a farmhand may not have an accurate check of things here in some edge cases)

royal stump
# brave fable

fwiw, I don't think this actually enables that? the setting it adds is an unconditional tile* property that doesn't check player position
(except in their other mod from the screenshot, which does it based on player controls)

#

though I did entirely mistake one mod for the other when it was mentioned a few hours ago SDVpufferdizzy

calm nebula
uncut viper
#

That would be less important to me than the inaccurate check tbh

coral nexus
barren tapir
#

UGHHH IT FEELS LIKE NOTHING IS WORKING FOR THE FRAMEWORK MOD

#

Yes SMAPI, I'm aware the game keeps crashing!

#

@uncut viper Is this how you retrieve custom fields?

Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data);
if (data == null)
{
    return;
}
// ...
foreach (var entry in data.CustomFields)
{
  // Do Stuff
}
royal stump
#

if you're planning to look at every custom field rather than a specific entry, then yes, that's fine

#

(though TryGet methods return a bool you can check instead of null-checking)

if (!Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data))
    return;
foreach (var entry in data.CustomFields)
{
    // Do Stuff
}```
torpid sparrow
#

would it be possible to randomize npc outfits every day or every week with just cp

#

i dont intend to do that bc ew art but im wondering if its possible

royal stump
#

sounds fairly simple with appearance entries and/or normal token text swapping

torpid sparrow
#

okay i thought so

barren tapir
calm nebula
#

(Customfields is a dictionary, do u need to iterate it.)

#

Are u doing this in an asset editor

barren tapir
#

Yes, I need to iterate through it. IDK what an asset editor is, but I'm using Visual Studio

#

Though now that I say that, I could probably circumvent iterating through all fields for the basic professions at the very least

royal stump
#

i.e. if you're writing data in your current code, don't, use those instead

#

if you're just reading you can do it whenever

barren tapir
#

The page isn't loading properly on my phone, and I'm away from PC atm. But right now I'm just reading data.

#

Or at least, attempting to

calm nebula
#

(I ask because accessing data in an asset editor is Fun TM)

royal stump
#

SDVpufferthumbsup events in helper.Events.Content and such, for reference, but just reading CustomFields should be fine in a patch

lucid mulch
#

also CustomFields would start off null iirc

barren tapir
#

I think I'm probably gonna call it a night on this for now, and come back to it tomorrow. I'm almost certain I'm doing something obviously wrong πŸ˜….

-# I'm trying to get better at not coding past midnight

royal stump
#

right, I guess it'd be null/uninitialized for that type, it seems to vary
(probably null with the json loading etc)

barren tapir
#

Probably

royal stump
#
if (!Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data) || data.CustomFields == null)
    return;
foreach (var entry in data.CustomFields)
{
    // Do Stuff
}```
barren tapir
#

I swear to God if I wake up tomorrow and check the code only to see that I forgot an exclamation mark, I'm gonna be pissed πŸ˜…

calm nebula
#

Exclamation....mark?

#

Or the not operator

torpid sparrow
#

how do i make tiled not look like this

#

its so hard to read

#

nvm i got it

hard fern
#

Oh my

torpid sparrow
#

hmmmmmm people path there

#

right and down it is i must expand

#

oh god i dont have a mouse

faint ingot
#

I have had two users now with an issue where during Pierre's arrest event, they can't get past the first quickquestion. I haven't been able to reproduce the problem. One of them shared the SMAPI log and I guess they are on android which may be related. Does anyone know of an issue with quickquestions on android (and if there's a workaround)? It is not a fork issue. their smapi log (showing an IndexOutOfRangeException): https://smapi.io/log/c973296673094d9389722b0a13ba2976

ocean sailBOT
#

Log Info: SMAPI v4.3.2.5 - 1775226918 with SDV 1.6.15.2 build 26086 on Android Unix 35.0.0.0, with 39 C# mods and 72 content packs.

uncut viper
faint ingot
uncut viper
#

Do you need spaces around your (break) command things? (Genuine question, I don't know bc I don't do events, but I feel like I remember something with spaces or something and in the function thats crashing in that error log it does so some string splitting based on spaces at some points)

faint ingot
#

I'm not an expert so I couldn't say for sure. The example from the wiki does not have spaces though.

#

and it seems to work on PC.

#

I sometimes refer to VisitMountVapius when I wonder if I'm doing something correctly and they also have (break) with no spaces around it

uncut viper
#

I'm unfortunately not well versed enough in event specifics to be much help there but I can at least say it doesn't like something about your quick question and the only place I can see an index out of bounds error happening is after it tries to split things up according to breaks and/or double slashes

#

Or maybe one of them is missing the "question key"? I'm not sure that part corresponds to, maybe the answers?

faint ingot
#

I have seen the error when I don't have the correct number of responses against the number of options, but in this case it appears to match up. It looks like this if I put in line breaks to make it more readable quickQuestion {{i18n:Events.239790020.qqq|PlayerName={{PlayerName}}|FarmName={{FarmName}}}}# {{i18n:Events.239790020.qq1}}# {{i18n:Events.239790020.qq2|FarmName={{FarmName}}}} (break)speak Pierre \"{{i18n:Events.239790020.qq1r}}\" (break)speak Pierre \"{{i18n:Events.239790020.qq2r}}\"

#

I also checked the translation keys and they are fairly normal nothing weird with quotes or slashes

#

anyway thank you for taking a look

urban patrol
#

maybe there's something in your i18n?

faint ingot
#

like I said pretty generic "Events.239790020.qqq":"What do you think, {{PlayerName}}? This mead is of the finest quality, but I'm told these aren't from {{FarmName}} farm.", "Events.239790020.qq1":"I'm not sure...", "Events.239790020.qq2":"Those are definitely from {{FarmName}} farm.", "Events.239790020.qq1r":"I assure you, these are from my private reserve!$s", "Events.239790020.qq2r":"Well I'd like to see you prove it!$3",

urban patrol
#

what about qqq

faint ingot
#

fixed / edited thanks

urban patrol
#

and qq1/qq2r

#

hmm yeah i can't spot anything

faint ingot
#

OK thanks for checking I appreciate the extra eyes SDVpufferheart

urban patrol
#

i've never encountered any issues with QQ on android but who knows

faint ingot
#

With the previous user I gave them instructions for how to skip the event and they were able to get by I guess I'll do the same for this one. Weird that it happened more than once and nothing seems to be amiss that I can see.

#

Because USUALLY when people point out a problem it's like yeah I'm doing something weird there

urban patrol
#

what happens if you replace the pass through tokens with the text replacers like @ and %farm

#

just to narrow things down?

faint ingot
#

I wish I could test but I'm on windows I don't have an android test setup

#

I guess I should ask if they're using another translation maybe there is an issue in a translation i18n

calm nebula
#

What's their farmer name and farm name?

#

Might have a \ or / in their player/farm name

faint ingot
#

I'll ask thanks

opaque cobalt
#

So, I was told that you can't use when in appearance modding for having an outfit only load when a config option is chosen. Would this be the correct rewriting of it?

"Condition": ""Penny Beach Skin": "Beach, Both", LOCATION_NAME TARGET BathHouse_Pool Beach"

brittle pasture
#

that very much looks like invalid JSON

#

Condition takes only a string

#

if you want to use configs in GSQs pass it as a token inside the string

#

the token has to evaluate to TRUE or FALSE for it to be checked as a GSQ

#

something like this:
"Condition": "{{Penny Beach Skin |contains=Beach,Both}}, LOCATION_NAME Target BathHouse_Pool Beach"

#

CP will turn that first token into either true or false before giving it to the game, which will use it to determine whether to check the remaining condition

opaque cobalt
#

thank you. Thus if I mark it as island attire, assuming config is set, outfit will appear at ginger island, bathhouse, and beach correct?

faint ingot
#

I think it works fine to have when conditions in the appearance system, as long as you create the entry before you edit it using 'Fields'. I made this edit recently and not seeing any problems with it: { "Action": "EditData", "Target": "Data/Characters", "Fields": { "{{Shannon}}": { "Appearance": [ { "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual", "Sprite": "Characters/{{Shannon}}_Casual", "Indoors":true, "Outdoors":true, "Condition":"LOCATION_NAME Target FarmHouse, !IS_EVENT", "Precedence":5, }, ], } }, "When": { "cfgShannonPJs": true } },

brittle pasture
uncut viper
#

It will do so yeah

#

You'd need to TargetField into it

faint ingot
#

o really? glad I said something before I pushed this then yikes

uncut viper
#

Or just make sure this happens first before you add any other appearances (using TargetField)

#

The When part would work tho

#

(as long as you don't do the common mistake of putting the When at the same level as the Appearance, instead of on the patch itself, ofc)

faint ingot
# uncut viper You'd need to TargetField into it

like this? { "Action": "EditData", "Target": "Data/Characters", "TargetField": [ "{{Shannon}}", "Appearance" ], "Entries": { "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual", "Sprite": "Characters/{{Shannon}}_Casual", "Indoors": true, "Outdoors": true, "Condition": "LOCATION_NAME Target FarmHouse, !IS_EVENT", "Precedence": 5, }, "When": { "cfgShannonPJs": true } },

uncut viper
#

That looks correct to me but know that I'm running at only like 80% awake levels

#

So at most I can be 80% confident in my ability to remember how to write a CP patch

faint ingot
#

OK I'll test it out thank you

brittle pasture
#

currently the code is dumping all those loose fields into Appearance directly

#

-# was afk brushing me teeth

uncut viper
#

Thank you Selph for making up for the last 20%

faint ingot
#

thank you I was getting errors and wondering what was wrong that got me there

#

on the wrapping block, I had to give it a key name to make it valid JSON, that should be fine to do right?

#

i.e. "Entries": { "Shannon_casual":{ "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual",

brittle pasture
#

yes

#

you should make it match the id

faint ingot
#

ok

brittle pasture
#

doesn't really matter in this case but it helps keeping things consistent

hard fern
#

πŸ€” if i want mod A to have an event that works without seeing mod B's events, but mod B's events require mod A's events to be seen, is there a way to make this work smoothly that doesn't require players to make a fresh playthrough

#

since, if the player installs mod B, they won't be able to trigger mod A's events anymore if they've already seen them (unless they debug)

#

my current thought was for mod B to mark those events as unseen so that they can be triggered again

proven spindle
#

Why would mod A's events have to be seen again?

hard fern
proven spindle
#

So if I'm understanding right you want

if mod A installed only on its own -> events play as usual

if mod A and mod B both installed -> specific sequence involving both their events

if mod B installed after events already seen for mod A -> repeat mod A's events to ensure they follow the specific sequence alongside mod B

Assuming I got it right, yeah MarkEventUnseen should work. That having been said, if the A+B sequence relies on some of A's events happening after certain B events, then I'd think some of the events' preconditions would be different (so an A event would have a hasseenevent B event precond if both are installed), which would mean altering that too, in which case switchEvent might be an easier way to do it if they're part of a chain

Or dynamic token the event conds

Or even just have separate versions of the same events

hard fern
proven spindle
#

So mod A's events will have 'CT not active' preconds baked in, with the idea being if there's no mod B then the CT is inactive by default?

proven spindle
#

Hmm what happens if the player activates mod A's events before viewing mod B's when both are installed?

hard fern
#

i want to avoid making separate versions of events just to change a few preconditions when the events will be the same

#

hm, maybe have mod B send a mail flag that needs to be checked before being able to see the next event in the sequence. but if mod B isn't installed, then seeing mod A's events will automatically set those flags? πŸ€”

#

im sure something like that can be done with trigger actions

#

but alternatively, i could take your suggestion and use dynamic tokens, where one of the preconditions will either be "has seen x event" or "has not seen x event" based on if mod B is installed or not. If it's installed, the player will have needed to see mod B's event before being able to see mod A's. but if not, since there is no mod B, the event will play as normal

proven spindle
#

Maybe you could have a mailflag in mod A's preconds, have a trigger action in mod A that sends that mailflag upon mod installation, and then a trigger action in mod B that removes that mail upon mod installation (with the trigger action set up so it removes the mail after mod A adds the mail), and then mod B's events add that mail (/those mails if multiple) to trigger mod A's events

#

(The dynamic token works too, but it'll get annoying if you have to do a whole bunch of them for loads of events)

hard fern
proven spindle
#

So:

Mod A

Trigger action addmail mail1
Event eventA1 precond hasmail mail1

Mod B

Trigger action removemail mail1
Event eventB1, addmail mail1 in event
Trigger action markeventunseen eventA1 when eventB1 seen

#

So eventA1 plays again

hard fern
proven spindle
#

Then you'd just do that for any A events that have to happen after B events

#

addmail mail1
eventA1 plays not requiring mail1
eventA2 plays requiring mail1
player installs mod B
removemail mail1
eventB1 plays adding mail1 to player
eventA2 marked unseen
eventA2 replays

hard fern
#

SDVpufferflat whoo... it's going over my head

proven spindle
#

that's ok i'm probably explaining it badly

hard fern
#

i'll probably come back to this later (aka, when i actually have an event to write)

#

right now i just wanted to gauge if i could even pull off my idea

proven spindle
#

i think it's doable, just comes down to how much effort you want to put into it

hard fern
#

if it comes to it i dont mind using a million dynamic tokens

proven spindle
#

that works too SDVkrobusgiggle i'm biased against using too many bc they clog up my content.jsons but they would def work here

hard fern
#

oh see, my content.json is pretty empty since i make everything into includes

proven spindle
#

so do i, that's why i hate them there

hard fern
#

content.json, more like dynamictokens.json

proven spindle
#

one giant list of dyn tokens just to get to the 2-3 includes at the very bottom

#

my kingdom for the ability to define them in a separate json

hard fern
#

I have SDVpuffersweats a lot more than 3 includes.

#

like low estimate of 15

proven spindle
#

i started doing a main.json that i point to from content.json and just put all the includes there, then the other two includes are usually compat.json/crossover.json ones

fierce vault
#

I just reorganized Jack’s content json to have a bunch of includes πŸ˜„

#

It was getting very crowded

inland rain
#

letter blocks

gray bear
#

sooo here's like, a general question about the shipping collection: how exactly is the order coded?
would it be possible to make it so the order is Alphabetically or by Category/Type?

golden spire
#

it's just ordered by it's order in the Data/Objects

#

then I assume it's just whatever mods get loaded first and then their item list, etc

gray bear
#

hmm, editing that would be a problem then,,, h

vernal crest
#

There's a mod that lets players change it I think, I don't remember what it's called

gray bear
#

really? i guess i can try to look again, didn't find one when i searched

proven spindle
vernal crest
#

I tried looking back through my downloads to find it but I have downloaded so many mods. I'm not on the computer I downloaded it on either so I can't check my mod folders.

#

I have definitely used a newer one, it let me choose between alphabetical and some other ways to sort it

verbal glacier
vernal crest
#

Yes, thank you! That's the one that I have

#

You are finding all sorts of things for me tonight xD

verbal glacier
#

i feel like i'm good at finding random stuff

vernal crest
#

I'm quite good at remembering random mentions of things from ages ago and then finding those, but not good at finding anything else

verbal glacier
gray bear
#

thanks guys!

barren tapir
#

Ughh, the day has barely begun and I already wish it was over.

#

Even if that means going back to pulling my hair out due to trying to figure out the custom fields issue I was having last night.

warped vessel
#

I've been working on the random distribution weights of a blind box item. This is from a sample size of 200, with neutral daily luck and no luck buffs.
I plan on adding quests and other methods to obtain the rare plushes, and they're meant to be a real treat when you roll them (especially the shiny legend)

does this distribution seem fair?

#

(also, should i remove daily luck from the 'common' bucket?)

strong kite
#

I was hoping that mape, just maybe... miraculously, using the non-alpha version of Unlockable Bundles would still work for my mod. And I guess on sheer technicality it doesn't create any errors but no it does not "work" so I definitely will need the mod to be publicly updated before I can release mine 😭

#

Ah, I see a fellow Pokemon Mod creator

warped vessel
#

pokemon for life!! :D

strong kite
#

I really need to add more dishes that give the debuffs I've created because the foods that remove said debuffs need more uses 😭

#

Honestly I might need to make another mod that adds like explorable dungeons with enemies that inflict these debuffs, if that's even possible. I've heard less-than-possible things about making enemies inflict Debuffs Tiredkip

#

ohh that could be so crazy though. I could add like.. a "Held Item" slot which is basically just another trinket slot that uses a different set of items allthethings
-# I say as if that wouldn't require C# or some really complicated coding I 100% can not do heehee

#

I'm also acting like that wouldn't be even more months of work than what I've already been working on heehee

vale vortex
#

Hello Stardew Modders! I've got a weird issue that I'm hoping someone can help me with: I have a bug with my Power Nap mod that allows singleplayers to regain energy when they're in bed. There can't be a menu open and the game can't be paused in order for energy to be regained. This bug involves a weird "pause mode" of the game that I will do my best to explain.

There's a setting called 'Pause When Game Window Is Inactive'. This setting being enabled and alt+tab-ing out of the game allows the player to regain energy when they're in bed, even though the game enters a sort of "inactive window paused state". This is a very odd pause state that the game doesn't really let me reference within the code, from what I can find.

There are plenty of 'isPaused' variables in the code, but they all point to paused states like the following:
1] Typing "paused" into the chat.
2] Having an active menu open [clock flashes].

This alt+tab-ing paused state will pause the game when the game is not focused, but I can't check if the game is actually paused because the time isn't flashing like when a player is in a menu and this version of being "paused" can't be referenced, from what I can see within the code.

So! My question: Is there a 'isFocused' reference I can call/check to see if a player doesn't have the game focused? I looked through 'Game1' a lot and couldn't find anything that actually checked for this state.

Here's my relevant code to check for the things I've mentioned already:
if ((Game1.player.isInBed.Value == true) && (Game1.IsMultiplayer == false) && (Game1.HostPaused == false) && (Game1.isTimePaused == false) && (Game1.paused == false) && (Game1.activeClickableMenu == null))

​Any help would be really appreciated!

sly nest
#

That's in Game1, you said you looked through that already so perhaps you already tested this one too, but that's the one that jumps out at me since you said the others you tried didn't work for you.

vale vortex
brittle pasture
#

capital I

#

also, out of curiosity, did shouldTimePass not do what you wanted

sly nest
#

Line 1219 in Game1.cs specifically.

vale vortex
#

Thank you both. I'll run this and see if it works.

royal stump
#

(idk if the release build part does anything etc, I just mimicked the whole thing when issues kept happening)

vale vortex
#

This seems to have done it!

#

Still testing, but it is "breaking correctly"!

#

Thanks everyone!

tiny zealot
#

i have this which i use from time to time

    public static bool IsActive() {
        return Game1.game1.IsActive || ((!Game1.options?.pauseWhenOutOfFocus) ?? false);
    }```
vale vortex
#

Also, related: Are .pdb files not generated when building mods now? When I build my mod from Visual Studio, it only builds the Manifest and .dll files.

tiny zealot
#

modbuildconfig changed its default settings at some point to stop generating separate pdbs, yes

vale vortex
tiny zealot
#

there's a way to turn it back on, i think, but i couldn't tell you what it is since i can't imagine it being useful to do so /lh

vale vortex
royal stump
#

yeah, it's no longer needed for error message accuracy iirc

tiny zealot
#

my understanding is the same information is simply baked into the dll instead of living in a sidecar

#

i suppose you could get some size savings by reverting and just not shipping the pdb but i've never seen a mod dll big enough for that to really matter

strong kite
#

How could I give a dish a random chance to apply a debuff when eaten?
Would it be some weird buff triggering an action on apply that then triggers an action with a RANDOM GSQ that applies the debuff if it hits?

#

Or I guess a Random ContentPatcher When condition?

royal stump
#

CP doesn't update often enough for that to be viable, so either the buff -> action -> other buff, or spacechase0.SpaceCore_OnItemEaten -> action -> buff

strong kite
#

Alrighty, I'll look into it!

tiny zealot
#

i recommend the former if it works. i think it's best to use vanilla systems when they suffice

#

i don't remember if you have a C# component, but if you do you could potentially also put the random chance in your buff code

strong kite
#

I have been terrified of touching C# heehee

royal stump
#

vanilla's probably for the best, it just involves creating one more buff entry really

#

but ig you'd need a TriggerActions entry for the SC one anyway

strong kite
#

Hm... I do want it to be like.. it either applies the Buff OR the Debuff, So I might need another buff entry as intermediary

#

I've got an idea, I'll come back once I've got something to test

royal stump
#

I was picturing a preliminary buff in either case, but yeah

//on a do-nothing preliminary buff always applied by the food:
"ActionsOnApply": [
    "IF random_query_here ## AddBuff GoodBuff ## AddBuff BadBuff"
]```
or multiple entries with separate/exclusive rng chances, if you don't always want one to happen
strong kite
#

ooh can I just use that? that's basically my idea I just needed to find the terms to implement it lol

#

or wait, I still need to fill in the random query?

royal stump
#

but the "if" action lets you do a gsq in-line with it like
IF query ## query is true, so do this action ## query is false, so do this

strong kite
#

Ohhh okay awesome!

#

So theoretically it's just IF RANDOM 0.9 ## Query Success = Buff ## Query Fail = Debuff?

royal stump
#

yep, pretty much

strong kite
#

Alrighty, thank you!

royal stump
#

(okay, done struggling to get nexus to let me post a reply SDVpufferdizzy)
the more complex case would be if you want a chance of neither buff applying, which would probably need the synced random GSQ stuff

sly nest
#

Hey ya'll, is it okay to ask for someone to showcase my mod? Just finished a major update release.

strong kite
#

Ok I need to figure out how to make VSCode not flag trailing commas as errors. I followed the thing someone sent like a week ago at this point but it didn't work
(Got this figured out)

quasi dew
#

hey, I'm not gonna get put on some list if I put the toddlers in diapers, will I?

#

work in progress.

royal stump
sly nest
#

https://www.nexusmods.com/stardewvalley/mods/31643
Allows you to alter the drop rates of various things in the game, configurable with GMCM for complete control of what drop rates you want increased and by how much.

Nexus Mods :: Stardew Valley

Take control of your resource gathering with Custom Drop Rates.This mod allows you to fine-tune the drop rates of ores, stone, coal and various other things to your liking!

barren tapir
#

Also, the entities that have access to it are (or at least are supposed to) be focusing on potential terrorist activities (at least assuming your an American).

#

You are far more likely to be put on some advertiser list telling people to show you ads of baby products (unless you're hiding your IP)

slate orchid
#

Hi all, can I ask something. I started making mods, I've explored some basic functions and the wiki, and now I want make mod for changing NPC AI, like behavior, pathfinding, relationship and other. But I think I need more than just basic functions, I seen some harmony realisation, and may be I will use it but I still need know about ai behavior or path and other, somebody know where I can read about it, or just make "mind map" by researching code (sorry for my English)

severe cairn
#

!unpack if you havent already :3

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!

slate orchid
#

Hhh, how quick answered, I’m very grateful.

sly nest
#

Also your English is perfectly fine AstridHappy

slate orchid
#

And thanks to you too for the extra details

strong kite
#

Man I really do need to find more foods to have give these debuffs, they're such a cool idea! Though yeah maybe I should make them not guaranteed to happen

strong kite
#

Alright, I hope something like this will work for having a chance of being debuffed when it's on the item

#

oh my god I have some crazy ideas for a volcano dungeon-like expansion mod but I unfortunately know that I don't have the skills to make something like that

calm nebula
#

Have u tried spacecore dungeons feature

strong kite
#

No, and I especially wont yet because this is not something I'm considering for my current mod. That scope creep would be genuinely colossal to include in this mod

#

But for an expansion mod after I've updated this one? I'll look into it then

sly nest
#

Or to take it further, have the players luck rating of the day influence the rng slightly.

strong kite
#

Uhhh I think that could be possible, I just did something like it though it only supports 2 variables, but that sort of thing Isn't something I need for my mod

sly nest
#

Fair ^^

strong kite
#

Well now that I have these determinator debuffs now I get to try and use them!

#

I probably wont end up using all 15 versions HehSweatCloseup

sly nest
#

Is your mod posted somewhere? Sounds interesting

strong kite
#

Yes, but a lot of what I've been working on isn't implemented yet. This is like.. a COLOSSAL update in the works (should be nearing completion though)

#

(comparatively colossal)

sly nest
#

Ah, heavy dev time. Sounds like you're in the zone, looking forward to seeing what you come out with AstridHappy

strong kite
#

I've been working on this update for like... 6 weeks now I think?

#

So yea I hope people like it lol

#

But yea I've added a whole system for CURING these debuffs, it would be a massive shame for them to be underutilized

#

Can i18n be used in the ConfigSchema?

brittle pasture
strong kite
#

I don't think I need this when condition anymore, SpaceCore is 100% not optional at this point heehee

strong kite
brittle pasture
#

ConfigSchemas define the raw internal values yes

strong kite
#

Alrighty!

#

Time to watch everything explode because I'm trying multiple things I'm not familiar with all at once :)

#

Ok i definitely don't know what I'm doing 🫠

#
    "Format": "2.9.1",
        "ConfigSchema": {
            "config.ConfigOldSeeds.name": {
                "AllowValues": "true, false",
                "Default": "false",
                "Description": "config.ConfigOldSeeds.description"
            },
            "config.VanillaCookingChanges.name": {
                "AllowValues": "true, false",
                "Default": "true",
                "Description": "config.VanillaCookingChanges.description"
            }
        },```
brittle pasture
#

the config. keys goes in your i18n

strong kite
#
"config.ConfigOldSeeds.name": "Enable Old Seed Sprites",
"config.ConfigOldSeeds.description": "Replaces the seed sprites with those from the initial versions of the mod, and alters the names to make them a little more accurate.",
"config.VanillaCookingChanges.name": "Vanilla Edible Item Changes",
"config.VanillaCookingChanges.description": "Applies changes to vanilla game edible items including crops, cooked dishes, etc. That gives some of them chances to apply debuffs to be in line with recipes from my own mod.",
brittle pasture
#

your config schema would just have whatever you had earlier

strong kite
#

Oh okay

#

So I just keep 'em like this? { "Format": "2.9.1", "ConfigSchema": { "Enable Old Seed Sprites": { "AllowValues": "true, false", "Default": "false", "Description": "Replaces the seed sprites with those from the initial versions of the mod, and alters the names to make them a little more accurate." }, "Vanilla Edible Item Changes": { "AllowValues": "true, false", "Default": "true", "Description": "Applies changes to vanilla game edible items including crops, cooked dishes, etc. That gives some of them chances to apply debuffs to be in line with recipes from my own mod." } },

brittle pasture
#

yes, though your i18n key would need to match what's in here

strong kite
#

Ahh alrighty

#

Are spaces okay in that?

brittle pasture
strong kite
#

Alrighty! Thank you!

brittle pasture
#

probably, but personally I think spaces are the devil

strong kite
#

Time to see if the actual changes themselves work

#

It actually works! allthethings

#

wait-

dusk terrace
#

looking for thoughts on how skill prestige should manage its different mod files that include the compatbility with other skill mods
I think it's best if they're separated mods/binaries (because that's how the original author planned it, compatibility with a skill mod is called an adapter and anyone can upload a skill prestige adapter)
but how should they be shown on Nexus? one big zip folder with all adapters? main file with the core mod and the adapter that does simple compatbility with a couple mods, then optional files for the more complex adapters? main file is core mod with NO adapters, each adapter is its own separate optional file?

strong kite
#

Right I think I need to append not fully edit

#

ohhh wait or it's also because I'm editing the buffs field mario_facepalm

brittle pasture
calm nebula
patent lanceBOT
brittle pasture
dusk terrace
#

they could be all in the same binary... but might not get accepted by the original author if they come back
I think their idea was to push the responsibility on other mod authors (especially the ones making the skill mods) but that obviously never happened

#

also technically I'm not the one adopting this mod, but I'm hosting the fork... so it be better if the other adapters are separate, I guess?

barren tapir
#

I think I'm gonna try a different approach for custom fields instead of iterating through all of them. IDK, I'm just thinking out loud between meetings πŸ˜…

dusk terrace
barren tapir
#

Bc the fields could just as easily point to lists instead

brittle pasture
#

(also pretty much 100% of skill mods post 1.6 uses SpaceCore so unless the SC API doesn't expose something that's needed I don't see why each mod has to add their own compat)

dusk terrace
#

ye that's the main reason for the split lol
there's an adapter that does all the simple spacecore skills that don't need extra API exposure

#

but if I include that one with the core mod... then users might not read there are extra optional files and just assume the mod isn't supported?

strong kite
#

oh great... okay so I fixed the thing before and now I've got Coffee and TSE that has a chance of inflicting burn. HOWEVER, turns out that my code to cure burn doesn't work...

                    "Id": "{{ModId}}_CureBurnDebuff",
                    "Trigger": "spacechase0.SpaceCore_OnItemEaten",
                    "Condition": "ITEM_CONTEXT_TAG Target cures_burn",
                    "MarkActionApplied": false,
                    "Actions": [
                    "RemoveBuff {{ModId}}_BurnedDebuff",
                    "RemoveBuff {{ModId}}_BadDreamsDebuff",
                    "RemoveBuff 12",
                    ]
                },```
brittle pasture
#

you want to check the Input item

brittle pasture
#

yeah it's kinda undocumented

dusk terrace
#

also another valid argument πŸ₯Ή

strong kite
brittle pasture
#

I mean just switch Target to Input

strong kite
#

Oh excellent

#

Ty

#

Me when I casually miss like 6 33% chances in a row while testing heehee

barren tapir
#

It's also up to the user to provide constructive criticism, and you hold no obligations to capitulate to their wants. For example, I recently got a rather vague request on one of my mods stating that a thing was overpowered. I disagree with that sentiment, and there also isn't really a way to change it that doesn't invalidate its intention in a way that I wouldn't be opposed to

#

That's not to say you should ignore comments. But you also don't owe them anything

#

Had that comment been able to explain why they thought it was OP and/or how to address it, I'd be far more open to a discussion on the topic

#

IDK, maybe I'm the weird one for occasionally treating mod posts like an academic discussion πŸ˜…

strong kite
#

I think I might as well ask here, what are some edible items from vanilla Stardew y'all think could apply Burn, Poison, Paralysis, Frozen, or Sleep?
I'll add Poison for Pufferfish and Red Mushroom as guarantees

severe cairn
#

frozen might be a chance from ice cream and stuff if its winter lmao

quick bramble
#

i havent played stardew in ages but burn makes me think ghost pepper

severe cairn
#

or just generally

#

brainfreeze...

#

only if its a small chance though lol, cant think of anything else unless you maybe like. ate a raw ice pip

quick bramble
#

with how many wild herbs exist from what i remember i can see paralysis from eating wild plants be a thing for sure

#

same goes for sleep with lethargy inducement

strong kite
severe cairn
#

burn could probably work for a raw lava eel too SDVkrobusgiggle

quick bramble
#

HA!

strong kite
#

Very good ideas! I'll add them!

quick bramble
#

cant think of anything else that would be sleep inducing outside the realm of magic, wild flora, and chemicals

severe cairn
#

all raw fish could honestly give poison ngl, but that might be too annoying SDVIridiumKek

quick bramble
#

true, that

severe cairn
#

maybe a ghostfish could be sleep to complete the trifecta

quick bramble
#

i suppose poison would be comparable to indegestion in this game

#

but then again its been ages since ive played so feel free to correct me

strong kite
#

or stonefish

severe cairn
#

no its edible i believe, i just cant think of anything directly fitting πŸ€”