#making-mods-general

1 messages · Page 6 of 1

royal stump
#

things that only rely on location could probably be cached fine with messaging or another modData field, e.g. the host farmer

uncut viper
#

that would remove a lot of their purpose for the lightning and warp actions, though

royal stump
#

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

uncut viper
#

they can, yeah, the warp code checks for if you're a client or not and the wctm commands work fine

calm nebula
#

(oh, yeah, that's the other thing. Players can only write to themselves.)

uncut viper
#

but also its not just for warping NPCs around but for warping you to NPCs too

uncut viper
vernal crest
#

Would it take C# to make Krobus's spritesheet size match the other NPCs'?

uncut viper
#

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

summer bobcat
#

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-

calm nebula
#

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

uncut viper
#

well, thats not the only thing that requires the NPC locations, but i am yes. but also what

calm nebula
#

then you just need to keep track of when npcs switch maps

uncut viper
#

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

calm nebula
#

ther's techincally a race condition where the npc leaves just before the player arrives

lucid iron
uncut viper
#

im not sure what you mean with the race condition thing

lucid iron
#

Krobus is 2 tiles tall like everyone else I think?

calm nebula
#

so, sync is every three ticks, right?

uncut viper
#

¯_(ツ)_/¯

#

lets go with yes bc i assume you know the answer

vernal crest
#

Sorry Chue I wasn't clear. Krobus's sprite is 16x24 so his individual sprite size is different to the other NPCs.

uncut viper
#

i think i see thoiugh

calm nebula
#

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?

uncut viper
#

for actions if im asking the host to do things anyway though i dont need to hide under the cover of night at all

calm nebula
#

(this is how farmhand warping - farmhand alwasy requests of the host.)

lucid iron
#

You can replace krobus sprite with 16x32 sheet and edit that

calm nebula
#

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

uncut viper
#

right, but i mean

#

why would i need to hide while im getting the correct tile

#

the host knows the correct tile

calm nebula
#

oh, I guess just go "host, warp me to emily"?

#

I guess that makes more sense lol

uncut viper
#

thats how it currently works basically

#

when you're the host that is

#

or whatever coordinates relative to Emily you specify

vernal crest
lucid iron
#

Event stuff should use AnimatedSprite right

#

so that it's just sprite index

#

And no explicit sprite rects

uncut viper
#

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

calm nebula
#

I....don't think os

#

because the "extra" npcs on farmhands are straight up clones and not even the right instances

vernal crest
#

Yeah unless CA makes use of positionOffset for Krobus or something? IDK maybe it will be totally fine

uncut viper
#

what if i used those fields on the host only to decide when to broadcast, instead of checking NPCs every however many ticks

calm nebula
#

...that's a good shout, auto play all events with a certain npc

uncut viper
#

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

lucid iron
#

Is there a custom npc who is massive Bolb

#

32x32 absolute unit

uncut viper
#

though NetLocationRef doesnt seen to have a fieldChangeEvent on it or anything (also whats the difference between fieldChangeEvent and fieldChangeVisibleEvent? what is interpolation?)

vernal crest
uncut viper
#

(i think messing with the size messes with pathfinding a lot)

vernal crest
#

Ahh true that makes sense. Wide NPC stuck in doors.

calm nebula
calm nebula
uncut viper
#

see my "what is interpolation?" SDVpuffersquee

lucid iron
#

I remember that NetPosition is different than NetVector2 in that I didn't need to attach a fieldChangeEvent just so sync it think

calm nebula
#

"Hey client, that bat is supposed be at tile 4, 5. Can you move the bat over but like smooth."

uncut viper
#

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? SDVpufferflat)
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—

lucid iron
#

There a debug warp to npc thing right

#

Is that unreliable for farmhands too

uncut viper
#

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

royal stump
#

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")

uncut viper
#

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)

royal stump
#

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"
        ]
    }
}```
uncut viper
#

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

royal stump
#

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 SDVpufferdizzy
so any implementation is probably good

vernal crest
#

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

uncut viper
#

oh i see what you mean now

royal stump
#

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)

uncut viper
#

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

lucid iron
#

What if you make an action that fires a trigger

uncut viper
#

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

lucid iron
#

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 kyuuchan_run

uncut viper
#

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

royal stump
# lucid iron What if you make an action that fires a trigger
"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 SDVpufferdizzy

uncut viper
#

but wont work for things that need to check conditions local to each player

lucid iron
#

Overengineering for fun and profit wew

uncut viper
#

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

lucid iron
#

The 2nd manual trigger can have conditions separate from the host only one

uncut viper
#

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

lucid iron
#

That's the idea behind doing it in 2 actions at least, tho I might be too eepy here

uncut viper
#

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

royal stump
#

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 SDVpufferdizzy

uncut viper
#

TriggerActionManager only lets you Raise an event for a trigger type, or run actions without context

royal stump
#

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

uncut viper
#

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

royal stump
#

(no worries, I can't think of a great solution here & keep worrying I'll make things worse SDVkrobusgiggle)

uncut viper
#

its not making things worse! my brain just does not work as fast the later into the night it gets SDVpuffersquee 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)

velvet narwhal
uncut viper
#

lmao

velvet narwhal
#

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

royal stump
#

same SDVkrobusgiggle
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

uncut viper
#

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

royal stump
#

oh, right, I think it just gives you all of them as an object array? SDVpuffersquint

#

TriggerActionContext context -> context.TriggerArgs is a readonly object[]

#

at least in actions

calm nebula
#

Yeah it's weird

uncut viper
#

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

calm nebula
#

Tbh when I looked at trigger actions I was like "welp I can use the model and about nothing else"

uncut viper
#

the action gets the context too but i dont know how you'd expect it to read the triggerArgs array

calm nebula
#

The context is to let you pass data from raise to a specific trigger action

#

Very much left hand right hand

uncut viper
#

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

calm nebula
#

Huh

#

Okay, I'm thinking more of like

uncut viper
#

the target player, location, and items are sent separately

calm nebula
#

GsQ

#

Where there is the custom data dictionary

royal stump
#

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```
velvet narwhal
#

oh right this all stems from multiplayer being bespoke

uncut viper
#

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

royal stump
#

SDVpufferthinkblob 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

uncut viper
#

its all delegates all the way down

velvet narwhal
#

it's 2024 and i've been forced to remember john green

uncut viper
#

the eventual action (like AddMail) gets the TriggerActionContext eventually but not the triggerArgs array

#

as far as i can tell

uncut viper
#

but how is a mod meant to use it

calm nebula
#

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

uncut viper
#

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

calm nebula
#

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

royal stump
#

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

uncut viper
#

custom actions do not get TriggerArgs

calm nebula
#

Is there not an overload of Raise that let's you supply the full context

uncut viper
#

or well

#

actually i might be dumb hold on

calm nebula
#

(To be fair, I'm going off what I know was intended.

#

I have not checked the implementation.)

uncut viper
#

no yeah, it turns out im just real dumb

royal stump
#

Raise's only overload has an optional object[] TriggerArgs (same as TriggerActionContext) followed by several optional things like Player, Item, etc

uncut viper
#

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

royal stump
#

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

uncut viper
#

SDVpufferflat where was atra when i asked about exactly this the other week

#

smh

velvet narwhal
#

working smh

#

horse_ebooks gets 1.1.0

calm nebula
#

If you're paranoid set the first item to a signal object but

uncut viper
#

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

calm nebula
#

Or make a record

#

We like records

#

If my record is in slot 0

uncut viper
#

i also forgot until looking at them just now that TriggerActionData has a CustomFields field? has anyone ever used those yet, i wonder SDVpufferthink

royal stump
#

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 SDVpufferdizzy

uncut viper
#

i cant think of something id need to look in CustomFields for that i couldnt just do in the action itself

velvet narwhal
#

(i assume customfields can't do the thing that atra wanted which was the unlockable bundle meadowlands SDVkrobusgiggle )

uncut viper
#

(or the CustomFields entry on GameStateQueryContext which i really cant see a use case for...)

royal stump
#

it's admittedly a lot less useful as a string,string than it would be as string,object SDVpuffersquint

uncut viper
#

GSQContext is actually string,object

#

same with TriggerActionContext

royal stump
#

I'm getting string,string in the intellisense for context.Data.CustomFields

#

(in a trigger action, that is)

uncut viper
#

thats in the CustomFields for the TriggerActions entry itself

#

you can also set a separate CustomFields on the TriggerActionContext itself

#

context.CustomFields

royal stump
#

oh, I see, though I don't understand what that is SDVpufferdizzy

uncut viper
#

i have absolutely no clue why you'd ever need or want to write CustomFields to either of them

royal stump
#

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

uncut viper
#

i mean thats a use case i can see for sure, when i said "either of them" i meant TriggerActionContext and GameStateQueryContext SDVpuffersquee

royal stump
#

oh, yeah, no idea how those are intended to work & there's already the context object pile SDVpuffermlem

uncut viper
#

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

velvet narwhal
#

i feel like i suddenly understand why i have to target spacecore but i am also still lost SDVpufferclueless

royal stump
#

yeah, I guess it's possible to use, but it does feel like "Pathos just included it here because why not" SDVkrobusgiggle

uncut viper
#

if it helps, Esca and I are also lost about why it exists

velvet narwhal
#

"pathos found it useful, the inner machinations of the mind are an enigma"

uncut viper
#

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

royal stump
#

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 SDVkrobusgiggle

uncut viper
#

id check but i dont wanna download the 1.6.9 beta again while im workin on 1.6.8 stuff

royal stump
#

(not that I can see; also I guess IClickableMenu is an abstract class but not an interface SDVpuffersquint)

uncut viper
#

just shove your customfields stuff into the new screenreader fields /j

calm nebula
uncut viper
#

why does GameStateQueryContext need CustomFields

royal stump
#

I don't have a use case for it either, it just came to mind because I've seen them get wrappers a lot

calm nebula
#

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

royal stump
#

that's why I plagued myself with used them, at least

uncut viper
royal stump
#

unfortunately on serializeable objects, where modData/customFields helps quite a bit more

uncut viper
#

(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)

royal stump
#

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 SDVpufferdizzy

uncut viper
#

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 SDVpufferheart
(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? SDVpuffersmart)

spice inlet
floral canyon
#

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?

drowsy pewter
#

it seems fine

#

tilesheets are just the same as a normal image

#

you can edit it the same

#
  1. 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

floral canyon
#

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

floral canyon
#

Does it need to?

drowsy pewter
#

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

floral canyon
#

Well it's my tmx map so I'm always worried ^^

drowsy pewter
#

okay so that makes a difference because you could be using the tilesheet incorrectly

#

do one thing at a time

finite ginkgo
#

Quick question, did you leave the tilesheet in the same folder as your map’s tmx

drowsy pewter
#

You're probably accidentally supplying the vanilla tilesheet from your mod images rather than the game's content file

finite ginkgo
#

The game will try to use your local copy first, then check in the game’s Maps folder

floral canyon
#

Somehow I forgot about that 😄

drowsy pewter
#

that doesnt allow for any tilesheet patches, which is why we recommend learning to use the game's tilesheets directly

floral canyon
finite ginkgo
#

Custom tilesheets are fine to leave in

floral canyon
#

I'm not patching the vanilla tilesheets

#

okay

drowsy pewter
#

but your target is the name of a vanilla tilesheet?

floral canyon
#

It has the same name, so I need to give an unique name?

drowsy pewter
#

Absolutely

#

anyways i have to leave for work, so someone else will need to explain how to load and use a custom tilesheet

floral canyon
fathom hound
#

Have a nice day at work 6480! aSDVpufferchickpride

#

Welcome aSDVpuffercaramelldansen

marble verge
#

Afternoon. Is it possible to make the Paths layer draw from a seasonal Desert tilesheet?

rancid temple
#

Paths layer is just metadata that the game uses to determine what it should do in some places, it's never drawn

marble verge
#

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?

lucid iron
#

tree is terrain feature, their sprites r elsewhere

marble verge
#

Oh! I see.

formal crown
#

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? SDVpufferlurk

lucid iron
#

Data/WildTrees

marble verge
#

If I affix tree_palm.png with _[season], will it switch to seasonal?

#

*tree_palm.png

lucid iron
#

i dont know if desert has seasons though think

marble verge
#

Yeah, that's what I was worried about.

rancid temple
#

I don't think it does, but you could make the patch to the tree conditional to a different location context maybe?

formal crown
#

(I dont think it does)

lucid iron
#

but if ur tiles work then the tree season stuff should also work?

marble verge
lucid iron
#

whats DTZ

marble verge
#

Downtown Zuzu

rancid temple
#

Downtown Zuzu

#

It's highly aggressive with its patches

lucid iron
#

ah right

#

well if u look at vanilla palm (tree 6) its only got 1 sprite

marble verge
#

Worst case, I can just turn them into scenery, but I'd prefer to keep them choppable.

lucid iron
#

could try adding the other 3 sprites and see how it goes

marble verge
#

TerrainFeatures doesn't even have sprites for tree6

lucid iron
#

6 is the index in Data/WildTrees

#

which is what you gotta edit

calm nebula
#

Desert has seasons

#

Gi doesnt

calm nebula
#

Dialoguebox

#

I may be wrong though

#

Unfortunately well

#

Don't remember a method name, vague memory it is a single method

formal crown
marble verge
last plume
#

stardrop says i have a bunch of updates. did 1.6.9 get released?

rancid temple
#

Beta did

last plume
#

ok idk why i suddenly got a lot of mod updates

rancid temple
#

No clue how stardrop works

last plume
#

stardrop is a mod manager that works alongside nexus mods

rancid temple
#

I know what it is lol, just haven't looked at its code

last plume
#

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

rancid temple
#

Seems counter intuitive to trying to not make this beta hugely public if stardrop is just gonna put it on blast

last plume
brittle pasture
#

Stardrop should only prompt to update to beta versions if you yourself is using a beta SMAPI

rancid temple
#

Ah, well that's good

last plume
#

i am not using smapi beta thinksmug

brittle pasture
#

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)

last plume
#

oki thanks i will update em all

calm nebula
#

Stardrop just uses the smpi update api

last plume
#

when i release my 1.6.9 beta mod, Improved Shops 1.8, should i advertise the beta here or on #modded-stardew ?

velvet narwhal
#

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

calm nebula
#

Yes

#

I would not publicly acknowledge 1.6.9 until it is fully released

last plume
#

ok. i will make the 1.6.9 beta and post it on nexus. what cp version will i be using?

velvet narwhal
#

I don't remember exactly how people have set their beta updates but it's probably optional files rather than main download too

calm nebula
#

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

last plume
#

i am updating my mod to be 1.6.9 compatible

lucid iron
#

it's not just texture replace

velvet narwhal
#

If it's CP we've been mostly untouched SDVpufferclueless

last plume
marble verge
#

Might've been because it's a save in progress.

brittle pasture
#

the only change in CP land you want to worry about is the new colored item field

last plume
#

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

brittle pasture
#

otherwise only C# modders have to worry about 1.6.9

velvet narwhal
#

(I haven't bothered with a 1.6.9 because I'm pretty sure even the spacecore features I used didn't break)

last plume
#

just fixing a few features in my mod and be done with it

lucid iron
marble verge
lucid iron
#

oh there's 2 palms

calm nebula
#

Tbh even c# don't really need to care about 1.6.9

lucid iron
#

the other one is 9

calm nebula
#

Unless you like transpilers

velvet narwhal
#

(no one likes transpilers)

lucid iron
#

i do

velvet narwhal
#

if i were slightly smarter, the spacecore beta update should've tipped me off but, brain size of peanut SDVpufferclueless

rancid temple
#

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 SDVpufferparty

lucid iron
#

trinkets changed a bunch actually

#

some fields became public Bolb

rancid temple
#

Interesting, I guess I should dive back into those and see if I can change how I'm doing anything

velvet narwhal
#

(i hope button knows i have to have betas docs, spacecore docs, and cp docs up at the same time while i work now SDVpufferflat )

lucid iron
#

so how does ColorOverlayFromNextIndex work think

#

do you have like a main sprite + a color mask sprite

#

rathern than just 1 color mask sprite

velvet narwhal
#

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?

lucid iron
#

oh u cant just have it for any old item hokuhands

#

i wanted to make the frog egg trinkets actually match the frog colors

velvet narwhal
#

honestly i have no idea the wording is vague

#

i assume it's only a 0,1 index though since it's a bool

brittle pasture
#

Yes, if true it will use the next index (like wine/pickles/etc.), if false it colors then entire sprite (like mine rocks)

velvet narwhal
#

shrimply, make a trinket machine, chu:

brittle pasture
tribal ember
#

IM GOING TO SCREAMMMMM THIS IS AMAZING

velvet narwhal
#

bog scheming

tribal ember
#

oh im already opening aseprite

lucid iron
brittle pasture
#

yeah that's what I meant

lucid iron
#

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

brittle pasture
#

yeah patching the draw code is definitely needed

velvet narwhal
#

SDVpufferthink will it let you.... shove it into the sewing machine for coloring?

lucid iron
#

no you gotta roll for your color

#

3 pris shards at a time on the anvil

velvet narwhal
#

ah i see

lucid iron
brittle pasture
#

3 iridium bars

velvet narwhal
#

let's go gambling!

lucid iron
#

iridium is for stat

velvet narwhal
#

do all of the colors have different effects?

lucid iron
#

no

velvet narwhal
#

i'm /j that's too much work for however many colors you even wanted

brittle pasture
lucid iron
#

i havent finished the variants feature so i been making stuff up

brittle pasture
#

and you roll frog egg color at the anvil, not the forge

lucid iron
#

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 medlook

brittle pasture
#

ah woops didn't know you're changing the mechanics SDVpufferclueless

#

so you're patching the anvil to take conditionally 3 iridium bars or 3 prismatic shards as fuel?

lucid iron
#

Bolb 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

brittle pasture
#

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

lucid iron
#

yea that sounds good

last plume
#

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?

velvet narwhal
#

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

last plume
#

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

velvet narwhal
#

i mean if you have it set to a conditional it'll only spawn when it's true

last plume
#

so ima bit stumped. i will figure it out

#

cuz i can't figure out how to separate it

velvet narwhal
#

i don't know how the items are set up, like if they have all of their respective information

last plume
#

want me to dm you the code so you can see?

velvet narwhal
#

i'm just gonna pull up my shop.json cause this other mod doesn't have any shop data lmao

last plume
#

if you look in stardew valley expanded cp, go to code then shop then joja.json

velvet narwhal
#
"PriceModifierMode": "Stack",```
that's in data/shops but i don't know which one you're grabbing from?
#

oheh hm

last plume
#

im grabbing from data/shops

#

flash gave me the 1.15 shop folder

velvet narwhal
#

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

last plume
#

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?

velvet narwhal
#

the notfestival variant shouldn't show up

last plume
#

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?

velvet narwhal
#

! means "not"

#

therefore, in english, when you do ! festival, it's saying "when it's not a festival, this is true"

last plume
#

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

fathom hound
#

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

velvet narwhal
#

(i could only remember vs22 and rider, sorry to ya'll that use other things)

lucid iron
#

hot reload hokuhands

velvet narwhal
#

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

lucid iron
#

no it is called that for C#, im just sad about it not being linux

velvet narwhal
#

oh lmao

#

now i can escape the clutches of finding the vs22/rider links for hot reload SDVpuffersquee

dense jolt
#

How do I find item sprites? I've unpacked the game files, but this isn't every file right?

proven spindle
#

Depends on the item, but a lot of them are in the springobjects file in the maps folder

velvet narwhal
#

springobjects.png in maps

#

rite of passage

#

"why is this in cursors?" "why is this in springobjects?" "WHY IS THIS IN TOWNINTERIORS?"

formal crown
#

Maps/springobjects.png has all items pre 1.6, and TileSheets/Objects_2.png should have all 1.6 items

dense jolt
#

Thank you!

velvet narwhal
#

SDVpufferthink time to see how pliable addObject is, i wanna see if i can flip and rotate

brittle ledge
#

We call it the "CA why are you like this" ritual SBVLmaoDog

last plume
#

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

reef silo
#

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?

lucid iron
#

you have to decompile the DLL with ilspy, however a large number of mods are open sourced

velvet narwhal
#

most have their source on their nexus page, yeah

#

if they don't, well, they don't have it open source then SDVpufferthumbsup

last plume
#

anyone know?

velvet narwhal
#

probably just optional files in nexus -> watch your unique downloads like a hawk and then archive it?

last plume
#

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

velvet narwhal
#

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 SDVpufferclueless

last plume
#

ok. it is a brand new mod so i am seeking testers when the time comes to get feedback

velvet narwhal
#

honestly i think the concensus is just "nexus users are our beta testers"

last plume
#

ok so i should make an unlisted mod for the beta testing and leave a google form for the feedback?

lucid iron
#

you probably want to post about the beta in SVE server instead, once SVE beta is out

last plume
#

ok will need to seek permission first as it says no advertising but maybe i will post on krobus

vernal crest
#

What is Krobus? What is its niche?

last plume
#

krobus is the server specifically for making mods however i dont visit there that much

vernal crest
#

There's two modmaking servers?

#

Plentiful

velvet narwhal
#

(i live only in this subsection, the other channels scare me)

last plume
#

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

vernal crest
#

How does one find a link to Krobus?

#

Ah ha, one goes to the ES server

fathom hound
#

there's another mod making server?

#

oooo i like your new pfp Aba!

lucid iron
#

im not in any mod making server this channel is enough tbh

vernal crest
#

There's Stardew Modmaker Community and Krobus. Maybe there's even more, I dunno.

vernal crest
#

Thanks Anaira! It's me if I were cute xD

brittle pasture
#

East Scarp server also has a very active mod making community

vernal crest
#

Sure does

fathom hound
#

you ARE cute spongebobmad

vernal crest
#

ES is really useful if you're an NPC-maker especially because the people who frequent that server are next-level with NPC wizardry

valid crow
#

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?

fathom hound
#

good to know, thanks yall

last plume
#
            "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

hallow prism
#

you can always try and see

last plume
#

what does the yellow underline on vs code mean?

hallow prism
#

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

vernal crest
#

The yellow underline means that you've repeated a dictionary key, if dialogue is anything to go by.

last plume
#

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

vernal crest
#

SEASON Summer Fall Winter

royal nimbus
#

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

floral canyon
#

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".

lucid iron
#

are you going to load your map tmx to Maps/* location?

floral canyon
#

its in "Maps/PIF/ location since the mod is for pif

lucid iron
#

then if your tilesheet was in same folder as your tmx, load that to Maps/PIF/* too

floral canyon
#

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",

lucid iron
floral canyon
#

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?

lucid iron
#

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 ../../

floral canyon
#

is there something wrong there?

lucid iron
#

oh why it says png bolbthinking

floral canyon
#

bc it's a png file? it's the name of the file

#

I mean the source file

lucid iron
#

i don't think it should have extension here

floral canyon
#

i noticed that vanilla tilesheets have names not just filenames but I don't know how to get one

lucid iron
#

can just edit it

floral canyon
#

I don't know how 😦

lucid iron
#

in this very panel

floral canyon
#

theres no option to edit the name?

#

i can only edit the source png

lucid iron
#

oh actually

#

did you have extensions hidden?

#

possible that your file is actually named PersonalSunroomTiles.png.png

floral canyon
#

no i don't have them hidden

lucid iron
#

then u should be able to just remove the .png (rather than browse for image)

floral canyon
#

there's no edit name button?

lucid iron
#

do you see this if you double click

vernal crest
#

Chue, extension being there is fine!

lucid iron
#

ok Bolb

#

then i guess it is a issue with how you are load your map, perhaps send content json

#

!json

ocean sailBOT
#

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.

floral canyon
#

My problem is that I don't know what is the name of the target? is it "Target": "Maps/PersonalSunroomTilesheet.png",?

lucid iron
#

no extension in the target

old edge
#

Is there a way for me to get more log information in the smapi terminal?

lucid iron
#

you can use the developer version of smapi

#

it shows TRACE logs

old edge
#

ohhhh

brittle pasture
#

Or read the log file directly

floral canyon
#
            "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"
        },````
old edge
#

shoulda done that awhile ago

#

how do I get dev version...

floral canyon
modest dagger
#

would anyone happen to know what the overlay for smoked fish is?

lucid iron
#

ColoredObject.drawSmokedFish?

modest dagger
#

Where can I find that in the files?

vernal crest
floral canyon
lucid iron
#

decompile StardewValley.Objects/ColoredObject.cs

vernal crest
floral canyon
#

It's my own content pack, I have tried to look and mimic other packs made by other people like the Narnia one

vernal crest
#

Okay cool

#

Is your .tmx file also just in your assets folder alongside the tilesheet files?

floral canyon
#

yes it is

next plaza
#

(Back to the documentation mines SDVpufferpensive )

modest dagger
#

pls dont send me to the mines

calm nebula
#

It's just the fish but gray

#

Sad

#

Depressed

#

In England

modest dagger
#

I know but I want to know exactly what's applied to change it from fish to smoked fish

floral canyon
#

these are the night and day sheets

vernal crest
# floral canyon yes it is

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.

floral canyon
#

ah okay!

vernal crest
#

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.

lucid iron
calm nebula
modest dagger
#

(i'm only still asking chu bc i have no idea how to decompile)

calm nebula
#

It's just drawn with 50% gray

#

What do you want to change about it

brittle pasture
#

(and some fancy smoke particles)

modest dagger
#

don't want to change it, want to replicate it for other objects.

floral canyon
brittle pasture
modest dagger
#

which is why I wanted to replicate it

#

eh fuck it i'll just figure something out.

brittle pasture
#

the relevant code is in ColoredObject's draw functions

#

if you want to replicate it for your own mod you need to patch those

modest dagger
#

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

brittle pasture
#

ah okay. do consider EMC if you also need the fancy shmancy smoke particles as well

modest dagger
#

Will do

lucid iron
#

this is the color overlay if it helps new Color(80, 30, 10) * 0.6f

modest dagger
#

That does help I think thanks chu

lucid iron
#

i imagine u r just not doing the smoky animation

modest dagger
#

Yea, I'm just tryna get a first draft of my mod working so I ain't going for anything too fancy

last plume
#

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?

tiny zealot
#

(ideally, all mods would namespace with their {{ModId}}, but SVE does not and probably never will)

last plume
#

ok so PLAYER HAS MAIL any JojaSeeds?

last plume
tiny zealot
#

what is the desired result? do you want

  • either mail has been received (OR), or
  • both mails have been received (AND)?
last plume
#

and

#

since both are required

tiny zealot
#

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

last plume
#
            "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

tiny zealot
#

so if you are adding JojaSeeds as a required mail to this, you add another comma and put the new condition after it

last plume
#
            "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?

tiny zealot
#

yeah that looks right. try it out

last plume
#

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

floral canyon
naive wyvern
#

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 😭

lucid iron
#

there's a framework for that, expanded storage

floral canyon
brittle pasture
#

making an AT pack for chests is also an option

#

(and tbh probably what most people do)

vernal crest
floral canyon
eternal mortar
#

Can someone let me know what the highlighted means/is for? and what im supposed to put there?

floral canyon
vernal crest
# floral canyon

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.

velvet narwhal
floral canyon
vernal crest
vernal crest
floral canyon
velvet narwhal
#

we all hate love tiled! (help i'm being held hostage)

rancid temple
#

I wonder if using int there is a problem, as a programmer I understand it but I dunno about non-programmers

velvet narwhal
#

oh probably

ocean sailBOT
#

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

vernal crest
#

Ahh dang I can't remember exactly how to fix that issue

velvet narwhal
#

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

lucid iron
#

what would you call something like 23 but not 23.1 if not int/integer

vernal crest
#

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.

rancid temple
#

Whole number?

#

I don't remember if floats are whole numbers, honestly

last plume
#

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?

vernal crest
#

In other places they're just listed as <x> <y> <toArea> which I find easier to follow

last plume
#
                        "Id": "FlashShifter.StardewValleyExpandedCP_JojaDay_Jazz_Seeds",
                        "ItemId": "(O)429",
                        "Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay"
                    },```

example
velvet narwhal
#

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

last plume
#

also what does the (0) next to item id mean?

vernal crest
#

It's to do with the IDs in the tilesheet changing due to mucking about with filepaths...maybe?

rancid temple
#

I probably would say targetX or destinationX instead of including any qualifier about what kind of number it is

floral canyon
last plume
vernal crest
#

This is why I beat people vigorously about the head regarding directory changes when they start using Tiled.

last plume
#
                        "Id": "FlashShifter.StardewValleyExpandedCP_JojaDay_Jazz_Seeds",
                        "ItemId": "(O)429",
                        "Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay"
                    },```
velvet narwhal
#

(O) means object

rancid temple
#

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

vernal crest
velvet narwhal
last plume
#

for my items for joja day, should i set a price or will it automatically slice the price in half?

vernal crest
#

I feel certain that I have dealt with this before as well

velvet narwhal
#

though it might be a domino effect, it might keep on going because the entire tilesheet might be corked

rancid temple
#

I've never dealt with it in a healthy way 😅

tiny zealot
floral canyon
ocean sailBOT
#

@floral canyon You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

vernal crest
#

Ok Esca said it's because of editing the map when the tilesheets aren't in the same folder

last plume
#

but ill try it out to see if it works

velvet narwhal
#

(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)

rancid temple
#

So maybe put the tilesheet in the same folder, make an edit and save it?

#

Maybe Tiled will handle the xml changes for you

vernal crest
#

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.

floral canyon
#

i have 1393330 backups SDVjunimowhite

velvet narwhal
#

(there's a reason why i have 3 map folders)

vernal crest
floral canyon
#

Yes, like it obviously worked otherwise fine, it's just i can't change the texturess during night 😢

vernal crest
#

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 🤞

floral canyon
#

I mean then i'm at the starting point i guess 😅

vernal crest
#

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

floral canyon
vernal crest
floral canyon
#

ah okay so if i just fix that?

vernal crest
#

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.

floral canyon
#

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.

vernal crest
#

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.

floral canyon
little crag
#

In regards to publishing mods, for a mod that gives you money for donating to the museum - would that be classed under "Gameplay Mechanics"?

rancid temple
#

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

vernal crest
royal stump
velvet narwhal
vernal crest
vernal crest
floral canyon
velvet narwhal
vernal crest
velvet narwhal
#

(yeah that's fine) i right clicked a tile from an already established map -> it auto populated into the fall_exterior

vernal crest
#

Oh right that was just Tiled doing its helpful thing where it lets you use tilesheets across maps (NOT ACTUALLY HELPFUL TILED)

velvet narwhal
#

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

little crag
#

Is Nexus having a bug with publishing rn?

velvet narwhal
#

(nexus has been having a hard time the past few days for me tbh)

rancid temple
#

Last time I published a mod it took like a full day

vernal crest
#

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

velvet narwhal
#

you would scream about my "finality" map that i have as a finisher event map

#

100% works, but it has like 20 tilesets

little crag
vernal crest
velvet narwhal
little crag
#

The currently not published thing isn't showing up but it's not on new today yet.. ;-;

velvet narwhal
#

i wonder if i still have the video of it

rancid temple
#

If it doesn't publish today, it won't show up there at all

#

Happened for mine and someone else recently

little crag
#

Ahh okay, I'll just wait

rancid temple
#

Wasn't a big deal for me, I don't really care if people see my mods or not

vernal crest
little crag
#

Patience is not my virtue

rancid temple
#

But whenever it is live, you can (very nicely) ask a cheeto to showcase it for you

little crag
rancid temple
#

Mod author, orange role

little crag
#

Ohhh

rancid temple
#

The Ones Who Have Been Annointed By The Cheeto Dust

little crag
#

Am too scared for that, is okie SDVpetcatangy

rancid temple
#

Aw, well they're all really nice, even the ones who bite a lil'

velvet narwhal
#

(the red one bites)

ornate trellis
#

we only bite sometimes

velvet narwhal
#

sometimes

ornate trellis
#

just a lil nibble

little crag
ornate trellis
little crag
#

just a lil nibble

ornate trellis
#

yes

velvet narwhal
#

void's the big chomper though

ornate trellis
#

thats not true

vernal crest
#

roku is sneaky because they are a mod author but pretending not to be!

velvet narwhal
#

that makes me regret joining this server on my alt account, no nitro for me

vernal crest
#

Whereas I am just very unproductive

ornate trellis
#

theres a few incognito cheetos

vernal crest
#

Avi's a sneaky one too

velvet narwhal
#

i will not cheeto-fy until i'm satisfied with my own content

#

i have looks in pockets two mods

ornate trellis
#

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

velvet narwhal
#

(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

rancid temple
#

It's less that I'm pretending and more that I will request cheeto when the blue names run out XD

ornate trellis
#

when you sit on a stuffy room for 8 hours to learn about meats and deli meats youll be spent

velvet narwhal
#

do we have one more blue tag to get to?

rancid temple
#

I think the next one is sufficiently purple enough for me to switch

ornate trellis
#

yeah Rancher turns you ourple

#

sometimes i miss being ourple but beeig a cheeto is cool too

velvet narwhal
#

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

ornate trellis
#

dont worry i am living proof you can be cheeto and be stupid and still look cool

velvet narwhal
#

BUT THE OURPL TILESHEETS YOU MAKE ARE JUST SO EDIBLE

royal stump
#

I still feel like that and it's been over 6 years now SDVpuffermlem
(ig I wasn't here for one of those, but still)

ornate trellis
#

well

#

pls dont actually eat or my npocs wont have a home

velvet narwhal
#

also yeah my modding career is roughly squints two months old

rancid temple
#

Just qualify everything you say with "I think" or "I believe"

velvet narwhal
#

(i will eat that ourpl)

ornate trellis
#

i started modding because i wanted black goats from an old xnb mod in the game so i turned it CP :B

velvet narwhal
#

yeah button and i always append everything with "i think"

ornate trellis
#

then i lost control and couldnt stop

#

now i have 30 mods and more planned sasdasfd

velvet narwhal
#

scope creep! scope creep!

ornate trellis
#

if NPCs werent so intense to do Id have done kaveh, wriothesley, CA and many more already

velvet narwhal
#

(as someone who is revamping heart events for a 3rd time, yes, i feel that)

ornate trellis
#

still lowkey wanna do a silly CA just walking around, nothing more

velvet narwhal
#

my meme mod is gonna be "junimos everywhere"

ornate trellis
#

he wont do anything fance like big events or shit, jsut walking around the valley, chilling and talking with you

little crag
vernal crest
#

Coral Island has a Concerned Monkey merchant lol

little crag
#

(also my mod is now properly published, took nexus a lil bit yay)

velvet narwhal
#

fighting the demons telling me to make the 9 heart farmerless, but i already made the 6 and 7 heart farmerless

calm nebula
#

I'm dumb and wrong a lot

#

I just look cool doing it

tribal ember
#

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

rancid temple
#

This is a content pack right?

haughty charm
#

So many people typing...you will be flooded with answers, Bog SDVpuffersquee

tribal ember
#

its a new framework mod

#

HI LOGO

rancid temple
#

You shouldn't have the entry dll

ornate trellis
#

is the dll yours

haughty charm
#

You're creating a content pack for the framework

tribal ember
#

okay so the documentation on the github is a little off

brittle pasture
#

that manifest is for the tree mod itself. You're going to be making a content pack so just use the regular CP manifest

haughty charm
#

So you would need to reflect that - it's just like your Content Patcher mods

tribal ember
#

okay

velvet narwhal
#

oh it's like the fashion sense manifest

haughty charm
#

Only you'll put "Content pack for Tree Size Framework"

finite ginkgo
#

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

tribal ember
#

yes ive been following the github while making

vernal crest
# velvet narwhal i'm honestly just scared of being a cheeto cause it feels like my words will the...

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

finite ginkgo
#

The mod just adds a asset you edit through CP

velvet narwhal
#

SDVpufferthink i wish to cause chaos with this newfound tree power

haughty charm
#

Please give me all the tree chaos

#

I am HERE for trees

tribal ember
#

im working through it on strem right now lol

#

I WANT BIG TREEEES

haughty charm
#

@finite ginkgo is my new hero

rancid temple
#

How big can you make the tree?

velvet narwhal
#

i've always wanted a tree-size one of these buggers

ornate trellis
#

how about a tree that goes offscreen

haughty charm
#

Oh that is cool

#

Both the pic and Void's idea

velvet narwhal
#

tea's tophats as a tree

finite ginkgo
rancid temple
#

Make redwood trees

haughty charm
#

You did something that in all the years of SDV modding, no one else has done

#

It's a BIG DEAL™️

velvet narwhal
#

a pineer

#

/shot

little crag
vernal crest
#

Everybody just immediately going "big tree big tree" just like in ES!

brittle pasture
tribal ember
#

my big tree im testing

haughty charm
#

ngl, when I saw the new big trees in Cindersap, I had big dreams

ornate trellis
#

what if those analog horror trees

finite ginkgo
#

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 PufferThink

haughty charm
#

If I could art, I would make a giant Baobob

velvet narwhal
#

w i d e

tribal ember
#

i would love wider treesssss

velvet narwhal
#

EnderTedi.TreeSizeFramework i assume

finite ginkgo
#

EnderTedi.TreeSizeFramework

haughty charm
#

OMG I need a Banyan tree the size of the village

finite ginkgo
#

yeah

tribal ember
#

ty tyyyy

rancid temple
#

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

velvet narwhal
#

OH I KNOW

#

export the tilesheet

#

use the .tsx or whatever, and it just hates that

tribal ember
# finite ginkgo yeah

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?

rancid temple
velvet narwhal
#

different map

#

then use it in the new one

brittle pasture
#

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

finite ginkgo
haughty charm
#

So basically, if I make a new wild tree, I would then just plant the seed of it

tribal ember
#

yall know i have a hard time understanding things sometimes please bear with me....

rancid temple
haughty charm
#

And then make it grow with CJB cheats magic?

tribal ember
#

so is "WildTree" just a placeholder name or does it HAVE to be exactly that

rancid temple
#

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

haughty charm
rancid temple
#

Is this your actual file or just an example?

haughty charm
# tribal ember

Also, I might be wrong, but I think your "Target" needs to be Data/WildTrees

drowsy pewter
tribal ember
#

ah i just copied from the example on the hub

drowsy pewter
#

(the manifest you copied was not an example)

velvet narwhal
#

oh neat, i thought i'd have to do a new folder like fashion sense

lavish fable
#

Hello, may i ask what is this mod name?

drowsy pewter
#

(also the syntax and everything is just CP styled so the texture is as arbitrary as your normal image patches)

haughty charm
tribal ember
lavish fable
velvet narwhal
#

(does that mean we're yapping more here than modded farmers SDVpufferthink

haughty charm
drowsy pewter
lavish fable
drowsy pewter
#

I might do a baobab now that tedi is working on wide trees too

haughty charm
drowsy pewter
#

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

drowsy pewter
velvet narwhal
#

(i would definitely make those big spiderwebby trees drop cloth though)

#

chaos incarnate

vernal crest
rancid temple
#

I'll give it a try when I get back I guess, I'm really at a loss lol

velvet narwhal
#

it really is only when we've finally figured out Tiled that we can't get it to break

vernal crest
#

This feels like a car that only behaves itself at the mechanic

velvet narwhal
#

can't unlearn riding a bike

rancid temple
#

Oh so all my cars

brittle pasture
vernal crest
#

I will also try breaking a gid when I am at my desktop.

azure hound
#

y'all are so knowledgeable and i feel like my entire style of creating mods is trial and error LMAO sweaty

haughty charm
#

That's what I do, tbh, Lune

velvet narwhal
#

no that's this entire channel idk what you mean

rancid temple
#

No, that's my method too lmao

vernal crest
#

Trial and error is life

uncut viper
# velvet narwhal (no one likes transpilers)

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 SDVpuffersquee

azure hound
#

LMAO

rancid temple
#

You just trial and error and then try to remember the result

tribal ember
#

litterally me crying cause i need someone to show me
reading just text hubs are hard for me lol

velvet narwhal
#

do it stick

rancid temple
#

And then later you can spout off what you learned and it looks like knowledge

drowsy pewter
#

I dont test things, I just write mods and they work first try

azure hound
velvet narwhal
#

listen everyone's not perfect like you 6480

tribal ember
#

me sobbing

haughty charm
rancid temple
#

I actually am fine with transpilers now

drowsy pewter
#

bog are you trying to make a new tree or replace an existing tree

#

Because i have templates for either one

velvet narwhal
#

(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)

uncut viper
#

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

velvet narwhal
#

i will remember this, but i assume i'm not going to need transpilers/harmony for karaoke

uncut viper
#

not if you're making everything from scratch, probably not

lucid iron
#

nah prb not, u get ur own minigame class

drowsy pewter
#

@tribal ember are you trying to make a new tree or retexture an existing one?

deep cypress
#

Trees are super cool so here is an encouragement for you, BogWytch, you can do this!!!

brittle pasture
# uncut viper very fun that none of mine broke in 1.6.9

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

drowsy pewter
uncut viper
#

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

next plaza
#

advertises SpaceCore's "get locals by name" feature

uncut viper
#

i know you can get them with spaceore

#

There it is

next plaza
#

(I still need to update all my transpilers to use that)

uncut viper
deep cypress
#

Spacecore is the coolest!!! It has saved my bacon one hundred times over, and I cannot thank you enough for it!!!

lucid iron
#

i wish i had a better way of reading IL though

#

atm i just have 1 single file Stardew Valley.dll.IL

uncut viper
#

if I can write a transpiler without introducing a dependency just to make it a little bit easier though I'd prefer to

next plaza
next plaza
uncut viper
#

chu do you not just look at the IL you need in particular in ilspy or something

next plaza
#

Unless it was a huge one, like UI framework (which I already have in SpaceCore that I'm happy with, so...)

lucid iron
#

as established avalonia ilspy is kinda succ

uncut viper
#

what about dnspy is that any better

last plume
#

after 5 hours of hard work i finally finished the jojamart.json listing. this was my longest script yet

#

feeling proud PufferParty

brittle pasture
next plaza
#

That also sounds painful

lucid iron
#

ig i'll have to build dnSpyEx manually bolbthinking

brittle pasture
#

it is lightning fast though as long as I already know what to look for

last plume
#

anyone know how to speed up the coding? spent the last 5 hours writing the whole list 3 times with different id names

velvet narwhal
#

spends 6 hours on trigger actions nope

uncut viper
#

(person who knows not a lot about Linux vc) i saw someone say it works fine with Wine/Proton

last plume
lucid iron
velvet narwhal
#

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"

lucid iron
#

so that its just matter of find and replace

last plume
lucid iron
#

CP doesn't have iterative features really

uncut viper
velvet narwhal
#

oh yeah i do have a certain rhyme and reason for copying and pasting

next plaza
#

mumbles something about my CP alternative and being able to make patch templates

lucid iron
#

not modding but i do enjoy vue's v-for directive very much

last plume
#

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

brittle pasture
#

Vim macros my beloved

lucid iron
#

cp could easily include such a thing and have it run before hitting actual content pipe

next plaza
last plume
#

does vs code have a word wrap so i dont have to side scroll?

velvet narwhal
lucid iron
#

vscode does have word wrap, need to go turn it on

last plume
#

where is it?

lucid iron
#

preferences

next plaza
last plume
#

i use vs code on mac os senoma

lucid iron
#

yea but it'd be a preprocessor basically Bolb

next plaza
#

That's how mine works, yeah

lucid iron
#

and only allow const, no tokens 4 u

last plume
next plaza
#

If you only allow constants it's a glorified include

lucid iron
#

editor: word wrap

next plaza
#

You should allow passing in values to replace other ones