#making-mods-general

1 messages · Page 384 of 1

cobalt lance
#

Okay, thank you, Claire I didn't understand the ! meant inactive. Thank you to all of you**

uncut viper
#

i mean thats still not true even with all vanilla

round dock
#

Yeah ! basically negates the condition

brittle pasture
#

words are hard alright

round dock
#

!summer not summer

#

!cat not cat (this is a joke, i just see sneazy cat)

rich tapir
#

im making a stardew mod and i set my npc's schedule to my custom house and he is in the wizard's tower

wraith aspen
rich tapir
#

okay never mind i fixed it

#

but i do have another problem

#

i get this error
[Content Patcher] Error loading patch 'Robert Mod > Include assets/data/MoviePrefrences.json': file 'assets\data\MoviePrefrences.json' doesn't exist..

unreal spoke
cobalt lance
round timber
wraith aspen
#

i have a second quote mark tho?

rich tapir
round timber
urban patrol
rich tapir
#

he did?

wraith aspen
#

oh i see, thank you!!

unreal spoke
#

Like you were told earlier, MoviePrefrences (which is still misspelled) looks like it's not a JSON.

round timber
#

yes, she did

rich tapir
#

oh sorry she*

fossil osprey
rich tapir
#

i do have the .json

#

but when did nic reply to that

urban patrol
#

right here

rich tapir
#

oh she did but movie prefrences is a .json

#

she*

round timber
#

the screenshot shows that it is not

fossil osprey
#

Your file is named "MoviePrefrence", it needs to be "MoviePrefrence.json"

rich tapir
#

oh

uncut viper
#

(though it has the .json icon. are your others actually named like gifttastes.json.json?)

fossil osprey
#

Because you formatted it correctly doesn't mean it is of the right format

round timber
#

well i would recommend not having things be named .json.json if that is the case

unreal spoke
#

It'd probably be best to just share a pic of what your actual assets folder looks like in your file explorer.

#

(With file extensions turned on.)

fossil osprey
#

File extension usually aren't hidden by default in VS/VSCode, you need to explicitly add them when creating the file so your computer knows

unreal spoke
#

They actually are hiden by default on Windows nowadays. SDVpufferweary

uncut viper
#

fwiw, file extensions have always been hidden by default for me when setting up new windows

rich tapir
unreal spoke
#

Ah, too slow for the edit.

rich tapir
#

it's not .json.json

uncut viper
#

(its ok i was also too slow)

round timber
fossil osprey
#

Yeah, realised too late ^^'

round timber
#

im going back to working on my mod

fossil osprey
# rich tapir

on the topbar of the file explorer, click on the "view"/"display"button, then at the bottom of the dropdown the "view option", and check "show file extension" (paraphrasing, no english windows here)

wraith aspen
#

is selph ok with being @ 'd, they were the one helping me with what i'm trying to do but i don't wanna @ them if theyre not ok with it

uncut viper
#

@brittle pasture are you ok with being @'d

wraith aspen
#

i dont usually interact in big servers so i dont wanna be rude

rich tapir
fossil osprey
#

ok yeah it should be alright now

brittle pasture
#

I'm always ok with being @'ed but right now I'm staring down some C++ code at work so you won't have my full attention

rich tapir
#

i got this error now when i was testing movies on a tuesday
[game] NPC 'Rabegi.RobertMod_Robert' failed to parse master schedule 'spring_Tue' with raw data '900 Rabegi.RobertMod_RobertHouse 4 12 0/1000 Rabegi.RobertMod_RobertHouse/1200 SeedShop 12 20 0/1500 SeedShop 4 19/1600 Forest 70 38 3/2000 Rabegi.RobertMod_RobertHouse 10 4 2/2100 Rabegi.RobertMod_RobertHouse 5 4 1 robert_sleep'.
IndexOutOfRangeException: Index was outside the bounds of the array.
at StardewValley.NPC.parseMasterScheduleImpl(String scheduleKey, String rawData, List`1 visited) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\NPC.cs:line 6217

brittle pasture
#

feel free to ask others

wraith aspen
#

ah ok, good to know

#

it should be near the end of the file

round timber
rich tapir
#

oh

rich tapir
#

tnx

wraith aspen
#

awesome! thank you so much

brittle pasture
#

wait

#

ItemId should be RandomItemId

#

(you're using a list)

wraith aspen
#

gotcha, i'll switch that

#

thank you!!

cobalt lance
#

Hello again, friends. If I wanted my NPC to not appear/perform their schedule until after their intro event played... How would I go about doing that?

round timber
#

have them warp to a hidden room in their base schedule, then edit the schedule after watching the event with the one you want them to actually do

calm nebula
#

Can't you just tmake them not spawn in

round timber
#

theyll need to be loaded into the game if they are going to appear in the intro event

cobalt lance
uncut viper
#

i thought Atra meant with the UnlockCondition field

#

in which case theyll still be loaded in via CP

cobalt lance
#

i found the wiki guide, i can probably do it with that

round timber
#

to do the warping thing, put 0 as the time for their first schedule point and theyll instantly be in the hidden room

#

the rest is Content Patcher stuff

#

otherwise the schedule page will tell you everything else you need to know

urban patrol
#

i can confirm that unlock conditions don’t prevent an NPC from appearing in their introductory event btw! i totally thought it would throw errors but it didn’t SDVpufferthumbsup

round timber
#

hmm inchresting

cobalt lance
#

I don't understand a lot of what was just said but! Does this look like it would work?

#

I set a mail at the end of the intro event

wraith aspen
#

is there any efficient way to test trash cans, currently im running around with no clip max speed and max daily luck but im wondering if theres a better way lmao SDVpufferthink

cobalt lance
#

if UnlockCondition would be cleaner then I am interested in learning more about that but this seemed easy

urban patrol
# cobalt lance

are you trying to conditionally edit a schedule? if so this format is incorrect, schedule values can only be the format “time place x y z”

urban patrol
calm nebula
#

I feel like that might be eaiser

urban patrol
# calm nebula Use a temporary actor

i didn’t even need to do this. i could use the NPC name and she functioned like normal. maybe it has something to do with when the condition is unlocked? not sure

cobalt lance
urban patrol
#

caveat that i haven’t personally used 0 schedule, but the way to do it would be that their default schedule would be written with only one schedule point which is set to a coordinate that the player can’t see/reach. then i would have a second patch with a when condition for player has mail, and then write their actual schedule under that patch

#

also note that with a when condition you can’t use GSQs, you have to use HasFlag

#

(personally i think unlockCondition would be easier, but ymmv!)

cobalt lance
#

where can I find ur mod so I can do some delving haha

urban patrol
#

(sorry for embed, can’t remove it on mobile)

cobalt lance
#

Thank you o7 I found it on nexus (if I don't dl it, how can I endorse it? :3c)

urban patrol
#

best of luck, @ me with any questions!

obtuse wigeon
#

I'm working on my Paved Valley mod again, I'm using the vanilla town tilesheet (Iknow its actually the town bc I have a recolour that's effecting it) but the stone used for the walkways in town doesn't make the stone sound, when I add the tilesheet to the map I also add the "Type" "Stone" tag to the tiles, what am I doing wrong?

#

It works if I have the town tilesheet along side the map but not when it isnt

#

Also the stone is on the Back layer too

cobalt lance
lean flame
#

hey guys, can anyone tell me how exactly the shipping bin lid sprite works? Its for AT

#

I've tried to place it perfectly but the animation looks so wonky

lucid iron
#

Well it opens when you get close?

lean flame
#

yup

lucid iron
#

What are you seeing that's weird

lean flame
#

hold on

#

i know its because Im messing up the spritesheet placement of the lid for the png image

#

ive placed it here

#

sometimes it looks like the lid is flipping to the left or right

cobalt lance
#

trying to make my NPC sit in a chair as part of his schedule. Don't know what I did wrong. Any insight?

round timber
#

im guessing the name of the location

cobalt lance
#

o7

#

yuppppp ty

round timber
obtuse wigeon
latent mauve
#

If so, you may want to check what you have set for the FootstepSound data field for your path's Data/FloorsAndPaths entry.

#

Or is this a recolor thing entirely?

obtuse wigeon
# latent mauve you're using a custom Path?

the actual path (The bit that I want to make the stone sound) is from the vanilla toen tilesheet, it's a modification of the busstop that i've added the town tilesheet too, but it still references the base game town tilesheet

obtuse wigeon
#

The desaturated part is the bit I want to make the stone step sound, its part of the town tilesheet, the saturated is my custom one which I dont want to sound like stone (which is fine and working)

latent mauve
#

okay, the not desaturated parts won't sound like stone anyway, because the path edge tiles on the town tilesheet actually use Type Grass

obtuse wigeon
#

exactly, that's the bit that works how I want, it's just the centre that doesnt weirdly

latent mauve
#

I'm trying to understand, sorry if I'm making you repeat yourself

#

okay, so the desaturated bit, is that from a custom tilesheet?

obtuse wigeon
#

No no it's fine don't worry at all, I probably haven't explained it the best in the first place, I was struggling to put it into the right words

latent mauve
#

or the vanilla?

obtuse wigeon
#

the recolour isnt an issue because this occurs without it and it works corrently on the town map with the recolour

latent mauve
#

okay, and the recolor probably targets the png, so it won't break anything.

latent mauve
#

Now, for this map in Tiled, the Town tilesheet wasn't originally part of it?

obtuse wigeon
#

Correct, it is the BusStop that I am modifying, it doesn't have the vanilla town tilesheet as part of it

latent mauve
#

Just to confirm my suspicions, the fountain likely isn't animated for you either on this map.

#

(you can tell from the tiles not having the diagonal lines)

obtuse wigeon
#

I shall have a look bare with

latent mauve
obtuse wigeon
#

correct it isnt animated

latent mauve
#

okay, easy fix then.

gentle rose
#

(ah I see what you’re getting at lily, good catch)

obtuse wigeon
#

I think I am too, I need to export the town map tilesheet as a tileset from the town tmx itself?

latent mauve
#

You could do that and then import it, yes. I went the text editor route myself when I had to this to add waterfalls to another map, which involved opening a map that had the tileset on it natively in a text editor, finding that tileset's <tile> section and copy/pasting that over.

obtuse wigeon
#

That would be easier, I would've never figured that out without your train of thought, thank you for solving hours of frustration, I shall give that a go right now

shy harbor
#

Am I missing something?
My wine is in the game, but the texture for the output of the keg is the default wine texture

latent mauve
obtuse wigeon
#

Looks like I'm not going the text editor route cause there is no tile id 736, export as tileset it is

#

Oh just directly coppying everything in there not just the specific part with the same tile id

#

I think exporting it will be easier

latent mauve
#

Yep, the entire thing will cover every tile property.

#

I was gonna say, tile id 736 is definitely in there, I was just looking at it. LOL

obtuse wigeon
#

for me it skips over some? weird

    <tile id="734">
      <properties>
        <property name="Water" type="string" value="T" />
      </properties>
    </tile>
    <tile id="754">
      <properties>
        <property name="Type" type="string" value="Wood" />
      </properties>
    </tile>
latent mauve
#

on your custom map, maybe.

#

it shouldn't on the vanilla town map

#

unless you're in the wrong tileset

obtuse wigeon
#

that's the vanilla town map

#

oh, probably

latent mauve
#

are you in the spring_town section?

obtuse wigeon
#

nope, I was in the langscape section

#

to load a tileset (.tsx) do I just add it like i add a tilesheet?

#

to Tiled I mean

#

pffft vscode things the tsx is a reactjs file, red lines EVERYWHERE

iron ridge
#

change the file association to xml then

#

a lot more people use vsc for webdev than manually editing tiled tilesets so it makes sense to be the default

wraith aspen
obtuse wigeon
#

I actually have no idea how to load a tileset, only png files appear

latent mauve
#

You'd use Map > Add External Tileset to import a tsx to your map in Tiled

obtuse wigeon
#

Ahh gotcha thank you

latent mauve
#

I found the VSCode editor method way easier, so I've defaulted to doing that instead.

obtuse wigeon
#

getting this error:

StardewModdingAPI.Framework.Exceptions.SContentLoadException: (CP) Paved Valley loaded map 'Maps/BusStop/BusStop.tmx' with invalid tilesheet path '../../../../Content (unpacked)/Maps/spring_town'. Tilesheet paths must be a relative path without directory climbing (../).

It shouldn't be directory climbing, it's along side the BusStop.tmx

uncut viper
#

the Tilesheet info is saved in the .tmx itself, it doesn't load it dynamically, so it doesn't matter if it's in the same folder if the internal data is wrong

#

(or saved in the tsx if using those)

obtuse wigeon
uncut viper
#

the Tilesheet would need to be selected from the same folder as the tmx, not simply moved there after

#

you can always just fix it manually if you've already added it

latent mauve
#

open the TMX in text editor or code editor and remove ../../../../Content (unpacked)/Maps/ before spring_town in your image source field for that tilesheet.

#

that's the manual fix

obtuse wigeon
#

Gotcha, I shall do that

uncut viper
#

(or the tsx, if the offending sheet is in the tsx and not the tmx)

latent mauve
#

^

obtuse wigeon
#

IT WORKS FINALLY

latent mauve
#

in this case, it did yell because of the link from the tmx

obtuse wigeon
#

oh wait havent tested it without the tilesheets and set in the same folder

#

nope it died again, time to go through and remove any reference to anything other than spring_town

latent mauve
#

well, you definitely don't want to open it in Tiled once you remove the stuff in the same folder.

obtuse wigeon
latent mauve
#

🙂

gentle rose
#

(or you can use my tiled extension)

obtuse wigeon
#

still shouting, even more so

ocean sailBOT
#

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

wraith aspen
obtuse wigeon
gentle rose
#

it lets you use tilesheets without having to move them back and forth etc, basically, so you can use them directly from the unpacked content folder

obtuse wigeon
#

Omg that's defo being added, so much time SAVED

gentle rose
#

it's still in testing so please do let me know if it works or not!

#

it should be mostly fine, you aren't the first tester or anything like that SDVpuffersquee

gilded eagle
#

Hello im making mods again after a few years, currently migrating a few to 1.6. In the MinimumApiVersion should i put 4.0.0 or the lastest one?

brittle pasture
#

can't go wrong with latest major version

obtuse wigeon
#

unless I've misunderstood what it actually does fully

gentle rose
obtuse wigeon
#

Ohhh gotcha okay

obtuse wigeon
#

this time I used irocendar's tiled plugin to sort the tilesheets automatically (turns out the bus stop does actually inlcude the town tilesheet), then i made my changes to the .tmx file, then I closed it and took the <tile> section from the unpacked bus stop tmx and pasted it into the same section in my custom bus stop tmx

shy harbor
#

Honestly might just scrap my new mod idea because I can't get the wine texture to show up whygod

brittle pasture
#

do you need help

shy harbor
#

Yes catwcry

#

I've tried it this way and the way with editing machines data instead
The annoying thing is my wine shows up in the game, just not as the output from the keg with my fruit

brittle pasture
#

...ProducerRules is not a thing

#

pls throw away all of that code

#

I would ask where you got it but I think it's obvious

shy harbor
#

I guess that's what I get for browsing online, but neither of them work anyway

brittle pasture
#

you're just missing MoveEntries to move your rule above the vanilla wine rule

wraith aspen
#

after a month with automate i had like ten plus gamer boxes in every chest but no other boxes, and very little of any vanilla items

shy harbor
wraith aspen
#

i get that feeling fr lmao

shy harbor
#

Is there a way to get the default texture version out of my game or am I stuck with it haunting me

urban patrol
#

when you generate new items they'll have the new texture

#

trash the old items

brittle pasture
shy harbor
brittle pasture
#

your previous code used TargetField (which is correct), why did you switch off it

brittle pasture
shy harbor
#

Ooooo ok, thank you!

brittle pasture
#

you should be using "Condition": "RANDOM 0.1", instead

wraith aspen
#

i slept for around a year with automate and got no boxes

brittle pasture
#

you can revert to that approach and if it still doesn't work run patch export Data/GarbageCans to see if your changes are showing up

uncut viper
#

(does Lookup Anything work on Garbage Cans?)

brittle pasture
#

oh wait I think I know what's happeing

#

yeah your entries are below the default 100% chance fallback items

#

you can either use MoveEntries to move them above it, or set IgnoreBaseChance to true for your entries

wraith aspen
#

ohhh ok

#

i saved a copy of the original code one sec

#

{
"Action": "EditData",
"Target": "Data/GarbageCans",
"TargetField": [
"AfterAll"
],
"Entries": {
"{{ModId}}_TrashCanBox": {
"ID": "{{ModId}}_TrashCanBox",
"Condition": "RANDOM 0.1",
"RandomItemId": [
"{{ModId}}_GamerBox",
"{{ModId}}_SweetBox",
"{{ModId}}_KitchenBox",
"{{ModId}}_FruitBox"
]
}
}
}

#

if i revert to this and then add ignorebasechance true it should work?

brittle pasture
#

yep

wraith aspen
#

ok i'll give that a shot, again thank you so much for your help

latent mauve
obtuse wigeon
#

it's not working, a better explanation is probably needed, sorry SDVpufferwaaah

latent mauve
#

I've sent you a DM with the relevant code block pulled out into a file

obtuse wigeon
#

oh brilliant thank you

wraith aspen
#

success!!!

#

now to work on getting these to drop in another random way SDVpuffersquee

obtuse wigeon
#

Stardew Loot crates? careful EA will try buy it from ConcernedApe

wraith aspen
#

bc i did see all 4 appear i just wanna make sure i dont have to change anything to make the chances equal if they arent already

brittle pasture
#

nope, RandomItemIds are all equal chance

wraith aspen
#

ok good so just coincidence

#

just wanna be sure haha

cobalt lance
#

so if I want an event that takes place at the Farm, right as the farmer exits the door, how do I make that compatible with custom farm map mods that have different co-ords for where the house exits out at? Do I just have to make exceptions for every custom farm that I want compatibility with?

wraith aspen
#

can "ArtifactSpotChances" be used for non-artifact items or is there a different way to add items to dig spots, the wiki makes it sound like it can only be used for artifact items

torpid sparrow
cobalt lance
#

cool, I'll try it and see if it works

torpid sparrow
#

I feel like the map knows where the front door is? I’m not sure

uncut viper
#

the grandpa candles event doesnt

#

idk how the game handles them normally

torpid sparrow
#

When I was making my farm event it wouldn’t let me change the viewport at all

#

Not sure how modded farms handle that

uncut viper
#

there are a couple in the vanilla data i see that set the viewport to -10000 -1000

torpid sparrow
#

SDVpufferthinkblob funky

#

Maybe my game hates me

obtuse wigeon
#

Just wanna check, is this the right way to change tilesheet for season?

    {
        "Action": "Load",
        "Target": "Maps/zzz_AtlasV_StoneWShadow",
        "FromFile": "Maps/Assets/zzz_AtlasV_{{season}}_StoneWShadow.png"
    },

with each tilesheet having {{season}} replaced with the actual season its for

uncut viper
#

(speaking of which what in the world is a DiaryEvent i see when looking at event code)

torpid sparrow
#

What does the rest of the event entail

#

I’d check but I’m not at my computer :(

uncut viper
#

DiaryEvent as in the C# class

torpid sparrow
#

oh optishrug

uncut viper
#

that ILSpy tells me is unused but sometimes it just does that

brittle pasture
#

lemme search for references in my 350k line source code file

uncut viper
#

anyway i think i found it and it looks like farmers do just always get put at the front door

#

unless you place them at x coordinate -1

torpid sparrow
#

Is that what grandpa event does

uncut viper
#

no that just works

torpid sparrow
#

Oh

uncut viper
#

this looks for you setting up the farmer actor in the character initialization

#

the third command

#

and checks if the location is Farm

#

NPCs also always get placed in front of the front door

#

but one tile further below

#

unless something something tile offset ignoring something something idk

brittle pasture
uncut viper
#

kinda cute

#

also i think if you use a specific farmer id you can actually place the farmer elsewhere?

#

like farmer1 instead of just farmer

torpid sparrow
#

Huh I kinda wanna make more diary entry events

uncut viper
#

(i had no idea farmer IDs were a thing?)

#

where is the concept of a farmer ID even documented

#

i did find this on the wiki page though, this may have been why wem
"ignoreEventTileOffset | Tile positions in farm events are offset to match the farmhouse position. If an event shouldn't be based on the farmhouse position, add an ignoreEventTileOffset command to disable the offset for that event. This must be the 4th command (after the 3 initial setup ones) to take effect. "

torpid sparrow
#

Oh interesting

uncut viper
#

i cant find anything that documents the otherFarmers actor name either SDVpufferthink

#

or like, any of the other hardcoded ones for that matter

torpid sparrow
#

Are they used frequently

wraith aspen
#

so i'm going to add item extensions as a framework for my mod, do i need to create a second manifest and content file to do so?

brittle pasture
#

you need to add a dependency to IE to your manifest

uncut viper
#

i dunno how frequently theyre used, but there's pet, cat, dog, spouse, golem, and Junimo

brittle pasture
#

IE uses the asset system so you don't need a separate content pack

wraith aspen
#

would that be under "content pack for"

brittle pasture
#

no, your content pack is still CP

#

your CP mod will just also do IE stuff

uncut viper
#

(along with ofc the aforementioned farmer# syntax to place individual, specific farmers in multiplayer (or singleplayer if you do farmer1 i suppose)

brittle pasture
# wraith aspen would that be under "content pack for"

(some frameworks act as "CP extensions" because they expose their assets to be editable, while other frameworks like FTM use their own content pack format. You only need a separate mod with a different ContentPackFor for the second category)

uncut viper
#

otherFarmers seems to just place Every Other online farmer that is not you onto the same tile

#

oh no i missed an increment, they get placed side by side

wraith aspen
#

ohh ok i see. thank you!!

tender bloom
#

but that might be it

#

the wedding events can get funky as a result

#

like you might see different events depending??

#

never really looked too closely

uncut viper
#

im sure all these actor placeholders are used, i just wasnt sure if i was missing where they were all documented

tender bloom
#

but as a result of Customize Wedding Attire there are some odd side effects

#

haha i see

#

documentation ... i would not bet on it

uncut viper
#

and yeah i can see this otherFarmers command does not actually check the next tile over is a safe tile lol

wraith aspen
brittle pasture
#

looks good

wraith aspen
#

thank you

#

and i would just add my item extensions changes the same way i would content patcher changes?

brittle pasture
#

yes, instead of targeting a vanilla asset you'd target whatever IE provides

wraith aspen
#

awesome, thanks!

mighty quest
#

Anyone know how to make PFM find Cornucopia machines?

[Producer Framework Mod] This is just a Warning, don't report this as a bug. No producer found for ProducerName (BC)Cornucopia_ButterChurn. This rule will be ignored.
[Producer Framework Mod] This is just a Warning, don't report this as a bug. No producer found for ProducerName (BC)Cornucopia_CompactMill. This rule will be ignored.

It couldn't find it by name either.

[Producer Framework Mod] This is just a Warning, don't report this as a bug. No producer found for ProducerName Butter Churn. This rule will be ignored.
brittle pasture
#

why is PFM needed

#

Cornucopia does all its machine rules via CP

lucid iron
#

Cornucopia uses regular Data/Machines so PFM doesn't deal with it whatsoever

#

What's the goal here

mighty quest
#

Goal is to make an older JA+PFM mod use Cornucopia machines isntead of PPJA

#

(without having to do a full conversion to CP..)

brittle pasture
#

uuh try removing (BC)?

cobalt lance
uncut viper
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.

cobalt lance
ocean sailBOT
#

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

uncut viper
#

your a schedule, after the game calculates what the necessary departure time must be, is becoming 1600, which turns out to be a duplicate in the schedule

#

you'll need to adjust the timing

brittle pasture
cobalt lance
#

LMAO

#

ok thank you

uncut viper
#

that kind of error is particularly troublesome bc sometimes you might not even be in control of it (another mod may affect the path your NPC must take)

brittle pasture
#

(it finds machines by the internal Name, which Cornucopia has set to the same as the unqualified ID)

mighty quest
#
[Producer Framework Mod] This is just a Warning, don't report this as a bug. No Output found for 'Ancient Nut Butter', producer 'Cornucopia_ButterChurn' and input 'Ancient Nut'. This rule will be ignored.
[Producer Framework Mod] This is just a Warning, don't report this as a bug. No Output found for 'Ground Herb', producer 'Cornucopia_CompactMill' and input 'Ancient Fern'. This rule will be ignored.

didn't work

uncut viper
#

i thought i remembered from a while back someone trying something similar and the result was PFM just cant do it

mighty quest
#

oh well

brittle pasture
#

that looks like it found the machine but it can't find the... rule to edit?

#

I thought just adding rules should work

#

you can't edit CP rules in PFM yes, but if you add independent rules for it then they get checked first

mighty quest
#

you're right, the error did change

#

I'm confused about the warning then. I don't understand what exactly it cant find

#

it didn't find the Ancient Nut Butter item?

brittle pasture
#

seems like it (reading the source again)

rancid igloo
#

Thank you

brittle pasture
#

you need to pass either the unqualified item ID~~ or the internal Name~~. I don't think "Ancient Nut" is either?

rancid igloo
#

How to level up to level 5 here

brittle pasture
#

just keep chatting (but don't spam ofc)

mighty quest
#

well its a JA item, so i'm not sure what the ID is

brittle pasture
#

you can use lookup anything in game

#

JA items get turned into CP items now (or always has been idk lol)

mighty quest
#

hm, can't find the item in-game..
did it get skipped for some reason?

brittle pasture
#

wait, I think I get it
Cornucopia's Nut Butter is a flavored item like Wine or Juice

#

so "Ancient Nut Butter" doesn't exist. if you want it to exist you need to make the ancient nut one of the eligible inputs to the rule

#

it accepts any item with the nut_item tag

#

JA does accept specifying context tags now so at least you don't need to write a CP pack for it lol, just edit the JA pack

#

same with Ground Herb (if it's not a thing). you can add herb_item to Ancient Fern and it will work with all the Cornucopia herb rules

mighty quest
#

are you saying Cornucopia Nut Butters are overriding the Ancient Nut Butter so they can't exist as separate items?

brittle pasture
#

is there a reference to an "Ancient Nut Butter" item in the JA mod?

#

(if there is ignore everything I said)

mighty quest
#

yeah it should exist

#

other items are working, like Ancient Nut Milk

#

but in game I only see the Cornucopia ones

brittle pasture
#

okay then I guess make sure the mod's loading in the logs?

wraith aspen
#

the boxes are successfully in fishing chests we are gaming

mighty quest
#

yeah other items from the same mod are loading
there are no other warnings related to it

brittle pasture
#

wacky

#

oh wait, there's this line in the file
"EnableWithMod": "ppja.artisanvalleymachinegoods",

mighty quest
#

oh you're right

#

ok that solves one

#

now the Ground Herb, I guess it doesn't exist because its a PPJA item?

brittle pasture
#

likely
as mentioned adding herb_item to that item's context tags list would make it work with the Cornucopia rules like dried herbs

mighty quest
#

I'll try to find an analogous item in Cornucopia

#

thanks for you help

wraith aspen
#

the second pic is the asset of what my machine is supposed to look like while working

brittle pasture
#

I don't see you have any animations defined at all

wraith aspen
#

isn't "shownextindexwhileworking" supposed to animate it?

brittle pasture
#

no, it just shows the next index

#

try trashing them and try again?

wraith aspen
#

like trashing the items in game and putting them down again?

brittle pasture
#

oh wait I just counted frames

#

yeah that's happening because you have shownextindexwhileworking, which means "Show index 5" (since your machine is index 4)

#

your image doesn't have index 5

wraith aspen
#

ohhh i figured it would loop, ok thats on me

#

i'll have to reorder the sprite sheet then

#

is there a way to make the index loop?

brittle pasture
#

you need to specify LoadEffects/WorkingEffects

wraith aspen
#

i'll take a look at that, thank you

brittle pasture
#

the two lines mean they're out of bounds

wraith aspen
#

what does that mean?

brittle pasture
#

the animation's sprite indexes are relative to the main sprite, not the absolute position in the spritesheet

#

so 0 would be the main sprite, 1 is the one to the right of that, 2 is two spaces, etc.

wraith aspen
#

oh, so would i make it 1, 2, 3, 4 instead of 0, 1, 2, 3?

brittle pasture
#

that'd make it worse (assuming you're still using the sheet you posted above)

wraith aspen
#

i am still using that one yes

brittle pasture
#

quick fix is reorder the main sprite to be the left most

wraith aspen
#

i'll do that, it only was put in that order bc it was alphabetical

queen mesa
#

hey guys, does anyone know where I can find a tutorial for making ui

wraith aspen
#

so this should work with 1 2 3 4 in that order?

brittle pasture
#

yes

brittle pasture
queen mesa
#

I wanna make a new ui, kinda like fashion sense but only changes hairstyles

brave fable
#

how much C# experience do you have?

queen mesa
#

I think I know enough to make a mod

brave fable
#

wonderful 🥳 there's no tutorials

uncut viper
#

vanilla UI creation is very "do everything yourself"

queen mesa
#

well is there at least anywhere I can look for the iclickable stuffs

brittle pasture
#

every UI mod ever made is either from learning how the game does it (spoiler alert: lots and lots of draw), or, fairly recently, using StardewUI (which still has lots of DIY and studying the source mind you)

#

!decompile is your best bet

ocean sailBOT
uncut viper
#

the game's source code is where you look

brave fable
#

sadly there's no documentation online or inline, the best you can do is cross-reference vanilla and open-source mods

uncut viper
#

i actually think you can get by without looking at stardew menu sources at all with StardewUI if you do it all in StarML

brittle pasture
#

yeah StardewUI has pretty good documentation

wraith aspen
#

fr thank you so much selph you have been carrying me on this mod making journey SDVpufferheart

keen seal
#

hey so how do you make water functional as water in a custom map? I’ve got it set up with all the appropriate tiles having the Water tile property but they’re just existing as static tiles

queen mesa
#

thanks, I'll check the documentation

brave fable
#

of course even if you use a library/framework like StardewUI you'll still need a working knowledge of the game code in order to actually affect the game state, e.g. changing hairstyles

#

so having a decompile on-hand is very much needed

keen seal
brave fable
#

whether you go with StardewUI or just raw C# for your UI you can ask here, there's often someone around used to either

calm nebula
#

They have to be on the normal back layer

keen seal
#

augh

#

alright, thank you XD

brave fable
#

additional (numbered) layers are purely visual and have no functional effects or properties

calm nebula
#

Please bluebs

brave fable
#

including water

keen seal
#

That makes sense, I will remember that

calm nebula
#

Rust or bust

keen seal
#

at least it’s just a tedious fix and not a hard one XD

brave fable
#

C or flee

calm nebula
#

Fleeing now then

edgy wave
#

Any qol mods i should use

#

Vanilla kinda bland after a while

uncut viper
edgy wave
#

Ah mb thanks

wraith aspen
#

or am i just missing a bracket or comma somewhere

lucid mulch
#

Quotes are needed for it to be valid json yes

wraith aspen
#

got it, ty

hard fern
wraith aspen
#

well that wouldnt be good lmao

torpid sparrow
#

i dont think so

#

u use the numerical values for each NPC

#

iirc

lucid mulch
#

both gift tastes should be in the single set of quotes

wraith aspen
#

the wiki showed character names in quotes on the gift taste page

#

ill try putting the gift tastes together

torpid sparrow
#

i think that's for adding a new NPC

#

but editing the data is different

lucid mulch
#

in a json object, its ```json
{
"Key1": "Value1",
"Key2": "Value2"
}

but you have
```json
{
    "Vincent": {
        "Like": "blind_box",
        "pusheen_plushie"
    }
}
uncut viper
#

there are no numerical values needed

torpid sparrow
#

oh can we use the words? i didn't know that

uncut viper
#

NPCs dont have numerical IDs

#

its not can its has to

#

unless you're using a category

torpid sparrow
#

i edited gift tastes a different way SDVpufferthinkblob

uncut viper
#

categories are numbers, context tags and item ids are strings

lucid mulch
#

(npc's also don't have categories)

hard fern
#

now im confused too. i thought you were supposed to edit vanilla villagers gift tastes via textoperations

torpid sparrow
#

ik what ur saying i dont think i expressed what i wanted to correctly cause thats not what i meant

uncut viper
#

NPCs can absolutely use categories for gift tastes

#

im not sure what you meant then

lucid mulch
wraith aspen
#

how do i add text operations then?

hard fern
torpid sparrow
#

yeah what Shrimply said, i thought it was textoperations

uncut viper
#

"the numerical values for each NPC" made me think you meant the NPCs themselves had a numerical value attached to them

torpid sparrow
#

yeah i didnt say that too well

#

i meant numerical values (the 0,1 = love, 2,3 = like, etc) for each npc

hard fern
#

those are the fields

torpid sparrow
#

in which i now know is textoperations

hard fern
#

for the actual gift tastes themselves

rigid musk
#

I was about to say if there was an easier way then what I was doing I think I would explode actually

torpid sparrow
#

oh wait this is the blind box mod

#

nvm SDVpuffersquee

wraith aspen
#

yeah i'm the pusheen blind box person lmao

#

so i'm still a bit confused, what is textoperations and how would i add it to the gift tastes?

#

cause i dont wanna override any vanilla or modded gift tastes i just want to add my items in

rigid musk
torpid sparrow
#

that's how i do it too

#

and then i do it for every npc...idk if there's a faster way to do it

rigid musk
#

(and you do that by targeting data/npcgifttastes + doing text operations w/it)

wraith aspen
#

can i use context tags instead of item ids? bc i have alot of items and i would rather not add each id individually

torpid sparrow
#

yes

rigid musk
#

this should help

#

(only use the odd numbers btw.. I accidentally used the even ones once and everyone was responding to the items weird so)

torpid sparrow
#

what did they say?

uncut viper
#

well the evens are their dialogue

rigid musk
#

They were responding to all gifts with a specific dialogue iirc

#

I can- yeah

uncut viper
#

and the odds are the IDs

rigid musk
#

I can't remember what they were saying I think it was just the actual object lmao

torpid sparrow
#

oh lmfao

rigid musk
#

so they would be just say AngelOfStars.Mrqifriendable_Celery or smth I think

#

It's been a while since I had that happen

brave fable
wraith aspen
#

thank you

#

do i just leave the delimiter field blank?

brave fable
#

" " is the delimiter

#

which is to say, it'll be joined to the existing text with a

wraith aspen
#

oh i see

rigid musk
#

ohhh so that's why the items dont need a space between 'em huh

#

er

#

why they USE a space between them (i was thinking of a comma while typing that)

brave fable
#

yep, it's just a single string (piece of text) rather than an array (list of strings)

#

if you wanted to completely destroy every gift taste you could use "Delimiter": "/"

#

but you didn't hear that from me

rigid musk
brave fable
#

i suppose you could also do "Value": "", "Delimiter": " {{ID}}_eggsando_half {{ID}}_saladsando_half {{ID}}_seafoodsando_half if you wanted to be annoying

#

but again, someone else told you that, not me

rigid musk
#

Cursed behavior Blueberry, cursed behavior

wraith aspen
#

so ideally this is what it should look like, and then i just adjust every character i want to?

uncut viper
#

i dont think that one would even work but i couldnt articulate to you why i think so, so for now i guess you can assume itd work

rigid musk
wraith aspen
#

sweet, ty everyone!

brave fable
#

please do add {{ModId}}_ to your item IDs everywhere throughout your mod, it'll prevent you from having issues with other mods adding items of the same name, and means players/mods can tell which mods added which items

#

in my link above all my items start with {{ID}} because it's very old, but you want to use {{ModId}} instead

wraith aspen
#

oh i have, these are context tags from my items not ids

brave fable
#

ah i see, no problem SDVpufferthumbsup

latent mauve
torpid sparrow
#

wouldn't the same principle apply? what if someone else makes up the same context tag

wraith aspen
#

yeah if i was doing every item on its own this json file would be waaaaaaaaay more messy than it already is SDVpuffersquee

torpid sparrow
#

(ive never made my own context tag idk how it works)

uncut viper
#

generally context tags are wanted to be shared

#

you can namespace it if you wanted

brave fable
#

context tags are meant to be general-purpose descriptors rather than unique identifiers

latent mauve
#

The major benefit (to me) of context tags is that it's easier to make things cross-compatible by using the same tag.

torpid sparrow
#

ohh okay makes sense!

brave fable
#

like if multiple mods use the context tag funny_clown_item for their circus things that's a good thing

#

since you can give any of them to an NPC that wants funny clown items or have them all stocked in a clown shop

torpid sparrow
#

if i wanted all my custom items to be liked then would it be helpful to have a unique context tag

#

like just mine

#

i guess idk i usually have a hodpodge of types of items

brave fable
#

it'd be about as much effort as adding them all to universal likes imo (if you were going for everyone liking them which i guess you're not in second thought)

uncut viper
#

well usually you dont want "all of my items" to be liked at once

#

(as in, most people dont want that, not that itd be bad)

torpid sparrow
#

yeah im raising an extreme case i suppose

#

i dont actually want to do that but just positing for funsies

brave fable
#

really it's just for categorisation in the handful of places that use context tags, unless you're specifically adding functional tags like placeable, ``sign_item, prevent_loss_on_death`, ...

#

use_reverse_name_for_sorting SDVpufferthinkblob

torpid sparrow
#

what is a reverse name

calm nebula
#

The game is weird

brave fable
#

when sorting alphabetically by display name, it'll read it back-to-front

#

i can only imagine it'd be useful if you had some items with some level scaling in their name and you wanted to group by level rather than by item name, e.g. Axe 1, Bow 1, Claw 1, Axe 2, Bow 2, ..

lucid mulch
#

(Trinkets also intrinsically have this behaviour without the context tag)

#

vanilla uses it on stuff like Green Algae, White Algae, Grass Starter, Duck Mayonnaise

delicate smelt
#

can anyone help me about my new idea?
i have a weapon in my mod,i wanna when player is holding this weapon,combat level+5,but i dont know this code,i use c#

ancient vine
#

I'm currently coding a mod related to the UI. I'm using a sprite sheet containing 7 images (448x64), with each image sized at 64x64 pixels. Each image is used as a button. However, while coding, I ran into a hitbox issue, the buttons are misaligned to the left compared to their actual visual position. If anyone has experience with this, please help me out.

twilit quest
#

If nothing else, it will help clarify why it works that way

wraith aspen
#

ty!

wraith aspen
#

i just published the mod SDVpuffersquee

broken yew
#

I have a question for tile maps

#

Okay, not a question but more of a struggle. How do I plan the layout?

brittle pasture
wraith aspen
#

yes i would love one!

#

should i just post the link in that channel?

#

i don't talk alot in big servers so i'm always wary of breaking any rules lol

brittle pasture
#

sure, you can post a link + a fluff description (so it shows up in the showcase)

wraith aspen
#

ah gotcha!

brittle pasture
#

though actually hmm, you don't have embed rights yet

#

only in this channel

#

eh it's fine

wraith aspen
#

yeah ive been a long time lurker but only just started talking recently lmao

brittle pasture
#

feel free to edit the post above to add the description and I can post that instead

#

if you want the embed

wraith aspen
#

ok!

#

yeah it would be nice to have

brittle pasture
wraith aspen
#

edited it hehe

brittle pasture
#

done SDVpufferwoke

wraith aspen
#

ty!!

brittle pasture
queen mesa
#

is there anyone familiar with StardewUI? I've got some questions about it

brittle pasture
#

sure (I made one mod for it)

queen mesa
#

I'm wondering how to add buttons to change the displaying sprites

brittle pasture
#

well stardewui has a button widget, and you can configure it to do things

#

how far are you in getting a basic view setup and showing in game

obtuse wigeon
queen mesa
#

I've only managed to run the example in the game

brittle pasture
#

the next step is to read about StarML and edit the example to add any widgets you want

queen mesa
#

I'm looking for something like this, when you press the button it goes to the next sprite, like sprite2

queen mesa
#

but I'm still confused

brittle pasture
queen mesa
#

I'll check it out, thanks

broken yew
#

I can't load the map in

urban patrol
#

!log what error are you seeing?

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.

urban patrol
#

!json you can also post your code using this link and then sharing it

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.

broken yew
#

Using a tmx file but I am just a beginner. It didn't say any errors with the logs and debug warp in but it says the map doesn't exist

#

Or no input

#

Even add a warp tile in game to get into my custom location but i stayed in the same location as I entered

brave fable
#

(to quote the embed above, Please do it even if you don't see any errors.)

broken yew
#

I realized what went wrong.
The action is editmap, not load

teal crest
#

Does anyone know of any good reference materials for setting parameters for my own moded items (mainly cooking)?
I'm not good with numbers so I've been postponed them, but since these are all tentative, I have to think about individual values or prices for each.

dusky sail
#

I usually look at all the vanilla items and find one that's similar to mine and then choose a price within like +/-20g of the vanilla item price

#

For cooking you could also look at the combined price of the ingredients and decide how much of a profit you want from that

brave fable
#

with cooking items in particular it can be worth making the final product sell for less than the sum of its parts, given it can be eaten for health/energy/buffs

#

if it has buffs, you might also want to lower the health/energy amounts so it's not a do-all item, so people are more likely to cook a variety of stuff

#

you might also want to make the effects better or worse depending on the ingredients used, since people are quick to do the cost-benefit analysis on cost and effort to reward

#

really though the base game foods are all over the place, so nobody's holding you to a high standard, and having a (reasonably) high reward means people are gonna give your mod more attention

#

in short, treat it as a triangle sum:

 health+energy
    /                \
  /                    \

buffs ----- money

with the total scaled to the cost/effort

teal crest
#

...okay, I try to consider about them.

#

thanks.

plush helm
#

is it possible to adjust a custom npcs schedule based on different conditions (friendship points, marriage with other marriage candidates etc) using content patcher?

hard fern
#

?????

#

*possible

#

😭 porridge... im sorry

dapper crown
delicate smelt
#

need help,i met problem aaaaaaaagain
this is my code part,it means,if player is equiping "frost katana extreme",add buff "combat"to player,but when i equip this weapon,it warnings "ignored invalid buff without duration",but i defined duration in code,why?

dapper crown
#

(Side note, I highly encourage namespacing your ID to avoid mod conflicts)

delicate smelt
dapper crown
#

Then idk, anyone else have an idea?

lucid iron
#

I don't think weapons ever become equipped

delicate smelt
#

i successd!

lucid iron
#

Remember to prefix your items and your buffs with your mod id

delicate smelt
inland rain
hard fern
#

i miss marshmallows...

blissful panther
#

"Useful for climbing mountains!"

acoustic trench
#

Hi ! I have another question about CP mod writing. I want to use a token that has been defined in another mod, but I don't understand the syntax I should use. In my case I want to load a schedule when Gunther is unclocked. In the Stardew Valley Expanded CP code, there is a token called GuntherUnlocked. So I guess I should have something like

            "Target": "Characters/schedules/GuntherSilvian",
            "When": {
                "FlashShifter.StardewValleyExpandedCP/GuntherUnlocked": true,
            },```

But I have this error message in the SMAPI console:  ```the When field is invalid: 'FlashShifter.StardewValleyExpandedCP/GuntherUnlocked' can't be used as a token because that token could not be found.```

How should I write it ? Thanks for your help 🙂
hard fern
vital lotus
#

eh

#

u sure they don't use mailflag for that?

#

i don't think they use specific token?

#

or u can just recreate the condition when gunther unlocked instead?

acoustic trench
#

thanks for your help 🙂

dapper crown
#

How would you guys go about putting a time option in GMCM? The only option I can think of outside of implementing a custom input for it is to marshal/unmarshal a text input though its getter/setter of format hh:mm (am/pm)? to/from an integer variable with the same format as Game1.timeOfDay

#

The other way would be to still have a text input but have a looooong list of possible values

#

Unfortunately it doesnt seem to support a generic validation function

idle elk
#

Hey, kind of new to the modding scene as a whole, I am trying to understand how do they load new NPC's schedules in SVE I've tried doing something similar but I'm getting errors that the schedule's format is incorrect. does anyone have any experience with it?

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.

hard fern
#

[[Modding:Schedule_data]]

hard fern
#

so glad im correct

idle elk
#

I've looked through those, my question is where do they load it?

hard fern
#

ok then you might want to look at a basic npc tutorial first

#

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

hard fern
#

there should be a section

#

where there's schedules somewhere

idle elk
#

ty I'll look through this

dapper crown
#

Anyone think of a better way?

configMenu.AddTextOption(
    mod: mod,
    name: () => "Pause after",
    getValue: () => $"{ModEntry.Config.PauseAfterTime / 100:D2}:{ModEntry.Config.PauseAfterTime % 100:D2}",
    setValue: value =>
    {
        if (!new Regex(@"^\d\d:\d\d$").IsMatch(value)) return;
        ModEntry.Config.PauseAfterTime = int.Parse(value.Substring(0, 2)) * 100 + int.Parse(value.Substring(3));
    },
    tooltip: () => "Once per day, pause after this time (24h format). Use 02:00 to disable."
);
idle elk
# hard fern there should be a section

Hey, read through the entire document I am aware you can load the schedule by editing it, this is fine and dandy with EditData, the issue I am facing is I want to understand when does SVE edit exclusively the NPCs schedules, on their end they don't edit it using the standard methods that are in the attached documentation, they just have a json with strictly the schedule, nothing else no "Changes": no Editdate, nothing.

  "Test": "0 BusStop 4 5 0/610 BusStop 24 5 1/730 BusStop 4 5 0/830 BusStop 24 5 1",
}``` I wrote this in their format as an example...
hard fern
#

it's a complicated mod and im not familiar with its contents

#

you are trying to make an npc, correct?

#

or do you just want to edit the schedule

idle elk
#

oh, alright. Thank you anyway! 😄
maybe I am missing something.
yeah, I got the gist of how to make it just looked extremely odd to me so I asked for a second opinion

hard fern
#

well i could help you with whatever you're trying to do, just not if sve is involved since i dont know anything about it

idle elk
hard fern
#

good luck SDVpufferthumbsup

gentle rose
#

question to map makers

what are the most annoying things you have to do in tiled? (e.g. having to edit maps in the unpacked contents dir)

hard fern
blissful panther
#

Animations are annoying to set up, yes!

hard fern
#

Or the opposite, animating a lot of tiles even if they only have 2 frames

#

And also when i manage to curse my map and duplicate a tilesheet without realizing and when i remove it it deleted half the map.. SDVpuffersweats all because i didnt realized and used tiles from both the original and the clone tilesheet

blissful panther
#

...interesting. Do you know how you managed to do that? Because I did that testing the extension, and I was wondering if it was somehow partially a Tiled bug at first.

hard fern
#

Uhh i made the unfortunate mistake of copying tiles off another map

#

One time though i have absolutely no clue how it happened bc i never opened another map

hollow dust
hard fern
#

Make your tiledata Big

#

You can expand it

hollow dust
#

ouh, thanks !!

blissful panther
#

Wait, that works with Stardew? SDVpuffereyes

hollow dust
hard fern
#

Yeah it works

#

I made a big tiledata for my comically oversized doors

brave fable
hard fern
#

I think when you unpack the game maps though it splits it all up into tiny 16x16 tiles

gentle rose
gentle rose
hard fern
#

Oh there is? Ive bever loikied st olfugli

brave fable
#

i occasionally use it while drafting, it's pretty niche. add your big map features to their own layers, move them around with the offset layers tool until it looks good, but then you've got to manually copy-paste the tiles onto a non-offset layer for it to be reflected ingame

gentle rose
#

I could probably write you an extension that zeroes them pretty quickly tbh

brave fable
#

a button to apply the horizontal/vertical layer offsets onto the tiles on that layer would be cool. think apply transforms in blender/davinci

#

i'll be honest i don't know how much i'd use it given i'm mostly done with mapmaking myself, but maybe someone else would find it useful, too

gentle rose
#

(I'm in a tiled extension mood and looking for ideas, if you guys can't tell SDVpuffersquee)

dapper crown
# dapper crown Anyone think of a better way? ```csharp configMenu.AddTextOption( mod: mod, ...

If only hours were split into 100 minutes - This almost works and feels nicer to use, but 12:80 isnt a real time

configMenu.AddNumberOption(
    mod: mod,
    name: () => "Pause after",
    getValue: () => ModEntry.Config.PauseAfterTime,
    setValue: value => ModEntry.Config.PauseAfterTime = value,
    formatValue: value => $"{value / 100:D2}:{value % 100:D2}",
    tooltip: () => "Once per day, pause after this time (24h format). Use 02:00 to disable.",
    min: 0,
    max: 2400,
    interval: 10
);
left nova
#

Bulk animation only work if the all the frames are set in a straight direction (left - right, up - down).

They are not supported if the frames are scattered around the tilesheet, or the frames are not in a straight line but multiple rows (like waterfall)

#

This is the UI of it, in case you don't know.

dapper crown
#

Figured out a decent way, converting between a %100 and a %60 representation (%100 matches Game1.timeOfDay, %60 makes it possible to use a slider)

configMenu.AddNumberOption(
    mod: mod,
    name: () => "Pause after",
    getValue: () => ModEntry.Config.PauseAfterTime % 100 + ModEntry.Config.PauseAfterTime / 100 * 60,
    setValue: value => ModEntry.Config.PauseAfterTime = value % 60 + value / 60 * 100,
    formatValue: value => $"{value / 60:D2}:{value % 60:D2}",
    tooltip: () => "Once per day, pause after this time (24h format). Use 02:00 to disable.",
    min: 0,
    max: 24 * 60,
    interval: 10
);
dapper crown
#

Does anyone know why Nexus never seems to update the version at the top of the page correctly?

brave fable
#

do you mean correctly, or quickly?

shy harbor
#

Can I add gift tastes to a few specific NPCs for my new items?

shy harbor
#

I can't find how to do it without it being a universal gift taste

dapper crown
# brave fable do you mean correctly, or quickly?

I do mean correctly. After 0.0.3, I uploaded 0.1.0 and 0.2.0, and it still shows 0.0.3. I know smapi doesnt care, but at this point i have to assume it just strips the excess characters and zeroes and compares the resulting number

brave fable
#

asdg

shy harbor
#

Oh thank you!

calm nebula
#

Or check the check box saying to update the version number

#

The version number on the first page

#

Hi chue!

#

How was China

#

The entire country

#

All of it

lucid iron
#

It seems to be doing ok

dapper crown
#

I did now, but im pretty sure i had that box checked each time. I mean it worked for the patch releases

lucid iron
#

Sometimes it's just haunted

hollow dust
#

any chance you guys know how i can spawn fireflies on farm? or any custom location

delicate smelt
#

i met strange bug,look now my combat level is 15,so my maxhp should+75,but i didnt,why?

vast flicker
#

How do I add more dialogue for an already made mod

steep valve
gentle rose
#

for the most part, it will be the same as adding dialogue to vanilla, you'll just want to have a dependency on that mod being installed. But if you want to publish it, it is considered good etiquette to ask for permission to make things especially for other people's mods

brittle ledge
#

Are you planning on overwriting existing dialogue or adding additional dialogue? Stuff that shows up as daily dialogue, only in a certain location, only at a certain time, reactions to events, etc

gentle rose
#

(e.g. if you want to add dialogue to tia's Jorts and Jeans and then publish it, you should ask tia first)

vast flicker
#

I asked the Modder if I could add more dialogue to their mod and they said it was okay but I wasn’t sure how to do it

#

They had a content template

vast flicker
brittle ledge
#

SDVpufferthinkblob Are you trying to add more options to lines they already have? E.g., they have a line for Sunday and you want it to be 3 different options, including theirs?

hallow prism
#

you will need to provide the name of the mod

hallow prism
#

this will be way easier to answer questions if you do

vast flicker
gentle rose
#

(unless it's nsfw, in which case don't)

brittle ledge
#

https://stardewmodding.wiki.gg/wiki/Tips:_Using_i18n_for_Easy_Dialogue_Randomisation it's doable though a bit more complex than just adding new keys

Stardew Modding Wiki

With the game's default dialogue setup, you would be limited to 168 lines of dialogue: one per season, alternate heart level, and day of the week. However, you can use i18n to easily create a pool of randomised dialogue, either to extend the amount of dialogue beyond the 168 line limit or to remove the season/heart level/day conditions without r...

hallow prism
#

then you may need to figure stuff yourself then, but at least it is a CP mod?

vast flicker
hallow prism
vast flicker
#

Sorry

brittle ledge
#

Assuming you're making this mod for yourself and don't plan to publish, I'd just toss their lines in as your first option and then add whatever other lines you want.

#

If you do want to publish, it gets a little more complicated.

vast flicker
#

I don’t want to publish it

round dock
#

Tia’s first recommendation will suffice

vast flicker
#

What about the publishing?

brittle ledge
#

Okay yeah, then just use that tutorial and include their line with yours. You may also need to look at https://stardewmodding.wiki.gg/wiki/How_to_make_your_mod_compatible_with_other_languages if you're not familiar with the i18n the tutorial references.

Stardew Modding Wiki

Stardew Valley is played in many languages, and mods come in just as many. In order to make your mod available to as many players as possible, it's a good idea to allow to follow these tips and good practices to make your mod as accessible to translators as possible.

#

(if you wanted to publish, you would need to either 1. get permission to include their dialogue with yours, 2. use Cross-Mod Compatibility Tokens to pull their lines, or 3. tweak your Random to have null as one of the choices, which would remove your line and allow theirs to stay. But again, if you don't want to publish this, I wouldn't go that far for your first mod.)

vast flicker
#

Cross mod compatibility tokens?

brittle ledge
#

Lets you pull info from other mods you wouldn't be able to normally.

#

(CP mods generally don't know what each other is doing)

vast flicker
#

How do I use it?

#

Apologies if I sound really stupid, this is my first time modding

#

I never done modding in my life

brittle ledge
#

hmm I think automod just ate my reply for some reason SDVpufferthinkblob

#

the highlighted one is the one you want to reference, the format is {{Spiderbuttons.CMCT/Translation: othermodUniqueID, othermodi18nkey}}

vast flicker
#

Oh okay

#

Tysm!

round timber
#

(i think something fucky with the regex is happening)

brittle ledge
#

So if you wanted to, say, overwrite the Monday dialogue in my Wren mod (which has unique ID tiakall.wren, which shows in my i18n file as "tiakall.wren.Mon": "Hi, @. I'm working some routine calls today, but I'm reachable by cell if you have an emergency.",, you would use {{Spiderbuttons.CMCT/Translation: tiakall.wren, tiakall.wren.Mon}}

brittle ledge
round timber
#

its fixed now!

vast flicker
#

How do I open a DLL file

brave fable
#

boy am i glad i don't have to maintain these automatic moderation tools

lucid iron
#

Try to see if it's open source first

#

If not then you can decompile

vast flicker
#

Open source?

patent lanceBOT
#

Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent e...

iron ridge
#

if the code making up the dll is available already from the author

vast flicker
#

Oh

brave fable
#

(you can find a list of all open-source sdv mods at https://mods.smapi.io/, just check the box at the top marked show advanced info and options for a link to their source, if available)

brittle ledge
#

If this is for the dialogue mod though, you really don't need to worry about dlls kyuuchan_nod2

#

(unless for some reason the mod you're adding onto included the dialogue in their dll, in which case if it's not added via CP stuff like CMCT won't work)

steep valve
#

I'm trying to completely scrub out (or maybe replace?) Abigail's Guinea Pig, David Jr. and I need to know all the places where he appears in the code. So far, I've got him in a few lines of dialog, but I can't seem to find Abigail's heart events in the code, so I can't be too sure

round dock
#

Data/Events/LocationName

#

Not sure what heart event David Jr. is in but it should be there

steep valve
#

It doesn't look like he's meant to be in any. Does each location really only get one event? I'd figure you'd need more than one

round timber
#

every event for one location is kept in the same file

round dock
steep valve
round dock
#

I honestly prefer it tbh, I’d know where to look meow_bounce

tropic remnant
#

Hello! I'm trying to recreate Sebastian's pool animation in an event. Where can I find which frames to use? I've tried unpacking schedules, and I can't tell on his tilesheet which ones are the right ones. I'm likely missing something obvious.

tribal ore
#

AFAIK, those are just their beach sprites, walking around like normal

tropic remnant
tribal ore
#

Ah! hold on

#

Those are usually in Data/animationDescriptions, but I don't think Seb has one for playing pool. He just stands there. Sam does, however

#

"sam_pool": "4/4 4 4 4 4 4 4 4 4 34 34 34 34 34 4 4 4 4 4 4 34 34 34 34 34 34 38 34 34 34 34 34/4/Strings\\animationDescriptions:sam_pool",

#

Yeah, Seb just has a schedule string on fridays, not an animation

#

Sorry

steep valve
#

Does anybody know which tilesheet (and where on the tilesheet) I could locate Abigail's guinea pig?
Edit: Found the bastard. townInterior.png, far left

round dock
#

(speaking of Sebastian, I really have to start playing again, I’ve been intrigued with Older Sebastian since forever SDVpuffersquee)

tropic remnant
tribal ore
tribal ore
round dock
tribal ore
#

I had a quick question about WEATHER in trigger actions, actually. In this one for Emily's 10 heart, it goes off on DayEnding to send a letter, but it checks the WEATHER for the Woods. Does that WEATHER call correctly check the weather for the coming day?

{
    "Id": "Mail_Emily_10heart",
    "Trigger": "DayEnding",
    "Condition": "PLAYER_FRIENDSHIP_POINTS Current Emily 2502, PLAYER_NPC_RELATIONSHIP Current Emily Dating Engaged Married, PLAYER_HAS_SEEN_EVENT Current 2123243, WEATHER Woods Sun",
    "SkipPermanentlyCondition": null,
    "HostOnly": false,
    "Action": null,
    "Actions": [
      "AddMail Current EmilyCamping",
      "MarkEventSeen Current 2111294"
    ],
    "CustomFields": null,
    "MarkActionApplied": true
  },
#

Because if so, it will solve a tokens issue I've been struggling with (by avoiding it entirely) xD

#

Tokens are evaluated by CP before the save is fully loaded. This means that any token that relies on data from that save can't be used as a condition in an Include call without missing a day. If that makes sense

#

I tested marking the Token as not ready until the data I need (farmer friendship) is actually there, but that just causes the token not to be evaluated at all when the Include condition hits. Super frustrating, because it means that a letter that was sent out on daystarted before saving will not be there after loading the save. Hoping that I can sidestep by moving the check to dayending, but the weather is super important

lucid iron
#

Psure it checks today's weather

tribal ore
#

Well. Fudge.

lucid iron
#

You can try anyways, like use rain totem n go to sleep

tribal ore
#

Yeah. I'll do some more testing. I just saw this in vanilla and my heart lifted

lucid iron
#

The thing im not sure of is just when does weather get evaluated really

#

Whether it's b4 or after the trigger

tribal ore
#

Maybe since it's on dayending, the weather has already been updated by the time trigger actions are evaluated?

lucid iron
#

Yep possible hence test

#

I think this kind of thing is why it's usually best to provide GSQ than a cp token

tribal ore
#

Oh, chu, while I've got you here -- what is the correct way to provide an NPC's translated name as a value for a token? I thought npc.Name was correct, but I have a Korean translator who is still getting the name in English characters when provided with the token value

brittle pasture
#

Name is the internal name

#

use DisplayName

lucid iron
#

What's the usage context here

#

If it's just dialogue then [CharacterName <internalname>] works

uncut viper
#

a token probably should be returning the internal name in most contexts

tribal ore
#

Hmmmmm. The token being returned is used directly in dialogue, but I can see Button's point. Is there an easy way to convert between npc.Name and DisplayName without making another token just to do it?

#

Like an inbuilt CP thing?

uncut viper
#

chu just gave the tokenizable string

lucid iron
#

Yeah local tokenized string enjoyer here

tribal ore
#

Oh! Thank you

brittle pasture
#

I love tokenizable strings
if only it works in mail

tribal ore
#

With the square brackets?

#

Will work in dialogue

#

?

brittle pasture
tribal ore
#

Thank you guys 🙂

lucid iron
#

You can use your token in place of <internalname>

bleak spade
#

I'm having problems with the added lampposts
I've put them in the Day and Night tiles and the light properties, but they're not lighting up or changing to the different tile in-game

#

I'm using the EditMap function if that helps

idle elk
#

Hey, I am following this guide
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC#Schedule

but for some reason I can't seem to get a custom NPC I made to follow a schedule or have a dialogue

Stardew Modding Wiki

So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...

urban patrol
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.

idle elk
urban patrol
idle elk
idle elk
#

Wow, I don't think I'd ever notice that TYSM!

urban patrol
bleak spade
#

Thank you!

urban patrol
tribal ore
#

I got all excited and everything

idle elk
urban patrol
bleak spade
urban patrol
bleak spade
#

Thank you, I really appreciate it

tribal ore
#

I seem to recall a mod or something that would let you check the weather for tomorrow. But I'll be darned if I can remember it now

urban patrol
lucid iron
#

I don't really understand why it's no good to send the mail in the morning

round dock
#

Chu can I borrow your eyes for a sec SBVMoonPlead

#

(not literally, i just poke)

#

not your eyes

bleak spade
uncut viper
tribal ore
idle elk
uncut viper
#

BETAS also has a trigger that's a tiny bit later than DayStarted called MorningStarted that may work too

tribal ore
urban patrol
tribal ore
#

I think BETAS might just make this possible. The only other way I can do this is ignore it entirely and make the letters all say something like "If the weather's nice..."

#

xD

#

Not sure how annoying that would be to players. But it does let me send those out on dayending instead

idle elk
#

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

urban patrol
#

yep please always use the json validator unless requested otherwise!

idle elk
#

is there any way to upload multiple Jsons or do I need to do it one by one?.

lucid iron
urban patrol
#

one by one unfortunately, but no rush take your time

tribal ore
#

Yeah, no 🙁 The letters can't be sent out if the black event is going to trigger, which requires a token evaluation to determine

#

Good thought, though

steep valve
#

What's the most convenient way to test if a mod is working properly? I'd like to trigger the heart events at will to see how they play out

tribal ore
#

debug ebi <eventID>

#

You type that into your smapi console

steep valve
#

Ah, sounds good. I've heard of event IDs before, but I can't figure out which part of what thing is the event ID

tribal ore
#

One second, let me type an example

#
    "Action": "EditData",
    "Target": "Data/Events/BusStop",
    "Entries": {
        "{{ModId}}_Proposal_Sam/Dating Sam/f Sam 2500/t 1500 1800/w sunny/c 2/LocalMail {{ModId}}_StartSam": EVENT CODE GOES HERE
    }
}```
#

In this case, the event ID is {{ModId}}_Proposal_Sam

urban patrol
tribal ore
#

Which would evaluate in my case to Kantrip.MarryMe_Proposal_Sam

urban patrol
#

as for the schedule, did you try sleeping in game?

tribal ore
#

{{ModId}} is a token that you use to make sure your event ids are unique

idle elk
urban patrol
#

ok let me take another look

#

!log also are you seeing any errors in your log? if not, can you type patch summary YourModIdHere into the SMAPI console and then send the log using the instructions at this link?

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.

idle elk
#

The dialogue works, maybe spring isn't a valid key overall?

urban patrol
#

spring is a valid key for schedules but not for dialogue

#

now that the dialogue is working we just have to find the issue with the schedule

#

since it’s confirmed the game knows they exist

idle elk
#

again TYSM!

urban patrol
#

no problem!

idle elk
#

where does it exports to?

urban patrol
#

the site tells you where to find it since it’s different per OS

steep valve
tribal ore
#

In your manifest.json. The line UniqueID

#

"UniqueID": "Kantrip.MarryMe",

urban patrol
#

content patcher is magic and knows to replace {{ModId}} with your mod id though, no need for you to write it out

tribal ore
#

You should pick something like "<username>.<modname>"

#

Yep! Just use {{ModId}} everywhere. But when you are testing an event with debug ebi, you will need to type the whole event ID out

#

Which is why you need to know what it is

urban patrol
#

yes true 👆

ocean sailBOT
#

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

urban patrol
urban patrol
#

you’ll know if you’ve gotten it right if it lists out all of your patches and whether they were applied or not

idle elk
#

where have I set it incorrectly?

steep valve
#

So, I'm running events using the debug, and the weather and time of day is wrong. This is a mod I picked up from somebody else, so I'm unsure if they did something wrong, if the problem has to do with running the events during the wrong weather and time of day, or if I have a lot of work ahead of me

urban patrol
#

what you typed into the SMAPI log must match what your manifest says your UniqueId is

idle elk
#

oh

#

let me quickly upload a new log

urban patrol
#

sorry SMAPI console*

tribal ore
#

If you are trying to test that the event will trigger under the right preconditions, you will have to make sure that weather/time of day are both correct and then enter the location where the event is supposed to happen

tribal ore
#

If you just want to test the event code (people moving, people talking, etc), it's ok to use debug ebi. You can event set the time in advance if you want to make sure the lighting is good. But to test that the event is working and ready for release, you're going to want to make sure that it triggers under all the right preconditions

urban patrol
idle elk
#

may I ask where do you see this?

tribal ore
#

With my example earlier:

    "Action": "EditData",
    "Target": "Data/Events/BusStop",
    "Entries": {
        "{{ModId}}_Proposal_Sam/Dating Sam/f Sam 2500/t 1500 1800/w sunny/c 2/LocalMail {{ModId}}_StartSam": EVENT CODE GOES HERE
    }
}

The preconditions come after the event ID. I've got six preconditions for this event:
Dating Sam -- is the player dating Sam?
f Sam 2500 -- does the player have 10 hearts with Sam?
t 1500 1800 -- is the time between 3:00PM and 6:00PM
w sunny -- is the weather sunny?
c 2 -- does the player have two free inventory slots?
LocalMail {{ModId}}_StartSam -- does the player have a particular mod flag set?

urban patrol
#

the patch name is to the right, and you can see that the schedule patch doesn’t have an X under applied

idle elk
#

yeah I just saw that, good to know you can debug like that and not with millions of prints

urban patrol
#

yep it’s handy. i’m pretty sure the target of your schedule EditData patch is wrong but let me check that

#

i think it should be Strings/schedules/character name

idle elk
#

isn't that dialogue schedule?

gentle rose
#

wdym by dialogue schedule?

#

schedule in stardew refers to where your character goes during the day

urban patrol
#

oh yes i was wrong which is why i checked lol

gentle rose
#

oh do you mean where it goes in the assets? SDVpuffersquee

steep valve
tribal ore
steep valve
#

Also worth noting that the mod I'm copying from just... doesn't use the naming convention, for whatever reason. Possibly because they're overwriting existing events instead of making new ones?

urban patrol
uncut viper
#

if you're overwriting existing events then you have to use the name of the original event yes

tribal ore
#

Oftentimes the "name" of the original event is a number (vanilla heart events, for example)

#

@Button, your documentation is incredible

gentle rose
#

have you seen her tutorials btw?

tribal ore
idle elk
urban patrol
#

no you have the bare minimum there. i would expect a typo in your target, or else in the target of the include, but i’m not seeing anything there. did you try adding a rain schedule in case that’s secretly needed?

idle elk
#

yeah, still nothing

urban patrol
#

damn :/

#

it looks like you’re doing everything right to me, i just can’t figure out why the schedule specifically isn’t being applied

#

OH

idle elk
urban patrol
#

it’s your blank json load

#

yep lmao

idle elk
#

yeah just noticed it

#

say, why do we load it from blank tho?

urban patrol
#

so that we can use tokens

#

tokens don’t work inside of loaded files

idle elk
#

oh, that makes sense

#

I have no words to thank you, honestly!

urban patrol
#

i’m just glad we figured it out that was driving me nuts lol