#making-mods-general

1 messages Β· Page 592 of 1

lucid iron
#

No

strong kite
latent mauve
#

A bare bones Character entry really isn't that hard to create.

lucid iron
#

You can animate map tiles if that's what you mean by walk animation

strong kite
torpid sparrow
#

can confirm i did 3 barebones character entries for an event

lucid iron
#

For events yeah temp actors can do same things as normal actor mostly

torpid sparrow
#

mainly bc it was easier than figuring out temp actors

lucid iron
#

Shouldn't need Data/Characters entry but you do need to load the sprite to Characters

#

Special prereq there

strong kite
#

oh shoot I guess this is where I also get to see if my placeholders have worked

#

hm.. okay so the Mudkip wasn't there.. Is this too bare bones? 😭

#

And I do have this which is the same as my Darkrai which does work

#

And I got no errors in my console

old edge
#

Has anyone Made peakychu mod yet?

candid dirge
#

How much coding do you have to know to make a fashion sense pack?

old edge
#

Not very much at all it’s a framework so the heavy lifting is done by the mod

#

Just have to do patch reload for testing purposes

candid dirge
#

Oh cool, I looked for a tutorial but couldn't find one

strong kite
#

right I guess I dont need the Mudkip to show up in the location, I can handle that with a map tile patch

latent mauve
#

CanSocialize being false is what makes so many of the other fields optional πŸ™‚

old edge
#

Oh

#

!fs

ocean sailBOT
#
Fashion Sense

Fashion Sense is a framework mod that allows modders to create static or animated clothing, hair, accessories, and shoes that can be accessed through a special in-game menu. To access this menu, players will need to obtain the Hand Mirror from Pierre's Shop. The framework supports multiple content packs and also adds the ability to save, load, and export custom outfits.

Mod Users: Install Fashion Sense as well as any desired content packs. Content packs can be found by searching Nexus, or for an interactive list, click here.

Mod Authors: Instructions, tutorials, and tips for creating FS content packs are available on the mod's wiki.

strong kite
latent mauve
#

Your NPC also won't spawn if there isn't a loaded Characters and Portraits sprite that matches, but that should spit out an error in the log usually.

#

(You can always use a blank portrait frame as a placeholder if you don't intend them to speak with one)

strong kite
#

Could I theoretically give them the same portraits as Darkrai?

latent mauve
#

you can quite literally do something like this, where it's the right size but empty.

#

(feel free to take that and use it if that suits you)

strong kite
#

I need to stop trying to get it to show up in game until I confirm it wont show up in a cutscene LUL

#

I also wanna make her sleep to coincide with the shop being open and closed, would that be two separate map patches or could I do it in one? Like overlaying the sleeping sprite

#

or I guess just how would I go about doing that

latent mauve
#

It would most likely be a second patch with a When argument for the desired time to change it (and an update rate of OnLocationChange). You could also use time change, but I avoid it because it can cause performance issues.

rich cliff
#

Quick question please. I'm doing a retexture of pathos tractor mod. Do I need to ask for permission to upload the mod or am I free to do so as long as I give credits? It says it's open-source on the Nexus page but I just want to be sure.

#

nevermind. it was answered in modded-stardew

strong kite
#

omggg what if i added a small mudkip sanctuary to ginger island where you can get a hat that's just a mudkip laying on your head

latent mauve
#

haha, I see the scope creep bug has bitten again

marsh reef
rich seal
#

I have made a whopping eight fish and one trash item today. Oddly enjoyable, though my pacing is bad lol. I'm having too much fun though.

strong kite
#

At least over other pokemon

strong kite
#

uhh no

marsh reef
#

revavroom would be good too

marsh reef
strong kite
#

for the record I'm doing mudkip cuz Mudkip is one of my favs and it's small 😭
Wooper could be good for that tho

#

and uhhh I don't think Revavroom is small enough or uh.. has PMD pixel art sprites-

marsh reef
latent mauve
#

Don't feel pressured into adding others, people can make their own mod to add Seaking or Wooper. πŸ˜›

marsh reef
#

😭 🀣 bro in no way am i pressuring him

strong kite
#

I.. am gonna see how big Seaking's sprites are in PMD

marsh reef
strong kite
#

I dont know why I thought Seaking would have a "walk" animation

marsh reef
#

🀣 he uh, he probably just floats..

strong kite
#

WAIT IT DOES- Why is it out of order in the files??

marsh reef
#

WHAT

rich seal
#

Fish can walk. They just flop their fins across the ground!

marsh reef
strong kite
#

Dang the basic sprite is 23 x 24

rich seal
#

I'm gonna turn Legend 2 into a coop animal now

marsh reef
#

"i gotta go walk my fish" gonna be a real claim

strong kite
#

Although.. quite frankly since this wouldn't be an NPC at all it would just be sprites in a map, the size doesn't matter LUL

marsh reef
strong kite
#

It would be funny but I probably wont do it. Mostly because idk if I'm gonna be making the Mudkip sanctuary to begin with. That's the kinda thing I want to decide once I've actually finished my goals

strong kite
#

That would require so many map patches and could possibly cause a lot of compatibility issues tho 😭

marsh reef
strong kite
#

Geodude canonically gets mistaken for a regular rock

marsh reef
#

well i think map patches are fine as long as its within the map, if you're tryna redo the whole thing then yea

marsh reef
strong kite
#

why would rock hide in grass when quarry exist heehee

marsh reef
#

🀣 hes just in the quarry but hes like a little too high definition

strong kite
marsh reef
#

rocks arent the sharpest πŸ€“

strong kite
#

yknow with the sheer metric TON of stuff I've added to this mod.. I feel bad for the people who previously contributed translations for the mod 😭
I'm not gonna ask them to translate everything new cuz that's such an unreasonable ask after TWO YEARS

void aspen
#

Mmm rock tree

#

First season grows rocks and coal, then does geodes and then some gems SDVpuffertbh

#

Year five and it's just prismatic shards

strong kite
#

Im not expecting this to work first try but it would be so crazy if it did

#

aw dangit

#

I MISSED A COMMA- THAT DOESN'T COUNT

void aspen
#

Doing something right first time is either magic or something is gonna appear after loading a save

strong kite
#

i forgot another comma in my translation file Tiredkip

#

5 actually

void aspen
#

You may wanna try visual studio

#

It auto indent lines and help with commas and brackets a lot

strong kite
#

I tried it, and I do use it just not as my main thing

marsh reef
#

Terraria gem trees πŸ₯Ή

void aspen
#

It's gonna be a craftable tree seed like that magic tree after some Abigails heart even

#

Since she loves eating rocks

#

She's gonna make a group project with Demetrius for you to test out

#

I forgot carpenters daughter name

marsh reef
#

Awwww don’t lock the cool tree behind something far off :(

#

I want funny tree at the start

void aspen
marsh reef
#

πŸ˜‚

void aspen
#

Or not at all

#

It's just a theory anyway

marsh reef
#

πŸ™‚β€β†•οΈ I see

strong kite
#

I think I'm back to figuring out how to add maps despite having a working and map patch already Waaa

#

sobs I've tried this, with it just as "Mudkip", and it with the full think including my mod id and none of it has worked

toxic topaz
#

I’m stagnating on making my mod PES_Hands this big map and all the tile crap is overwhelming ngl

ornate locust
#

It is fine to take a break

#

I took a lot of breaks, it got me through to the end!

scenic ferry
#

alright what am i missing -- no forage is spawning on my map, I have double checked that my map properties has ForceSpawnForageables TΒ² in tiled too

#

the items themselves exist just fine

strong kite
#

THIS IS WHAT I CALL PROGRESS allthethings

#

I dont know where the fin go all I know is it's on a different layer cuz the back wall there is also the building layer

#

Uh- that is- exceptionally incorrect-

latent mauve
#

It's pretty normal that the bottom most wall tile is on Buldings

#

You will want the fins of your Mudkip on Front

strong kite
latent mauve
#

Then try Front2?

strong kite
#

I should also eradicate George while I'm at it

latent mauve
#

You can turn off the shop portrait option in the Shop data, IIRC

strong kite
#

It's also not using the custom dialogue :(

royal stump
strong kite
#

I think I found why George is there, will see if I fixed it

royal stump
#

(I'm pretty sure the json parsing involved doesn't care about the capitalization for that type, though)

void aspen
#

Usually everything you can walk on is Back, everything you should collide with is Buildings, the rest is Front, a lot of tall things usually have first tile on Buildings and the rest on Front
Rarely things that are always above player is AlwaysFront

strong kite
#

Oh yeah also it seems like actions in Tiled cant use i18n data..

#

I'd bet I could use a series of trigger actions to get it to actually pull from the files but that sounds like so much work 😭

#

GEORGE IS NO MORE aSDVpufferparty

#

Still not custom dialogue though

void aspen
#

Tiled doesn't understand tokens

#

I18n too

#

So you need to add a string from maps entry with your i18n

#

And then use the entry id in tiled

devout otter
#

Yeah, you won't need series of trigger actions or anything.

strong kite
#

Orrr... not worry about this line being translatable heehee
-# (I'll figure out the string)

void aspen
#

It's pretty doable

strong kite
devout otter
#

(You could also add the action completely from the json, not from tiled)

#

Like so { "Action": "EditMap", "Target": "Maps/BathHouse_MensLocker", "MapTiles": [ { "Position": {"X": 9,"Y": 24}, "Layer": "Buildings", "SetProperties": {"Action": "Message \"BathHouse_WomensLocker.3\"",} }, ], },

strong kite
#

If I understand it right, will this work?

devout otter
#

Might want to make the key more unique, but that should work.

tiny zealot
#

StringsFromMaps is a global shared resource so you should be putting your {{ModId}} in your keys there

strong kite
#

Right I can add the mod id thing

scenic ferry
tiny zealot
#

you'll have to spell out the mod id in your map/tile properties (if you're baking them into the tmx in Tiled) but such is life

strong kite
#

Oh yeah also I don't think adding the fin to Front 2 worked?

void aspen
#

What's with the din

#

Fin

strong kite
#

And also Idk why the custom dialogues aren't working-

devout otter
#

You miss one more layer to the dialogue.

strong kite
#

aw crap the Id?

devout otter
#

Example "Owners": [ { "Name": "None", "Dialogues": [ { "Id": "Default", "Dialogue": null, "RandomDialogue": [ "{{i18n:Mudkip1}}", "{{i18n:Mudkip2}}", ], } ], }, ],

strong kite
#

Ohhh

#

hm.. so I clearly didn't do that right

#

OR that

#

You were always broken

#

Ok I figured that out

royal stump
# scenic ferry alas, no dice - checked patch export, it seems like its registering? and yeah iv...

So apparently, the forage system requires you to use the tile property Spawnable: T on the Back layer to allow that forage to spawn there. It might already be attached to some tiles on your tilesheet, but if not, you can add it there or add them manually around the map.

If that's not the issue, you could make sure it's not just missing its chance by temporarily increasing these fields on your location entry:

"MinDailyForageSpawn": 99999,
"MaxDailyForageSpawn": 99999,```
(They default to 1 and 4, and Stardew's spawn logic is often "pick a totally random tile, try again if it's invalid, and give up after X tries".)
strong kite
#

How do I get this to run the string?

royal stump
#

tile properties can't directly see your i18n or CP's tokens, so you'd probably need to add that in its own EditMap rather than directly on the map file

strong kite
royal stump
#

there's also Action | Message <key from Strings\StringsFromMaps>, which might be similar and let you pre-edit that file instead

devout otter
strong kite
#

Alright so something tells me that's a pretty good shout if both of you are saying it OMEGALUL

royal stump
#

(ah, that was already the plan, now that I read up SDVpufferheart)

strong kite
#

IT'S SO CLOSE Waaa

torpid sparrow
#

im uhh 80% sure

#

Message "Tntdoveetc"

#

try that

strong kite
#

wait... oh my god I'm actually so stupid with the fin....

devout otter
strong kite
#

The coordinates start from top left to bottom-right, isn't it...

#

and not bottom left to top right...

torpid sparrow
#

uhh yeah

strong kite
torpid sparrow
#

0 0 is top left

strong kite
#

So that means this next test should mean i'm done if I did it all right

devout otter
strong kite
#

Speaking of, this one is fixed

fierce vault
#

muuudkip,

#

!

strong kite
#

However this one is not

devout otter
#

Wait.

strong kite
devout otter
#

Shouldn't it be TntDove.PBB_MudkipSleeping

strong kite
#

is.. it not?

#

WAIT-

devout otter
#

(Shouldn't need the " too)

strong kite
#

OH MY- AAAUAUUGHHGH

#

I'm actually gonna crash out 😭

#

That's what I get for copy and pasting what you sent instead of just editing what I already had down heehee

devout otter
#

Sorry. πŸ˜”

strong kite
#

Nah It's alright LUL

#

It's funny if anything

#

Bro I am NOT looking forward to the like several other maps I've planned to add 😭

#

And patch

devout otter
#

So she's also the shop right? So there are days when she's sleeping (with this map patch) and there are days when she's awake (with OpenShop map patch)?

brave fable
#

oh it's fine, you've made the mistakes already. it's smooth sailing from here

strong kite
patent lanceBOT
strong kite
#

And I've got that figured out already. Maybe not efficiently but in a way that works

devout otter
strong kite
#

then again I didn't test it closing back down for the day

#

also I forgot that I wanted to make an event with this critter but that sounds like tomorrow me's problem LUL

rich seal
#

Well that's an odd issue to run into. How do I made it drop Legend II flavored Roe? I tried the following item query, which works for fish ponds (hooray weird wines and such), but apparently not animal products? Maybe I'm doing it wrong?

            {
              "Id": "Default",
              "Condition": null,
              "MinimumFriendship": 0,
              "ItemID": "FLAVORED_ITEM Roe (O)900"
            }
          ],```
lucid iron
#

u cannot

#

use extra animal configs

brittle pasture
#

yes animal drops still use plain ol string item id

rich seal
#

Bah, I wanted to avoid extra dependencies. I'll consider that or give it another item instead lol.

brave fable
#

has clicking a tool hotkey in Tiled while the tool is currently selected always selected the previous tool. i am losing my mind

modern saddle
#

does anyone here know how to make mods and want to teach a person who has no idea how any of it works except making maps for fun πŸ˜†

round dock
#

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

modern saddle
#

(im freaking dumb)

round dock
#

!tiled i believe

ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

round dock
#

!unpack

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!

modern saddle
#

i mean i figured out tiled

#

but the rest im hopeless

hard fern
#

Best to read the guide on making maps

round dock
#

Feel free to share your code and explain what you need help with, lots of mapmakers in here who can extend an extra help SDVpuffersmile

hard fern
modern saddle
#

oh thats my fault then

#

idk how to code

hard fern
#

Welp

#

Time to learn

modern saddle
#

too bad its too hard

#

all i can do is maps

#

ill learn when its not 1am

brave fable
#

you'll find a lot of people here manage to make mods despite being dumb, speaking from experience of course

hard fern
#

: βœ‹

round dock
#

Bluebs in their ami era

hard fern
#

I thought blueberry was always ami

#

Both blue

brave fable
#

the ami era lasts as long as i have server-specific pfp πŸ™‚β€β†•οΈ

hard fern
#

Why are your amis always munching

round dock
ocean sailBOT
#
brave fable
#

survivorship bias

hard fern
#

Is it just me or is the text at the bottom kinda crunched

brave fable
#

the strong amis eat the weak

hard fern
#

Ah, i see.

modern saddle
#

yippie

#

at least im not the only one </3

#

is coding for stardew valley different then regular coding or like the same

brave fable
#

depends what you're doing! just adding a map to the game is very simple, adding new gameplay mechanics is very complex

#

best not tackled at 1am either way

modern saddle
#

yeah true

brave fable
#

50% of all mods are made for Content Patcher, which just takes 2+ simple JSON files to add your changes to the game

#

there's tutorials for general JSON and writing JSON for CP specifically all over the place

#

!json maybe

modern saddle
#

i mean the only thing id have to learn is how to make a character go from somewhere on the regular maps to this new map and to have 4 things they intereact with that say some sorta subtitle

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.

brave fable
#

not very useful command

#

sounds quite simple, you'd need a simple NPC tutorial, then assign them a schedule + schedule animations + schedule strings when they're ingame

modern saddle
#

actually do you guys know about foliage, like wood rocks and fiber.. like should it be on the path layer or buliding layer.. 😭 i assumed building layer

brave fable
#

if it's on the Paths tileset, it should be on the Paths layer

modern saddle
#

i guess i assumed that it would be somewhere else

#

is it terrible if i did this

hard fern
#

i mean looks... fine, just maybe raise paths above buildings

#

since otherwise your bushes and grass and trees will be covered up

#

...... i think?

#

πŸ˜…

modern saddle
#

if i move them all the other stuff is hidden

#

the path is like the floor i believe

hard fern
#

nope

modern saddle
#

you walk on it

hard fern
#

thats what back is for

modern saddle
#

i guess im making another back

#

too many layers

#

probably a good map huh

hard fern
#

back = stuff the player walks on/stuff that gets layered behind everything else
buildings = stuff with collision, like walls or furniture objects
front = stuff that gets layered above the player
alwaysfront = stuff that will always be layered above everything else

paths has all the weird stuff like debris, breakable trees, grass, bushes, lights...

modern saddle
#

ah

#

at least it was an easy fix

#

its a good thing that i fixed my layers πŸ™

#

now that i understand how they work properly 😭

hard moat
#

So I published a couple mods and I wanted to get them up on the SMAPI compatibility list, but github scares me, can anyone give me a hand with that please? πŸ™‚

void aspen
#

I wonder, is there any point of having object (purple) layers for anything but Back and Buildings layers

#

Like, considering how they work and stuff

void aspen
brave fable
void aspen
#

Is there any example for object paths?

#

I think I saw something like that one day but I don't really remember

#

And I'm not sure if modding maps mentioned it

brave fable
#

in short, currently they're used for prebuilt cabin player order and advanced tree spawns

void aspen
#

Oh!

#

Right, I used it myself, but I forgot

#

Yeah that make sense, since there's these house icons

brave fable
#

surprisingly it's fine to use spaces in numbered layers, i'd just checked since i wasn't sure how they're parsed but all of these are functional:
Buildings1337
Buildings 1
Buildings-999
Buildings +10

void aspen
#

I still wonder how - and + are affecting order

brave fable
#

- draws the layer before others (i.e. underneath), + or none draws it after (i.e. on top)

hard fern
#

the way normal math works i guess

brave fable
#

the greater the number in each direction, the further it goes

void aspen
void aspen
#

I'm not a big fun of adding too much numbered layers, so I usually try to fit in 2-3 layers max

hard fern
#

probably bc there's no real use to use + since doing Buildings+5 gives the same result as Buildings5

brave fable
#

i usually try to use +1 at most, but occasionally Something happens and you end up with AlwaysFront5

hard fern
#

i think ive only ever gone up to 2 extra layers

void aspen
#

I kinda wonder about numbered building layers

hard fern
#

not many things i'd need More Layers for

#

unless im doing crimes.

void aspen
#

I suppose they work like Front but without this one tile offset thing

brave fable
#

all numbered layers are purely cosmetic, will be ignored for collisions, and will use no tile properties

#

including footsteps, plantability, etc. all of them

hard fern
#

numbered buildings usually i find works for tables, since even if the player gets layered above them, not like they're gonna walk on the table. or wall decor when Front is already occupied

#

basically places where i just need things to look good

void aspen
#

I go for front and sometimes for Buildings 2 too

#

I just do things one way and then they all look mislayered in game

#

Especially front getting in the way a lot

brave fable
#

useful for adding depth. as you'd expect for Layers

void aspen
#

You can add folders huh

#

That's interesting

brave fable
#

incidentally folders/groups, image layers, and layer offsets are unused by the game, like most Tiled features

void aspen
#

Parallax being unused is such a pain

#

But eh, it's still one of the best softwares

#

Not like I know any more

brave fable
#

it'd be nice to see these usable but ultimately if the base game isn't using them then it isn't a priority. it'd be a wild mod that added these features in full

#

not sure if it's even feasible given it'd likely be targeting xTile, i haven't looked into that at all

hard fern
#

hmm seeing all that bamboo gave me an idea

brave fable
#

eat bamboo

hard fern
#

well yes but

void aspen
#

I think tmx file does include info about parallaxes if checked in notepad, it's just the game not using it

#

I suppose mods can check that file info somehow?

brave fable
#

yep, Tiled lets you save that data into your map, but the game (via xTile) simply doesn't read it

void aspen
#

πŸ˜”

brave fable
#

as far as i know mods never see that data, xTile takes what it does and gives them the result

#

but then there's various mods that spoof the same effect through their own data models for you to fill in, maybe MMAP is one

#

and of course if you write c# you can just create your own Background class that does exactly what you want

void aspen
#

Interesting

brave fable
#

or for a more blunt-force approach, add a custom type location and override the location draw method

void aspen
#

I'm way far away from c# for now

brave fable
#

oooor harmony patch draw and do whatever. there's plenty of ways of doing the same thing

#

aha an expert

lucid mulch
#

Remember that stardew never sees the contents of the tmx, smapi will load it first and then translate the contents to the xtile data model

brave fable
#

ah so pretty much as i guessed. i must be the expert

lucid mulch
#

The tile flipping feature smapi does by encoding that as tile properties and has render logic to read that and apply the effects

lucid iron
rich cliff
#

I have the attention span of a wet noodle trying to focus on this making mods procress SDVpufferpain

barren tapir
#

How would one go about patching the animal menu tab?

lucid iron
#

What does that mean exactly, the game menu?

strong kite
#

Alright so I have a general idea for how I want to have my event start, but I'm not sure what would be best for triggering it. I might just have it happen the first time you enter Ginger Island West but since it takes place on the beach it feels a little weird to have it happen while you're over on the far right of area. Should I just not worry about it?

#

Since the event is also meant to be kind of a hint towards the golden walnut in the shipwreck, I'd like it to happen ASAP. I guess I could tie the Mudkip being there to after you've seen the event? But.. I kinda like the idea of her being there from the beginning

verbal glacier
#

Do you just mean that you enter from the right but the event puts you on the beach? Cause if so that's alright, or you can just show the Mudkip and not have the farmer in the event as more of a look ahead

strong kite
#

My thought was that as soon as you enter Ginger Island West for the first time (which would be from the right I believe) the event would start in which the farmer is walking along the beach.
It would be just a visual thing and you'd be back in the top right after the event but that feels a little weird to me lol

fossil osprey
#

many events do that, it's alright

strong kite
#

Alright HeartMail

#

I might still need to worry about the randomly spawning mussel rocks? Could those interfere with the event?

#

I guess I could do what I did with Cindersap Forest if that's the case heehee

barren tapir
lucid iron
#

I'd just patch receiveleftclick there then

#

The class was something like AnimalPage iirc

barren tapir
scenic ferry
#

(Also sorry I fell asleep)

#

im still very rusty with Tiled so it would not surprise me at all if im doing something silly or missing an entire wiki page or something

#

it seems like everybody uses spacecore or FTM or something when theyre dealing with forage spawns here, so maybe ill just do that, though i was hoping to limit dependancies as much as possible

fossil osprey
#

use spacecore, everybody already has it as a dependency already x)

scenic ferry
#

oh, I also tried adding (0) to the forage Item ID area and that has not fixed it SDVpufferwaaah

scenic ferry
#

leave it to me to always be finding random things that be breaking on me

fossil osprey
#

understandable ^^

scenic ferry
#

first the ClosedMessage shenanigans now this

summer spoke
#

I was thinking of what it takes to trigger my mod. Is waiting for the bus to be unlock making it a bit too hard?

#

I want to make a demon slayer mod and was thinking that they can create their own town

verbal glacier
#

the bus as an unlock conditions is certainly not too hard

summer spoke
#

great, thank you

fossil osprey
#

with how important the desert is, it's not a farfetched goal

rich cliff
#

eat this yummy sammich chat

#

oh wait wrong chat

ornate trellis
ornate trellis
#

im baffled

scenic ferry
#

once again good to know im at least not the only one confused lmao

#

i am, evidently, a master at finding things that by all accounts should be functional

ornate trellis
#

have you tried taking out the season stuff or making the chance 1 to see if theres a bit that might be done wrong?

scenic ferry
#

I can certainly try
Would you be open to sharing yours so i can compare?

patent lanceBOT
craggy goblet
#

You're welcome btw, this felt way too relatable XD

scenic ferry
#

lololol ty

strong kite
#

omg it's so nice to have the Mudkip NPC just f u n c t i o n i n g in the event without having to debug it at all

scenic ferry
summer spoke
#

Can I make a requirement for seeing a cutscene something specific like making it happen five days after seeing another cutscene first?

strong kite
fossil osprey
#

I think you can by doing some shenanigans of mail flags and conversation topics

strong kite
fossil osprey
#

but yeah, make sure you make things be at least a duration

summer spoke
#

Right, okay, but if there's a chance for it to be missed, maybe I should think of another way just to be safe. Thank you

strong kite
fossil osprey
#

As long as you don't make it a hard requirement, like "you need to trigger this exactly five days after the event" and instead make it "at least five days", then it won't be missed

strong kite
#

What you could do is make the requirement that you DON'T have a conversation topic that the last event gives you, and then have that conversation topic last 5 days. So after the 5th day you no longer have that conversation topic and the next event can trigger

summer spoke
#

Right, okay, I'll keep that in mind. Thank you for the advice and help

torpid sparrow
#

Conversation topic is ur best bet

#

Other than c#

#

I hate testing cts

strong kite
#

In the event file, that would be something like
"{{ModId}}_(Your Event Id)/GameStateQuery !PLAYER_HAS_CONVERSATION_TOPIC Current {{ModId}}_(Conversation Topic You Set)/"

#

Sorry if you already know how you'd implement it, I'm just excited to actually be able to help around here cuz this is something I know HehSweatCloseup

torpid sparrow
#

Unless it’s a vanilla event

strong kite
#

What does traction mean in this case?

torpid sparrow
#

Trigger action

strong kite
#

Ohh

torpid sparrow
#

I actually default to trigger action

#

Traction*

#

Omfg now I’m getting mixed up

#

Anyway

#

Oh wait nvm I see what u did

#

I’m pretty sure there’s an event precondition specifically for conversation topic

#

That isn’t a GSQ

#

It’s ActiveDialogueEvent

strong kite
#

But can that detect when you DON'T have it?

torpid sparrow
#

Yes

#

Same as others

#

!ActiveDialogueEvent

strong kite
#

Oh. Well alright then LUL

outer viper
#

Hey, possible long shot. Been making a mod and want to see if there's a way people have found to make a custom item non-tradable (to other players). The pop up can be a bit annoying prompting me to hit yes or no.

torpid sparrow
#

I just did that for Tilly so it’s fresh on my mind SDVpuffersquee

torpid sparrow
#

My gut says no

#

I assume player interactions are different to NPC ones?

summer spoke
#

That kind of seems complicated tbh, or maybe I'm overthinking, do you have any suggestions on requirements that'll make it so it doesn't trigger right after one another and gives time for the story to play out?

torpid sparrow
strong kite
#

That.. is the system that stops it from triggering one after another?

fossil osprey
#

the GSQ is really not that complicated, it's quite a normal thing to do

torpid sparrow
#

Or are you using a vanilla event as the first step?

summer spoke
#

Yes, my own event. I want the Govener to talk to Lewis about a new town that was being made and then talk to Lewis again about the town's growth, but I want to give it a few days to make it "realistic".

burnt dagger
#

Would anyone be willing to have me commission a mod which shared perfection among multiplayer in stardew.

Ex: no one has to complete an entire category themself, one person can get 50% and another 50%?

torpid sparrow
ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your ideaβ€”modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

torpid sparrow
#

You’ll want to add

  1. A conversation topic command in your first event. Set the number of days, in this case, 5.

  2. In your second event, when you’re setting the conditions for it, put !ActiveDialogueEvent conversationtopicname in it, and you’ll be good

summer spoke
#

I'll copy and paste that, thank you for the help, I really appreciate it

torpid sparrow
#

For the precondition and the event command

summer spoke
#

Right

torpid sparrow
#

Setting it up is not the hard part it’s the testing that is annoying SDVpuffersquee

strong kite
#

Oh god wait why is the mudkip a breather and why does it make its head pulsate 😭

fossil osprey
#

you can disable the breathing animation

strong kite
#

I know, it just caught me off guard LUL

fossil osprey
#

oh, alright x)

scenic ferry
#

forage feels like it should be so simple
Like why can i get multiple npcs working, new machines, the whole map, and then
no forage

outer viper
placid plinth
#

i making a magic mod , any feedback or suggestion?

for now it’s just when you reach 2 hearts with the wizard he sends you a letter giving you a recipe for a workbench, there you can craft staffs and crystals (ammo) which works similar to slingshots

fossil osprey
#

oooh nice
If you want to push it further, you could probably look into using the Mana Bar API mod to replace ammunitions

placid plinth
#

I like that idea, maybe for more advanced staffs (for now i only have 2, one which doesn’t use ammo, just gas cooldown and other stronger but has ammo)

fossil osprey
placid plinth
#

thx

fallow musk
#

why do debug commands not work for a subset of SVE characters?
I get
debug friendship Lance 2500
[game] No character found matching 'Lance'.

even though ive warped to caldera and watched the scene

hard fern
#

Might not be

#

(generally sve characters are just their display names but there's some exceptions, so better safe than sorry)

timber pilot
#

how do I format this?

#

I added reverse slashes

#

I hope it works

fallow musk
#

Lance is missing and spawning Scarlett spawns a 'ScarlettFake'

hard fern
fallow musk
#

ill prob have to play to unlock these and save the game as a testing file

hard fern
#

Just getting lance in your social menu should be enough, probably

scenic ferry
torpid sparrow
#

How do you unlock lance again

hard fern
#

Since presumably the reason the debug command fails is because he's not a valid character for socializing yet

torpid sparrow
#

Something about adventurers guild?

scenic ferry
#

dont you have to make it to the ginger island volcano for lance ??

torpid sparrow
#

Oh yeah idk

#

Probably

hard fern
#

I don't remember if that actually unlocks him as a friendable character though

torpid sparrow
#

Damn lance is late game I didn’t realize

hard fern
#

Like existing as an NPC and having a friendship meter are different

timber pilot
#

what are the values that can be put on loop and flip?

torpid sparrow
#

It’s a Boolean

#

Both Booleans

#

True and false

timber pilot
#

ok thanks

scenic ferry
#

i feel like im losing my mind

#

okay uhhhhh what else can I try

marsh reef
scenic ferry
#

make forage spawn on custom map

#

it refuses

marsh reef
#

You coding it urself?

scenic ferry
#

i mean just with cp but yeah

marsh reef
#

Wdym

#

How much help have you sought from esca

scenic ferry
#

much

marsh reef
#

Bc ftm works on custom maps

#

Hmmmmmm

scenic ferry
#

not using ftm, trying to just use vanilla system

marsh reef
#

Just like, json? Or

scenic ferry
#

yeah

marsh reef
#

Oh, is that possible? πŸ€”

scenic ferry
#

i mean, location and map wiki implies it is?

marsh reef
#

I thought it wasn’t and that’s why bro made ftm

marsh reef
scenic ferry
#

whole section in Location Data on forage that I set up with my custom forage
And threw a horseradish in there to see if vanilla items would spawn but no dice

scenic ferry
#

chance out of 1
So by all acounts it should be guaranteed to spawn

marsh reef
#

Oh I see, you’ve tried default items too?

scenic ferry
#

yep

marsh reef
#

Oh wait do you get an error?

scenic ferry
#

nope

#

did a data/location patch export and everything appears to be loaded properly

marsh reef
#

Turning on pc one min :3

scenic ferry
#

o7 ty

marsh reef
#

im wondering if it needs to be in the same order, and if theres more things you're missing that are required like "Season" seems like it could be pretty important πŸ€”

scenic ferry
#

i had seasons in there before, but I can try to re-add it

timber pilot
#

why is the farmerr not moving during tje cutscene

marsh reef
latent mauve
#

Are you trying with a brand new save?

scenic ferry
#

have a couple times

#

most my checks i patch reload, sleep a few days, check the area

latent mauve
#

Just ruling things out

marsh reef
#

i feel like its easily likely that you're missing some required sections so its just like, ..eh nah

latent mauve
#

Does your map have the Outdoors property?

scenic ferry
marsh reef
#

πŸ€” as the only foragable there? or with the others?

scenic ferry
#

with the others i put in

#

but i can try on its own ig

marsh reef
#

πŸ™‚β€β†•οΈ i personally would

latent mauve
#

FYI: The T^2 on the wiki is pointing to a footnote: "The T value (short for true) is conventional, but any non-empty value will work too"

#

So you don't need the 2 in your property string

#

ForceSpawnForageables is also meant for indoor maps/ maps without the Outdoors property

scenic ferry
#

no dice on getting rid of the other forageables - should I try getting rid of ForceSpawn? Might as well

marsh reef
#

i imagine that could possibly end off the forage inquiry

#

with just nothing there

latent mauve
#

Forageables is noted on the wiki as a chance and combined with the Default entries

scenic ferry
#

tried adding all the vanilla info after forage, and removing forcespawn - no dice ;-;

marsh reef
#

hmmmmm

latent mauve
#

So you may also want to bump your max Forage amounts for testing to improve your odds of seeing it

scenic ferry
#

i did earlier all the way up to 999

#

along with bumping the min

latent mauve
#

You did MaxSpawnedForageAtOnce while testing also?

scenic ferry
#

yep

latent mauve
#

(999 seems excessive, I probably would have only tried a cap of 50 or so personally, but I don't think that would be the problem)

#

I haven't had any issue getting the default forage to spawn on custom maps, but I admittedly haven't tried to add new items to that list that were not in the default.

scenic ferry
#

Im just puzzled as to why I cant even get default to work

latent mauve
#

And I tend to use vanilla maps as a base so that all the relevant properties exist in Tiled

scenic ferry
#

Could you take a peek at your tiled map/tile properties and see if theres anything missing in mine or something?

latent mauve
#

Sure, let me actually move to a computer and boot things up, I have been troubleshooting through my phone as I wake up, LOL

scenic ferry
#

LOL all good

#

im tempted to just grab FTM, but I worry that if its not working as vanilla, adding another mod into the mix isnt going to fix it

latent mauve
#

Gonna pull up my early/no-longer-in-use Rito Roost map since I know I was fighting with forageables spawning on the sky before (had to fake a mountaintop sky before panoramas were possible with MMAP)

royal stump
#

feel free to @ me if you need help with that, at least SDVkrobusgiggle I'm unfortunately not very familiar with the 1.6 base game forage stuff

#

and re: earlier, some elements of it like that Spawnable tile are relatively opaque, so the wiki might be missing it; someone mentioned it in a search, and the code seems to want it, but I'm not 100% sure

scenic ferry
#

makes sense, I totally will!
Might take a peek at it regardless, since I want my custom area to feel, idk , alive , and I imagine FTM could make other cool stuff possible

latent mauve
#

okay, so this is all my custom map had for map properties:

#

And I know it's the right one because I have a rather aggressive block of NoSpawn tiledata objects on the sky SDVkrobusgiggle

#

(you only have to see floating horseradish once to realize, uh, that's probably not good)

scenic ferry
#

huh, the wiki says not to use season_Objects ?

latent mauve
#

And I didn't set any forage rules at all, so the default forage rules were applying only.

#

Like I said, I did a copy of a vanilla map, so those are from the base map.

scenic ferry
#

fair enough

latent mauve
#

not sure when that change to the wiki happened or what precipitated it

#

It does say not to use them for seasonal objects, so they may still be used to spawn the Default?

#

either way, it's more likely to just not do anything based on the wiki

scenic ferry
#

sounds like it

royal stump
#

those flags seem to only be checked during GameLocation creation, in C# terms, so it probably spawns them at rather arbitrary times when the map is regenerated (at least in 1.6)

latent mauve
#

makes sense to me

royal stump
#

or only on spring 1 in practice, etc, I'm not sure about the whole flow of that with multiplayer/saves involved

timber pilot
#

I am once again asking for help with moving the farmer during a cutscene

latent mauve
#

I think the <season> 1 timing is accurate for the seasonal object fields, based on my testing previously.

scenic ferry
#

yeah I think im just going to bite the bullet and transfer to ftm
I dont know what wizardry is happening to the vanilla forage but... im kind of at a standstill here, so if i want to do anything productive i feel ive gotta move on haha

royal stump
latent mauve
#

FTM is a good framework, I'm sure you'll find plenty of extra reasons to use it. πŸ™‚

timber pilot
#

of course it was a typo

latent mauve
#

(it's incidental, but I still find myself missing the whereami command when I am playing a save that doesn't use FTM)

royal stump
#

there's debug ppp nowadays for the tile info, if it helps SDVkrobusgiggle
log.Info($"Player tile position is {Game1.player.Tile} (World position: {Game1.player.Position})");

#

ig map name isn't there, though

latent mauve
#

Yes, but whereami is locked in my brain, haha

royal stump
#

fair, that's probably one I'll have to keep as-is if/when I push other stuff into a CP-style ftm <actual command> set

latent mauve
#

also the WeatherYesterday, WeatherToday, and WeatherTomorrow conditions are lovely.

royal stump
#

oh right, I should probably generalize that into a GSQ in the 2.0 branch SDVpufferthinkblob
(the "tomorrow" in particular iirc)

timber pilot
#

I have another issue

royal stump
#

been hyper-focusing on monster dev for a while & need to make notes about that stuff now

timber pilot
#

is it the capitilisation

latent mauve
#

I think so

#

double checking

#

Yes

royal stump
#

yeah, ig events specifically look for farmer, my bad earlier

latent mauve
#

Farmer is a potential NPC/character name, farmer is the player.

scenic ferry
#

oh, quick question as is
the readme has a section on making a new mod specifically for FTM - Do I make that as a side mod to my CP mod?
IE:
Mods / Tales of the Aether Glade
[CP] TotAG
[FTM] TotAG

royal stump
#

yeah, currently FTM requires it own content pack like that, it's not a Content Patcher mod

#

(some in-dev 2.0 stuff is controlled by CP, but not ready yet)

scenic ferry
#

cool, just double checking! o7

#

havent done that before but it seems well doccumented

royal stump
#

the main thing to watch out for is that CP's {{tokens}} don't work in FTM fields, though you can do "when" conditions in one specific "CPConditions" one

#

and no config.json support, I suppose, that comes up occasionally

scenic ferry
#

ah good to know! possibly silly question, does that include stuff like {{ModId}}_ ?

royal stump
#

yes, that'll need to be written out manually

#

the FTM pack will need its own manifest and separate ID, in any case

#

e.g. one of my mods with both has "UniqueID": "Esca.PollenSpritesFTM", for the FTM pack and "Esca.PollenSpritesCP", for CP

scenic ferry
#

sounds good
I'll probably keep the id as an abreviation then, like, CodysOasis.FTM_TotAG

royal stump
#

(at some point I may stop calling it Farm Type Manager on mod sites anyway, since it's been an unrelated spawn framework for a long time SDVkrobusgiggle)

#

the mod's own ID is stuck with that, but packs can use anything

empty owl
#

would be bad if i add a mod that makes robin sell clay? 😭

verbal glacier
#

there already is one

severe cairn
#

i mean with all the clay we sell her it makes sense someone would think of it lmao

empty owl
#

is just that i would feel bad cus it's like cheating

verbal glacier
empty owl
#

u thought i were there-

#

nvm

#

xDDD

verbal glacier
#

? no, I mean your question is more suited to be asked over in modded stardew

barren tapir
#

How would you have a shop give you a special power instead of an item (e.g., how Qi's shop gives you the keys to the town)?

autumn tide
#

hmm you can set TA upon purchasing an item iirc

scenic ferry
autumn tide
#

could also buy a consumable item that can be consumed and consuming it gives you the power?

barren tapir
#

Perhaps....

UGHH, WHY IS THIS GONNA BE THE HARDEST PART OF THE MOD?!?!?!

fossil osprey
#

You can have a trigger action on item bought yes, so you could use that to give your power

#

It's probably the cleanest way

barren tapir
#

I have follow up questions, but I'm being pulled in a few directions atm. I'll be back (I want to finish a different mod first, which only needs me to set the prices of buildings)

#

It shouldn't take too long, I just need to remember the correct build materials syntax/lookup IDs

scenic ferry
#

so somethings wrong with... my map? I think? Is roughly what that means?

half tangle
#

just worth mentioning: do you have time frozen? iirc, FTM needs time to be passing (I think)

scenic ferry
#

nope, time is passing

autumn tide
strong kite
#

Just now realizing it would be SO much easier if I just made all these bundles unlock via friendship with Darkrai, and have each bundle give a bit of friendship points when completed. So theoretically you'll unlock them as you complete the bundles, but you can unlock them sooner by actually gifting the NPC

royal stump
barren tapir
#

Just checking since there are several different items called "Stone". The Item Id "(O)390" corresponds to the stone you use for crafting and building, correct? It's the resource?

fossil osprey
#

!stone

ocean sailBOT
#

πŸͺ¨ The item ID for Stone is 390.

fossil osprey
#

yeah

barren tapir
#

Thanks

royal stump
#

notably, timed spawns (like 600-1200 in those settings) won't appear if you just skip time with debug commands, but otherwise they do seem to appear

fossil osprey
#

too many stones claude, too many stones

torpid sparrow
#

if im reading the wiki right for editing the WorldMap, the MapAreas uses the tiles of the map, and not the tiles of the minimap?

royal stump
barren tapir
fossil osprey
#

we don't have a weed command

#

we should

ocean sailBOT
#

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

fossil osprey
#

oof out of date smapi

scenic ferry
#

i do need to update things yikes

barren tapir
#

Also, I'm almost finished with the building costs. I just need to run the game to verify they are correct.

scenic ferry
#

quietly going to update stuff

royal stump
strong kite
#

So I imagine it's possible to make Darkrai reject Stardrop Tea as a gift, but how would I make it so the response message is a response from me myself in a generic dialogue rather than one with Darkrai's portrait?

scenic ferry
royal stump
#

also for pack testing purposes with FTM, it might help to edit Stardew Valley/smapi-internal/config.json with this setting, to make it add trace logs for whether packs are active/inactive, where it spawns every single item, etc

"VerboseLogging": ["Esca.FarmTypeManager"],```
#

it makes the logs pretty big during normal multi-day play, but helps for this stuff

strong kite
scenic ferry
#

I have never been so thrilled to see such a ridiculous amount of forage

#

thank you so much Esca im finally free from forage hell

autumn tide
#

happy for you :)

scenic ferry
#

ty claude
I am finally free

barren tapir
#

Is there an easy way to prevent this text overflow? If not, I'll just remove the gold bar and increase the radioactive bars required to 3

brittle pasture
#

otherwise nop

barren tapir
#

Got it. Thanks!

#

I'm finished the mod! I just need to clean up some of the C# code. I'll probably be posting it to Nexus later today.

I'm going to draw some diagrams to explain what I'm trying to do with the shop questions I asked earlier

severe cairn
#

What's the best way to provide alternative portraits (through a config)

I know how to do the config stuff and everything, but I don't know what the "best" way would be, and I don't want to make it difficult for people who might want to make alt portrait mods

urban patrol
#

portraits for your custom NPC?

severe cairn
#

yea, I made two versions

urban patrol
#

i don’t think there’s a way to put config tokens into a GSQ for the appearances system unless you made it true/false, so i think you’re stuck with When conditions

ornate locust
#

I don't think you need to do anything to make sure alt portrait mods work. Unless you want the setting to still "work" if someone has an alternate portrait installed I guess, but there's not much reason for that when people can just pull the alt portrait mod

severe cairn
#

nod nod

ornate locust
#

Just have each setting load a different portrait, a portrait mod will replace whatever's loaded

#

It's pretty clean to just have your setting something like PortraitType and put each portrait type in its own folder, name each possible value after each folder, and put {{PortraitType}} in the path. Don't even need hasmods or anything for that

#

I do that for recolors when I don't need any other conditions on load.

uncut viper
urban patrol
#

oh good old contains duh

#

although a conditional load does sound cleaner

uncut viper
#

It is cleaner and it's what I would go with. But the option is there. Plus if there is another upside to the appearances way, it means your portraits are always loaded and available so no need for CP to reload them ever and other mods can see em if need be

#

I'd still recommend the token in the load though

barren tapir
#

The mod I'm working on adds 6 new powers to the game that can be purchased and upgraded. When a power is purchased, I want it to update a value in the save file and update shop menu.

I tried drawing a sequence diagram of what this would look like for one of the powers (the Crop Power).

Hopefully this explains what I'm trying to do.

lucid iron
#

Use stats instead

barren tapir
#

What's that?

lucid iron
#

IncrementStat

#

And then player has stat

#

That is what vanilla powers do

small kindle
#

Hey y'all I need some help with Mr Qi. I am trying to replace his portrait but when I speak to him in game is vanilla one is gone, the portrait box is blank, and idk what to do. No smapi errors, its named MrQi.png, path in content.json is right. Does it at the casino and walnut room. I have no idea what else to try

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.

uncut viper
#

Also there's no need to wait to add in the icon in the special powers and items menu, it can be there from the start like the other powers. Unless you specifically wanted to hide its existence from your players

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 10 C# mods and 4 content packs.

barren tapir
uncut viper
#

You don't change its visibility with AssetRequested either

#

Whether its visible or not can be controlled by a GSQ

#

You can change the texture its using as well

barren tapir
#

And how would I go about updating the shop layout after purchase?

lucid iron
uncut viper
#

Though I guess the texture part would need some kind of invalidation. But, you have a CP component right? Is there any reason why you're doing it in C# and not CP?

lucid iron
#

how big is your replacement Portraits_MrQi.png ?

uncut viper
#

(To be clear if the answer is "bc I want to" thats totally fine, just curious SDVpuffersquee)

#

Every entry in a shops stock can also be controlled by a GSQ as well

#

To control whether it appears or not'

barren tapir
uncut viper
#

The special items and powers tab has nothing to do with that

#

You could still do the icon in the menu via CP

barren tapir
#

Okay!

uncut viper
barren tapir
uncut viper
#

Data/Shops

barren tapir
#

Thanks!

#

I'm gonna begin working on the CP component! I'm almost certain I'll be back with more questions involving this process.

small kindle
#

It seems like everyone but him works but maybe I missed someone idk

#

Wait does it need to be portraits_MrQi cause I just have it as assets/Portraits/MrQi.png

strong kite
#

I know it's placeholders but that's definitely not right rawbea2LUL

void aspen
#

I mean it kinda works like this

#

just with some cropping

strong kite
#

Once I actually get around to doing the bundle art I'll figure this out

#

huh... okay so having Darkrai reject Stardrop Tea is gonna be a little more complicated...

#

Wait the other RejectItem dialogue also isn't working

#

omg do they have to be qualified ids

ornate trellis
#

there gotta be an (O)

strong kite
fierce vault
#

by the way guys (and selph if you’re there) the person who made thr bug report got back to me, and it indeed was a fashion sense mishap lol

#

That, and cursed mannequins just being cursed mannequins

rich cliff
#

Sobbing and crying because no matter what I do.. I don't understand ;-;. And yes I soared the wiki and I'm still puzzled

barren tapir
#

So, looking at Powers.json, the unlock condition is PLAYER_HAS_MAIL Current HasTownKey. Qi's shop sells an item with the ItemId SHOP_TOWN_KEY.

Where would the SHOP_TOWN_KEY item be defined? Is it a special type of mail?

void aspen
rich cliff
#

I want to recolor the tractor and I can't figure out what I'm suppose to be doing when using Content Patcher

void aspen
#

all you need is three editimages in a content json

barren tapir
#

So I'd have to define a unique ISalable for each power?

rich cliff
#

nope. First time

void aspen
#

oh and you already checked everything you could

rich cliff
#

yep.

void aspen
#

okay, do you already have the recolored files of your future mod?

rich cliff
#

just the tractor image rn. I'm working on the garage as we speak

barren tapir
void aspen
#

okay we can still use some of them and then you will be able to add and edit two other if you want

uncut viper
void aspen
#

I see dll so I guess its not yours

barren tapir
uncut viper
#

With the AddMail trigger action

barren tapir
rich cliff
uncut viper
void aspen
void aspen
#

you can copy someone's json files if your pc can't create them yourself but youll have to edit them so your mod works as needed

#

your mod folder should look like this basically

rich cliff
#

alright then

barren tapir
void aspen
#

I suppose that everything that Data/ folder has is basically managable with cp for edits and additions

#

since a lot of things arent hardcoded and modular

#

same with maps and textures

barren tapir
#

I think dinner just arrived. My plan is to have dinner, finalize and publish my event statues mod, then work on the Content patcher stuff for the shop! WOOOOOOOOOOOHHHH LETS GO!

void aspen
#

mysterious wiki bookmarks and their names

strong kite
#

Currently struggling with how to use %revealtaste and $action in dialogue heehee

#

ok I'm lost what am I doing wrong 😭
"DarkraiRejectBouquetServant": "This is not why I sought you out.$5%revealtaste:{{ModId}}_Darkrai:(O)277#$b#I hope you burn these...$3",

rich cliff
#

I love how my tabs are getting more and more compact with all the wiki modding stuff xD

strong kite
#

Wait does that one have to NOT be qualified?????

royal stump
#

the wiki says it should be, e.g. %revealtaste:Lewis:(O)258, but the game dialogue still uses the older object-only format

strong kite
#

Ok that's what I thought... but comparing to dialogue structure in game, the way I'm using it looks right..?

royal stump
#

yeah, nothing stands out as wrong there, assuming that's the NPC ID and all

#

(never written dialogue myself though)

strong kite
#

I wonder if it's possible that I messed up his gift taste..?

#

Or is the wilted bouquet just not valid for gifting?

#

oh shoot the Wilted Bouquet might just be invalid for gifting Waaa

#

Can I overwrite that? sobs

#

Actually the mod I use for gift tastes does acknowledge it as a (Loved) gift for Darkrai in the confirmation dialogue but it gives me this after

royal stump
#

I don't think %revealtaste cares whether it's a valid gift item, at least skimming the code a bit

#

so is that dialogue text showing up, but then it doesn't list the item in his social menu?

royal stump
#

any yellow/red text in the console when it comes up? there're a few parsing errors that can happen, though the ID does look correct

strong kite
#

Not with the unqualified Id but I'll check with the qualified Id

latent mauve
#

I think the romance related items have their own hardcoded checks and behaviors, of which the wilted bouquet is one.

latent mauve
#

It could very well be running a check for if Darkrai is romanceable or not to pull that line.

royal stump
#

to actually give someone the item, yeah, I think that one might be hardcoded; I don't see where that'd affect %revealtaste, but it might not be all that helpful in practice

strong kite
#

yeah this is all kinda pointless if it's hardcoded for them to not be able to take it sobs

latent mauve
#

Could always make a custom version of the item

#

But you'd probably want to name it something else to prevent confusion

strong kite
#

I'm not sure how well that would work.... cuz you can't wilt the bouquet and have it become the custom one without no longer being able to obtain the actual wilted bouquet, and if I make them BOTH different items then it just.. idk that feels like a whole lot of confusion..

latent mauve
#

Well, what's the reason to give a wilted bouquet to Darkrai?

strong kite
#

It was supposed to be a loved gift, and since you cant date them there's no other reason for it

#

but of course it's probably hardcoded 😭

latent mauve
#

Then I would still suggest a different item instead

#

It's counterintuitive for the player to gift a "end the romance" item to a NPC that can't be romanced in the first place.

strong kite
#

The point is that giving them the bouquet to TRY and date them then reveals that Darkrai loves wilted bouquet 😭

severe cairn
#

you could add a special machine at that map to burn the flowers into the custom item, and only those would work if you really want it

latent mauve
#

"Burnt Wilted Bouquet" would make that clear, yeah

strong kite
latent mauve
#

Could also probably just make a furnace recipe for it

strong kite
#

And Darkrai could point the player in the direction of it

craggy goblet
#

But... logically speaking, wouldn't that turn the bouquet to ashes? It's already wilted...

void aspen
#

ashes ashes

royal stump
#

crafting recipe for "bouquet that's literally on fire"

ornate locust
#

Wilting a bouquet with fire is already weird

#

may as well just double down on the weirdness

strong kite
severe cairn
#

thats why it requires the Special Machine SDVkrobusgiggle

royal stump
#

(idk if the recipe system likes torches or relationship items, but)

latent mauve
#

I mean, we were never told what flowers the bouquet is made of, they could 100% be flame resistant, LOL. BUT also ashes or burnt is just a matter of how long it's burned XD

severe cairn
#

Farmer don't have enough skills to make The Perfect Bouquet Furnace

strong kite
#

Question: Would I be able to add reject dialogue for the Wilted Bouquet in that case? So he can tell the player to burn it even more? LUL

latent mauve
#

Gotta take them out while they are just slightly crispy SDVkrobusgiggle

strong kite
#

Wait I totally could just make the item Bouquet Ashes

craggy goblet
#

Yum, crispy bouquet

severe cairn
#

It's like when you leave a pizza in the oven for way too long and it keeps the shape but is definitely 100% carbon

strong kite
#

WAIT OK IM LOVING THIS IDEA

craggy goblet
#

see, that's why we're all here :D

severe cairn
#

chaos chaos!

latent mauve
#

Still not sure if it will accept the line instead of the "it wouldn't make sense" directly as a reject response, BUT you could likely fake it by changing the relevant string when the player is in a specific location only.

#

If needed as a workaround

royal stump
#

RejectItem parsing happens earlier in the same method as the O277 unique handling, so I think it'll use that first

latent mauve
#

Oh good

#

That makes things simpler

royal stump
#

whereas AcceptItem comes up after it's checked whether something is giftable

severe cairn
#

If thats not possible then you could also make Darkrai emphasize in the rejection of the regular bouquet that Darkrai wants that thing BURNT. Like BURNT burnt

strong kite
#

I can still have it reveal the gift taste for BouquetAshes and seeing a literal item called Bouquet Ashes might lead players to believe they can put the Bouquet in the furnace again?

latent mauve
#

Yes

severe cairn
#

We're all making toast <3 but flower version <3 cook that thing a second time

#

I'm oddly invested now, please tell us what you end up doing I must know

strong kite
#

Thoughts on this description?

void aspen
#

dead is such a strong word here imo

severe cairn
#

"Even the soul is dead"

strong kite
#

I am so lucky I already have a file for machine recipes

severe cairn
#

You try to gift it to anyone else and its instant heart reduction 😭 "are you sure you want to do this?"

strong kite
#

Oh yeah good call to make it universal hate
Honestly I love the idea that none of the other NPCs can even recognize it except for maybe Pierre cuz he sells them LUL

#

Omg I'm absolutely making custom dialogue for that

void aspen
#

there should be stardrop tea variant that lowers friendship by one heart

strong kite
#

"Good god what did you do to that Bouquet!"

severe cairn
#

"No refunds!!!"

strong kite
#

OMEGALUL WAIT THAT'S SO GOOD

#

And also doesn't bring to question if I should use god or yoba in the text!

severe cairn
#

You could also use goodness gracious instead of good god if you wanted an alternative to that one day haha

strong kite
#

True

#

Gonna go through all the effort to add this and the revealtaste prompt still isn't gonna work I bet 😭

#

The creation process for this was so messy lmao
I hope I actually got everything

#

I still need art but I've got placeholders in place already

torpid sparrow
#

modding is not a linear process SDVpuffersquee

severe cairn
#

eternal scope creep

strong kite
#

I should update both dialogues for this actually. It was originally just the dialogue when you're below 6 hearts with him but I feel like players wouldn't try giving the bouquet with less than 8 hearts

plucky summit
#

Hey all! I was trying to make a decor item for the Tardis (Doctor Who). Ideally I'd love to just reskin a shed but I don't mind doing a simple decor. I've never done mods before and the decor items I've downloaded to replace the Tardis never works out because the images for say a wooden sign is too small and the tardis doesn't look right when its that smol. Does anyone have a suggestion on where I can start?

small kindle
torpid sparrow
#

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

torpid sparrow
small kindle
#

Oops thought that was just for smapi sorry

strong kite
#

Ok Bouquet Ashes are added but the reveal taste dialogue still isn't working 😭
"DarkraiRejectBouquetServant": "This is not why I sought you out.$5%revealtaste:{{ModId}}_Darkrai:(O){{ModId}}_BouquetAshes#$b#I hope you reduce these to ashes...$3",

lucid iron
strong kite
#

ok for some reason the furnace recipe takes either 1 Wilted Bouquet and 1 Coal or just 2 coal and no bouquet 😭

lucid iron
#

Try without just in case?

strong kite
lucid iron
#

The other possibility is that MrQi's name is not actually MrQi

#

So ddfc goes bolbwaitwhat about him

void aspen
#

"Mister Qi"?

lucid iron
#

You can check npc internal names with lookup anything

void aspen
#

I just opened data characters and he had that entry on the top hm

#

ALSO THIS 😭

small kindle
#

Still broke without DDFC Scaler, says internal id is Mister Qi

#

Also had no idea lookup anything was a thing man thats helpful lol. So should it be Mister_Qi for the name?

verbal glacier
#

No, Mister Qi is his internal id not Mister_Qi

small kindle
#

I wasnt sure if spaces were fine. Ok so cool let me try that

strong kite
#

Things with spaces will need quotes around them

#

Like more than usual lul

void aspen
#

a lot of things need quotes even if it doesnt have spaces

strong kite
royal stump
#

yeah, was about to mention, the coal part of the furnace operation is in here

"AdditionalConsumedItems": [
  {
    "ItemId": "(O)382",
    "RequiredCount": 1,
    "InvalidCountMessage": "[LocalizedText Strings\\StringsFromCSFiles:Object.cs.12772]"
  }
],```
strong kite
#

Alright. With that done, and me fixing the gift dialogue for Pierre, I'm once again left trying to figure out how to actually freakin use %revealtaste

#

"DarkraiRejectBouquetServant": "This is not why I sought you out.$5%revealtaste:{{ModId}}_Darkrai:(O){{ModId}}_BouquetAshes#$b#I hope you reduce these to ashes...$3",
How does this seem right and yet not work 😭

#

And also not break to the point of creating errors in the console

patent lanceBOT
small kindle
#

So would I write it like this, or do yu mean I need extra quotes after the /

"Target": "Portraits/Mister Qi",
"FromFile": "assets/Portraits/MrQi.png",

void aspen
#

Targer is gonna be "Portraits/MrQi" tho

#

his id thing and file path are different things

small kindle
#

Well dang because thats what wasnt working lol

#

I had the path as MrQi and it wasnt loading

lucid iron
#

You need to change his ddfc related definitions to use mister qi

#

But leave the portraits at mrqi

small kindle
#

OOOOOOH

lucid iron
#

-# i sure hope im not helping out with some kind of ai anime mod rn

small kindle
#

You are, thanks for the help though

lucid iron
#

Then I'll unfortunately have to point to rule 12 blobcatgooglyblep

#

I don't really think it's huge problem to give instructions on the json but you definitely wont be able to showcase the mod

small kindle
#

Oh i had no plans to. Yeah I assumed since I wasnt asking for help with anything ai generated and like the json part it would be ok

#

If you gotta ban me or whatever for breaking rules thats fine

lucid iron
strong kite
#

oh shoot wait I don't think I want this to be donatable 😭

#

I guess I just wont do the cool thing of having it be a mineral Sadge

lucid iron
#

You can make custom categories with spacecore if u want

void aspen
#

you can either assign a dif category or use- yeah

lucid iron
#

But yeah try to avoid making things minerals without adding museum

strong kite
#

That all sounds like a lot of extra work that I don wanna do LUL

void aspen
#

Mods are like children

strong kite
#

omg I actually despise these dialogue commands

void aspen
#

okay this is actually sad

strong kite
#

I cant get any of these dialogue commands working except for the ones used in vanilla AND EVEN THEN THAT'S NOT EVEN TRUE

floral stream
barren tapir
#

I'm finished cleaning up the code! I just need to get some screenshots before I can start publishing it!

Then I can work on the shop!

ornate trellis
void aspen
#

is there the same thing for cooking that I don't want people to cook

strong kite
#

"DarkraiRejectStardropTea": "%Hi! Mod creator here! I applaud your efforts but I'll let you in on a little secret...#$b#%The bundles in this mod are based on friendship points, and I'd rather not let it be that easy to gain so much!#$b#%As a consolation, I'll let you in on another secret or two...#$b#%Try digging around outside the entrance of the mines!#$b#%And Willy used to sail people to far off islands, you should ask him about it.#$t {{ModId}}_WillySecret 14#",
This works as intended except for the $t why doesn't the $t work sobber

#

It doesn't help that the wiki only gives examples for the more complicated things

torpid sparrow
#

when i edit a map, the source png can be as big as i want so long as i specify what area of it is being used to overlay/edit right?

#

oh wait im not editing a map

torpid sparrow
#

yippee

lucid iron
#

Making it too big is probably bad but the too big here is like

torpid sparrow
#

im actually doing the worldmap edit

lucid iron
#

More than 32k x 32k

torpid sparrow
#

but thought map...bc map

lucid iron
#

Hm for world maps

#

You can just load ur piece separately

#

Dont need to editimage

torpid sparrow
#

yes

#

ugh i really dont want to do other recolours

#

i mean it wouldnt take that long but grumble

strong kite
#

Why does it seem like no one uses these dialogue commands 😭

void aspen
#

making the life easier and putting all textures in one single png

strong kite
#

Like I'm trying to search through big mods that add dialogue or overall content and they don't use any of what I'm looking for EXCEPT for SVE in one case where it uses the $action command

void aspen
golden spire
strong kite
#

oh that's a good call. the patch summary gives so much info it's kinda overwhelming HehSweatCloseup

golden spire
#

it will be near the top

      Weather                                             | [X] Sun
      Year                                                | [X] 1
      HasConversationTopic                                | [X] Introduction, Introduction_memory_oneday
strong kite
#

Well it doesn't say I have the conversation topic

proven spindle
#

The trigger action wiki has a dialogue example with some actions in it, have you tried that?

strong kite
#

Why does the Trigger Actions page have more demo than the Dialogue page 😭

#

although..... at the moment the action command is the one thing I cant test right now

#

I'm trying to use the $t command, which is SUPPOSED to add a conversation topic outright

#

using that cuz previously the action command wasnt working

#

And the action command I can test comes from the dialogue that only happens when I actually have the conversation topic 😭

golden spire
#

this is an example from sunberry

"RaccoonDialogue.Summer.Wednesday.3": "The raccoon chitters happily and hands you a cup of coffee. It smells like the kind Diala makes... [395]#$t RaccoonCoffee 1",
strong kite
#

wait it doesn't use {{ModId}}_..?

#

And I'll try the square brackets thing with the actual item giving command once I can confirm whether or not the action command wont work there either

proven spindle
#

This is what one of pilot penny's dialogue actions looks like

"AcceptGift_book_item": "{{i18n:Si.PilotPenny.AcceptGift_book_item}}#$action AddMail Current {{ModId}}_M1",

strong kite
#

I just realized it wasn't giving me the full patch summary values truedespair
time to test again

barren tapir
strong kite
proven spindle
barren tapir
proven spindle
#

Done!

barren tapir
#

Thnx!

strong kite
#

Im actually boutta crash out omg

golden spire
#

I barely use CT myself, and not been doing much modding for the past year.. someone can correct me but maybe $t can't be used in % text boxes

strong kite
#

Hm... I'll try removing the % then, just to see if it works

golden spire
#

My usual process of debugging anything, just stripping everything out except the real problem itself, so juts a normal dialogue box saying TEST! and then adding a $t to it

#

anyway I am off to sleep, good luck

barren tapir
strong kite
#

It worked but only kind of 😭
I needed to also add a # to the very end

#

I guess I just replace that with the actual mod Id rather than the autofill cuz that clearly isn't working?

barren tapir
#

No, I mean checking whatever you're defining that has the WillySecret Id

strong kite
#

It's a conversation topic

#

Last I checked they don't need to be defined beforehand? I dont think my others did

barren tapir
#

IDK, I've never done dialog before πŸ˜…

#

But that is the first thing I'd try looking up

strong kite
#

apparently no one has Tiredkip
Though Limey was right about the %'s thing

strong kite
strong kite
#

I THINK I HAVE CRACKED THE CODE!

#

I think when doing dialogue commands with modded items, you can't use {{ModId}} and must instead use your actual Mod Id string in full, because the Dialogue Command wont convert {{ModId}} automatically

#

So for example: This did not work
"DarkraiRejectBouquetServant": "This is not why I sought you out.%revealtaste:{{ModId}}_Darkrai:(O){{ModId}}_BouquetAshes$5#$b#I hope you reduce these to ashes...$3",
But THIS did
"DarkraiRejectBouquetServant": "This is not why I sought you out.%revealtaste:TntDove.PBB_Darkrai:(O)TntDove.PBB_BouquetAshes$5#$b#I hope you reduce these to ashes...$3",

#

This worked too omg they all work Venopog

strong kite
latent mauve
#

Normally I would expect CP to parse that out, unless you are using Load instead of EditData, which is why I am curious.

strong kite
torpid sparrow
strong kite
#

or.. wait..

#

Alright yeah It's EditData

tiny zealot
strong kite
torpid sparrow
#

break it up into two i18n tokens

tiny zealot
#

busy!

torpid sparrow
#

one before that command

#

and one after

strong kite
torpid sparrow
#

ah oki SDVpuffersquee

tiny zealot
#

so you could do "{{i18n:DarkraiRejectBouquetServant |ModId={{ModId}}}}" and that would pass your mod id (expanded token) as a value for ModId that would then apply in the i18n and the first example should work

#

however i agree with wem that it's best to put the %revealtaste and so on where the mod id is used outside of the i18n files and split up the strings, to make it less likely that a translator breaks your stuff

strong kite
#

Question: is there anything technically wrong with my solution of manually writing out my mod Id?