#making-mods-general

1 messages · Page 544 of 1

opaque field
#

Ohhhh okay

tribal ore
#

Those are old shorthands. /n would check for a mail flag existing, for example. Not supposed to use them anymore. /LocalMail is the modern one

torpid sparrow
#

how old are they

#

i cant remember which ones ive used and havent tbh

tribal ore
#

Oh gosh I have no idea. I think they may have been the original set of event preconditions? I don't know when the explicit long-hand versions were released. I know for a fact that some of my mods still use the shorthand, but that's because I was learning from older mods when I first started

#

I need to go through and update them all at some point

#

I definitely have events that mix the old and new format preconditions xD

torpid sparrow
#

hmmm i will check out mine too. i released my first mod in errr 2024?

#

no wait

#

wait yes

#

yeah 2023

#

no wait 2024

opaque field
#

I also need to go and do some updating bc I know I use the old preconditions for event seen and has mail TT

#

Good thing I'm doing an intense scruitinizing and update in general haha

trim sand
#

i think your misuderstanding.
can't even launch the game modded right now.

#

can't test mod ive been working on. stardrop broke for unknown reasons that im still trying to diagnose without losing everything

jaunty shuttle
#

I hope you get it figured out that's no fun SDVpufferheart

trim sand
#

eh... thats more work than id like.

#

was hoping somebody had an easy awnser.

jaunty shuttle
#

Better than potentially losing stuff AMshrug

#

There's always turn it off and turn it back on again (uninstall/reinstall), but idk if that'll damage anything so I can't advise it

round timber
#

people cant help you without having the proper information. making a post will give people information

trim sand
#

there's not exactly any information to give?

#

litterally no feedback from stardrop itself

#

you know as much as i do

torpid sparrow
#

Mmg isn’t really the place to ask for this info either way

trim sand
#

whatever

round timber
trim sand
#

i was hoping to avoid that. sorry

hard fern
#

Why avoid the thread for modded game help if you're having an issue with a modded game?

trim sand
#

Because I hate forum channels andw

#

Would rather not get help than use on

hard fern
#

Well i guess you're gonna not get any help...?

round timber
#

lets just leave it at that folks

hard fern
#

Vinilla have you ever considered being chocolate or strawberry

#

Or perhaps even Neapolitan

round timber
#

i have not

#

perhaps ironic since chocolate is sort of my preferred flavor for things

hard fern
#

I miss Neapolitan ice cream

jaunty shuttle
#

I vote neapolitan, all the good ones right in one thing

hard fern
#

I havent had it in years

round timber
#

still not a huge fan of chocolate cake tho

jaunty shuttle
#

I like chocolate cake > vanilla, but vanilla > chocolate ice cream any day

torpid sparrow
#

Evil vin: chocolit

round timber
#

that would be a good april fools name 4 me

fierce vault
#

can someone please tell my why trying to conditionally load warps not only doesn't make them conditional, but also makes the map patch they are for disappear?? If I get rid of the warp load at the bottom, everything's fine, but then I have no warps. I spent hours yesterday trying to figure it out and failed, where I tried and retried lot of stuff SDVpuffercry

Here's basically what I'm trying to do:

    "Action": "EditMap",
    "Target": "Maps/{{ModId}}_map1",
    "FromFile": "assets/maps/map2.tmx",
    "PatchMode": "Replace",
    "When": {
        "HasSeenEvent": "parcy.mrNPC.eventY"
        },
        "ToArea": {"X": 5, "Y": 5, "Width": 1, "Height": 3}
},
{
    "Action": "Load"
    "Target": "Maps/{{ModId}}_map2",
    "FromFile": "assets/maps/map2.tmx"
},
{
    "Action": "EditMap",
    "Target": "Maps/{{ModId}}_map2",
        "When": {
        "HasSeenEvent": "parcy.mrNPC.eventY"
       },
    "AddWarps": [
        "9 8 {{ModId}}_map3 13 14"
    ]
},```
urban patrol
#

what are map 1 and map 2, location wise? i want to make sure i understand your intent

fierce vault
#

map 1 is a new location, map 2 is a small patch on map 1 that changes some tiles aesthetically and adds a warp to map 3.

urban patrol
#

do you have a patch that loads map 1?

fierce vault
#

yes, map 1 is not affected negatively

urban patrol
#

you shouldn’t need to load map 2 if it’s just a map patch

fierce vault
#

I think I tried not loading it, but it didn't work?? I can test again to make sure

urban patrol
#

your warps should be targeting map 1 since warps are a locational thing

fierce vault
#

I'll get rid of the load and see if it still appears

#

then add the warps again and then chsnge them

fierce vault
#

I'm confused

urban patrol
#

correct it shouldn’t be loaded. map patches use EditMap and never Load

fierce vault
#

no im saying I got rid of the load and it didn't appear

#

But it does with the load??

urban patrol
#

what didn’t appear

fierce vault
#

map 2

urban patrol
#

are your conditions met for the map patch to have happened?

fierce vault
#

yes, I just watched the event

#

is it different because of "PatchMode": "Replace",?

#

does that need a load, maybe?

urban patrol
#

do a patch summary yourmodid and send your log

#

no. there is never a Load needed when you’re patching a section of map.

fierce vault
#

Ok, I'll try that

fierce vault
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 15.6.1, with 17 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

fierce vault
urban patrol
fierce vault
#

But I did? Skipping through counts doesn't it?

#

And it won't trigger again

#

when I enter under the right conditions

urban patrol
#

i’m just telling you why your map patch isn’t applying. the conditions don’t match because you don’t have that event marked as seen

#

you can manually trigger an event using the debug ebi command

fierce vault
#

that's odd. I'll trigger it again then

#

alright, I ran it again, didn't skip through, and the patch still isn't applying

urban patrol
#

does a patch summary show you’ve seen that event?

fierce vault
#

I'll run a another patch summary and read through it

void aspen
#

Doesnt look too bad for a test

#

Is house position also changable the same way as greenhouse?

#

I see

fallow musk
#

debug completecc command seems to trigger the cutscenes etc., but the CC still remains locked. Is this a bug or am I using the wrong command?

pale river
#

did you sleep?

fallow musk
#

yeah, multiple days after the cutscene

although i didnt sleep before running the command on day1

urban patrol
#

you have to have seen the event where lewis introduces you to it

fallow musk
#

oh got it, thanks
any way to trigger the cutscene early? Need to test mods again n again

fierce vault
urban patrol
fierce vault
#

If I add the load back in, it would apply it for some reason?

#

It should apply it, but won't. Hmm

#

tried it again on another save, and no patch still

urban patrol
#

parcy i don’t know if i can explain to you more clearly that you do not need to load a map to patch a section of map. maybe reviewing content patcher documentation or the maps wiki page would help you grasp the concept more?

fierce vault
#

Sorry, I get that, but what I'm saying is that when I loaded it in, the patch would apply, and when I got rid of the load, it stopped applying it. Since a load is not necessary, something else must be wrong, and the load must be overriding that issue I guess.

urban patrol
#

i see. can you send your full json?

fierce vault
#

The full maps json you mean? Because I made a separate one just for all the maps stuff

urban patrol
#

maps and locations

fierce vault
#

Yes, they are all in the same one. I'll clean it up a little and send it over. Is it alright if I dm it to you, or do you want me to upload it here?

urban patrol
#

here please

fierce vault
#

ok

urban patrol
#

that way even if i’m away someone else can step in

ruby marsh
#

@lucid iron Hi, I looked at my code again and I'm not sure that IsValidLittleNPCIndex is what you need. Do you need the information which kids are currently LittleNPCs or which ones are / can become LittleNPCs at all? IsValidLittleNPCIndex does the latter. I think about adding an API in the next beta release.

void aspen
#

Can I turn off season changes on the farm map and keep the climat like on GI?

brittle pasture
#

SeasonOverride maybe

#

map property

#

you likely want IsGreenhouse as well

fierce vault
#

hey sorry, I'll upload the json here later. Thanks for your help though Nic. Whether you're able to take a look at it later or not, I appreciate what you've done with me here. SDVpufferheart

void aspen
#

also is there a way to move only some tiles on a layer? I currently cut them and then paste in a needed place and this is pretty annoying

unborn shadow
#

It may be a bit late to ask but could you please show me the example? 😂

urban patrol
lucid iron
#

The reason is because hmk's flavor of custom children affects all stages of their life

ruby marsh
#

In the current stable version the first 2 children will eventually become LNPCs. In the current beta you can configure that, e.g. you have 4 children but only 2 will grow up. But you can't decide which ones. This depends on their index and that depends on birthday.

lucid iron
#

I also need to find time to improve the check on my end, but imagine scenario like this

  • there is 1 hmk custom kid available based on parent/shared
  • little npc plans to turn child 1 and 2 into little npcs
    The desired effect should be that
  • player has 2 kids, they become little npc
  • hmk determines that the 3rd child is not managed and will apply hmk custom child
  • a 4th child is left alone by both mods
#

The special case of adopting a npc as your child (e.g. Leo in Have More Kids and adopt Leo) is handled by HMK patching getChildren to exclude Leo's Child counterpart

#

So he essentially has no child index

ruby marsh
#

Seems possible. The given use case should already work since only the first 2 children grow up. Or in the beta, you can configure how many grow up and set this limit to 2 . And children without index don't exist for LittleNPCs mod.

lucid iron
#

Yeah, it's mostly just hmk needs to know about that somehow bolbsun

ruby marsh
#

Than IsValidLittleNPCIndex seems to be the right method indeed.

lucid iron
#

yeah i just need to find time to do stuff on my end too SDVpufferthumbsup

#

Thank for help thus far

ruby marsh
#

You're welcome. Take your time. I just don't want to publish a useless API 😉

lucid iron
#

There are some nuances with HMK allowing kids to wander outside on the farm

#

But littleNPC doesn't really have a toddler stage right bolbthinking

ruby marsh
#

Everything vanilla until day 83 (default).

#

API draft so far:

        bool IsValidLittleNPCIndex(int childIndex);

        int GetAgeWhenKidsAreModified();
}```
lucid iron
#

Yeah I can use it to determine if I should still try to send kids outside

#

It doesn't matter too much since the child is made invisible and I can know from that

fallow musk
#

Is it possible to make some specific machine's sprite invisible?

I am trying to make the boiler room furnace be actually usable, and the first easy way that comes to my mind is what is i could somehow place a invisible furnace at the appropriate tile. But is something like that actually possible?

urban patrol
#

yeah just have a texture with no colored in pixels

golden basin
#

question is greenrain totally hard coded is there a way to change it to a different color depending on the area

uncut viper
#

It's a white pixel that is coloured either blue or green depending on the type of rain in the draw code, and that same white pixel is used for a billion other things, so you can't change it per location.

#

You'd need/want to look at Cloudy Skies most likely for an entirely custom weather, if that was applicable

void aspen
#

Animations allow to time when thing is passable omg

urban patrol
#

isn't that white pixel also part of the moon or something like that

uncut viper
#

That white pixel is staminaRect which is used for many many things.

#

It's whole purpose is to be a white pixel that can be stretched into any rectangle and coloured as needed in code.

golden basin
#

so cloudy skies, ill look into it

uncut viper
#

(Like, for example, the stamina rectangle)

void aspen
#

which tile and on what layer is best to use for an invisible boundary?

hard fern
#

buildings

#

and any invisible tile that you know won't be.. un-invisibled

#

i generally pick one in the trees/water

void aspen
#

I used first tile from paths tileset on buildings 2

hard fern
#

cuz mods arent really going to affect those

void aspen
#

and it didnt work

#

weirdly

hard fern
#

buildings 2 is passable

royal stump
#

yeah, Buildings specifically, the numbered layers are secondary and mostly* cosmetic

void aspen
hard fern
#

you have to put it on buildings

void aspen
#

huh

#

but I have my waves on buildings

uncut viper
#

The number-suffixed ones are purely so you can do some visual layering

void aspen
#

:(

uncut viper
#

They do not offer actual functionality beyond that

void aspen
#

I see

uncut viper
#

If your waves are on Buildings then your waves will block movement

jaunty shuttle
#

Then your waves will be non-passable already, and you just need invisible tiles on the ones around the dock SDVpufferthumbsup

#

Button beat me to it

#

I type so slow smh

royal stump
#

as an exception, there's the Passable tile property that makes Back layer tiles block you or Buildings tiles not block you, iirc

#

but yeah, Buildings tiles should just stop movement by default

wicked rivet
#

Hii

jaunty shuttle
#

Heyyy AA_Gura_Wave

wicked rivet
#

I was wondering if someone would want to help me with my very first mod in stardew valley (I’m so bad with spritesheets) and please excuse my sense of direction (I got lost three times until I reached this channel hahahah)

wicked rivet
uncut viper
#

This channel is full of people who love to help so feel free to describe your issue!

gentle rose
#

don't worry about getting lost haha, at least you're here now

jaunty shuttle
#

And I second what those guys said SDVkrobusgiggle

wicked rivet
wicked rivet
jaunty shuttle
#

!pixelart

ocean sailBOT
#

Where to Start With SDV-Style Pixel Art
If you've never done pixel art before, don't stress! It's easy to pick up the basics - the key is to start small, ask for feedback, and incorporate that into your work.

To start, you'll want an art program. See a list of recommended programs in the !software command.

Here's some good beginner tutorials!
http://pixeljoint.com/forum/forum_posts.asp?TID=11299&PID=139322
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2d1e31a5ceab

To start off, try opening an existing portrait and changing the outfit. Start small: edit a shirt pattern, change a jacket collar, or remove a scarf and draw the clothes underneath. Ask for feedback too! The best way to improve is learning how to identify what's wrong and why, so then you can work out how to fix it.

Here's more good tips from the artist of "Celeste":
General pixel art 1: https://www.patreon.com/posts/pixel-art-1-6971422
General pixel art 2: https://www.patreon.com/posts/pixel-art-part-2-11225146
Outlines: https://www.patreon.com/posts/outlines-14106192
Shading: https://www.patreon.com/posts/shading-13869731
Portraits: https://www.patreon.com/posts/portraits-8693396

SDV has a few quirks to remember too:

  • Colour limits: Limit the number of shades you use - stick to six including the outline.
  • Hue shifts: Rather than making shadows and highlights lighter or darker versions of the base tone, SDV shifts the hue too. Eg. a base orange will have yellow highlights and red shadows. This goes for skintones too!
  • Light source: SDV uses a top-right & slightly forward light source - check the vanilla art for reference.
    Most importantly, don't hesitate to ask questions and get advice from people. Have fun!
jaunty shuttle
#

Here are some art resources, there are also resources specifically for making NPC’s when you’re ready!

wicked rivet
#

Thank you so much!!! : D

gentle rose
#

you have a few options - first of all, this server is ridiculously good at teaching pixel art if you're willing to try. Then there's the option of commissioning an artist if you're willing to pay

wicked rivet
#

Is this the example?

wicked rivet
jaunty shuttle
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

gentle rose
#

the first one is what we like to see!

wicked rivet
wicked rivet
# ocean sail

I downloaded a tool called Miss Coriel’s NPC creator

#

Does it work?

wicked rivet
uncut viper
#

It's not updated for 1.6

wicked rivet
#

SHE IS MY FAVORITE CHARACTER

uncut viper
#

There's a beta for it, but I don't know how far along it is

wicked rivet
uncut viper
#

Then it may or may not have some parts that are missing or not updated for 1.6 functionality

wicked rivet
#

Ops 😨

fast knoll
#

New here. 👋 😁 Entering the mod content tomorrow.
I'll post in mod showcase once I submit it.

uncut viper
#

You can't post in the showcase yourself without mod author role

fast knoll
#

Thanks

uncut viper
#

But another mod author can (but is not required to!) showcase it for you, if they feel comfortable giving you a sort of soft vouch

urban patrol
uncut viper
#

(Also remember to follow our rules on acceptable mods, and best of luck in the contest SDVpufferheart)

void aspen
#

can one content json load several things?

urban patrol
#

yes

uncut viper
#

One content.json can load as many things as you're willing to type into it before you lose your sanity

void aspen
#

I see

uncut viper
#

I think most people choose to start using Includes instead once they've lost about a quarter of their sanity

void aspen
#
        {
            "Action": "Load",
            "Target": "Maps/Farm_Island",
            "FromFile": "assets/Farm_Island1.tmx"
        }
     ]```
I just copy and paste my Load action in a changes array right
uncut viper
#

Don't copy the Changes part

#

All your actions go inside the same Changes array

round dock
uncut viper
#
"Changes": [
  {
    "Action": "Load",
    ...
  },
  {
    "Action": "EditData",
    ...
  }
]

like so

void aspen
#

okay so I was close

#

thank you!

uncut viper
#

Remember to put commas between them!

void aspen
#

is there a list of all accesible actions I can do via content

uncut viper
#

Everything available is on the content patcher documentation

void aspen
#

not reading again 😭

uncut viper
#

Well you're either readin it there or reading it here but explained in less (potentially important) detail

round dock
# wicked rivet Ops 😨

Do note that making an NPC is a complex and time-consuming hobby to do, more so if it's your first mod. But it's doable with persistence and grit. SDVpufferheart Good luck!

void aspen
#

okay then, if my custom farm uses a custom tileset, I load it via tsinator, it embeds itself, and all I have to do is load it via content json to the same place my farm is being loaded, right?

uncut viper
#

Yep, a custom tilesheet should be loaded to Maps/<the name of your tilesheet> and other maps (such as the farm) will be able to find it when used in their tmx

#

The target you Load it to must match the name of the tilesheet image source in Tiled or vice versa (minus the Maps/ part)

void aspen
#

so its
Load
target: maps/name
from: assets/name.png

uncut viper
#

Yep!

void aspen
#

yay
ty!

uncut viper
#

Make sure your custom tilesheet is not in the same folder as the .tmx in your mod folder too

#

When you publish at least (I forget what tilesheetinator does for that)

void aspen
#

so I create a subfolder for my tilesets

uncut viper
#

If the tilesheet a .tmx needs is in the same folder as the .tmx, it will just use the .png directly and skip whatever the Load did

void aspen
#

and then load from there

uncut viper
#

Yes!

void aspen
#

I start to understand things now

wicked rivet
#

This is how it is going!!

#

(I’ll do more details later)

#

Im planning the base

void aspen
#

So far so good

#

barriers working as well

#

some terrain issues I probably will polish one day

#

cant cast fishing pole in the water 💔

#

these barriers break fishing, it works without em

#

interesting

wicked rivet
#

How do you guys think that it is looking? : D

#

Idk how you guys are so talented to do this! It is super hard

urban patrol
fierce vault
#

would I delete all this to get rid of a tilesheet issue that tilesheetinator can't resolve, or would it just be the image source specifically?

jaunty shuttle
urban patrol
uncut viper
wicked rivet
fierce vault
#

the location won't event load right now, so I don't see anything about tilesheets

#

in the log that is

uncut viper
#

I don't see anything about tilesheets in the log either but that's because you haven't sent it /lh
(Please send it! The errors may be relevant anyway)

fierce vault
#

Ok.

jaunty shuttle
round timber
#

reminder that we have #making-mods-art specifically for posting and getting feedback on mod assets!

hallow prism
#

i like having some art here 😄

round timber
#

its not a big deal! youre not in trouble

hallow prism
#

it's not mandatory, just a good place to get more feedback

#

i suggest that, wherever you post stuff, you post bigger images

#

i usually resize things x4 to be similar that what the games have

wicked rivet
#

Thank you so much for the tip! : D

fierce vault
wicked rivet
#

(Last one here sorry) this is how is going!! (I’m doing the base before the details) : D

void aspen
#

not ideal but works for me

urban patrol
#

if you want to block people walking on it, then you can use invisible Buildings tiles

void aspen
#

I used that and it prevented me from casting fishing rode near shore

#

now its fixed

urban patrol
#

but you said you also had the Back layer marked as Passable

void aspen
#

I fixed casting by making back tiles passable instead of invis building tiles yeah

#

oh its noticable here a bit

#

but I like it

wicked rivet
#

Base completed!

fast knoll
#

Sitting here making sure these events are linked to all the text i wrote out 😅 a lot to go through

void aspen
#

sdv doesnt support tiled's parallax feature yet right?

#

I say yet as if it could ever happen

#

I also wonder how that GI forest near parrots boy house has that rays overlay

urban patrol
#

you can use a framework like MMAP (miscellaneous map actions and properties) to have parallax!

void aspen
#

oh

#

interesting

uncut viper
#

The rays overlay is hardcoded to be drawn on top of the screen. MMAP might handle that too?

void aspen
#

I suppose its possible to animate a always on top layer to do something like this

#

but rays seems to be much higher res

#

so may not worth it

uncut viper
#

You'd need to cover the entire map and then some, and animate each tile individually

#

An egregious amount of work in that

void aspen
#

yeah thats a bit too much

#

still worth a test

uncut viper
#

I would heavily disagree with that but don't let that stop you from trying

urban patrol
#

you may also be interested in recommending to players that they use god rays? it wouldn't be under your control but you wouldn't have to do any work

uncut viper
#

"Cover the map and then some" is because you don't know where the top of the screen is. You'll never be able to get it right for everyone

void aspen
#

yeah its not optimised obv but this way I can learn what and what not to do the next time I think

#

also yay

fierce vault
#

Ok, so this is not related to one of my custom maps not loading at all anymore (which I fixed) or a tilesheet issue, but something I was struggling with earlier.

My map PATCH refuses to show up without a load, and I can only get my conditional warps to work one way, not both, based on a HasSeenEvent check. Anyone see where I must be making some pretty glaring errors?
https://smapi.io/json/content-patcher/4e92fa84eb474d4b8018e93ce8be4e37
also, I know the json validator is showing some warp issues, but I think that has to do with the {{ModID}} being a part of the map names there, for some reason.

brave fable
#

not sure if i'll ever use this perfectly valid harmony syntax again SDVdemetriums

public class ModEntry : Mod
{
  public override void Entry(IModHelper helper)
  {
    new Harmony(helper.ModRegistry.ModID).PatchAll();
  }
}

[HarmonyPatch]
public static class HarmonyImprovements
{
  static IEnumerable<MethodBase> TargetMethods()
  {
    return typeof(TemporaryAnimatedSprite).GetMethods()
      .Where(method => method.ReturnType == typeof(TemporaryAnimatedSprite))
      .Cast<MethodBase>();
  }

  static void Postfix(object[] __args, MethodBase __originalMethod, TemporaryAnimatedSprite __result)
  {
    // improve the game
  }
}
urban patrol
#

i really think you should use more specific names haha

uncut viper
#

Kinda what it's there for innit

calm nebula
#
  1. PatchAll() is fun, and by fun I mean it uses StackTrace
#

It's not entirely reliable

#

Recommendation

uncut viper
#

It's literally never failed me ever

#

Nor anyone using any of my mods, which all use PatchAll

calm nebula
#

PatchAll(typeof(ModEntry).Assembly)

brave fable
#

i will use harmony annotations and tsx files and nobody can stop me

uncut viper
#

That said blueberry why are you casting to MethodBase

calm nebula
#

That was 2.

uncut viper
#

a MethodInfo is a MethodBase already

calm nebula
#

There is no need to cast to MethodBase. That's the superclsss

brave fable
#

oh that was in the original docs and i just didn't bother to change it

#

go blame pardeike

calm nebula
#

It went away after I used the OTHER overload which is the same thing minus the StackTrace

#

Wren can back me up

fierce vault
# urban patrol typo?

No, it's actually map2t... I did have more specific names, but I still feel uncomfortable revealing too much about the stuff I'm making so I changed ALL occurrences of the names to be generic 😅

uncut viper
#

I would expect more bug reports if it was that unreliable after some 1mil UDLs

#

Nexus users love bug reports

calm nebula
#

Well, it's hard for people to know which mod is causing the AVE

uncut viper
#

I think you underestimate how often people go "well the only thing I changed was installing your mod so [completely unrelated bug] is your problem"

hallow prism
#

(risk of error is also greater this way)

fierce vault
#

I actually changed all the occurrences in the files though, so that I wouldn't have to change them when sharing

uncut viper
#

Worse than the casting to MethodBase or PatchAll though it feels wrong to not keep your harmony instance... I don't know why I just could never discard it so easily SDVpufferpensive

calm nebula
#

Harmony instances are weird tbh

#

I once looked into it lol

brave fable
urban patrol
#

yeah there's really no reason why you would have to load map2 in order to do an EditMap to map1 with it. i can't see any glaring issues with this, not without errors in the log, and assuming you do indeed have the flag HasSeenEvent parcy.MrNPC.eventY

uncut viper
#

I keep mine around in case I wanna unpatch and repatch mostly, or patch from another class

brave fable
#

so since you've brought it up, why specify my own assembly for PatchAll, or is that simply for the stack trace

uncut viper
#

Well thats what it uses the stacktrace to get

brave fable
#

ah i see

uncut viper
#
public void PatchAll()
{
    Assembly assembly = new StackTrace().GetFrame(1).GetMethod().ReflectedType.Assembly;
    this.PatchAll(assembly);
}

It is gross I won't deny it

#

It scans the assembly for your annotations

#

So you probably don't wanna give it someone elses assembly

fierce vault
brave fable
#

load-bearing 'probably'

uncut viper
#

Probably!

#

I can think of valid reasons to give a different assembly

urban patrol
#

one where you do have that flag?

fierce vault
#

Ok

uncut viper
#

Like if you dynamically load a separate .DLL that has some intermod compat. stuff with hard references, and then give Harmony that assembly

calm nebula
#

Yeah!

fierce vault
#

Oh, something just came up. I need to step away from the computer. I'll post again when I come back.

calm nebula
#

Create a new harmony instance

#

With same id

#

And try to unpatch from there

#

Harmony instances are kinda a myth, it's the ID that matters, iirc

uncut viper
#

That I know

hallow prism
uncut viper
#

But the instance still stores some per-instance stuff

hallow prism
#

but in the end it's up to you

brave fable
#

yeah it's important to remember that we're very far removed from users here hahah

#

revealing to mod authors isn't a soft release

urban patrol
#

yeahhh if the issue ends up being something to do with file names or whatever, the more time i've sunk into it the more frustrating it ends up being

#

and this goes for my own stuff as well

brave fable
#

people are not kicking down my door trying to get at bugs. you're safe

uncut viper
#

(Actually scratch that a little bit, it's the PatchClassProcessor your instance creates that does that. But it seems the instance does not store its own PatchClassProcessors. Don't know where they go. Don't feel like looking too deeply into Harmony right now.)

calm nebula
uncut viper
#

The HarmonySharedState?

quasi crow
#

does anyone happen to know if the various multiple spouse mods do anything to chores?
I'm kind of just patching marriageduties to say 'all chores were done, so skip em!'
And then making my own setup.

calm nebula
uncut viper
#

I find it interesting that they serialize things into bytes

#

The actual mechanics behind how it all works on a deeper level is still a mystery to me but it's all stuff I'd love to fuck around with for no reason someday.

calm nebula
#

It's very spooky

fierce vault
fierce vault
#

I'll get the log. I also needed the load before changing all the file name occurrences, and file name assets, so I don't have any idea why it's like that

void aspen
#

each farm has different look on minimap, which place has those?

lucid mulch
#

Data/WorldMap in the Valley.MapAreas Farm.Textures section

fierce vault
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 15.6.1, with 17 C# mods and 7 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

fierce vault
#

I also played the event which is the condition twice. Once naturally, and once though debug, just to be safe

lucid mulch
#

what is the problem?

fierce vault
#

My map patch refuses to show up without a load, and I can only get my conditional warps to work one way, not both, based on a HasSeenEvent check.

lucid mulch
#

which map patch?

fierce vault
# lucid mulch which map patch?
    "Action": "EditMap",
    "Target": "Maps/{{ModId}}_map1",
    "FromFile": "assets/maps/map2t.tmx",
    "PatchMode": "Replace",
    "When": {
        "HasSeenEvent": "parcy.mrNPC.eventY"},
        "ToArea": {"X": 9, "Y": 7, "Width": 1, "Height": 3}
},```
lucid mulch
#

you have 3 map patches on Maps/{{ModId}_map1, the first two are failing their HasSeenEvent when condition, the third is passing

fierce vault
calm nebula
#

Are your warps map property

#

Or tile property

fierce vault
#

They are not in the tmx. files

#

Should they be, along side the json?

lucid mulch
#

EditMap fromFile doesn't copy map properties iirc

#

but it would be both of your EditMaps checking against parcy.mrNPC.eventY.
and note that patches only re-evaluate their conditions on DayStarted unless you specify otherwise in UpdateRate

fierce vault
#

Oh, so the both the map patch itself and the warp are failing to log the event as seen. What is the 3rd patch on map1 that is loading?

urban patrol
#

you can use LogName to distinguish patches in the log

buoyant jackal
#

Goofy mod concept: the farmer gets sent back in time. Everyone's younger, you can romance some of the usually non-marriageable NPCs

lucid mulch
#

the third patch is the unconditional one adding warps to go to busstop

fierce vault
#

Ah, ok.

lucid mulch
#

When you don't specify LogName it auto generates them in order

#

so EditMap Maps/{{ModId}}_map1 #1 is the first patch in the file that is an EditMap that targets Maps/{{ModId}}_map1 etc

half tangle
#

For any interested mod authors: as of version 1.2.0, World Navigator's API now lets you initiate a navigation task yourself

fierce vault
#

So, I should be adding an UpdateRate that updates right after or (during the event if possible?), and I should be adding warp properties to the tmx files too?

Because "EditMap fromFile doesn't copy map properties" means that the warps would also (or only?) be needed in the maps' tmx. files? Sorry if I'm misunderstanding...

Can I even add a warp to a match patch's tmx though, so that it only appears when the map patch is applied?

urban patrol
#

with content patcher, your only options are OnLocationChange or OnTimeChange (which is expensive and should be avoided if at all possible). consider instead rewriting your event to happen naturally at the end of the day and then kicking the player out

lucid mulch
urban patrol
#

as for point 2, no, EditMap does not transfer map properties whether they're in JSON or TMX. that's what AddWarps is for

fierce vault
#

Ok... I'm going to go back to the wiki for a little bit before I ask more questions

#

Does anyone know where OnLocationChange is on the wiki? I couldn't find any mentions of it through the modding name space.

lucid mulch
#

cp docs

fast knoll
#

Regarding the mod contest, if something is broken - will i be able to update a new version of the submission?

doing my best to squash bugs

lucid iron
#

It's probably better to ask the nexus discord

#

We don't know any more than what the rules say

void aspen
#

pretty

torpid sparrow
#

if they extended downloads to 30 days past end, i assume that's when they'll do the judging/deliberation but who knows...

torpid sparrow
void aspen
#

Took a while to do but I like it

lucid iron
#

Say you are making custom farm right

void aspen
#

yeah

lucid iron
#

Are u doing additional farm ukimasu

void aspen
#

im loading it as beach one for now

lucid iron
#

I am always recommending ppl to do additional farm, though it's true that beach has the hardcoded supply crates

void aspen
#

I kinda wanna make the whole gameplay around that

#

and well I dont really know how to do it as additional rather than swap it for a beach farm

#

for now

calm nebula
#

You can spawn supply crates on any map

#

Does FTM/spacecore support it?

fierce vault
# fierce vault Does anyone know where OnLocationChange is on the wiki? I couldn't find any ment...

I tried searching patho's repository and I also scrolled through this page https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md and didn't see anything about OnLocationChange. Did I miss it, or is this the wrong doc?

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

fierce vault
#

Oh, ok, so it wasn't just me failing 😅

lucid mulch
#

its in the various action pages too

#

as its a characteristic of the action and not any token

fierce vault
#

Oh sorry

#

I actually meant to ping my myself

#

And link to my json again

fierce vault
#

Alright, I'm going to mess with the code more

fierce vault
#

Ok, so doing this:

    "Action": "EditMap",
    "Target": "Maps/{{ModId}}_map1",
    "SetProperties": 
        {"CurrentTime": "{{Time}}"},
            "Update": "OnLocationChange",
    "FromFile": "assets/maps/map2t.tmx",
    "PatchMode": "Replace",
    "When": {
        "HasSeenEvent": "parcy.mrNPC.eventY"},
        "ToArea": {"X": 9, "Y": 7, "Width": 1, "Height": 3},
        
},```
and this (for the warps)

{
"Action": "EditMap",
"Target": "Maps/{{ModId}}_map1",
"SetProperties":
{"CurrentTime": "{{Time}}"},
"Update": "OnLocationChange",
"When": {
"HasSeenEvent": "parcy.mrNPC.eventY"},
"AddWarps": ["9 8 {{ModId}}_map3fr 13 14"]
},
{
"Action": "EditMap",
"Target": "Maps/{{ModId}}_map3fr",
"SetProperties":
{"CurrentTime": "{{Time}}"},
"Update": "OnLocationChange",
"When": {
"HasSeenEvent": "parcy.mrNPC.eventY"},
"AddWarps": [
"13 14 {{ModId}}_map1 9 9"
]
},

did make the location update after I saw the event then left it. This is a win, even though I haven't fixed everything yet! ![SDVpufferparty](https://cdn.discordapp.com/emojis/962210129565085747.webp?size=128 "SDVpufferparty")  

My issues now are that when I warp my farmer I'd like her to face a different direction when she arrives at the warp on map3fr, and I need to find a way to change the location during the event so that the map match can register as soon as it's done, for consistency reasons.

Are either of these possible? num1 is nice to have, num2 is kind of needed for how I've written everything out...

Also, thanks for the patience, guys. I'm sorry this took as long as it did.
calm nebula
#

You cannot turn a farmer on a warp

#

Fwiw

pale river
calm nebula
#

Some mods do it and it doesnt feel right anyways

#

Because I tend to hold a direction while going through warps, I end up just barely turning for a frame

vernal crest
fierce vault
#

ah, ok I’ll try combining the warps when i can.

#

thanks

vernal crest
#

Just because I'm not sure if you mean "combine the warps for map1 with the map edit for map1" or "combine the warps for map1 and map3fr", you can do the former but not the latter.

fierce vault
#

Do you know if I can effectively register a location change during an event?
Surprisingly, when I was still trying to load in the map patch, it did apply it right after the event was done.

vernal crest
#

@tardy pivot Sorry for the weird question, but did you do this wiki page edit?

tardy pivot
#

Yes, I was testing out some things on my mod and when you don’t put false on the [pan] condition the viewport doesn’t work right

vernal crest
#

I just wanted to check about that because as far as I'm aware there are no other arguments for that command, there's only map and pan. Is my understanding incorrect?

tardy pivot
#

Yeah it kept porting the screen to the far right of the map without putting pan as false

I checked some event code in the game and for Maru’s event for example it has false as a part of the argument for what I assume is for pan

vernal crest
#

So you have used it like changeToTemporaryMap ExampleMap false 32 14/ (imaginary example) and it does actually move the viewport to 32 14?

#

I can't see any code in the decompile that lets it accept the viewport coordinates

tardy pivot
#

No, it’s
changeToTemporaryMap ExampleMap false/

#

No numbers at all for some reason

#

It just keeps the viewport from changing when switching maps?

vernal crest
#

Ah, okay. "Argument" refers to something within the same command, so by writing By setting this parameter to false, the map will appear at the viewport you specify in the next argument. that indicates that there will be more to come in the same command. But it sounds like you mean "the viewport you specify when using the viewport command" instead?

tardy pivot
#

Ahh yes

I made it a bit confusing

vernal crest
#

I'll need to check about you having had to use false for pan, though, because that directly contradicts what I found about the pan argument being broken and performing the same regardless of what the value is.

lucid mulch
#

pan defaults to true, and while panning by 0,0 doesn't really do much, it does reclamp the viewport to be in-bounds.

so setting pan to false will avoid reclamping the viewport.
but setting the viewport in the next command should trivially override it regardless of if it got clamped or not

tardy pivot
#

It performs correctly if there few commands after the changetotemporarymap, but when i added multiple warp commands for example it would flicker to 0,0 and then jump the the viewport I gave

vernal crest
#

My understanding back when I edited the wiki is that the panScreen method that [pan] controls doesn't do anything.

uncut viper
#

It clamps the viewport

vernal crest
#

So it doesn't pan like it's supposed to but it doesn't have zero effect?

uncut viper
#

Well it's arguable what it was actually "supposed" to do or if it was simply an oddly named variable

vernal crest
#

Or perhaps it doesn't pan like its name suggests it will lol

uncut viper
#

But it does have an effect

tardy pivot
#

To my experimenting it was worth putting false for sure

uncut viper
#

I just meant whether it "works" or not kind of depends on what you call the parameter here.

#

Sure, it doesn't pan, but if you rename it to "reclamp" then voila, it works

vernal crest
#

Yeah, that is what I meant as well

uncut viper
#

So it's not functionless, and setting it to false specifically doesn't do anything, it just doesn't do something else

vernal crest
#

Yes, I will need to update the description

tardy pivot
#

Thanks for clarifying, I wasn’t totally sure what it was doing, just that it would be helpful to know in the case the command wasn’t working as expected

vernal crest
#

Any improvements?

Change the location to a temporary one loaded from the map file specified by {{t|map}}. The {{o|pan}} argument (<samp>true/false</samp>, default <samp>true</samp>) reclamps the viewport to be in-bounds when <samp>true</samp>. It does not pan the viewport.

uncut viper
#

While this may be a more subjective choice, there's little reason not to just rename the parameter to "clamp" or similar on the wiki page and remove mention of panning altogether.

#

The only place it's actually called "pan" is in the decompile, where its already actually got a different name "shouldPan"

#

I think a couple other parameter names across various wiki pages are also renamed from their decompile variables, but I don't remember any off the top of my head.

void aspen
#

Tiled and ts-inator only work with tilesets from Maps/ right? Anything outside of it can only work if I upload it as a custon tileset to a mod folder?

#

I kinda wanna use springobjects.png on my map for example

uncut viper
#

springobjects is already in Maps, no?

calm nebula
#

You're in luck

void aspen
#

Wait is it

calm nebula
#

Springobjects is in maps

#

So are m menu tiles

void aspen
#

I confused it with something then, phew

#

Less work to do then

uncut viper
#

To answer though, there is no good reason to Load a custom tilesheet to anywhere but Maps/ really, at least in 99% of cases. However, as of latest SMAPI, you can use images from other locations that are not inside Maps as tilesheets, but it takes a little more work, though I believe tilesheetinator can help you with that, too.

#

Emphasis on custom tilesheet. Springobjects is not a custom tilesheet, that's a vanilla asset, but if you drew your own, that'd be custom.

#

So don't go re-Loading vanilla assets into the Maps folder

#

(Some caveats apply for Mine tilesheets.)

void aspen
#

I see

lucid mulch
#

(also springobjects isn't coupled to what the item sprites are, mods that change the item appearances can do so by changing the object directly to use a different texture)

void aspen
#

I'm fine with that I think

vernal crest
#

Yep with Tilesheetinator using vanilla spritesheets from outside the Maps/ folder is no more difficult than using ones from inside it. Nor is the way to do it any different - you just choose "Add Vanilla Stardew Tilesheet" and navigate to the one you want. It'll automatically add it with the correct image source.

brave fable
vernal crest
#

Ok, have updated the changeToTemporaryMap description. Thanks y'all for the input!

uncut viper
lucid iron
#

Can i clone a game location is that legal

uncut viper
#

I understand that this commonly leads to "don't do X, do Y" issues however I feel like it would be irresponsible of me to answer without knowing the intentions

lucid iron
#

I made a minigame that uses player current location to do stuff

#

It work pretty good in single player but I'm too afraid to test what happens in co-op rn

uncut viper
#

Why do you need to clone the location

#

Instead of just grabbing the currnet location

lucid iron
#

So that I can intentionally make the minigame happen in the shadow realm

#

Where the other player can't mess with anything

uncut viper
#

Well the game creates new GameLocations all the time

#

You can just do that

brave fable
#

see what i've done for a similar task is setup a playercontrolevent for a not-a-festival minigame

lucid iron
#

That could work

#

Though honestly I'm tempted to just ban u from starting the minigame with another player in same location

#

It's not exactly a cooperative activity

uncut viper
#

Can I ask a clarification question, do you not mean IMinigame

brave fable
#

ah well mine is exactly a cooperative activity

lucid iron
#

But I did shenanigans to make the normal world renderloop happen

uncut viper
#

Would describing the goal of the minigame be spoilers too far for you

brave fable
#

i was gonna say you'd need shenanigans to make the normal world renderloop happen

lucid iron
#

It's on my github so it's not that secret but yes contest mod spoilers look at ur own discretion

#

But the point is that i do actually use objects n characters in the location

brave fable
#

i skip iminigame entirely and just have the behaviour happen from some new temp location with a custom type and also a netobject that does whatever else it wants for some reason this was probably a long time ago

lucid iron
#

So it's more involved than just new GameLocation

#

I suppose I could have done events from the begining but IMinigame had better marketing

brave fable
#

i'd send you my own code but you'd probably ask 'what is wrong with you' more than any actual technical questions

lucid iron
#

The thing wrong with blueberries is me forgetting the speedgro once again

uncut viper
#

I don't wanna spoil myself because I don't want to be accidentally influenced by it

lucid iron
#

Perfect crop otherwise 9.8/10

uncut viper
#

Is it more involved than a new Gamelocation?

#

If you keep a reference to it you can just copy all the objects over

#

make event actors

brave fable
#

the important part is i need to manually add to Game1._locationLookup and then send a location request 🙂‍↕️ i do not know why

lucid iron
#

Wow that is very specific

uncut viper
#

Or just use a changeToTemporaryMap event and playercontrol. That does sound easiest

brave fable
#

i'm sure i could've just used temp

#

eventually i'll probably rewrite this to be an unmaintainable dialogue tree with a dozen custom actions

lucid iron
#

But either way good suggestions thanks gang

patent lanceBOT
uncut viper
patent lanceBOT
calm nebula
#

What's wrong with atra: atra seems to have a quote button

lucid iron
uncut viper
#

I was thinking more like a Jimmy Neutron situation

brave fable
#

please put it back i need it to make mistakes

lucid iron
#

It's ok u get it back at the end of the episode

uncut viper
#

"We gave blueberry irresponsible use of Harmony syntax, let's give Button publicized access to the mod registry."

calm nebula
#

Uh

uncut viper
#

It's ok if you don't know what a Jimmy Neutron is atra

calm nebula
#

... you know what, it's a moldy cheeto

#

I assume the moldy cheetos know what they're doing

#

Blueberry is a moldy cheeto at heart

brave fable
#

unfortunately i currently have great power and great responsibility

lucid mulch
#

I already called dibs on harmony/reflectioning into the mod registry like 2 years ago

calm nebula
#

Welp, if i gave you a war game you probably wouldn't pick nukes 95% of the time so you're Gucci

brave fable
#

i call dibs on itranslationhelper. this is my turf

uncut viper
#

Besides I'm not reflecting I'm publicizing. Legally distinct crimes.

calm nebula
#

Sinz is too busy playing orsrssrww

#

Or whatever that game is called

#

Osrs

brave fable
#

ah yes there's the responsibility now. forgetting i have #bulletin-board emoji power and now there's a few hundred SDVconcernedpride reacts

patent lanceBOT
uncut viper
#

I don't even have bulletin board emoji power. SDVpufferpensive

calm nebula
#

What

#

Hey there is a concert

brave fable
#

you may be on the stardew valley discord staff, but i do not yet grant you the rank of admin

calm nebula
#

YouTube concert

lucid mulch
#

I heavily enjoyed both of the concerts to date

calm nebula
#

Blueberry secretly several owner?

#

You can probably guess a stardew concert does not fit in the atra budget

brave fable
#

the symphony of seasons in sydney was simply stellar

lucid mulch
#

the melbourne one was packed, Gave me PAX vibes with how busy it was

#

helps that it was in the same venue as PAX

brave fable
#

definitely the most people i've seen dressed as vegetables in one room

uncut viper
#

So how quickly can someone set up a mod to watch the stream from inside the Movie Theatre?

patent lanceBOT
uncut viper
#

Unfortunately our version of Monogame does not come with any video stuff so I don't even want to try rolling my own 😌

calm nebula
#

What's monogame

near island
#

Must.. fight... the scope creep... while finishing up... my modfest mod...

calm nebula
#

You have four days to scope creep

lucid iron
#

You can always scope creep in the month

#

Just ship it first

near island
#

Awful influences lol

lucid iron
#

Also u can procrastinate more cus they said the counting is 30 days after mar 26 Bolb

iron ridge
#

We need an electron of stardew mods

uncut viper
calm nebula
#

It's....not the 22nd?

uncut viper
lucid iron
#

My shit aint done so I'll upload next week Sleepden

uncut viper
#

My stuff is not even close to done

#

But I've got other smaller things I can probably get out right quick if I want to

calm nebula
#

Y'all have all month!

calm nebula
#

"This implementation isnt to my preference" I say to my left knee

quasi crow
#

To the world in general

uncut viper
# calm nebula Y'all have all month!

You overestimate my ability to make a broadly appealable mod that can attract enough attention to earn enough downloads to overcome the early upload buff from others.

calm nebula
#

Look

#

For u button I will fish out my Nexus password

#

Download ur mod

#

And remember to hit the endorse button

tiny zealot
#

i can't make a broadly appealing mod full stop, let alone on a tight schedule

calm nebula
#

I can't promise anything else

lucid iron
#

i think this mod fest is nice break from irl

vernal crest
#

It got me modding again!

calm nebula
#

Yay!

quasi crow
#

i didnt realize there were 2 pointing up reactions lol

vernal crest
#

Well, it has me writing the extremely easy json for all Bog's hard work, but y'know. We take what we can get lol

uncut viper
vernal crest
#

-cough over a million udls cough-

uncut viper
#

I wouldn't call frameworks broadly appealing

vernal crest
#

They're broadly appealing to modmakers!

#

We're people tooooooo

devout otter
tiny zealot
#

(same)

quasi crow
#

also same

vernal crest
#

I didn't even know Nexus did badge

#

s

lucid iron
#

what r badges

uncut viper
fickle thicket
#

i just want to try joining for once SDVpufferaww

quasi crow
#

well. i also want to get the last 6k udls to get that lifetime premium.... but who's counting.

uncut viper
#

Also I think most nexus users would rather not download a framework that isnt Content Patcher or SpaceCore if given the choice

#

Like if they could get their same mods without extra dependencies I think they would

devout otter
devout otter
#

(Honestly I don't know either in Nexus context. I was just "oh there's badge? I'm in then.")

tiny zealot
devout otter
uncut viper
#

People love to still download JA too even when they don't have mods in their logs even using it

quasi crow
#

...i totally didnt needlessly have spacecore as a dependency for years.... nope.

calm nebula
quasi crow
#

(in my defence i was originally going to do something with it)

uncut viper
quasi crow
#

I wonder how much higher than average new mods will be over the next 2 days lol.

near island
#

Anyone know where that cute scope creep stick bug gif is. I want to show my husband lol. I'm trying to explain scope creep to him and the stick bug is funny

forest chasm
#

I was trying make a mod to change krobus into my partner's character, incl. dialogue, sprites and name below portrait, but when i tried to change his name like shown his sprite moved off center and got all weird

uncut viper
#

You've used Entries instead of Fields

#

That means every other value that can go inside Character data is being reset to default

#

So everything about Krobus is being reset

fierce vault
# calm nebula Y'all have all month!

Do we? 😄 I was thinking we'd need to also get people to download the mod within the timeframe to have any chance of winning.... Maybe more like 3ish weeks

uncut viper
#

They did add an extra 30 days for judging (not for uploading) but yeah, that's still a calculus you'll have to make.

fierce vault
#

ohh???

#

Interesting!

#

...

#

I have a bad idea

#

But I don't want to take a break from working on my current npc mod!

#

I'm so interested in it right now

calm nebula
calm nebula
fierce vault
#

That's fair

calm nebula
#

Granted I'm completely ignoring the whole modfest

fierce vault
#

lol

calm nebula
#

But I'm double ignoring the big prizes

tender bloom
#

haha

#

i mean i could use a computer? but not more than anyone else i guess

#

nice simulations computer...

calm nebula
#

I'm sure plenty of great mods will be created but they will be created by people working normal hours

fierce vault
fierce vault
#

But it would be pretty time consuming which would mean ---> less time spent on my big npc mod

#

I wish there could have been more warning for something as huge as a modfest, because who knows when there'll be another one??

#

I get why we'll only get a month though

tender bloom
#

there are sometimes modfests that are not this "big"

#

like server events here, or other smaller servers, or probably there's general modfests out there somewhere though I don't know anything about them

fierce vault
#

For stardew specifically?

vocal knoll
#

i know i came here a few days ago with a similar issue and I have no idea why it stopped working DX

tender bloom
#

what part isn't working?

vocal knoll
#

the whole thing DX

tender bloom
#

well, the syntax is correct. is it loading into the game?

#

do you get errors in the log?

#

has the patch been applied?

vocal knoll
#

yeah and no errors either

fierce vault
tender bloom
ocean sailBOT
#

Can you do these steps to provide more info?

  1. Load your save and view the content that should be patched.
  2. Type patch summary directly into the SMAPI window and press enter.
  3. Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
  4. Post the log link here.
vocal knoll
#

yup it says they were all applied

brave fable
vocal knoll
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 15.7.3, with 20 C# mods and 2 content packs.

fierce vault
#

how do you get the rose role for the tenth anniversary? I enabled the channels...

dire kestrel
lucid iron
#

reinventing the event wheel ig SMCPufferjail

uncut viper
#

So it goes

lucid iron
#

i wanted to just start like, a blank event that doesnt have a real script

#

didnt work err handling too stronk

vocal knoll
#

Update: I got the mail to work, and only one of the CTs worked and only for Harvey and no one else and it was a day late.... 🙁

Is it possible to even have CTs start immediately or do they HAVE to be the day after they're triggered from when the event happens?

uncut viper
uncut viper
lucid iron
#

well i need it to do nothing

uncut viper
#

If you have dialogue patches that rely on the CT however with Content Patcher When conditions, those won't update immediately.

lucid iron
#

but even even a new Event() does plenty of things so i prob wont pursue that any further

uncut viper
#

Subclass event 😌

lucid iron
#

it has crossed my mind yes

#

but idk what to bonk so

vocal knoll
ocean sailBOT
#

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

uncut viper
#

You have what triggered, the patches?

#

The soonest any content patcher patch can update is either on location change or on time change. By default, they are re-evaluated at day start.

#

Doesn't matter what they rely on

urban patrol
#

is there not a flag for the earthquake that allows access to the railroad? would it be a bad idea to edit Strings/Events.json to set a mail flag when that line pops up? i need to do a conditional map edit

uncut viper
#

The game uses the Days Played stat to control railroad access

urban patrol
#

ahhh okay

#

do you happen to remember what day it is? i think it's like summer 3?

uncut viper
#

Not what day it is

#

Days played

#

Subtle but important difference!

#

If days played >= 31, you have railroad

urban patrol
#

ohhhh

uncut viper
#

Sorry, just > 31

urban patrol
#

thank you!

#

hmm do i have to query?

#

or no i can just use range

uncut viper
#

Can also just set your own mail flag

lucid mulch
#

You could also do GameStateQuery LOCATION_ACCESSIBLE Railroad as a precondition

urban patrol
#

i want the map to be patched only beforehand, so i'd be setting it on a negative then i think. idk if that's better than checking range 0-31

lucid mulch
#

oh wait you are doing CP conditions not event

urban patrol
#

i forget, are GSQs better for performance when checked like this?

#

yeah conditional map patch

#

this is honestly minor, it just adds a warp so my NPC doesn't choose to walk through the rock wall

uncut viper
#

I'm a bit too tired to be able to hold all the mental estimates for performance here so uh go with your gut

#

(Or go with what SinZ says)

urban patrol
lucid mulch
#

"DaysPlayed |Contains={{Range: 0,31}}": false would test if railroad is still blocked I think

urban patrol
#

oh not just "When": { "DaysPlayed": "{{Range: 0, 31}}" }

uncut viper
#

I mostly just wasn't sure if the overhead of checking that in perpetuity(?) would be worse than a GSQ mail flag that is then checked instead

#

No because that'd stop working after 31 days

#

Or well

#

I guess thats the point

urban patrol
#

yes that's ideal

uncut viper
#

Sorry I got it backwards (see: mentions of tired)

urban patrol
#

no worries you've been in the mines all week i know

brave fable
#

i'd recommend scheduling an npc to spawn in the railroad and path to town and see if they end up out of bounds each day

lucid mulch
#

I think mine does test for railroad being open not closed

uncut viper
#

Why would the mine test that

lucid mulch
#

note that no matter what, CP will do the check every day regardless, as its declarative

urban patrol
lucid mulch
#

and arguably checking if a token resolving to a single number is in the literal set of 0-31 is probably cheaper and more predictable than the huge collection that mailflags would become

#

the Range is deterministic so would get immediately optimised out and be no different to writing "DaysPlayed": "0,1,2,3,4...30,31"

urban patrol
#

i see i see

#

so it's not running Range everyday, just the When check

lucid mulch
#

perf wise the difference is kinda negligible

#

as the act of cp having to actually do anything when it changes is orders of magnitude more expensive

urban patrol
#

okay great! thank you all

ivory plume
#

Fun fact: this month there are 1691 mods created or updated on Nexus, 227 on CurseForge, and one (1) on ModDrop.

uncut viper
#

Does that account for the fact that the one on ModDrop could genuinely just be malware atp

ivory plume
#

(In this case it's a known legitimate mod. Maybe next month will be more exciting though.)

round timber
#

exciting (/negative)

vocal knoll
quasi crow
#

Do I need to ask someone specific for mod author? The link just says 'ask here'.
I doth ask

brave fable
#

clearly you need to message this @here person

quasi crow
#

@here person, i do humbly request the mod author role

#

oh. how do you make it one word long? :P

round timber
#

the real answer to DM @outer glacier !

brave fable
#

(single backtick each side!)

quasi crow
#

ah, i see

brave fable
uncut viper
urban patrol
#

is it a known issue that having a full inventory in an event that uses addItem can cause command(s) to be skipped? i had to throw something in the trash, and it didn't ask the QQ that was the next event command

uncut viper
#

I have no idea actually, may be worth bringing up, especially since it may be affected by the removal of addItemToInventoryBool() in 1.6.16

urban patrol
#

will do! i might test some more first just in case i broke something, but this is actually a very simple event by my standards

#

also a general "did you know?": doAction doesn't work to make the farmer sit in chairs 😔

#

manually animating things my beloathed

brave fable
#

there is a FreeInventorySlots <number> precondition you can use if you're not aware

urban patrol
#

SDVpufferthinkblob that's good to know, but idk that i want to actually gate the event behind that? it's just having tea with an NPC and i thought it would be cute if you actually got a cup of tea. it's not like a plot relevant item or anything

#

and i don't want the bug reports of "i showed up for teatime, why won't this trigger" lol

uncut viper
#

"Dear [Farmer], please join me for a spot of tea tomorrow at noon. Make sure your User Interface has at least one available Item Slot with no item present in it. Xoxo, [NPC]"

brave fable
#

'be sure to leave some room in your pocket for this open teacup (liquid included)'

uncut viper
#

I don't know why noon in particular. Seemed like a tea time.

urban patrol
#

"careful, it's still hot"

#

i'm sure high tea has all sorts of arcane rules idk about, and it's very reasonable one of them would be "this happens at noon"

brave fable
#

it's important to my people that i mention teatime is at 4

#

but truly teatime is whenever you ask

urban patrol
#

teatime is when i have a sore throat

uncut viper
#

Blueberry, would you join me for a cup of tea right now as I open up Rider to try and do some late night modding

blissful panther
brave fable
#

dh we are the same people lol

half tangle
#

I am not one of you but I have definitely heard of power surges that happen there at 4 pm because of tea. Can't find a reliable source quickly, but I did learn about upticks during commercial breaks from Wikipedia. Genuinely this would be funny to incorporate into a mod somehow. https://en.wikipedia.org/wiki/TV_pickup

urban patrol
#

that’s actually hilarious omg

opaque field
#

Yeah cuz everyone puts the kettle on at the same time ❤️

#

(I love tea, though I usually have a few cups in the am and then I have different herbal ones I rotate through in the evening)

hard fern
#

ah yes

#

the british must have their tea XD

#

i have heard about this

hallow prism
#

(if it works, it's a quick fix and doesn't prevent the situation to be properly fixed if needed later)

fierce oasis
# opaque field Yeah cuz everyone puts the kettle on at the same time ❤️

When the football (read: soccer) world cup is on, and England is playing, the energy companies have to ensure that during half-time, there is sufficient energy available on the grid to account for the kettle usage. It's 100% a real thing and would be amazing to put into a mod somehow. A sudden power surge in Pelican Town owning to an upcoming festival where you then have to deliver batteries to the various businesses to keep them running.
The upside being that it's the one day Marnie can't stare at her microwave LUL

opaque field
brave fable
#

see the only massive power spike in energy usage i can imagine is marnie staring at her microwave SDVdemetriums

opaque field
#

XD Sam and Shane abusing the microwave at Joja to reheat like, burritos and pizza at the same time.

#

Sam going too hard at band practice too.

tawny swallow
#

Hi guys, what does the H mean in Kent's introduction event? It says
"63/y 2/t 600 1800/H"

I am a bit of a disaster with anything computer related so I really couldnt figure it out 😅

opaque field
#

I believe it means "Is Host" like person is host player - it's a deprecated command - new one is "IsHost" 🙂

brave fable
tawny swallow
brave fable
#

i'm the best at opening wiki pages 🙂‍↕️ a grandmaster

opaque field
#

I've learned the trick is to just - never close the wiki pages -

brave fable
opaque field
#

I have windows dedicated to the regular modding wiki, and a separate one for github related modding info XD they're also sorted that way in my bookmarks

#

plus, browser does that thing where I start typing and it's like "yo do you wanna go to where you already have this open instead of YET ANOTHER tab"

#

but yeah, sometimes I do make myself just, close them all - as a treat to my pc

tawny swallow
#

Some are regular stardew and some are about modding

opaque field
#

It took me a little while before the organization happened - tis not my strong suit lol

prisma lynx
#

hey guys. if i wish to change a simple dialogue in a mod for an event, then i only need to edit it in the i18n file right?
that's what ive done but was curious if i need to do anything else

#

just changed a few words

royal stump
#

that's generally all it takes
(assuming it's for personal use etc)

prisma lynx
#

yeah just for personal use
to be specific, its for the wizardry mod. rasmodia asks to pray at the altar to gain access to spells in an event, which feels uncomfortable because of my religious beliefs
though now altering it after seeing the event wont do anything :p

calm nebula
fierce oasis
#

Okay... hear me out:
A yearly sporting event:
Pelican Town vs Zuzu City in a new tradition sporting event (tennis or something) where one member of Pelican Town is selected randomly to compete.
Everyone goes to Gus's Saloon to watch the game - and reports come in that a power surge is predicted.
SOMEone needs to get to the Ginger Island volcano and turn on the hydro power station -> and you can't use the shortcut as it's hidden someone randomly within the volcano, so you've got to fight your way through and turn on the power BEFORE the sporting match begins at 8pm that night.

fast knoll
#

I'm nervous I havent tested this enough but about ready to upload for the mod contest 😅

torpid sparrow
#

yay!

fossil osprey
#

How would I go about adding approximately 500 items without loosing my sanity? They'll be all the same size, same behaviour, just 500 different textures and names.

For now it's all on one sprite sheet, but I'm easily able to separate it all in individual sheets.
I'm not quite finished with the art part, but I'm wondering in advance about it 🤔
It would be easy to make a script that would write the json with each individual names, but surely there is a more concise way apart from writing 500 Changes objects

fossil osprey
#

I'll look into that when I'll get to it then, thanks ^^

hard fern
#

there are about 500 animal crossing villagers lol

fossil osprey
# calm nebula Python

Yeah that was my "I could make a script" thing, but I wanted to know if there wasn't a cleaner way to do so x)

whole raptor
#

Local tokens are good for templating, not sure how much time can be saved with it tho (definitely the cleanest way imo)

fossil osprey
# lucid iron Why do you need 500 items?

Forsy's right, I'm adding all Animal Crossing villagers as little plushies (cf. #making-mods-art message)
And before finishing this monstrosity, I wonder how I would go about actually adding these in-game

Unless you have an idea that won't be "adding all 500 textures as items"? ^^'

whole raptor
#

And just fun to use SDVkrobusgiggle

lucid iron
#

If u had loose textures I would have suggested my smithy mod though

#

Tho that's assuming these r furniture

fossil osprey
#

Furniture yes, and by "loose textures" you mean "each their own file"? Because aseprite is a godsend and I can cut my file into files

lucid iron
#

Yeah if u do it like
editing/input/animalcrossingplush/allyourlose.png

#

Smithy can do a import that automatically merge the sheet and put in the corresponding sprite index

#

The reason it gotta be loose png is just cus otherwise smithy has no idea what individual sprite are

fossil osprey
#

I see, I'll check it out too then ^^

cobalt lance
#

Testing my mod. Whenever I navigate to the social menu and select my NPC, it doesn't show me their gift tastes- instead, it spews out error code.

Additionally, whenever I give the NPC a gift, more of the error codes pop out. It also says "You have already given this NPC a gift this day" and puts an X in the second gift box? Idk seems weird.

https://smapi.io/log/bb2072e622df41b1b04275c69e59d8fb

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 12 C# mods and 1 content packs.

hallow prism
#

you may want to say what your mod is and does

cobalt lance
#

It's an NPC mod, sorry. All it has currently is a basic NPC, 3 events, some basic dialogue.

#

And an object and some mail

#

It's something wrong with the gift taste data, but I have no idea what

subtle condor
#

Hey guys, quick question, I am trying to do a TemporaryAnimatedSprite for an event and the first index says "source of the asset", so I tried putting animations and TileSheets/animations and also 'TileSheets/animations' but neither of those work

#

Smapi throws the error "content file doesn't exist", but I don't know what that is supposed to mean in this context

hallow prism
#

i don't know

#

i'm not sure you have enough fields in your gift taste

subtle condor
cobalt lance
hallow prism
#

fill, maybe not, make them existing is a different thing

cobalt lance
#

haha, yes, true! thank you again :3

gaunt orbit
subtle condor
#

Oh yeah, sorry, completely forgot to update. The solution waw actually TileSheets\animations. When I did the data path with /, the game thought I meant the end of the command here. I want to use the game's xnb file, I was just a bit confused what Smapi meant with "content file", but yeah, it was as simple as \ instead of / 😅

gaunt orbit
#

That would do it. Slash-delimited data is always tricky

subtle condor
#

Yeah, so far data paths always worked with the normal / version and I was always confused why the game keeps using \ instead, but yeah, here's the first case for me where it was actually necessary XD

#

Why does discord keep making my double \ into a single one? XD whatever, I meant two \ xD

torpid sparrow
#

is there dialogue during the wedding? i cant remember

round timber
#

from lewis yeah, not from your spouse or anything though

hallow prism
#

yes

#

and you can make basically whatever by editing the event/making a character specific event script

torpid sparrow
#

hmm true

hallow prism
#

aster in VMV has custom location+some dialogues from aster in addition of lewis speech

torpid sparrow
#

how much work do i wanna do SDVpufferthink

#

actually its not that much work

gaunt orbit
#

following up on this, I did this and the answer is that it is actually working as expected. Textures are being loaded by something else for reasons I'm unsure of, but it seems to be unrelated to the load cycle, which I guess is good enough for me.

#

unqualified furniture IDs bypass it but that is expected and not something I intend to change, given the ambiguity of unqualified ids

hexed siren
#

Making custom weddings is like other events except it’s kinda picky, I wasn’t able to use all my usual tokens but with trial and error, it’s a great bonus event.

torpid sparrow
#

I think editing the dialogue is a good enough custom patch for me

#

I don’t typically view the wedding as a super important thing

fast knoll
#

going trhough and making sure everything doesn't have capital letters SDVpufferweary

scenic ferry
#

What is needed to make an NPC marriageable? Is it just Marriage Schedule and Marriage Dialogue? and ideally a spouse room?

(Other than the CanBeRomanced flag)

torpid sparrow
#

and perhaps a spouse patio

scenic ferry
#

ahh right the patio

#

Oh! That reminds me... can you make events happen at the patio? Or not really since its location varies based on the farm type?

hard fern
#

since yeah the spouse patio changes location based on farm

scenic ferry
#

darn. I guess theres a reason most farm events just sort of happen at the farmhouse door

hard fern
#

yeh

#

no way to tell what's where

scenic ferry
#

I had an idea where the player builds a mini temple for the npc, since they're a sort of "forgotten god"
And then having the temple stay on the farm would be a cute touch
but maybe i can implement a similar idea some other way

#

ooo maybe I could make a gunther/marlon quest where once the player is married they can craft it as decor? Maybe even a blessing statue? hmmm

spark shoal
#

Hey modding stars, can anyone recommend a way to count all of one type of plant on a farm? I know the itemIDs, I'm just not sure how to identify which item ID is in a preserves jar, a keg and which one is a plant awaiting maturity.

brittle pasture
#

if you mean crops, they're not objects, but are either in hoedirts (which themselves are terrain features), or in indoor pots (which are themselves objects)

spark shoal
#

So, i'd have to identify all instances where a particular itemID occurs in HoeDirt?

brittle pasture
#

if you browse the source I think there's Utility.ForEachCrop

#

you can reference it and copy the code

spark shoal
brittle pasture
#

Utility.cs

spark shoal
#

I'm currently looking at a game save file, trying to count in there

brittle pasture
#

I suppose you're working on a save game parser? either way my answer stands
(also note that the ID of the crop instance refers to the seed item and not the harvest item)

spark shoal
brittle pasture
#

those are fruit trees, which would also be terrain features

#

they're differentiated by their category+ whether they have data in Data/FruitTrees

spark shoal
#

Ok, thanks!

frozen elm
#

Has anyone ever made a custom pet that you can adopt from start? I figure you'd need to change/add the adoption event somehow but I'm unsure if there isn't something hardcoded there which might make it hard with just CP.

torpid sparrow
#

ive done a pet u adopt after a series of events

#

so its possible to do what you want

#

with just CP

frozen elm
#

Can I just make it normally be adopted with Marnie?

torpid sparrow
#

yes

#

if you want to do everything the same, but change when the event happens, that's pretty easy

frozen elm
#

I haven't messed around with events much, my approach would be copying and editing the one in Data/Events/Farm, would I need to do anything else?

torpid sparrow
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 44 C# mods and 23 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

torpid sparrow
spark shoal
frozen elm
#

Ok I'll look into it, thank you!

torpid sparrow
spark shoal
#

Ideally != current state

torpid sparrow
#

fair enough

hollow hatch
#

low iq question but with patcher am i able to bulk replace music IDs in one go or do i need to add the ID and file path for every single one (eg. spring1, spring2, spring3 all being replaced at once)

spark shoal
torpid sparrow
#

hmm yeah its working now

#

although the invite dialogue isnt working

#

not sure why that it is

#

but no error yay

#

now to figure out which mod is messing things up

velvet crane
#

Hey guys, I have a question about modding. For context, i have little to no experience coding other than some basic Python from first year engineering but im a relitively quick learner. Basically what I was wondering is how difficult would it be for a beginner to make a custom event like the flower festival. I want to propose to my gf by making a little event for her to go through and im not sure what is realistic to consider for scope.

I was hoping for a 2 or so day event where a new mystery character (me) has her get the materials for a ring. She will give those to the guy, and the next day I want a short "cutscene" where the guy walks up, addresses her directly, and proposes.

If thats not crazy difficult, I might add more (please feel free to give suggestions)

I have no clue if this is do able for a beginner or if its crazy difficult. I also apologise if I cant respond quickly, im studying for midterms but I dont want to put this off. Feel free to pm me if you have anything that might be helpful, anything is appreciated :)

torpid sparrow
#

nvm i was literally using the wrong dialogue key

torpid sparrow
#

events = cutscenes

#

and then festivals = festivals

velvet crane
#

My bad lol, thank ya :)

torpid sparrow
#

it sounds like the materials gathering can be a quest

#

after which an event can be triggered where the guy proposes

#

i dont think it needs to be a festival

uncut viper
#

In the code festivals are just sparkling events though
But what you want on the whole isn't too complicated, but did you have like, a deadline

velvet crane
#

Not yet, we have talked about getting married when im out of school next year but ideally I want to have this done by the end of this summer

#

So nothing crazy pressing, I just dont want to push it off

uncut viper
#

Oh end of summer should be plenty of time, unless you think you'll need a lot to learn pixel art

velvet crane
#

That wont be a huge issue, I have friends in art programs who are more than willing to help

uncut viper
#

But if you already know how to draw pixel art or you wanna commission or you just don't care how it looks then even easier

#

That also helps SDVpuffersquee

velvet crane
#

OH I did want to throw in my own music too

uncut viper
#

Just as long as they can fit within the resolution constraints

velvet crane
#

Oooo okok

uncut viper
#

Are you familiar with json?

velvet crane
#

Not really...

uncut viper
#

Not too hard to learn then but you will need to learn it

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

velvet crane
#

Is json java script?

uncut viper
velvet crane
#

!!

#

Thank you!

uncut viper
#

It is not JavaScript, just a simple way to store data in text mostly

velvet crane
uncut viper
#

But it's what over half of all Stardew modding is based on and you can do everything you want with just json and art assets

velvet crane
#

Oh sweet

uncut viper
#

Json data can hold strings but is not itself a string

#

Closer to a dictionary of arbitrary properties

velvet crane
#

Ohhh ok

#

Tysm for the resources, ima take some time to figure out what you've given me but I will defo be back lol

#

Thanks again :)

uncut viper
#

Best way to learn is to just start messing with stuff SDVpufferthumbsup making some small example mods that just replace simple things to start off is good, like portrait replacements or dialogue replacements

#

You're always welcome to ask in here for help too

mint spire
#

Hiii, I want to start making mods for stardew valley but I don't know where to start 😞I've never done anything that involves programming

iron ridge
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

scenic ferry
#

Do you know what kind of mod you'd want to make? Buildings, NPCs, animals, crops?

rough valve
#

Someone needs to recreate/mod in those procedural mines. THEY LOOK SO FIRE
The cliff edges with huge background views of the caves, the goblin villages, making a little base in the mines, it all looks so awesome. Theres so much potential.
It looks hard to do, but crazy cool.
https://www.youtube.com/watch?v=geiTg6Z7w3A

Here's a special video for the Stardew Valley 10 year anniversary.
I go over some old builds of the game w/ commentary, briefly go over the many updates, give a special message to the players, and reveal the 2 new marriage candidates in 1.7. Thanks for watching.

▶ Play video
tight rivet
#

the box marked 'procedural generation' is often a pathway to anguish and woe, though

torpid sparrow
#

CA showed clips of old Stardew

fallow musk
#

oh i forgot

scenic ferry
#

i wish i could watch it so bad but im in the middle of class

fallow musk
#

yeah i missed the live, let me watch it

subtle condor
autumn tide
void aspen
#

Woops