#making-mods-general

1 messages · Page 284 of 1

uncut viper
#

the original motivation was seeing one dynamic token whose value was somwthing like this:
|Token={{Token}} |OtherToken={{OtherToken}} |Thing={{Thing}} etc

#

and then using that dynamic token inside the i18n, which would then be parsed as the token passthru

#

as a quick n easy way to auto-passthru any token you might need

rare orbit
#

wonder if it's possible to make meads colors change based on the honey color used?? with just content patcher??

uncut viper
#

so the initial idea was to just let you set a bool that makes CP auto pass thru certain tokens automatically so you dont need to do that

lucid iron
#

Yeah or give it a set of tokens to do that on

rare orbit
#

just wondering since content patcher is likely to be updated for a very long time

lucid iron
#

I didn't implement that in prototype

lucid iron
#

Although that's with entirely custom artisan goods that copy color all the way

rare orbit
#

imma check out the inner workings for that mod! i love the idea of meads being various colored based on honey colors since i know there's packs that add honey colors!

lucid iron
#

I think there's already mods that do this tho

rare orbit
#

wait really? for meads right??

lucid iron
#

The emc flavored mead pack, better honey mead, some others im sure

rare orbit
#

i kinda want em to match fancy artisan goods icons tho

lucid iron
#

It only stopped needing emc in like 1.6.9?

#

Well you can go make compat then

rare orbit
#

it's just figuring that out ya know?

#

it'll likely take months in the best case scenario due to my current skill level and attending a day program a few times a week

uncut viper
#

a few months is better than never!

hard fern
#

5 years later is also better than never

uncut viper
#

"the time will pass anyway"

calm nebula
#

Go mod that new one, silksong or smth

brittle pasture
hard fern
#

whats a silksong

brittle pasture
#

it's not possible with CP alone because honey by itself isn't colored

hard fern
#

can i eat it

uncut viper
lucid mulch
#

its what the spider in hades2 does when singing while using her web as a harp

brittle pasture
#

you can make a CP pack that retextures Better Honey Mead's custom colored mead icon if you want

hard fern
#

arachne? 🤔 the spider?

uncut viper
#

(why does atra know what silksong is...)

rare orbit
#

so best case scenario i'd have to do a fancy recolor of it for better honey mead or colored honey labels?

#

imma check which is more up to date but i'll likely make compat for both

brittle pasture
#

yeah
though keep in mind the latter doesn't color mead, you need to do that part yourself (it only colors honey)

lucid iron
#

atra learned about solksing unwillingly

hard fern
#

solk...sing

half tangle
#

Your Apple tree wasn't able to grow last night... but where? This simple mod gives an additional notification that includes the name of the location where the fruit tree is. https://www.nexusmods.com/stardewvalley/mods/33035

Nexus Mods :: Stardew Valley

Your Apple tree wasn't able to grow last night... but where? This simple mod gives an additional notification that includes the name of the location where the fruit tree is. It will also print the sam

#

(for anyone aware, this isn't my current main mod - I made this in half an hour just now)

calm nebula
#

(What is it?)

hard fern
#

i think the silk sings songs

uncut viper
#

im content to let atra wonder forever for this one

hard fern
#

"CanBeTrGreyed": false,

😭 i was wondering what the hell this was but i remembered i just replaced all mentions of "Ash" to "Grey" and this was one of the victims

normal root
#

Is there a way to send a letter on the condition that the game has a flag, like a when condition using HasFlag? I know to make the entry within a new EditData thing, but I'm not sure how to actually send the letter

vernal crest
normal root
#

Thank you for your help!

vernal crest
odd ginkgo
#

😭😭😭 coming in to see everyone was talking about silk song and I missed it

#

I'm having trouble making ambient light for a map- is the RGB what the game subtracts instead of adds? The color seems to be the opposite of what I want it to be (red instead of green)

reef kiln
#

I come here every once and a while to read what going on. It is amazing how often Mail flags are mentioned.

#

Seem like 1/2 the game is mail flags. 😀

vernal crest
brittle pasture
odd ginkgo
#

Ahhh.... Okay, ty, time to do some simple math

fierce vault
#

I can't seem to find the font that dialogue boxes use. I didn't see it in cursors or in the fonts folder... can someone tell me where I'm missing it?

hard fern
fierce vault
#

I'll check again

#

I don't see a fonts bold

hard fern
#

XD

#

when in doubt check there

rough lintel
#

font_bold yes yes

fierce vault
#

Oh, thanks! I thought I had checked there already.. must've missed it

crisp rivet
#

Is there a way to create a custom category for items?

tender bloom
#

Not easily

#

You can do it with C#

#

Changing the display name is much easier

#

And more compatible

gaunt orbit
#

do you need an actual custom category or just a category displayed to the user?

#

doing the second one is very easy with spacecore, doing the first one is hard and requires c#

tender bloom
#

What you do is make it some category and then use a framework that lets you rename what it shows. Like Trash category but rename it to Junk

#

Or Vegetable category but make it show Herbs

crisp rivet
#

im making dna item but stardewvalley's category is not good for me

#

Should I use the tools category?

brittle pasture
#

are you making a custom tool in C#

lucid iron
#

what does DNA do

crisp rivet
crisp rivet
lucid iron
#

just use spacecore then

#

you can make egg display dna or something

crisp rivet
#

okay

#

thank you!

marsh dragon
#

I've been toying with the idea of making a mod that tweaks the backstory of date able vanilla characters in order to age them up. For example, Alex is a personal trainer and his grandparents moved in with him when they couldn't live on their own anymore, Abigail moved in with her parents after a divorce and started grad school, and Sam is Jodi's brother/Vincent's dad.

#

Before I start figuring out more specifics, are there already mods like this? I haven't been able to find any, but it's totally possible I missed them!

tiny zealot
vernal crest
#

That's cool. Kantrip has made an older Seb mod where he's Robin's brother rather than son and is working on an older Sam mod too, but two cakes!

marsh dragon
#

Oh, awesome, ty! I'd only found portrait edits, I'm going to check out older Sebastian! (I didn't have an idea for him, so I'm glad one already exists 😂)

#

As an Old who plays I need older marriage candidates so I don't feel creepy!

lucid iron
#

if you are making a mod like this the main thing to be aware of is that you are automatically incompatible with everyone else Dokkan

latent mauve
#

There will always be people who ask for compatibility--I had someone the other day comment on one of my mods that's already compatible with SVE about how I should move my map to be compatible with SVE in a different part of the map

marsh dragon
#

Yeah, I considered that! I think in that sense Alex would probably be easiest to age up, because there are less friendship connections, but it would be good practice before trying an NPC!

latent mauve
#

Which I will be ignoring that post on my mod page, because I already made sure the current location is compatible and if I followed their suggestion, I would break every other mod that tries for SVE compatibility with the suggested different map.

tiny zealot
#

never forget the users who asked:

  • whether upcoming SVE content would be compatible with SVE
  • to remove the star wars references from the mando mod
vernal crest
#

I would definitely be interested in "older X" mods, even if I wasn't romancing them.

marsh dragon
#

In my "maybe one day" list I also have a mom's club expansion mod for Robin/Jodi/Caroline, because Jodi is probably who I relate to most

#

More older characters and story lines!!

latent mauve
#

Just gotta be careful to limit which characters you age up if they're not already romanceable.

#

I specifically had to move Penny and Jas's character replacements around for my upcoming Legend of Zelda NPC mod so that Jas (even replaced and aged up as a completely different charcter) didn't become a romanceable character and I didn't run afoul of NexusMods ToS.

marsh dragon
#

The idea I have would basically be either separate mods or one where you could toggle which ones

#

Ohhh, yeah, I wouldn't make the kids romanceable

#

Or probably age them up much if at all

latent mauve
#

Just wanted to make it clear to be safe! Some people don't realize where that line is.

marsh dragon
#

Idk, I always have huge ideas but the follow through is the hard part!

lucid iron
#

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

lucid iron
#

the stuff you need to make a vanilla character overhaul is about the same as new npc

marsh dragon
#

I've looked at the wiki, but will poke around that thread! Where they'd live was one of my questions

tiny zealot
#

finding a place for your NPC to live is one of the toughest problems. however, there is an apartment building mod by fireredlily that can give you a place https://www.nexusmods.com/stardewvalley/mods/30295

Nexus Mods :: Stardew Valley

A new location accessible from the Mountains to house up to 70 custom NPCs. This is meant as a location for mod authors to spawn their custom NPCs if they do not want to create a custom house for thei

marsh dragon
#

Awesome, ty!

latent mauve
#

(funnily enough, that's the mod I was referring to that's already SVE compatible but had one user wanting me to move where it is in SVE, LOL)

rigid musk
#

is there a way to do random number for the available stock in a shop?

latent mauve
#

I believe you can set RANDOM <#> as a Condition for the Item entry?

hard fern
#

i believe so 🤔 ? unless im thinking about the wrong thing

brittle pasture
#

with AvailableStockModifiers

latent mauve
#

Ah, yes, that

#

What Selph said

brittle pasture
#

basically add entries for "if RANDOM 0.2 then Add 2"

rigid musk
#

Ah thanks Selph I don't know how I missed that ..

warm drum
#

anyone know how to mod on mac

lucid iron
#

!gs

ocean sailBOT
lucid iron
#

and wrong channel

rigid musk
#

so fast chu... such speed

latent mauve
#

oops, sorry, that's long

rigid musk
#

Not random items, I got that down, I meant a random number of said items

#

like ... sometimes sell 3 bread or 1 bread

latent mauve
#

Traveling Cart has a lot of entries that use the multiplier though.

rigid musk
#

but the uhh thing that Selph mentioned helped

#

that's true

#

I forget that the base game has examples sometimes

uncut viper
#

i forget that the base game sometimes

#

so you're in good company

exotic stratus
#

Hi all! I have a technical question about texture load times. Anyone experiment with converting a mod's .PNG files to .XNB files to speed things up? And is this the best place to ask?

brittle pasture
#

pathos/sinz probably knows the best, you can try pinging them

#

but my hunch is that it's not going to make a difference

#

I don't think SMAPI does any conversion to XNBs and just loads it into a Texture2D in memory

exotic stratus
#

I would feel like a guy on the street desperately waving at a celebrity I recognize, trying to get their attention. xD

brittle pasture
#

same tbh, but this is a highly technical question that I'm also not qualified to answer

uncut viper
#

turning your stuff into xnbs would be a major annoyance to anyone who ever had to deal with your mod for compatibility purposes

#

or to try and debug things

exotic stratus
#

I've started a new run on my Steam Deck, playing splitscreen co-op. We just got done with a Perfection Run that had some QoL mods, and now we're going again with Ridgeside Village and Stardew Expanded in the mix. Great fun! Unfortunately, adding these two huge mods has started a labor dispute with my Steam Deck. Once we're in the game, things are mostly OK (60 FPS framerate), but when one of us loads in as Farmer 2, it takes 20-30 seconds to load that player in. If one of us goes in to Pelican Town while the other is on the farm, we get a big ol' half-second lag spike, and that's repeatable. We get other infrequent, not-so-repeatable lag spikes too. It's not so fun. I installed SinZ's Profiler to troubleshoot. It tells me that Content Patcher is taking thousands of MS to load, which makes perfect sense to me - RSV and SVE are big mods.

#

I tried removing all mods except SVE and RSV and their pre-reqs, and the behavior is largely the same (if not slightly better).

#

SMAPI isn't complainig about aything being out-of-date, and to wit, I have similar issues on both my Steam Deck and my gaming PC (a custom desktop with an AMD 78700X3D, RTX 3080, & 64 GB of RAM; the game is loading from an NVME SSD). The issues on my PC are far less noticeable, but still measurable.

#

So I had a moment of idiocy:

brittle pasture
#

I play with lots of expansions mod on my SD (albeit only single player) and I don't have any loading/stuttering issues. same with my desktop. are you sure it's not multiplayer latency

exotic stratus
#

Why not convert those mod's assets into XNB files? See if it speeds up load times?

#

It's not multiplayer latency. We're both on the same Steam Deck, same couch, playing split-screen co-op.

#

Oh, and that's another thing - none of this appears if I'm testing in single player on the SD. Only on multi-player. If I do this on my PC and bring up Task Manager, I can see SDV takes up a lot more RAM when you host a local multiplayer game, at least when another player joins in.

uncut viper
#

that sounds like its less a problem with the file format which i imagine impacts little once its loaded, and more so just the processing required for per-screen stuff

lucid iron
#

sve/rsv can't function as pure xnb mods though

exotic stratus
#

Sure, but can I convert some of the PNGs into XNBs and make the game load those assets that way?

lucid iron
#

yea but cp has to edit a Texture2D

brittle pasture
#

as button said once those textures are loaded into memory the deed is done

lucid iron
#

it really doesnt matter whether the info came from a png or xnb

exotic stratus
#

I've heard differently.

#

Give me a moment to explain...

uncut viper
#

i mean CP is not going to be constantly reloading files if it doesnt need to

lucid iron
exotic stratus
#

I am under the impression that the lag I'm experiencing (half-second freezes and such) happens only when the game loads assets. If I leave an area and come back, the game loads some assets again, unavoidably I'd assume. I've seen some much shorter lag spikes when one of us triggers a cutscene or opens a menu. The biggest spike happens when one of us enters Pelican Town.

lucid iron
#

since you are doing local coop though, i believe CP maintains a separate context for each of you

exotic stratus
#

Next up, I saw a video (I'll try to dig it up) where someone had a texture replacement mod for Terraria (another XNA game), and loading the replacements as PNGs took like, 20 seconds. Loading XNBs took far less time, like 3 seconds.

exotic stratus
#

My understanding is that XNB files are bigger, file-size wise, but they are textures that GPUs can use straight up without any translation. PNGs have to be loaded into memory and then converted into something the PGU can use.

lucid iron
#

they depend on CP features to do things

exotic stratus
#

Lemme find that video real quick.

lucid iron
#

and idk why terraria would be relevant here tbh its a different game

exotic stratus
#

It's relevant because both Terraria and Stardew are built on XNA (or rather, MonoGame). Apples and Oranges, sure. But I think there may be something to converting PNGs to XNBs and telling mods to load those XNBs.

#

I don't want to convert a whole mod to some labarynthian XNB file, I want to convert individual assets to XNBs and see if there's a marked performance improvement. Just wanted to see if anyone else had been down this road before and could warn me off of it.

lucid iron
#

well it is a thing content patcher supports for Load at least? idk what its gonna do with editimage though

uncut viper
#

(well we kind of are warning you off it or directing you to someone(s) more knowledgeable but you seem determined to try anyway, so i say it cant hurt to try if you really want to, but i just wouldnt be surprised if the results didnt help or if they broke a mod completely)

exotic stratus
#

That's fair. 😄

#

I'm expecting file size to balloon, RAM usage might also go up, and it'll be way harder for anyone else to customize the assets, but it might load 10% faster.

lucid iron
#

before doing all that maybe try sinz's experiments

#

you gotta build it yourself but these are things to try and improve map and texture edits

exotic stratus
#

Woah, those are some major improvements!

#

Alright, with that and the wiki link, I've got some work to do. I'll try to keep you all posted with any updates I have, including benchmarks.

#

Thanks for the advice and the links!

inland ermine
#

Does HasSeenEvent in ContentPatcher return all event IDs, or can be used e.g. "HasSeenEvent": "1, 2, 3"?

vernal crest
#

Do you want to check if any of them have been seen or if all of them have?

inland ermine
#

All of them I think

vernal crest
#

That would look like this (so it will only return true if event 1 has been seen AND event 2 has been seen AND event 3 has been seen):

"When": {
   "HasSeenEvent |contains=1": "true",
   "HasSeenEvent |contains=2": "true",
   "HasSeenEvent |contains=3": "true"
}

And in case you decide you want to check for seeing any of them (so it will return true if event 1 has been seen OR event 2 has been seen OR event 3 has been seen):

"When": {
   "HasSeenEvent": "1, 2, 3"
}

OR

"When": {
   "HasSeenEvent |contains=1, 2, 3": "true" // this one is handy in case you want to check a player has NOT seen any listed event, by setting it to "false" instead
}
inland ermine
#

Oh yeah I've read this but forgot. Thank you!

rigid musk
#

If i use the winter tilesets when tiling my map will it still be compatible with recolors

#

(the map im making only shows up in winter and itll be hard to visualize it otherwise)

vernal crest
#

I don't see why not.

rigid musk
#

This will make my life easier

#

yippie

vernal crest
#

I make my maps in winter

faint ingot
#

Well I was about to see if I could make an event conditional on a player's heart level with their pet. I forgot that people can forego the starting pet entirely SDVpetbearsad

hard fern
#

Making maps in winter sounds cool

fierce vault
rigid musk
lucid iron
#

u get to have pet in like y2 anyways

faint ingot
#

I mean it would be an NPC introduction event that unlocks the NPC so yeah that's a pretty big deal

lucid iron
#

just do a OR maybe?

fierce vault
#

oh

vernal crest
#

Making maps in winter is mostly blinding, but winter has the worst tile joins so I got sick of getting everything to line up nicely in spring and then seeing a bunch of mismatches in winter.

fierce vault
#

That would be different

faint ingot
#

it's no big deal I'll just do something a bit different

rigid musk
#

tbh_seen I just dont think about it

#

I've been having my mod load without red errors in the console after doing large edits more frequently.. its scary /lh

faint ingot
#

I don't think about it until I test my spring map in winter and see how bad it looks. there's just some grass tiles etc that looks fine together in spring but not in winter

rigid musk
#

what do you mean im not missing six commas ... what do you mean all of my syntax was right first try...

vernal crest
#

I can overlook many, many issues in the game to do with mismatches, including entire tiles not being recoloured - unless it's my own mod in which case it must line up perfectly at all times.

fierce vault
#

Perfectionism can hit creators hard. It can be good, but also has the potential to steal a lot of valuable time

rigid musk
#

pain it truly does

#

It's fine when other people's stuff isn't perfect but MY stuff... agony

#

It's a hard mentality to get over for sure

fierce vault
#

I like to think that all the time I’ve lost due to it is going to be worth it in the end…

astral oyster
#

so in an event can make an npc lose friendship or gain it; but what about normal non question dialogue. Can I still make someone lose it as like a response to talking to Abby after X event or would I have to just include it in X event before hand instead of the response dialouge when spoken to at a later point?

rigid musk
#

I feel more satisfied if I make something I like but I have to find a balance between making something I like and it being impossible to do the thing

rigid musk
#

you can have question responses where the player loses friendship with them (in general dialogue)

astral oyster
#

I'm working on an event with roughly six possible answers; effecting several different npc's and while working on the responses of them hearing about what player said about them I thought it would be cute if they gained or loss friendship the next time you spoke to them; I just don't know if I'd have to add into the event or if It could added onto the dialouge without an additional question.

rigid musk
#

You would have to put it in the event but you can add in an end dialogue response from each npc

#

(or do the question thing)

vernal crest
#

You could make it happen the next time you spoke to them, I think, by checking for a specific dialogue answer from the event.

rigid musk
#

pondering would they have to use the uhh ... oh what's it called

#

Not quickquestion

uncut viper
#

you could also set different CTs in the answers probably

rigid musk
#

the other one

#

There's a lot of ways to do it though

#

Losing friendship at the end of each branch as well as an end dialogue for each npc, conversation topics, checking for specific dialogue answers( if you're using the other... thing i still cant remember)

vernal crest
#

$p would work if the answer from the question in the event counts as dialogue answers.

#

I am referring to doing the friendship loss in the dialogue, not during the event, as I think Lily is meaning.

astral oyster
#

This is oddly more complicated then I thought it might be

vernal crest
#

Can you use end dialogue for multiple NPCs?

rigid musk
#

you can!

#

For their situation they can also just have an individual end dialogue for each ending since it sounds like ieach one is focused on one npc

vernal crest
#

Can you do it without branches or forks?

#

Have multiple end dialogues, I mean

rigid musk
#

/end dialogue {{ModId}}_TheMrQi \"{{i18n:Aos.FriendQiEventSW8H11|QiPlayerTitle= {{QiPlayerTitle}}}}\" Wizard \"{{i18n:Aos.FriendQiEventSW8H12}}\"", - I have this one for one of my events

oh hm... not separate ones no

#

You can still have multiple NPCs in the same end dialogue but not individual ones if there's no branches

astral oyster
#

I was trying to add the removal or addition using a conversation topic; considering said npc wouldn't be present in the event

vernal crest
#

Using a CT would work

astral oyster
#

That is good to know, I was worried it wouldn't because I could never get actions to work inside dialogue so I feared it would not and testing the addition to friendship is a lot harder.

faint ingot
#

Is there something weird about my advancedMove command here? The farmer is just walking in place instead of walking north. I checked my map and there are no obstructions broadcastEvent skippable changeToTemporaryMap {{ModId}}_AnimalShopSpork false pause 2000 warp farmer 13 20 true pause 200 playSound doorClose pause 2000 advancedMove farmer false 0 -4 1 100 pause 6000

rigid musk
#

wouldn't they be facing right when doing that pondering I'm not sure if that matters though... it might be the pause at the end? Is there a reason why you're using advanced move for this as a singular movement?

#

Usually they do that because there's another command coming after it but you have enough of a pause that it shouldnt happen theoretically

faint ingot
#

hmmm if I warp the farmer in one tile higher it works, I'm guessing the problem is that my temporary map is one tile taller than the location the event starts in

rigid musk
#

also I just need to say this is making me laugh harder than it really truly should

#

compressed qi...

vernal crest
#

I was going to say it might be related to the change to temp map

#

Movement stuff can be so fiddly.

#

I have given up on the move command almost entirely.

#

Not that advancedMove doesn't have its own challenges, but I tend to be able to wrangle it better.

faint ingot
rigid musk
#

I am! I have an obelisk (for Content Patcher) and a totem

vernal crest
#

Chu scope creeped her into doing an obelisk lol

rigid musk
#

The Obelisk makes it so that people who can't use spacecore can still eventually warp here (even if its harder)

#

It was the worst thing ive ever textured to this date

vernal crest
#

It's handy to know that Hiria will not be mobile compatible. Sorry mobile players but I will not give up SpaceCore for you.

rigid musk
#

(I also switched to FTM for monster and forage spawning)

#

Mobile players just don't get cool stuff

faint ingot
#

Well now I want to scope creep chu into adding warp totem functionality for mmap so I don't have to require spacecore

rigid musk
#

My shop is fully implemented bobdance now I just need to do three more maps...

vernal crest
#

But spacecore saves us all from Willy choosing terrible pathing options

rigid musk
#

It truly does, but if mobile players REALLY wanna play with my mod they'll have to deal with it B)

#

'Why does the village go into qi's room'
He's popular idk

faint ingot
#

also second what was said about advancedMove, the basic move command is a mess

rigid musk
#

It is a mess at times, but for simple movements I still use it SDVpuffersquee

#

its even better in game WHEEZE

vernal crest
#

I can't use move for simple movements because I do so much movement-breaking stuff in my events that it rarely works even for the most basic movement.

#

I tried using it for one of my jumps and it was working okay until I added more stuff to the event and then it broke lol

faint ingot
#

yeah for me it was mixing move with advancedmove broke everything so now I just use advancedmove

#

also shortening my temporary map to use the same dimensions as the original event location fixed it so I guess that was the issue

#

I just wanted to expand Marnie's kitchen a bit to accommodate some movement and guessed people wouldn't notice. Now I'll have to see if they also don't notice that I made the bedrooms shorter to keep the map the same size 😛

ashen minnow
#

Hello there👋 , I am new here. And I am here in search of modding questions... Is there Anyone familiar with modding the PC and mobile version stardew here ?

faint ingot
coral trout
#

hi dudes i wonder if anyone debug via mac rider? just moved from windows rider to mac's and the debug config did not pop as it was on windows

#

sry im fresh on c sharp and the dot net launch profile seems kinda hard for me now XP

#

i guess pathoschild's mod build config package did the stuff on config the run profile for rider in windows?

proud wyvern
#

ModBuildConfig is only setup for running on Windows, correct

coral trout
#

awh thanks alot!

#

now i think i need to crack the dot net launch profile erh

proud wyvern
#

you could copy-paste that into your project without the condition and try figuring out a way to make it run properly on Mac

#

although i don't think you'd have access to GamePath then

#

you'd have to declare that manually

coral trout
#

wow thats so kindly, im just brain storming the keywords that should google

#

🥰

#

like declare permission for term during installing smapi?

proud wyvern
#

i have no clue what you'd have to do unfortunately

#

i assume if it was very simple, it would already be a part of SMAPI's ModBuildConfig

#

or maybe no one bothered yet

coral trout
#

nvm that's enough for me now

#

have your days! thx🙏

old edge
ashen minnow
coral trout
#

oh it makes

crude plank
ashen minnow
lucid mulch
crude plank
#

Sin have you looked more into the performance optimizations since the last experiments?

#

Just curious

lucid mulch
#

Neg

old edge
#

the wall now explodes thanks

vernal crest
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.

lucid mulch
# exotic stratus I don't want to convert a whole mod to some labarynthian XNB file, I want to con...

SMAPI's asset pipeline intercepts XNB loading and only goes back to xnb if nothing in the asset pipeline tries to load.
And once smapi has loaded and edited the asset, it will be in an in-memory cache of that asset until something invalidates it (i.e. due to wanting to have it change.

In addition, only 'game' assets can be xnb, i.e. stuff in the Content folder.
reading from a mod folder directly can't be an xnb, and you aren't doing custom locations or npcs in a modular fashion as an XNB without baking all your mods into singular files, and even then I don't think you will even see meaningful performance wins.

The performance wins I have in my WIP changes come from adding caching to reading from the mod folder, as unless you are a mod dev working on a mod in progress, the filesystem may as well be immutable and caching there gives serious performance wins, along with some other map caching behaviour in content patcher

old edge
#

Using explosionAt, a gamelocation method. I added logic to detect when a bomb hits specific tiles and trigger a mail flag, which then starts an event tied to a map patch.

lucid mulch
#

Profiler Peformance Probing

lucid mulch
vernal crest
#

Is stuff from 1.6.8 any use to you, SinZ? My game lags up to 20 seconds randomly during play after a few in-game days but I'm still back in 1.6.8. I suspect it will be the same once I'm playing on 1.6.15 but it will be quite a while before I can manage to build up a mod list for that and therefore get the same impressive lag levels.

lucid mulch
#

probably, follow the instructions in the thread.
I'm not sure if I'll need to backport the smapi or cp builds or not

vernal crest
#

If it needs to be these versions of CP and SMAPI to be useful for you then I don't think they will be happy with game version 1.6.8 but I can try them and see.

lucid mulch
#

Profiler and its content pack wont need them, but will need a separate CP build at minimum to have its logging added back in

#

making a content patcher build now for 1.6.8 with just the logging

gloomy meteor
#

Is coding required to make custom outfit mods?
Some background: I mostly play vanilla so idk much about mods.. but I'm currently commissioning a custom hair and outfit for a streamer friend so that she can look like her vtuber character while streaming Stardew..;;

Could I trouble yall to direct me to where I can find info regarding understanding custom outfit mods? I'd like to know what exactly is needed for an outfit mod? I imagine all that's needed is the png of the outfit, pants, sleeves, hair and hat in all directions angles and when interacting with things/people? beyond that.. is there coding the artist will need to do too? or would that be covered by fashion sense?

Apologies in advance if this is posted in the wrong channel LapPray

vernal crest
#

Not coding in the sense of using a programming language, no. But making a Fashion Sense mod (or Content Patcher mod) requires writing json.

vernal crest
solar needle
#

Anyone know of a good way to use 2 character sprite/ portrait mods at once? I’m trying to make a mod that changes the outfit of the marriageable candidates to be pajamas while at home, but I’m struggling to get it to work with other mods (specifically I wanted it to work with the Seasonal Outfits mods so the characters would wear the seasonal outfits outside the house and the pajamas when inside.) any suggestions?

brittle pasture
#

I think SCA uses the appearances system now? So you can add an entry for your indoor pjs to Appearances that has a stronger (lower) Precedence value

light bramble
#

I want the forage spawned here on the grass

light bramble
fathom hound
#

Ohhh thx

light bramble
#

esca I need your help 😭

hallow prism
#

is the map allowing forage?

#

do the tiles have the property to allow forage?

light bramble
#

I thought Farm type manager overrided that????

hallow prism
#

maybe, i don't remember but it's a direction to explore

#

since well, your stuff doesn't work so you may want to like, test solutions

#

you also have no terrain selected

light bramble
#

I don't even know how do the forage allow....

hallow prism
#

so i would :

  • select a terrain
  • then set a property
light bramble
#

with the tiles

#

delving into the wiki I guess

light bramble
light bramble
hallow prism
#

i don't really care if you're not willing to test some stuff yourself 🙂

light bramble
#

I am testing myself...I was just letting you know

#

trying to figure out the tile properies I need to set rn...

royal stump
#

"Exclude" settings override "Include" settings, so your first "ExcludeCoordinates" entry is preventing spawns on the entire map, basically:

        "IncludeCoordinates": [
          "3,125/40,146"
        ],
        "ExcludeCoordinates": [
          "0,0/184,122",```
#

The way FTM handles the include/exclude stuff is that it makes a list of any tiles with something from IncludeTerrainTypes , then adds any tiles in IncludeCoordinates, then removes any tiles from that list that match* the Exclude ones

#

(which is also why using both include terrain types & coordinates usually makes a mess; they only need to match one or the other)

light bramble
#

I don't have the forage area put into the exclude area unless tiled isn't showing x/y and is instead showing y/x

sleek aurora
#

Hi all. I need to create a multi crop for culture. But I just can’t find an example of how to do it correctly. About a year ago, I found an example of how to do this, but it seems now it does not work.

light bramble
#

the top of the forage area is y 122

royal stump
#

SDVpufferthink oh, I misread of of those numbers, one sec

hallow prism
sleek aurora
#

I try to do this on CP

hallow prism
#

yes it's what i'm saying, i'm pretty sure CP alone isn't enough

light bramble
#

I mean I can totally see if I screwed up somewhere...I've been....scatter brained of recent due to external circumstances

hallow prism
#

i use Spacecore for that but it has some few limitation (that i'm fine with, but some users are annoyed by it)

light bramble
#

Have heard good things abt space core...need to learn how to use it myself SweatDropSmile

light bramble
#

or am I mistaken?

sleek aurora
#

And there is an example of fashion, how to use Spacecore for multicultures?

royal stump
#

excludes are just necessary to "cut out" areas from the includes, basically

hallow prism
#

is how i do it in a mod

royal stump
#

which doesn't seem to be the case here, though the numbers were a bit confusing

light bramble
#

All I know is the last time I had only include coords, I was getting forrage spawned near the farmhouse

sleek aurora
#

Thank you very much, I will try 😊

royal stump
#

given the file you uploaded at least, FTM could only spawn anything in the 2-tile-tall strip at 3,125/40,146, regardless of which excludes are there

#

(in the forage section, at least)

light bramble
#

So if I want only this area I have circled to be spawnable, I need to make sure that it is ONLY those tiles in the include?

#

sorry for so many clarifying questions

royal stump
light bramble
#

Ok, and then another question... are these tiles no longer considdered quarry tiles? cuz tiled is calling them dirt only...Do I have to set my quarry tiles manually in FTM?

hallow prism
#

it's not the quarry tiles, quarry tiles have a specific index, but i believe you can list your own tiles somewhere

royal stump
#

The quarry and custom tile lists in FTM are based on sprite index only, it's not a property like the others

#

(I think those are the right ones, assuming you're using the same sheet as the hilltop farm/etc)

light bramble
#

I could've sworn at one point they were qualified as quarry tiles in the settings and meta data of the tilesheets...

royal stump
#

the game's never used "quarry" as a type, it just hardcodes the spawns for the vanilla farms and the mountain anyway, etc

#

though 1.6 may have added some map properties related to that

light bramble
#

Ah

dusk crest
#

Ok Pokemon fans, I have given pokemon partners to everyone (alphabetically) up to Morris and I have reached a problem. Do I give Morris a partner? Since he's kinda the "bad guy" I don't want to call any pokemon "bad" 'cause every pokemon is somebody's favorite...

light bramble
gaunt orbit
light bramble
#

Morris to me is more team rocket over villain

gaunt orbit
#

The trick is to find a redeeming quality of Morris and choose a pokemon connected to that

dusk crest
gentle rose
#

I don't get it but they are out there

dusk crest
#

I admit I've never played the Joja route or interacted with Morris much 'cause it makes me sad @w@;

gaunt orbit
#

I just like watching him get punted when you finish the cc

dusk crest
light bramble
#

Also, esca, if you're still around, can you clarify if the Find existing object locations for large items (IE stumps) will override the include locations? And if so, does this work for making sure that the stumps will respawn here only? I am only asking because I have had some people dm me on nexus saying that they're having stumps respawn EVERYWHERE

dusk crest
#

I think if I give him Galarian Meowth and Pierre gets Kantonian Meowth, then it puts them in opposition with each other rather than putting Morris in the position of "bad guy with bad pokemon" and I kinda like that

royal stump
#

The default FTM config settings use it to make all the original* stumps respawn every day, wherever they happen to be on a farm, but it's pretty confusing to use in any other case

light bramble
royal stump
#

Pretty much, yeah, it'll help to simply it down to just some basic include coordinates. Although I think you should just use 1x1 areas (the top left tile of each stump), though I'm not entirely sure, since that changed at one point. SDVpufferthinkblob

light bramble
#

I'll try out both and test to see which one I like more.

gaunt orbit
#

If you're doing stumps specifically you can use the stumps map property as well

hallow igloo
#

fucking kill me, VScode is rolling out their AI tool to automatically scan and 'fix' everything you do in it as the default setting for eveyone

rigid musk
#

All of this AI stuff should be opt in not opt out

#

That sounds horrifying eugh

hallow igloo
light bramble
#

then, final question relating to layering...I had someone mention that when they put buildings in the quarry area, the fence tops clipped through the buildings, I originally made this map back when vanilla didn't support the Front 2 front 3 etc. layering. So the fence tops are on always front, if I make a Front 2 layer and put the tops on that, will it fix the issue with the tops clipping through the buildings placed?

royal stump
#

(Just tested, and yeah)

"IncludeCoordinates": ["5,5/6,6"],```
A stump in this area can spawn with its top left corner in 5,5, 5,6, 6,5, or 6,6, so to keep it in a specific position, just use a 1x1
rigid musk
#

But nooo they just auto enable every ai feature ever it's so awful

light bramble
royal stump
#

yep, that should match

light bramble
#

kk, thank you so much for the explainations and such XD At this point people should just call me the questions girl...seeing as I ask so many clarifying questions lol

royal stump
#

(also FTM just looks at the Back layer to check those, for the record)

light bramble
#

kk

#

one more, maybe stupid, question. If I want to omit certain ores from spawning, I can just delete them from the content.json right?

#

so like if I don't want clay nodes to spawn, I can just delete that entry right?

dark forge
#

Do any of u do mods for mobile

light bramble
#

me? no...Mainly because I have ZERO way of testing them due to me being an Apple user

royal stump
#

or just set the chances to 0, but both work

light bramble
lucid iron
ocean sailBOT
#
Android SMAPI

There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.

Do not harass mod authors to make Android specific compatibility patches.

lucid iron
#

main problems with making mobile mods is platform specific code

#

But if you are making CP only mods it's not so bad

dark forge
#

I'm not familiar with coding terms 💀

#

I'm so sorry, I'm just here to look at cool mods

crude plank
upper rune
#

I'm trying to add some recipes to my crops mod, I am not sure what I'm missing there's a an error recipe in the cooking menu. Might have to do with the recipe itself, I'm not sure what the function of the /25 5/ is that I'm seeing in other mods

uncut viper
#

the 25 5 is an unused field and the numbers are meaningless
difficult to help without seeing the code

#

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

dark forge
rigid musk
#

The 25 5 doesn't do anything, remnants of something never implemented

uncut viper
#

does "error recipe" mean it shows a torch and wood as the ingredients or that the icon is an error?

rigid musk
#

(You can just do // if you want as long as you still have that section there)

upper rune
#

it shows as a greyed out circle with a cross through icon in the menu

uncut viper
#

but the ingredients do display correctly?
are you able to spawn your Princess Soup item via CJB Cheats or a console command?

upper rune
#

It's not showing the ingredients. I'll try to spawn it

rigid musk
#

Try removing the none at the end of your recipe

#

"-6 1 Towerstalk 1 RapunzelLettuce 1/25 5/Princess_Soup" so it's like this

upper rune
#

it's showing an error item there but with the correct buffs on it. notranslation:PrincessSoup.description

rigid musk
#

The no translation issue is with your object not the recipe, it means the token you used for the i18n doesn't match what's in the default json

uncut viper
#

if thats an error icon but with the right data (minus the incorrect i18n token evidently) then I think you want to double check your Texture

upper rune
#

hmm. but the i18n names do match between the object json and the default json. What do you mean by texture?

uncut viper
#

the i18ns dont need to match those

rigid musk
#

If the incorrect texture is loading it'll show an error item

#

Or if it doesn't exist

upper rune
uncut viper
#

(ah wait i misread)

rigid musk
#

**

uncut viper
#

also, those dont match

#

your default.json uses _name but your object.json uses .name

#

and so on for all the other i18ns too

#

the desc i mean

upper rune
#

Thanks I would never have caught that

uncut viper
#

as for the texture Lily is correct your "Texture" line might be mistyped or you may have forgotten to Load your spritesheet or perhaps its in an Include that was never actually included

rigid musk
#

Have you loaded the asset- yep

#

Button is speed...

uncut viper
#

fixing the texture may not be the exact/only solution to the recipe but its a good step to get out of the way as it makes debugging much easier when there's only one thing broken

upper rune
#

I think I did forget to add the sprite sheet to the content json. Modding is hard

uncut viper
#

lotsa little steps, many easy to forget

upper rune
#

ok so it is now i think properly in the cooking menu but it is not unlocked. How to make it default?

uncut viper
#

replace your none from earlier with default

#

none means the mod author manually decides when its unlocked via a trigger action or event or some such

#

default will make it so that the player learns it automatically

upper rune
#

oh ok sounds good

#

It is spawnable now!

uncut viper
upper rune
#

Was able to cook it, thanks everyone

uncut viper
#

happy to help! though it may be good to make sure your recipes and items and such will be compatible with other mods, if you're open to the suggestion/advice?

upper rune
#

sorry stepped away for my dogs for a minute

uncut viper
#

no worries! its just that none of your items or recipes have a modid in them- you'll usually see people use the {{ModId}} token in places, as this guarantees that your internal names will be unique and not clash with any other mods

#

like Jellybeans, for instance. if any other mod also added an item called "Jellybeans", you two would conflict and one of you would overwrite the other

#

but if you made its internal name {{ModId}}_Jellybeans then it'll always be unique, even if you both do that, because you will both have different mod ids

upper rune
#

So like WWG_Jellybeans?

uncut viper
#

using just the token is fine! recommended, even

#

{{ModId}} is a token like {{i18n}} is a token, content patcher will replace any instance of {{ModId}} with whatever your UniqueID is in your manifest.json for you

#

just WWG can work but it technically doesnt guarantee it's unique

#

whereas its literally impossible for two loaded mods to have the same uniqueid

upper rune
#

So I should just type it in as {{ModId}}_Jellybeans exactly?

uncut viper
#

its usually recommended to do this for anywhere that can possibly conflict, so mostly in things like Entries keys, location IDs, recipe names, etc

#

yeah, you'd change it to like this:

"{{ModId}}_Jellybeans": {
  "Name": "{{ModId}}_Jellybeans",
  "DisplayName": ...
   ...
}
#

you'd wanna do it for more than just the jellybeans ofc for consistency, even if its unlikely that someoine else might add items that match your other names

#

and you'd need to replace it everywhere that the internal name is used, so for example if you changed princess soup to {{ModId}}_Princess_Soup then you'd need to use it like that in the recipe data, too

upper rune
#

Ok. I'll try to add that in

upper rune
#

I have broken the descriptions again X(

#

is it maybe because i'm nesting the tokens? eg.

#

"DisplayName": "{{i18n:{{ModId}}_Adderroot_Flour_name}}",
"Description": "{{i18n:{{ModId}}_Adderroot_Flour_description}}",

golden spire
upper rune
#

would it mess it up though?

golden spire
#

mess what up? translation keys are all just contained within your mod, it doesn't matter what you call them, as no other mod sees or uses them.

old edge
#

what happened to these map properties?

golden spire
#

A lot of Map stuff was cleaned up for 1.6 and some never used stuff was removed.

old edge
royal stump
#

afaict using them now will only disable normal forage spawn, though I was never familiar with them to begin with

uncut viper
#

basically what it says on the tin. those do things in very niche circumstances

#

so basically dont worry about them

#

they wont disable anything but they will force things to spawn in aforementioned very niche circumstances

old edge
#

can you spawn desert forage on a farm?

royal stump
#

(oh, sorry, yeah, it causes another spawn call, I misread some of the !s)

uncut viper
#

if the FarmHouse has those properties along with forceLoadObjects (or its treated as outdoors) then you can spawn forage from the Data/Locations data whenever you upgrade your house, get married, or get divorced.
otherwise its only when a GameLocation is very initially created

#

(the forage will spawn INSIDE the FarmHouse, i mean)

royal stump
uncut viper
#

(thats also the only context in which forceLoadObjects is used too, probably why its not bothered to be listed)

rancid musk
#

Just to follow up, this is fixed now. One of my transpilers was technically working but actually not working because of branch instructions. Things are fixed now.

uncut viper
#

everyone loves transpiler branching

old edge
#

oh I remember you add the farm to data locations

rancid musk
#

Yes. Love. That is the correct word definitely.

rigid oriole
#

Sanity check: I can use i18n tokens in a file i Load with CP, right?

uncut viper
#

no

rigid oriole
#

i see

uncut viper
#

absolutely no tokens will be parsed in a Loaded file

rigid oriole
#

😔

#

Guess who just restructured her content folder for nothing

uncut viper
#

wasnt me

rigid oriole
#

back to loading blanks and editdata-ing i go

lucid iron
#

Barley y not just Load your i18n

#

Solves everything forever trust

rigid oriole
#

i do not trust this

uncut viper
#

its not actually an untrustworthy or out there idea

lucid iron
#

More seriously you can do it if your i18n is organized just like dialogue

uncut viper
#

its situational

#

i Load my i18n for my books mod

lucid iron
#

E.g. i18n/default/Lewis.json

#

And then u load that to whatever

rigid oriole
#

I'd have to do a fair bit of i18n splitting that i think it doesn't save time

lucid iron
#

The other reason to do it is if you want LocalizedText for whatever reason

uncut viper
#

or if you wanna grab CP i18n from a C# component

#

without reflection bs

rigid oriole
#

i have my old versions (thanks git) so i can just copy/paste em back lol

uncut viper
#

(thats the case for my books mod)

lucid iron
#

Whether it work 4 u without refactoring is separate concern

#

Something i discovered the other day is that

#

CP sometimes treat Load as new data model, and sometimes as string string dict

#

If the former happens it's annoying cus I can't EditData in more entries

uncut viper
#

what would be a usecase for such a situation

lucid iron
#

Almost none i think

#

I was just getting errors when i was doing the i18n token thing until i changed my target from strings/demetriums to Data/Events/demetriums

#

Still the implications for Load i18n is that u can't merge them into 1 asset ig

uncut viper
#

why would you need to editdata more entries into it tho, why not include them from the start

lucid iron
#

In the case where u design a framework to do custom asset that works like dialogue assets you can hint at base type and itll be fine maybe?

uncut viper
#

thats just string string dicts tho innit? so there should be no issue right?

rigid oriole
#

ok i went back to editdata-ing and all my problems are fixed and it means my harmony patch was not the issue thank you all

uncut viper
#

does make me more curious about how CP decides what the asset is though if you're just loading somethin fresh

#

you're welcome! (i didnt do anything)

#

happy to help

#

etc.

lucid iron
#

Well as mentioned when I tried to Load strings/demetriums CP decided it was a data model

uncut viper
lucid iron
#

I switched to Data/Events and that works (otherwise so many mod wouldn't work lol)

uncut viper
#

"must be one of: Item, Next, Parent, Previous" interesting

#

seems to happen in ContentPatcher.Framework.Patches.EditData.KeyValueEditorFactory.TryGetConstructorWithoutCache(). couldnt tell you what this code really does tho but thats where it makes it a ModelKeyValueEditor which gets CanAddEntries set to false

old edge
#

when you forget what you were doing

rough lintel
#

greetings fellers. i have a 5-day CT, and i want 1 of 5 keys to be played each day of the CT. i thought i could do this with _memory keys, but it only has one for oneday and not any other metric. how would i make sure a unique line plays each day, for 5 days, during this ct?

#

example if i wasnt clear
day 1 of ct: play line 1
day 2: play line 2
day 3: play line 3

uncut viper
#

have one CT trigger the next CT which triggers the next and so on

rough lintel
#

oh. blergh. is there any other way to do that?

uncut viper
#

not unless you want to increment a counter stat and make your dialogue have a 5 way GSQ ternary

rough lintel
#

if theres no way other than that way ill just do a random and not care

#

ewwww nevermind HAHAHA

#

ill just take the L

uncut viper
#

one CT = gotta stuff them all into one dialogue entry somehow

rough lintel
#

my favorite way of doing that: random

old edge
#

anyone know which track would be good for a magic room?

lucid iron
#

What about the track for Emily's dream

golden spire
#

"Of Dwarves"

#

or just "WizardSong" if you want to use the Wizard's one again

#

also kind of depends on the magic vibe you want

remote flume
#

is there a place for modding help?

golden spire
#

as in making or using

remote flume
#

making

golden spire
#

here is your place

remote flume
#

thank god

#

alright so im tryna make a mod that replaces the eat sound with my own custom one

old edge
#

what is the audio id for ofdwarves so I can listen to it

remote flume
#

and ive been trying to make it with content patcher and it just not working no matter what i try

brittle pasture
#

!json post what you have

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.

remote flume
#

alr one sec

old edge
#

example

remote flume
#

i have axchop there to test it quickly

old edge
#
{
            "Action": "EditData",
            "Target": "Data/AudioChanges",
            "Entries": {
                "slimedead": {
                    "ID": "slimedead",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/audio/ball_out.wav}}" ],
                    "StreamedVorbis": false,
                    "Looped": false
                },
                "rockGolemDie": {
                    "ID": "rockGolemDie",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/audio/firered_007B.wav}}" ],
                    "StreamedVorbis": false,
                    "Looped": false
                },
                "monsterdead": {
                    "ID": "monsterdead",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/audio/ball_faint.wav}}" ],
                    "StreamedVorbis": false,
                    "Looped": false
                }
            }
        }```
golden spire
#

debug ps "Of Dwarves" it also uses the name of "LavaMine" but that is shared by 2 other tracks

brittle pasture
golden spire
#

"Of Dwarves" is it's unique name

remote flume
#

google

#

ai overview

brittle pasture
#

yeah dont do that lmao

remote flume
#

which prolly aint the best place to get it

#

yeah lmao

golden spire
#

DONT USE AI

royal stump
brittle pasture
#

!chatgptcode

ocean sailBOT
#

Please stop trying to get ChatGPT to write your C# mods for you, especially if you don't know how to write C#. It won't work without heavy editing, and it wastes everyone's time.

Large language models fundamentally are reguritating something from their input—which is roughly speaking, the written output of humanity up until 2021 or so, for ChatGPT. For specific, niche topics like "is this framework going to do what I want" or "which things does Game1.cs have access to", it probably has no idea! But it's good at detecting that people in the past have....said things about frameworks and written things in C#, so it does its best to assemble words and symbols into a nice order for you. Sometimes it tells you true things, and sometimes it tells you false things, and if you can't detect when, you're in trouble. When you're writing code, this usually produces garbage, because you can't be "sort of similar", you have to be exactly correct or it won't work.

old edge
#

oh i see the track id has a space in it though

golden spire
#

I don't even know why people think AI understands how to even make SV mods

old edge
#

that could be problematic

remote flume
#

didnt ask chat gpt, i thought ai overview just summarized whats on google

ornate locust
#

That's kinda also what ChatGPT does, none of it is smart

remote flume
#

i thought chat gpt didnt use google

ornate locust
#

It doesn't matter what it uses, it's the same mechanism

#

It produces something plausible based on a database, not correct

#

It is made to lie and sound real

brittle pasture
#

they're both LLMs that know nothing about SDV modding and like to make stuff up

ornate locust
#

they are very much made to make stuff up in the shape of something that sounds plausible

brittle pasture
#

anyway, pls follow the wiki link above

remote flume
#

i dont fw ai generated stuff, idk why i keep trusting ai overview cus its wrong a lot of the time

brittle pasture
#

and the example posted by dreamygloom

hot oasis
#

Hi! If I wanted to reduce the prices of a shop by percentage..maybe like 25% off everything, is that possible? I know I can change prices individually, tho! Thanks!

crude plank
old edge
#

that's how I did it for replacing the slime defeat squish sound

uncut viper
#

its usually pretty clear when someone gets somethin from AI tbh "where/how did you get this" is just the polite way to get someone to say so SDVpuffersquee

golden spire
#

I remember the first time someone posted AI code on here,, we were confused at first and then eventually realised what was going on

royal stump
hot oasis
#

Oh okay I see!! So by default it's set to multiply, or it is for the shop itself want to edit, so I would change it to divide and alter the number?

royal stump
#

oh, and see game state queries for the Condition field, unless you want it active all the time
e.g. for 25% off on sundays:

"PriceModifiers": [
    {
        "Modification": "Multiply",
        "Amount": 0.75,
        "Condition": "DAY_OF_WEEK 0"
    }
]```
hot oasis
#

Got it! Okay thank you!

royal stump
hot oasis
#

Thank you thank you!! I'll test this out!!

old edge
#

the brave browser works good for searches

reef kiln
#

I had an idea for a mod but think it would take c#, so it may be beyond me. I want to make it so if you put a heater in the farm cave it can act like a green house. Can that be done with CP? Or is it c# territory?

remote flume
#

I replaced your stuff with mine, does this look right? I went n game and tried it but it doesnt replace the sound. I originally thought this was just to add your own new sounds.

#

could it be an issue with my audio file or something

golden spire
#

what does your smapi log say?

remote flume
#

i get no errors

golden spire
#

and are you sure you're editing the sound you want to edit?

remote flume
#

is axchop the sound for chopping wood

golden spire
#

you can type debug ps axchop in your smapi console to play the sound changed or not changed

old edge
brittle pasture
remote flume
#

yeah

old edge
#

but making the C# project isn't as hard as it seems.

#

it might take awhile to get it

golden spire
brittle pasture
remote flume
brittle pasture
#

that looks like your content.json is inside the assets folder?

#

content.json (and manifest.json) should be at the mod's top level folder

remote flume
#

its outside

#

weird vs visuals

brittle pasture
#

ah got it (the layers confusing me lol)

#

try running patch export Data/AudioChanges to see if your changes are applied in game

#

it should create a file in the patch export folder in the game folder

remote flume
#

can i do it in the main menu

#

does it matter

reef kiln
remote flume
#

if you can then i dont think my changes are being made

#

the patch export file is blank

lucid iron
brittle pasture
#

!log post your log?

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.

lucid iron
#

I don't think there's a good way to check if heater the object is in cave

#

You won't even need additional frameworks for this (as long as you are fine with getting an actual object during the purchase)

remote flume
#

where do i find the log

golden spire
#

!log

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.

remote flume
#

one sec ts taking forever to load

lucid mulch
#

tbh taking forever to a load is a small hint that audio changes might have worked

reef kiln
remote flume
#

no i mean the website

lucid iron
#

But shop you can actiononpurchase

#

To set mailflag

remote flume
ocean sailBOT
remote flume
#

oh i forgot

#

woops

lucid mulch
#

that log doesn't look like it even made it to the main menu

remote flume
#

should i load into my world

golden spire
#

shouldn't need to for the audio change

#

but I don't see your mod even listed

#

what's in your manifest?

remote flume
lucid mulch
#

a content patcher mod shouldn't have EntryDll and instead have the ContentPackFor block pointing to content patcher

remote flume
#

oh right

golden spire
#

and shouldn't be using a random manifest of some other mod

#

should make your own one

remote flume
#

wdym

lucid mulch
#

though looks like you did have a dll, so the smapi and cp components should be separate folders with independent manifests

golden spire
#

I misread, I thought you were copying a dll from another mod

reef kiln
remote flume
#

so make 2 manifests?

lucid iron
#

You aren't patching in a new map?

#

It's just EditMap map properties

golden spire
#

you only have 1 manifest

lucid iron
#

If u wanna add a lil heater thing have it replace some wall tile i guess

#

But no shroom boxes are machines, immune to map changes PecoSmile

remote flume
#

okay lemme grab the content patcher block rq

reef kiln
#

I'm not? Oh that makes sense. I was thinking of patching the whole map. But map properties seem easier.

golden spire
#
{
    "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"
    }
}
remote flume
#

preesh

#

pls work

#

im tryna eat food

#

hey it works

#

thanks guys i appreciate ur help

#

i probably be back some time in the future lmao

old edge
#

I tried using Of Dwarves in the map property for my map but yeah it doesn't work

#

because of the Space in the music id

old edge
#

I changed it to wizardsong instead

#

Maybe soon I'll make my own music

urban patrol
#

if i add a garbage can to my building in town, do i have to define a set of items it can give? i see the TileData has the name of whose house it belongs to, so what would happen if i used Mayor for example

lucid iron
#

theres a special garbage can data model

reef kiln
#

There is a wiki page for everything it seems. 😀

uncut viper
#

not mannequin data!

#

(i think)

#

fuck. there is

urban patrol
#

yeah i found how to add a new one, but wasn't sure if i had to make one or if i could just reuse one that's already defined in there if i don't care about it giving specific garbage

reef kiln
#

You can use a predefined one if you want. It will just have the liked items for whoever you pick.

urban patrol
#

okay awesome yeah i'm fine with that

#

in fact mayor even looks empty so that would ensure no specific items, if i'm reading it correctly?

#
      "BaseChance": -1.0,
      "Items": [],
      "CustomFields": null
    },```
calm nebula
#

I wouldn't use an existing key tbh

#

Just make your own

#

It also is used to track which trash cans a player has checked today

split anchor
#

Hi, I'm experiencing a bug in a map mod I'm making that has stumped me. It's a problem with the berry bush, which I added in the "path" layer. In my map, I had a berry bush next to the pink tree, then I decided I didn't want it and deleted the berry bush. But the berry bush still appears when I start the game up and select my character save "Sabrina". However, when I load another save file "Link", the berry bush is absent like it should be. What could be going on here? It seems like my "Sabrina" save is loading an older version of my tmx file, even though the older version doesn't exist. Pic #1 shows what my map looks like in Tiled (no berry bush next to pink tree). Pic #2 shows in "Sabrina" a berry bush next to the pink tree. Pic #3 shows in "Link" no berry bush.

uncut viper
#

things on the Paths layer like that are generated on save/location creation

#

they wont go away when you then remove the paths layer later

#

thats what Reset Terrain Features is for

split anchor
#

Oooooo!

cyan marsh
split anchor
static plank
#

how do you make a mod i need dean winchester

urban patrol
#

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

urban patrol
#

to make an NPC there are also a lot of good tutorials and templates out there

reef kiln
split anchor
#

is there an updated version of Reset Terrain Features on Nexus? The one there is too old and won't work

ocean sailBOT
#

Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).

ionic jewel
#

It only requires your steam username and password as secrets. If you need help understanding, I am glad to help you

uncut viper
#

while i will never use this bc it would be overkill for me if i had any feedback id say it seems kinda unoptimal to hardcode the SMAPI version it downloads

#

but maybe if you always remember to update it as necessary its fine, though forgetting once can cause some unseen headaches

ionic jewel
#

True; I think using the nexus API to check the current version might suffice

uncut viper
#

also, how does it handle steam 2fa

#

the mobile authenticator thingy

ionic jewel
#

At the time, poorly. you have to use your mobile device to authenticate, but there are ways to auto authenticate

#

I am researching on Steam TOTP to do so

uncut viper
#

i think when thinking about using the nexus api for smapi instead that might cause the opposite issue where you do want to set a specific version, bc you might be building against two different versions in two different branches, maybe, but im not sure if there'd really be a way to grab what version of smapi you built against without just writing it down yourself somewhere. so maybe it is just best, idk

orchid glade
#

I'm making a portrait replacement mod to replace an HD portrait with a vanilla sized one. The original mod loads the HD portrait without any code that accounts for it being HD, and I plan to EditImage that. Are there any issues with the fact that the FromFile is not the same dimensions as the target?

uncut viper
#

well there has to be something that makes it work in HD, so whatever that is will probably mess you up if you dont change that

#

that is assuming the other mod is even using Content Patcher for it

#

and not portraiture or something

orchid glade
#

It doesn't work in HD, as it is it just shows the corner of the portrait

#

And the user has to pull the portrait from the mod file and drop in portraiture to get it to work

#

It's just there's no regular sized portrait that get loaded first

uncut viper
#

oh. well just using EditImage might not work, the game might still calculate the size of things wrong and thus fuck up the portrait indices, but you might have luck Loading over it instead

#

though, i guess thatd make them potentially error... hm

orchid glade
#

I can use a load priority, right?

uncut viper
#

you can but you said they arent loading a regular sized portrait

#

do you just mean the image is not regular sized? or that they arent using Load at all?

orchid glade
#

They are using load, the code looks as it would if it were a normal portrait

uncut viper
#

i took it to mean they were simply EditImaging on top of a vanilla portrait or something to expand it

orchid glade
#

Just the image is HD size

uncut viper
#

ah, then yeha, a Load priority would probably work

#

just make sure yours is higher

orchid glade
#

And if theirs is exclusive? (by default, not priority specified)

uncut viper
#

then if EditImage-ing it to be smaller doesnt work i think you're SOL

calm nebula
#

Let's try an edit image first

orchid glade
#

Hmm it looks like I can't override that

calm nebula
#

Just try it

#

It won't be smaller

#

I don't recall how dialogue dozen work

#

But I will laugh if a 4 wide portrait strip works

uncut viper
#

it must calculate things based on width, right? since you can have one long row of portraits if you want

#

hopefully the image is a nice power of 2 in width and height then

calm nebula
#

Now please excuse me, I'm off to do laundry and slep because I be old

tiny zealot
#

i'm fairly sure that portraits used to be hardcoded in some way that required two columns, but no longer are

uncut viper
#

(can portraiture even do non-powers of 2?)

#

like can i make a portrait thats 367x412 in size

tiny zealot
#

it's just convention by now to do two columns, and usually it's more helpful/convenient anyway

orchid glade
#

I didn't realise they no longer has to be two columns, that might confuse things

uncut viper
#

its still better to use two columns in general bc following the convention people expect with no downsides to doing so is almost objectively better

#

if its for an existing NPC its super definitely better, bc doing otherwise fucks up coordinates for any editimages

tiny zealot
#

technically there's a downside if your NPC has 104 portraits and somebody wants to do a 256x256 HD version of it and exceeds their GPU's maximum texture height

uncut viper
#

i wouldnt call that a downside, either

#

i think if you have that situation, its better for people to Not have that situation

#

pls reign urself in

orchid glade
#

I'll try some things and see what happens ^.^

uncut viper
#

(all very /lh ofc)

orchid glade
#

You'll be pleased to know there are not 104 portraits !

tiny zealot
#

i am in fact pleased

late cobalt
#

anyone good video torotial

rigid musk
#

video tutorial for what

urban patrol
#

most video tutorials for making mods are outdated. you're better off reading the wiki

hard fern
#

If you could be more specific on what it is you need that would be great

rigid musk
#

(that's why I asked for what lol) there's most likely no actual good video tutorials out there but if we knew the subject we might be able to help :D

latent mauve
#

Nobody had any ideas on how to make NPC Map Locations not squish the Bookseller sprite, yeah?

brittle pasture
#

MugShotSourceRect?

latent mauve
#

Bookseller isn't an actual NPC, so it doesn't use a MugShotSourceRect

#

I think

rigid musk
#

does NPCMapLoc. do the Traveling Cart Lady? cause maybe you can go off of that? (sorry if this was already said I haven't been around for The Discussion TM)

blissful berry
#

its been a while so sorry if someone remembers me asking this before BUT do the $b and $e commands work within the gender switch one? for exmple, would i be able to go ${blah blah blah#$b#blah^blee bloo blah}$ ? or does adding breaks like that mess it up?

latent mauve
#

lemme find the previous code block that was pointed out to me. It looks like it draws from the town map, but the aspect ratio is wrong

calm nebula
#

The gender switch is processed first

latent mauve
#

It's grabbing it from Cursors_1_6 (the bookseller sprite)

#

the dimensions being weird is what's throwing me off

blissful berry
#

thank you atra!!

latent mauve
#
                     DisplayName = I18n.MarkerNames_Bookseller(),
                     LocationName = "Town",
                     CropOffset = 0,
                     Sprite = Game1.mouseCursors_1_6,
                     SpriteSourceRect = new Rectangle(181, 490, 12, 18),
                     SpriteZoom = 1.5f,
                     WorldMapPosition = mapPos
                 });```
#

That's the bit of relevant code in NPC Map Locations

devout otter
orchid glade
#

Ah! Interesting idea. I haven't used appearance yet, so that could be good to try!

devout otter
#

What mod do you want to do this for?

orchid glade
#

I'm also separately doing a translation and doing what I can to make sure it works in 1.6

#

How does Portraiture interact with the Appearance field?

devout otter
#

Portraiture just overrides everything.

orchid glade
#

Ok cool, so it wouldn't require any extra stuff if someone wanted to use portraiture to switch back and forward

devout otter
#

Mhm.

orchid glade
#

(between mine and HD portrait

#

)

devout otter
#

Oh, this mod still use the old way of doing NPC Dispositions. So if you wanted to modernize it for 1.6, you'd need to determine a new character data anyway.

orchid glade
#

Ah, ok. So do I like, null their disposition line and EditData in the new format? (I don't know much about NPC making let alone updating so learning on the fly)

devout otter
#

I don't think you'd actually need to null their disposition line. But yeah, EditData the new format.

orchid glade
#

Oh yeah the target doesn't exist anymore

devout otter
#

You can just copy the new format from one of the vanilla villagers and set the Appearance field with no Condition.

orchid glade
#

This is in Data/Characters right?

devout otter
#

Yep yep!

orchid glade
#

Do I need all the fields or can I leave out ones that would have nothing in them?

calm nebula
#

You know what

#

Patch export the asset

orchid glade
#

I will do once I've got something I can load up in game 😉

calm nebula
#

No, CP rewrites the old system to the new

#

You can just flat out patch expoet

#

Data/characters

#

See what cp edited it to

#

Then edit that

orchid glade
#

Ohhh I get ya

#

awesome, thanks!

odd ginkgo
#

is it possible to layer audio on maps? Like have a map be playing both ocean sounds and a music track?

lucid iron
#

yea if u use the tile data ?

#

jk there's only BrookSounds

calm nebula
#

Mmap feature in 3-2-1

lucid iron
#

nou

#

is this genuinely not a thing tho

gaunt orbit
#

There's features for that in my map toolkit thing

#

Both positional audio and separate music areas

#

The music areas thing is a bit funky though, I need to change how it works so it's less spaghettish.
Splitscreen music logic is horrible.

#

Maybe I just will straight up ignore splitscreen to simplify things

lucid iron
#

how does game deal with PerScreen here think

#

i figured u just hear main player

gaunt orbit
#

I wish

#

No, what it does is each screen instance has a field for requested track and track type, and then on the main screen only, it iterates all screens to see what tracks they want to play, and then using a combination of the requested type and some hardcoded priorities for specific tracks, it chooses the "most important" one to play, and if that's not the same one that's currently playing, it starts the fade out/in

#

And then of course there's the per-instance logic for determining which song that specific instance wants to play

#

It makes sense, but it's complicated and hard to work with externally

odd ginkgo
#

I was going to layer music here if possible but I'll be honest, the simple sound of the ocean is a certain aesthetic

rigid musk
#

I'm so excited for your mod oh my goodness

urban patrol
#

is there a way to give a quest/raise a mailflag to give a quest later, when a player has clicked on a TileData?

#

for example, there's a note on the counter, and when you read it, you get a quest

rigid musk
#

Hm.. I don't see anything like that with what's available outright

#

BETAS might let you do it though?

odd ginkgo
#

How does the game handle the original Mr Qi quest, where you put the battery in the box and a note falls out and starts that quest? Does it appear as a quest, or just tell you what to do next and you have to remember? I can't remember

rigid musk
#

those are individual tile data things iirc

#

I know the sanddragon one has its own specific thing

odd ginkgo
#

Ahh yeah, that makes sense, specific spots with actions

blissful berry
rigid musk
rigid musk
#

I do that with the honorifics that Qi uses as well as what he calls the player with my mod

urban patrol
#

hmm, where are Actions defined? could i edit that to make my own like the qi quest?

rigid musk
#

youd probably have to use C# to do that unfortunately

urban patrol
#

darn

blissful berry
#

or if they can be used in the default.json without doing so

rigid musk
#

OH with the whole uhh |token={{token}} thing?

#

because yes as well

#

{{i18n:Aos.FriendQiEventSW8H11|QiPlayerTitle= {{QiPlayerTitle}}}}

blissful berry
#

thank you! glad i checked instead of just pressing play and hoping for the best lolol

rigid musk
#

vibincat Happy to help :D

latent mauve
#

Depending on what you want to accomplish, you might be able to use Misc Map Actions & Properties (MMAP) and mushymato.MMAP_QuestionDialogue to open a question box from a TileData object with different additional actions based on the choices.

#

@urban patrol ^

urban patrol
#

i’ll check it out! worst case scenario it’s not even that important, i can just send a letter with a quest whenever lol

#

i thought it might be cute to lock a fishing quest behind a note in the butcher shop that says she’s running low on stock, and then you could go catch fish for her

#

WAIT LMAO what if i lock it behind fishing level 5 or something with the subtext being the farmer has caught all the fish and deprived the regular market of fish 😂

vernal crest
#

I changed the sprite source rect: SpriteSourceRect = new Rectangle(179, 490, 16, 18),

rigid musk
#

Aba saving the day again

vernal crest
#

It's something to do with the way the draw code draws the destination rectangle at 32x30px, which for the regular NPCs neatly doubles their 16x15px sprites. Because he's 12x18px, however, it more than doubles his sprite horizontally and then less than doubles it vertically. I fixed the horizontal thing by simply making his sprite source rect wider, but I'm not sure how to fix the vertical one without losing part of his hat or his beard.

The draw code in question: b.Draw(marker.Sprite, new Rectangle(this.mapBounds.X + marker.WorldMapPosition.X, this.mapBounds.Y + marker.WorldMapPosition.Y, 32, 30), spriteRect, markerColor);

#

As you can see from this very zoomed in view, his map icon has got some mixels going on vertically, like his very flat eyes and hat band. Compare to his actual sprite in cursors (second image).

#

It's far less noticeable in game than his width issue was and might be worth keeping to avoid cutting off part of his hat or beard.

rigid musk
#

Wide bookseller isn't real he can't hurt you -
Wide bookseller:

vernal crest
#

(My fix, by the way, is just in my own copy of NPC Map Locations that I forked - Pathos would need to add it to his version for it to be available to others.)

#

Just for completeness's sake, here is the zoomed in version of his map icon without my edits. Mixeled both horizontally and vertically (various bits of him - like the whites of his eyes - are 3 pixels wide instead of two).

gray bear
#

he looks more tired like this thonk

rigid oriole
#

He's tired of being stretched out

#

Let him compress

hallow prism
#

and then this event can do basically whatever (send a letter, give a quest, have the npc enter and complains about lack of fish)

orchid glade
#

When are assets re-loaded and patches reapplied? Specifically, if you add a new entry to gift tastes only when a certain event has not been seen, what happens when the event is seen - does the entry disappear from gift tastes overnight, or would you have to specifically remove it?

golden spire
#

that explains update rate

#

and how you can change it if required

#

but default is on day start

orchid glade
#

Ok, so to make sure I understand, when it says "update their fields", that includes checking whether a condition is met

#

And also, does 'update' start by setting the asset back to base game state (i.e. removing all the patches done the previous day), or does it just update and reapply patches on top of the ones from the previous day?

timber plover
#

what is the targetfield for the horse? is it farmanimals?..i want to try making randome skins for the horse ÖvÖ...i tryed horse and Horse but both say it doesn´t exist

#

i could find alot about horse modding to be fair >->

#

is it a pet? XD

next quarry
#

Would having {{ModId}} in the default.json work like this?

content.json like this

{
  "LogName": "Summit Dialogue",
  "Action": "EditData",
  "Target": "Data/ExtraDialogue",
  "Entries": {
      "SummitEvent_Dialogue3_{{ModId}}_Nino": "{{i18n:SummitEvent}}"
  }
}```

and then having this in the default.json like this
```json
//summit
 "SummitEvent": "Being up here... it's like the noise finally stops.\"/pause 700/speak {{ModId}}_Nino \"I always thought I'd feel alone at the top... but I'm not.\"/pause 600/speak {{ModId}}_Nino \"Somehow, you kept showing up. Even when I was at my worst.\"/pause 500/speak {{ModId}}_Nino \"I don't think I ever said it right, but... you saved me from becoming just a punchline.\"/pause 500/speak {{ModId}}_Nino \"And for once, I'm not scared of what comes next.\""
timber plover
#

nervermind i try this instead

vernal crest
lucid mulch
#

Also run the risk of desync between the locales and the events having different behaviour rather than just different text

next quarry
#

yeah I'll just put it in one long dialogue and don't to the pause stuff

orchid glade
#

If I want to add an entry (to a schedule), but only if the entry doesn't already exist, how can I do that? Is it some use of HasValue?

lucid mulch
#

Off the top of my head, I can't think of a way to do that in cp

orchid glade
#

d'oh

whole raptor
#

Maybe somehow with a querry?

#

Ah nvm, I was thinking about a token with a value

orchid glade
#

Oh well, it was mainly a failsafe for if the mod whose asset I'm patching updated, I wouln't overwrite it

lucid mulch
#

In general nothing in the asset pipeline is a token, and the timing that conditions run is subtly different to when the patch itself is applied

orchid glade
#

Do you happen to know the answer to the question I asked earlier?

lucid mulch
#

The asset pipeline is always strictly a singular load, and then a set of edits and then the assets ready to use

#

If cp or another mod wants to make changes after it's ready, the assets invalidated, and if it's a vanilla asset smapi will invoke the relevant vanilla code to request the asset again

#

Which will run the load, and then edits

orchid glade
#

My head spins a bit with the technical speak, but I think maybe you mean that it will 'unload' before it runs again? I'll give the specific use case:

lucid mulch
#

The old assets thrown in the bin and a brand new one is made

orchid glade
#

So an EditData adds an entry to NPCGiftTastes on the following condition: "When": {"HasSeenEvent |contains=9654908": false}

#

Once the event has been seen, that edit would not be made, but does that mean that the previously added entry will be deleted? (i.e. NPCGiftTastes reset to vanilla)

#

Or do I need to edit the entry to null if the event is seen.

golden spire
#

on day start it should be reloaded unless you set the update rate for it to be reloaded quicker

orchid glade
#

(I'm asking if 'reload' means what I think it means)

lucid mulch
#

so for every cp patch (includes included), they are either Ready, or Not ready.

At DayStarted (and if UpdateRate is set, TimeChanged or LocationChanged) the patches conditions are reevaluated.

if a ready patch becomes unready, or an unready patch becomes ready, cp will invalidate that asset, and cause the asset pipeline to run again, causing the load to occur, and all ready edit patches for that asset to evaluate

#

for an asset like NPCGiftTastes, no one is likely to be loading it, so the vanilla xnb will be loaded instead

orchid glade
#

Ok, so the change in condition triggers a complete restart of the asset

#

Cool, thanks for your patience with my lack of understanding exactly what each term means 😉

lucid mulch
#

the other way an asset becomes unready is if the tokens themselves aren't ready i.e the Relationship token isn't going to do anything on the main menu, so patches using that as a condition wont be ready and thus wont run during initial load, and only run once the saves loaded

#

HasSeenEvent actually is another example of that, you have neither seen nor not seen 9654908 if the save hasn't loaded yet, so the condition wont even bother running and the patch wont apply

orchid glade
#

As long as it runs at day change 🙂

lucid mulch
#

also since 1.6 you don't need the event to be a number anymore

orchid glade
#

Oh yeah, this is an old mod's event, I'm patching in a translation and a couple of updates for 1.6, so I was just trying to understand how the code works

flat sluice
#

Hi,
I'd like to ask - I'm adding an object that will be lying on the ground in an event I'm making.
On the wiki, there is a command addObject <x> <y> <sprite index> [layer]. X and Y is the upper left corner of the sprite, if I recall correctly (I'm adding Dwarf Scroll 2, which is X=16,Y=64). And then I'm lost - what is that sprite index, and what is that optional layer?

lucid mulch
#

sprite index would be the 1.5.6 naming of it, 1.6 calls it an item id, and [layer] is some depth offset thing

flat sluice
lucid mulch
#

dwarf sscroll II, sure

vernal crest
flat sluice
vernal crest
#

I'll edit the wiki page so each argument is explained more clearly.

#

Carrot face farmer

flat sluice
flat sluice
vernal crest
flat sluice
#

It is evident...

vernal crest
#

Haha that's okay xD

#

There we go, wiki entry edited

#

In case you were not aware, you're allowed to edit the wiki too. There are rules and you have to be careful that you pay close attention to detail (or your edits will get reverted) but it's open to anyone.

#

I'm always happy to be asked to edit the wiki in someone else's stead though because it can be scary and takes a fair bit of work to get used to.

flat sluice
#

Is it better to have 5 different events that are automatically triggered or 1 really big event?
(when you realize when struggling in event switches that it is not necessary to have more than 1 event)

flat sluice
vernal crest
#

I would recommend having different events that consecutively trigger just based on the fact that some commands appear to have very frustratingly far-reaching effects which means that when testing it's not always useful to break your large event into chunks that you recombine later because they can behave totally differently between chunk and part of large event.

#

Apologies for the terrible run-on sentence lol

vernal crest
flat sluice
vernal crest
#

The event that I did the other day is across three different maps but is just one event with two location changes. I did it in chunks and then had to redo several parts of it when I combined it because the event command behaviour changed when I joined the parts up.

flat sluice
stark spindle
#

Can I ask is there a list somewhere of all of the different commands you can do in an event? So far im just kinda figuring it out by looking at others.

vernal crest
#

Oh poor you! Yes, definitely use the event data page.

stark spindle
#

perfect thanks

flat sluice
vernal crest
vernal crest
#

Aba in the Campaign Against Precondition Aliases™️

#

I don't set preconditions until ages after actually writing and testing my events.

#

In fact, none of my events have preconditions at all right now. I will not be surprised if I actually forget to add them before release lol

flat sluice
vernal crest
#

Well since they don't affect whether you can use debug ebi, it's neither here nor there whether you have them for testing the script itself.

#

I am just not up to the point where I actually know what any of my preconditions are. Mine are going to be complex.

orchid glade
#

Sounds like it's cork-board and string time!

lucid iron
#

What if u don't have any preconditions and exclusively trigger them by spacecore

vernal crest
#

And then not be able to look up my own events with Event Lookup and/or Aba's I Can't Believe It's Not Butter?

lucid iron
#

Yeah it's spoilers

vernal crest
#

If someone wants to avoid spoilers they can just not use the spoilers mods