#making-mods-general
1 messages · Page 3 of 1
its semi working now yay, thx y'all your help, now to see why the sprites aren't working
pretty flowers
thank you!
its working!
Looking dapper!
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.
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
I did try internalassetkey too with similar results. Would it be better to have the png in the same folder as the jsons?
This is hats but similar
That does not matter
Ohhhhhh, I see! Let me try that! Thanks for the tip - I'll let you know.
@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?
!log
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:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- 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.
i don't think there is outside of making them rug
but there's a framework for furniture that may allow that
Thank you. I'll look into it more.
any idea why the indoor/outdoor isn't working? https://smapi.io/json/content-patcher/0bae450cb79b4e49ba35d937982469e8
Vanilla precedence for winter is -100, yours need to be lower than that to be checked
Hey guys!! it's my first time making a mod and I wanted to make some sprite changes for my characters/SVE characters, I followed some tutorials and it took me forever but I finally ended up with a basic outline of it, however, smapi disapproves and it's not working, my smapi log is: https://smapi.io/log/ac8437e3f239448eb5c972373ae88449 my content json is: https://smapi.io/json/none/802a07fab0b641e5abb28e2eb4b890f6
Log Info: SMAPI with SDV on , with 74 C# mods and 123 content packs.
can you try saving the json from the validator? it seems to complain about some invalid character
I'll try that thanks!
thanx
hmm
i am hitting a little block in my event about how to switch from temporary srite to npc 🤔
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
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?
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.
(pssst you don't need the TAS, you can use the extendSourceRect event command to extend the character enough for the animation, though if you wanna keep the TAS you can do /removeTemporarySprites/warp <npc> <x> <y>, that should remove the TAS and put your npc there seemlessly hopefully)
ender with the fancy event commands
Yup
honestly i took like 4-5 pictures of my cats while contemplating existence (and all of the tasks i still have to do) so i feel that
hmm
do i go by extended size tiles or the original 16x32 size when i set the animation tho
I'm testing it out rn since, disclaimer, i've never used the command before ;p
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
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?
Well, looks like your animation will have to be a still frame for the event if you use extendSourceRect, setting it to ignore updates makes animations not work, meanwhile setting it to not ignore updates makes it so the animation resets the sprite size, your best bet ends up being TAS after all
oh dang, hm
Are you trying to modify existing game bundle or add entirely new bundle?
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.
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
hm...
ok i think the attachCharacterToTempSprite isnt working the way I thought it would....
i think you at minimum need to add your bundle's name to Game1.netWorldState.Value.BundleData, not sure about best way to do this really
why not just use the assetrequested pipeline
if making your bundle required for CC aint that important then u should just go with unlockable bundle yes
yea you need this too, to add your bundle entry. the world state is for making your bundle active this save
why is this happenign again 
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
load does not give it priority
oh okay got it
oh my god i jsut killed my browser when i typed in the json parser url wut
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
should try to make whatever other mod you are replacing sprites on a dependency for your mod
and u prob want EditImage instead 
@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?
networldstate just gets its bundled assigned from Data/Bundles as far as i can tell, i mean
oh okay i'll try that instead thanks!
can someone help me with my temporarysprite to npc issue
idk what I am doing wrong and why she always is right under the temporary srite instead of somewhere else. https://smapi.io/json/content-patcher/2e1def9d18724fba96806c02fced97cf
ah i see what u mean there's Data/Bundles and Data/RandomBundles 
So like Game1.netWorldState.Value.BundleData.Add("TestBundle", null)?
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
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
Ok, thank you! I was trying to use C# though, because I wanted to add Big Craftables into the bundles and I do not believe you can do it with Content Patcher. (And it seems like you can do it with C# maybe)
what do you mean add Big Craftables, like as a requirement or a reward? i dont see why you couldnt with content patcher
As a requirement for completing it. In the jsons, I think the requirements default to only using normal object IDs, and I could not find a work-around for it.
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.)
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
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
yeah but theyre asking about the bundle requirements
oh. i did completely misread that as reward, you're right
i said no without C# earlier because theres no item type qualifier field in the bundle data
mod data is pretty much never stored in the mod folder itself, so you can normally safely move mods around or delete them without losing any save data. especially for npcs which stay in your save file even after deleting their mod
anyways you can just rename the mod folder to put a . in front of the name to temporarily disable it
okie dokie!!! thanks so much 
to change this you gotta do a harmony patch on Bundle.IsValidItemForThisIngredientDescription i think
What do you mean by stacked gold coins?
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?
If a goldcoin item is added to the inventory with a stack size greater than one, it will still only add 1 gold coin. See this message thread for reference: #making-mods-general message
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?
Oh, sure I'll add a fix for that in 1.6.9. Thanks for reporting it!
Thanks 
(also i know random bundles werent the ones talked about here, but the bundle generator just seems to convert the RandomBundles data back into a long slash delimited string like Data/Bundles)
yeah
you're gonna have fun dealing with JunimoNoteMenu
I wish you the best of luck
JunimoNoteMenu? More like JunimoNoThanksMenu
(/s)
(At least it's not dealing with farmer_base / FarmerRenderer.... which I had to do earlier...)
I would argue that JunimoNoteMenu is worse than FarmerRender
The extra column sounds good, I wasn't sure because technically those extension mods aren't their own frameworks (and as such not counted in the monthly framework dump)
Since the main page is already updated to remove the obsolete 1.5 frameworks can I just put the new additions on it instead of making a separate page?
Yep!
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
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
(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)
I tried adding (BC)10 to the json and it just appeared as nothing in the community center-
hmmm
I'm not sure why that wouldn't work, actually
hmmm
yeah, it seems to want to just make the item in question
mine appeared as an error item which is like, almost kind of an improvement over nothing—
I just figured out that it works as an item, but the community center doesn't display it for some reason. Very funky.
weird
might be a scaling issue
but that shouldn't be it, one second
can someone think of another asset that's 16x16?
any object?
Weapons
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
Roomba mod incoming?
roomba mod wouldn't improve my allergies
😦
(whats the prefix for weapons. is it (WP)?)
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!
your file is actually content.json.json or content.json.txt
Just (W)
please enable this option
It has the same result. No sprite, but it does work.
huh
thats probablly it let me see
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 😛
doesnt seem to be that, its still showing the error. 
Ok, that's fine. Thank you for the help, still!
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.)
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
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.
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?
JA still works
Somebody hasn't looked at the 23k pixel tall SpaceCore docs
ah cool, wasn't sure about its status
now to count how many users SpaceCore has
but the intention of the mod page is recommending frameworks for new modders
(CP stuff is over half of that)
so JA should prob go in some obsolete but not broken section
as long as CP comes first and comprehensively lists its capabilities there isnt need to shove JA somewhere else imo
444 listed nexus dependencies, so Popular section it is 
thank you selph for working on this!
do you think there is room for specialized frameworks like say cloudy skies
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
that one prob won't make it to 100 packs cutoff but it is what you want for weather
if the purpose of the page is to point new modders in the direction of tools they can use
then it should be listed

nexus i literally am the author. i am trying to preview my mod page. nexus please.
this is definitely the plan
I could probably modify my framework countr script that exists for no reason bc pathos does it anyway if you still need that in ~12 hours
first pass of the reworked framework page is here: https://stardewmodding.wiki.gg/wiki/User:TheSelph/Sandbox
for now I haven't modified the framework list (outside of yeeting DGA), but I'll get started on that if this is fine merging into the main page.
might yeet Custom Furniture, Shop Tile Framework and TMXL
@ivory plume what do you think? I don't want to just paste this in without your approval lol
Content Patcher section should mention machine
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.
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.
done!
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.
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!
Is Custom Furniture a predecessor of Furniture Framework?
not really, FF is its own thing. CF was needed pre-1.6 (like JA)
Ah. They had different functionality. Ok!
It should let you make smaller edits (e.g. change a section at a time) though.
hmm I'll try that 
man, I am really going crazy getting this dang event to work i am so close in giving up because of some silly temporaryactor
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
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!
you enabled extensions right
the thing atra mentioned
that looks like Mac? dunno if it has/needs that option
I had no clue that is in responce to me but ill check if I have the option
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
how do i resize a temporaryactor...
I think its because thats what I had it named in the manifest json, i changed that name though. heres my log: https://smapi.io/log/37a3905756014115b0b8c46e2bbda7e9
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
ah yeah it's named like that in the manifest. weird, it indeed should work... maybe extra space in the file name? 
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
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
not sure actually. maybe save the name exactly as content.json and keep the format unchanged?
kk ill try that
so I sent this a few hours ago but I still have the same problem besides switching to EditImage and putting looking for love mod on dependency for my mod as I was told to, also added some new sprites, here's my content.json does anyone know what could be the issue https://smapi.io/json/content-patcher/ce8ec71350ff46f9b581ad235b7ae4b4
nah same error
im guessing either my computer also hates me, or i did something wrong in the content or manifest json
(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.”
yes I turned it on
still looks the same as before
what is it supposed to do exactly
it lets you see if it's jsonjson
yeah its still just content.json


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)
Ikr. But wdym not loading from what directory
like it's not loading from that directory but some other directory in your mods folder
duplicate another simple CP mod and copy the code into those files instead?
? what do you mean
ok, so rename it what
Anything other than manifest.json, it should hopefully cause it to fail loudly
(or not)
alright
its limbo.json now
heres the new log: https://smapi.io/log/f95f70b8ab9346d49e966d218b860968 definitely seems to have been loading from the manifest json
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
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
real
Is it possible to use Harmony to change a single line of code?
yea that's a transpiler
should consider whether you reaaaallly need a transpiler before writing one
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
maybe I should jsut give up for now
I think it is the best idea for what I want. I just need to change or remove a singular if statement, and I don't know if there was any other way.
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
(i think most if not all of my transpilers are for adding statements only...)

sorry i'm free from the throes of hell that is another game, do you mind if i try it?
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
ugh gimme a moment i am stuck in smapi hell for some reason...
oh if you just wanted to throw the temporary sprite that you're using at me i was just gonna test with my own npc
i wanted to try one last thing but smapi just doenst load further?
oh the sprite is jsut from fishmongers charactersheet gimme a moment
yea adding statement in particular scope is other big use case
help i think my entire computer is on strike cuz it wants to update so badly
there we go
the last case is like adjusting draw methods ever so slightly since those dont tend to be in nice singular functions
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.
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
I cloned Constance again
it has somewhat complicated logic (if in winter and outdoors, have a chance of producing a frost apple, or a regular apple otherwise)
Thank you! I will refer to it.
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.
forgot to swap mod profiles
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
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!
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
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
Thanks for the very clear guidance. I found the author's mod and wiki. I will also check carefully the reference to the code regarding the fruit tree in the original.
hmm

should farmhand be allowed for CP EditMap? should I add When master only?
"Action": "EditMap", ... "When": { // if is master game }
the animation isnt animating....and despite using the same tile, when i warp her actual self in she is up higher?
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
im so lost
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
oh my god
then you place the actual NPC with a warp underneath it with the same 21 45 x coords
so my initial idea wouldve worked if i hadnt used the fishmonger fsdgfhjgdf
LOL
ok lemme try
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
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
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.)
No you can't... unless you use Extra Machine Config
https://www.nexusmods.com/stardewvalley/mods/22256
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?
I dont think I have any format ones? one sec, let me get a copy of the file
ConfigSchema and DynamicTokens also not allowed in secondary files
doesnt the error also say which field its catching on
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
let me load it again
oh yeah it says (format) lol
this is dumb but what kinda stuff is format?
Format is the field that tells CP what functionality it wants to use
its the line that just says "Format": "2.3.0" (or possibly just 2.0.0)
oh duh
it helps CP figure out what kinda migrations it may need to do i think and probably some other things
thanks!
my mods done! im so happy!
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.
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.
You can pass a __instance param into your function to get what would be this in the unpatched function
https://harmony.pardeike.net/articles/patching-injections.html
that article contains a bunch of more useful injections, including the return value so you can change that
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)
so you want to add a config option that changes what folder is to load a different sprite? You can do that with configs (and indeed, it will automatically add a new option into the Mod Config menu!)
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md
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
yea. Then you add a new config option that allows the user to change the value of the {{folder}} token
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
And nice, I'll take a peek at that later
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
believe it or not Content Patcher does have tokens for that
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#metadata
Oh, damn, fancy
FirstValidFile and HasFile specifically
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?
im sure some people have resume worthy mod projects on their github but i am not one of them
I doubt I will be, I just thought it'd be interesting to ask
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)
Makes sense
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)
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?
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
I don't think I saw that in the MetaData but I'll dig some more
As for "if asset not in folder fallback to default" check out the FirstValidFile token Button linked above
In the decompiled code Is there a removeBuff method still?
it's in this link I posted earlier:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md
have you read through it in entirety?
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
there's a RemoveBuff trigger action, so just look at what gets called there probably
FOUND IT THANK 🤩
Thanks I found the snippet
also you might want to set Format to "2.3.0" (matching Contemt Patcher's current version) to avoid problems later
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?
I was wondering about that section, thanks!
So config name and descriptions are handled in the i18n
... the what? 😅
See the "Translations" section of the link above
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...
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
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
alright I'll see if I have a program that will work for that
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
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
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
Ah
It didn't show an example for how to use "AllowBlank", I'll just use 'Allow Values' then
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 😅
it won't read anything from the folder. you can either specify allowed values or let the user write in any value they want
Okay cool
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.
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)
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 🙂
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
I'd start with going over the wiki page with furniture data https://stardewvalleywiki.com/Modding:Items#Furniture
Thank you!! That's exactly what I needed. I got a little overwhelmed with the amount of information available lol
No problem, I'd say the best option for you would be content patcher, which has docs available here https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md, Also it might help to unpack the game's content files
!unpack
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!
Thankyou!! I've actually looked at the content files before out of curiosity, it's why I wanted to try to do this hahaha 😊
Good luck
Hey so how does everyone do those enable-disable mod things in the config menu? This is all I've got RN
You can just do "When": {"Enabled": true}.
(Forgive the shitty formatting – I’m on mobile.)
hasvalue: enabled: true is when you're trying to use the command again for an additional requirement
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
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
yeah using gmcm you had the above link for it
Yeah I saw that, but I couldn't figure out how to set the actual Action
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."
},```
Ah nice
basically as soon as the "custom wedding" is set to false, it refuses my include code
Alright
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
So like this?
And then how would I wrap the rest up in the Include?
also i woke up to one of the most jarring bug reports
Damn
i should know better than to leave it to user discretion, so i, have to use the multi: true for my when condition
Ah
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
And then throw the actual information into the seperate files?
i'd make the {{folder}} the actual folder name since you don't have a target for it to reason
and yes
Actually- I do have a reason for {{folder}}
Each {{folder}} is intended as an asset pack
ah
Yeah
did you make {{folder}} a dynamic token then?
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
yeah
then nevermind my earlier comment
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
Yeah I been doing that for most of it, but thank, it's good to remember
time to debug if my wedding code is overwriting even though i'm not engaged to the npc
it used to fall solely on user configs, but i realized i've forgotten my first teachings of code: people don't read
Ah
Also the having to use Other File helps a lot, I was wrestling with how to reconcile the Asset Pack differences 😅
Wait, did you replace the original wedding event or you use the new 1.6 custom wedding event function? :o
i replaced the original with conditional when(s)
"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
I see, I was wondering if there is any mod that add an NPC-exclusive wedding event
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
HEH
Nice, it's helpful
rude, thank you computer, but a lot of people apparently want a beach wedding 
There's a 1.6 new function that add exclusive event for specific NPC without spouses token
Now you got me thinking of Ginger Island
And nice
Testing interface plug, wish me luck 😅
thank, i was digging for it
uh, maybe by pure instinct i did it but i had to overwrite the original wedding?
Ouch
Oooh
i have no idea how to make it contextualize to specifically one bachelor
So no crash, but the stupid interface stuff doesn't load? Does anyone wanna take a peek?
That sucks, hopefully you can figure it out at some point
Hmm how do we actually add a new entries to targetfield again?
Replace default with Lance perhaps?
i think it screamed at me when i did that, but i can do that after i test this
dang
this was also my coding prior to even understanding how a trigger action worked, so y'know, it's on my todo list
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
😅
Is it working?
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
ignore all of the attendees being missing
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
For the Attendees I wonder if we can just put the NPCs in like normal events instead of using SetupContextualWeddingAttendees or ContextualWeddingCelebrations
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
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
oh that's what i originally had
Is that working
Oooh, for conditions?
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
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
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?
Fun
one second
Why is your content.json inside asset
oh you're trying to include your content.json, it's already included lmao
It needs to be in the same folder of manifest.json
includes must only have the changes commands
You have 2 different content.json?
lol
Then the one that you included should not have Format field
Because it's a secondary file
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
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
It was working before when it was all in one file, just seperating it out is causing a pain
backtracking on this, you can script the whole thing like an event, so yeah you can ditch it all minus the "end wedding" that's important, i learned from my own mistakes
So do I replace "Format" or just erase it?
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 
Thank
[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
....... i'm dumb, my wedding.json was in my list of includes
i'm gonna go annoy my cats
!json, image and log may help
!json
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.
A personal attack by proper punctuation
um what
sorry my brain is half asleep
there is no rush
what json do i upload
Content unless you're using Include in which case wherever you're doing the pertinent code
oh wait
Same thing, still not the recipe data
OH WAIT
Is the problem that it's not unlocked or that the image is different than expected?
How do you set a dropdown menu instead of the slider bar?
both image are a problem and the nori is supposed to be default
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
Oki
post your tilesheet here? the imags for the dishes? and how you're loading them too?
which one of your configs is doing the slider?
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
why is it so big?
your image isnt showing up because its huge
its only showing the corner of something
wait how big is ti supposed to be?
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
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!
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
!unpack then use a mod to add outfit, usually CP, FS
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!
thankyou!!
!fs
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.
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)?
Ask #modded-stardew
alright, thanks!
(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.)
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?
If it's a temp actor, can you just warp them off screen like a regular NPC?
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
Can you warp the NPC in behind the actor and then warp the actor out?
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
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
yeah but the temp wont leave
thats the biggest issue
i cant even warp it offscreen
weird 
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?
TheFishmonger_temp
and doing warp TheFishmonger_temp doesn't let you touch it?
tbh idc about the facing up too much if just the temp sprite would effin leave
wait
hol a minute
IT WORKS
🤝 void and i misreading code
i've just assumed all event code will always be caseSensitive
tbh the slight misalign isnt that noticable
i always totally forget thats a thing is the problem
my fingers are already busy enough trying not to typo too much
i have been screamed at one too many times by smapi for my soundIDs
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
shake NPC <duration>/emote <npc>/textabovehead {{token}}
that's what i get away with all the time
positionOffset <npc> <x> <y> and maybe the shove sound effect, and maybe if the sprites have the hand out bit i do that too
the X is supposed to be ... and the heart should be a !
clearly need a better music than ocean tho
i don't know if constance is romanceable so i don't know if the 6 heart should have a cusp
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)
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
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
short backstory maybe?
(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
oh y'know throw void into the #1263202101803352106
oh yeah right i keep forgetting that exists
There's an Overhead Emote ID page on the modding wiki FYI, I use it all the time.
i should really do what some modders do with a comment with all the useful stuff like //emote x = 8 and whatever
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?
yeah i think i should look there cuz i looked at the misaligned one on the google sheet and effed it up lol
I'm mainly wondering if it's a flag situation at this point
Not sure tool upgrade level is important enough to have a mail flag or a common enough thing to need a token
i know some stuff like shop can check on tool level, but i don't believe there's a GSQ for that
(i personally would love contextualized emotes in strings but i live with what i can get)
(?)
instead of it being numbers being flat emote <npc/farmer> heart or something
(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 😄
yeah true, i think i'd still write out "exclaimationmark" or "exclaimation" tbh
(it also would work for like, 3 emotes at best, so... 😄 )
true 
event script mod that let you type the emoji unicode instead
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
im unsure what you what to do here 
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
ah hm, but tools are merely items
Yeah, and I saw a few object flags, but the only proper item flag I could find was for fish in the metadata thing
i dont think they set any kind of mailflag on upgrade that can be globally accessed
but PLAYER_HAS_ITEM gsq should work?
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?
nice
(it's got a ! in front that i omitted because that's negation)
Ah
in content patcher you would use a GSQ in https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#query-expressions
GSQ means game state query
if the player has no iron/gold/iridium tool in their inventory would the UI revert to the base look?
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
oh u need : there
It flags that too
but yea it doesn't look like PLAYER_HAS_ITEM checks for chest contents
I'd do something like have a daily trigger action that set a mailflag once they have an iron/gold/iridium tool in their inventory
then the mailflag will remain set even if the player stashes all their tools
????? I literally just started modding yesterday 😅
That sounds like a great idea but please help me understand what you said
have you looked at Data/TriggerActions in the unpack
(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?
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"
}
Could I add that not to Trigger Actions but to the mod itself?
Have it all in one package or somethin?
you can edit multiple things in 1 content patcher mod
Thank
hm i wonder how you would make sure that higher level flags override lower 
though perhaps it's not important and u just do EditImage in order of lowest to highest
yeah the easiest way is just to set priority
Have it read for Iridium first and such
nah the other way around, have it apply iridium patch last
so that it's changes overwrite the other levels
content patcher doesnt implement procedural stuff, if you want you could do this in C#
a bit overkill perhaps 
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
Makes sense
So you can only put things inside it that CP has accounted for
Or whatever mod you're making a content pack for anyways
It's just a UI remake
ya its not a programming language, just inputs for a mod (program) named content patcher
Makes some sense
I just need a way to tell what's going on in-code so that the right stuff triggers
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
RN this is about what I've got, it should work? Maybe?
Thank!
oh no you can't use Action/FromFile in the trigger actions 
i am unsure how to explain this to you without explaining the whole of content patcher 
Well, you can use Action, but not Include
I'm about to just pull a "when": "PLAYER_HAS"
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
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
https://stardewvalleywiki.com/Modding:Trigger_actions#Built-in_actions
These are the built in actions
and stuff under Entries is for game data, i.e. what you are hoping to add
Alright thanks
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
Alright
despite the name including mail, there's many hidden mail that get used as boolean flags
i forgot the final arg earlier, should have been AddMail Current {{ModId}}_PlayerGotCopperAxe received
and need one for each tool + level
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
Should be fine, outside of your mod failing it's hard to crash the game with CP
you prob dont need one for base axe cus everyone gets that at begining of game
Probably, mostly just putting it there for copy paste reasons
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
Good morning/afternoon?
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)
Salutations
is it a first meeting?
no, they know each other but the situation is more formal than previous interaction
maybe just "Hi, good to see you again"
yeah I'm not sure english has any semi-formal time-neutral greetings
Greetings
Could include an action of shaking hands. That's quite formal.
I mean technically yes, you can use Greetings and Salutations, but you'll sound like an alien
(i may go with greetings or salutation)
greetings and salutations to me are more than a bit formal
yeah shaking hands is the usual thing
yeah what wren said
Lol yeah greetings and salutations are weird, not formal.
thanks for the context 🙂
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
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)||
do people usually handshake when they've already met though
They do in business situations, yeah
"Pleasure seeing you again" ?
if it's business, sure, though business isn't just a "bit" formal either
||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/||
if it's some social awkwardness I'd might even find "Good day" better personally
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" ||
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
yeah fair 
i mean you could do a dynamic token that updates on time changed but y'know
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 😄
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"
Yeah you can
yes, but i keep that for fun things 😄 this one i find tedious
(and yes it works in events too, it's pretty cool)
and about a court thing, what is the word, summon or calling?
Unfortunately there's really not a lot of formal English greetings that aren't time based
Summons
depends on the context I'd say
like, a court summons?
ok!
but like, are they the one being sued or something
summoned to fantasy jury duty 
bc yeah I wouldn't say you get a summons to jury duty, I'd personally say you get called to jury duty
with this in mind i feel Greetings makes sense
Specifically it's a document issued by a court instructing someone to appear in court.
no one says it irl outside of written letters
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
Like the summons is the document itself
also emails for some reason lmao "greetings!"
then i would not call that a summons
Subpoena?
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
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
My impression from what Lumi said was that they are being ordered
Hence the document
And the discomfort
I thought lumina was saying they were the one that brought the issue up
That wouldn't prevent them from receiving a summons though
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.
correct. so if they are not the one in trouble they are not getting a summons or a subpoena
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
ive only ever heard the term "court summons" to refer to being told you gotta show up cause you're in trouble
You could technically not be in trouble and still receive a subpoena, but you can't ignore it. Otherwise, you get held in contempt.
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
Then again, it might vary upon jurisdictions. Lol we don't even do trial by jury here
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
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
plotting an NPC event
If appearing in court and refusing to do so or ignoring it metes a penalty, then subpoena.
or rather trying to figure out what the right dialogue is
scheming, even
nothing about what lumina said indicated to me that this NPC receiving this document is refusing to do anything
or has already done so
(would administration care? 😄 )
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
if they were refusing to testify? yeah I imagine so
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
Look are we in a common law system here
no, that they haven't refused yet, i mean 😄
i don't think people get preemptively subpoenad
Who says that we aren't in martial law
true there is a war going on
... "you must show at the hearing, here is your mumble" "my what?" "your mumble"
you don't get a legal order subpoena either though
Nope, they just require you straight up. Refusal = you get held in contempt. Can't speak much of jury duty since I'm not familiar how that works in our legal system.
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-)
No, but as I mentioned, in Australia you receive a summons - which you will be penalised for refusing. And the summons is the legal document saying "you have to do jury duty or you will penalised".
Damn jury duty seems rough
It sucks lol
see here I just wouldn't call that a summons in anything less than a 100% formal context though
You get paid hardly anything too
ah just like 'merica
You get paid in the US too
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
considers using the word "convocation" to avoid all existing legal subtleties
I am curious what country you are in that you have no trial by jury, CSS
i would be very confused if I saw the word convocation used in most contexts
The Philippines 
can literally only think of the convocation of the fourteen from ff14
Ahh right
unless we're talking about sundering worlds
PAU!!!
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
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.
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.
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
or else 
ahah 😄
thanks everyone, and don't worry mods, i promise it's NOT an off topic and is actually modding material
campaign to make #1263202101803352106 a real section
"we didn't expect to have this, but we are announcing the creation of making-mods-legal-writing"
(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!)
i would support this lowkey 
Campaign to make a Toni’s mods related discord server
I wouldn't use "subpoena"
i'm taking criminal procedure soon so might as well
You get subpoeaned to testify
Or subpoenaed for info
It's not like
A blanket "come here" from the court
thats what i was gettin at
(i created a monster)
Sorry
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
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
not that the other talk is bad. but sometimes its fun to think about new stuff
and so there's debate and definition and examples and all 😄
i wouldnta thought about the stardew legal system or stardew martial law prior to this
i spent a good hour making sure my karaoke framework wouldn't get hounded by konami by copying DDR's arrow style
stardew martial law 😭
oh that's true though, there's a governor, mayor, ferngill republic?? a republic??
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.
what would "empire" imply? royalty?
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
gotoro empire
where did i get golmore from
eulmore
oh literally just the golmore jungle from final fantasy

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
true, is it said somewhere in lore who started it?
(this pertains to mods, i'm writing my own expansion eventually)
hmm, i remember vaguely that gotoro is accused of having starting it, but nothing say that the character saying that is reliable
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
Does it really matter who started it, both countries are continuing it and that makes them both suck 
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
fair, it do be the kinda idea of "first bullet fired" in my mind though
yeah just let mods make your lore /j
I promise you there is not a single expansion that has limited itself to canon 
canon is kinda normal at war...
jorts and jeans catmmunism empire
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
if I wanted to be able to put my guinea pigs in coops and barns what would I put here?
i think there's an additional field for houses or something
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
although an empire and catmmunism in itself is so self contradictory haha
"now you can resurrect someone"
... wrong medium 😄
what do we know of the gotoro war though in base game, besides Kent's lore? hmmm
they have fighter planes
bit of stuff in sam dialogue too
i might have romanced him far too fast to catch on .....
Yeah, but again, that hasn't stopped some mods 
the traveling cart stuff is all smuggled out of gotoro
Other codedivers can correct me but I don't think this is possible unfortunately
but it would stop a lot
retcon 
can you just make two different animals that are both guinea pigs and live in different places
Thinking about it more, you do have a point
oh yeah! and that's why it's so expensive allegedly
anyway this sounds like a tiny dehardcoding project I can put in Extra Animal Config
it sounds like a tiny dehardcoding but something about it also kinda makes me feel like it wont actually be Tiny
House The building ID for the main building type that houses this animal. The animal will also be placeable in buildings whose ValidOccupantTypes field contains this value.
so you would need to be able to edit valid occupant types in a way that doesn't overwrite stuff
Besides that fact. I'm off to work on some ferrets 😓
Surprisingly it seems like the logic's all contained in a single CanLiveIn function
will all the other stuff work fine if the animal manages to get placed in a different kind of building, though

