#making-mods-general

1 messages · Page 597 of 1

dawn ore
#

yup:
{
"Action": "EditMap",
"Target": "Maps/Railroad",
"FromFile": "assets/Maps/RailroadPatchSVE.tmx",
"PatchMode": "Replace",
"ToArea": { "X": 0, "Y": 47, "Width": 3, "Height": 15 },
"AddWarps": [ "0 55 WindTurbineArea 63 22", "0 56 WindTurbineArea 63 22" ],
"When": {
"HasFlag": "KlyJuly.RenewableValley_WindTurbineBuilt",
"HasMod": "FlashShifter.StardewValleyExpandedCP"
}
},

torpid sparrow
#

Scratches head

#

Do you have any warps in the TMX?

dawn ore
#

no

#

I could, if it would help, but at the moment, no

torpid sparrow
#

I’m just thinking about overlapping stuff i am as confused as I was when i was trying to fix my warps

dawn ore
#

yesh this is doing my head in

torpid sparrow
#

What I ended up doing

#

Which doesn’t sound logical but it was fixed afterwards SOMEHOW

#

I added specific NPCWarps on the same tiles (keeping the regular warp as well) and then it worked for a few minutes and broke again. Then I removed the NPCWarps and everything worked perfectly with no problems after

#

I don’t know if I fixed something during that process but I don’t remember doing anything special when I changed everything back to just regular warp

dawn ore
#

hmm odd

torpid sparrow
#

I have no other insights ☹️

#

I also was not alone people were trying to help me here

#

And it was all not making sense

dawn ore
#

my poor little guy, just stuck 🙁

#

well, I have to go to bed (Australian!), but if anyone has any insights I would be very grateful, i'd be happy to share whatever files or snippets you need, or just the whole thing!

barren tapir
severe cairn
# dawn ore my poor little guy, just stuck 🙁

I'd just try adding it one tile closer or adding a tile behind to check if it's that issue, doesn't seem like it should be but yk I just end up doing whatever is related when in confused desperation

desert tinsel
#

Hey guys, I hope you're doing well! 💜
Could someone tell me if there is a possibility to customize these npcs speech bubbles? If so, is there a tutorial teaching this? ^^

fossil osprey
#

I think it's called TextAboveHead, but no idea where or how
You can probably try to look that up on the modding wiki

torpid sparrow
#

If it’s in an event, then textabovehead

desert tinsel
# torpid sparrow If it’s in an event, then textabovehead

I’m thinking about a way to make these lines more specific, you know? Like with those two NPCs in the image. I was wondering if there’s a way so that, instead of the character in red saying ‘Hello, Shen Qingqiu,’ they could call him by a specific name or nickname only used for this NPC.

desert tinsel
#

Is it possible to do this outside of an event?

desert tinsel
torpid sparrow
#

Im not familiar with that unforch

ornate trellis
#

i think its only possible to a certain limit? either that or it was hardcoded, i dont remember, hm...

torpid sparrow
#

I know you can give them specific nicknames through dynamic tokens, which works in dialogue and events, but I’m not sure about those speech bubbles specifically

ornate trellis
#

its hardcoded, so you cant add new stuff but you can edit the existing strings

desert tinsel
#

Ohhh!!! Thank you!!! T-T💜💜

ivory plume
#

Hi! Do you mean outdated in the sense of old-fashioned (e.g. not using a more modern doc style or design), or that the information itself is outdated?

For the core SMAPI/modding docs, one constraint is that I want any mod author to be able to edit them. If we move the docs to a site, editing it would normally become a GitHub pull request instead of a wiki edit, which mostly means that the vast majority of mod authors just won't contribute anymore.

signal heath
barren tapir
#

Everything for my More Junimo Chests update seems to be working! I just need to add guides on how to migrate to version 2 before publishing the update!

ivory plume
#

I'm certainly open to exploring it, though I'm not sure how we can minimize edit friction (particularly since many mod authors don't even have GitHub accounts). It could be useful for Content Patcher docs in particular, since those are already on GitHub (though I'd lean more towards moving those to the wiki too).

signal heath
#

i'm thinking https://www.fumadocs.dev is the way to go. they provide a lot of what we need to get some solid docs going

Fumadocs

The React.js documentation framework.

severe cairn
#

Tbh I quite like how the content patcher github looks already

signal heath
#

it's not like this would replace anything, it's just an addition

#

so it would be optional

ivory plume
#

One risk of an optional extra site is that they'd desync over time (e.g. the official docs keep getting updated while the pretty copy doesn't). Then we end up with yet another outdated guide that trips up new authors. You can certainly create your own extra site if you want, but I think it'd be more valuable to apply it to the official docs if we want to do that.

signal heath
#

i'm sure we could just parse the official docs for it anyway

merry river
#

running into this problem that none of my custom mushrooms spawn on a specific custom map (void.MM_MushroomMeadow; using FTM here), while the spawns of the mushrooms from other mods do work on the same map
not sure what the problem is, I've been trying to fix this for weeks (using percent chance to spawn or spawn weights) but I have no idea what I'm doing wrong here

smapi trace log: https://smapi.io/log/814feb99d9504d249f656953fbfd1e5c?Mods=Farm+Type+Manager+(FTM)&Levels=trace~debug~info~warn~error~alert~critical
FTM content file: https://smapi.io/json/none/ec504cc121ba4e0c8ff431707a654886

any pointers?

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 6.2.9200.0, with 36 C# mods and 35 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

lucid iron
signal heath
lucid iron
#

Sure that falls under the etc bucket Dokkan

#

The thing i feel would be pain to manage is moving it offsite or having to maintain 2 sources of truth

signal heath
lucid iron
#

Well u can certainly go ahead do that per license on content patcher

#

Then u can show ppl the Vision

barren tapir
#

I've officially updated my More Junimo Chests mod!

signal heath
#

yeah i'd start by cloning the official mod docs, idk if content patcher is the right thing to copy over though

#

i was thinking the regular modding docs

lucid iron
#

I'm not sure what's meant by regular modding docs bolbthinking

#

Do you mean the wiki stuff

signal heath
#

yeah, i thought that was the go-to

#

i'm still new to this, sorry haha

lucid iron
#

It is yeah, although it's mainly used in conjunction with content patcher

signal heath
#

i'm specifically talking about the modding stuff for developers btw

#

maybe the player side would work too, idk

lucid iron
#

Ik other games have built-in data pack loading stuff but stardew doesn't hence why content patcher market dominance

viral gazelle
lucid iron
#

Well that also wouldn't make sense what if i made Data Parcher which let u do asset edits in toml

#

And ppl can make arbitrary assets that others can edit

#

That's what framework mods do bolbsun

viral gazelle
#

Fair point

barren tapir
signal heath
iron ridge
#

mod developers would need documentation for other mods

signal heath
barren tapir
signal heath
#
Stardew Valley Wiki

Mods are packages of files which change Stardew Valley in some way. Mods can add features (like showing NPCs on the map), change game mechanics (like making fences decay more slowly), make cosmetic changes (like making your house look like a hobbit home), and much more.

signal heath
#

just to be clear. i'm talking about revamping the docs for creating mods for stardew. not necessarily the surrounding frameworks other than maybe SMAPI. i don't think there would be a source of truth issue. unless i'm misunderstanding something here

barren tapir
signal heath
#

does that make sense? feel free to ask for clarification on anything. this is all new to me, so i might be overlooking something

iron ridge
signal heath
barren tapir
ocean sailBOT
#

@barren tapir You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!

barren tapir
#

WOAH! I CAN NO LONGER POKE COWS!

signal heath
iron ridge
signal heath
#

i just want to help out the community and learn alongside it

verbal glacier
iron ridge
#

does [[Modding:Index]] not link to things well enough

signal heath
#

we're going in circles here lmao

barren tapir
torpid sparrow
#

Maybe I’m just used to the modding wiki but I feel like it’s pretty easy to read SDVpufferthinkblob

#

GitHub I’m less used to but I haven’t had issues really

signal heath
#

not trying to step on toes. just want to contribute to something meaningful. and i think if we can allow for an easier transition from developer to stardew mod creator, that's meaningful.

barren tapir
torpid sparrow
#

If there are specific people that have requested an overhaul then cool (and I’m not saying there aren’t I don’t know everybody xd) but otherwise I feel like maybe getting feedback from here wouldn’t be the best

barren tapir
# signal heath not trying to step on toes. just want to contribute to something meaningful. and...

And I think that's great, and I don't want to discourage you from that! I just (unfortunately) have a lot of experience designing GUIs at this point in my life, and these are some of the types of discussions that are had when designing UIs.

There's a lot that goes into making things feel intuitive. I'm also wary of chasing visual trends in UIs for developer docs, but that is a conversation far outside of the scope of this

signal heath
torpid sparrow
#

Depending on your definition of outsider im confused about why you want to overhaul it. Outsider as in “oh I’m a first time modder, I have experience with xyz so I think I’d be good at resorting the data” (paraphrased badly sorry) then I get it.

barren tapir
#

At this point I may as well be a front end engineer as well 😅

signal heath
#

i had an issue with an existing mod, wanted to fix it, and noticed that the docs were lackluster for me. hence why i want to contribute to improve it. it's my open source brain

torpid sparrow
#

fair enough

signal heath
barren tapir
signal heath
proud wyvern
#

What parts of it were meh?

ivory plume
#

I'd certainly be interested in a prototype of what you have in mind.

For what it's worth, I think the content organization and editability are a lot more important than the 'look & feel' end of the UX. Mod authors are already interested when reading the docs, so we don't really need a slick UI to sell them on SMAPI. But if we can get a more modern UI without sacrificing elsewhere (e.g. content organization, letting any mod author edit the wiki, etc), that would be great.

signal heath
proud wyvern
#

Yeah I don’t think the looks matter.

signal heath
iron ridge
#

how does it "feel" old?

void aspen
#

What is the topic

signal heath
#

it's the friction, i had to jump back and forth to get the information i needed

signal heath
ivory plume
#

I do agree that having two separate wikis isn't ideal; but that's more about the different philosophies. The official wiki aims for always-up-to-date authoritative official documentation, while the tutorial wiki is more of a free-for-all (e.g. want to document a very niche thing? Just do it, no need to ask for permission). But it doesn't sound like your suggestion would change that, since it would only cover the official docs.

signal heath
barren tapir
signal heath
signal heath
#

i could be wrong about what people want. it might be ignorant of me to assume people would prefer a more "modern" experience. it's just what i'm used to in tech 🤷‍♂️

void aspen
#

As long as it have text, it's gonna work for me tbh

signal heath
#

again, not trying to step on toes lmao

tiny zealot
#

feeling the need to chime in that i consider using react.js for (chiefly text) documentation subpar at best, since it does things that make the web worse to use, like "require javascript"

signal heath
#

the metadata apis for next.js is also great for seo

barren tapir
signal heath
#

i would be doing the heavy lifting outside of raw content anyway. so i don't think it matters what i choose to use as long as the contribution experience has minimal friction

tiny zealot
#

i personally am not concerned about SEO for the official, authoritative stardew valley wiki, but maybe someone else is

signal heath
signal heath
ivory plume
# signal heath i may have misjudged then. if people don't care for new stuff then that's fine. ...

(I do want to stress that your contributions are very welcome. I think the docs are one of the things that sets Stardew Valley apart from other modding communities which lack it, so anything which can improve them would be great (and a newcomer's perspective is always welcome since people get used to what they have). I think the objections here aren't that we shouldn't improve them, it's just to make sure that we aim for the right things when we do.)

barren tapir
signal heath
barren tapir
#

WITH THAT SAID, I also think SEO has become WAY less important now due to recent updates to most browsers that we aren't allowed to discuss here

iron ridge
tiny zealot
#

i am a boring, old-fashioned person, so my opinion is that even though boring, old-fashioned things may not look as nice as you are used to, it's important to make sure you're solving the right problems and not just increasing whitespace and foolishly optimizing for LCP

barren tapir
#

In terms of readability (font choice, background color, font color, etc.), these websites are fine (if not meeting modern design practices) from an accessability point of view.

#

As for an Ease of Use perspective, that is a lot more difficult to measure, given how subjective the nature of learning how to mod is

#

And it's important to try and measure difficulties that come with that process and compare them to UI hinderances (for example, poorly organized content, which there definitely is on both sites)

ivory plume
# signal heath this makes a lot of sense. if you want to outline some requirements that would b...

I think my main goals off-hand would be:

  1. The official docs have one source of truth. It's fine if they're shown in multiple ways (e.g. auto-synced to a site), but there's one place to update them without needing someone to manually port them to another place.
  2. Any mod author can edit the docs with minimal friction. I love GitHub, but the pull request flow can be intimidating for someone who's not familiar with it (definitely more friction than "click edit, make changes, click save").
  3. The official docs are accessible (e.g. screen-reader-friendly), which may impact any fancy JavaScript transitions and such.
  4. The official docs are mobile-friendly. That's not the case for the wiki currently, but that's changing soon.
  5. The official docs are hosted on official domains (e.g. smapi.io or stardewvalley.net or stardewvalleywiki.com), so they're available long-term.

I don't really have many requirements for the UX itself beyond that. I lean towards boring functional UIs (e.g. several frontend designers in the past have complained about smapi.io being old-fashioned), but I don't mind a more modern UI.

tiny zealot
#

(smapi.io being old-fashioned is a compliment in my book SDVpufferheart)

signal heath
barren tapir
barren tapir
#

I've got to go, but I look forward to seeing what you do!

signal heath
#

yeah i have to dip as well. will keep you updated. tysm for your time guys!

gentle rose
#

whatever is used for docs, it ideally should be easily translatable by humans (so easy to export the text out in nicely marked sections so they cant translate it and with space to upload translations to other languages). One of our biggest barriers to modding right now is a linguistic one! and there are efforts to overcome that

#

and of course that means support for other languages (including mandarin and korean especially, since those are the ones that have had docs translations in the past) is a must. the game itself doesn't support RTL so you can probably get away with ignoring those, but there are efforts to add modded support so if there could be RTL support it would be amazing

ornate locust
#

Honestly Stardew's had the lowest barrier to entry of any modding scene I've been in, documentation-wise

#

it's not even close

marsh reef
#

100%

#

The amount you can do with an idea and just a few hours of spare time is great

old edge
#

How do you get rid of every error item in game?

barren tapir
#

Currently sleeping every day to test a new power

#

OH GOD I JUST REALIZED GETTING TO THE SLIME INCUBATORS IS GOING TO BE AN ISSUE

#

huh, guess itd help if my postfix was actually a postfix and not a prefix 😅

#

Yay, it works! I've created the logic for a new power in my Dark Offerings mod that increases the maximum number of slimes in a slime hutch by 10!

#

If only grandpa was happy with it SDVpufferwaaah (I got the grandpa scene the day the hutch filled up 😅)

viral gazelle
#

How did grandpa rate the slime hutch? XD

barren tapir
#

2 out of 4 despite having 2 golden clocks if you can believe it

barren tapir
#

How would I create a Harmony Transpiler that effectively removes/ignores line 140 of this function (attachments[0].Stack--)?

patent atlas
#

i've never pet an orange sorry

brittle pasture
patent atlas
whole prism
patent atlas
whole prism
barren tapir
barren tapir
brittle pasture
patent atlas
barren tapir
#

Thank you!

patent atlas
#

idk if the stardew community uses ilspy or zlspy more tho

#

zlspy is literally made up that doesnt exist sorry....

#

halucination

patent atlas
#

i was thinking of dnspy i think?

barren tapir
#

Well, I'm like 99% sure I've already done it (though I don't remember ilspy specifically). I have the decompiled SV code (in fact, the screenshot I sent out was the decompiled code in Visual Studio)

#

Ahh, I see now

#

Nvm

craggy goblet
#

gently pets the orange UwU

ornate locust
#

deep, cleansing breath

#

{{Spouse:anyPlayer |contains=Abigail}}, {{aedenthorn.FreeLove/PlayerSpouses|contains=Abigail}}
So this returns true even if you are just engaged.

#

Considering I am using it to see if the character has moved out with anyone, this is not ideal

#

"Relationship:Abigail": "Married" Would work how I want, but it doesn't account for multiplayer or poly stuff.

#

how can I do this and make them properly move out WHEN THEY MOVE OUT, not before

#

I think I could do it with a GSQ, but...

#

hm

#

Always a little iffy on when/how/where GSQs are used

royal stump
#

Data/TriggerActions mail flag looking at current player, unless free love/etc offer any-player tokens or something

#

rather, put whatever CP tokens you've got in a trigger entry's conditions, set a mail flag, and make your changes look for that

ornate locust
#

I'd need a timer on that, right?

royal stump
#

yeah, trigger actions run based on the trigger(s) set, daystarted etc

ornate locust
#

The thing I have works, it just goes off at engagement, not when the marriage happens

#

and I'd need a different one for every single spouse, ugh

royal stump
#

depends on the goal here, but yeah, it sounds like something that would have to be per-npc SDVpufferdizzy

ornate locust
#

are we sure I can't use the GSQ here LOL

#

I'm never quite sure where those things work

royal stump
#

CP itself doesn't use GSQs, so you'd need to have a "Condition" field somewhere
(or use EMP's GSQ token, but that's fairly expensive performance-wise compared to just setting flags for things)

#

and what you've got right now is still something you'd need to do for every npc, in any case

ornate locust
#

I have already done it for every NPC

#

but I'll also have to do a trigger action for every NPC, doubling the work I have already done

#

I keep running into this hell web where Content Patcher can tell if someone is married, but only for single player. And a GSQ can do it, but I can't use that with content patcher whens. And Content Patcher has a token that works with multiplayer and poly, but it detects if you're engaged too

royal stump
#

maybe something like this would work as a single entry?
it should set a shared mail flag whenever the local player actually marries anyone, e.g. Your.Mod_AbigailMarried

"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
    "{{ModId}}_SetNPCMarriedFlag": {
        "Id": "{{ModId}}_SetNPCMarriedFlag",
        "Trigger": "DayStarted",
        "Condition": "PLAYER_NPC_RELATIONSHIP Current {{Spouse}} Married",
        "Action": "AddMail All {{ModId}}_{{Spouse}}Married Received",
        "MarkActionApplied": false
}```
#

"Trigger": "LocationChanged", might work if it needs to happen right after the wedding event, ig

ornate locust
#

Hmmm... Will that explode in a poly situation? I'm not actually sure enough about how those detect spouses to guess

royal stump
#

ig it would probably only account for the main spouse in that case, and I can't really picture a dynamic one working with a list token (like the free love one)

ornate locust
#

Yeah, I think I'm back to needing to do it for every single NPC. SDVpufferchickcry

royal stump
#

(tbh I'm not sure what it'll do if {{Spouse}} is blank anyway SDVpufferflat)

#

probably fixable with a marriage check in the condition first, but yeah

ornate locust
#

I just really need the dang relationship token to accept a target player and I'd be golden

barren tapir
#

Okay, I think I might be ready to test the transpiler. I am almost positive this will not work.

#

PROGRESS! It compiled without crashing!

#

Aaaand it isn't doing anything

autumn tide
#

YAY- oh SDVpufferfush

hard fern
signal heath
gentle rose
signal heath
gentle rose
#

and that's very optional

#

if you want someone to QA your rtl support I could, but really it's just mirrored usually SDVkrobusgiggle

signal heath
#

yeah i mean more as in i wouldn't know any specific quirks if any

gentle rose
#

AI-powered is a bit of a no-go in this community, unfortunately (unless it's possible to disable that part)

signal heath
#

the AI label is not relevant

#

the community would translate manually

#

no AI needed

#

every tech company seems to be taking the AI route

gentle rose
#

we don't actually have any RTL resources of any kind because like I said, nobody's finished modding the game to support it, but the only real RTL quirk I can think of would be that numbers stay LTR and that should be handled by whatever you're using to display the text, not you

rich seal
#

Ah yes, I too would like to use matchsticks for my foundation. Thanks for that buidling advice, AI! 😛

signal heath
gentle rose
#

yup, really it's just about picking stuff that could theoretically support it right now (you'd be surprised how much doesn't). And RTL-language speakers are very used to a little jank (I still have issues with whatsapp) so there's no need for it to be perfect

signal heath
#

here's an example of crowdin, it just lets people in the community translate and converse

gentle rose
#

the two non-English languages that are highest priority are mandarin characters (and any language that uses them) and korean

signal heath
#

then we can use the translations for content on the website

gentle rose
#

(because they already have some translated stardew-related docs!)

signal heath
gentle rose
#

I need to backread a little on the plan you had tbh SDVkrobusgiggle I started reading at pathos' reply

signal heath
#

ah yeah, it kinda went full circle a bit

#

tl;dr is that i want to reduce the friction for people like me who are new to modding but have a tech background. would be great to have some high quality docs for modding

gentle rose
#

I think by far the most crucial thing (which pathos did say but I wanted to reiterate) is for the community to be able to directly edit it, like they do the wiki, because the docs are really a living project

#

a better UI on top of that would be super cool though, wikis can be confusing for some people

signal heath
#

yeah that part needs to be figured out early

#

don't you have issues with people ruining docs that way?

gentle rose
#

not really, and if they do we just revert it and ban them

#

people try to vandalise the main part of the wiki much more often than the docs though tbh

signal heath
#

wouldn't quality over quantity be best? having vetted contributors

gentle rose
#

not really SDVpufferthinkblob new eyes can be some of the most helpful for finding mistakes and we've never had major issues with lack of vetting

signal heath
#

i see

gentle rose
#

is there a way for your new UI to build around the existing wiki as a data source? that way you don't have to build a backend, you can just fix the frontend

signal heath
#

i think the open source route is the way to go though. it's the standard for most things

signal heath
#

could probably use the data, but not much else

gentle rose
#

yeah that's what I meant, just using the data from the wiki

signal heath
#

as for backend, we'd only need to keep the game source and items up to date

signal heath
gentle rose
#

the game isn't open source nor are we really meant to openly share decompiles

signal heath
#

oop

#

scrap that then

uncut viper
#

(also do remember the wiki has a license, too. very permissive though, just dont forget attribution and such)

gentle rose
#

(personal decompiles are encouraged though! and there is a community one that people can have access to if they meet certain requirements)

signal heath
signal heath
gentle rose
#

yeah, we strongly encourage people decompile it for themselves for reference! but we do need to remember we don't have the license to distribute the decompile

signal heath
#

totally fair

#

i remember reading about the source somewhere, so i figured it was alright

gentle rose
#

don't worry tbh, better we cleared it up now than later!

signal heath
#

yeah haha

#

i mean i would have read about it before making it public, currently just throwing up ideas

jaunty shuttle
#

Me too Lucy, me too

flat snow
#

Hey guys - I've got my custom farm map working perfectly. I have now tried to add a secondary map (like an outdoors farm cave for example) but when I am trying to warp there I get this smapi error: [game] Warp to CountryParkFarmExtra failed: location wasn't found or couldn't be loaded.

Could someone who knows about maps stuff take a look at my Content Patcher file and see what I have done wrong:

https://smapi.io/json/content-patcher/1ebf489c93d44d74bc793799631ee560

barren tapir
#

Does anyone know where in the decompile the aging rates for different objects is defined?

calm nebula
#

Not in the decompile, it's in Data/Machines

#

In the extra data for casks

#

....unless I'm thinking the other one, the gem duplicator

barren tapir
#

Thanks, though isn't that still part of the decompile?

shut urchin
#

Hello! I'm hoping to take this map:
https://www.nexusmods.com/stardewvalley/mods/21355
and stick it on the western side of this one:
https://www.nexusmods.com/stardewvalley/mods/28859

I know I need to use tiled, I'm just popping over here to see if anyone knows a quick process for sticking two maps together lol.

Nexus Mods :: Stardew Valley

A farm 4 times bigger than the original, with optional teleports to every corner of the farm and even a optional huge pond for an optional dip.

Nexus Mods :: Stardew Valley

The 8 farms of the game merged into a single huge farm, you can get all the benefits of all farms in one game! Not recommended for weak devices.

brittle pasture
#

since it's a regular location not directly tied to a farm type

flat snow
#

Thanks, testing now

brittle pasture
#

don't forget to fully restart the game

flat snow
#

It's working! h16_Ayayaya

#

On my main farm map, I am trying to add an interactable warp object you can click on to teleport. I have tried this on the back layer and the building layer but there is nothing to interact with on the map. Any idea?:

#

Does this work differently to the map property warp where Farm does work, and maybe I need to write the name of the map that is being loaded by content patcher? Orrr

It doesn't even give me the interact cursor which is strange

royal stump
#

is there a Buildings-layer graphical tile there? the game won't use properties on that layer+tile if there isn't

#

(invisible tiles are probably fine, it just needs something to exist there on Buildings)

flat snow
#

There is not, what I'm trying to do is have the object you click to teleport from something you can stand on. Maybe I can add a tile on the building layer with the passable property?

royal stump
#

that would probably work, yeah

flat snow
royal stump
#

and for general ref, Action only works on Buildings, TouchAction works on Back

#

which would be a teleport when you walk into it, etc

flat snow
#

I tried TouchAction, seemed to have the same issue, but then again I did have a tile on Back2 so that might have been why

royal stump
#

I don't think the number layers affect properties working, but the tile data thing would need to be on Back specifically

#

another possible issue there is that the format's a bit different, TouchAction Warp location x y instead of location last for Action

flat snow
#

I wonder if when I tested it back then it was before I knew to name the thing TileData

flat snow
#

Because I didn't change that

void aspen
#

action is for building and touchaction is for back

flat snow
void aspen
#

would be funny if I said it the other way around loll

#

Also what map is your action located

flat snow
#

on Farm

void aspen
#

oh so you warp on the same map just to dif coords

#

interesting

flat snow
#

yes, it's like a "shortcut" thing

#

Here's where I'm at so far:

  • A building tile with passable=T
  • An object on building layer: Action | MagicWarp 80 85 Farm
  • I am able to walk onto the tile on the building layer
  • When I hover over the tile, I get the interaction hand cursor
  • When I click it, nothing happens
void aspen
#

what does the console says

flat snow
#

[game] Farm (116, 15) has unknown warp property 'MagicWarp 80 85 Farm', parsing with legacy logic.

void aspen
#

magic warp is a Back only action

flat snow
#

Doh

void aspen
#

so its not gonna work as a building click action

flat snow
#

Can I make it a clickable back action?

#

So Action MagicWarp on the back layer

void aspen
#

back action can't be clickable

#

only building ones

#

you can try ObeliskWarp tho

#

if you want the effect and sound

ornate drift
#

auuughfuhughfuuhghg making all seasonal outfits is annoying

flat snow
#

I will test Obelisk Warp and see (: thanks for the suggestion

#

Action ObeliskWarp <location name> <x> <y> [whether to dismount]
What would i put in the last field for dismount yes - should I just put True?

royal stump
#

true, yeah

void aspen
#

game isnt consistent with its bool values but true should work yeah

flat snow
#

[game] Can't parse tile property 'Action' at Buildings:116,15 with value 'ObeliskWarp 80 85 Farm True' in location 'Farm': required index 3 (Point targetTile > y) has value 'Farm', which can't be parsed as an integer.

#

Yikes

#

Do I need to put Farm X Y instead

royal stump
#

yep

Action ObeliskWarp <location name> <x> <y> [whether to dismount]

flat snow
#

I'm literally a dum dum I literally posted that a moment ago

royal stump
#

yeah, just noticed too, I was looking up which trues count for that method SDVkrobusgiggle

void aspen
#

just swap coords with loc name

royal stump
#

(it doesn't care about casing, but does want the whole word "true")

#

whereas a lot of SDV's properties just need text to exist, and the game tends to write T in those

void aspen
#

I hate how a lot of times its just T

#

ye

royal stump
#

yeah, those are usually just "this property isn't null" on the C# end

void aspen
#

Figured it out with Passable thing

#

since Passable T and F is the exact same thing atp

#

I swear I could use any other letter atp

#

and it would work

flat snow
#

Yeah Passable T on building makes you walk through the tile
Passable T on back blocks you

royal stump
#

in this case it's the issue that "F" doesn't matter, it'll still do the same thing as "T" in a lot of properties like that

#

it's faster for the game to just see if it exists, so the opposite of T is just removing the property instead SDVpufferdizzy

#

(a few actually do care about F or false, but it's rare)

void aspen
#

is that something on the smapi/cp end or something ca intentionally did due to engine things or personal choice

#

im not entirely sure how this whole thing works yet

#

its just a bit annoying to encounter such inconsictentceiss idk how to spell this word

flat snow
void aspen
#

ggs

#

but now its hidden under the tree

flat snow
#

Thank you bothhhh so much

#

The second warp point is intentionally hidden and the first one is a placeholder for testing :p

royal stump
flat snow
#

I will probably make a custom tile for it

void aspen
#

interesting

royal stump
#

the game wasn't exactly made for anyone but CA to work on, originally, so some code's just whatever worked

void aspen
#

I just typed interesting and I forgot I typed that

#

and almost typed it again

royal stump
#

SDVkrobusgiggle happens a lot for me, or I write too much and repeat myself in the same post

warped vessel
#

I'm a noob coder and am stuck on something and would really appreciate some help...

My window furniture data is showing up in the game, but it's not loading the image from the tilesheet. the file path for the tilesheet is in (mod folder)/Assets/Furniture. I'm sure I did something wrong here, I'm just not sure what...

Thanks for your time! :)

urban patrol
#

your texture should be the target of your load, so {{ModId}}_dragonglass1

brittle pasture
#

you want to use what's in the Target field in the Load block as the sprite sheet in furniture data

#

(also it doesn't apply in this case, but if your Target has slashes / you need to convert those into \\ in the furniture data)

#

(since furniture data is already using / for field separation)

warped vessel
#

Sorry, I'm still confused 😓

so basically what I have in my "fromfile" should be in the 'target' section instead?

I've changed the end of my entry line to the following, but I don't know what that section of the line is doing or meant to achieve :S

lucid mulch
warped vessel
#

OH!! I GET IT NOW!!! thank you!!!

lucid mulch
#

You can also do {{FormatAssetName {{ModId}}_dragonglass1 |seperator=\}} inside the Data/Furniture asset to have CP replace any / with \ for you

warped vessel
#

it worked omggg thank you <3

low shell
#

what are the sprite sizes for fruit trees?

void aspen
#

one tree usually takes 48x80

low shell
#

alright thanks!

fossil osprey
ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

low shell
#

oh im not too good with counting pixels so i figured I'd just ask instead

ornate drift
#

Things i have yet to work on:
-Manny's Events
-Manny's roommate dialogue
-Manny's festival placements
-Manny's seasonal outfits and festival outfits
then I'll finally be done
AFTER THAT for maybe an update I'll rework sime of the sprites and then add support for SDVE and Ridgeside (possibly more expansions if i have the motivation)

#

oh yeah his schedule also isn't fully done yet

#

dialogue too

verbal glacier
golden spire
#

I'm not aware of any art software that doesn't

ornate drift
#

pixel studio

#

aka the one I'm using

verbal glacier
#

i'm saying most just to cover myself

ornate drift
#

it has a grid but no way of making the grid bigger for tilesheets

verbal glacier
#

oof

void aspen
#

oh all this time I counted pixels one by one

#

it takes hours 😭

barren tapir
#

Yall, where's the slingshot asset located?

void aspen
#

Cursors have the crosshair, Weapons have the inventory sprite

#

and the whole animation thing is somewhere, looking for it rn

brave fable
#

the whole animation is in each of the farmer base sheets

barren tapir
barren tapir
#

Really, I just needed reference for the general shape and color palette. Thanks for the help though!

warped vessel
barren tapir
warped vessel
#

valid! such is the spice of life! :D

#

sorry to interrupt, i just read the previous conversation and it sounded like 20 hour ago me lol

barren tapir
#

This is my current sprite sheet template for what I'm currently working on...

... even if it is far too small now bc "damn you scope creep tm"

warped vessel
#

hey that's a real pro idea right there!! and here i am pulling straight from the wiki well like it was news lol

viral gazelle
warped vessel
#

think i'll make a pretty grid tomorrow 👀

barren tapir
# warped vessel hey that's a real pro idea right there!! and here i am pulling straight from the...

Do what works for you! I don't have a set color palette for the tiles, it depends on the colors I'm using. But I generally try to do less saturated colors, and try to avoid grays since it can make shading difficult.

I also occasionally use differing tile sizes. For example, my Junimo Chest Mod used 16x32 tiles instead of 16x16 tiles, since that was the dimensions of each frame.

Ultimately it just comes down to user preference!

#

And this is what it looks like with actual sprites (my previous screenshot just shows some drafting layers 😅)

verbal glacier
viral gazelle
#

Thanks I'll try it later

verbal glacier
#

and you might have to change the unit to pixels

barren tapir
#

Also, some programs let you convert animations to tile sheets.

craggy goblet
#

That's crazy info right there 👀

barren tapir
#

I didn't use a grid for this sheet other than a grid for the first frame. The rest were made by exporting several animation frames to tile sheets!

#

Sometimes I even do this for non-animations so that I don't have to navigate a large sprite sheet (just be wary if you do this on a sheet already being used, as it's easy to mess up tile indexes)

golden spire
viral gazelle
#

Neat

strong kite
#

So theoretically if I gave my spawning groups the conditions to only be active after the player has a certain mail flag, that should stop the locations from being filled to the BRIM with forage once the player finally unlocks them?
Depending on what I set the flag to there could still be some but I'm okay with that

serene moat
#

Does anyone know if there is something you can do if someone has copied parts of your mod, code, admitted to using existing files and forgetting to 'clean-up' some things? Example, forgetting to change my mod's version number etc.

(I do not mind one bit people copying certain logic, using my mods to understand/learn how to do different things, but using my files and just editing them...)

fading walrus
fading walrus
serene moat
fading walrus
serene moat
fading walrus
#

But basically give them as much evidence as you can, and whatever cannot be physically attached to the form, specify that you can provide more context upon request

strong kite
#

I'm guessing that setting my cutscene as not skippable isn't guaranteed to make it not skipped with certain mods? In which case I should probably swap some of my systems over to whether the player has seen the event rather than if they're received the mail flag from the event

torpid sparrow
#

Do events automatically have mail flags? I don’t actually know

strong kite
#

Well there's the GSQ "PLAYER_HAS_SEEN_EVENT"

#

But also if there's a mod that skips even an unskippable cutscene idk if that'll skip that the player has seen it
Granted this is all on my assumption that a mod like this actually exists

#

I feel like I had done it before but I don't remember how to make a condition if you have one thing OR another thing. Mainly with GSQ's but also Content Patcher but I think I know where in the docs I can find that

calm nebula
#

It's different between yhe two

strong kite
#

I figured

calm nebula
#

Use the ANY token for a GSQ

#

For CP....there are multiple strategies depending on what you want

strong kite
#

Alrighty, lemme implement the GSQ stuff real quick so I can focus on the Content Patcher stuff

#

oh god how do I do 1 mandatory condition with 1 of 2 other conditions

merry river
strong kite
#

I wanna make these so that the WEATHER conditions are always mandatory, but the PLAYER_HAS_MAIL is either BadDreamsComplete or BadDreamsForagingCompleted

strong kite
#

As for ContentPatcher, I wanna make this so it's active when the player HasFlag BadDreamsComplete OR HasSeenEvent BadDreamsWizard, just as a failsafe. Though I guess I could just.. make it if the player has seen the event to begin with

#

Would a query like this work?

strong kite
brittle pasture
#

that looks fine, though you can simplify it to weather rain, any "has flag, has event"

strong kite
#

That was the answer I've been looking for for the last hour 😭

brittle pasture
#

(the Condition)

#

the When query I think isn't quite correct yet

strong kite
#

I wouldn't be surprised, the docs kinda confuse me

brittle pasture
#

the brackets should be around an entire condition to resolve

#

ie. {{HasFlag {{ModId}}_etc}}

strong kite
#

Ahh, alrighty ty!

#

"Query: {{HasFlag {{ModId}}_BadDreamsComplete}} OR {{HasSeenEvent {{ModId}}_BadDreamsWizard}}": true, Like this?

brittle pasture
#

yeah looks good

strong kite
#

Awesome!

#

All that should hopefully protect anyone who has a mod that skips the event

#

-# though I guess I could've just figured out why setSkipActions wasn't working heehee

#

But ty I really appreciate the help!

#

Is that because of the "", at the end?

ornate trellis
#

looks like you are missing the {{ on one of the modids?

strong kite
#

Uhhh doesn't look like it..?

strong kite
#

I might have a solution or at least an idea how to troubleshoot

brittle pasture
#

hmmm you might need |contains=

#

(also gtg for half hour)

strong kite
#

Could be, but also this isn't giving me errors now heehee
"Query: {{HasFlag TntDove.PBB_BadDreamsComplete}} OR {{HasSeenEvent TntDove.PBB_BadDreamsWizard}}": true,

#

If it's having trouble parsing the ID token, just remove the token from the equation

tiny zealot
#

both sets (mails player has received, events player has seen) use the same data structure (hashset of strings) but they are stored and checked separately

severe cairn
#

the seen event will be true when it triggers, at least normally, not sure what skip unskippable events mods do, but it should still be seen if it triggers and then get skipped

craggy goblet
#

Does anyone know where I can look up item categories? For gift tastes, if there's a difference.

viral gazelle
craggy goblet
#

Cool name 😂😂

urban patrol
#

for an official reference: [[Modding:Items]]

sleek aurora
#

Is there a way to list an alternative Big Craftables recipe in the Shops?

severe cairn
#

So I just made a migration script to change to a new ModID (yes I know it is very much not recommended but it'll haunt me if I don't do it now)
Events, quests, and mailflags should transfer too, so you won't lose any progress.

Can someone who has the Arumi Asakai mod installed on a save before (or get the 1.2.0 one on nexus, trigger some events and stuff, then download the one I can send in DMs) help me test if it works?

I've tested some myself and it seems to work perfectly fine if I delete the old mod
If you have both mods I made an event trigger that will tell you to delete the old mod every morning lmao, and I made all the "include" in content.json only trigger if you don't have the old version.

The reason for the latter is because if I don't the NPCs will be treated as new ones, and if you save the game with both mods, that means you will lose all friendship SDVpetcatangy Making it only include when the old version isn't there avoids that mess

lucid iron
#

You are just using the migrateid thing right

severe cairn
#

I only found out about it after finishing my trigger actions T_T but it works the same except it can target every player cus theyre regular ol trigger actions
Tested it multiple times with multiple past saves I used for testing purposes.

torpid sparrow
#

both mods?

#

im confused if the player has 2 copies of arumi?

severe cairn
#

in case the old one doesnt get overwritten by the update due to the modid change

#

i cant delete it for them so i just made an event that goes "hey you should delete that, thanks"

long jungle
#

afaik it's the folder names that matter, not the Mod Id

#

I might be wrong though

severe cairn
#

yuh it is when I tested! I do plan to make it the same folder name, but its an edge case thing like if they moved the folder to a subfolder or something

long jungle
#

Ah I see. Well, it is their fault if they cannot update their mods properly. Very nice of you to plan making a failsafe for them.

lucid iron
tiny zealot
#

there's also like, what if they're using vortex, whose policy when it comes to handling your files is (confused soap opera math lady)

lucid iron
#

iirc the mail stuff isn't that different than literally just setting a new flag urself but it's convenient

severe cairn
#

I don't have any of those thankfully ^_^ most of the stuff I need to move is just mailflags

lucid iron
#

And u can do all of them in 1 trigger bolbsun

#

And it unsets the old one

severe cairn
#

Anyway I wanna upload it today, and I'm testing it extensively myself, but if a brave soul wanna help lemme know

verbal glacier
#

might be a good idea to ask over in modded-stardew as well

severe cairn
#

nod nod

brittle pasture
sleek aurora
#

Thank you very much!

green spruce
#

I'm working on making my 1st mod a gift for my partner I've been trying to get the the Manifest ta start working I've been looking at different sources ta maybe see what I'm doing wrong but it keeps saying " the manifest is missing the required UniqueID" but I do have the UniqueID and I fallowed each step I saw in every source I saw I'm just a bit lost and I'm not sure what to do...

golden spire
#

have you used AI for that?

urban patrol
#

it needs to look like this


{
    "Name": "Your Project Name",
    "Author": "your name",
    "Version": "1.0.0",
    "Description": "One or two sentences about the mod.",
    "UniqueID": "YourName.YourProjectName",
    "UpdateKeys": [],
    "ContentPackFor": {
        "UniqueID": "Pathoschild.ContentPatcher"
    }
}
#

you also typoed version

torpid sparrow
#

Oh wait

#

Nic said that

#

don’t look at nic’s message look at mine

urban patrol
#

let’s kiss

golden spire
#

😮

green spruce
#

no i did not use AI :') i was working on this at 3am for a good few hours... i will try and fix my mistakes -m- i misspell words a lot forgetting, adding or using the wrong letters :') i have dyslexia

golden spire
#

ok that's fine, were just a couple of things that looked a little 'suspicious' to me.

royal stump
green spruce
#

I did look over that when I was trying to fix it the 1st few times -m- I redid the Manifest and fixed it onto the ex. but it still say the same thing mm I may be doing something wrong still... I do apologize if I'm bothering :') I am just confused.

royal stump
#

"UpdateID" near the bottom should also be "UniqueID"

green spruce
#

oh! i will fix that

torpid sparrow
green spruce
#

soo i think the manifest is ok now... not really sure what it is wanting now...

urban patrol
#

!log your screenshots are very hard to read

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

void aspen
#

why do you do screenshot when you have screenshot menu on 😭

royal stump
#

so there's a typo or formatting issue in the json at line 51, possibly among other places;
but in any case, yeah, please upload logs to https://smapi.io/log and your mod's content.json file to https://smapi.io/json to share them

green spruce
royal stump
#

the idea with that tool is to left-click and select an area to screenshot, which shouldn't have the dark filter or menu visible (though I've seen weird bugs with that on some PCs anyway)

wanton pine
#

Double-checking, have probs asked before but no longer recall the answer:
Do I need to do this for all seasons?
"Action": "EditImage",
"Target": "Maps/springobjects",
"FromFile": "voidpendantreplacer.png",
"FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16 },
"ToArea": { "X": 256, "Y": 528, "Width": 16, "Height": 16 }
Yes, this is old CP code. I am updating it.

royal stump
#

no, there isn't actually a seasonal object sheet iirc, it was just named that anyway

tiny zealot
#

no, there are no summerobjects, fallobjects, or winterobjects spritesheets

#

i assume it was originally intended to be seasonal, but got scrapped and the filename stayed as-is

void aspen
#

I suppose ca had some plans for it but quickly changed their mind

#

and one tilesheet was enough

#

oh

#

wifi slow

wanton pine
#

TY! and indeed, one tilesheet is enough. Now, to check that the coords are the same!

golden spire
#

lots of old relics of early development are there

tiny zealot
#

rip Dana

golden spire
#

cursors for one.. I need room for other things.. shove in there

#

untitled tile sheet

brittle pasture
#

side note, CA also seems to have planned for every object to have a broken/splatted version

#

maybe he decided "ok I'm not doing this for all 600+ objects" lol

wanton pine
#

intreseting to see the transformation, isn't it?

golden spire
#

all the winter objects are just rotted versions of the other seasons

wanton pine
#

snort

flat snow
#

Hi @royal stump hope I'm not bothering you.

Just wanted to confirm something about FTM:

      "Stone": 60,
      "Geode": 10,
      "FrozenGeode": 0,
      "MagmaGeode": 0,
      "OmniGeode": 0,
      "Gem": 5,
      "Copper": 20,
      "Iron": 5,
      "Gold": 0,
      "Iridium": 0,
      "Mystic": 0,
      "Radioactive": 0,
      "Diamond": 0,
      "Ruby": 0,
      "Jade": 0,
      "Amethyst": 0,
      "Topaz": 0,
      "Emerald": 0,
      "Aquamarine": 0,
      "Mussel": 0,
      "Fossil": 0,
      "Clay": 3,
      "CinderShard": 0,
      "Coal": 3
    },```

Do these values with 0 mean they will never spawn?
royal stump
#

the number itself is a weighted chance, so 0 never happens, 10 is twice as likely as 5, etc

flat snow
#

so if it's 0 at starting and 1 at level 10, if the highest player is level 5 there will be a 0.5 weighted chance?

royal stump
#

yep, though I forget whether that one goes into decimal chances

flat snow
#

No worries I get the jist of it, thanks a lot

green spruce
royal stump
#

when you upload a file's text to smapi.io/log or smapi.io/json, it changes the URL, which you can post here for other people to look at

#

the json one also points to formatting errors for Content Patcher's content.json file, though it's similar to the log

green spruce
ocean sailBOT
#

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

royal stump
green spruce
#

is that what you asked me ta share?

royal stump
#

yep, that's it

green spruce
#

:D oh good!!

royal stump
# green spruce https://smapi.io/json/none/d06023c094634baab61f56e5c28f2ec7

okay, so:

However, Data/NPCDispostions also doesn't exist anymore; that's probably from an old guide from when the format was 1.x.x. You'll need to edit Data/Characters instead. There's a description of all the options here, with an example near the bottom of the page:
https://stardewvalleywiki.com/Modding:NPC_data
And there's a guide to NPC making here, with a similar example near the top:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC

urban patrol
#

nope that’s all correct esca SDVpufferthumbsup

ornate drift
#

do i even need resort_chair if my NPC doesnt sit on the chair?

golden spire
#

nope

ornate drift
#

what about resort_bar

golden spire
#

you dont even need the dialogue if they do

ornate drift
#

actually speaking of which, do all NPCs have their own global pathfinding on ginger

calm nebula
#

It's autogenerated

ornate drift
#

hm

#

ill include the bar just incase

#

i wonder if i can make more dialogue for when things change ingame (bus getting fixed, community center, etc)

golden spire
#

you can

brittle pasture
#

yeah they all have associated CTs

ornate drift
#

are they all listed on the wiki?

golden spire
#

and with CP you can do even more specific things

ornate drift
#

for example cc_bridge is when the bridge gets fixed

torpid sparrow
#

ct = conversation topic

verbal glacier
torpid sparrow
#

cc = community centre? i imagine

#

cp = content patcher

ornate drift
#

oh

green spruce
ornate drift
torpid sparrow
#

quarry bridge i think

ornate drift
#

yeah im talking about that one

torpid sparrow
#

it's a conversation topic for when the bridge gets repaired

golden spire
#

yes it's hard coded part of the game itself,

verbal glacier
#

yeah so you can have manny have cc_Bridge as well

torpid sparrow
#

there is a list of conversation topics hardcoded if u want that

#

i think it's just in dialogue though

golden spire
#

with content patcher, can have a specific dialogue with exactly 8 hearts with penny and 4 hearts with Linus on a rainy day on summer 12 on year 3

torpid sparrow
#

the dialogue wiki page

#

you can also create ur own conversation topic

golden spire
#

why you would want such specific dialogue with those exact settings...

#

but you can

#

😛

ornate drift
#

variety

golden spire
#

Essentially you tell content patcher to edit the key(s) you want with your specific requirements..

ornate drift
#

ill add most events except Joja

#

because EW

golden spire
#

well you could add that eww to their dialogue

#

eeew jojamart closed the cc

void aspen
#

tbh at some point I wanna make a joja way of cc bundles which aren't just money

#

and maybe somehow fix some issues which this way brings

verbal glacier
#

there's a mod for that called joja civic center

void aspen
#

oh yeah nvm then

#

😭

wanton pine
#

How would you add a rolling (garage) door to the stable (like the animal doors of the coop & barn) or trigger the same sound set as tractor mod based on the horse's state (standing still for more than however many seconds, starting movement, stopping movement, moving)? Obviously the second requires a variable or token, which I am still not clear on. I've attempted to answer my second group of questions by cracking open the dll of Pathos' Tractor Mod, but I have no idea how to do that correctly and accordingly got incomprehensible nonsense as a result.

golden spire
#

Jojamart buys up Pierre's and turns it into a JoJa Express

wanton pine
#

Looked in the wikis, was clueless

ornate drift
#

do i also have to add schedules for festivals

urban patrol
void aspen
#

are dlls are all c#

green spruce
#

i think i got pass the big issues with most of it but it still dose not seem to be fully fixed i do have a sprite png but I'm not sure

golden spire
#

festivals are just special events, npcs just follow their normally daily schedule

urban patrol
golden spire
#

some custom npcs do take festival days into account and schedule to them

verbal glacier
#

you get to have fun with festival positions (you're lucky you live in a post festival nudge world)

ornate locust
#

I think Pierre's would just close, it is basically his house, after all. Having a different business own his front door is a real zoning problem

golden spire
#

or go rogue and hide them out of bounds, like me

ornate drift
#

so like id have to force my npc to move to an XY coord during a festival and make them leave at night

golden spire
#

no

#

festivals have their own data

#

you edit/append

void aspen
#

do it better and just editmap their sprite somewhere unaccessible lmao

#

/j

ornate locust
#

Your NPC will just do their normal scheduled stuff and entering the festival is like another world where the normal scheduled stuff doesn't matter. Have their own maps and stuff. You stick your NPC where they go in the festival event's data

golden spire
#

Night Market is a passive one, where it's an actual map-map which they can schedule to/by

ornate locust
#

Like if you put a house on the map, it won't show in the festival, they're their own little map/worlds. Except passive ones, yeah

ornate drift
#

hm

verbal glacier
ornate locust
#

it does help a lot

golden spire
ornate locust
#

SURE ARE

verbal glacier
#

314

ornate locust
#

Those are just the listed ones

verbal glacier
#

yup

#

and counting SDVkrobusgiggle

ornate drift
#

no interaction unless you cheat

verbal glacier
#

noclip go weeee

royal stump
wanton pine
golden spire
royal stump
#

ILSpy can also be installed directly in Visual Studio, if you're using that

#

(not that it helps much, it's another step in booting it up SDVkrobusgiggle)

wanton pine
#

already checked the license, actually 🙂 Forgot to look at the rest of its github thing.

royal stump
#

SDVpufferthumbsup the code should all be there, and in a better format than decompilers can give (they just kinda rebuild it from low-level code, so some parts go missing or don't use the exact same code style)

wanton pine
#

New problem: I know CP, not C# .... ugh. Well, at least I can most understand it?

void aspen
#

its pretty complex without a general coding base knowledge I suppose

#

but theres nothing impossible as long as you want to learn it

#

!

wanton pine
#

Anyway - audio reference found. now I need to figure out if I can pull of the vertical rolling door effect with CP.

#

Yeah I'm open to learning but my brain has some dyslexia-ish stuff going on that makes dealing with more complex modding stuff (Xedit, coding) hard to visually parse & mentally manage.

ornate drift
#

dumped_guys and dumped_girls is for when you dump your spouse and another NPC reacts to it in the same day, right?

golden spire
#

it's the special 10 heart event

#

where they all gang up on you

ornate drift
#

oh waitt

#

that one

#

woops

#

nvm

#

what about dating

flat snow
#

sorry to jump in while you guys are doing stuff. just a smol question about something...

I am trying to animate some tiles and slightly change the animations of some tiles in the untitled tile sheet, I have embedded the tilesheets to my .tmx map but when I try to tweak some animations they seem to not use the animations I set and still use the default animations from the default farm map or whatever, if that makes sense. Anyone know?

ornate drift
verbal glacier
#

yeah you can use that to have npcs react to your divorce for the first time

golden spire
#

it's the topic that lasts 4 days when you first start dating them

ornate locust
ornate drift
#

how come there isnt just divorced
why once and twice

verbal glacier
#

because that is just a general reaction to divorce

ornate locust
#

I tried to do a patch that changed footsteps sounds on a tile and it still used the same footsteps sounds as the original map, for example

ornate drift
#

does it exist?

#

or

verbal glacier
#

there is divorce_NPC-internal-name

ornate drift
#

oh

#

i meant reaction to any NPC divorce

ornate locust
#

If you were doing a new map, you can control everything on the tilesheets in that, but specifically patching an existing map, it will use the properties of the tilesheets from the existing map

void aspen
#

iirc you can easily do different animations on the same tilesheet

verbal glacier
ornate drift
#

i see

#

ill just do once

verbal glacier
#

you can check lewis for an example

void aspen
#

just gotta choose the different tile to write animation to

ornate locust
#

But will it work if you change the animations on the same tilesheet in a patch?

void aspen
#

not sure

ornate locust
#

That's the problem I had

ornate drift
#

wait about dating

how can i refer to the spouse name?

ornate locust
#

but with footstep sounds

flat snow
#

So I am making a new farm map and I am using these:

ornate locust
#

Oh a new farm map

#

those are arcane mysteries to me

verbal glacier
void aspen
#

you can do everything in tiled I guess

ornate drift
#

no for example like

ornate locust
#

I defer to anyone else who has done farm maps, stuff work weird over there

flat snow
#

Yeah i noticed

ornate drift
#

"You and (spouse_name) started dating?"

verbal glacier
ornate drift
#

like how the farmer is referred to as @

void aspen
flat snow
#

For the animations I could just copy paste the images into a custom tilesheet and use those, but I am wondering if my embedded data is being overwritten by some default data somewhere, then does that mean the same for all my tile properties?

void aspen
#

this thing I mean

verbal glacier
void aspen
#

oh

ornate drift
#

does that not work on dating or

#

is it only applied to married

verbal glacier
#

cause you know spouse

ornate drift
#

oh ok ill skip dating

golden spire
#

It's also because in the vanilla game you can date multiple people at the same time

#

but with content patcher you can have a when to your edit, so it applies when that is true.

"When": {
   "Relationship:Abigail": "Dating"
}
ornate drift
#

ok i think thats enough 💀 im tired

#

and now i have to do 4-10 heart dialogues tired

#

oh yeah i havent even DONE festival dialogue

severe cairn
#

I'm trying to add some events to Event Lookup's blocklist and name to Event Lookup's locationnames, but they won't appear?
EventLookup is downloaded by stardrop which was what I thought the issue was, cus it isnt in my mods folder, but I don't know how I would fix that and I can't see anyone asking abt it :(

On another note I'm also trying to add a location tooltip to the NPC map locations, but I'm assuming I'll have to add the location to the game's dataworldmaps for that one.

#

Another thought would be maybe it requires being in the content.json cus rn I'm including it in another json

stuck thunder
#

Where are the SMAPI logs for Steam Deck using Proton? I have checked everywhere. It's not in:

  • /home/deck/.config/StardewValley/
  • /home/deck/.steam/steam/steamapps/compatdata/413150/pfx/drive_c/users/steamuser/AppData/Roaming/StardewValley/
  • The compatdata folder for SMAPI as a non-steam game (said folder doesn't exist for some reason)
golden spire
#

I assume in AppData/StardewValley/ErrorLogs

#

not the roaming folder

#

or just do a find for SMAPI-latest.txt

stuck thunder
#

AppData contains Local, LocalLow, and Roaming
It doesn't contain any other subfolders

golden spire
#

just open up kfind in desktop mode

#

I assume kfind is installed

severe cairn
#

There's no ErrorLogs folder in AppData Roaming Stardew?

stuck thunder
# golden spire I assume kfind is installed

Doesn't seem to be
Also I have been looking for a program that searches for files for a very long time
Hopefully that one will work
I use my Steam Deck as a PC btw with a keyboard mouse and TV

golden spire
#

kfind is KDE's default search tool

stuck thunder
golden spire
#

if you open the konsole and type kfind

#

does it open?

severe cairn
#

hidden files may be on?

#

some other steam deck users had that issue

golden spire
#

suprised valve would remove it

stuck thunder
#

I'm downloading it right now from flathub

golden spire
#

Valve really should have it installed by default, not like it takes up that much room

stuck thunder
severe cairn
#

oh as in they have it turned off* sorry

iron ridge
ornate drift
#

pretty sure im missing a few more festivals

stuck thunder
#

Okay I found it
It's in a compatdata folder that isn't for Stardew Valley or SMAPI
Weird

golden spire
#

btw, is there a reason you're using the windows version rather than the native?

verbal glacier
ornate drift
#

oh

#

:(

verbal glacier
#

still important to have for a fully fleshed out npc

stuck thunder
ornate drift
#

i thought they just appear when you interact with the NPC hwile theyre at the festival

brittle pasture
stuck thunder
#

Yeah I was trying to play Co-Op a long time ago

verbal glacier
# ornate drift oh

you need to target Data/Festivals/the corresponding date so spring13 for egg festival and then have a manny entry

stuck thunder
#

I remember now

golden spire
#

broken? what's broken about it? (not played co-op for a while)

brittle pasture
#

!linuxmp as in literally doesnt work

ocean sailBOT
#
Linux Multiplayer

Due to a security update to glibc, Linux users are having issues connecting to multiplayer (With the game hanging on the "Connecting to Online Services" screen) - While we wait for an official fix, there is a temporary solution available here: #1377481158509465703 message

ornate drift
#

cause im already targetting dialogue

verbal glacier
#

this dialogue is separate from characters/dialogue/your npc, you can still put it in the same .json

ornate drift
#

like making a new patch

golden spire
#

festival stuff is in it's own block, not part of dialogue at all

torpid sparrow
verbal glacier
#
"Target": "Data/Festivals/spring13",
"Entries": {
                "YourNpc": "Your cool dialogue"
            }```
ornate drift
#

i dont use i18n

verbal glacier
#

then just regular dialogue

brittle pasture
#

-# you should

ornate drift
#

idk what its even about

#

maybe in a future updpate

#

lmao

verbal glacier
#

translation/localisation

brittle pasture
#

it lets people translate your mod by just editing one file instead of going through all your code

golden spire
#

you store all your text as keys, and load those keys into your file

verbal glacier
golden spire
#

people can then translate just the keys, and those are loaded instead

ornate drift
#

inch-resting

torpid sparrow
#

its not difficult but u dont rly have to worry about it until ur done with all ur strings

#

at least i never do it until im done

#

i do all the translating at once

verbal glacier
#

ye

ornate drift
#

hooray

#

wait i have to make a new patch for EVERY festival?

brittle pasture
#

missing a bracket pair wrapping the entire thing methinks

torpid sparrow
ornate drift
#

im crine

verbal glacier
severe cairn
#

there's a template on the modding wiki

golden spire
#

each festival is in its own file

golden spire
#

you're targeting Data/Festivals/spring13 which only contains festival data for spring13

torpid sparrow
#

put another bracket before the square bracket

#

}

ornate drift
#

oh wait im stupid

#

there

#

xd

verbal glacier
#

also just cause you have dialogue doesn't mean they show up at the festival, you also have to set positions

ornate drift
#

duh

#

ill do those when i finish my seasonal outfits

#

its just finding xy coords and with a specific map

#

right?

verbal glacier
#

mostly, you can also have them animate/walk around

ornate drift
#

arent....all NPCs static at festivals?

#

or

verbal glacier
#

no harvey for example walks around during the egg festival

ornate drift
#

ah

verbal glacier
#

a lot of them do

golden spire
#

but walking around a lot with the number of NPCs that exist, you're going to collide with 90% of people

wispy bramble
#

most modded characters stand still for easier compat

golden spire
#

you can animated them tho, and still be static

verbal glacier
#

(animating on the spot is still something you can do tho)

wispy bramble
#

and most of the vanilla characters stand still too. Only a few walk around.

golden spire
ornate drift
#

waht the fuck 😭

#

theres so MANY

verbal glacier
#

welcome to modded stardew :P

golden spire
#

that's 8 years modding for you

verbal glacier
#

no

ornate drift
#

oh

#

auuuughghuahughuaghuwaoduha

verbal glacier
#

i think nassi was referring to this one (not sure) https://stardewmodding.wiki.gg/wiki/Adding_a_Custom_NPC_to_Festivals_template

Stardew Modding Wiki

Last edited by Abagaianye on 2025-09-13 05:32:18
I (Tiakall) put together a template for adding your NPC to custom festivals, mostly because I don't feel like coding everything from scratch each time I do an NPC. Just change the positions and add your dialogue and you'll be good to go! If anyone wants to add in code blocks for the festivals I ...

#

oh shoot wrong one

#

mb

ornate drift
#

bro i have to add two patches for both the dialogue and position

#

MAN

golden spire
#

they are all part of the same patch

ornate drift
verbal glacier
#

passive festival

#

which would be a schedule string

ornate drift
#

oh so id have to make my npc walk to that section and add a dialogue string for it as well

golden spire
#

yes they are just altered maps and not "special interactive events"

verbal glacier
#

yup for night market, desert festival, trout derby and squid fest i believe (not that your npc has to go to these events)

ornate drift
#

i gotta make my npc have as much variety as possible

#

even though its my first mod

severe cairn
#

ya'll im in the trenches 😭 someone help me figure out how to add compat with Event Lookup and add a tooltip thing to her house for NPC Locations
With examples of the whole code block please cus what little I've scrounged up from the wiki and stuff hasn't been successful T_T

torpid sparrow
#

ah tooltip things

#

fun times..../s

torpid sparrow
severe cairn
#

thamk

torpid sparrow
#

and also dbd, i looked at nic's dbd myself SMCPufferSquee

#

actually

#

hmmmm

#

idk my file might be kind of annoying to look through because of the different house versions and stuff

severe cairn
#

it's fine I've been thru annoying files with multiple versions before, would be good to have multiple to compare

verbal glacier
#

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

verbal glacier
#

put it in there and see what it says

ornate drift
#

an error at line 96...right when i started the festival patch

#

huh

brittle pasture
#

forgot another } to close the first changes

#

if your editor have functionality to highlight matching brackets that'd help greatly

ornate drift
#

im using notepad plus

#

so yes

#

im just stupid atm

hard fern
severe cairn
#

No no I want it to Not show up

hard fern
#

Oh

#

Um

severe cairn
#

cus some of them are supposed to be triggered in the middle of another event, like a switch event but it's its own event due to modding jank
And also I want the locations to not be called ??? lmao

hard fern
#

Ah. So it's cursed

#

I seee...

brittle pasture
#

I dunno about how Event Lookup works but for the location name does the field in location data not work

#

or is this a temp location SDVpufferclueless

severe cairn
#

FINALLY GOT THE MAP WORKING YAY

#

Now her house got a tooltip

torpid sparrow
#

yippee

golden spire
#

woo

barren tapir
#

How would a C# mod use Cross-Mod Compatibility Tokens?

brittle pasture
#

CMCT is meant for CP packs first and foremost

#

it's better to do it in your CP pack if able

#

if not possible you can probably use reflection and read the config yourself

uncut viper
#

cmct 2.0.0 will have an API for C# mod authors though if i ever get around to finishing that. its not out yet

#

if its to connect your CP portion to your C# portion, it's usually easier to just do all the config in the C#

#

you can also do this to use CMCT tokens

#

(i think. ive never used this. i forget it exists sometimes.)

proven spindle
#

Does the LocalMail event precond only apply to mail the player can read/obtain from the mailbox? Tried to use it with a non-readable mailflag, didn't work, worked when I switched it to a player_has_mail gsq precond instead

#

Old (nonworking) precond string:

"{{ModId}}_R6E1/LocalMail {{ModId}}_R0B1Done/Time 600 1700/Weather rainy"
New (working) precond string:
"{{ModId}}_R6E1/GameStateQuery PLAYER_HAS_MAIL Current {{ModId}}_R0B1Done/Time 600 1700/Weather rainy"

uncut viper
#

LocalMail specifically just checks the players "received" inbox, which is where all mail flags go eventually, readable or otherwise

#

without specifying a mailbox in PLAYER_HAS_MAIL, you are checking every possible mailbox, which is currently in the mailbox, coming tomorrow in the mailbox, or already received prior

proven spindle
#

I did try waiting a few days

#

Other things triggered by the mail did work (map patches)

#

It's not a big deal since I still have a way to trigger the event, it just seemed odd to me

barren tapir
barren tapir
#

I think it's something like debug clearmail

elder scarab
#

Can someone send me the wiki on how to create your own custom character, and one that already exists? This game sends you a letter, and also the wiki on how to create custom missions And also how to display our custom character's birthday.

calm nebula
#

!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:

elder scarab
#

Can someone send me a wiki on how to make a personalized letter?

proven spindle
#

Have you made a stardew mod (of any type) before?

calm nebula
#

[[Modding:mail]] ?

proven spindle
proven spindle
uncut viper
#

Well if you change the mail flag the GSQ wont work either

whole prism
#

I’m trying to create a quest where the player goes to Mona’s gravestone, and when they stand on the correct tile, an item is removed from their inventory and the quest completes with some dialogue, I can probably start the quest fine, but I can’t use an ItemDelivery setup for this since it's a gravestone. I also don’t want to add a new NPC or anything like that

Does anyone know a good way to detect when the player reaches a specific tile and trigger the item removal and dialogue?

proven spindle
uncut viper
#

while i cannot tell you what the specific issue is here, i can tell you that a mail flag is a mail flag no matter how its sent or checked. it lives in the same place regardless

proven spindle
elder scarab
#

Now all that's left is to create a custom mission.@empty radish @empty radish

proven spindle
torpid sparrow
#

I don’t remember there being one

whole prism
#

i want to make one

torpid sparrow
#

you could check special orders too but I’ve not heard of that

whole prism
#

like that

torpid sparrow
#

So C# ?

whole prism
#

there is no way to do that in content patcher?

royal stump
# whole prism I’m trying to create a quest where the player goes to Mona’s gravestone, and whe...

SpaceCore and BETAS add TouchAction tile properties that might help:

  • TouchAction | spacechase0.SpaceCore_TriggerAction <triggerActionId> runs a Data/TriggerActions entry if it has the trigger field set to "Manual"
  • TouchAction | Spiderbuttons.BETAS_Action <Action String> runs an action directly
    So you can do things like add items or mail with trigger actions when they step on the tile. I'm not familiar with a way to complete a special order without doing the normal objective types, though. Same for quests, which generally have fewer options.
torpid sparrow
#

Esca got u

#

You might be able to fuck around with it and run an action that completes a quest/special order?

calm nebula
#

Completing a quest via an event is a thing btw

whole prism
royal stump
#

If nothing else, I guess the Location quest type could just trigger and an event could show the player doing the thing SDVpufferthinkblob or what atra said

whole prism
#

but im trying to figure out how to make it for that tile

calm nebula
#

Ie, that's how throwing a fish down on jodi's floor works

elder scarab
# torpid sparrow So C# ?

And I'm going to create my game in C# Monogame using the Stardew Valley engine, as everyone knows it.

torpid sparrow
#

I always hated that like why is it on the floor

calm nebula
#

You will need a framework or your own c#

barren tapir
torpid sparrow
#

Floor dust

#

This is why you can’t eat at everybody’s house

calm nebula
#

It's good for the immune system

#

Immune system needs a little challenging

torpid sparrow
#

That Stardew jojamart mockumentary artist should draw that out

#

That’d be funny

elder scarab
barren tapir
#

Also, to be fair, is floor bass really less sanitary than "pocket bass that has been sitting amongst all manner of things in a backpack for who knows how long"?

torpid sparrow
#

Hmmm

#

Well yes bc that’s an additive property

#

No floor bass = still sitting in backpack

#

Yes floor bass = sitting in backpack + floor

barren tapir
#

But some of the dirt on the bass could fall off onto the floor.

elder scarab
torpid sparrow
#

Hmm

#

I reject that hypothesis

ornate locust
#

It's an entire bass, it has scales and stuff on it. it's fiiine

#

gonna have to do plenty of cleaning to eat that

barren tapir
#

There has to be scientific literature on this subject

proven spindle
#

hey now, maybe i was holding that bass in my sweaty bare hands all day did you consider that

elder scarab
uncut viper
#

completeQuest will be an event command (and trigger action action) in 1.6.16

uncut viper
calm nebula
#

Thr game didn't track completed quests on 1.6.9 anyways

#

Gooood morning button

uncut viper
#

it sorta does if you count previously active dialogue topics. which is also getting a GSQ in 1.6.16

calm nebula
#

You get active dialogue topics on an event anyways

barren tapir
lucid iron
#

the dt warning is about using cmct to access dt iirc

barren tapir
#

Ahh, gotcha

lucid iron
#

but if u have ur own C# u dont actually need cmct since u can just register the tokens from C# side to use in CP

uncut viper
#

There's a content patcher API for creating your own tokens. I can't get the link right now but its on the CP github, look for the "extensibility.md" file

#

Chu is correct about the warning by the way, it's more so that the way CMCT updates its tokens that you use to look at other dynamic tokens is done in a sub-optimal way but it's by necessity.