#making-mods-general
1 messages · Page 6 of 1
that would remove a lot of their purpose for the lightning and warp actions, though
can farmhands actually control NPC warps in the first place?
in theory, actions could be provoked by the host telling the farmhands to do it with their own mod messages, though
they can, yeah, the warp code checks for if you're a client or not and the wctm commands work fine
(oh, yeah, that's the other thing. Players can only write to themselves.)
but also its not just for warping NPCs around but for warping you to NPCs too
(this one i knew at least
)
Would it take C# to make Krobus's spritesheet size match the other NPCs'?
i wonder if it'd be more work than its worth to implement a cache where NPCs that dont change tiles or locations as often are checked less and less frequently and if that'd make up enough difference to make broadcasting so often not as bad
That make sense. I'm so confused still on how JunimoNoteMenu works, though. It gets the texture of the item, but any non-object still results in no texture being shown despite me changing the if-statement that detected if it was a part of the 'Object' type or not. I was checking to see if furniture and stuff found textures differently for that reason, because it could be something like that maybe-
hang on, Button
you're implementing "warp to character", right?
can you two-step it and hide under the cover of darkness
warp to the right map, let the game fill in the details, then warp to the right tile
well, thats not the only thing that requires the NPC locations, but i am yes. but also what
then you just need to keep track of when npcs switch maps
wasnt i told that the NPC as seen by the farmhand might not even show as in the correct map
oh serves me right for starting to type before reading your last msg
hm. thatd work for a lot of cases i think then, yeah. not all of them, though
it would work as long as the player is the one that is warping
but it would not work if you were warping one NPC relative to another NPC (assuming they were on another map)
granted, i cannot see many use cases for when you would want to, but you could
e.g. warp Haley to Emily's coordinates but on the Farmer's current location
ther's techincally a race condition where the npc leaves just before the player arrives
You can extend image downwards with content patcher edit image
im not sure what you mean with the race condition thing
Krobus is 2 tiles tall like everyone else I think?
so, sync is every three ticks, right?
Sorry Chue I wasn't clear. Krobus's sprite is 16x24 so his individual sprite size is different to the other NPCs.
i think i see thoiugh
farmhand: hey, host, I'm going to map X. Emily is on it.
host: sure! Let me send you to map X.
emily: I'll be leaving now.
farmhand: uh, where's emily?
for actions if im asking the host to do things anyway though i dont need to hide under the cover of night at all
(this is how farmhand warping - farmhand alwasy requests of the host.)
I think that's Size in Data/Characters
You can replace krobus sprite with 16x32 sheet and edit that
and when I say "under the cover of night" I really just mean a fade on the screen, the way the game warps you under a fade
right, but i mean
why would i need to hide while im getting the correct tile
the host knows the correct tile
thats how it currently works basically
when you're the host that is
or whatever coordinates relative to Emily you specify
Ooh I have never seen that field before! That could do it. Thanks, I will check it out! I wonder if changing it will make his events and stuff go funny. I guess I will see.
Event stuff should use AnimatedSprite right
so that it's just sprite index
And no explicit sprite rects
with the disclaimer of "i still dont really understand net stuff sometimes": is there anything i can do with the NetPosition field on Character or the NetLocationRef field on Character
I....don't think os
because the "extra" npcs on farmhands are straight up clones and not even the right instances
Yeah unless CA makes use of positionOffset for Krobus or something? IDK maybe it will be totally fine

what if i used those fields on the host only to decide when to broadcast, instead of checking NPCs every however many ticks
...that's a good shout, auto play all events with a certain npc
that might work
NetPosition i imagine id probably still wanna do only like, once a second or somethin still since thats just pixel coordinates and will fire fuckin constantly otherwise
though NetLocationRef doesnt seen to have a fieldChangeEvent on it or anything (also whats the difference between fieldChangeEvent and fieldChangeVisibleEvent? what is interpolation?)
I haven't seen anybody make use of the size field yet (obviously since I didn't know it existed lol) and I've recently been looking at all the latest NPCs on Nexus.
(i think messing with the size messes with pathfinding a lot)
Ahh true that makes sense. Wide NPC stuck in doors.
When field is changed vs when that change is visible and done interpolating?
ES has a snail
see my "what is interpolation?" 
I remember that NetPosition is different than NetVector2 in that I didn't need to attach a fieldChangeEvent just so sync it 
Interpolation
"Hey client, that bat is supposed be at tile 4, 5. Can you move the bat over but like smooth."
i see, thank you. i swear i usually know what interpolation means i just wasnt sure what it meant in the context of a field changing instead of like. a sprite on a screen
currentLocationRef is protected though and i know reflection can help access those things but would it let me add to its events if i got it with reflection (if it even has any events for me to add to?
)
i feel like it might just be simpler to just patch the setters on the properties and not touch the netfields
'specially since im not sure how id get the NPC name out of the position netfield event anyway
im alos starting to think that maybe you and Esca are right and it might just be simplest of all to write "hey this might not work for farmhands ok thanks" on the docs—
the warping to farmhands is fine theres the action queue workaround thing for that, all this brainstorming is for the GSQs
i think the host handles the warping for that debug command too
adding a player arg for some actions like WarpFarmer and Lightning might make it easier to handle with host-only GSQs too, if you do end up with that limitation
(though I guess there's never a great way to specify "target a farmhand who isn't me, but not everyone")
maybe its just bc im overly tired but can you elaborate on the GSQ connection there
with actions i dont think i need to specify a player arg if i just keep it limited to the local player bc then the message i broadcast to the host to say "hey i wanna be teleported" can send that players unique ID, and surely it must be easy to warp by unique id i hope,
but that can be done regardless of whether or not the GSQs are host only
(also i dont actually need the host to do the warping actually i just need the host to tell me the accurate location and coordinates to warp to)
so I was picturing something like this, as far as picky GSQ data goes:
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_Example": {
"Id": "{{ModId}}_Example",
"Trigger": "LocationChanged",
"Condition": "Spiderbuttons.BETAS_NPC_NEAR_AREA Town 30 30 5 Abigail",
"HostOnly": true,
"Actions": [
"Spiderbuttons.BETAS_WarpFarmer Town 30 30"
]
}
}```
Lightning specifically i can probably just ignore too anyway bc the lightning only works on the current map anyway
and i cannot fathom why you'd wanna lightning strike on your own map but at coordinates relative to someone elsewhere
adding a player arg like "Spiderbuttons.BETAS_WarpFarmer All Town 30 30" would let the host warp the whole group somewhere
for lightning it probably matters less, I doubt people will want local-only effects vs synced lightning strikes and such 
so any implementation is probably good
Eyyyyy @lucid iron (dark Abigail is my tall Krobus stand-in since I am exploring this for someone else rather than making my own tall Krobus)
Now time to watch a Krobus event
oh i see what you mean now
but that said, it still has the limitation that hosts can't easily say "if this host-only condition is true, check these other conditions and then teleport somebody"
non-host triggers could require a flag that the host sets, etc, but it's one of the trickier things to teach people about trigger actions
(and with some trigger timings, it might miss its chance to go off)
tbh i think i do lean more towards broadcasting cached position data than locking farmhands out of that stuff entirely but ill just experiment with how often and how much is sent
What if you make an action that fires a trigger
sending position data less often means things like NPC_NEAR_AREA are not as accurate but otoh that can also be compenstated for by upping the radius you check a bit
So that you can have triggeraction 1 run on host only and triggeraction 2 listen to 1 but fire on all
Just be responsible and don't infinite loop 
i think im unsure what you mean or what that would solve, bc something still has to prompt the trigger on the host in the first place
"Entries": {
"{{ModId}}_HostOnlyCondition": {
"Id": "{{ModId}}_HostOnlyCondition",
"Trigger": "LocationChanged",
"Condition": "Spiderbuttons.BETAS_NPC_NEAR_AREA Town 30 30 5 Abigail",
"HostOnly": true,
"Actions": [
"Spiderbuttons.BETAS_FireTriggerActionForEveryPlayer {{ModId}}_DoStuffLocally"
]
},
"{{ModId}}_DoTheThing": {
"Id": "{{ModId}}_DoStuffLocally",
"Trigger": "Manual",
/* optionally: other Conditions that would still need to be checked? */
"Action": "Spiderbuttons.BETAS_WarpFarmer Town 30 30"
},
}```
similarly overcomplicated, but it gets custom timing down 
but wont work for things that need to check conditions local to each player
Overengineering for fun and profit 
if you want to warp to the center of town when abigails there but only if you have enough hearts with her, that would never happen
The 2nd manual trigger can have conditions separate from the host only one
but the host trigger would trigger that action the first time they went into town with abigail there, regardless of the conditions on trigger 2
That's the idea behind doing it in 2 actions at least, tho I might be too eepy here
and you dont want trigger 2 repeatable, bc you dont want to warp there every time if you have conditions you require
especially not every time the host walks there and not you, yoinking you out of wherever you are
the idea would be that Spiderbuttons.BETAS_FireTriggerActionForEveryPlayer is a custom action that MP messages everyone to say "check the conditions on this entry, including whether it's been applied before, and if true, run it"
but that said, I don't know if TriggerActionManager actually implements a call like that 
TriggerActionManager only lets you Raise an event for a trigger type, or run actions without context
yeah, you'd probably have to get the entry yourself and do CheckConditions + look at the applied flag
just figuring out tolerably good caching for any weird queries is a lot simpler for users*, at any rate
i think i am still going to try the caching broadcasting idea first, not bc i wanna completely shoot down your guys' idea (bc i will go back to it if i cant get the caching thing working) but bc the idea still confuses my tired brain atm and bc it still relies on the host triggering whatever it is that happens and i dont know how you'd easily get around that (e.g. that example above, when the host changes location it'd make the farmhand check their manual trigger, but that still might just yoink them out of wherever they were instead of waiting for them to change location first)
(that is you can check the conditions on the farmhand, sure, but you lose the ability to actually react to the event in question locally)
if instead of LocationChanged you used NpcKissed for example it wouldnt make sense for you to teleport after the host kissed a spouse
(no worries, I can't think of a great solution here & keep worrying I'll make things worse
)
its not making things worse! my brain just does not work as fast the later into the night it gets
im always open to ideas (and ig there is still that thread chu made me in here if you ever feel like tossing any of them in there in the future)
blissfully fishing somewhere across the world my buddy kisses their spouse YAAAAAAAAA YEEEET
lmao
can't be any better than me thinking of ways to do a "split screen" effect on an event
oh no i'm getting ideas
same 
it doesn't really solve the host problem above, but
TriggerActionManager.Raise(ModID + "_AnyoneChangedLocation", player: who);```
I've yet to actually figure out reading context from triggers, come to think of it
i have no idea either how to actually read the triggerArgs either without making my own custom Raise() command
the other stuff i just know gets passed to the actual conditions and actions through... some way
actually the action might not
oh, right, I think it just gives you all of them as an object array? 
TriggerActionContext context -> context.TriggerArgs is a readonly object[]
at least in actions
Yeah it's weird
yeah, it creates a context with them but thats the last that Raise uses them
it doesnt get used in any way when checking the conditions on the trigger
Tbh when I looked at trigger actions I was like "welp I can use the model and about nothing else"
the action gets the context too but i dont know how you'd expect it to read the triggerArgs array
The context is to let you pass data from raise to a specific trigger action
Very much left hand right hand
but theres no way to read the arbitrary data you can send in triggerArgs[]
or if there is i dont know where to find it
the target player, location, and items are sent separately
I remember thinking about this earlier and you'd either have to pass tuples in to provide IDs during Raise, or just give up and do like
foreach (object thing in context)
if (thing is Player player) //do stuff to it```
oh right this all stems from multiplayer being bespoke
the TriggerArgs field on TriggerActionContext doesnt even show as being read by anything in ILSpy
actually i guess neither do the other things, so i dont know what that means anymore ignore me
I guess I shouldn't assume it works that way and/or at all, since the game never uses it
I just imagine all that context gets shoveled into it somewhere
its all delegates all the way down
it's 2024 and i've been forced to remember john green
the eventual action (like AddMail) gets the TriggerActionContext eventually but not the triggerArgs array
as far as i can tell
Yeah it's for mods
but how is a mod meant to use it
The idea is to pass data from a Raize you do to a trigger action you control
That said I haven't tried this with trigger actions
Just with gsq which should have the same setup
but what do you mean with a trigger action you control
you can raise a Trigger and you can create an Action
but they are separate things
That's what I meant by left hand right hand sorry
It's when you have both sides of an interaction
Like you're shaking hands with yourself
custom actions receive a TriggerActionContext as an argument, but per above, I don't know if the game correctly shares the data from Raise to it
custom actions do not get TriggerArgs
Is there not an overload of Raise that let's you supply the full context
(To be fair, I'm going off what I know was intended.
I have not checked the implementation.)
no yeah, it turns out im just real dumb
Raise's only overload has an optional object[] TriggerArgs (same as TriggerActionContext) followed by several optional things like Player, Item, etc
you do get TriggerArgs but it is still the case like Esca said you'll need to figure out a way to identify them somehow
I assume that's correctly tossed into the context object that actions get, but yeah, no labels + I'm not sure if it rolls stuff like Player into that array
so there's a lot left up to mod conventions, I guess
If you're paranoid set the first item to a signal object but
tbh i dont think it wouldve really helped me all that much still anyway bc of how much data i stuff into some of these items
i also forgot until looking at them just now that TriggerActionData has a CustomFields field? has anyone ever used those yet, i wonder 
I'll probably end up using those if I make trigger actions for FTM, though I'm still undecided on how to implement any of it 
i cant think of something id need to look in CustomFields for that i couldnt just do in the action itself
(i assume customfields can't do the thing that atra wanted which was the unlockable bundle meadowlands
)
(or the CustomFields entry on GameStateQueryContext which i really cant see a use case for...)
it's admittedly a lot less useful as a string,string than it would be as string,object 
I'm getting string,string in the intellisense for context.Data.CustomFields
(in a trigger action, that is)
thats in the CustomFields for the TriggerActions entry itself
you can also set a separate CustomFields on the TriggerActionContext itself
context.CustomFields
oh, I see, though I don't understand what that is 
i have absolutely no clue why you'd ever need or want to write CustomFields to either of them
the idea I'd been aiming for was like "Action": "FTM_SPAWN_THING" and then have full data models for things like "a list of spawnable objects, each with their own properties" in the CustomFields part
to some degree it can all be compressed into strings, but it's awkward
that said, I can probably latch onto Raise and use trigger timings in another CP data asset, so I'm leaning toward that for now
i mean thats a use case i can see for sure, when i said "either of them" i meant TriggerActionContext and GameStateQueryContext 
oh, yeah, no idea how those are intended to work & there's already the context object pile 
you could make your own Context object and skip Raise() completely so that you can a dd CustomFields before sending it to TryRunAction but like... why
just. do the custom stuff yourself either beforehand or in the action itself
it says its so that it can be "set by mods for custom trigger action behaviour" so like i guess its use-case is for one mod sending a trigger to an action controlled by a different mod that might use it?
since i guess if you're sending the context directly then you wouldnt have an entry in Data/TriggerActions for it to get the customfields normally
i feel like i suddenly understand why i have to target spacecore but i am also still lost 
yeah, I guess it's possible to use, but it does feel like "Pathos just included it here because why not" 
if it helps, Esca and I are also lost about why it exists
"pathos found it useful, the inner machinations of the mind are an enigma"
i mean dont get me wrong im all in favour of more things having customfields
i just will be very impressed if i ever see anyone use these two in particular
I suppose if someone patches CheckConditions or w/e and needs more context, it's slightly better to use CustomFields than a context wrapper class
on that note, I wonder if menus ever got custom fields 
id check but i dont wanna download the 1.6.9 beta again while im workin on 1.6.8 stuff
(not that I can see; also I guess IClickableMenu is an abstract class but not an interface
)
just shove your customfields stuff into the new screenreader fields /j
Why would menus need customfields
why does GameStateQueryContext need CustomFields
I don't have a use case for it either, it just came to mind because I've seen them get wrappers a lot
When stuff like conditional weak table exists
Wrappers I think on menus is because people want to draw over a menu and are afraid of harmony
that's why I plagued myself with used them, at least
oh yeah, speaking of menus
"The default controller navigation in menus already auto-detected ClickableComponent values in public List<T> and some Dictionary<TKey, TValue> fields. That now works with any subclass of ClickableComponent and any combination of dictionary key/value types too."
does that mean i can take this lil foreach loop out now:
https://github.com/Spiderbuttons/SpecialPowerUtilities/blob/main/SpecialPowerUtilities/Menus/SPUTab.cs#L292
unfortunately on serializeable objects, where modData/customFields helps quite a bit more
(i dont actually remember if thats the exact line im thinking of bc its been ages since i looked at thiscode i just know i was so confused why my controller support wasnt working right until i realized that it wasnt looking at my custom ClickableTextureComponent class)
it's kinda hard to compare without the repo's decompile setup, but I think 1.6.9 covers what you're doing there, yeah 
blessed day
"Tweaked powers tab code so mods can get the power ID for a slot." i didnt notice this on my first read of the patch notes either but that will also save me some code 
(and by that i mean, i remade the menu entirely so i couldve done that all along, but why figure out my own solutions when im not sure if theyll break or not when i can just copy what works in vanilla instead?
)
Oh that's actually really neat. One hack less to worry about
Hi it's me again, I have struggled like months trying to understand how to change tilesheets used in tmx files. I have this : {
"Action": "Load",
"Target": "Maps/CarolineGreenhouseTiles",
"FromFile": "assets/CarolineGreenhouseTiles.png"
},
{
"Action": "EditImage",
"Target": "Maps/CarolineGreenhouseTiles",
"FromFile": "assets/CarolineGreenhouseTiles.png",
"When": {
"Time": "{{Range: 0600, 2000}}"
},
"Update": "OnTimeChange"
},
{
"LogName": "Override tiles for night",
"Action": "EditImage",
"Target": "Maps/CarolineGreenhouseTiles",
"FromFile": "assets/CarolineGreenhouseTiles_rain.png",
"When": {
"Time": "{{Range: 2000, 2600}}"
},
"Update": "OnTimeChange"
},
but it does absolutely nothing, while if it was a normal texture assets, it would work
I don't really understand how does the tmx map know the Target in this context?
it seems fine
tilesheets are just the same as a normal image
you can edit it the same
- you have redundangt edits (the Load and first EditImage are doung the same thing)
have you been using patch summary and stuff to see if your edits are applying? I dont know how obvious your changes are
have you tried it wihtout when conditions? just a simple image patch?
have you made sure no other mods are conflicting, including recolors? or map edits?
etc
its really just the same as patching a normal texture
what is patch summary ? I can see that the tile change is not happening bc it's a big change. I'm not able to change the texture with or without conditions, the only texture that I ca change is the png that is used in tmx file
but how can tmx know the Target "Maps/CarolineGreenhouseTiles" ?
Does it need to?
its not your job to worry about the tmx file at all
All you're doing is patching the tilesheet texture
the tmx is irrelevant unless you're also doing a map patch
Well it's my tmx map so I'm always worried ^^
okay so that makes a difference because you could be using the tilesheet incorrectly
do one thing at a time
Quick question, did you leave the tilesheet in the same folder as your map’s tmx
You're probably accidentally supplying the vanilla tilesheet from your mod images rather than the game's content file
yes i have
ah okay, that makes sense
The game will try to use your local copy first, then check in the game’s Maps folder
Somehow I forgot about that 😄
that doesnt allow for any tilesheet patches, which is why we recommend learning to use the game's tilesheets directly
Umm so I have my own custom tilesheet so do I need to move it from root to it's own folder?
Custom tilesheets are fine to leave in
but your target is the name of a vanilla tilesheet?
It has the same name, so I need to give an unique name?
Absolutely
anyways i have to leave for work, so someone else will need to explain how to load and use a custom tilesheet
Thank you very much in any case! Now I know what to look for 
Afternoon. Is it possible to make the Paths layer draw from a seasonal Desert tilesheet?
Paths layer is just metadata that the game uses to determine what it should do in some places, it's never drawn
I figured as much, but the seasonal Desert tilesheet I made for DTZ isn't applied to Palm Trees that can be cut down. Is this because it's a save in progress?
tree is terrain feature, their sprites r elsewhere
Oh! I see.
Hello, Does anyone know where is the C# code for characters giving gifts to the farmer when you add a bit like [Item1 Item2 Item3] inside the game? 
Data/WildTrees
If I affix tree_palm.png with _[season], will it switch to seasonal?
*tree_palm.png
i dont know if desert has seasons though 
Yeah, that's what I was worried about.
I don't think it does, but you could make the patch to the tree conditional to a different location context maybe?
(I dont think it does)
but if ur tiles work then the tree season stuff should also work?
I would, if DTZ respected CP 😦
whats DTZ
Downtown Zuzu
Worst case, I can just turn them into scenery, but I'd prefer to keep them choppable.
could try adding the other 3 sprites and see how it goes
Hrm, I'll give that a shot.
TerrainFeatures doesn't even have sprites for tree6
I recall it being in the dialogue menu itself
Dialoguebox
I may be wrong though
Unfortunately well
Don't remember a method name, vague memory it is a single method
(Found it, it's in Dialogue.prepareCurrentDialogueForDisplay())
No dice, unfortunately. I'll just turn 'em into scenery.
stardrop says i have a bunch of updates. did 1.6.9 get released?
Beta did
ok idk why i suddenly got a lot of mod updates
No clue how stardrop works
stardrop is a mod manager that works alongside nexus mods
I know what it is lol, just haven't looked at its code
it does allow outside mods but you don't get the convenience of updating directly. however you need premium nexus in order to get the updating perk on stardrop
Seems counter intuitive to trying to not make this beta hugely public if stardrop is just gonna put it on blast
👀
Stardrop should only prompt to update to beta versions if you yourself is using a beta SMAPI
Ah, well that's good
I don't see any beta version updates in your screenshot
If you're not on 1.6.9 but downloaded the 1.6.9 beta version of mods, the mods will let you know (by exploding)
The best way to communicate.
oki thanks i will update em all
Stardrop just uses the smpi update api
when i release my 1.6.9 beta mod, Improved Shops 1.8, should i advertise the beta here or on #modded-stardew ?
1.6.9 is on the down low until full release right? I think just the mod manager notification is how it's been going
ok. i will make the 1.6.9 beta and post it on nexus. what cp version will i be using?
I don't remember exactly how people have set their beta updates but it's probably optional files rather than main download too
Question, milo
Is there a reason you're waiting for 1.6.9
Or timing for 1.6.9
1.6.9
Is mostly bug fixes (thank you Pathos!) and engine fixes
i am updating my mod to be 1.6.9 compatible
did you do EditData on this part
it's not just texture replace
If it's CP we've been mostly untouched 
Yeah, added four seasons and a tree_palm_winter for Winter.
Might've been because it's a save in progress.
the only change in CP land you want to worry about is the new colored item field
ok ill leave it be then. however i will be releasing one last update for IS so i can move onto IS-SVE as it'll be time consuming
otherwise only C# modders have to worry about 1.6.9
(I haven't bothered with a 1.6.9 because I'm pretty sure even the spacecore features I used didn't break)
just fixing a few features in my mod and be done with it
can try if the tree is work on farm perhaps
Not sure how to go about doing that. FWIW, it didn't affect the Desert either.
oh there's 2 palms
Tbh even c# don't really need to care about 1.6.9
the other one is 9
Unless you like transpilers
(no one likes transpilers)
if i were slightly smarter, the spacecore beta update should've tipped me off but, brain size of peanut 
I had to change two of my mods using directives to StardewValley.Objects.Trinkets, that was it for my C# mods lol
All my transpilers survived 
Interesting, I guess I should dive back into those and see if I can change how I'm doing anything
(i hope button knows i have to have betas docs, spacecore docs, and cp docs up at the same time while i work now
)
so how does ColorOverlayFromNextIndex work 
do you have like a main sprite + a color mask sprite
rathern than just 1 color mask sprite
i assume that yeah
the greyed out is your own rendition of it rather than having to depend on the game's internal?
oh wait no
it's for {0} flavored_items?
oh u cant just have it for any old item 
i wanted to make the frog egg trinkets actually match the frog colors
honestly i have no idea the wording is vague
i assume it's only a 0,1 index though since it's a bool
Yes, if true it will use the next index (like wine/pickles/etc.), if false it colors then entire sprite (like mine rocks)
shrimply, make a trinket machine, chu:
(and unfortunately it seems to only be for (O) objects)
but if you're adding new data fields to trinkets in your framework anyway may as well add "ColorSpriteTexture" and "ColorSpriteIndex" fields
IM GOING TO SCREAMMMMM THIS IS AMAZING
bog scheming
oh im already opening aseprite
i am not actually, all my stuff is on a new custom asset
yeah that's what I meant
no harmony run any%
letting ppl to put any class in trinket effect is very powerful but alas this coloring thing will need patching prob
yeah patching the draw code is definitely needed
will it let you.... shove it into the sewing machine for coloring?
ah i see

3 iridium bars
let's go gambling!
iridium is for stat
do all of the colors have different effects?
no
i'm /j that's too much work for however many colors you even wanted
I think you're confusing it with the Lava Forge? Anvil is a "machine" that takes 3 iridium bars as fuel
and you roll frog egg color at the anvil, not the forge
yea thats how it works for base game, but i would like to unify how color variants are obtained
it is odd that other trinkets roll stat on anvil but cant roll appearance
fairybox 
ah woops didn't know you're changing the mechanics 
so you're patching the anvil to take conditionally 3 iridium bars or 3 prismatic shards as fuel?
yea maybe
it is still in the "rotating in my head" stage of dev
i might just make a whole new machine (just for rolling appearances)
to keep stuff segregated from vanilla
most likely, since you otherwise would need a whole new UI to choose between "eat 3 bars to roll stats" or "3 shards to roll appearance"
(also minor balance suggestion, 3 prismastic shards is probably too much. I don't play with any cheaty skull cavern mods and I really have to ration my shard usage)
1 is fine imo
yea that sounds good
Skill issue 
(I'm kidding, ofc)
question, i am working on the jojamart part of my next mod. based on flash's code. if the conditions are not joja day, will it still appear on the shops at regular price? "Condition": "SEASON Spring, !PLAYER_HAS_SEEN_EVENT Any 502261, !IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay",
anyone know?
pretty sure you'd have to set two, one with base price and the "not" conditionals, and then the lowered price with the "true" conditionals
ok would it duplicate during the event tho?
i messaged flash just to be sure
it look weird if it has both
{
"Id": "FlashShifter.StardewValleyExpandedCP_JojaDay_Cucumber_Seed",
"ItemId": "FlashShifter.StardewValleyExpandedCP_Cucumber_Seed",
"Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay"```
joja day item
so ima bit lost
i mean if you have it set to a conditional it'll only spawn when it's true
i don't know how the items are set up, like if they have all of their respective information
want me to dm you the code so you can see?
i'm just gonna pull up my shop.json cause this other mod doesn't have any shop data lmao
if you look in stardew valley expanded cp, go to code then shop then joja.json
"PriceModifierMode": "Stack",```
that's in data/shops but i don't know which one you're grabbing from?
oheh hm
yeah the "items" field dictionary, right?
i would probably still do the duplicate, both with conditionals
one with the !festival and the other with the festival
yea, idk how the heck it can work if the passive events is a condition but still shows.
ok. would it duplicate during the festival or no?
the notfestival variant shouldn't show up
ok. i will try it out. i will finish the codes but when sve 1.15 goes beta i will test it as flash is giving me a copy
does the ! mean it's false or true?
! means "not"
therefore, in english, when you do ! festival, it's saying "when it's not a festival, this is true"
ok. also the player has seen event is only shown in non joja day items. i wonder how i should do it hmm
the event where morris comes up to the door the day before the first joja day
a bit stumped
hey y'all, there's a new !reload command that Aviroen came up with, just FYI, it tells people how to reload their mods in game
(i could only remember vs22 and rider, sorry to ya'll that use other things)
hot reload 
i assumed it was hot reload across all formats of c# but y'know there could be that one program that says "Fast reload" or something
no it is called that for C#, im just sad about it not being linux
oh lmao
now i can escape the clutches of finding the vs22/rider links for hot reload 
How do I find item sprites? I've unpacked the game files, but this isn't every file right?
Depends on the item, but a lot of them are in the springobjects file in the maps folder
springobjects.png in maps
rite of passage
"why is this in cursors?" "why is this in springobjects?" "WHY IS THIS IN TOWNINTERIORS?"
Maps/springobjects.png has all items pre 1.6, and TileSheets/Objects_2.png should have all 1.6 items
Thank you!
time to see how pliable addObject is, i wanna see if i can flip and rotate
We call it the "CA why are you like this" ritual 
hey guys once my next mod is ready to go beta, where should i post it while keeping it low key?
i wanna keep the beta testers to a max of 50
How can I view other mods DLL files so I can learn from the code, when I try and open in in VS it comes up as gibberish. Is there an extension I should have?
you have to decompile the DLL with ilspy, however a large number of mods are open sourced
most have their source on their nexus page, yeah
if they don't, well, they don't have it open source then 
anyone know?
probably just optional files in nexus -> watch your unique downloads like a hawk and then archive it?
i wont have is sve released yet
this is the very start of the mod
it will go beta once sve 1.15 goes beta
i'd assume SVE has their own "mod betas" ? idk their rules there though
if you're talking about a beta for the non SVE compartment then it's unnecessary, nothing intensive has changed for content patcher and we don't have to adhere to drastic changes 
ok. it is a brand new mod so i am seeking testers when the time comes to get feedback
honestly i think the concensus is just "nexus users are our beta testers"
ok so i should make an unlisted mod for the beta testing and leave a google form for the feedback?
you probably want to post about the beta in SVE server instead, once SVE beta is out
ok will need to seek permission first as it says no advertising but maybe i will post on krobus
What is Krobus? What is its niche?
krobus is the server specifically for making mods however i dont visit there that much
most of my time is spent on this channel and #modded-stardew
(i live only in this subsection, the other channels scare me)
but there is not as much activity on krobus so i spend more time here
i only visit sve for bug related stuff and questions
im not in any mod making server this channel is enough tbh
There's Stardew Modmaker Community and Krobus. Maybe there's even more, I dunno.
agreed
Thanks Anaira! It's me if I were cute xD
East Scarp server also has a very active mod making community
Sure does
ES is really useful if you're an NPC-maker especially because the people who frequent that server are next-level with NPC wizardry
Is there a way that I can reference dungeon floors without typing down all of them in my code?
"When": {
"LocationName: currentPlayer |contains= VolcanoDungeon{{Range:0,9}}": "false",
I thought this condition token would work but it only apply to VolcanoDungeon0 and not the rest, is there any way to make this work?
good to know, thanks yall
Yes but it is query token BS
"Id": "milosnikwiewiorek.ImprovedShopsSVE_Joja_Warehouse_Strawberry_Seeds",
"ItemId": "428",
"Price": "750",
"Condition": "SEASON Summer, SEASON Fall, SEASON Winter, PLAYER_HAS_SEEN_EVENT Any 502261, !IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay, PLAYER_HAS_MAIL any milosnikwiewiorek.ImprovedShopsCore_JojaSellsForageandFruit Received"
},```
however i already have a title with the name strawberry seeds and i am getting a yellow underline, this is for year around stock. what should i do for the name?
If i wrote "strawberry seeds joja warehouse" will it not alter the name in the shop?
not sure
you can always try and see
what does the yellow underline on vs code mean?
if you speak of what i think you speak about, your entry should match the id anyway, and the id (not itemid) can be whatever
no idea
The yellow underline means that you've repeated a dictionary key, if dialogue is anything to go by.
ok and should i write season for every season or should i just have wrote it once>
cuz it will be available in 3 seasons
SEASON Summer Fall Winter
idk if anyone would kno this rq but where is the texture for the little happy face that comes up when u kiss krobus? is it on the enojis sheet or would it be on the cursers/loosesprite sheet? im not seeing it there
Hi, again guys, I'm still figuring out how to edit my own tilesheets in my custom map. How do I know what is my Target while loading a tilesheet? Like in vanilla it's something like "Target": "Maps/desert_festival_tilesheet".
are you going to load your map tmx to Maps/* location?
its in "Maps/PIF/ location since the mod is for pif
then if your tilesheet was in same folder as your tmx, load that to Maps/PIF/* too
okay, it's just none of the other PIF mods load their tilesheets to "Maps/PIF" only to "Maps"
But how do I know what name my tmx espects?
For example this existing PIF mod Narnia has "Target": "Maps/panorama_in_winter",
"FromFile": "assets/panorama/vanilla_day_snow{{weath}}.png",
hm it could be PIF quirks, i am not sure
it should follow vanilla logic. And I haven't been able to make it work on non PIF maps either. But how do you know how the tilesheet is called?
so in tiled you can open embeded tilesheets
where the props show what file name it expects
this townInterior path is relative to where the map is, Maps/AnimalShop in this case
make sure you dont have directory climbing like ../../
oh why it says png 
i don't think it should have extension here
i noticed that vanilla tilesheets have names not just filenames but I don't know how to get one
can just edit it
I don't know how 😦
in this very panel
oh actually
did you have extensions hidden?
possible that your file is actually named PersonalSunroomTiles.png.png
no i don't have them hidden
then u should be able to just remove the .png (rather than browse for image)
there's no edit name button?
do you see this if you double click
Chue, extension being there is fine!
ok 
then i guess it is a issue with how you are load your map, perhaps send content json
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
My problem is that I don't know what is the name of the target? is it "Target": "Maps/PersonalSunroomTilesheet.png",?
no extension in the target
Is there a way for me to get more log information in the smapi terminal?
ohhhh
Or read the log file directly
"Action": "Load",
"Target": "Maps/PersonalSunroomTilesheet",
"FromFile": "assets/PersonalSunroomTiles.png"
},
{
"Action": "EditImage",
"Target": "Maps/PersonalSunroomTilesheet",
"FromFile": "assets/PersonalSunroomTiles{{weath}}.png",
"When": {
"Time": "{{Range: 0600, 2000}}"
},
"Update": "OnTimeChange"
},
{
"LogName": "Override tiles for night",
"Action": "EditImage",
"Target": "Maps/PersonalSunroomTilesheet",
"FromFile": "assets/PersonalSunroomTiles_rain.png",
"When": {
"Time": "{{Range: 2000, 2600}}"
},
"Update": "OnTimeChange"
},````
https://smapi.io/json/none/658a7ff847de49a3b4bdb180986783cc this is that part again if it doesnt show on mobile
would anyone happen to know what the overlay for smoked fish is?
ColoredObject.drawSmokedFish?
Where can I find that in the files?
Is this not working for you?
No it doesn't do anything unfortunately
decompile StardewValley.Objects/ColoredObject.cs
Just so I can check my understanding: is Personal Sunroom your own content pack for PIF or is it one you've downloaded?
It's my own content pack, I have tried to look and mimic other packs made by other people like the Narnia one
Okay cool
Is your .tmx file also just in your assets folder alongside the tilesheet files?
yes it is
(Back to the documentation mines
)
pls dont send me to the mines
Wdym overlay
It's just the fish but gray
Sad
Depressed
In England
I know but I want to know exactly what's applied to change it from fish to smoked fish
these are the night and day sheets
Ok, so your edits to the tilesheet you're loading into the game are not being used by the map, because the map is just using the PersonalSunroomTiles.png file that is in your assets folder. To fix that you need to keep your .tmx and .png files in separate folders.
ah okay!
In order to edit the map in Tiled, you need to have the tilesheets and map file in the same folder. Once you're done in Tiled, however, they need to be in separate folders.
I load mine by having an "assets/maps" folder with my maps in it and then an "assets/maps/tilesheets" folder with the .png files in it.
the function i mentioned is a bunch of draw calls that get called when the item id is exactly "SmokedFish"
You can tint images in the code
(i'm only still asking chu bc i have no idea how to decompile)
(and some fancy smoke particles)
don't want to change it, want to replicate it for other objects.
thank you very much! I will make the changes
it's hardcoded for the smoked fish item, so you can't...
...unless you use Extra Machine Config
the relevant code is in ColoredObject's draw functions
if you want to replicate it for your own mod you need to patch those
okay what I mean is i'm literally just going to drawn the sprites I want and apply a filter to them so they look similar to what smoked fish look like in 1.6. What i'm doing is aseprite not coding
ah okay. do consider EMC if you also need the fancy shmancy smoke particles as well
Will do
this is the color overlay if it helps new Color(80, 30, 10) * 0.6f
That does help I think thanks chu
i imagine u r just not doing the smoky animation
Yea, I'm just tryna get a first draft of my mod working so I ain't going for anything too fancy
feeling proud of me. I got almost a full json page done. just have one more section

longest json page yet
the mail.json for sve says JojaSeeds, should i use PLAYER_HAS_MAIL any flashshifter.StardewValleyExpandedcp_jojaseeds or should i use PLAYER_HAS_MAIL any JojaSeeds?
there is 2 player has mail conditions should i put both in one or should I put it in separate?
as before, use the key exactly as it is; i.e. JojaSeeds
(ideally, all mods would namespace with their {{ModId}}, but SVE does not and probably never will)
ok so PLAYER HAS MAIL any JojaSeeds?
there are 2 mail conditions should they be 2 separate or both in one?
what is the desired result? do you want
- either mail has been received (OR), or
- both mails have been received (AND)?
then you probably want "PLAYER_HAS_MAIL any <mail1>, PLAYER_HAS_MAIL any <mail2>" (double check me, i'm shooting from the hip)
meaning put them in the same Condition but separate them with a comma, which should only return true if both checks return true
"Id": "milosnikwiewiorek.ImprovedShopsSVE_Joja_Warehouse_Garlic_Seeds",
"ItemId": "476",
"Price": "20",
"Condition": "SEASON Summer Fall Winter, YEAR 2, PLAYER_HAS_SEEN_EVENT Any 502261, !IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay, PLAYER_HAS_MAIL any milosnikwiewiorek.ImprovedShopsCore_Y2JojaStockExpansion Received"
},```
this is what i got
so if you are adding JojaSeeds as a required mail to this, you add another comma and put the new condition after it
"Id": "milosnikwiewiorek.ImprovedShopsSVE_Joja_Warehouse_Garlic_Seeds",
"ItemId": "476",
"Price": "20",
"Condition": "SEASON Summer Fall Winter, YEAR 2, PLAYER_HAS_SEEN_EVENT Any 502261, !IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay, PLAYER_HAS_MAIL any milosnikwiewiorek.ImprovedShopsCore_Y2JojaStockExpansion, PLAYER_HAS_MAIL any JojaSeeds Received"
},```
like this?
yeah that looks right. try it out
oki thanks
the original joja.json in sve code doesnt have the mail condition only event condition but i believe. that event is Morris coming to the house to inform you of JojaDay on the 21st of a season after completing the warehouse
same with lewis and community day if gone cc route
I have now my tilesheets in a seperate folder but unfortunately it made no difference 😢
hello gang, if I wanted to make my own chest (like a storage chest) what page do I need to be looking at on the wiki 😭
there's a framework for that, expanded storage
https://www.nexusmods.com/stardewvalley/mods/7431 theres expanded storage, which is quite easy to use i think
making an AT pack for chests is also an option
(and tbh probably what most people do)
Can you open your map while it's still in the separate folder to the tilesheets and send me a screenshot of the open map?
Can someone let me know what the highlighted means/is for? and what im supposed to put there?
https://smapi.io/json/none/ec787e9ef2f74681a3e76e6ea8ab843b code is like this atm
Ok that entire map should be totally red, so you have made a mistake with your filepath for your PersonalSunroomTilesheet. The filepath should not include the folder that the PersonalSunroomTilesheet.png is currently in.
To fix it, close the map and then right-click on it and open it in a text editor.
Do a ctrl+F for "source=" and look through them until you find the one that has your PersonalSunroomTilesheet.png file listed. Then take a screenshot of that line for me, please.
to -> the map that the player is going to
example is when you're at an outdoor area, but you want a "house" to be fully locked until you have enough friendship (i.e. leah/elliott)
<tileset firstgid="3132" name="PersonalSunroomTilesheet" tilewidth="16" tileheight="16" tilecount="128" columns="8">
<image source="tilesheets/PersonalSunroomTiles.png" trans="000000" width="128" height="256"/>
</tileset>
Like Aviroen said - specifically the highlighted fields are the x and y tile coordinates you want the player to arrive in the new location on.
Ok excellent. Change source="tilesheets/PersonalSunroomTiles.png" to source="PersonalSunroomTiles.png" then save and exit the file, then try testing it in game again. By having the "tilesheets/" there, you're making the map still use the tilesheet that's in your mod folder rather than the one you Loaded into the game.
ah okay, i didnt realise this at all. thanks again!
we all hate love tiled! (help i'm being held hostage)
I wonder if using int there is a problem, as a programmer I understand it but I dunno about non-programmers
oh probably
https://smapi.io/log/057dab1fe60a477e847a431fea927c95 got this big error
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 22 C# mods and 100 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Ahh dang I can't remember exactly how to fix that issue
i might be able to fix it, but that requires me to put the gloves on
it had something to do with the tilesheet not being recognized properly "seasonally" iirc
what would you call something like 23 but not 23.1 if not int/integer
I know you were helping someone with the same issue the other day Aviroen. You said directory climbing (at least initially, I didn't see the whole convo) which I didn't think was correct but didn't jump in because I wasn't at my comp so I had nothing to offer to help.
so im on the final leg of JojaMart.json.
my question is on the sve Joja.json, it doesn't show a specific price. does that reflect onto other mods that use it?
In other places they're just listed as <x> <y> <toArea> which I find easier to follow
"Id": "FlashShifter.StardewValleyExpandedCP_JojaDay_Jazz_Seeds",
"ItemId": "(O)429",
"Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay"
},```
example
oh it was a form of directory climbing but it's a ~specialized~ directory climbing
which requires you to open the map in it's code form
also what does the (0) next to item id mean?
It's to do with the IDs in the tilesheet changing due to mucking about with filepaths...maybe?
I probably would say targetX or destinationX instead of including any qualifier about what kind of number it is
okay so i guess i can try with another save?
this is found on JojaDay section
This is why I beat people vigorously about the head regarding directory changes when they start using Tiled.
"Id": "FlashShifter.StardewValleyExpandedCP_JojaDay_Jazz_Seeds",
"ItemId": "(O)429",
"Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay"
},```
(O) means object
Easiest way I've found to fix it is to redo the whole map, I think if you could somehow figure out the correct GID you could manually change it
No, it is not save related it's to do with the tilesheet in relation to the map itself.
(yeah this is why i said i'd have to put on the gloves, it's about deleting the GID that's giving the error)
for my items for joja day, should i set a price or will it automatically slice the price in half?
I feel certain that I have dealt with this before as well
though it might be a domino effect, it might keep on going because the entire tilesheet might be corked
I've never dealt with it in a healthy way 😅
at the risk of sounding rude, you are likely to get your answer faster by just trying it for yourself
my map was originally made from carolines sun room so I thought it would be a safe approach. i was wrong it seems ;_;
@floral canyon You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
Ok Esca said it's because of editing the map when the tilesheets aren't in the same folder
no that isn't ride. thx for feedback
but ill try it out to see if it works
(i only really complain about my code problems when i've bashed my head against it for at least an hour and nothing has stuck)
So maybe put the tilesheet in the same folder, make an edit and save it?
Maybe Tiled will handle the xml changes for you
Worth trying. But first @floral canyon make a backup of your .tmx file because in fixing this we might first find a few ways of making everything worse instead.
i have 1393330 backups 
(there's a reason why i have 3 map folders)
Do you have a backup of the map in its finished state but before you started trying to get it to work in game?
Yes, like it obviously worked otherwise fine, it's just i can't change the texturess during night 😢
Ok if you can grab a backup of the map file from before I got you to move the .png files into a different folder we might not have to do anything extra to fix it 🤞
I mean then i'm at the starting point i guess 😅
The map shouldn't be different though
Since the daytime/night time change happens entirely through code in the .json file, not through anything in the .tmx
nothing i have made in the code has affected the tilesheet so far
No, and that is because of the file path issue with the map, remember?
ah okay so if i just fix that?
Right now I just want to know if you have a version of the map that looks identical to the one we were just working with, but which you haven't touched since you made the "tilesheets" folder.
i don't remember in which order i have done things 😅
Thanks so much for the help in any case. I have to give up for this night at least.
Okay, well, instructions for when you can give it a go again: move your latest version of the map out of your mod folder into a safe place somewhere else and then move the most recent backup of it that you can find into the mod folder and test immediately in game. No need to change anything else and definitely do not open the backup map.
okay thank you! i don't know if i have done that already. I should have first made the map working and then work on the tilesheet. Now I will feel so bad if I can't make it work since i made the art ready 😔
In regards to publishing mods, for a mod that gives you money for donating to the museum - would that be classed under "Gameplay Mechanics"?
I need to try cause a GID error again, last time I was trying to do so to test possible fixes and couldn't get it to happen in the first place
Don't worry, you will be able to get it working one way or another!
nexus categories are very vague, so don't worry too much, but that does seem like the most appropriate one
Thank you 
shrimple, use a fall_exterior, open a different map with a spring_exterior, and it should start acting funny
Hmm try putting just one tilesheet in a different folder, then open map and make a change, then save?
Why would opening a different map do anything? /curious
I hope so! I have this Dovecote addition for my pigeons and it's been half a year of not success 
you remember when i was doing my custom areas? that's what that issue was
But hooooooow Avi (can I call you Avi?)
(yeah that's fine) i right clicked a tile from an already established map -> it auto populated into the fall_exterior
Oh right that was just Tiled doing its helpful thing where it lets you use tilesheets across maps (NOT ACTUALLY HELPFUL TILED)
i don't exactly remember the hoops i had to go through to fix it, but i vaguely recall changing all of the GID's i used from the fall_exterior and pasting them into the spring_exterior
Is Nexus having a bug with publishing rn?
(nexus has been having a hard time the past few days for me tbh)
Last time I published a mod it took like a full day
Every time I am using a vanilla map as a reference for how to do cliffs, grass etc, I always end up doubling up tilesets for a while before I notice and have to undo things until I am back to just the one tileset
you would scream about my "finality" map that i have as a finisher event map
100% works, but it has like 20 tilesets
The last two mods I've published this week have published straight away, Nexus might be slowing me down by force XD
20 different tilesets, right? Not duplicates of the same tileset?
yeah, 20 (or maybe more) different tilesheets
The currently not published thing isn't showing up but it's not on new today yet.. ;-;
i wonder if i still have the video of it
If it doesn't publish today, it won't show up there at all
Happened for mine and someone else recently
Ahh okay, I'll just wait
Wasn't a big deal for me, I don't really care if people see my mods or not
See that's just being eclectic lol
Patience is not my virtue
But whenever it is live, you can (very nicely) ask a cheeto to showcase it for you
This is a completely new area of mod making for me so I hope some people see it, it took me all night (it's nearly 6am for me)
What's a cheeto?
Mod author, orange role
Ohhh
The Ones Who Have Been Annointed By The Cheeto Dust
Am too scared for that, is okie 
Aw, well they're all really nice, even the ones who bite a lil'
(the red one bites)
we only bite sometimes
sometimes
just a lil nibble


just a lil nibble
yes
void's the big chomper though
roku is sneaky because they are a mod author but pretending not to be!
that makes me regret joining this server on my alt account, no nitro for me
Whereas I am just very unproductive
theres a few incognito cheetos
Avi's a sneaky one too
i will not cheeto-fy until i'm satisfied with my own content
i have looks in pockets two mods
anyway, i am just hiding in here doing nothing because ive no energy to work on my mod rn cuz i am doing a three day training for my new job, weh
(listen i use this to distract myself from work too)
although actually, i'm getting feedback from my writers on how to continue these heart events cope
It's less that I'm pretending and more that I will request cheeto when the blue names run out XD
when you sit on a stuffy room for 8 hours to learn about meats and deli meats youll be spent
do we have one more blue tag to get to?
I think the next one is sufficiently purple enough for me to switch
yeah Rancher turns you ourple
sometimes i miss being ourple but beeig a cheeto is cool too
i'm honestly just scared of being a cheeto cause it feels like my words will then have weight to them, and i'm dumb and wrong like 95% of the time
dont worry i am living proof you can be cheeto and be stupid and still look cool
BUT THE OURPL TILESHEETS YOU MAKE ARE JUST SO EDIBLE
I still feel like that and it's been over 6 years now 
(ig I wasn't here for one of those, but still)
also yeah my modding career is roughly squints two months old
Just qualify everything you say with "I think" or "I believe"
(i will eat that ourpl)
i started modding because i wanted black goats from an old xnb mod in the game so i turned it CP :B
yeah button and i always append everything with "i think"
then i lost control and couldnt stop
now i have 30 mods and more planned sasdasfd
scope creep! scope creep!
if NPCs werent so intense to do Id have done kaveh, wriothesley, CA and many more already
(as someone who is revamping heart events for a 3rd time, yes, i feel that)
still lowkey wanna do a silly CA just walking around, nothing more
my meme mod is gonna be "junimos everywhere"
he wont do anything fance like big events or shit, jsut walking around the valley, chilling and talking with you
this was me, I wanted to make a crab pot mod that had lilypads and frogs on them so I could hide my crab pots in the town XD
Coral Island has a Concerned Monkey merchant lol
(also my mod is now properly published, took nexus a lil bit yay)
fighting the demons telling me to make the 9 heart farmerless, but i already made the 6 and 7 heart farmerless
I mean
I'm dumb and wrong a lot
I just look cool doing it
hi hi!!! im trying out the new tree size framework mod
im struggling a little bit with how the manifest should be this is what i have right now copied from the github
and i keep getting an error that the DLL for tree size framework doesnt exist, but i have the framework mod in my mods folder
WHAT AM I MISSING LOL
This is a content pack right?
So many people typing...you will be flooded with answers, Bog 
You shouldn't have the entry dll
is the dll yours
You're creating a content pack for the framework
okay so the documentation on the github is a little off
that manifest is for the tree mod itself. You're going to be making a content pack so just use the regular CP manifest
So you would need to reflect that - it's just like your Content Patcher mods
okay
oh it's like the fashion sense manifest
Only you'll put "Content pack for Tree Size Framework"
Have you checked out the docs? You need to make a CP mod and add an entry to the custom assets from the mod
You also need to add a entry to Data/WildTrees or Data/FruitTrees first as the key for the custom asset should be your tree Id
yes ive been following the github while making
You know what I think is important? Any time I am like "hmm no Avi you are wrong it is actually X" your response is to straight away be like "oh yeah, you're right!" (if I am actually right lol) and I think that matters much more than never getting things wrong because attitudes like that are what let us grow and be collaborative. It's how I try to be as well when I (many times) get advice to people wrong and someone else has to swoop in to correct me xD
The mod just adds a asset you edit through CP
i wish to cause chaos with this newfound tree power
@finite ginkgo is my new hero
How big can you make the tree?
i've always wanted a tree-size one of these buggers
how about a tree that goes offscreen
tea's tophats as a tree
Pfjdjsisnf it’s just a small mod I didn’t do anything that impressive 😂
Make redwood trees
You did something that in all the years of SDV modding, no one else has done
It's a BIG DEAL™️
i love this framework
Everybody just immediately going "big tree big tree" just like in ES!
I think 6480's working on exactly that!
my big tree im testing
ngl, when I saw the new big trees in Cindersap, I had big dreams
what if those analog horror trees
Anyways yeah I'm probably about to release a new update that adds the ability to customize the tree width too, i just need to adjust the docs first cause I made a few changes to the asset
I should probably make an example pack too 
If I could art, I would make a giant Baobob
w i d e
what is the unique id for tree size framework?
i would love wider treesssss
EnderTedi.TreeSizeFramework i assume
EnderTedi.TreeSizeFramework
OMG I need a Banyan tree the size of the village
yeah
ty tyyyy
Now I'm beginning to wonder how I ever got GID errors because I'm abusing the hell out of this map and I can't get it to happen
OH I KNOW
export the tilesheet
use the .tsx or whatever, and it just hates that
do the trees replace random existing trees? or does it add new trees?
Would i need to start a new map or can i load an existing map for the trees to be there?
Like from a different map or from my current map?
you can define new wild trees in 1.6 (and make them beeg with the mod)
you can edit existing maps layers to add your new tree, but if you want them to show up in an existing save you might need Reset Terrain Features to yeet and reset all the trees
As an example Cornucopia More Crops adds a new sapodilla tree and make it spawnable on Ginger Island
You can edit a vanilla tree's size and texture or a custom one, doesn't matter, the entry key should match whatever the key is in the tree's entry in Data/WildTrees or Data/FruitTrees (since you need to first add the tree in with one of those)
So basically, if I make a new wild tree, I would then just plant the seed of it
yall know i have a hard time understanding things sometimes please bear with me....
Still no dice...
And then make it grow with CJB cheats magic?
I tried moving one of the tilesheets I was using, both with relocating it in the xml and without, I tried editing the map while it was moved in both ways, I've tried moving the sheet and adding a new tileset and editing the map, now tried adding a tileset from another map and editing it
That's the placeholder. You would want to give it a unique name.
Is this your actual file or just an example?
Also, I might be wrong, but I think your "Target" needs to be Data/WildTrees
TY LOGO<3
(just to confirm again, you should be making a basic CP mod, so the ContentPackFor field in your manifest will still be for CP)
ah i just copied from the example on the hub
(the manifest you copied was not an example)
oh neat, i thought i'd have to do a new folder like fashion sense
Hello, may i ask what is this mod name?
(also the syntax and everything is just CP styled so the texture is as arbitrary as your normal image patches)
That's from UI Info Suite 2
oh my bad lol thanks for being patient with me yall
Thank you so much🙏🏻🙏🏻
(does that mean we're yapping more here than modded farmers 
No problem, but in the future, these questions are better suited for #modded-stardew as Selph mentioned 🙂
yeah thats how i test them!
Ok, next time i will go there for the question, pardon me as a newbie🙏🏻
I might do a baobab now that tedi is working on wide trees too
No worries!!
I just mentioned this like 5 minutes ago. I would LOVE this.
I feel like I just need to hijack SVE's maps to plant all these trees cus the vanilal desert is NOT big enough for all the hot biome trees i want to do LOL
yeah thats why i spoke up 😂
(i would definitely make those big spiderwebby trees drop cloth though)
chaos incarnate
What if you edit the tilesheet itself? Resize it. Then open the map and when it asks if you want to update the GIDs, say no. Will probably just bork the map but it's all the potato brain has got right now. 🥔
I'll give it a try when I get back I guess, I'm really at a loss lol
it really is only when we've finally figured out Tiled that we can't get it to break
This feels like a car that only behaves itself at the mechanic
can't unlearn riding a bike
Oh so all my cars
for immersion purposes maybe it can drop web that can be spun into cloth at the loom?
I will also try breaking a gid when I am at my desktop.
y'all are so knowledgeable and i feel like my entire style of creating mods is trial and error LMAO 
That's what I do, tbh, Lune
no that's this entire channel idk what you mean
No, that's my method too lmao
Trial and error is life
replying to an hours old message to refute this bc that's how much I enjoy writing transpilers. needed it to be known. sometimes i like writing transpilers more than I like writing normal code 
LMAO
You just trial and error and then try to remember the result
litterally me crying cause i need someone to show me
reading just text hubs are hard for me lol
do it stick
And then later you can spout off what you learned and it looks like knowledge
I dont test things, I just write mods and they work first try

listen everyone's not perfect like you 6480
me sobbing
I can try to walk you through it, Bog?
you and chu 🤝
I actually am fine with transpilers now
bog are you trying to make a new tree or replace an existing tree
Because i have templates for either one
(also it's okay, it took me a whole month to finally understand github docs and now i only have to bother button because a new framework in my lap, must break)
i would probably not like transpilers as much if I never figured out code matcher
though I did still like them before that
very fun that none of mine broke in 1.6.9
i will remember this, but i assume i'm not going to need transpilers/harmony for karaoke
not if you're making everything from scratch, probably not
nah prb not, u get ur own minigame class
@tribal ember are you trying to make a new tree or retexture an existing one?
Trees are super cool so here is an encouragement for you, BogWytch, you can do this!!!
None of mine would have broke if I didn't hardcode my stloc_s locations. But I know better know - they are now calculated dynamically from surrounding code and they should never break again!*
*this statement is not legally binding
well i have to get on the bus now so 😅 I put both examples in there @tribal ember It should probably work but I'm in a hurry
i can't remember if I even have any transpilers with st_loc that doesn't point to my own local. local variables are annoying
advertises SpaceCore's "get locals by name" feature
(I still need to update all my transpilers to use that)

Spacecore is the coolest!!! It has saved my bacon one hundred times over, and I cannot thank you enough for it!!!
i wish i had a better way of reading IL though
atm i just have 1 single file Stardew Valley.dll.IL
if I can write a transpiler without introducing a dependency just to make it a little bit easier though I'd prefer to
That sounds painful
That's fair, I wouldn't introduce a dependency for one feature either
chu do you not just look at the IL you need in particular in ilspy or something
Unless it was a huge one, like UI framework (which I already have in SpaceCore that I'm happy with, so...)
as established avalonia ilspy is kinda succ
what about dnspy is that any better
after 5 hours of hard work i finally finished the jojamart.json listing. this was my longest script yet
feeling proud 
I save the entire SDV source code into a 350k lines long file which I grep with vim
That also sounds painful
ig i'll have to build dnSpyEx manually 
it is lightning fast though as long as I already know what to look for
anyone know how to speed up the coding? spent the last 5 hours writing the whole list 3 times with different id names
spends 6 hours on trigger actions nope
(person who knows not a lot about Linux vc) i saw someone say it works fine with Wine/Proton
I am so looking forward to harder codes

i suppose you could split up these similar lists into different includes
honestly i think trigger actions are more on the easier side? that's a personal thing though, unless i'm using button's framework, then it's me staring at the readme like "i'm stupid"
so that its just matter of find and replace
yea i had to do the codes 3 times as it was sve joja addons but i will find a speedup system
CP doesn't have iterative features really
tbf, i do stupid things to include data that you normally wouldn't get
oh yeah i do have a certain rhyme and reason for copying and pasting
mumbles something about my CP alternative and being able to make patch templates
not modding but i do enjoy vue's v-for directive very much
yea i started to learn how to copy and paste but when it comes to side scrolling on VS code while selecting it works terribly
please
Vim macros my beloved
cp could easily include such a thing and have it run before hitting actual content pipe
😛 (For the record, I think you have "Entries" nested in there a second time?)
does vs code have a word wrap so i dont have to side scroll?
(thank you, i wrote this at 4am)
vscode does have word wrap, need to go turn it on
where is it?
preferences
"easily" - I'm not sure CP is structured to do that sort of thing - or wasn't at least last time I was in there for PR purposes
i use vs code on mac os senoma
yea but it'd be a preprocessor basically 
That's how mine works, yeah
and only allow const, no tokens 4 u
If you only allow constants it's a glorified include
editor: word wrap
You should allow passing in values to replace other ones







