#making-mods-general
1 messages · Page 344 of 1
why cant you targetfield that patch from SVE Forage Crops?
It has the same Output Rule and Output Item as Artisan Machines and I use the same Triggers, RequiredItemId, but I could definitely be missing something
"Action": "EditData",
"Target": "Data/Machines",
"Priority": "Late",
"When": {
"CornucopiaCompat": true,
"HasMod |contains=Cornucopia.MoreCrops": true,
"HasMod|contains=Cornucopia.ArtisanMachines": true
},
"TargetField": [
"(BC)15",
"OutputRules",
"Cornucopia_PickleSpears",
"Triggers"
],
"Entries": {
"(O)FlashShifter.StardewValleyExpandedCP_Cucumber": {
"RequiredItemId": "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"
}
}
},```
Theirs
in your own patch that runs afterwards (either via false dependency or later priority), target that Trigger and edit the RequiredCount
Parsing these images takes soooo long
I think I did 80+ of them this morning while also doing minor edits
It has a false dependency, but the SVE forage crops patch is priority Late so I assume I need to also be priority Late? Or doesn't that matter if it's already a dependency?
I'm so lost, I still can't get the texture to show up in game (shipping bin error status now)
Also I tried a bunch of different things and none of them worked so I'm gonna post what I did first and hope it was an easy to fix mistake
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers"],
"Entries": {
"(O)FlashShifter.StardewValleyExpandedCP_Cucumber": {
"RequiredItemId": "(O)FlashShifter.StardewValleyExpandedCP_Cucumber",
"RequiredCount": 3
}
},
"When": {
"HasMod|contains=FlashShifter.StardewValleyExpandedCP": true,
"HasMod|contains=Cornucopia.MoreCrops": true
}
},
I tried to change it to Fields but Smapi says [Content Patcher] Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Cornucopia Artisan Machines.json > EditData Data/Machines #22" to Data/Machines: there's no record matching key '(O)FlashShifter.StardewValleyExpandedCP_Cucumber' under Fields.
and that's with priority late
https://smapi.io/json/content-patcher/376e7162313d4ecf8f7b893d8e7a24d0 Json as of now, I think I need a break before I implode lol
yeah you'd need late too
or late + 1
also TargetField one layer deeper
and change only the RequiredCount
"Action": "EditData",
"Target": "Data/Machines",
"Priority": "Late +1",
"TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers", "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"],```
When you say TargetField one layer deeper is this what you mean?
yes
And Entries/Fields (?) would be "RequiredCount"?
[Content Patcher] Can't apply data patch "Stardew Valley Balance Overhaul > Include mods/Cornucopia Artisan Machines.json > EditData Data/Machines #21" to Data/Machines: the field '(BC)15' > 'OutputRules' > 'Cornucopia_PickleSpears' > 'Triggers' > '(O)FlashShifter.StardewValleyExpandedCP_Cucumber' doesn't match an existing target
can you post the output of patch export Data/Machines
"Action": "EditData",
"Target": "Data/Machines",
"Priority": "Late +1",
"TargetField": ["(BC)15", "OutputRules", "Cornucopia_PickleSpears", "Triggers", "(O)FlashShifter.StardewValleyExpandedCP_Cucumber"],
"Entries": {
"RequiredCount": 3
},
"When": {
"HasMod|contains=FlashShifter.StardewValleyExpandedCP": true,
"HasMod|contains=Cornucopia.MoreCrops": true
}
},```
For this?
So, I'm here trying to play my game with the mods I have downloaded, and everything was working fine, but my mods just suddenly disappeared from the smapi window when the game starts up so if anyone could help, I would be grateful
you're looking for #1272025932932055121 this is for making your own mods
Okay, thanks
sorry, as in run that command and post the file it will create on smapi.io/json
Yes sorry, I didn't know if you wanted me to post a specefic patch with it
hmm, I see the problem
the Id for all 3 of the trigger is "ItemPlacedInMachine", because none of the patches specified a specific Id
this could be difficult because you have no way of specifying which trigger you want to patch with CP
I suppose you can target array index, but that might be fragile
I think the flow currently goes
- Cornucopia adds its pickle spears rule
- The SVE forage mod adds a 2nd trigger
- Your mod edits the 2nd trigger
then you can target "#1"
which will hit the second trigger
change (O)FlashShifter.StardewValleyExpandedCP_Cucumber to #1 then I think that should work (see above)
do check with a new export to make sure your change is in
I am completely new to CP, is putting a HasFlag |contains=flagid entry the dict of a a When for an Action: EditData valid?
wait nvm hot reloading is a thing for cp right
- Content Patcher pack: enter
patch reload <your_mod_id>in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate theConfigSchemaorDynamicTokensections if you use them). - Translation files: enter
reload_i18nin the SMAPI console window. If it's for a Content Patcher pack, also runpatch reloadafterwards. - C#: see the Visual Studio hot reload or Rider hot reload feature.
That did it! Thanks a ton for the help!
Checked the Data/Machines too and it looks fine too
I'll try to remember that # targets a specific thing according to order, should be really useful
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Can't draw texture 'Portraits/Mariner' because it's disposed.'.
what could it mean if a texture is disposed?
Are you Loading that
I'm not, it should be getting the texture from either the Dialogue object or the NPC directly
im gonna leave off making mods until after ive finished the c sharp mod
someone reccomended that
and since i still dont know where to start i think that sbest
also the love of cooking mod gives me alot of weird errors
Someone called Dispose on the texture tbh
sigh its so dissapointing
Evening. Where can I find the id for the Desert Festival, to use with IS_PASSIVE_FESTIVAL_TODAY?
Data/PassiveFestivals
Grazi!
trying to create color palletes frustrating me frfr
||(im using ibis on my phone and the slightest off touch with the dot pen places it elsewhere instead of where needed)||
Hi, if there's anyone around with mp bugs experience, I'm getting a bug where I've got a custom chest, host can open it but the farmhand cannot. Any possible ideas on why (or what should I do to help further)? (Fwiw, My computer is both the farmhand and the host, but its not splitscreen)
Host's log: https://smapi.io/log/e62917db820246b7aed14bf2b4d61157
Farmhand log: https://smapi.io/log/35046904ffc245d99c3b01a3c7373bdb
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home Single Language, with 38 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home Single Language, with 38 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
wonder what mod would do that 
only thought is CP if another texture is loaded... but I would've gotten a lot more bug reports by now
same with Portraiture
im assuming this is a custom chest from your mod or something. what happens if the farmhand tries to open the chest first before the host ever tries
its a very important distinction to be made though is why i ask
whats the code for the custom chest look like
(my thought was that if you were always trying with the host first, it mightve been the host requesting a mutex and never letting it go)
I'm not using a custom object class if that's the question
it is not. i dont know what you're doing to make a custom chest
so if its json or C# or whatever it is, whats it look like/whatre you using
(are you going to ask for your role back again now atra)
First code bit is in OnButtonPressed event, the second is from a harmony patch to SObject.placementAction
Why would i
because now you can have gradient mod author
The outcome doesn't change, no matter if its the host first or the farmhand
I like these colors better
(How do you get these gradient names, btw?)
check #bulletin-board
is there another if block for when you are the main player?
No
how does the main player open it then?
🤷♀️
im just wondering what the reason is for having a buttonpressed event specifically for the non-main player
for opening it
Well, I tried to fix it, cant say it worked
(I use the buttonpressed for a lot of other things)
does that mean this buttonpressed thing wasnt there when you originally noticed the issue
Yep
ahh, i thought you were doing like, right click detection to determine when they clicked on a Custom Thing
I normally do, and tried it here too but it didnt help 😅
Is it possible to edit the homes of custom NPCs? I have three NPCs I want to do this for—Wilford, Jade, and Isaiah. Instead of their homes I was thinking they could live in the Pelican Valley apartments that firedlily made.
is the farmhand log from before or after the buttonpressed thing was added? does the "????" debug logging ever show? if not, what if you make the "success" action of the mutex request some different logging (instead of ShowMenu) to see if that runs?
After
It showed up before I put it inside the requestlock, but I'll try again just to make sure
man. who the heck are those guys /silly
i've never heard of those npcs. is nexus hiding them from me?
i dont know if it'd help or if its even necessary at all either, but maybe a GetMutex().Update(GameLocation) right before that code
im just focused on the mutex bc well, im like 95% sure thats where the issue lies, or something related to mutexes. maybe Chests Anywhere
so id also remove that mod for testing
(mutices?)
Do you mean that Chests Anywhere could be interfering?
you can, though itd probably require rewriting a bunch of their schedules and events
its certainly possible. anything that touches chest mutexes could be interfering, and i dont know what Chests Anywhere's code looks like, but its not a bad assumption to assume it does somethin with mutexes at some point
just better to eliminate as many variables as possible
Is their a different tutorial for that or would it be the creating NPC tutorial?
thank you stardew community for welcoming me i am making potato salad mod
my next venture may just be an unlockable bundle version of the pirate ship.... idea courteousy of my spouse, heh
you can also look like documentation in the official wiki
that tutorial probably does have the most guidance on schedules and events, but no tutorial is going to be specifically about editing an NPC that already exists. theyre written with a new NPC in mind
it just isnt as simple as "change their home location" bc if they have events in their old home location or around their old location, then those need to be changed, but how exactly you change them is not somethiung that can be guided since... its an event written with the other location in mind
schedules would be easier, but it depends on the scheudle and where theyre set to go, which is very specific to each NPC
Nope, it didn't help
Neither of the success or fail messages are triggered, but the block still runs
I dotted out both Automate and Chests Anywhere
is their a sprite design tutorial
going off that code snippet you sent, if neither the fail or success messages run, then it must not be getting the mutex at all, which means its probably not seeing that value is a Chest bc of the ? nullability thing
i assume if you removed that ? you'd be getting an NRE instead
as for why it doesnt see value as Chest, i dunno. i dont know how Chests work when placed
I'll try something about it
also, what happens if you change true to false in your placementAction patch when placing the chest, to make it not a playerChest (whatever that means)
was it always the host that placed the chest in your testing?
Iirc that makes it behave like a regular plain chest, which is what I want
because thats just what they be doin
I think this is going to take all day 😭
The main idea of that chest is when you exit the chest menu, it sends all its contents (except tools) to a specific building that should be built on your farm, so everyone should be able to place things into it
(to make a long answer short, it’s because things go wherever they fit, and even if they were initially sorted using some sort, both the information about objects and the number of objects themselves gets changed between different drafts of the game and different versions of the game and you can’t just rearrange them each time)
VT already did per item patches, so why not just replace the sprites with yours
Hmm
no need to reinvent the wheel if the patch/code exists already
ah
is theiry any sprite making tutorial
Wait explain pls
Right now I'm doing an action for every sprite replacement
if you download vanilla tweaks. there is sprites in the folder. replace them with yours
unfortunately i do have to go for a bit, but i would still try looking into why it seems like your requestlock isnt doing... anything at all, so double checking whats happening to value and making sure you spelled the qualifieditemid you're checking for correctly, etc etc. i know "double check things and make sure they arent null" isnt exactly helpful, but if its not even getting to the mutex part, im mostly just drawing blanks besides that without being able to see the entirety of the code
Can I do that for my own mod? I want to publish this eventually
Or like, soon actually
(a real programmer would probably tell you to use a debugger, but i instead like to go for "put a debug logging statement after every single line" myself)
Like what if this is causing some UniqueMultiplayerId confusion in the game
why debugger when debug logging lines are free
there is only so many ways to write cp item patches
It doesn't
it wont be
My guess is that your block is never being entered
Well, it IS being entered
Also if you want to do it a different way just use the exit function on item grab menu
Ok I willsee about this
I wouldn’t just take an entire mod’s content patcher json without permission for a project as big as this, so maybe ask Tai first?
but you will probably want to delete parts youre not going to utilize
Request lock method just. zzzz
that specific if block though? bc you didnt have any logging in there besides the requestlock, so how are you verifying it
Is the new Chest block entered
🗒️
Oh I didn't think of cheching that,
if you want to rip coordinates of where items are, i dont see why not
@formal crown I'm not all caught up on the message history here, but are you already using a GlobalInventoryId for your chest?
No
That simplifies some of the mutex/location stuff when it comes to farmhands
Would it help/prevent me from doing this? @tawny ore
if the contents are meant to be whisked away anyway it probably is a good idea, since the contents being shared across all of the same chest dont matter in that case
how do i design my own sprites
considering airyn and i wrote the vt code i think i can recommend this as a starting point 💀
Yeah, I'd recommend using a GlobalInventoryId for this purpose
its just a global inventory not linked to any specific chest, but you can place its inventory as a chests inventory
It's a building though, not another chest 
ah, I see
my bad, lani!
Otherwise, you deal with chests having to be in a tickable location, which may or may not be the case for farmhands
all good iro lol
GlobalInventoryId can be linked to any chest or building chest for that matter, you can use multiple - one for each minecart, one for each building
where the contents go dont matter. a globalinventory is just that, an inventory
(I’m more all over the place than usual today lmao)
just a list of items
i rip vt code all the time when i dont feel like doing item patched for shit bc i HATE finding coordinates
Omg I have the grand permission from the codemaster herself
I'm making sure there's always one of that building exists so I don't have to make player choose inventories
its all labeled and nice too so i just strip it down to barebones and use what i need
A global inventory is just an arbitrary list of items that you can access from anywhere, but can also be linked to a chest (i.e. the chest opens the global inventory instead of its own storage)
airyn did the redux so id moreso say its his codemastering but lol
I shall try that right away
(global inventories my beloved, thats how Custom Museum Framework handles donated items)
but yeah dawson. just lift the coordinates per item in the content json
i wouldnt directly copy folder structure bc thats not learning
Fundamentally, Kedi
If the new chest block is entered that chest doesn't have a tick-able mutex (and also doesn't need onr)
Yeah of course. It's alphabetical too so I'm just gonna use it as a directory, if anything
Doesn't need one? 
Also apparently json will ignore comments? It says it doesn't 'support' them but VT uses it so I guess it doesn't break anything?
SMAPI JSON is more like JSONC (JSON with comments)
closer to json5 id say, not that most modders care about the distinction
If your editor supports jsonc, you can make that the default for json files, and it won't report the comments are errors
(but i personally love doing cursed things in my test mods like not using quotes around my key identifiers)
Hi everyone, this is probably a very basic question, but is there an easy way to use a specific item that has variants (like Apple Jelly for jellies) in a recipe? The / in the qualified ID seems to be messing things up. I thought escaping it might do the trick but didn't work
Hey
you need SpaceCore's recipe override thing
It... is not
vanilla recipes only accept exact item IDs, and every jelly item have the same IDs only with different flavors
How should I add a GlobalInventoryId?
Is your chest actually placeable? Or is it associated with something that your mod puts into a location?
Because you don't even necessarily need a chest
Hello! If you're wanting to do pixel sprites, you'll need a program that allows you to do that (if you don't already). I'd recommend looking at the vanilla sprites to get a sense of scale and lighting - you can unpack the game assets to get those.
Yeah
That block makes a chest that only exists in that block
So no one else can access the inventory anyways
Tbh I agree with matt
Game1.player.team.GetOrCreateGlobalInventory("YourMod.ID-GlobalInventoryId");
Thanks for your answer. Follow-up question (only this one), recipes are fixed and cannot have variants/flavors like artisans goods produced by machines can have, right? Trying to flip my problem upside down 😄
Technically I'm not putting it in:
I've got a building and a chest. Player will be able to carry the chest around, to occasionally put their things inside the chest and it'll warp them to the building's inventory. (Spesifically targeted to be used in the mines/SC) The building is also built from Robin's, but the limit of only one.
also nope, need a(nother) framework for it
ok i need a hand with event json, is there a way to trigger a machine prop inside an event? ive spawned a modded bigcraftable (basically a furnace) and id like the furnace to turn on during the event, how should i do that
probably temporaryAnimatedSprite time
unless you're specifically attached to the idea of placing down the chest, it could be a good idea to just have an item that, when right clicked to use, opens an item grab menu directly, attached to the global inventory Id
wow that is daunting
I wouldn't even do the global inventory id tbh
The global inventory ID would be used if you wanted to sync items between players
i would. it's practically free to do and leaves the door open to do other things with the inventory later
You just want to grab things into a menu to send them off
and kedi said it won't transport tools
So you don't want it to disappear with your tools in it
It's synced. That's unwanted behavior
Unless your global inventory has the player unique ID in it
Yeah, otherwise if you accidentally put your sword or pickaxe and then it flushes all the stuff, what will you do?
Wouldn't this make it more complex?
I mean
What you have doesn't work?
But it depends on if you still want to allow them to STORE the tools
Even if not transport them
I'm not sure why it being synced is unwanted either
That doesn't matter I guess, after all the user is expected to pick it up and continue
how large is the building inventory that it's being sent to, anyway?
And do you want this to be synced to every player
is there reason to not skip the middleman and make the building inventory itself linked to the global inventory?
Send but do you receive
I thought that's what using global inv ids meant
if the building inventory is linked to it then you're not transporting anything
the item would be opening the building inventory directly
I'm really confused as to what the feature is
I was thinking "send mining goods to a building for later retrieval"
In the original idea no you don't, but I'm willing to trade that off for less bugs 😅
It is
(If you're gonna do that also check out the global mutex)
Can I build more buildings for more space
What happens to items if the space is full
(that said, in order to get the vanilla item grab menu to have big chest capacity, you need to construct a big chest in the c# at some point anyway...)
(So I don't have to manage multiple buildings or multiple building chests)
Actually, changing SpecialChestType to BigChest seemed to be enough
I'm not sure wdym
in the item grab menu constructor
Uhh, let me check
Scrollbars
you can simply just create a single chest instance that is never placed anywhere, do chest.GlobalInventoryId = "YourId" and then do chest.ShowMenu() and the game will handle everything else for you
They're cursed. 
Yee
Yup, I have
tomato, tomahto then
Tbh i personally would do my own menuing for a feature like this
what Matt said is what I meant, I just don't like that I have to do that and can't just set the capacity in the constructor
So CMF has a custom BigItemGrabMenu
The reason for doing a chest is that 1% of the effort for 99% of the functionality. You would spend significantly more time coding something custom that behaves only slightly differently.
(in my case I made my menu have 108 slots for very little effort)
Like, sure doing everything completely custom will get things working exactly the way you want, but instead of spending all of that time, you can focus on other things that are probably more important.
Yeah, but I would want to see what I already had in the inventory
Especially if there is actually a space cap
Precise control of slot counts was important to me in trinkets but not in mmap
(This idea is how majority of VPP features are constructed tbh)
Just do whatever fits y'know
Even with doing a chest instance, it's super easy to assign a custom capacity with a single patch
So you can still have that functionality with almost no effort
I'm not saying your way is a lot of effort but I will say I think you're overestimating how much work it is to subclass ItemGrabMenu and adjust in there
Honestly, I think I'll switch to use the global inventory ids, but keep the physical chest too. I'll look into it further tomorrow after my last endterm (
)
Where do I need to create the id? SaveLoad?
on demand
it's GetOrCreateBlaBla so if it doesn't exist when they go to open the chest it'll be made
With a chest instance it's automatically created when you do ShowMenu
Tbh the point of the custom menuing would just have been to allow myself to look at what exists in the inventory already
Or when you do GetItemsForPlayer
Overflow is awkward otherwise
Ie, how do I know what I can fit if I don't know what is in there
am i missing something obvious to let me make a machine pulse like it usually does while working with temporaryAnimatedSprite
What happens you have items in the global inventory, but haven't retrieved them before sleeping and quitting?
I'm not sure I follow. Do you mean the player is unable to see what inside of a chest when they open the chest?
This is the beauty of Global Inventory, it's saved and synced
So there's some additional piece of mind that players aren't going to accidentally lose their items
So it's not lost? 
its a chest without the chest (unless you add the chest)
its saved and handled all fine and safelike
Global Inventory is basically just a List<Item> that's synced and saved automatically
Safelike Insurances
It's the same thing Junimo Chests use to store their items
Also they get different flavor of mutex to use
How do I get an event to trigger in an area after obtaining a flag to trigger it without having to leave and reenter the area?
spacecore
Yeah, that was kind of the reason for suggesting it in the first place is that you get global mutex that are accessible to all players in all locations
kk thx
using its PlayEvent trigger action action
and would need to be there all the time
Goodnight all

If the goal is a one way send yeah
In that case, I'd probably just let it unload as many as it can, and allow the rest to remain in the cart. That seems like it would be expected behavior. And if you really wanted remote access there's always ChestsAnywhere.
can i make a tile message have multiple messages? like, when you first click, it says, "fmdjaskfmsk", then it acts like #$b# in dialogue, so you have to click again for the next message
my explanation is bad lol
And I would be doing my own menuing because scroll bar lol
Gotta have like
100+slots
If you're going to have 100, may as well just have unlimited
I don't think Message does dialogue syntax parsing, so you probably want BETAS dialoguebox for this
Do consider the fact that it's a bit unexpected for player
In stardew ui is there a way to reset scroll to the top? Like I have a repeat and then I change the list but the scroll is still at the bottom even tho its a different list, like
<scrollable>
<lane orientation="vertical">
<frame *repeat={listThatIChange}
oh yeah... well, it's not a huge part anyways, i can work with not being able to do it
thanks btw!
'HasMail', does that need to be 'HasSeenMail'?
if anyone has the slightest idea how youd make a machine prop pulse in an event please let me know i just want abigail to cook some refined quartz
you'd probably need to do something with the ScrollableView directly on the C# side if i had to guess (i ran into the same issue). ScrollIntoView() if you can figure out how to use that
(note: i do not know how to do this)
(Tbh, in general, I hate the idea of "well I guess jt works?")
I would rather make it right even if it takes me more time
Ofc, that's why I don't mod anymore lol
I don't equate complexity to superiority. Sometimes simplicity can be a favorable result, especially when you want things to work well with others.
Use Condition instead
bah still no dice
There's no ez exposed way afaik
- like Chu says, you'd use Condition instead of a When condition
- if you used a When condition, you'd need it to be outside your Entries, not inside it like you have there
I thought 'when' was a condition. I must be dumb
When i did pagination i just lived with not going to the top by default and areanged ui
I saw Chu's message right after I posted the image, sorry
(nothing to apologize for, just wanted to let you know why your When condition wasnt even applying, too)
I mean. I don't think complexity is inherently good, but understanding the problem is.
There's 2 concepts here, When the cp field, and Condition data field that accepts GSQ
They first one controls cp data edit happening or not
sorry what do you mean by areanged ui (i assume you mean rearraged?) like change it so that you just show everything and not need a scrollable?
And certain game menus - like item grab menu - I kinda find hard to use because of how weird they are
The second one is used by game in whatever context, shop items in this case
Yeah rearranged sorry spel hard
Basically you gotta ask yourself what the usecase is
got it! ty!!
I'm not sure you need the moveentries btw
in my case i just... abandoned making it scrollable and limited the number of items per page per page
(re the stardewui stuff)
Things are automatically added to the bottom
For me i just put the paginating buttons outside of scroll area
So that it's always usable
As for search it didn't really bother me that searching didn't bring me to top cus
Eventually u search narrow enough to stop having scroll
I'm showing a list, but I decided to paginate cuz its pretty big, but with the number of items you still need to scroll for each page, so I'm deciding whether to show a smaller number of items per page or just have the scrollbar not reset when you go to the next page
Yeah i went with B
Mostly cus the vision was always "no page only scroll" and pagination is a compromise for perf reasons
i went with A. the choice is now yours, cat. be the caretaker of your own destiny
tiebreaker round
how do you format multiple actions for a single map tile?
You can't
alternatively ask people in here or modded farmers what theyd prefer as a user
Need some kinda framework
you can use spaceore for it
What's the goal here tho
im just going to add some npcmessage if they are nearby
like sam with the trash can
along with a message if they arent
sounds like a MMAP thing 
I think I'm also hitting perf issues? Like the reason I paginated in the first place was because I had lower fps when I showed the full list. Eh I'll decide what to do later
this might be the same issue i and Cam ran into which is due to a bug that will be fixed At Some Point (it is technically fixed but not released yet)
Ok mmap can do it but it's terrible series of nested ifs
U sure u want that instead of just doing it by trigger actions?
in my case my performance dropped drastically when i was moving my cursor around outside the list/menu but was much better otherwise
if thats the case for you too then its probably the bug. it might be the bug anyway but still
Yeah you can try dev stardewui
Basically there's 2 flavors of perf problem with scroll
One is you have like 10k views in 1 scroll and so it sucks
The other one is out of bounds perf is really bad, this one's fixed in head
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_Intro": {
"Id": "{{ModId}}_Intro",
"Trigger": "Manual",
"Condition": "PLAYER_HAS_MAIL Current CF_Statue Any",
"Action": "spacechase0.SpaceCore_PlayEvent 29273001",
"MarkActionApplied": true
}
}
}```
My event is not triggering and I have no idea why
- what are you using to call this trigger action
- is that your event id
2.5) why arent you using a string event id
If your problem is having 10k views then just paginate that yea
yeah i think im the 10k views unforunately
(2.5 can be ignored if 2 is no)
also is there a way to integrate with lookup anything? like have a frame such that if I f1, lookup anything will come up? I see HoveredItem mentioned in the lookup anything docs but idk how to set hovereditem for stardewui
Hacks only for that rn
but you dont need an external framework for this right? vanilla does this like NPCMessage Sam "Data\\ExtraDialogue:SamHouse_Sam_Trash/Strings\\Locations:SamHouse_Sam_Trash"
you'd have to reflect into LA to call its method directly right
As in patch lookup anything
That sounds nightmarish
- i want the event to trigger after the player gets the secret woods stardrop. that is the trigger.
- I find numbers easier to work with than string of letters. I'll probably change it later
I think I'll become the hand unrolled menu truther
What does unrolled mean
right but what are you using to call this trigger. you have it set to "Manual," what is manually calling it?
Should it not be Manual?
Hello, I created a custom pet (set it as a cat breed) and while the pet shows correctly in-game, the icon in the pet menu is cropped.
if i move down the poses in the png file it works but then it shows incorrectly in-game. is there another way to fix it? thanks.
Lovingly crafted without outside help
what should I put it as?
the only usecase i know of for Manual is if you're using Spacecore to do it via tile action
whatever condition seems best to you
theres LocationChanged, DayStarted, and DayEnding
I'm mostly joking
"Manual" is for mods that will directly invoke the trigger action when they deem fit
if there is no mod to do that then it never happens
(also you dont need to set MarkActionApplied, its true by default)
I've seen it done in other mods. I just can't figure out how
Isn't that rolled
Like roll your own
I was reading it as atra out to eat my menus
there is no mechanism to make a trigger action happen immediately upon meeting a condition
if none of the triggers in vanilla are quick enough, then your only option is mods, and i dont know of a mod that will provide you with a relevant trigger
What's the "immediate" here?
there is none for reacting to a stardrop being eaten
I get stardrop, event plays immediately after
if another mod did it, they would have rolled their own C#
Unclear how to trigger
getting a stardrop doesnt open a menu
Nom
Doesn't it show something like "it tastes like sturgeon"
But I could probably scroll 10k items without issue
Yeah i think it's definitely fixable (and vanilla shops don't have this problem to begin with)
can you guarantee that will always happen in any modlist?
debug tto?
My niche is "I took one function and optimized the hell out of it"
Is it event repeater thing
What is the full name 
debug toggletimingoverlay
Oh yeah i did not search for that
why do you need to be on a full name basis with your debug commands
I thought tt stood for time to and forgor what last letter is
No i was just ctrl+f in DebugCommands.cs and didn't find it cus i use wrong keyword clearly
The thing i was trying to do is find out how many tas i can have b4 it lag badly
(also re: stardrop menuchanged, i dont know if starting an event right when a dialoguebox pops up leads to any weirdness, and doing it after is doable but risks another mod getting in the way, too, by doing stuff in response to that text as well)
If it's something like the statue stardrop
(but its also not the most efficient thing as you'd need a trigger action being checked every time you open any menu, ever, until you get the stardrop)
What if you jail player around the statur
Yeah, event tester has its own version but just use debug tto instead
Clearly you have to do OnMailAdded
id have to patch Set<T>.Add
oh, Farmer.mailReceived is a Net sstring hashset. okay, so i guess its technically doable.
Exactly!!!
is there a r eason i shouldnt actually do that
(also, i didnt know that that stardrop actually only lets you get it if you have a free spot in your inventory. seems strange, since im pretty sure they dont actually ever enter it?)
(I don't actually think so?)
I thought the function that checked inventory space skipped the stardrop
i know some things skip counting it as a space-taking object, bc i had to do that for custom lost books too
but, this just calls Farmer.freeSpotsInInventory() which simply counts the stacks of things in your inventory
no free spot = no stardrop
it should instead call Farmer.couldInventoryAcceptThisItem(Item)
which will return true for things like stardrops
at first i thought it might not bc the part that holds it above your head requires a slot, but lost books do the same thing and dont need it, so idk
funnily enough it checks if you have a free spot but then still calls addItemByMenuIfNecessaryElseHoldUp
dont know why the menu would be necessary if you have a free spot
I think I found a solution to my problem. Esca's Modding Plugins has a time change trigger and I decided that was good enough
have you tested it?
yes. and it works
Getting a stardrop freezes time, so I get the entire message first before the event triggers
well, not in multiplayer
Yeah, that's the downfall, but oh well...
pretty big downfall, as a multiplayuer-only player 
Until a better solution comes along, this is the best option
because at least it does what I want it to
Pathos plz fix
i will say ive not completely dissected the specific holditemabovehead functions that result from what it currently does
to verify that none of them need it to be in the inventory first
okay yeah, the addItemByMenuIfNecessary inside that call stack checks if its a stardrop and if it is, it just makes you eat it
so i dont see any reason why it needs to check free spots
insert new GSQ: Is_Menu_Currently_Opem
well itd be dead simpl to add ofc, but did you have a usecase in mind for that even
Did anyone ever figure out if there is a GSQ to target something to happen after feeding the Sweet Gem Berry to Old Man Cannoli?
(like setting a map patch or similar)
Well, there is a mailflag
thats what we were discussing earlier and Jen found a solution for
Oh, good, there was something that came from that.
and by earlier i mean about 20min ago 
LOL, lemme scroll up then, 'cause I need that too for something I'm planning.
its not a perfect solution for the whole issue but yeah theres a mail flag for the GSQ itself
Well, I'm looking to use it to open up a path the next day, so mailflag should suit my purposes fine.
I just was failing to find it in the list yesterday
im not sure why its prefixed with CF
CtarFrops
fun fact, the museum stardrop is the only one that doesnt follow the CF_ convention
Cannolli Fruit maybe?
well, they are all CF (except museum)
CF_Fair, CF_Fish, CF_Mines, CF_Sewer, CF_Spouse, CF_Statue, and... museumComplete
Maybe in early development the stardrops were called something else
cof drops
ChiFruit 😛
honestly not a bad guess maybe
..huh.
It's been forever since I've seen that event, but I didn't realize that the bunny jewel event has an abrupt cut to darkness after Jas glomps Shane
I thought I'd broken it, but nope, it's coded like that in the vanilla unpack.
(speaking of in case anyone else wants to remember for a mod author beta maybe, itd be nice if foundAllStardrops didnt return true earlyif you got max stamina maybe, since that means you cant add more stardrops from a mod without getting that achievement earlier than you deserve)
(or, yknow, get a mod that adds max stamina too much without ruining it)
I wish there's like hp drops
technically there's iridium milk
Button! I finally got the chance to try your mod, and it's so helpful! Thank you, again!
What does System.NullReferenceException: Object reference not set to an instance of an object. normally refer to when you are looking at a .tmx file? It looks fine on Tiled! What are we missing?
you're welcome! happy to help
(which mod,)
TileData with a missing action
wait wrong channel...
or missing something
The soundboard one!
ah! okay thats what i thought but thought it mightve been CMF 
exit warp?
NRE could be anything tbh
But I'm planning on using your arbitrary files access one later, when I develop my npc map more
Needs context
if im rcalling correctly its often when a TileData has no properties on it
not the ONLY thing ever bc as chu says it can be other things
but the times ive seen it has been invalid TileData
Map Property Warp or NPC Warp with an invalid character (specifically /n) is one I see a lot, too.
Could be anything
there's no warp at all
Post log?
usually actual properties just mistyped get a different sort of error from parsing, id think, and not usually an NRE
but yeah. need a log and possibly the tmx itself
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 61 C# mods and 87 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
ignore all the Date Night Jasper stuff that's gonna be fixed
there was at first an xml error but I fixed that by embedding the tilesheets
oh, in LoadTileSets is a first (that ive seen personally)
tsx problem?
do you have a <tileset> whatever in your .tmx that is missing its inner <image source= ...>?
Did u embed the sheet
I thought I did but now I am wondering
as there are two paths layers and only one as an image source
yeah, delete the one without the image source
(this isn't my map btw, its one of our applicants)
There's a FileNotFoundException about a missing tsx
thats for a different map
Funnn
yeh ignore the second one that one I haven't investifated fully.
her character looks great! I just need to ge tteh maps to load.
fingers crossed
u can send tmx for us to look (just tmx itself should be fine
(im pretty confident its the missing image source so ill be very sad if its not)
I need to re-do the Jasper stuff for Date Night Redux
wondering if I should release it. It's a little bit suggestive but not explicit.
its really the only thing that can go wrong in TMXFormat.LoadTileSets()
usually i see LoadObjects is the one that NREs, which is where my invalid TileData suggestion came from
no errors! Looks like I fixed the other map as well
unless I broke the mod altogether
okay all loads, all is good.
(or at leas tnot broken)
@uncut viper , do you think it's possible to have the game output the status of a current help wanted quest in that same format? Requirement and time limit?
Er like the way you did the Sound Board
like, all the possible help wanted quests?
No, just the current one. Say, when the farmer wakes up each day "Penny wants a Pufferfish. 2 days"
In the event the player was too lazy to click the log icon
i think thats quite a bit different from the sound board 
I was just thinking of the little box you have your prompts pop up in
like the journal??
Hey, button, if you don't mind me asking, are the names listed on each song the internal ones we'd fill in when writing events, because some of them have regular spaces instead of underscores. Are those special cases? I assume they are the internal ones, because the song "winter the wind can be still" is named cyclops instead.
so like a to-do list sort of mod that auto populates from your quests and stuff?
I haven't seen one yet (I'm probably not looking up the right subject). Was thinking out how Fishing Overlay smacks fish on the top of your screen and thought it'd be nice if a help wanted was on the screen
they are internal names you'd write in events
its a good idea i think for a wake up reminder, but if someone was gonna make it, it aint gonna be me unfortunately, sorry 
Ok. Do the ones without "_" still work in the json?
lol. Not a request, for sure.
Like Ghost Synth
Frankly the spouse should help with day 1 planting
I don't care you want to visit penny, maru
probaby, but depending on the context you'd probably wanna put them in quotes just in case
We are a farm family
though @fierce vault according to the wiki, Ghost Synth is simply an alias for fall2 and vanilla never uses it
so, use fall2 instead
Oh, ok. Thank you for the explanations
a handful of them are just aliases, apparently
https://stardewvalleywiki.com/Modding:Audio#Music
this page has a bunch of them, though the list isnt finished yet. pretty sure thats what BarleyZP's been working on updating recently
say can a sdv mod write to clipboard
Sure
i dont see why not
lemme copy paste the cue name pls
weh
How does the invite code write to clipboard
DesktopClipboard.SetText(this.code)
ez then
glad i didnt have to figure this out myself
Enjoy the xclip?
i actually dont know if i even want to bc i dont know if i wanna stuff another button on there
feels like itd make navigating with the gamepad annoying
too many focusables
Just focus on knitting
i have you to do that for me
sometimes you dont do it very well
which is why you're here despite being retired
I think it should just be a checkbox like "copy on play"
Although, if u r logging the cue name with info then it's basically same right
Ppl can just go copy that from smapi console
i wasnt logging it but i could i guess
Do you guys want me to leave?
copy on play sounds like a lot of clipboard spam
My first goal once I vaguely know how to write C# will be to have Jacob and Eloise go to the resort together, and Dale and Valkyrie. Hopefully that will be relatively simple, and I can use atra's code for 1.5 GIMA for reference, maybe?
What about listening for ctrl c
Or double clicking
Atra can have one of the fancy orang
listening for double clicking sounds annoying 
Is there a way to copy a thread's link on discord mobile?
Atra can i update gima
maybe i just make the copy button not focusable for gamepad
Sure!
gamepad users dont need to copy text
All mine are up for grabs
Tap and hold
wait adding another button means recalculating the text overflow detection...
On the thread
(im just gonna log the sound name when its played...)\
It's one of the ones I personally want to do eventually I just understand that I won't do it any time fast
You can also copy some message in thread
Not helped by the fact I keep doing other things
Well no promises over here but I'll give myself 2 weekends
It's like 95% working right
I don't have that button 
I would love you forever.
In what menu? I tried everywhere I could but nothing happened...
Npc making. I'm lost.
Yeah so 5% is the part where i cherry pick things
what's SOTE?
The special orders additional tags etc mod
this one is the ... menu and then the gear
It doesn't appear here because it's been inactive for too long...
Yeh, I figured it out while you were typing, Special Order Tags Extended
what thread u want im on pc
Incredibly pointless at this point when gsq exist
But I need a home for fixing the bloody dropboxen so I guess that one works
isnt it what we used for the portraits on the special orders?
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
What are you stuck on?
Yeah, but ES packs that now so
yes indeed we do 🙂
It's about 75% eaten by the game so
Which is kinda unfortunate tbh
Or fortunate no idea
I also need to make Jasper take the kids with him when he goes to the beach and not leave them home alone
@woeful lintel
Actually. Nevermind. I am not at my computer and I am just learning to code anyway.
but how do I make a sprite for my npc
#making-mods-art is perhaps better place to ask, but first you should unpack and look at game assets
!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!
He's not an irresponsible father, damn it! Also temped to add the polyamory mod and invite Dwarf back in to live with us.
(or maybe Luma)
Alright
Anyway, if you do get it working Chu, I'm happy to be a guinea pig/tester.
IT's the atra mod I missed the most.
[game] An error occurred in the base update loop: System.Text.Encoder
FallbackException: Unable to translate Unicode character \\uD834 at index 28 to specified code page.
found a fun new way to hard crash my game
Wait, do I snag and edit the npc to look like character I choose to be?
(i updated soundboard on nexus to allow clipboard copying for u chu. ur welcome)
(it also now logs the cue name to console as well)
I don't have this button! (I got it another way though so it's fine)
Good, as long I want to make a npc but what is your recommendation to go?
Hang on a second
Discord mobile sucks so bad
I definitely was orange for a second
I assume someone applied a script to wiki
Phew
Back to the blues
Yeahhhh
GIMAE would be weird cus i have no plan of extending anything
continued
ah ofc
redux is the other pick
redux sounds nice but GIMAC looks better as an acronym
How does the game go about creating the eventseen_memory conversation topics? Is it for every event or just some and if just some, what property do they do to need it? Does it automatically erase them at some point?
ie: eventSeen_15749324_memory_fourweeks
every day the game looks at every past CT you've had and adds memory CTs at the right times
ah so its only events with conversation topics, that makes sense.
its actually not just eventseen
every event is igven a CT
eventSeen_<eventId> is given to you automatically every time you start an event
so once there's a new one does it overwrite the old one? Like fourweeks replaces oneday etc? OR do they delete after a while?
and the game assigns memories to every single CT, no matter where the CT came from
4 days
so you could have questComplete_<questId>_fourweeks even
and they each last 4 days yes
ah that helps me make sense of it.
and obviously once you delete them via triggeractions it'll no longer list them.
this feels like something I could make practical use with
be careful with that bc if you manually remove a CT with that trigger action, it wont get a memory
@calm nebula: take a look (168h ago)
(manually removing a CT in general means it will be as if the player never saw it. so things like spacecore's "HAS_HAD_CT" gsq or w/e will not work)
unless you try to remove it manually after it expires, for whatever reason. if it expires, it gets stored as a "seen CT"
if you dont let it expire on its own, it doesnt, and its the "seen CTs" that generate memories
Ahhhh
Remind me in 1 day to take a gd look
...mmmm I just wrote that down in a database marked for deletion...eh it'll probably be fine (#6739430) (1d | <t:1750467084>)
sorry atra im yeeting all ur caches
Its events im removing so they can be repeated.
Sry i didnt make that clear.
the CT is separate from whether or not the event is seen or can be repeated
doing anything to the CT will not make the event repeatable
Technology mode works yey
did the weird stuff that happens when too many recipes are added to the level up screen get fixed?
i know a while ago in JA in that was warned against
it's nbd with just one recipe but if users installed like 12 diff mods each with 1 recipe it would just not show a bunch or show a glitch-y thing in the level up screen iirc
nop
this one's fine cus its just reskin beach totem right
Tbh gima is very early
Like I look at it and cringe
So much memory churn
So baddddd
Finally uploaded the content expansion of Law and Order mod, thanks chu for helping with the fog effects for the new map
Do I see correctly that Chu is reviving gima? 
good free software for texture edits?
hey guys, im new to modding textures, trying to find an alternative to adobe illustrator to retexture entire tile shades. any ideas or suggestions welcome.
(im working on retexturing some of my fav mod tool buttons to match starblue, earthy, and vintage UIs)
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
Gimp is fine
if you're already using illustrator and have an adobe subscription, photoshop is far more usable for the task
otherwise i'd suggest PaintDotNet as a good alternative for art, and begrudgingly Gimp for edits/filters
i've heard Graphite is good as well, and the UI looks much more usable than Gimp, but it's not primarily a raster/pixel art program so less suited to the task
Aseprite is alright
I like using Photopea whenever I need to use something other than aseprite
so is npc caches worth it 
vs Game1.getCharacterFromName
Gimp 4ever 
Probably not for gima
Tbh
wouldnt you have to do a buncha syncy stuff for multiplayer if you cached em
yea thats what i was wondering
more than you'd already have to ig
but also im just lazy so Game1.getCharacterFromName it is
make it work -> make it fast
Gima runs nearly always on the master player anyways
very good to hear it doesn't necessarily need to work if it's fast
(fun fact: i dont know what GIMA does at all. i do not need to be told what it does.)
Where it doesn't it doesn't matter but I didn't know that at the time
New quote added by atravita as #6436 (https://discordapp.com/channels/137344473976799233/156109690059751424/1385438451612127364)
the arrow is the order in which you do things tho. make it work comes first
my impression so far is that it does a lot of things
no getting past that sorry bluebs. you'll have to put effort in
which is scary given the specific title
it worked, but Entry(IModHelper helper) {} made it faster
Wdym it does a lot of things
also it specifically does a lot of thing to pam
does anyone know of a mod where you can share journal progress when playing multiplayer?
you want to ask #modded-stardew
sounds good thanks
Oh yeah right lol
I'll move that stuff over to Pam Tries
will you
Mushroom test successful. But now I need to change the denied text...
Can I just do
"DeniedMessage": "Can only be sown inside a Greenhouse."?
mmm. hill
Hill Zone Act 1
😓 why are there no rounded top corners though... the top of my hill is so square
Might need to draw them yourself
😔 ill only resort to making custom tiles as a last resort
Surely someone has a tilesheet somewhere thats already recolor compatible
just vertically flip the rounded bottom corners 🤷♂️
oo i bet that will looks good
well i built gima but
it occur to me that i do not know the detail of this mod besides "it send ppl to ginger island more???"
I'm gonna hope I did this right...
done, ship it
🛳️
It's...yeah
im probably gonna redo it when im less eepy so the extensions methods i yoinked over are in 1 namespace
It sends people to ginger island more but has more controls on it
That's about it
It's also written weirdly
what r all these pam things then...
Oh and you can call Pam
also does it just have non destructive npc??
But only on the island farm
chu caught the car
car
i cant prse this
so determined to do something only to be unsure what you're supposed to do once you've done it
I was gonna send people to island west
If your i18n tokens in the Data/Objects asset (or any other one you're editing) match what you have here, it should work properly.
And also perhaps move it to a map based system
hey its beein like
a <3hr whim thus far
a lovely hour
This is why we like chue
Fair! I think it also adds dialogue lines
i dont remember 
No it hasn't changed tbh
CSK is my Custom Schedule Keys mod that overrides the schedule theyd normally choose based on a GSQ
yea can u give ppl their island schedules this way
or is that not a thing which exists
theres a 50% chance i tested it and it worked, a 50% chance i tested it and it didnt work, and a 50% chance i didnt test it at all
Not really and also it's more hardcoded than I like tbh even in gima
i genuinely have no memory of it
Like a lot of it could have moved to a data asset
150% chance i like these rates
i suppose an npc could have an island schedule, but normally they do not
ginger island picks people (or specific predefined groups) at random and blasts a new schedule at them on demand
is ginger island some kind of pied piper
1.6.16 request hey pathos
Yeah I did, luckily. Thanks for the information. i did rename greenhouse-name to greenhouse-warning and it worked too.
Yup you can have your i18n key be anything you want (except for the config schema where there is a specific format).
i messed up so bad... instead of remembering to build up the cliff walls a bit i just kinda. made all the surrounding edges water
oh well
Nothin wrong with that
I made the mistake of using Event Tester to run through every single event in my game to check for any name replacements I missed. 4 hours later, I am back. xD
(good thing I did though, apparently 40 events need something fixed)
hiii i was just wondering if someone could help me, so far i got it mostly functional except for the factor of it keeos only dropping the first item, but when i try removing the
{
},
between each one itll only drop the bottom item and im just not sure how to do this now 
https://smapi.io/json/none/802a28b3d3cb410a8cacbc8256bab9f0
how geode drops work is that it sorts the entry by precedence, and then picks the first one that matches. in this case it will always pick the first one because it has a 100% chance
if you want multiple possible drops each with equal chance, simply use one entry, and have it choose from multiple items with RandomItemIds
look at the Artifact Trove in Data/Objects for an example
thank youu
🤔 hm. i dunno if i want to just. water the back or do i want some kind of... "overlooking the horizon" background....? 😅
diving into the depths of Cursors, pray for me
I really want to add a feature to embed the layout data inside screenshots of the room, so when you post a screenshot other people can download it and "import" it into their own game. (provided they had the same furniture packs)
sadly I'm being kneecapped by a lack of file selection tools. As far as I can tell there's no standalone .net lib for file drag-and-drop, and the clipboard is text-only 
there's a lib with native bindings for file dialogs but I dunno if you can use native libs with SMAPI, and it's a bit obtuse anyways
I experimented before with a way to embed arbitrary data inside custom png file chunks and actually got it to work, just... no way of easily selecting user files in monogame
you can use native libs with smapi, just remember to ship for the various flavors that are used in the wild, and that iirc you need to call the load yourself as the auto discovery wont know to look at the mod folder
in my lua mod loader I had
NativeLibrary.Load(Path.Combine(Directory.GetParent(typeof(ModEntry).Assembly.Location).FullName, "runtimes", "win-x64", "native", "lua54.dll"));
where I cut corners because it was a poc and had no intention to ever ship it anyway
need to do more testing and add the item for it, but the base functionality and ui are complete!
hm. I think I need to find a way to omit npcs from furniture placement checks. the cat is preventing layouts from being applied
ah, I can adjust the collision mask. useful
oh right, the close button. I always forget to add that
initializeUpperRightCloseButton() my beloved
I used it for the ability to define groups so that certain pairs or collections of people would visit the island together
Ie, jacob would always take eloise, Dale will always take Valkyrie.
it's crazy to me that that's not on by default
well you have to remember that all hud elements are an IClickableMenu, including the clock, moneybox, inventory, ..
i wouldn't really want to close those lol
hooray for spaghetti!
but it really does make sense for the hud to just reuse the ui system
now if only draw order was reversed so it matched input layering with overlapping hud elements
(I will bitch about this until the end of time /lh)
where is like the repo or wiki for this?
still makes me cry that its called IClickableMenu when its not an interface
like the patchmode things
like the content patcher wiki?
yess
well it's a user interface 
there's docs on the CP repo that describe how to use all of its features
hold on
should probably have a command for that tbh
if i'm editing MapTiles to be npc passable, do i have to do them one at a time, or is there a way i can tell it to do a square of x y height/width?
my leaves look like broccoli
TileData objects can cover multiple tiles, and depending on use you may be able to simply apply it to the tile index itself
is there a way to add TileData in CP and not by doing a map overlay in Tiled?
They only look weird when zoomed out. At game scale it looks fine
Ah, no. With cp, you can either do a map patch using your own map file, or edit tile properties one tile at a time.
Can I tempt you into c# land? :P
i always forget how zoomed in the game map gets compared to when working on it in tiled
lol not for this, no, it's only 5 tiles 😂 thank you for letting me know!
For just 5 tiles, MapTiles would be easy enough
if i was going to venture into C# it would probably be for the record player big craftable i want to make
oh for sure, just wanted to make sure i was doing it efficiently as possible
man, not to scope creep myself, but with the new museum framework mod, it would be so fun to have collectable records
would need to properly benchmark it, but pretty sure MapTiles would be more efficient (runtime performance wise)
mod author sanity wise, there would be a point where throwing it in a tmx and using tiled instead may be easier
i hate to be the one to break it to you but there's already a jukebox in the game 
jukebox doesn't use records, it just uses the musicHeard data or whatever that fields called
yeah i ended up reskinning it and putting that as a config option lol
one of my NPCs is a ghost from the 80s who likes music so i wanted a cute themed item you could unlock
i used it for example and now its almost perfectly working but for some reason even though 'summer D12' is in the game as a working item, its producing through the mystery bag as an error item and theres no error in the smapi log
...one took this bait. They really are that bad.
Alright, I've tried the global inventory id thing, but I face a new issue: I can't pick up the chest. I tried to turn it to what Button said but I failed so far
Nvm, success! 
You probably made a typo somewhere in the file that defines the dice, pls post it
(I'm going to bed now though, I'm mostly saying that so others can maybe look)
Works for the farmhand too!
@uncut viper @calm nebula @tawny ore Thanks to y'all for the help! It's indeed resolved
(there's a small issue where building overlay for the filled chest doesn't work but honestly its minor)
oki ill just leave these here while i take a break

line 409 typo, yep
you have the D4 in there again
In your Data/Objects entry, the ID is for a Spring D4
OH MY GOD-
well thats what i get for doing copy paste to cut corners..
thank u for the help
another fine reason to use {{ModId}}_Spring D4 as your item/entry id to more clearly emphasise the item's unique name
it is just processing to me this may be why the spring d4 vanished out of nowhere
it in fact was💀
i have two versions of the same map for before and after a character arrives in town. can i do a conditional load, or will that cause an error since load is exclusive?
You can give each load a Priority field.
So could take precedence over the other if the conditions are fulfilled.
But if the same map with slightly different version, can't you just use EditMap?
conditional load is fine with exclusive.
Exclusive only cares that exactly 1 ended up trying to load, doesn't care about the 5 that didn't even bother trying
there are night tiles and day tiles i don't want to redo in CP
does each load need to have a condition (has seen event = true and = false), or is just one fine?
With the first method you wouldn't need Priority.
if exclusive, then they need to be mutually exclusive, if not, then only the hasseen=true would need it and have a higher priority
With the second you'd need to set which one would take priority.
okay so low priority for the one with no condition? and then no priority for the has seen = false?
not setting priority = exclusive
Exclusive means that one would always be chosen if there's more than one Load.
it also means if two mods tryu to be exclusive, they both lose and CP yells at you
having a few lows, mediums etc with an exclusive is technically fine, the exclusive will win, but multiple exclusive is no one winning as button says
or two loads, rather
(it's a custom map so at least i don't have to worry about that)
"Action": "Load",
"Target": "Maps/{{ModId}}_CrystalAndNiko",
"FromFile": "assets/maps/CrystalAndNiko.tmx",
"Priority": "Low",
"When": {
"HasSeenEvent |contains={{ModId}}_Seance2": true,
}
},
{
"LogName": "NikoRoomRuins",
"Action": "Load",
"Priority": "Low",
"Target": "Maps/{{ModId}}_CrystalAndNiko",
"FromFile": "assets/maps/CrystalAndNiko_Ruins.tmx",
"When": {
"HasSeenEvent |contains={{ModId}}_Seance2": false,
}
},```
like this, correct?
those are both priority low
so one needs to be higher than the other, otherwise they both lose?
which i guess doesnt matter if theyre mutually exclusibve conditions wise
though having the mutually exclusive when conditions means it doesn't reall-
but if theyre mutually exclusive conditions wise then they dont need the priority lines ta all
oh okay so having both is overkill
i do think having the conditions will be more readable for me than deciphering load priority
its like, negligible impact on anything, but potential impact on you remembering what is required if you ever end up changing these conditions or load setup
overkill mentally not functionally, basically
technically you don't need different priority either, the last one will win when same priority (as long as its not exclusive)
so low priority is "desirable" because it happens last, right? not that i'm going to change it, but for the sake of learning, would the correct way to do this be to have my conditionless one load with high priority, then have the condition one load with low priority?
High priority would be chosen over low priority.
So generally the one with the more specific condition should have higher priority.
oh ok i had it backwards
So question about that, I misread the tutorial about the ModId thing and have no idea what it does no matter how much I reread it.
I first thought I had to replace it with the ModId I had in the manifest
(Yeah I misread it this bad...)
i see why you'd think that, but it's Content Patcher that replaces it with your actual ModId value -- {{}} marks a token that CP will tokenise into a real value
more on that here:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md
so {{ModId}}_SpringD4 will become blueberry.MyFunnyMod_SpringD4




