#making-mods-general
1 messages ยท Page 2 of 1
its prob cus u spelled "Dialogue" wrong actually
are you shitting me
oh my god
i am not kidding when i say i have spent DAYS trying to figure out whats wrong
thank you so much ๐ญ
sometimes all you need is a pair of fresh eyes ๐ญ
curse dyslexia ๐ญ
Cory, get yourself VSCode and the spellchecker
That is like
It saves you from silly mistakss
thank you. currently downloading it right now qwq
is there a word for playing animation backwards to form a loop
e.g. instead of frames 1 2 3 4 1 2 3 4 ... you do 1 2 3 4 3 2 1 2 3 4 ...
shedule animations, map animations...? idk tbh, i just do 123432 and then itll loop right
boomerang?
no idea but palindrome is a word
yea that is what i was thinking but i never heard ppl say that for things beside words
Not sure there's a specific word for it but temporaryAnimatedSprites refer to that behaviour as pingPong
OH that's what pingpong is used for
pingpong is so cute
You could duplicate the frames in reverse order from currentAnimation
TAS probably has it because it doesn't have a frame list to follow, just math
(ping pong is what ive heard it called almost everywhere else usually. if you're CSS you call it "alternate" though... which like, i guess. i know alternate is a verb and it does make sense, but i always read it as a noun first
)
its ok i will just make an extension
i do wonder if i should just not use AnimatedSprite at all, cus it's not like i am follow the up/down/left/right format
is there more convenient way to spawn a monster for testing, besides the debug command
Is there a way to see a data file after a patch has edited it (to verify it is making the changes you expect it to make)?
patch summary uniqueid
Also patch export <asset>
theres a mod for it
monster spawner something
very useful
this one right https://www.nexusmods.com/stardewvalley/mods/3201
ty
Or you could write a unit test for it ๐
i could 
I have this sitting around, personally 
linkoid 
Question: Is there any demand for making events work with multiple players?
me me me
XD
but thats just a festival 
i want to share
an idea I had a while back
so I want to make a theatre, with specific show times (every 2 weeks once its fixed via bundles)
And then, I want it to start a specific time, it would be like the mermaid show? but it would have character dialogue
i was suggested to make it a cutscene and such but like, i was wondering if there were different ways to achieve that
so itd essentially be like a base game movie, but its one of those soft events
where it doesnt lock you out like a festival
i was also thinking "that sounds like a festival." id possibly feel that most normal events were too short to worry about waiting for another player to come and join in on. but if it was somehow integrated real nicely with existing events somehow or came with a set of events made for it that worked with multiples, i could see it being very fun to add, though i dont know what id look for in a multiplayer event
so personally my answer to that is "theres no demand from me. but, that doesnt mean i wouldnt be super excited about it if you made it"
Surfign Festival supports multiple people. That was... an adventure
im always excited when multiplayer focused mods come out cause i only play with my partner anyway but we're also just very picky when it comes to what bugs or idiosyncrasies we're willing to put up with if it has any 
I've already solved a handful of the problems related to getting it working, but I don't want to share the entire mod.
e.g. the events included with it are private
would it be a framework thing for people to make their own, or just events that you made?
The game wasn't designed to work like that so there's a handfull of bugs that needed fixed with harmony patches.
It would basically just be those patches
spent a couple hours today whipping up this tiny mod (1.6 spoiler)
and just when I decided to take a break and play
big "asking your pet what they have in their mouth, spit it out, SPIT IT OUT" energy
I admit I made this after accidentally feeding the wrong fish pond
(also what do you mean, i thought starting a new mod was taking a break...)
(and also because I don't want to lose the ||cracker|| when I send the animal to the shadow realm for its meat with Animal Husbandry)
convenient, if a little imbalanced
what's preventing you from doing that?
maybe if the extractor is 1 use and costs money
mostly skill issue 
plus I have to do a bunch of other things first and Im procrastinating iudghuig
maybe that's enough 
that sounds perfectly balanced to me! <---- uses skull cavern elevator mod and has more prismatic shards than she knows what to do with
making, note, to, self, bother, button, for, multiplayer, karaoke, support
"It's not my fault that those chests on Level 200 and 300 keep respawning!"
if you think i actually know anything about making mods work nicely in multiplayer you are mistaken. i like when other people add multiplayer support. i wish for nothing else than to not need to do it myself
i'mma bother you at least a lil bit because i stared at modentry and no amount of "it's how you get the game to recognize your mod" helped my brain remove the squiggly green line
making the rock paper scissors mod was enough multiplayer specific work for me already thank u very much
well im glad to report that ive ironed out all the trinket multiplayer stuff 
sometimes squiggly green lines are unimportant
mostly by passing less net fields and doing more stuff locally
The main problem with the multiplayer events mod I made is that it makes the assumption that you are married to the other player, so I couldn't just "Copy & Paste" the code into a new project and release it as a "multiplayer events framework"
half the time i have a squiggly green line its bc my IDE thinks "hey this isnt the naming convention/style you should use" and im too lazy to get rid of that warning
or telling me to use var instead of specifying the type
the green squiggly was yelling at me about nulls and i was like, y'know that's enough c# for today
wait why does it do that
ask JetBrains
i like putting the real type personally
var looks too javascript like and gives me fear
tbf you should probably be using let anyway
i'm gonna make it my graduation project to do that stupid c++/CLI integration i swear
This one you can tell VS to shut up about
Or jetbrains
see: im too lazy to get rid of that warning
Did we edit the default csproj on the wiki to include nullable
i dont like putting those little comments above code to silence warnings either i think theyre ugly
Because i think we did
Oh no, this one is .editorconfig
see this is why I use vim, no stupid lint nagging. no anything really but that's a small price to pay
I like .editorconfig
"Using implicitly typed local variables (also known as var keyword) introduced in C# 3.0 has become quite popular as it improves readability in many scenarios. By default, JetBrains Rider also encourages using of var keyword, but preferences of its usage are flexibly configurable โ for example, you can opt for using explicit types in specific cases or everywhere and JetBrains Rider will help you enforce your preferences."
this is apparently why Rider tells me to use var
just vim? not even neovim?
"improves readability" how
LunarVim with a LSP - I'm not that crazy lol
I guess it could improve readability by making less words to read? Sounds dumb lmao
i love not knowing at an immediate glance what type a variable is, very readable, very nice
Dictionary<string, List<Items>> dict = new Dictionary<string, List<Items>>();
// versus
var dict = new Dictionary<string, List<Items>>();
Yeah, seems wild, VS does the opposite and green squiggles to tell me to use implicit types sometimes
I think that's the idea
But then in a later version of C# they added this which is better than using var imo.
Dictionary<string, List<Items>> dict = new();
Dictionary<string, List<Item>> dict = [];
I was really confused about the discussion of nullables last time I brought it up, since it turns out I already had it on but never set it up, I think it's just on by default somewhere but I have no idea where
All my new projects have it despite never doing anything to make that happen as far as I recall
Visual Studio includes it by default when you use a newer target framework
me, completely lost 
imo var is still useful in for loops, where we all know what the type an element is already
i like this one, possibly cus it's the form vscode C# extension wants
i'll try and find the nullable article when i'm not running off of 3 hours of sleep and caffeine
hm i wouldn't be able to access another mod's i18n if i am make just cp content pack right 
No
correct
whereas actual content pack would let you do so
ill just make a translations asset ig
For future consideration, it even has a link to the MS site, though I can't guarantee that will actually help
MS docs can be very hit or miss when it comes to helpfulness lol
i open the ms website nd i fall asleep, i have responsibilities to do for the next 2h
i tried to watch those videos of the uh, one dude going over args and i fell asleep at my desk
switch ms docs to light mode, that'll keep you up 
But my retinas D:
jokes on you my brightness on these monitors are down to like, 45%
that or i make natural language generator 
what are you trying to accomplish
@naive wyvern what's better, config settings for the crane games in general or reading from the tile property to decide what each game's play time, credits, and hidden prize chance is?
im trying to describe what abilities on a trinket do
Could also do both and just let the tile property take precedence
i personally like tile property c: !
long ago i did actually make something that parsed a game's data and made english descriptions for it
but that aint very translateable
wait why would you need to access another mods i18n then
I think the need is to access a content packs i18n?
ya
rn i am offer 1 custom asset to put data about a trinket in
and expecting ppl to use CP to interact with this framework
Though I guess, there's a limited amount of stuff the trinkets can do
why not just add a field for ability description to that custom asset then instead of a different asset for translations?
yea thats prob better 
i realize i have to somehow compute .json to a beatmap
well it's just usual load json into C# class business 
you can just load any arbitrary file type cant you, not just jsons
i'm wondering if learning from https://github.com/lunacys/BeatTheNotes/tree/master would even benefit me
That sounds worse, but it's not something I've tried lmao (own parser)
xml is natively supported in C#
theres probably a lot of .midi parsers out there
Just make the beatmap the way event scripting is
(obligatory "I did that for my CP alternative" comment)
Each / delimited section is a description of notes and a beat, same hell as normal event scripting where there's no way to know if you're doing it right without testing the entire beatmap
.abc parsing is also an option
i think midis are the most readily available (and i understand them as well)
the problem will be, uh, translating the "targets"
there are a lot of .abc files out there too bc of games like LOTR Online and Starbound (and others im sure) that let you load them in to play music for others
i agree there are probably more midis
idk which one is easier to parse and use for a mod tho
Midis probably have better rhythm and tempo information which is what your really after.
yeah reading the tempo and time signature is most important considering it's easier for me to create beats based on the time signature
I would just spawn a target every time a note is played
yeah i'm thinking of a (if it's possible) triple layered target for "accuracy"
i don't know if that's the correct way to go about it, but that's the first thought
triple layered target?
uh, basically largest rect determines whether it was a miss or a hit, middling rect determines how well "timed", and the dead center being a "perfect"
ah
i don't know if i can do a "donut" kind of rect but y'know
if i have to stare at the draw(spritebatch) i might as well go nuts
(.abc's do actually include tempo and time signature info too. i have no horse in this race though ive got plenty of both kinds of files to put your mod through the wringer test with your mod either way
)
(the plan is to buy my own midi mini piano for my birthday so there's gonna be a maximum of 5 custom tracks from me on it anyway)
It drives me insane that maximized windowed mode SDV doesn't fill the whole area
Just run borderless?
i used to use a mod to fix that, dont know if its 1.6
Anyone know a character which isn't used by letters / parsed dialogue but which does appear on a standard us keyboard? Already using bar, but most special chars are used afaik nvm, am dumb, game already does what I want to achieve
Does it have an actually functional borderless somewhere? The way it does fullscreen windowed is also ridiculous
I guess I just assumed it was borderless, since it's maximized and doesn't black out the other monitor, or get into a weird state when I change the window.
Like it doesn't lock my mouse but also when I'm debugging C# it won't tab to my code when it hits the break point and I can't take screenshots of the game unless I make it windowed
I assumed these were monogame limitations
My maximized SDV is weird, sometimes there's a thing vertical line on the monitor it's on that it doesn't fill, and then it overflows to the next monitor that amount
Yeah, that part is a problem, I always have to remember to drag VS to a different screen before setting a breakpoint.
If you make it windowed it'll tab over, just wish it filled the whole window lmao
I just need to get a third monitor for all this.
is there some syntax like this
{
"Action": "Load",
"Target": "Mods/{{ModId}}/*",
"FromFile": "sprites/{{TargetWithoutPath}}.png"
},
to load all textures in a folder
I don't think so
unfortunate
Very
Just collect them all into a list and iterate 
theres the mod i used \o/ nexus was bein too slow when i went to get it
life saving mod
kinda
it does come with its own problems
the window resizes if you turn on splitscreen
Ah
Can you add bundles to the community center using Content Patcher?
At some point I have to stop thinking of new features for this mod...
Trying to decide if being able to have different prize pools for different crane game cabinets is worth the effort or not lol
@naive wyvern ?
maybe a someday feature if you're feeling tired from it ๐
I'm mostly feeling like, I'll never be done because I keep thinking of new stuff lmao
I am also kind of reluctant to make it a future feature because it would be a change that effects how the data asset is used
So if I change it later, all 2 people who use it would also need to adjust their data changes
oh shoot youre right
no matter how many features you add before release, you will still probably figure out that a 1.1.0 is upcoming right after you hit publish
That's always the bug fixes lmao
those go in 1.0.1. small fries
Yeah, I guess I need to restructure my thought process on that, since I don't really want to handle putting translations directly into my mods anymore
do the prize pools currently use normal item spawn fields like shops?
Hm, no, I didn't think of that, I was only adjusting it slightly from how the base game works, so it's just a list of qualified item ID's that I use to generate lists of items to choose from
(for your mod i mean not the vanilla cabinet)
Well, that's basically what it is anyways, this data asset is kind of starting to get away from me too lol
switching to that could let you use item queries and an optional peritemcondition to allow different prizes per cabinet
(or just, yknow, a list of shop entry esque entries in the cabinet)
Well, that was easier than I thought lol, though I'm not really sure how to get it to know which cabinet it belongs to through this direction
My original thought was to add the desired prize list to the tile action
is this one asset shared by every single crane game cabinet placed on any map?
like that specific instance of it
I think so? It's a custom asset I've put into the content pipeline so it can be modified with CP and then I'm just making use of it from there
But there's nothing really about the cabinets that set them apart since they're just visual representations of where a tile action is
Just the tile action can be different
im not 100% sure how you've set things up bc i havent looked at the code obv so stop me if this doesnt make sense, but could you make whatever asset you're having people edit with CP a string to CraneData (or w/e) dictionary like Data/Objects is, and then have them specify the ID of the crane in the tile action
If I understand correctly, I think you described what I was considering lol
i'm seeing a lot of switch cases in here
Better switch cases than hundreds of lines of if else
Originally I did, but I've added back in a way to do them
probably! admittedly i think i was misunderstanding a bit at first (or rather misassuming i guess) how you already had it set up when i suggested the item spawn fields stuff. though i do think those are still good to have anyway for stuff like this
Yeah, it's unfortunately a game of telephone with me just describing what I'm doing lol
i have 0 idea what is doing what, but does the dictionary bit not let CP add entries?
provides users with more options and flexibility without you having to do extra work to support it 
And I'm terrible at telephone
https://github.com/rokugin/StardewMods/blob/main/CraneGameOverhaul/assets/data/PrizeData.json
This is what my example looks like currently
All my code is here so feel free to look at if you want to descend into my insanity lol
minigame insanity ahoy
But yeah, I think I will definitely make use of the item spawn field because it does seem like it'll be more useful even if I only end up using some of its features
you already have a default entry, that's great - no need to refactor it lol
i was gonna say yeah, doesnt look bad at all bc of that. the common item spawn fields would mean you wouldnt need that Season stuff either
Anyways, I am off to walk around a little Japanese import store for a while
Thanks for the suggestions, I'll see what I can whip up when I get back to it later
i should probably be off to finish the documentation for BETAS. and by finish i mean continue staring at a blank README.md like i have been for hours while i watch videos on the side
i rewrote my faq to avoid event coding so i feel that
i have to stay up for at least another 3 hours so i'm no longer on the wrong circadian anymore
ah documentation. the urge to go "here's an example content pack, if you want more read the source code" is tempting sometimes I admit
the problem is i honestly think just making an example content pack would actually be more work in this case
i don't remember the amount of stuff you've put into it
just a load of triggers, actions, and GSQs, and each trigger has a whole bunch of mod data i'd need to remember to include too, and making sure theyre all included in every GSQ in one big long Condition line.... gross
15 GSQs, 17 triggers, and 8 actions (as of right now)
A example mod would need to be like
21 GSQs actually i was out of date with myself
i mean if you'd like to pull me away from this event coding i don't mind throwing it into my massive trigger action list
"button's literal take on everything happens everywhere all at once"
honestly i know that once i actually start writing the documentation and have stuff i can copy paste, it'll be easy
starting it tho...
"The Everything Bagel" should be the header image
i was gonna edit the stardew h orse onto the "Everything happens so much" tweet
Can u build it from c# docs
im not smart enough to know how to answer that so the answer is probably "could someone? yes. could i? no"
Also what will u do with BETAS when it is exist for everyone?
probably sit around in this channel and help with random questions and go "i can add that to BETAS if you want" whenever someone asks if theres a GSQ/trigger/action for something
i do plan on using it for myself too for my eventual NPC mod
thats a long term goal though
I don't think building from source doc is easy because of all the differences between platforms in regards to building. I've had to:
- Fix case insensitivity for mods developed on Windows because I'm on Linux
- Delete build artifacts manually because the build script put files in places that don't exist on Linux, or exist in the wrong location
- Remove references to Windows-only post-build executables
windows constantly telling me to upgrade to win11 you're right though
"but doctor, i am the windows person"
for my case I was hoping to like, get some markdown files from the docs I have in my model classes
As basis for content making guide
this is me but with machines - I periodically search for references to "machines" in this channel and say "EMC supports that feature!". perhaps one day you too will be like that for GSQs 
i like to think im already there for books too but in fairness for that not many people care to make one and theres only like one common feature people wanna do with em soooo.... 
speed +5
you can do that without any other mods to help if you want
book that forces my multiplayer friends to speak in dwarvish so i don't have to see them type
It's not a thing I need rn but does emc support custom incubators
Book that makes the fishing game autocomplete
I think the game already supports this? no need for EMC
Was thinking about this while looking at the machine rules that have OutputMethod and therefore get marked as too complex
besides obviously the very custom effects like the books in my mod and the other popular book mod on nexus the only really useful thing people usually wanna do with books but cant (easily) is recipes, which is why SPU supports that, but aside from that books are just not very useful on their own without C#
is any one up for helping me with a moding problem?
Ask away
75% of this channel is "mod authors chill", waiting for the fun problems
Oh but I recall someone needing to do C# stuff to get ostrich incubator working
(Tbh I would actually like it if there was a book that made the fishing game autocomplete for fish under difficulty 50.)
thank you, my mod is loading but nothing is happening? the smapi log is clear and the json code is good
Any ideas?
wouldnt that still get annoying bc the fishing minigame would still have to open first regardless, like CJB Cheats auto catch
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.
heres the error https://smapi.io/log/7def57f537034165a6c6d88b2f74491d
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 23 C# mods and 60 content packs.
Is it a content patcher mod
was it for Slime Incubators, which is actually a hardcoded mess? I was thinking about that but another person was already working on it
Ah yeah thats probably it 
Why would any of this affect the generation of Markdown from Doxygen markup?
I misunderstood the question (was thinking about "how to build this code from source guide") and used it as an opportunity to rant about building
(I'd certainly argue that it's not a good way to generate a readme, since those docs are for developers, not users; but it's definitely possible.)
Don't do it over just one frame then
Space it out a bit
We can make this a pleasant experience
i am certainly reading that .json, but my sleepless brain is only saying, "why is there a seasonal token on everything"
There's an EZ Fishing mod that does this already (minus the book)
For easy fish only?
It looks fine but I would try patch summary
This one, it's got source: https://www.nexusmods.com/stardewvalley/mods/4806
To double check that your loads are last
Another thing is that you may want to use the new appearances system instead of content patcher conditions
ahh i didn't want to recode it put needs must
One of the options is "skip minigame" which is auto-catch.
less bloat and clearer festival conditions when you're using appearances
If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...
i think atra doesnt want auto catch if the fish is normally supposed to be difficult though
like breams, auto catch sure, but octopus, those you need to work for
It's the recommended approach for 1.6
according to the description it seems like what they're doing for easy fish is just to make the bar autochase the fish, not skipping it?
It can do both
oh wait nvm I didn't read further
I guess so. In 1.6 I'm always using targeted bait so I don't really waste time catching easy fish except for the occasional bad RNG roll.
Anyway, point was, it's got source, so you can do whatever they're doing.
But what I wanted was to remove the boring time wasting the bloody bar isn't even moving bits
Just modify it to look at fish difficulty.
its not difficult i think atra just didnt want to do it themselves 
it would be a decent book option i suppose
Personally, I find the fishing trash RNG way more annoying than a few boring catches. But, that's the intended mechanic, so I'm not modding it away.
Do u think it's a good idea to make an alternative fishing mini game that's more cursed
spirittea cursed fishing minigame
i want a mod that adds ffxiv style spearfishing
I'm thinking of the one from persona 4 it's awful (affectionate)
don't tempt me
too late i think
i'm horrible at spearfishing but it do be a good brain rot
oh i was going to work on a spearfishing mod and decided i didn't actually wanna do it lol
or randomizing between multiple possible fishing games, and add Hades' one in there (to those unaware, you have to wait for a sound/visual cue and press the button within half a second. and yes there are fakeouts)
Worst fishing minigame ever.
That one is easier than stardew tho
Yeah, but somehow even more annoying.
be extra cursed, go yakuza 0 fishing
Maybe it's just because fishing was such a pointless thing to put in that game.
take the worst fishing minigame one can think of and combine it with the word "Realistic" which means it takes several in game hours just to get one good bite
"Immersive fishing"
any horror fishing game
every game needs a fishing minigame in my opinion
Yakuza 0 fishing is fine, the cursed one is from Yakuza 3
Got the Skyrim vibe, and even a bit of a double entendre.
we'll get some important innovation on how to make the worst one!
Maybe eventually
But I wouldn't hold my breath
Oh wait I know!
if you've got an amusing book name for it i can put it on my list for after 1.6.9
Make it a localized programming language
Where the programmer has to be a specific amount of polite
if possible (please check fish == not too difficult) then if its not too much trouble { catchFishNoWorriesIfNot() }
fishing minigame where you have to typetolearn the proper underscore casing per direction
oh fuck what was the language that did this. it's escaping me
intercal?
nvm that's the incomprehensible language
wait intercal actually uses "please"
that's it! intercal
i'm laughing
i like that in intercal you can write "PLEASE NOTE:" as an inline comment bc the line has "NOT" in it so it gets skipped. very nice
Is it possible to change the sprite of a bundle in the community center with a custom image rather than using JunimoNote; if so, how could I go about doing it?
(unless you're the hardcoded racoon bundle, apparently)
Fishing minigame but sudden ddr
a whole extra constructor that allows changing the texture of the junimonotemenu note... only ever used by the raccoon. incredible
Part of what makes the game feel special tbh
A lot of little things have special hardcoded behavior
Well dang. Is there any additional mod that could help with adding an additional icon for the bundle, or must I have to find a work around if any exist?
actually
my brain cannot comprehend what is being asked
it seems like you can specify the override in the raw bundle info string too?
im not sure which texture it actually controls though, if its the note background or the picture
it might be both even
never mind its not both (i think) its just the picture you'd see in LooseSprites/BundleSprites, not the menu background itself. womp womp
unless thats what you wanted CosmicSnek?
Yes. I wanted to change just the images, not the background.
well i guess you got 3 spaces 
it seems like the 5th index in the bundle string, then, determines the texture override
i originally thought you wanted to change the texture of the little slate
in the form of TextureAssetName:TextureIndex i think
that you interact with to open bundle menu
is that really the sound casesensitive name
throwDownITem
it is, i'm gonna lie on the ground
Fishing minigame but it's calculus
which notation
please....... no....... i'm already dreading calc 2 in 9 days 
leibniz ofc
correct answer
Fishing minigame but it's writing a transpiler on an obfuscated version of the game before the fish gets away
.... I'm just gonna sip this tea on a beach
take me with you, but i wanna get a margarita
Are you dealing with mobile again?
Newton ofc
well it was nice knowing atra while it lasted
I wish Stardew had afternoon weather. Like, storms. From once sunny skies.
be the change you wish to see
is it part of Cloudy Skies? if not maybe it can be added
I took a two week break in the middle of trying to solve a problem with some nested stuff, came back and have no clue what I'm looking at anymore.
(also is "change weather" trigger action part of Buttons' new mod? nudge wink)
i did briefly think about it but i wasnt confident that i understood the consequences of changing weather mid day (e.g. for schedules, dialogue, content patcher tokens, etc)
i didnt think it would be as simple as just Game1.weather = "Rain" but admittedly i didnt really look into it,
Ok so in my spell class Bolt, I have this to load the texture.
But, do I have to put the load also into the Mod Entry?
You should probably just do it in AssetRequested
all these loads I mean
I made the mistek of pulling pathos' repo before 1.6.9 update and now I gotta add back a removed extension method to get stuff to build 
1.6.9 is out? 
No but very soonโข๏ธ?
sorry if it sounds stupid I'm not familiar with these whole modding thingy
- are you sure that you actually updated stardew? i would also update to the latest smapi just in case, too
- this is more for #archived-modded-support i think
Oh okay, Thanks!
I don't think I've seen that in my examples, is there a doc for it?
I downloaded stardew recently so I should be good to go right?
ty!
and then in code you'd just read from the asset name
the reference tab pile grows...
Hi, I'm new to modding and have been trying to make sense of things
I have been looking at the Farm.tmx file and wonder if these blocks do anything or which tile they are actually pointing to
<objectgroup id="7" name="Back" visible="false" locked="false">
.
.
<object id="25" name="TileData" x="1104" y="144" width="16" height="16" rotation="0">
<properties>
<property name="NoSpawn" type="string" value="All" />
</properties>
</object>
<object id="26" name="TileData" x="1104" y="160" width="16" height="16" rotation="0">
<properties>
<property name="Buildable" type="string" value="f" />
</properties>
</object>
.
.
</objectgroup>
I am especially interested in the Buildable = "f" objects. Any help is greatly appreciated ๐
they are tile properties https://stardewvalleywiki.com/Modding:Maps#Known_tile_properties. the "f" value itself doesn't matter, it's just no-value vs. any-value check as far as i know. if you open the tmx file in tiled https://stardewvalleywiki.com/Modding:Maps#Using_Tiled the terminology on the map modding page might be easier to figure out
should farmhand be allowed for EditMap? should I add When master only?
"Action": "EditMap",
...
"When": { }
}```
Im just curious but is modded gameplay supported in iOS? Are there compatibility issues I should know when making mods?
(i just noticed that i missed the part "which tile they are actually pointing to" but i suppose it's easier to see in tiled as well)
hi, does anyone have a tutorial on how to make customizable farm maps? like maps with config options to remove terrain features, etc.
oh my goodness, I didn't know the wiki had that info too, thank you~ 
kinda wish there was a 'manual' update rate because i don't want to check for this thing all the time, but just for like, the once a month thing or however long i set the query to
i am now approximately... half done writing the documentation for BETAS 8') ive been at it since i first mentioned it last night. god i hate writing documentation maybe its not too late to quit modding forever actuallyโ
i do not look forward to the midi parser documentation
i must push through and finish these events i swear i'll have at least this one done before i'm forced to suffer play ff14 in roughly 13 hours 
........okay i'm done dealing with vortex eating my mods
i'm not aware of any tutorials, but probably you'd do it with content patcher's config system https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md. the specifics really depend on the type of edit, content patcher can edit map and tile properties on its own without map files, but bigger changes generally are better done using a map file to patch the target map (or you could even have different versions of the whole map that you use depending on the config option)
oh yes i was planning to make a map file for that! i was looking at aimon's maps and was wondering on how exactly to do that. thank you 
.....wow okay why do people not sing stardrop's praises more 
Hi everyone, I wonder if anyone knows how to add ambient sounds to indoor locations? Sounds like babblingBrook only work on outdoor locations but Caroline's sunroom still has the ambient sound. I have cloned the room and I think I have all the same settings but the ambient sound still doesn't work. Making the room outdoor true adds clouds etc so I don't want that. I have trouble locating the effects of the sunroom as it has besides the ambient sound also a butterfly flying around.
i assume they are not part of the SunRoom audio track?
the sunroom has it's own music context of just "SunRoom"
TreatAsOutdoors should work as well
is it set in Data/Locations?
yeah: "MusicDefault": "SunRoom",
okay, so you might need to set your location to use the SunRoom music assuming you haven't done that https://stardewvalleywiki.com/Modding:Location_data#Music
is there like a console command to unlearn a recipe? that way it can be triggered in the shop to buy from it again?
No they are not, it's a seperate file
there may be a trigger action for that, so possibly a command too
In the code sunroom has default context for music
"Music": [],
"MusicDefault": "SunRoom",
"MusicContext": "Default",
This sounds promising, thank you very much!
Hello, does anyone perhaps know if the query token and dynamic tokens can be used in the X and Y coordinates in the FromArea and ToArea fields? I've been trying to make this line to work but I don't know what I'm doing wrong
"FromArea": { "X": "{{query: {{X}} + 177}}", "Y": "{{query: {{Y}} + 42}}", "Width": 1, "Height": 1 }
i have used them in that context without problems, but i don't remember how exactly and i don't have the mod at hand to check
is the problem that the patch isn't applied or something else?
The TreatAsOutdoors worked after all, my mistake. Thanks very much for the help!
hello, were you referring to my question above?
yep
I see! Yes, the patch wasn't applied, but I changed the value of my dynamic token to integer in case CP couldn't perform the arithmetic logic to a string, but now I get this error in SMAPI the source area is invalid: X value '' can't be parsed as an integer.
found it i think.
MarkCookingRecipeKnown <player> <recipe ID> [known] trigger. Need this to be written / applied in the content.json only?
i can't look right now
i don't know how the query would return an empty value apparently, but maybe patch parse would show something useful https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/troubleshooting.md#parse
you can probably just do the debug variant: debug action MarkCookingRecipeKnown Current <Recipe ID> false
i assume you're doing it for testing purposes, so it's probably not worth it to be in actual code
thank you!
edit: yes, im doing for testing purposes xdd hahaha thank uu thank u!
no worries! โค๏ธ
I tried patch parse, but apparently, the token is invalid
```[Content Patcher]
Metadata
raw value: {{query: {{X1}} + 177}}
ready: False
mutable: True
has tokens: True
tokens used: Query
Diagnostic state
valid: False
in scope: False
ready: False
invalid tokens: X1
Result
The token string is invalid or unready.``` I'm not sure how to fix this,,
how is the X1 token set? seems like the problem is with it
Just like this
"Name": "X1",
"Value": 0
}```
Should the Value field be enclosed with double quotes? Because I tried it and it didn't show any difference with the result
i don't think CP cares about that. can you upload the content.json to smapi.io/json and link it here? there could be formatting error that causes the dynamic token not to work
Dynamic tokens won't reload with patch reload, iirc you need to close the game and start again for it to reload?
I don't remember if it needed to be string or can also be numbers
okay. i don't know what the problem is then (the validator complains about them not being in string format, but that might be just the validator being stricter than CP)
Then it might have to be string.
sure, shouldn't be harm in changing it back to a string
If you reload the game and it still not work you have to put your number in a double quotes
Hi, I tried restarting the game and now I get this error:
source area (X:-1, Y:1, Width:1, Height:1) has negative values, which isn't valid.
Just a question, do Dynamic Tokens work as variables in other programming languages? Because the patch right above where the error was, I set a non-zero value to the dynamic token which should carry over to the next patch, right?
What happen when you try patch parse it
here:
[Content Patcher]
Metadata
----------------
raw value: {{query: {{X2}} - 1}}
ready: True
mutable: True
has tokens: True
tokens used: Query, X2
Diagnostic state
----------------
valid: True
in scope: True
ready: True
Result
----------------
The token string is valid and ready. Parsed value: "-1"```
Is X2 zero
https://github.com/WeDias/StardewValley/tree/b237fdf9d8b67b079454bb727626fefccc73e15d
im looking at the decompiled code
where is the code for the bomb
the 2nd patch was were the error was generated but I set the value in the first patch tho?
{
"Action": "EditImage",
"Target": "Maps/TownInterior",
"FromFile": "assets/TownInterior2.png",
"PatchMode": "Replace",
"FromArea": { "X": "{{query: {{X2}} + 158}}", "Y": "{{query: {{Y2}} + 42}}", "Width": 1, "Height": 1 },
"ToArea": { "X": "{{query: {{X2}} + 158}}", "Y": "{{query: {{Y2}} + 42}}", "Width": 1, "Height": 1 },
},
{
"Action": "EditImage",
"Target": "Maps/TownInterior",
"FromFile": "assets/TownInterior2.png",
"PatchMode": "Replace",
"FromArea": { "X": "{{query: {{X2}} - 1}}", "Y": "{{query: {{Y2}} + 1}}", "Width": 1, "Height": 1 },
"ToArea": { "X": "{{query: {{X2}} - 1}}", "Y": "{{query: {{Y2}} + 1}}", "Width": 1, "Height": 1 },
},```
yes but I set the a non-zero value before the error happened
!decompile Need 1.6 decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
What if you do patch parse {{X2}}
Query doesn't change value of token, if you had X2=0 in the dynamic token section then it's still 0
I am also pretty confused about what you are hoping to do with dynamic tokens here, why not just write the literal number instead of using query
I see, so dynamic tokens are not global (?)
Oh I was trying to achieve a sort of a For(Loop) method with CP but that was the best one I could think of ๐
They aren't variables that accumulate values
Is your dynamic token a value which can be set with config options
Actually, send the whole content.json again
if you really want for loops then I'd just use C# 
no, but the changes I was aiming for are appended by constant values
Are you just, trying to change the game tilesheet?
Why not using exact value as coordinates
I'm a bit scared to dip my toes in C# since it's been ages haha
thanks anyway!!
yes I was trying to change the tilesheets, and I was too lazy to type every single coordinate and tried (and failed) to find a way to simplify the process ๐
You just want to change parts of it right, not the whole tilesheet?
Content patcher will prob never implement accumulating tokens like you are imagining because it's designed to be unordered
So that any asset can be invalidated by itself
(honestly not quite sure what's easier in typing X+152 rather than the direct value)
Without concerns about state
ah thanks, i see the code is a little different in this version, and i was able to find the code for bombs (in TemporaryAnimatedSprite.cs, if anybody in the distant future searches this message)
yup but I had to be careful with the coordinates so that it won't conflict with other retextures
I see!
I guess you can use valueAt and such, but honestly, as long as you use the exact value and correct patch mode it won't conflict (that much)
Oh I was trying to like define it once and then just use + 1 on the succeeding patches but now I know that it doesn't work ๐
Direct value are just easier, and maaaybeee better troubleshooting and performance? Idk ๐
Yup, will take note of this from now on! Thank you everyone for your help!! 
is there like a quick way to reload mods so i don't have to like restart the game over and over again
patch reload uniqueid if you made edits into your default.json (if you have one) reload_i18n then patch reload uniqueid
the above about dynamic tokens persists though, that one you can't get around without fully reopening the game
oh sorry i'm making a mod in c# not content patcher
not sure if that's relevant to me
alrighty thanks
What's the simplest way to determine if Elliott is on his book tour?
"HasConversationTopic": "elliottGone"* seems the most likely to work, though I think HasFlag does too, since it adds a world state ID
Check to see if there is a bunch of ads for his book?
HasFlags + World State IDs = problem for Content Patcher stuff
I'll take the CT since the only goal is to prevent Elliott dates if he's on his book tour
hmm...wheres the scene where we arrive at GI for the first time? i tried looking at islandsouth, beach and boattunnel already, i wanted to check how something was done in the event
BoatTunnel.cs and partially stored in string data, it looks like? 
Now I'm thinking "if other expansions have libraries, they should have fliers for Elliott's book if that event was ever seen" XD
is there a scene for arriving on GI? i thought it just has crab spawns
I don't recall anything happening on actual arrival, so I was just looking at the first visit stuff in StartDeparture
if u mean the boat trip then it's BoatJourney.cs, which is a mini game cutscene
oh no i meant the boat arrives and we plop out moment or w/e
or do i remember that wrong....
theres the scene where we ride off and arrive and thats it p much
curse me for always skipping it to not remember right
idk if theres a scene
The only GI scenes to and fro are the one boat journey thing like chu/e mentioned, otherwise it's just a minor "all aboard" as you go and you're standing on the boat as it leaves either Willy's shop or the Island
The all aboard only sometimes happens and is only on the Willy's shop side
or was it jsut we sail away and then plop boat and farmer at the island
the second, essentially, for all times except #1
there's some small integrated "cutscenes" with the flame thing and similar but they aren't event per se, just code
I just wanted a reference on how to have the boat be there and farmer and willy appear fdfs
i dont think willy ever comes out lol
i know i can make willy appear and stand there but i was mainly wondering how to get the boat just being there
yeah. i remember it being weird that you just get unceremoniously dumped at the island
idk you could use a temporary sprite to set up the boat right?
does anyone know if there is a console command for UNcompleting a quest?
(New mod idea - event that occurs the very first time you land on GI)
ive only done really simple events so far so im like lost lol
There is, theSamePlant, but I don't remember it off the top of my head
I know there are multiple ways to forget a quest though - it's either some console command or forcibly running a trigger action or similar
dang. that console command page was what i was looking at
i feel like i've done it at some point too
yeah i dont see any under the quests section
but like..maybe i just cleared all the flags
guess i gotta read up on temporary sprites, huh
Hello
hi
thx yall
Hi! How are you doing?
do you have a modding question?
ill jsut come back crying when I fuck up my event 
(Generally this section is for modding questions and it's generally straight-to-business here - if you're looking for conversation about mods, #modded-stardew is your best bet)
Nothing better than trial and error!
you will get it first try ez game
at least i am smart and wrote some kinda script i can go by so I dont gonna think about what to do and just HOW to do it lol
How i should start modding (i mean, i quite know how, but i need to know more).
Depends on what you mean by start modding
do you have a mod idea in mind?
Playing with mods or making them, and if the latter, see chu/e's comment
Mmh, i would like to make mods for Halloween (even if it isn't Halloween) because it's my fav season.
Ik the mods for halloween, but i wanted to make my own, why not.
!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.
If you dont have programming experience, it's easiest to start with a content patcher mod
as u know halloween in stardew is spirit's eve
so read the first bullet point
do you wish to modify that event?
I only have 6 years of Lua. I stopped with the others.
Well whether you make a json/Content Patcher mod or a C# mod depends on what exactly your idea is
so feel free to read through some of the links above and figure out an idea
Okay!
people here can help give recommendations on what path to take once you have a specific idea
Anyways, C# is like for textures pack? (didn't understand this, sorry).
do we need to do something in particular to get the debug junimo huts from the big farm setup to start working..?
the huts are there, the crops are grown, yet they aren't spawning 
Side question, apologies for interrupting this - I'm toying with the idea of trying to let the user know their date would have been Elliott but he's on the book tour (right now it would be a silent no date). As such, I need to check on the behavior of dynamic tokens - do they evaluate from top to bottom or definition by definition?
C# is for changing fundamental game mechanics that are not easily accessible via JSON modding. For basic mods like texture changes and item additions and NPCs, you do not need to use C#
Top to bottom yeah
Json still good for textures pack? Or there is another way for them.
Context: The easy way to prevent dates is to set DateInterest to 101. However, this then screws the check to see if Elliott would have asked that day, so I'm either making a weird token check just for Elliott, or I'm looking to see if I can have it calculate DateInterest initially, check THAT DateInterest, THEN set it to 101
use Content patcher/json for texture packs
maybe try checking the junimo hut range with data layers, unsure what is meant by "debug junimo huts from the big farm setup"
Okay! Thank you so much!
I mean I'm using the debug setupbigfarm command to quickly spawn in some huts on a new savefile
Me looking at the "list of frameworks" page: Hmm, I should update that for 1.6...
...don't feel like it
wow til thats a thing 
I also used the command to force complete the cc and to give the magic ink hoping those were requirements, but it didn't change 
perhaps it'll work if you go to bed
tried that too 
this icon?
ya looks enabled 
I thought maybe the force grow crop was affecting it too so I slept 4 days for new parsnips but nope lol
can only speculate some mod shenanigans happening here
omg... I should've tested that earlier ๐คฆ
none of these mods should be affecting it, but clearly there is one
Is it possible to use big objects--like kegs--as requirements to complete community center bundles?
not without C# i think
CCCB's framework doesnt allow for qualified IDs, so it would be assuming that everything is an Object
as opposed to a Big Craftable type which is what you're talking about
oops... not even a mod incompat thing
junimos come out at 6:10, when the time changes
ok so i actually ate before i started working on my event lol
is it only possible to animate 32x16 i dont see anything about bigger sprites (wanted to animate constance fishing in the event)
use a temporaryanimatedsprite?
i know its possible i just dont make events so idk the technical parts
why do junimos have two shadows? 
one is drawn in the junimo+harvester classes, then another from.... NPC maybe? idk so weird
cc junimos use the NPC.HideShadow NetBool, but harvester junimos don't ... 
Use temporaryAnimatedSprite like 6480 said. I don't think there's a limit to the size.
I wonder if I should add some of mine some time - a certain big, popular mod is using one, that's good enough right? ๐
on a more serious note lots of post-1.6 goodies is missing there - EMP, Cloudy Skies, Special Power Utilities etc.. I'd add them myself but I don't know what's the 'protocol' around updating that page so to speak
so I jsut use that instead of setting her up as an npc in the event? (or, well, until she stops fishing)
it would be nice if the flowchart is redone as well
since content patcher ate like half of these
i think it needs a complete rewrite for 1.6
and we can just remove the flowchart
it's hard to follow anyways
I think it's more like 90% lol
frameworks in a post-1.6 world are usually CP extensions
If you want her to act as a normal NPC as well, you'd just include her in the setup but have her off-screen (or warp her off-screen if you want her to do NPC stuff, then fishing animation) and then warp her on screen when you're ready for her to do NPC stuff. I have written an event where Hiria is a tempAnimatedSprite first and later a normal NPC.
like it actually needs a rewrite with an explanation of the game data model and how content patcher fits into that (and list as many things that CP can do so new modders understand if their idea can use CP), THEN a list of every other framework that supplements what CP cant do
at that point it could just be a nother page
i just dont feel like doing it
huh...lets see if I can get that to work
Let me know if you want help with the command - but also make sure you use the info from the migration page to write it because it's way more useful than the event page info https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Event_changes
the framework I'm working on sure is lol
help thats so detailed
ok yeah no i am confused i do need help setting this up
like, theres several thing idk what to put
maybe i try addtemporaryactor instead without animation cuz i really dont know to do the other thing 
pls I am already stuck at- well i am not even posistive i did it right so far
waht I got so far is this
temporaryAnimatedSprite assets/Images/Constance/Fishmonger_spritesheet.png 0 128 16 64 120 4 1 21 44 false false
and this is the tilesheet
wel, the part that matters is on there
Ok so first things first, have you Loaded Fishmonger_spritesheet.png somewhere else in your code? You'll be referencing a game asset in the texture field of the command itself, not a file in your mod folder.
i have only loaded it as the npc spritesheet in the dispo
If it's her normal overworld spritesheet, that's fine. What did you make the Target when loading it?
hi, is any one up for helping me with appearance code?
Ok then you'd make it "Characters\\TheFishmonger" (although you should really be giving your NPCs more unique internal names than that)
Yup I can do that! What's your question?
that reminds me i also dont know how to swiitch out the temp sprite with the npc when its time cdsfs)
I can teach you how to do that as well
ok, i switched it out
im new to appearnce and have no idea why the images aren't loading
With the double backslashes?
(and yeah i probs should but its an already established npc so i fear itll break everyones game who has her in it)
yeah I copy-pasted lol
To begin with, your sprite needs to be "Sprite": "Characters/Elliott_Spring". You also don't need a separate EditData block for each season - you can do them all in one.
Ok cool. Your x y coords look correct and so do your size numbers. You've said there are 120 frames in the animation though which seems...massive. I can only see 4 frames in your spritesheet.
Wait sorry I swapped some numbers around when reading. Ignore that! You have 4 frames.
oh no 120 was supposed to be how long each frame was...and honestly idk if thats correct
No you were correct, sorry Void. I was alt-tabbing and read the 120 as being after the 4.
like, I have the schedule animation of the fishing like this and wanted to mimik it
"TheFishmonger_fish": "8/8 8 9 9 10 10 11 11/8",(used spacecore to make the sprites longer hence the different numbers)
You should just be able to add 0 0 1 0 0 0 after the second false and then test it.
how would i do them all in one block?
so, temporaryAnimatedSprite Characters\\TheFishmonger 0 128 16 64 120 4 1 21 44 false false 0 0 1 0 0 0/ ?
See how you have your festival ones in one block? Just add all the other ones into that block too.
{
"Action": "EditData",
"Target": "Data/Characters",
"TargetField": [
"Elliott",
"Appearance"
],
"Entries": {
"{{ModID}}.Elliott.Spring": {
"Id": "{{ModId}}_Elliott_Spring",
"Season": "spring",
"Portrait": "Portraits/Elliott_Spring",
"Sprite": "Assets/Walk.Sprites/Elliott_Spring",
"Indoors": true,
"Outdoors": true,
"IsIslandAttire": false,
"Condition": "TRUE",
"Precedence": -10
},
"{{ModID}}.Elliott.Summer": {
"Id": "{{ModId}}_Elliott_Summer",
"Season": "summer",
"Portrait": "Portraits/Elliott_Summer",
"Sprite": "Assets/Walk.Sprites/Elliott_Summer",
"Indoors": true,
"Outdoors": true,
"IsIslandAttire": false,
"Condition": "TRUE",
"Precedence": -10
}
}
},```
Yup give that a go.
ahh entries section ok
Base game uses -100 for Precedence, so you might wanna set yours lower than that
will do
I think that was how it worked
Won't matter. I have mine all set at 0 for precedence and they all work.
Oh mind you - custom NPC
So ignore me!
I always forget that people edit vanilla NPCs lol
I think for vanilla NPC's all you have to worry about for appearance is beach and winter
For fighting Precedence
I really hate when my discord stops working ihcbkkk
Maybe not even beach since that's not set in appearance anyway
Could also just null those lol
ok, there we go
Oh yeah that's true
Sounds like a normal start to me lol
Is it in an area that doesn't have events?
I just tried testing a mod that I had set to depend on another mod, but I'd forgotten to install the other mod
no its on island south i already got another event that does work there
Typo somewhere then?
hm could it be ebcause i ahvetn seen an event i set as needed to be been
That shouldn't affect debug ebi I don't think?
Time for me to learn how preconditions work
oh wait
(debug ebi will not care about precondition)
Why is it that everytime i am ingame i cant click anything in discord lol?
I wanted to say i found further up some text in smapi but dkfjfk
huh waht did i wrong now i just added a random dialogue to not have the event empty
brb throwing it into the parser
oh
fucking love punctuation n shit
oops i knew i forgot something
however
I am jsut realizing i might need to rethink my idea
just realized that everyone will be hidden by the goddamn dialogue box most of the time??

You should just be able to move the viewport to show the characters
I used viewport 3 9 clamp/ to get my viewport to be low enough that the dialogue box didn't cover my characters in a small map.
yeah but the dialogue box is right where they stand
If you move the viewport so the characters are at the top of the screen (not map, screen) then the dialogue box will be below them.
The dialogue box will be over black space instead
Ok lemme try
decided to make a draft of the potential rewrite here: https://stardewmodding.wiki.gg/wiki/User:TheSelph/Sandbox
hm
hey can i load all my portraits in one like this?
"LogName": "Seasonal Portraits - Spring Portrait Load",
"Action": "Load",
"Target": "Portraits/Elliott",
"FromFile": "Assets/Portraits/Elliott_Spring.png", "Assets/Portraits/Elliott_Summer.png",
WIthout the viewport command
ugh i am such a fucking idiot
thats amazing
I really should refresh my memories with my old heart events before i do a new one
You can probably remove DGA, seeing as it's never updating to 1.6 (at least by me)
Yes, we should be removing anything deprecated in 1.6
so new modders dont get confused
thats why it feels like it should be a second page, because the info on the page currently works for 1.5 modders (the very few of them)
yo dont kill me but i actually have her fishing in an event already? i couldve looked there sob
but as a template for the page i think it works
I hate my hole ridden brain that forgets everything all the time
No, because they will just all try to load into "Portraits/Elliott" and I don't think you can have more than one file in the "FromFile" field. However, you can do this (I have never personally done this so I might be slightly off with the formatting):
"LogName": "Seasonal Portraits - Portrait Load",
"Action": "Load",
"Target": "Portraits/Elliott_Spring, Portraits/Elliott_Summer, Portraits/Elliott_Fall, Portraits/Elliott_Winter",
"FromFile": "Assets/Portraits/{{TargetWithoutPath}}.png",
Yeah it definitely makes sense as a second list (probably above the Framework list)
we can ask opinion from pathos or whoever else maintains the wiki
I blame having written that even like over a year ago
Is it using temporaryAnimatedSprite?
I'll fill it in a bit more and then ping him when it's in a decent-ish state
(and everyone's welcome to contribute!)
Is this a page on the main wiki or modding wiki? (I see Selph's is on the modding wiki)
no...
I did
addTemporaryActor TheFishmonger 16 64 21 46 2/showFrame TheFishmonger 8/
!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.
we want to change that first link
I put it on the modding wiki for now because my account isn't allowed to make new pages on the main wiki yet
Well now you know how to use both commands!

Apparently my wiki account still exists, I wonder how much edit permissions I have
i am so sorry for wasting your time fsdfgsgdf
but the intention is to eventually move it to the main wiki yes
I don't feel like it was a waste, don't worry 
i should know myself enough to know i gotta make myself a cheat sheet with important stuff like this so i dont forget
man, i need a moment to recover from that self induced L lmao
Dangit I forgot what I was doing before I started helping Void
Oh I think I was wondering whether to spend hours downloading an MMO to play, play 2 hours and then decide it's too boring lol
hmm
me: why isnt constance there
also me: forgot to set her up 
the saga continues
...yeah, im not made for events
yo what did I do wrong i copied from my other event
i did play the older even first to see the fishing worked
i imagine if you have both the actor loaded and the temporary sprite, it's showing both
i do not know for sure though since i cannot have my grabby raccoon hands on it
a heck i did forget to delete the npc ugh
you can have both if you're using both
it's about timing the warp off screen though
now you can
don't worry, i took 2 hours just to write 10 seconds of two actors climbing down a ladder
being so bad with events is exactly why I wont even think about learning how to code. my brain is sadly weirdly wired that it does not compute
you'd need to read a whole novel of a script first for my event lmao
Void I love programming and I hate writing events
tbh i am at least happy that we can now write the event parts in new lines and not one long one
I knoooow right. It makes it so much easier.
cuz god, id make mistakes jsut having typos n shit...
nbow i at least just get confused on how to do a thing

Aviroen is a wizard to be able to read their horrible monster single line events xD
the errors in log is wonderful to have too

Absolutely.
It is a single line! Wordwrapping helps but it doesn't break any of the commands up so it (any event) is still a giant blob to read.
i'm just a fiend and i hate scrolling, so i just got used to it
unfortunately linkoid's syntax highligher won't work for vs22 or else i'd love the \\ highlighter for when i'm doing breaks
the only unfortunate part of this is when you're doing subcommands but there's something in the game code that won't make it work properly, like positionOffset and showFrame requiring the move command or else the actors just walk into the abyss
honestly moving between programs would make me lose track of what and where i'm doing things even if it's all the same hud (i'm dumb like that)
time to dig for if there's a flag for challenge mines
Saved to the farmer team (Mineshaft.cs@resetLocalState Line 3468)
There's a flag for if a player has reached the bottom of the hard mines, just not if they're active afaik
yeah i grabbed QiChallengeComplete because i imagine that's the part where the player has already gone and touched the shrine n stuff
Should work if you're only checking for the quest and not when the player toggled the shrine themselves
What IDs would you use to get flavored wine or similar?
If the field you're using supports item queries, FLAVORED_ITEM
https://stardewvalleywiki.com/Modding:Item_queries
if not, ยฏ\_(ใ)_/ยฏ
oh i was told with fiery passion, that like a good chunk of people are awaiting the cornucopia artisan goods and the seasonal affixes 
?
i am clueless so i'll just relay the message
who had endlessly recursive pif rooms for christmas?
did they mayhaps mean bagi-ish stuff
Cornucopia is the new version of PPJA More Crops and whatnot
they just released the Artisan Goods expansion not that long ago
but not all the alcohol....
PLEASE I JUST WANNA MAKE SCHNAPPS AGAIN```
o
seasonak affixes.... what
maybe that's from something else
what does that mean
probably Cornucopia is the new version of PPJA More Crops and whatnot this
i mean we have schnapps in the alcohol mod
so probably that
both me and mizu have been really busy though
this gives me that one room in baldheaded gate vibes
no i understand wholly lmao
Seasonal Affixes is one of Shockah's mods
So most likely not being updated any time soon
oh
it came up in topic because someone contemplated sticking to 1.5.6 but still wanted compatibility for my mod
and i'm like, i'm pretty sure there's no backwards compatibility with what i'm doing
idk some people need to accept that their favorite mods may die when they update to 1.6
there's only so many of us with the willpower to port forward
sometimes you cant have the best of both worlds
I thought all of my mods survived the purge, then one of them was absolved into the base game in 1.6.3
isn't that like, the greatest feeling of triumph though
My thought was more like: Welp, no need to fix bugs for this anymore
"Freedom"
It's definitely the best thing that can happen to make a mod obsolete though
would this work? {
"LogName": "Seasonal Portraits - Portrait Load",
"Action": "Load",
"Target": "Portraits/Elliott",
"FromFile": "Assets/Portraits/Elliott_{{season}}.png",
},
{
"LogName": "Seasonal Portraits - Appearance Load",
"Action": "Load",
"Target": "Characters/Elliott_{{season}}",
"FromFile": "Assets/Walk.Sprites/Elliott_{{season}}.png",
}
after a good nap, i've realized the problems you're facing in terms of the loading code:
since you want seasonal and festival loads, you'd have to do separate "When" conditions for each season and have them separated
so when you're doing "Target": "Portraits/Elliott" you have to include the when condition of the season, and your fromfile has to be the actual file
it would then be "FromFile": "assets/portraits/elliottspring.png"
Did you see my reply to your last question about this? I showed you how to do it and explained that having a single target like that won't work. I'm guessing you might have missed it because the chat got busy then. It's here: #making-mods-general message
though someone else already gave a template for the appearances so i mean, to each their own at that point 
the {{season}} token is gonna resolve to current season instead of generating 4 loads 1 per season
i asm using the apperances template, the tutorial wiki says i have to load them too T T
base doesn't have those portraits so i imagine you'd have to conditionalize them yeah?
Why are you suggesting "When" conditions for loading outfits?
you can load those all in one rather than doing it like that
oh i thought they were back to doing the old load that hey had before
my bad 
If you want to load multiple images in one action, you just need to make sure all your images are consistently named so you can use {{TargetWithoutPath}}.
Try the code that I gave you to load your images.
also i notice earlier in your json that you have "Sprite": "Assets/Walk.Sprites/Elliott_Summer", but your load is targeting Characters/Elliott_Summer
i am, im just slow to type lol
Abagaianye did address that earlier too

you can go even further with aba's example and circumvent separate character/portrait loads
assets/{{TargetPathOnly}}/{{TargetWithoutPath}}.png
it do get to be a blobby mess when you're typing them all though, so use with caution if you get lost in text
I thought it would be easy to make the crane game be able to spit out stacks of prizes, now I'm starting to think all the code was set to force stack sizes of one because this shit is broke as hell
i imagine it's not as simple as creating a "bundle" box, that's probably just more work than it's worth
I thought you can get 2 of the same item in vanilla game tho
If you get the same stuff yeah
I'm talking about like a stack of 5 items in one grab
Which like, depending on how I'm doing it, that'll work
But then if I grab three of the same item suddenly their stack sizes all become one
Or when I thought I resolved that, now their stack sizes are all the same but when I try to claim them, I get one from the first stack and then the following stacks just delete themselves as I try to grab them
!codeblock
You can embed code in Discord using a series of three ` :
Your code can go here
Even if not a haiku
Just an example
For syntax highlighting, add the language code on the same line as the first (with a space between, like json). The usual codes are cs (C#) and json.
ah thank you
I'm wondering if I would need to combine the same items into one before putting them into the inventory
It's actually the ` that's on the same key as ~
you could try looking at how letters do it since they can hold multiple items
You can also just copy paste from that embed
{
"LogName": "Seasonal Portraits - Portrait Load",
"Action": "Load",
"Target": "Portraits/Elliott_Beach" , "Portraits/Elliott_Spring", "Portraits/Elliott_Summer" , "Portraits/Elliott_Fall" , "Portraits/Elliott_Winter",
"FromFile": "Assets/Portraits/{{TargetWithoutPath}}.png",
},
{
"LogName": "Seasonal Portraits - Sprite Appearance Load",
"Action": "Load",
"Target": "Assets/Walk.Sprites/Elliott_Beach", "Assets/Walk.Sprites/Elliott_Spring", "Assets/Walk.Sprites/Elliott_Summer", "Assets/Walk.Sprites/Elliott_Fall", "Assets/Walk.Sprites/Elliott_Winter_Indoor", "Assets/Walk.Sprites/Elliott_Winter",
"FromFile": "Assets/Walk.Sprites/Elliott_Spring.png",
},
yay i got it
Just loading the same character sprite for now?
yep doing spring to test
All the targets have to be inside the same set of quotes, otherwise it's not valid json formatting (ie "Target": "Portraits/Elliot_Beach, Portraits/Elliot_Spring, etc")
ohh thank you
Also you still have your sprites loading to the wrong targets
Technically, if they use that same name in their appearance data then it doesn't matter
They need to be "Characters/Elliott_Beach" etc
If they try to edit the base sprite though, they need to use Characters
so im targeting the in game file, not my mod folder
Generally, it's better to follow convention as it makes it easier help
Yeah, your Target is the game files
Yes, the Target is the game file. The FromFile is your mod folder file.
@wanton pebble I've seen a couple reports on Spacecore with the timed trigger actions failing with date night, are you able to reproduce that? If so, does this fix it?
can i do a separate load for the festival sprites? or do they need to be included with the base load?
I think it has something to do with conditional edited to Data/TriggerActions but not entirely sure, so this is a speculative fix.
You can definitely do a separate load.
I load all of my portraits and sprites separately.
thank you, much easier on my eyes that way
The only reason to load them together (that I know of) is to keep your code tidier and do a bit less typing/copying and pasting.
I've seen it too, although I wasn't able to replicate with 1.24.0. I can retest with the latest version on Nexus and then this version in a moment
Hi @ivory plume, I'm currently working on a new page to replace or supersede the current wiki page on framework mods, since a lot of the info is 1.5-specific or not updated to 1.6 (including the new 'CP extensions' mods like SpaceCore).
The current page: https://stardewvalleywiki.com/Modding:Content_pack_frameworks
The new page I'm working on: https://stardewmodding.wiki.gg/wiki/User:TheSelph/Sandbox (my account can't make new pages on the main wiki at the moment)
please let me know if you have any thoughts, and if it looks good, how I would proceed with this. Thanks!
My presumption with regards to the "failed to find the trigger action" portion of the error though is that it isn't your fault - I, in my infinite wisdom (read: my lack of foresight), had the action include the {{Date}} token. However, if there's no date, then the patch is invalidated, but the manual triggers still get entered in, which results in the log screaming
It's the repeating date reminders that happen regardless of the fact that the date isn't around that I wasn't able to replicate and am doing my best to see if I can replicate
Oh. I took a look and wondered if that date token was causing the trigger action asset to refresh and SpaceCore wasn't detecting it properly
yeah. If I get it reported again I'll let you know but that half is totally and completely my fault, and I'm really sorry if you got any reports on it
No worries! I've mainly just seen it alongside existing reports - I did get one report today on it, but they edited their comment to be empty before I got to respond to it
Checking the list of items for matching items and adding the new item's stack to the existing items stack and stopping the new item from being added to the list seems to be an answer
SDV's random is deterministic or whatever right? Like it rolls the same stuff in the same context every time
Hm, I'm using Game1.random but I seem to be getting the same number, it's a small sample size with a small variation
I guess I should probably throw in a log and increase the variation at least, see if it's just luck
I think Game1.random is technically seeded for any given save + day?
seed = (int)Game1.uniqueIDForThisGame / 100 + (int)(Game1.stats.DaysPlayed * 10) + 1 + (int)Game1.stats.StepsTaken;
Hm, well I'm getting different rolls between opening the crane game
Oh I know why lol
the number of times it's called before testing any given not-start-of-day mod function will probably vary
It creates the stack size only once
(not to be confused with the functions that generate a random thats actually just seeded by the day, though (and the games uniqueid obv)
It's only adding one item to the list to choose from in multiple places, this is entirely a me-fuck-up
Is there a way to upgrade a tool in your inventory? (That or make clint finish right away)
Boy howdy is there
I will find the other persons mod, I'm not planning on updating mine unless they stop updating theirs again lol
What happens if you have a tool currently in progress?
Not sure if they accounted for that, I don't believe I did with mine
If they just used the code I linked them to, then the normal amount of time would still need to run out on the tool in progress
Be an easy fix to just make it check when game is loaded though
could i please be told whats wrong with line 27, im so tired https://smapi.io/json/content-patcher/6d67bf2812a549e8ad973bfa760aeb62
I'm slightly surprised Bouncer didn't block that immediately
<@&239770080378880001>
already on it!
Line 26 missing comma on the end
Any time the validator tells you an issue is on line X, check line X-1
!vsc I suggest some software with validation
When creating content mods, it's useful to have a program that will check the validity of your json for you. We tend to recommend either VSCode https://code.visualstudio.com/download or notepad++ https://notepad-plus-plus.org/downloads/
THANK
Now I'm curious what it was.
MLM scam spam
It was some spam junk mail bullcrap
Funny to see it properly written though, usually things like that are scrambled to avoid autoblocks
Mlem
I've never been more sad to not have access to a Yoshi emoji
@light jasper Had a report of SpaceCore's new "additional equipment" menu getting the UI Info Suite tab overlayed onto it - I think this is because it's rendering the tab whenever the game menu is open, even when there's a IClickableMenu.GetChildMenu() active. Is this something you would like a PR for, or would like to fix yourself? (Assuming you're interested in having it fixed)
(The armor icon being messed up is S&S side)
@next plaza are virtual currencies added to the farmer/team in a way that I can just attempt to make use of them if they exist? (in C#)
Last I asked about a fix to the UIInfoSuite tab about a week ago, he said it's not really getting any fixes because they're moving the whole UI to GMCM.
I think that might be possible by fetching the currency data net field I added, but it'd probably be better for me to just add methods to the API for you
@polar escarp Any chance Fashion Sense has a way in the API to allow overriding the slingshot pull back animation? Or do I need to patch FS like I do vanilla?
It's reassuring to know that I wasn't just blind and missing it lol
Ah, I guess that tab will go away then maybe?
Hmm, does pintail work with tuples
ie. something like List<(string id, bool isTeamCurrency)>
Yeah, the tab is going away.
I think Pintail is supposed to work with tuples; not sure if that includes named tuples or just the literal Tuple<> type. Or if SMAPI's version is current enough for it.
Hmm. Guess I'll just return List<string> and have a method to check if the currency is team wide
@rancid temple
public List<string> GetVirtualCurrencyList();
public bool IsVirtualCurrencyTeamWide(string currency);
public int GetVirtualCurrencyAmount(Farmer who, string currency);
public void AddToVirtualCurrency(Farmer who, string currency, int amount); // supports negative numbers






