#making-mods-general

1 messages · Page 3 of 1

next plaza
#

(You still need to pass in a player if it's team wide, since it'll use that player's .team field)

hollow hazel
#

its semi working now yay, thx y'all your help, now to see why the sprites aren't working

hallow prism
#

pretty flowers

hollow hazel
#

thank you!

hollow hazel
#

its working!

calm nebula
#

Looking dapper!

dense tartan
#

Happy Sunday, everyone! Still working on my CP mod to add some new items to Robin's store. I figured out that since some of them are wall hangings, I should just make all of them the Furniture type.

I have my integer configured, but I keep getting an error saying the asset doesn't exist. I have them in a file called deco.png within an assets folder in the mod folder.

Here's the code: "{{ModId}}_BigGreenCane": "Big Green Cane/decor/1 2/1 2/1/69/2/Big Green Cane/0/{{AbsoluteFilePath: assets\\deco}}/true/",

Here's a screenshot with the message. It doesn't matter if I add .png after deco or not, the game still tells me the asset doesn't exist. It doesn't show up until I open Robin's shop window.

calm nebula
#

So, in theory you want internalAssetKey

#

Not Absolute File Path

#

But you actually can't use that either (due to the fact that internal asset key has slashes in it.)

#

You sorta have to just load the texture

dense tartan
#

I did try internalassetkey too with similar results. Would it be better to have the png in the same folder as the jsons?

calm nebula
#

This is hats but similar

dense tartan
#

Ohhhhhh, I see! Let me try that! Thanks for the tip - I'll let you know.

dense tartan
#

@calm nebula Thank you! That's working great!

#

For objects like furniture, is there a context tag or anything that allows the object to be walked through?

rancid temple
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

hallow prism
#

i don't think there is outside of making them rug

#

but there's a framework for furniture that may allow that

dense tartan
#

Thank you. I'll look into it more.

hollow hazel
rancid temple
#

Vanilla precedence for winter is -100, yours need to be lower than that to be checked

wild flax
ocean sailBOT
#

Log Info: SMAPI with SDV on , with 74 C# mods and 123 content packs.

lucid iron
#

can you try saving the json from the validator? it seems to complain about some invalid character

wild flax
#

I'll try that thanks!

ornate trellis
#

hmm

#

i am hitting a little block in my event about how to switch from temporary srite to npc 🤔

hallow prism
#

hmm, so my not helpful question is why do you need to do that

#

and otherwise, maybe stop the temporary sprite and then warp the npc in place

velvet narwhal
#

oh previously, void has a temporary sprite because animation of a large fishing animation

#

i forget though, you used the actual temporaryanimatedsprite? would it let you put that on the 'front' layer in depth? and then just have your actual npc hiding underneath?

ornate trellis
#

sorry, was chilling with my cats for a sec kdfshjfsd

#

I jsut found attachCharacterToTempSprite and wonder if that would work in my case...
also, to answer the question as to why is I want her to stop fishing and turn around and actively talk to basically show shes now focused on the dialogue and not trying to ignore the others

#

unfortunately the only explanation i get for that command thing is just a

Attach an actor to the most recent temporary sprite.

finite ginkgo
ornate trellis
#

wait wha

#

holy damn pickle

velvet narwhal
#

ender with the fancy event commands

ornate trellis
#

hmm

#

so i set her up, make the sprite longer and then do the animation?

finite ginkgo
#

Yup

velvet narwhal
ornate trellis
#

hmm

#

do i go by extended size tiles or the original 16x32 size when i set the animation tho

finite ginkgo
#

I'm testing it out rn since, disclaimer, i've never used the command before ;p

velvet narwhal
#

honestly i love throwing the event commands into a debug event and seeing what does what

#

or reading it in the decompile, but honestly reading the <depth> decompile made me more confused than anything

summer bobcat
#

I am working on trying to create bundles using C#, and I think I have some what figured it out; however, I am having issues with adding them to the community center. So far, I have this:

using System.Runtime.InteropServices;
using StardewModdingAPI;
using StardewValley;
using StardewValley.Menus;
namespace SVBundleTest
{
    internal sealed class ModEntry : Mod
    {
        public override void Entry(IModHelper helper)
        {
            List<BundleIngredientDescription> testDesc = new List<BundleIngredientDescription>();
            testDesc.Add(new BundleIngredientDescription("(BO)1", 5, 0, false));

            bool[] bools = {false};

            Bundle testBund = new Bundle("TestBundle", "Test Bundle", testDesc, bools, "(BO)1");
            testBund.bundleIndex = 0;
        }
    }
}

Is there a method that can add a Bundle class to the community center, or am I missing something on this?

finite ginkgo
ornate trellis
#

oh dang, hm

lucid iron
#

For the latter I would recommend looking at unlockable bundles

summer bobcat
# lucid iron For the latter I would recommend looking at unlockable bundles

I was looking to try and add a new bundle to a pre-existing room in the community center, like the adding another bundle to the Crafts Room or similar. I tried messing with unlockable bundles, but I could not figure out how to add something like I wanted, I only could add an object that opened the bundle menu.

finite ginkgo
#

Unlockable Bundles allows you to create new bundles, if you want that bundle to be a requirement for finishing the community center that's likely going to require some additional C# to edit the CC complete conditions, otherwise UB has everything you need for a custom bundle

ornate trellis
#

hm...

#

ok i think the attachCharacterToTempSprite isnt working the way I thought it would....

lucid iron
uncut viper
#

why not just use the assetrequested pipeline

lucid iron
#

if making your bundle required for CC aint that important then u should just go with unlockable bundle yes

lucid iron
ornate trellis
#

why is this happenign again SDVpufferwaaah

wild flax
# wild flax Hey guys!! it's my first time making a mod and I wanted to make some sprite chan...

so about my previous issue it works now and tbh idk what i did but I was having some problems with visual studio code saving my files and i fixed it, but for some reason my sprites only work on marriageable characters and not on the other villagers is there any reason why that is? i'm assuming it's because of a mod i downloaded that also has village sprites but I replaced all the sprites with mine on the looking for love mod, and deleted the romanceable rasmodius mod and I don't think there's any other mod that overwrites the sprites, also I don't get an error on my smapi log about it it says everything is running smoothly even though half my villagers don't have the sprites, my sprites mod also has the "load" action which is supposed to give it priority so I'm not sure why it's not working

lucid iron
#

load does not give it priority

wild flax
#

oh okay got it

ornate trellis
#

oh my god i jsut killed my browser when i typed in the json parser url wut

marsh wraith
#

hi everyone, sorry for silly question, i’m really not a computer person xP

but how do i temporarily disable a mod without deleting my save data for it? or what else would you guys recommend if not that? i’m trying to test my Leo sprites but i already have a mod downloaded that includes custom Leo sprites, so i’m pretty sure that mod is overriding mine sprites

lucid iron
#

should try to make whatever other mod you are replacing sprites on a dependency for your mod

#

and u prob want EditImage instead Bolb

paper sundial
#

@ivory plume Not sure if it's been mentioned to you, but there seems to be an oversight with Farmer.OnItemReceived not taking stacked gold coins into consideration. Any thoughts on this?

uncut viper
wild flax
ornate trellis
lucid iron
summer bobcat
uncut viper
#

yeah. and both get assigned to that networldstate thing depending on the save settings. so im not sure if theres any need to do anything besides using the asset pipeline every step of the way

lucid iron
#

nah as button said you should use AssetRequested to load content to Data/Bundles or Data/RandomBundles

#

this does mean you don't need C# at all and could use content patcher for this

summer bobcat
uncut viper
#

what do you mean add Big Craftables, like as a requirement or a reward? i dont see why you couldnt with content patcher

summer bobcat
uncut viper
#

some of the vanilla bundles already give you big craftables for the reward

#

like lightning rods or crystalariums

#

"Vault/26": "25,000g/BO 21 1/-1 25000 25000/1///25,000g"
seems like the section with BO 21 1 is the part that specifies a Big Object with the ID 21, and 1 of them (so, one lightning rod.)

lucid iron
#

you can get it as reward cus of the Utility.getItemFromStandardTextDescription function in getReward

#

i didnt find out whether the inputs are parsed via this though

uncut viper
#

the bundle modding page on the wiki says only one Big Object/Craftable can be given as a reward though i dont know if thats still correct since the page is rather out of date

drowsy pewter
#

yeah but theyre asking about the bundle requirements

uncut viper
#

oh. i did completely misread that as reward, you're right

drowsy pewter
#

i said no without C# earlier because theres no item type qualifier field in the bundle data

drowsy pewter
marsh wraith
#

okie dokie!!! thanks so much SDVemoteheart

lucid iron
#

to change this you gotta do a harmony patch on Bundle.IsValidItemForThisIngredientDescription i think

ivory plume
#

Hi! Splitting Content Patcher into its own section probably makes sense at this point, since it's 47% of mods now. I'm not sure about the Content Patcher Extensions section though; e.g. there's no distinction between a new framework with one content pack vs an established one like Content Patcher Animations. I think it might make sense to keep those in the lists below, maybe with an indicator in the description if they work by extending content assets?

paper sundial
uncut viper
#

so tryin to trace along all the functions that decide how bundles work, the ParseItemString function that gets called when loading the random bundles does try to parse the requirement item ID, and if it starts with a number, it makes it an Object. but if it doesnt it will do a Utility.fuzzyItemSearch on it, which can return (BC)21 if you put "Crystalarium" into that function, so it might still work for a bundle?

ivory plume
#

Oh, sure I'll add a fix for that in 1.6.9. Thanks for reporting it!

paper sundial
#

Thanks SDVpufferheart

uncut viper
calm nebula
#

yeah

#

you're gonna have fun dealing with JunimoNoteMenu

#

I wish you the best of luck

next plaza
#

JunimoNoteMenu? More like JunimoNoThanksMenu

#

(/s)

#

(At least it's not dealing with farmer_base / FarmerRenderer.... which I had to do earlier...)

calm nebula
#

I would argue that JunimoNoteMenu is worse than FarmerRender

brittle pasture
ivory plume
#

Yep!

calm nebula
#

Although it looks like if you manage to somehow get a qualified item ID into the bundle it should just work?

#

....what happens if you try

brittle pasture
#

also where would SpaceCore go in the "monthly users" section? Core (1000+)?
Admittedly part of the reason I want to split out CP extensions is because it's hard to count those

uncut viper
#

(i was trying to test on my test save but ive been time traveling and debugging so much i cant remember how to fuckin get the community center unlocked)

summer bobcat
calm nebula
#

hmmm

#

I'm not sure why that wouldn't work, actually

#

hmmm

#

yeah, it seems to want to just make the item in question

uncut viper
#

mine appeared as an error item which is like, almost kind of an improvement over nothing—

summer bobcat
#

I just figured out that it works as an item, but the community center doesn't display it for some reason. Very funky.

calm nebula
#

weird

#

might be a scaling issue

#

but that shouldn't be it, one second

#

can someone think of another asset that's 16x16?

uncut viper
#

any object?

next plaza
#

Weapons

calm nebula
#

other than normal objects

#

thank you casey

#

try a weapon

#

but it delegates to drawinmenu

#

also someone go make me vaccuum

#

I need to also start these sleeves

next plaza
#

Roomba mod incoming?

calm nebula
#

roomba mod wouldn't improve my allergies

next plaza
#

😦

uncut viper
#

(whats the prefix for weapons. is it (WP)?)

eternal mortar
#

I keep getting the error: [Content Patcher] Could not load content pack 'Monsters moving in!': content pack has no content.json file. Even though I literally have a content.json file. Anyone got a clue why? Im so lost, thanks!

calm nebula
#

your file is actually content.json.json or content.json.txt

next plaza
calm nebula
#

please enable this option

summer bobcat
calm nebula
#

huh

eternal mortar
calm nebula
#

okay, Cosmic, I'm out of ideas

#

From reading the code I think it should work but I'd ahve to like

#

actually open Visual Stuido to debug more

#

and we're trying to keep the streak of never using visual studio 😛

eternal mortar
summer bobcat
ivory plume
# brittle pasture also where would SpaceCore go in the "monthly users" section? Core (1000+)? Admi...

SpaceCore isn't really a content pack framework, it's a framework for C# mods.

But here are the mod type counts as of August 1st:

count | type
----- | ---------
8,920 | Content Patcher
2,693 | SMAPI
1,512 | XNB
1,204 | Json Assets
  989 | Alternative Textures
  528 | Producer Framework Mod
  429 | Fashion Sense
  297 | Farm Type Manager
  264 | Shop Tile Framework
  258 | Mail Framework Mod
  251 | TMXL
  209 | Better Artisan Good Icons
  177 | Custom Furniture
  154 | Dynamic Game Assets
  106 | Custom Music

(Also it's just a count of released content packs, not monthly users.)

brittle pasture
#

SpaceCore does expose many custom assets for content packs, it just isn't counted as a framework because it doesn't use its own format

ivory plume
#

Hmm, I wasn't aware it had content assets now. I guess we could count how many content packs contain a patch which edits one of those assets? It wouldn't be 100% reliable since they can use tokens and such, but should be pretty close.

brittle pasture
#

Better Crafting and Item Extensions are other examples of framework mods that use the content pipeline for its features

#

I suppose we can count Nexus dependencies?

#

should I yeet JA as well?

next plaza
next plaza
brittle pasture
#

ah cool, wasn't sure about its status
now to count how many users SpaceCore has

lucid iron
#

but the intention of the mod page is recommending frameworks for new modders

next plaza
#

(CP stuff is over half of that)

drowsy pewter
#

i think JA should stay

#

it is sometimes helpful for new modders anyways

lucid iron
#

so JA should prob go in some obsolete but not broken section

drowsy pewter
#

as long as CP comes first and comprehensively lists its capabilities there isnt need to shove JA somewhere else imo

brittle pasture
drowsy pewter
#

thank you selph for working on this!

lucid iron
#

do you think there is room for specialized frameworks like say cloudy skies

drowsy pewter
#

yeah since CP can do most stuff for content pack authors, i feel like counting based on how many mods require a framework may not be useful anymore

lucid iron
#

that one prob won't make it to 100 packs cutoff but it is what you want for weather

drowsy pewter
#

if the purpose of the page is to point new modders in the direction of tools they can use

#

then it should be listed

uncut viper
#

nexus i literally am the author. i am trying to preview my mod page. nexus please.

brittle pasture
iron ridge
brittle pasture
#

might yeet Custom Furniture, Shop Tile Framework and TMXL

brittle pasture
lucid iron
#

Content Patcher section should mention machine

summer bobcat
# summer bobcat It has the same result. No sprite, but it does work.

I think I might have found something for why the non-Object sprites are not showing up. Looking at the JunimoNoteMenu code in the setUpBundleSpecificPage method--which is where I believe the sprites are made at--checks if the item data of the community center object is a type of 'Object', which I do not believe counts for 'Big Craftable' and the other categories. If it is anything other than just the basic 'Object' type, it skips rendering the sprite from what I understand.

ivory plume
#

I'd suggest moving the "Here's a list of software..." paragraph to a separate section like common tools or see also, and we can probably merge the intro bit about Content Patcher into its section since it's the very next section they'll read after the intro.

brittle pasture
#

done!

ivory plume
#

That seems fine to me overall. There's some little tweaks I'd want to do, but I can edit the page after it's posted.

brittle pasture
#

whoops, I can't make the change because my account is too new and it thinks I'm adding external links and making edits that are too large
If you can please take the source in my sandbox and change the page. thanks!

sharp field
brittle pasture
#

not really, FF is its own thing. CF was needed pre-1.6 (like JA)

sharp field
#

Ah. They had different functionality. Ok!

ivory plume
brittle pasture
#

hmm I'll try that SDVpufferthumbsup

ornate trellis
#

man, I am really going crazy getting this dang event to work i am so close in giving up because of some silly temporaryactor

brittle pasture
#

ok that seems to work. I can't move the "list of software" sections to the bottom because then the wiki thinks I'm adding new external links

#

next steps: to add new frameworks I can think of including mine. maybe tomorrow though, gonna take a break

eternal mortar
#

I asked this like an hour ago, but I keep getting the error: [Content Patcher] Could not load content pack 'Monsters moving in!': content pack has no content.json file. Even though I literally have a content.json file. It seems to be named correctly, so could anyone give me possible reasons why? heres what the file looks like, and here is my content.json: https://smapi.io/json/none/3de3c6209a834a8c8c8b0da2865aa43c, and my manifest.json: https://smapi.io/json/none/06dc09890255429880cc51816bbb71c4, Thanks for any help!

lucid iron
#

you enabled extensions right

lucid iron
brittle pasture
#

that looks like Mac? dunno if it has/needs that option

eternal mortar
#

I had no clue that is in responce to me but ill check if I have the option

brittle pasture
#

anyway can you post a log? your post mentions Monsters moving in! but your folder is named [CP] Monsters Moving In, and I don't know if it's because you typed it like that or it really is a mismatch

ornate trellis
#

how do i resize a temporaryactor...

eternal mortar
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on macOS Unix 13.5.0, with 41 C# mods and 39 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brittle pasture
#

ah yeah it's named like that in the manifest. weird, it indeed should work... maybe extra space in the file name? SDVpufferclueless

eternal mortar
#

like a space after content?

#

or the actual [CP] file?

brittle pasture
#

I mean like maybe content.json may have a stray space in its name (like content.json ? idk I'm just pulling stuff out of my butt lol

eternal mortar
#

could this be an issue? with the format type? It always changes whenever im trying to save it again, I save it to JSON when I do save though.

#

atp im ready to fist fight my computer

brittle pasture
#

not sure actually. maybe save the name exactly as content.json and keep the format unchanged?

eternal mortar
#

kk ill try that

wild flax
eternal mortar
#

im guessing either my computer also hates me, or i did something wrong in the content or manifest json

velvet narwhal
#

(did you say yes or no to seeing file extentions?)

#

In the Finder on your Mac, choose Finder > Settings, then click Advanced. Select or deselect “Show all filename extensions.”

eternal mortar
#

yes I turned it on

#

still looks the same as before

#

what is it supposed to do exactly

velvet narwhal
#

it lets you see if it's jsonjson

eternal mortar
#

yeah its still just content.json

velvet narwhal
eternal mortar
brittle pasture
#

what happens if you rename the manifest.json file? maaaaybe the game's not actually loading the mod from that directory somehow (running out of options lol)

eternal mortar
brittle pasture
#

like it's not loading from that directory but some other directory in your mods folder

drowsy pewter
#

duplicate another simple CP mod and copy the code into those files instead?

brittle pasture
#

Anything other than manifest.json, it should hopefully cause it to fail loudly

#

(or not)

eternal mortar
#

alright

#

its limbo.json now

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on macOS Unix 13.5.0, with 41 C# mods and 39 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brittle pasture
#

ok so that at least confirms that is the correct directory. unfortunately that also means I'm out of options
you can rename it back to manifest.json now

eternal mortar
#

kk

#

ill try to figure it out

#

ill probably blow it all up and start over

summer bobcat
#

Is it possible to use Harmony to change a single line of code?

lucid iron
#

yea that's a transpiler

#

should consider whether you reaaaallly need a transpiler before writing one

ornate trellis
#

Ok i went back to the original idea of temporaryanimatedsprite but yet I still dont get it to work. now it jsut does its animation and disappears pain maybe I should jsut give up for now

summer bobcat
lucid iron
#

usually transpiler is required when you want to remove a statement

#

but for that big craftable in bundles thing you can just add a postfix to check right

uncut viper
#

(i think most if not all of my transpilers are for adding statements only...)

ornate trellis
velvet narwhal
uncut viper
#

i think chu is right though i think you can just do what you want with the bundles without a transpiler, but a prefix might be better in this case bc then the stuff will be added before other functions that are called that use em

ornate trellis
#

ugh gimme a moment i am stuck in smapi hell for some reason...

velvet narwhal
ornate trellis
#

i wanted to try one last thing but smapi just doenst load further?

#

oh the sprite is jsut from fishmongers charactersheet gimme a moment

lucid iron
ornate trellis
#

help i think my entire computer is on strike cuz it wants to update so badly

#

there we go

lucid iron
#

the last case is like adjusting draw methods ever so slightly since those dont tend to be in nice singular functions

ornate trellis
#

meanwhile smapi is still loading

#

i have 15 mods enabled

floral portal
#

This is a technical question as I am a beginner. I am currently formulating an idea to collect items based on a “fruit tree”.

#

Is it possible to randomly collect multiple items from the “fruit tree?”

#

I could only find mods already released that drop single items.

brittle pasture
#

yes, you can define multiple drops. each day one item will be picked from a list and added to the tree

#

for an example, see Mount Vapius' Frost Apple tree

ornate trellis
#

shinji I cloned Constance again

brittle pasture
#

it has somewhat complicated logic (if in winter and outdoors, have a chance of producing a frost apple, or a regular apple otherwise)

floral portal
#

I wanted the object to appear on the tree because what I am creating is not a fruit, but an item where butterflies and bees randomly visit a fruit tree.

velvet narwhal
#

forgot to swap mod profiles SDVpufferclueless i'm gonna see if this works: temporaryAnimatedSprite Fishmonger_spritesheet 21 45 16 64 4 10 10 21 45 false false 1f false false false false false/warp Lance 21 44

ornate trellis
#

i didnt get it to work sadly...

#

wait...

#

fuck

#

i accidentally opened CSP

velvet narwhal
floral portal
#

We are still in the process of preparing the object art for the item and will need to prepare the code for how it will work. If it turns out that it is possible to drop random items, that would be a relief at this stage. Thanks!

brittle pasture
#

you can see https://stardewvalleywiki.com/Modding:Fruit_trees for the code reference.
basically Fruit can be a list with multiple models. every day it picks the first item on the list, check if it's eligible, and if not move to the next item. once it finds an eligible item it is added to the fruit tree

uncut viper
#

if you want truly random items you can even just put an item spawn query in there that will spawn a completely random item from all items

floral portal
ornate trellis
#

hmm

velvet narwhal
ornate trellis
#

I

#

Give me a moment i will make a vid cuz idk anymore

inland cedar
#

should farmhand be allowed for CP EditMap? should I add When master only?
"Action": "EditMap", ... "When": { // if is master game }

ornate trellis
#

the animation isnt animating....and despite using the same tile, when i warp her actual self in she is up higher?

velvet narwhal
#

one sec i think i almost have it

#

i'll test with a tempactor of your npc to see if it aligns properly

#

IT DO

#

SORT OF

ornate trellis
#

SDVpufferwaaah im so lost

velvet narwhal
#

ok so you have to load a wholly different temp actor

#

which is that .png i edited

#

addTemporaryActor Fishmonger_temp 16 55 21 45 2

ornate trellis
#

oh my god

velvet narwhal
#

then you place the actual NPC with a warp underneath it with the same 21 45 x coords

ornate trellis
#

so my initial idea wouldve worked if i hadnt used the fishmonger fsdgfhjgdf

velvet narwhal
#

LOL

ornate trellis
#

ok lemme try

velvet narwhal
#

lemme see if i can get it to animate

#

yeah it does animate

#

animate Fishmonger_temp false true 100 0 1 2 3 2 1 change the 100 to whatever amount of time you want it to be

ornate trellis
#

ugh alright.....I still got quite a few things to correct (like the temp sprite not wanting to disappear) but I really gotta restart my comp because its slowing down so hard just because it wants to update...so i gonna update....and snooze a lil and return to this when i wake up

#

thanks for the help so far

next burrow
#

When creating a custom machine, is there a way to specify the additional item as a category rather than an item? I wanted to use Eggs as fuel, so I specified it as -5, but it didn't take effect. (My English isn't great, so I used a translator.)

brittle pasture
eternal mortar
#

I keep getting the error "file contains fields which aren't allowed for a secondary file", should be an easy fix, so does anyone know which fields aren't allowed?

brittle pasture
#

I think Format is one?

#

you can only put Format in the main content.json

eternal mortar
#

I dont think I have any format ones? one sec, let me get a copy of the file

rancid temple
#

ConfigSchema and DynamicTokens also not allowed in secondary files

uncut viper
#

doesnt the error also say which field its catching on

rancid temple
#

You can use them elsewhere, but not set them up outside of the content.json

#

Errors will generally point you in the right direction if not flat out tell you where/what is wrong

eternal mortar
#

let me load it again

#

oh yeah it says (format) lol

#

this is dumb but what kinda stuff is format?

rancid temple
#

Format is the field that tells CP what functionality it wants to use

uncut viper
#

its the line that just says "Format": "2.3.0" (or possibly just 2.0.0)

eternal mortar
#

oh duh

uncut viper
#

it helps CP figure out what kinda migrations it may need to do i think and probably some other things

eternal mortar
#

thanks!

hollow hazel
#

my mods done! im so happy!

summer bobcat
#

Can you use private methods in code using Harmony? Like in my patch, I want to use private methods from the code I am patching from, but it seems like I am only able to use public methods.

summer bobcat
#

Is it possible to use the SMAPI helper class while doing harmony patches, or would I have to use base C# reflections for it? I don't think either the helper class or 'this' can be accessed in the harmony patch thing, or at least how I formatted it.

brittle pasture
#

that article contains a bunch of more useful injections, including the return value so you can change that

glass turret
#

New Modder Question

So I have a small question about modding. I do some game dev myself on the side but coding is tricky, so I thought I'd use modding to wrestle with it.

Something I'm wondering is if there's a way to add an item that let's you select, say, folder 1/2/3, with each folder being read as a different pack for, say, UI, or tilesets.

IE, load up your 'assets' into the file, and it automatically overwrites the other assets based on what you've picked (or default)

I know this can be done manually by switching out the packs in the mod folder, I just was curious on how easy ya'll think it might be as a mini project, or if there's a simplier modding project I should start with, of which I don't know what that would be since I really only recently started digging around the code.

#

(Idea would be using the Mod Config menu probably instead of an item, but I digress)

brittle pasture
glass turret
#

So the basic idea is I want to take UI Interface Assets, load them into like 2-5 folders, and then run something like above

brittle pasture
#

yea. Then you add a new config option that allows the user to change the value of the {{folder}} token

glass turret
#

Basically instead of having to delete mods and add new ones in every time you want to change the interface, you just load like five of them in their own subfolders and pick in the config menu

glass turret
#

One last thing although this is definitely going to be a little more complicated I'm sure

But like, would there be a way to check if there's a folder in that subfolder that matches the season name, and if it doesn't match it's just uses what files are already there, if it does match it pulls the files from the season folder?

Figure that one would be a fair bit more complicated, but otherwise I'm not sure

#

Just thought I'd be a neat idea to ask either way though

uncut viper
glass turret
#

Oh, damn, fancy

uncut viper
#

FirstValidFile and HasFile specifically

glass turret
#

Amazing

#

So not about this mod but mods in general, do any of you modders add this stuff to resumes in any sense or is it just random shit on the side?

uncut viper
#

im sure some people have resume worthy mod projects on their github but i am not one of them

glass turret
#

I doubt I will be, I just thought it'd be interesting to ask

brittle pasture
#

on the other hand (personal anecdote, no warranties, etc.) most tech recruiters probably will not bother to check
and most tech interviewer would not care (or if anything they'd like it)

glass turret
#

Makes sense

brittle pasture
#

to clarify, I meant "not bother to check/care if it's resume worthy in your opinion".
I'm very much in favor of putting your personal/mod projects in there (if there's space, and if you can talk up a little fluff)

glass turret
#

Nice

#

So I'm looking at the metadata page and-

How do I set up letting a player pick a number from 1-5 in the Mod Config Menu and, from there, have the game pull the assets from that folder, but if the named asset isn't in that folder it pulls from folder 1 (which I'm using as a 'default' look, but can also be edited if the person desires)

#

Like, this is what I have so far, but I'm not sure how to convert Number X (mentioned above) to {{folder}}

        "Action": "EditImage",
        "Target": "LooseSprites/Cursors_1_6",
        "FromFile": "assets/{{number}}/Cursors_1_6.png",
        "PatchMode": "Overlay",
    }```
#

Do I use a variable, which makes the most sense, in which x = input and "assets/{{x}}/Cursors_1_6.png", or are variables with #C (I heard that's what Stardew uses) too different from JS (which is what I'm used to) and need a different format for em?

brittle pasture
#

add a config option for number, with possible values 1,2,3,4,5, and content patcher should substitute that in for you in the FromFile field

glass turret
#

I don't think I saw that in the MetaData but I'll dig some more

brittle pasture
#

As for "if asset not in folder fallback to default" check out the FirstValidFile token Button linked above

old edge
#

In the decompiled code Is there a removeBuff method still?

glass turret
#

Sweet, I think I still have that one open, I've been skimming through a bit, just going slowly

Thank, and sorry for all the questions

brittle pasture
old edge
#

Thanks I found the snippet

brittle pasture
#

also you might want to set Format to "2.3.0" (matching Contemt Patcher's current version) to avoid problems later

glass turret
#

so it has a section that says I can add description, but it doesn't say or show how.

Do I use // description "xyz" (for section they have // x section or is there a different method?

glass turret
brittle pasture
#

So config name and descriptions are handled in the i18n

glass turret
#

... the what? 😅

brittle pasture
#

See the "Translations" section of the link above

glass turret
#

ohhhh

I guess now I'm wondering why it got bundled with the sections code then

#

Got it config.<name>.description

#

... I just realized...

Using 'first valid file'... I could let the player make as many folders as their computer could handle, and let them type in the folder names, instead of restricting it to just 5

😂

#

Of course they'd have to type them in accurately...

glass turret
#

So it's not loading in Generic Mod Config Menu, or SMAPI.

I have a Manifest FIle (altho I might have messed something up?)

And the Content File (which, again, I might have missed something in it)

And according to the website, the File has the right name...

#

(I looked through both pages I was linked to, and I'm still not sure why it's not working, unless there's something specific I need to add to interface it with the config menu, which Imma be digging through some of the other packs to check on)

#

so adding "ContentPackFor": let it show up in SMAPI but not the config menu

uncut viper
#

ContentPackFor is required for all non-DLL mods and should be set to content patcher for this. but also I would highly recommend a text editor that will validate your json for you or looking in the console for errors because the content.json you've shown is not valid json

glass turret
#

alright I'll see if I have a program that will work for that

uncut viper
#

vscode is often recommended

#

notepad++ can work too with validation plugins

#

smapi.io can also be used to check your json but obviously having it in your editor is better

glass turret
#

Yeah I got VS installed, says there's 8 errors apparently? 😅

#

Honestly forgot I had it installed until I looked it up

#

Issue is I can't figure out what the problems are 😅

#

Time to dig through the other content packs and pray

uncut viper
#

vs should tell you what the errors are I imagine but from what I noticed you're missing commas and "AllowField" as a line by itself doesn't make sense

#

Er

#

AllowBlank

glass turret
#

Ah

#

It didn't show an example for how to use "AllowBlank", I'll just use 'Allow Values' then

uncut viper
#

it's a field, it needs to be formatted like any other field

#

"AllowBlank": true,

glass turret
#

ohhhh

Okay

Thank

#

Do I have to include an 'allow values' with that or can it work without it? IE, would it just read the folder and add selections based on that or what? Trying to make it user friendly I suppose 😅

uncut viper
#

it won't read anything from the folder. you can either specify allowed values or let the user write in any value they want

glass turret
#

Okay cool

latent storm
#

Hi All. Author of Forage of Ferngill and Grapes of Ferngill here.

Thank you to those who reached out to me over the last few months. I have been having a lot of troubles with my mental health this year, which has now caused me to lose my job. I am doing better with Medication and Therapy, but am a long way from being able to return to modding.

I am looking for someone who wishes to take caretaker over my mods. It can be a simple maintenance ownership to ensure it works with updates and gets bugs fixed, or expand their own vision.

If you are interested in this, please drop me a message here or on Nexus Mods and we can have a chat about what I had planned, can provide any in dev bits and bobs and chat about what you would like to do.

Please share this to anyone who may be interested.

hallow prism
#

oh, sorry to hear things got worse. I am relieved to know that you got some things helping you at least, and wish you a good recovery. I hope you'll find someone to take care of your mod in the meantime (and if i think of someone i'll let them know)

slow prism
#

Hi there!

Are there any resources that would help me start out with creating mods? Specifically: creating a mod that would add furniture to the game.
I'm a C# (web)developer, so that should help, but I'm very unfamiliar with game development and would love a helping hand or guide.

This is just a personal project, nothing I'm planning to put out in public 🙂

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

paper sundial
slow prism
#

Thank you!! That's exactly what I needed. I got a little overwhelmed with the amount of information available lol

paper sundial
#

!unpack

ocean sailBOT
#

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

slow prism
glass turret
#

Hey so how does everyone do those enable-disable mod things in the config menu? This is all I've got RN

unreal spoke
#

You can just do "When": {"Enabled": true}.
(Forgive the shitty formatting – I’m on mobile.)

glass turret
#

Ah

#

Thank!

velvet narwhal
#

hasvalue: enabled: true is when you're trying to use the command again for an additional requirement

glass turret
#

Alright

#

Changing it to when false, but then how do I use that to turn off the mod?

velvet narwhal
#

if you mean setting it to a config that's just the name of your token, and whatever values you used for "false"

#

sorry i can't brain one second

#
    "Action": "Include",
    "FromFile": "data/Weddings.json",
    "When": {
        "Relationship:Lance": "Engaged",
        "Custom Wedding": true
    }
},```
custom wedding is my config name
glass turret
#

So basically I've seen other mods where they have an 'enable' switch for the mod itself, and if it turns off the game runs default files instead of modded files

velvet narwhal
#

yeah using gmcm you had the above link for it

glass turret
#

Yeah I saw that, but I couldn't figure out how to set the actual Action

velvet narwhal
#

well all of my files are separated, a user can turn off my custom wedding by using gmcm by setting the custom wedding to false:

    "AllowValues": "true, false",
    "Default": "true",
    "Section": "Content",
    "Description": "Changes and mutes the original wedding event, adds Camilla in, moves it to Fable Reef. Specific to Lance. Turn this off if you're not marrying Lance."
},```
glass turret
#

Ah nice

velvet narwhal
#

basically as soon as the "custom wedding" is set to false, it refuses my include code

glass turret
#

Alright

velvet narwhal
#

you can do it that way or set the when condition to all of your changes, either works, but for ease of access i just slap them onto my include actions

glass turret
#

So like this?

And then how would I wrap the rest up in the Include?

velvet narwhal
#

SDVpufferflat also i woke up to one of the most jarring bug reports

glass turret
#

Damn

glass turret
#

Oh sweet

#

Thank

velvet narwhal
#

i should know better than to leave it to user discretion, so i, have to use the multi: true for my when condition

glass turret
#

Ah

velvet narwhal
#

basically what you can do if you do want the "turn the whole diggity off" is make your content.json only your configschema, include, and dynamic tokens

glass turret
#

And then throw the actual information into the seperate files?

velvet narwhal
#

i'd make the {{folder}} the actual folder name since you don't have a target for it to reason

#

and yes

glass turret
#

Actually- I do have a reason for {{folder}}

#

Each {{folder}} is intended as an asset pack

velvet narwhal
#

ah

glass turret
#

Yeah

velvet narwhal
#

did you make {{folder}} a dynamic token then?

glass turret
#

It's a mod to load asset packs (intended for interfaces) so you can swap between them easier rather than closing the game and taking 5-10 minutes to swap your mods

velvet narwhal
#

then nevermind my earlier comment

glass turret
velvet narwhal
#

oh for...... saving your buns, i would just assume everything is caseSensitive

#

a lot of things did get the caseSensitivity nuke, but i'm pretty sure dynamic tokens are going to forever be caseSensitive

glass turret
#

Yeah I been doing that for most of it, but thank, it's good to remember

velvet narwhal
#

SDVpufferpain time to debug if my wedding code is overwriting even though i'm not engaged to the npc

glass turret
#

Oof

#

Hope it goes well

velvet narwhal
#

it used to fall solely on user configs, but i realized i've forgotten my first teachings of code: people don't read

glass turret
#

Ah

#

Also the having to use Other File helps a lot, I was wrestling with how to reconcile the Asset Pack differences 😅

cinder thorn
velvet narwhal
#
    "Action": "Load",
    "Target": "data/Weddings",
    "FromFile": "data/Blank.json",
    "Priority": "Low",
    "When": {
        "Relationship:Lance": "Engaged",
        "Custom Wedding": true
    }
},
{
    "Action": "Include",
    "FromFile": "data/Weddings.json",
    "When": {
        "Relationship:Lance": "Engaged",
        "Custom Wedding": true
    }
},```
#

i don't think i read the custom wedding code while i was working on this thing and i haven't touched it since release of my mod

cinder thorn
#

I see, I was wondering if there is any mod that add an NPC-exclusive wedding event

velvet narwhal
#

i might come back to it, since i couldn't get the stupid [[spouse]] token to work properly and had to hardcode it to Lance

glass turret
#

HEH
Nice, it's helpful

velvet narwhal
#

rude, thank you computer, but a lot of people apparently want a beach wedding SDVpufferpain

cinder thorn
#

There's a 1.6 new function that add exclusive event for specific NPC without spouses token

glass turret
#

Now you got me thinking of Ginger Island

#

And nice

#

Testing interface plug, wish me luck 😅

velvet narwhal
#

thank, i was digging for it

#

uh, maybe by pure instinct i did it but i had to overwrite the original wedding?

glass turret
#

Ouch

cinder thorn
#

Oooh

velvet narwhal
#

i have no idea how to make it contextualize to specifically one bachelor

glass turret
#

So no crash, but the stupid interface stuff doesn't load? Does anyone wanna take a peek?

glass turret
cinder thorn
#

Hmm how do we actually add a new entries to targetfield again?

#

Replace default with Lance perhaps?

velvet narwhal
#

i think it screamed at me when i did that, but i can do that after i test this

glass turret
#

dang

velvet narwhal
#

this was also my coding prior to even understanding how a trigger action worked, so y'know, it's on my todo list

glass turret
#

Ah

#

Yeah, this is my first time modding

#

It was working, until I added the enable/disable, but the issue is I still needed to call .json for the other packs, and I wanna make it as user friendly as possible without too much editing of the packs anyone adds in

#

😅

velvet narwhal
#

okay

#

it is me

#

why is it me

cinder thorn
#

Is it working?

velvet narwhal
#

no i got the bug to repro

#

i married maru but my beach wedding appeared, i have custom weddings set to true, but it ignores my relationship condition

#

why is it ignoring my relationship condition

#

i'm now gonna test if changing default to Lance will work

velvet narwhal
cinder thorn
#

You can now ditch Lewis

#

(i think)

velvet narwhal
#

well i just put lewis there cause the original has literally every villager

#

i might move the viewport n stuff but for now that's on the backburner, i'm just confused as to why my when:relationship condition didn't take for my include

cinder thorn
#

For the Attendees I wonder if we can just put the NPCs in like normal events instead of using SetupContextualWeddingAttendees or ContextualWeddingCelebrations

velvet narwhal
#

i wonder if it works like playerControl where i can set a name?

#

digs into the decompile

#

oh wait i should repro if i turned off the config

cinder thorn
#

So instead of like setting up NPCs like this: /farmer 27 63 2 [SpouseFarmerText [EscapedText] [EscapedText spouse 28 63 2]] Lewis 27 64 2 otherFarmers 29 69 0[SetupContextualWeddingAttendees]/ we can do /farmer 27 63 2 [SpouseFarmerText [EscapedText] [EscapedText spouse 28 63 2]] otherFarmers 29 69 0 Wizard ... Camilla .../ like setting up NPC in an event

velvet narwhal
#

oh that's what i originally had

cinder thorn
#

Is that working

velvet narwhal
#

but i got confused

#

yeah it worked, but i preferred the attendees function

cinder thorn
#

Oooh, for conditions?

velvet narwhal
#

mainly because then, i didn't have to set their move pattern

#

i didn't have to do separate cases of move <npc> in my event code, and could just tell the "attendees" to do the celebration actions

#
switch (ArgUtility.Get(query, 0)?.ToLower())
{
case "spouseactor":
    replacement = spouseActor;
    return true;
case "setupcontextualweddingattendees":
{
    StringBuilder sb = new StringBuilder();
    foreach (WeddingAttendeeData attendee in contextualAttendees)
    {
        sb.Append(" ");
        sb.Append(attendee.Setup);
    }
    replacement = sb.ToString();
    return true;
}
case "contextualweddingcelebrations":
{
    StringBuilder sb = new StringBuilder();
    foreach (WeddingAttendeeData attendee in contextualAttendees)
    {
        if (attendee.Celebration != null)
        {
            sb.Append(attendee.Celebration);
            sb.Append("/");
        }
    }
    replacement = sb.ToString();
    return true;
}
default:
    replacement = null;
    return false;
}```
i don't... think there's a way to append this to have celebrations_NPCname
cinder thorn
#

I see, I have an NPC that their wedding should be only them and the farmer, so I was wonder if we can just ditch these fields

glass turret
#

Hey quick help-
The file says there's no errors, but I'm struggling with the file stuff apparently

But I thought I followed the thing pretty well?

velvet narwhal
#

honestly you can ditch them

#

i put them in because i'm lazy

glass turret
#

Fun

velvet narwhal
#

one second

cinder thorn
#

Why is your content.json inside asset

velvet narwhal
#

oh you're trying to include your content.json, it's already included lmao

cinder thorn
#

It needs to be in the same folder of manifest.json

glass turret
#

Oh so they have to be rennamed

#

No it is

#

Hold on-

velvet narwhal
#

includes must only have the changes commands

cinder thorn
#

You have 2 different content.json?

velvet narwhal
#

lol

cinder thorn
#

Then the one that you included should not have Format field

#

Because it's a secondary file

glass turret
#

Setting up what's intended to be a user-friendly way to switch assets without having to exit Stardew and spend 5-10 minutes changing out UI mods

velvet narwhal
#

if you're changing your dynamic tokens, you unfortunately have to close and reopen

#

if you're just doing .json edits, it's patch reload uniqueid

glass turret
#

It was working before when it was all in one file, just seperating it out is causing a pain

velvet narwhal
glass turret
velvet narwhal
#

if it's an included file, you can only use "changes"

#

time to debug even if i turn off my config if it still repros SDVpufferpain

glass turret
#

Thank

velvet narwhal
#

[X] | [X] | [ ] | | Include data/Weddings.json #1 but it still forced-- wHAT

#

okay whatever, i got my fix, i guess for some reason "Includes" are ignoring my when conditions

vast rover
#

the recipe for my mod looks like this for some reason

#

help

velvet narwhal
#

....... i'm dumb, my wedding.json was in my list of includes

#

i'm gonna go annoy my cats

hallow prism
rancid temple
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files, often 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.

hallow prism
#

ah yes, the comma

#

the downfall of modders

rancid temple
#

A personal attack by proper punctuation

vast rover
rancid temple
#

Use the link gov posted

#

Upload your json and send the link here

vast rover
#

sorry my brain is half asleep

hallow prism
#

there is no rush

vast rover
#

what json do i upload

rancid temple
#

Content unless you're using Include in which case wherever you're doing the pertinent code

vast rover
#

oh wait

rancid temple
#

Same thing, still not the recipe data

vast rover
#

OH WAIT

rancid temple
vast rover
#

i should prob drink coffee

rancid temple
#

Is the problem that it's not unlocked or that the image is different than expected?

glass turret
#

How do you set a dropdown menu instead of the slider bar?

vast rover
#

both image are a problem and the nori is supposed to be default

rancid temple
#

Sorry, I gotta run, but if someone else can't help before I get back in like 30-40 minutes then I'll be available again

glass turret
#

Oki

hallow prism
#

post your tilesheet here? the imags for the dishes? and how you're loading them too?

vast rover
#

this the image for the dishes

#

i dont see anything wrong with it tbh

velvet narwhal
#

by default, i think numbers are automatically detected by GMCM to become a slider, so you'd have to write your choices in a string? i don't know how to correlate between number string and number slider though

glass turret
#

Ah

#

Thank!

drowsy pewter
#

your image isnt showing up because its huge

#

its only showing the corner of something

vast rover
#

wait how big is ti supposed to be?

drowsy pewter
#

you should be comparing your artwork to images from the game files

#

its supposed to be 16x16

#

looks like you tried to copy a wiki image

#

!unpack

ocean sailBOT
#

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

brittle burrow
#

hello, i'm a new farmer and new member in here. i wanted to make some male farmer outfit but i have no idea how to make outfit mod. is there any tutorial how to make that?? sorry for bad english

hallow prism
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 burrow
brittle ledge
#

!fs

ocean sailBOT
#
Fashion Sense

Fashion Sense is a framework mod that allows modders to create static or animated clothing, hair, accessories, and shoes that can be accessed through a special in-game menu. To access this menu, players will need to obtain the Hand Mirror from Pierre's Shop. The framework supports multiple content packs and also adds the ability to save, load, and export custom outfits.

Mod Users: Install Fashion Sense as well as any desired content packs. Content packs can be found by searching Nexus, or for an interactive list, click here.

Mod Authors: Instructions, tutorials, and tips for creating FS content packs are available on the mod's wiki.

pine elbow
#

Hey guys, I've installed a few mods for a more immersive friendship building but now with how many sources of it there are, it feels like the friendship fills up too quickly. Is there a mod that increases the cost of one heart? (like making it not 250 friendship points per heart, but 500 or something like that)?

calm nebula
pine elbow
#

alright, thanks!

calm nebula
#

(I will tell you it's unlikely that someone made each heart 500 points simply due to how friendship points work in game, but it is trivial to cut friendship gain in half.)

ornate trellis
#

I am still struggling with my event and TemporaryActor...I want to get rid of it but neither removeTemporarySprites nor removeSprite <x> <y> work, what is up with that?

brittle ledge
#

If it's a temp actor, can you just warp them off screen like a regular NPC?

ornate trellis
#

huh, I have not thought about trying that actually

#

btw is there a way where I can make them warping offscreen and the actual npc warp into the spot at the same time to make it seamless

rancid temple
#

Can you warp the NPC in behind the actor and then warp the actor out?

ornate trellis
#

yeah but theyre not facing the same direction

#

when i warp them in they look up but the temp is looking down

#

yeah i fear its not working

#

This is so frustrating that I am so close in jsut giving up having her fish and instead jsut stand there doing something in normal 16x32 size or something

velvet narwhal
#

oh i used addTemporaryActor and it let me underlay the actual NPC underneath

#

there's a teeny tiny part where you can see the actual NPC "breathing" but i mean

ornate trellis
#

yeah but the temp wont leave

#

thats the biggest issue

#

i cant even warp it offscreen

velvet narwhal
#

weird SDVpufferpain

#

in terms of the "npc not facing the same direction" do the facedirection npc before the warp in and it should settle itself

#

what did you name the temporary actor?

ornate trellis
#

TheFishmonger_temp

velvet narwhal
#

and doing warp TheFishmonger_temp doesn't let you touch it?

ornate trellis
#

tbh idc about the facing up too much if just the temp sprite would effin leave

#

wait

#

hol a minute

#

IT WORKS

velvet narwhal
#

🤝 void and i misreading code

ornate trellis
#

stupid freaking case sensitive bullshit

velvet narwhal
#

i've just assumed all event code will always be caseSensitive

ornate trellis
#

tbh the slight misalign isnt that noticable

ornate trellis
#

my fingers are already busy enough trying not to typo too much

velvet narwhal
#

i have been screamed at one too many times by smapi for my soundIDs

ornate trellis
#

i need to spice this event up somehow

#

they jsut talk and spoiler....finally make up

#

but i feel like its a lackluster event if they jsut talk it out

velvet narwhal
#

shake NPC <duration>/emote <npc>/textabovehead {{token}}

#

that's what i get away with all the time

ornate trellis
#

i also need to fix the bubbles because half of them display the wrong thing lmao

velvet narwhal
#

positionOffset <npc> <x> <y> and maybe the shove sound effect, and maybe if the sprites have the hand out bit i do that too

ornate trellis
#

the X is supposed to be ... and the heart should be a !

#

clearly need a better music than ocean tho

velvet narwhal
#

i don't know if constance is romanceable so i don't know if the 6 heart should have a cusp

ornate trellis
#

she isnt

#

the 6 heart event is a big change event tho since she makes up with wily and then finally attends festivals (which i also gotta change the dispo to account for that and code festival positions blah blah)

velvet narwhal
#

oh ok, so that's the slightly-above-midpoint of the friendship, so you know the npc as a friend but not a "good" friend, maybe a walk off stage, scene change? idk honestly this is how i think of my events

ornate trellis
#

yee i saw it as a og farmers been cool and tbh this whole thing is siblings somehow growing apart but not really resenting each other and then 8 and 10 gonna focus on her and another npc i am gonna add as the finale basically

velvet narwhal
#

SDVpufferthink short backstory maybe?

ornate trellis
#

(which is why i didnt have her past 4 hearts events so far, ive always been planning the story to be this but didnt have time to do it all earlier)

#

wait lemme try sum up what i have for the heart events so far

velvet narwhal
ornate trellis
#

oh yeah right i keep forgetting that exists

brittle ledge
hallow prism
#

i should really do what some modders do with a comment with all the useful stuff like //emote x = 8 and whatever

glass turret
#

Hey so I can see a FarmhouseUpgrade token, but I can't find one that checks tool upgrades.

Anyone got something for that or is it somehow not checkable?

ornate trellis
glass turret
rancid temple
#

Not sure tool upgrade level is important enough to have a mail flag or a common enough thing to need a token

glass turret
#

Then maybe skill level is better to go off of

#

Bleh

hallow prism
#

i know some stuff like shop can check on tool level, but i don't believe there's a GSQ for that

velvet narwhal
hallow prism
#

(?)

velvet narwhal
#

instead of it being numbers being flat emote <npc/farmer> heart or something

hallow prism
#

(you mean, stuff like emote sadness rather than emote numberidon't remember?

#

i wondered about having emote ! but it would mess with some stuff, but it's kinda what i want instinctively to write 😄

velvet narwhal
#

yeah true, i think i'd still write out "exclaimationmark" or "exclaimation" tbh

hallow prism
#

(it also would work for like, 3 emotes at best, so... 😄 )

velvet narwhal
#

true SDVpufferflat

lucid iron
#

event script mod that let you type the emoji unicode instead

velvet narwhal
#

i will cry

#

i barely remember the unicode for the character used in my real name

glass turret
#

So I found Tool Flags/Data things but I'm not entirely sure how to use em to check levels.

Anyone got any tips, throw em at me please and thank you

#

All I'm trying to do is see if I can display a different UI style based on tool level, or somethin similar

lucid iron
#

im unsure what you what to do here think

glass turret
#

So I thought it'd be cool to show progression through the UI

Start out with a UI based on the Iron tools, and with your first upgrade get a Copper UI, then Gold, then Iridium

lucid iron
#

ah hm, but tools are merely items

glass turret
#

Yeah, and I saw a few object flags, but the only proper item flag I could find was for fish in the metadata thing

lucid iron
#

i dont think they set any kind of mailflag on upgrade that can be globally accessed

#

but PLAYER_HAS_ITEM gsq should work?

glass turret
#

I do have Tools.json pulled up, but I'm not sure how to pull a 'has item' tag, which I'm pretty sure would be the easiest method, but I dunno

#

Ah

#

Is it all caps or?

And is it Has_Item_X or Has_X?

lucid iron
#

PLAYER_HAS_ITEM Current (T)MilkPail

#

this one is vanilla example, from marnie shop

glass turret
#

nice

lucid iron
#

(it's got a ! in front that i omitted because that's negation)

glass turret
#

Ah

lucid iron
#

GSQ means game state query

glass turret
#

thanks!

#

You been pretty helpful

#

So... "Query: "Copper Axe" = true looks like

brittle pasture
#

if the player has no iron/gold/iridium tool in their inventory would the UI revert to the base look?

glass turret
#

I'm not sure

#

Might just make it so that the player unlocks the UIs (???) and can pick the one they like best?

#

If that's the case

#

And... apparently that isn't right either

lucid iron
#

oh u need : there

glass turret
#

It flags that too

lucid iron
#

but yea it doesn't look like PLAYER_HAS_ITEM checks for chest contents

glass turret
#

But thank

#

Unlock it is then

brittle pasture
#

then the mailflag will remain set even if the player stashes all their tools

glass turret
#

????? I literally just started modding yesterday 😅

#

That sounds like a great idea but please help me understand what you said

lucid iron
#

have you looked at Data/TriggerActions in the unpack

glass turret
#

(I get the Flag part, still can't figure out 'has tool', and how do you set the trigger to only happen once daily?)

I've been slowly going through the unpack yes, looked at Data, I'll double check that one

#

So looks like I have to go through a "Trigger": Item Has

#

But probably have a var set so it can't downgrade?

lucid iron
#

so what selph suggest is adding an entry like this to TriggerActions

  {
    "Id": "Mail_{{ModId}}_PlayerGotCopperAxe",
    "Trigger": "DayEnding",
    "Condition": "PLAYER_HAS_ITEM Current (T)CopperAxe",
    "HostOnly": false,
    "Action": "AddMail Current {{ModId}}_PlayerGotCopperAxe received",
    "Actions": null,
    "CustomFields": null,
    "MarkActionApplied": true
  },
#

then in the places where you do UI modifications, you chan check the flag

#
"When": {
    "HasFlag": "{{ModId}}_PlayerGotCopperAxe"
}
glass turret
#

Could I add that not to Trigger Actions but to the mod itself?

#

Have it all in one package or somethin?

lucid iron
#

you can edit multiple things in 1 content patcher mod

glass turret
#

Thank

lucid iron
#

hm i wonder how you would make sure that higher level flags override lower bolbthinking

#

though perhaps it's not important and u just do EditImage in order of lowest to highest

velvet narwhal
#

yeah the easiest way is just to set priority

glass turret
#

Have it read for Iridium first and such

lucid iron
#

nah the other way around, have it apply iridium patch last

#

so that it's changes overwrite the other levels

glass turret
#

Right

#

I'm used to JS and RPG Maker, which you can do deep branches

lucid iron
#

content patcher doesnt implement procedural stuff, if you want you could do this in C#

#

a bit overkill perhaps LilyDerp

glass turret
#

So instead of action 'addmail', what if I action 'set variable'? How would I go about that? I know JS uses var $item = 5, but I'm not sure about JSON

#

I've heard it's similar to JS, just weirder, but no clue

rancid temple
#

Json is just a data holder

#

It's like a fancy text document

glass turret
#

Makes sense

rancid temple
#

So you can only put things inside it that CP has accounted for

#

Or whatever mod you're making a content pack for anyways

glass turret
#

It's just a UI remake

lucid iron
#

ya its not a programming language, just inputs for a mod (program) named content patcher

glass turret
#

Makes some sense

#

I just need a way to tell what's going on in-code so that the right stuff triggers

rancid temple
#

If you can parse C#, you can decompile the game

#

Otherwise, looking at what's available on the wiki is gonna be your best bet

lucid iron
#

there's some debug commands you can use for game state query testing

glass turret
#

RN this is about what I've got, it should work? Maybe?

lucid iron
#

oh no you can't use Action/FromFile in the trigger actions bolbphase

glass turret
#

That's why I was wanting to wrestle a var situation

#

😅

lucid iron
#

i am unsure how to explain this to you without explaining the whole of content patcher think

rancid temple
#

Well, you can use Action, but not Include

glass turret
#

I'm about to just pull a "when": "PLAYER_HAS"

rancid temple
#

Trigger actions have Action or Actions, depending on how many you want to do, though you can do a single one from Actions so I just use that

glass turret
#

And hope it works

#

And ah

lucid iron
#

here's a example of a mod adding trigger action

        {
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModId}}_MatchaRecipe": {
                    "Id": "{{ModId}}_MatchaRecipe",
                    "Trigger": "DayStarted",
                    "Condition": "PLAYER_HAS_MAIL Current OlgaSOLetter Received, !PLAYER_HAS_COOKING_RECIPE Current Matcha Latte",
                    "Actions": [
                        "MarkCookingRecipeKnown Current \"Matcha Latte\""
                    ]
                },
                "{{ModId}}_TotemRecipe": {
                    "Id": "{{ModId}}_TotemRecipe",
                    "Trigger": "DayStarted",
                    "Condition": "PLAYER_HAS_MAIL Current AguarSOLetter Received, !PLAYER_HAS_CRAFTING_RECIPE Current Warp Totem: Ridgeside",
                    "Actions": [
                        "MarkCraftingRecipeKnown Current \"Warp Totem: Ridgeside\""
                    ]
                }
            }
        }
#

the top level Action/Target/Entries are for content patcher

rancid temple
lucid iron
#

and stuff under Entries is for game data, i.e. what you are hoping to add

glass turret
#

Alright thanks

rancid temple
#

With C# you could add custom actions and triggers, I know SpaceCore adds some extra ones though I don't know what they are off the top of my head

glass turret
#

Alright

lucid iron
#

despite the name including mail, there's many hidden mail that get used as boolean flags

glass turret
#

so if hasmail, got it

#

assuming 'recieved'?

lucid iron
#

i forgot the final arg earlier, should have been AddMail Current {{ModId}}_PlayerGotCopperAxe received

#

and need one for each tool + level

glass turret
#

Alright

#

Could I set it like this? Multiple tool types but any iron tools flag iron mail, copper tools copper mail, etc? I wanna assume yes but I also don't want to crash anything

rancid temple
#

Should be fine, outside of your mod failing it's hard to crash the game with CP

glass turret
#

Great

#

I'm skipping steel 😅

#

Oh well

lucid iron
#

you prob dont need one for base axe cus everyone gets that at begining of game

glass turret
#

Probably, mostly just putting it there for copy paste reasons

hallow prism
#

asking for a mod, what is a greeting/salutation that is a bit formal?

#

like you knock on someone door and salute them but you aren't friend

brittle ledge
#

Good morning/afternoon?

hallow prism
#

so, actually YES BUT

#

event can trigger at different time

#

so i wondered if there was like, something else that would avoid me dealing with "they said afternoon and it was 11h50, immersion ruined"

#

(and maybe more formal)

lucid iron
#

Salutations

uncut viper
#

is it a first meeting?

hallow prism
#

no, they know each other but the situation is more formal than previous interaction

uncut viper
#

maybe just "Hi, good to see you again"

gaunt orbit
#

yeah I'm not sure english has any semi-formal time-neutral greetings

vernal crest
#

Greetings

hallow prism
#

shake fist at sky

#

english, betraying me again

vernal crest
#

Could include an action of shaking hands. That's quite formal.

gaunt orbit
hallow prism
#

(i may go with greetings or salutation)

uncut viper
#

greetings and salutations to me are more than a bit formal

gaunt orbit
#

yeah shaking hands is the usual thing

uncut viper
#

yeah what wren said

vernal crest
#

Lol yeah greetings and salutations are weird, not formal.

hallow prism
#

thanks for the context 🙂

vernal crest
#

I'd go with "Hello, nice to see you again" and a handshake if I was doing it.

#

Or "Hello, I hope you're well" or something

hallow prism
#

well, to give context, it's a ||character that is not good at social thing and have to give another character some official document and they aren't AT ALL comfortable, so a bit of weirdness is ok in the end)||

uncut viper
#

do people usually handshake when they've already met though

vernal crest
#

They do in business situations, yeah

velvet narwhal
#

"Pleasure seeing you again" ?

uncut viper
#

if it's business, sure, though business isn't just a "bit" formal either

vernal crest
#

||If they're uncomfortable they might be less likely to be formal and more likely to be like "uh, hello. Um, here" /shoves papers towards character/||

uncut viper
#

if it's some social awkwardness I'd might even find "Good day" better personally

velvet narwhal
#

oh wait if you wanted them to be || awkward you could just put in the good morning/evening with a backpedal of like, "that's not the correct time intonation" ||

uncut viper
#

if you knew when the correct time was though you could just use the right one

#

the problem was knowing when the event was gonna be triggered

velvet narwhal
#

yeah fair SDVpufferflat

uncut viper
#

i mean you could do a dynamic token that updates on time changed but y'know

hallow prism
#

i want them to be formal because they are doing something both stressful to them and the person they speak to, so formal is quite a defense so to speak

#

yeah i could, but 😄

uncut viper
#

the less time changed updates the better and all that

#

wait can't you do a GSQ dialogue command thingy

#

like "if GSQ is true say this, if not say that"

vernal crest
#

Yeah you can

hallow prism
#

yes, but i keep that for fun things 😄 this one i find tedious

#

(and yes it works in events too, it's pretty cool)

uncut viper
#

that would make it possible to get the correct time of day though

#

roughly

hallow prism
#

and about a court thing, what is the word, summon or calling?

vernal crest
#

Unfortunately there's really not a lot of formal English greetings that aren't time based

#

Summons

hallow prism
#

thanks

#

with the s?

uncut viper
#

depends on the context I'd say

hallow prism
#

like, a court summons?

vernal crest
#

Yeah

#

A court summons

hallow prism
#

ok!

uncut viper
#

but like, are they the one being sued or something

lucid iron
#

summoned to fantasy jury duty DokkanStare

uncut viper
#

bc yeah I wouldn't say you get a summons to jury duty, I'd personally say you get called to jury duty

lucid iron
vernal crest
#

Specifically it's a document issued by a court instructing someone to appear in court.

lucid iron
#

no one says it irl outside of written letters

hallow prism
#

no, they are hm, the one that brought the issue to attention of whatever governor system is and now they have to come to whatever governor system is

vernal crest
#

Like the summons is the document itself

round dock
#

also emails for some reason lmao "greetings!"

uncut viper
#

then i would not call that a summons

hallow prism
#

shake fist

#

legal stuff!!!

round dock
#

Subpoena?

vernal crest
#

Depends on whether they're receiving an official document requiring them to be present in court or give evidence. Then it is a summons - legally speaking anyway (I say this from googling not from legal expertise lol)

#

Looks like subpoena might work too

#

Or citation, apparently

uncut viper
#

if they're not the one in trouble or being sued or anything and are just asked to show up at the government office or something but it happens to be at the courthouse, I'd just say "asked to appear at the courthouse"

#

a subpoena is when you're being legally ordered to give information or something

vernal crest
#

My impression from what Lumi said was that they are being ordered

#

Hence the document

#

And the discomfort

uncut viper
#

I thought lumina was saying they were the one that brought the issue up

vernal crest
#

That wouldn't prevent them from receiving a summons though

round dock
#

I'm not sure if this is applicable in your states but summons are a document you get which notifies you that you have a suit against you. Subpoena is a formal document compelling a person to testify or produce a document.

uncut viper
#

correct. so if they are not the one in trouble they are not getting a summons or a subpoena

vernal crest
#

That is different to the information I am reading, which is saying that often it's because of a suit but not necessarily.

#

In Australia at least you receive a summons for jury duty

uncut viper
#

ive only ever heard the term "court summons" to refer to being told you gotta show up cause you're in trouble

round dock
#

You could technically not be in trouble and still receive a subpoena, but you can't ignore it. Otherwise, you get held in contempt.

hallow prism
#

well, their testify may be kinda an important piece, but i may have a vague "asked to appear at the courthouse" with some "if you're absent, you may receive a fine" or whatever, idon't want to make an ace attorney mini game

round dock
#

Then again, it might vary upon jurisdictions. Lol we don't even do trial by jury here

uncut viper
#

my "not in trouble" is my mobile typing shorthand way of referring to lumina saying they were just the one that brought the issue up to the governor's office

calm nebula
uncut viper
#

if they're willing to testify then i don't think they'd usually bother with a subpoena anyway but that one I'm less sure about

calm nebula
#

Did someone get arrested

#

Are we plotting

vernal crest
#

Lol

#

Hi atra

uncut viper
#

plotting an NPC event

round dock
#

If appearing in court and refusing to do so or ignoring it metes a penalty, then subpoena.

uncut viper
#

or rather trying to figure out what the right dialogue is

velvet narwhal
uncut viper
#

nothing about what lumina said indicated to me that this NPC receiving this document is refusing to do anything

#

or has already done so

hallow prism
#

(would administration care? 😄 )

vernal crest
#

If you're required to give evidence in court though I can't imagine they would wait until you've refused to tell you that you're not allowed to refuse

uncut viper
#

if they were refusing to testify? yeah I imagine so

vernal crest
#

Like when you're called for jury duty they don't wait until you fail to show up to tell you it's illegal to do that

calm nebula
#

Look are we in a common law system here

hallow prism
#

no, that they haven't refused yet, i mean 😄

uncut viper
#

i don't think people get preemptively subpoenad

calm nebula
#

Who says that we aren't in martial law

uncut viper
#

true there is a war going on

hallow prism
#

... "you must show at the hearing, here is your mumble" "my what?" "your mumble"

uncut viper
round dock
uncut viper
#

yes, if you refuse, not before

#

(though for jury duty you can usually just not show up anyway and be fine but that's neither here nor there-)

vernal crest
round dock
#

Damn jury duty seems rough

vernal crest
#

It sucks lol

uncut viper
#

see here I just wouldn't call that a summons in anything less than a 100% formal context though

vernal crest
#

You get paid hardly anything too

velvet narwhal
#

ah just like 'merica

round dock
#

You get paid?????

#

Oh wow

uncut viper
#

You get paid in the US too

vernal crest
#

Yeah because you have to take time off work - days or weeks if you're really unlucky

#

Although you can be excused if you can prove it would be too much of a financial hardship I think

hallow prism
#

considers using the word "convocation" to avoid all existing legal subtleties

vernal crest
#

I am curious what country you are in that you have no trial by jury, CSS

uncut viper
#

i would be very confused if I saw the word convocation used in most contexts

velvet narwhal
#

can literally only think of the convocation of the fourteen from ff14

vernal crest
#

Ahh right

uncut viper
#

unless we're talking about sundering worlds

round dock
#

PAU!!!

vernal crest
#

Lumi I don't think you should worry too much about the legal nuances given that they differ between country IRL so if people can complain you can be like "oh it's not meant to be like your country's legal system" but then just never clarify which country it is meant to be lol

hallow prism
#

listen, it is that, or having some laywer in my DM telling me that i need to use the word subpoena but only if i'm in american court, otherwise england will rather use (whatever), australia may use summons and france... they prefer not to speak about france, if they can avoid id.

round dock
#

I'd reco subpoena tho, if it's absolutely mandatory and the NPC is required to testify or produce a document etc..

#

But otherwise, I wouldn't worry too much on legal jargon.

uncut viper
#

i just think if it's someone you know but isn't meant to be overly formal then I probably would not use the exact legal words expected but even if it was I wouldn't use the legal words reserved for situations that come after a refusal of some kind, not a preemptive act

#

just "you're being told to appear in court" should cover like all bases

hallow prism
#

ahah 😄

#

thanks everyone, and don't worry mods, i promise it's NOT an off topic and is actually modding material

velvet narwhal
hallow prism
#

"we didn't expect to have this, but we are announcing the creation of making-mods-legal-writing"

uncut viper
#

(fwiw also i think in some/a lot of places you can actually just ignore the summons if you're being sued. you really really dont want to tho bc that means the other person automatically wins... but you could!)

thin hamlet
#

Campaign to make a Toni’s mods related discord server

calm nebula
#

I wouldn't use "subpoena"

thin hamlet
#

Oh waitSDVkrobusnaughty

#

I AM TONI!!!

round dock
#

i'm taking criminal procedure soon so might as well

calm nebula
#

You get subpoeaned to testify

#

Or subpoenaed for info

#

It's not like

#

A blanket "come here" from the court

uncut viper
#

thats what i was gettin at

hallow prism
#

(i created a monster)

calm nebula
#

Sorry

uncut viper
#

no one wants to do paperwork and subpoenas are paperwork. and also cost money

#

you call it a monster but i call it a fun change of pace from the usual stardew valley npc talk

hallow prism
#

ahah it's not you atra, it's that obviously legal stuff has very specific wordings and accuraty is kinda a big deal for people

uncut viper
#

not that the other talk is bad. but sometimes its fun to think about new stuff

hallow prism
#

and so there's debate and definition and examples and all 😄

uncut viper
#

i wouldnta thought about the stardew legal system or stardew martial law prior to this

velvet narwhal
#

i spent a good hour making sure my karaoke framework wouldn't get hounded by konami by copying DDR's arrow style

round dock
#

stardew martial law 😭

velvet narwhal
#

oh that's true though, there's a governor, mayor, ferngill republic?? a republic??

round dock
#

yeah but honestly, i wouldn't worry too much on legal jargon. if you can do a way with not using it, might as well.

velvet narwhal
#

what would "empire" imply? royalty?

uncut viper
#

but as we know just having the word "Republic" in your name means heck-all

#

is there an empire in stardew? is golmorre an empire

velvet narwhal
#

gotoro empire

uncut viper
#

where did i get golmore from

velvet narwhal
#

eulmore

uncut viper
#

oh literally just the golmore jungle from final fantasy

velvet narwhal
uncut viper
#

gotoro empire... empire to me usually implies royalty but also i wouldnt question it if it didnt, i would 100% expect royalty if it was a kingdom though

velvet narwhal
#

true, is it said somewhere in lore who started it?

#

(this pertains to mods, i'm writing my own expansion eventually)

uncut viper
#

i dont think so

#

theres barely any lore for anything

hallow prism
#

hmm, i remember vaguely that gotoro is accused of having starting it, but nothing say that the character saying that is reliable

round dock
#

i wonder if people would be interested in that sort of world-building, lore wise. i would but

#

why do i reply when i'm not supposed to sigh

brittle ledge
#

Does it really matter who started it, both countries are continuing it and that makes them both suck mlemmers

uncut viper
#

i like worldbuilding the hell out of things for stuff i create, though i also think for something like stardew it would probably make things more limiting than necessary

velvet narwhal
#

fair, it do be the kinda idea of "first bullet fired" in my mind though

#

yeah just let mods make your lore /j

brittle ledge
hallow prism
#

canon is kinda normal at war...

round dock
#

jorts and jeans catmmunism empire

uncut viper
#

not limiting to canon is one thing, but if stardew had a ton of lore, it would be harder to not go actively against it

regal nacelle
#

if I wanted to be able to put my guinea pigs in coops and barns what would I put here?

hallow prism
#

i think there's an additional field for houses or something

uncut viper
#

like imagine if stardew lore was "there are only 7 stardrops in the world ever. and you have found them all." it would be hard to justify an 8th in a mod

round dock
#

although an empire and catmmunism in itself is so self contradictory haha

hallow prism
#

... wrong medium 😄

round dock
#

what do we know of the gotoro war though in base game, besides Kent's lore? hmmm

uncut viper
#

they have fighter planes

hallow prism
#

bit of stuff in sam dialogue too

round dock
#

i might have romanced him far too fast to catch on .....

brittle ledge
uncut viper
#

the traveling cart stuff is all smuggled out of gotoro

brittle pasture
velvet narwhal
#

retcon SDVpufferthumbsup

uncut viper
#

can you just make two different animals that are both guinea pigs and live in different places

regal nacelle
round dock
brittle pasture
uncut viper
#

it sounds like a tiny dehardcoding but something about it also kinda makes me feel like it wont actually be Tiny

hallow prism
#

so you would need to be able to edit valid occupant types in a way that doesn't overwrite stuff

regal nacelle
#

Besides that fact. I'm off to work on some ferrets 😓

brittle pasture
uncut viper
#

will all the other stuff work fine if the animal manages to get placed in a different kind of building, though