#making-mods-general

1 messages · Page 217 of 1

lucid mulch
#

bad?

brittle pasture
#

do you have a log or

ember igloo
#

I don't know if I can get a log. its a multiplayer error and as the host I'm not having the issues but the other people are bad with computers

#

I'm also wondering exactly what the command killnpc does. because I believe I need to run it for a different issue but I would like to know exactly what it does before commiting to it

lucid mulch
#

my other theory was have a tilesheet cache and just hotswap the map references prior to adding to the target map

#

but all the mutation hell might cause other problems

calm nebula
#

I cut out the string hashing that smapi's maprenderdevice did and saw...

#

nothing

calm nebula
#

it's just a mapping of <string key> -> <managled string key to look things up in tilesheet.Properties>

#

the copy is pretty slow because that class is weird, and doing a direct copy of tilesheet.Properties instead would avoid (unnecessarily) populating that mapping

reef kiln
dusk mulch
#

Looking for feedback!

ember igloo
reef kiln
#

But like I said pets don't respawn so they are gone forever.

ember igloo
#

Ok, I just need it for 1 npc. I have no idea why or how but there are 11 copies of them

gaunt orbit
dusk mulch
calm nebula
#

in particular, why copy the TileIndexProperties but not the tilesheet.Properties

lucid mulch
reef kiln
lucid mulch
#

PropertyCollection.CopyFrom is just a foreach iterator with new PropertyValue(item.Value)

calm nebula
#

yeah that might not be better tbh

#

expensive as heck

ember igloo
#

_newdaytask failed on the other hand, what kind of effects could it have.
and do they include disconnecting all players every new day? because I'm trying to narrow down why players get disconncted everytime the day ends

calm nebula
#

errors are bad lol

ember igloo
#

Weird part is I've checked every mod that does pop an error and they're common mods that nobody else is reporting errors for. so I can only assume some niche combination is causing it. Guess ill see if anything changes on removing them

ember igloo
calm nebula
#

yes. It may stop the game from saving properly as well

#

tbh I'm more annoyed than most when mods pop errors, lol

lucid mulch
# calm nebula <@226803198218731520> Pathos, what is this line of code for? <https://github.com...

oh I can answer that question
the vanilla method its based on does it
GameLocation.ApplyMapOverride has the TileIndexProperty iteration copy

and this specific hasn't been changed since CP's original version of it from May 2019 https://github.com/Pathoschild/StardewMods/commit/045fd365ae41edbb7f285ef2550f4fdc80fb3315
which in 2020 became a Pathos mods common file, and like a month or two later moved into SMAPI.

calm nebula
#

brb.

#

I'm going to go knit on a sock away from this

#

and enjoy my pink name

#

and my "weak glutes"

dusk mulch
#

Added a few touches to make it a bit better, looking for feedback if you got any

ember igloo
teal bridge
calm nebula
#

(Yup. Which can be caused by a multitude of issues. In my case, stance too short)

dusk mulch
#

I have got something I can't figure out, I am editing the map to add a warp (the map with the warp im adding doesnt have anything on it), its getting added but the warp isnt working and there arnt any errors.

#

wait a minute

#

yeah still not working

#

I can warp to the location so it does exist

lucid mulch
#

does DataLayers show the warp?

dusk mulch
#

Is that a SMAPI command?

lucid mulch
#

pathos mod

dusk mulch
#

I dont have that mod, let me get it

lucid mulch
#

but patch export on the map, cant remember if magic args are needed to do maps correctly

#

and check if the warp map property is what you expect

hard fern
#

my guess is that you replaced the back tiles

dusk mulch
#

I have triple checked it

dusk mulch
devout otter
#

Have you set the PatchMode to Overlay?

dusk mulch
#

Yes

calm nebula
#

Map properties are not copied over automatically

#

Tile properties are

dusk mulch
#

I am putting the warp in a map then using map edit to put that map into the desert

vernal crest
#

Are you doing so using the map property Warp?

devout otter
#

Basically you seem to have invisible back layers there. If you are only adding warps and changing none of the map, might be better if you patch the map property rather than patching in a custom map.

lucid mulch
#

map properties aren't read from FromFile

vernal crest
# dusk mulch Yes

Then like Atra said, your map property isn't getting transferred. Use CP to just patch Desert with AddWarps

#

Hmm, it doesn't look like there's any way I can check if a player has ever been married without having to specify who they might have been married to. Sad.

dusk mulch
#

i forgot to change the location from the documentation example and just ended up in the middle of town-

#

Okay! I got it to work!

lucid iron
uncut viper
#

you would need spacecore to check it though

#

or set a flag yourself when it happens

vernal crest
#

I would have to learn how to make GSQs first. Let me go look at BETAS code to see what I can understand. I also don't actually have a usecase for this check, I just wanted to add it on to something that I was testing for someone else (different i18n line depending on spouse gender).

#

I do not know what an active dialogue event is. Is that like a CT?

uncut viper
#

thats another name for CT yeah

#

they are the same thing

#

theyre just called active dialogue events in the games code so i call them that by default

vernal crest
#

Understandable

#

Hm so if I set a flag upon marriage I could use that to check for marriage and then combine it with "HasValue:{{spouse}}": "false" to check that the marriage isn't current?

#

That could definitely work

#

I don't have any idea if TwigOfWisdom actually cares about divorce but this is fun to think about.

uncut viper
#

there is also divorced_once and divorced_twice

#

there is no equivalent generic for roommates

vernal crest
#

I see SpaceCore has a PLAYER_SEEN_CONVERSATION_TOPIC GSQ. Is that what you were referring to needing SpaceCore for?

dusk mulch
#

If I want to set a map property for a custom map I am loading into the maps folder would I put the map properties patch in load or the editdata?

uncut viper
dusk mulch
#

wait

vernal crest
dusk mulch
#

im dumb

#

I just realised that, ty!

vernal crest
uncut viper
#

correct. however its not ex post facto

#

if a user installs your thing mid-game and they were already priorly marriaged you wont get the CT flag set

#

how much this matters is up to you

vernal crest
#

Good point. If TwigOfWisdom decides they do want to account for divorce I will warn them about that and they can use the SpaceCore check too.

#

I cannot currently foresee any use for this myself.

#

Dolphin has just pointed out I could use PLAYER_NPC_RELATIONSHIP Any Any Divorced

#

Which I did not think of because I missed the bit where <npc> could be Any

agile terrace
#

Ok. I need to know what file has the shiny/glowy image of the wizard as he's teleporting away... Does anyone have a bead on that?

calm nebula
acoustic summit
#

Spacecore documentation can be really fun sometimes SDVpuffercry "Custom tool class will work in the vanilla Data/Tools asset, if they are added to the SpaceCore serializer API." I registered you... why can I not find my serialized classss. I know its probably more than that but tell meee

uncut viper
vernal crest
#

Really? Curious. (This was to Button)

calm nebula
#

understandable

lucid mulch
#

there is internally not much different between roommate and spouse

uncut viper
#

yeah roommates is kind of the hacky duct tape workaround applied on top

lucid iron
lucid mulch
#

a bunch of hardcoded krobus hacks on top of it as well, but I think 1.6 got most of them and generalized them backdown

velvet narwhal
#

krobus forever hardcoded to not enjoy the patio pensiveyrrek

dusk mulch
#

This is for a home, should it be bigger, more rubble on the edges? Looking for feedback

velvet narwhal
agile terrace
calm nebula
#

there's a handful of places

#

in this case it was cursors though

agile terrace
#

@velvet narwhal @calm nebula Thanks guys! I actually checked there first but somehow I missed it. It's suuuuch a huge friggin image... I guess I can't be too mad at myself

velvet narwhal
vernal crest
#

Hey @calm nebula is it intentional that the keybind for fast forward in your Event Tester mod toggles fast forward even on the character creation screen? Every time I make a character with a k in their name I start the game in speedy mode lol

calm nebula
#

...not really, no, lol

vernal crest
#

And every single time I think "wow, the +5 speed buff from CJB is so fast! Huh, why is my time going so quickly? Ohhhhhhh"

calm nebula
#

I...uh

#

I'll figure a way around it but I could have sworn if a text box had focus

vernal crest
#

In the meantime I will change the hotkey so I stop tripping myself up with it lol

uncut viper
#

(how certain are you that the character creation uses a normal and expected text box)

#

i could see the character creation menu being one of those "made very early in dev and doesnt follow many standards set later" things

vernal crest
#

I could check by setting the hotkey back and trying to find an ingame text box if that helped

calm nebula
vernal crest
#

Will do

#

No unexpected speediness for my farmer called "Makefast"!

calm nebula
#

I literally just went "if a textbox has focus, do nothing"

#

lol

#
    private void OnButtonPressed(object? sender, ButtonPressedEventArgs e)
    {
        if (Game1.keyboardDispatcher.Subscriber is null && Config.FastForwardKeybind.JustPressed())
        {
            this.ToggleFastForward();
        }
    }
#

lesson learned. SMAPI does not suppress keypressed events when you're in a text box.

#

Thank you so much for the bug report!

uncut viper
#

how else are you supposed to hide ways to log keys in ur mod if they suppressed it

left narwhal
#

using the I18n NuGet package for translations because I plan to localize my mod, but whenever I try and translate it into French it turns back to the default one. my code looks fine to me

calm nebula
#

the game's language isn't set until very late (it's after GameLaunched, significantly)

#

use the Func<string> variant of those functions

#

that lets GMCM call those later

#

you're also using the old GMCM API, use the new one

#

(which uses Func<string> and not string for that reason)

left narwhal
#

thanks for the help though!

#

will try

dusk mulch
#

How can I make the map look brighter? It seems really dark

#

i dont think

vernal crest
#

Those are really unusual colours for the desert. Are you using a recolour mod?

dusk mulch
#

No

#

The basic desert tilesheet

#

I set it to outside in the map properties

#

Because this is what it looks like in tiled

#

Wait.

#

...

#

I set the map properties to "Outside" insteaof "Outdoors"

acoustic summit
#

For future reference, it compares the inputted class name with the AssemblyQualifiedName of the serialized class, which feels very wrong.

lucid iron
#

Well you are in c# anyways

#

Simply do the data edit

uncut viper
#

SDV uses assembly qualified name elsewhere too

acoustic summit
#

It works, just doesn't seem right that all the default inputs are "Axe" or whatever the class name is, and then there is
"NatureInTheValley.NatInValeyNet, NatureInTheValley, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null" instead of comparing the Type's direct name, or the serialized name that spacecore uses elsewhere.

left narwhal
#

I might be silly if it's pretty easy to find

#

wait never mind

#

I am quite silly

#

it's working! thanks so much!

molten charm
#

How would i use the space core animation feature on a crop growing tile sheet?

tender bloom
#

I suspect you’d have to target every grow stage separately

molten charm
#

hmm

#

ok

lucid mulch
# calm nebula try this?

I like how its still named after me despite the fact I dont think any original line of codes left

lucid iron
#

its plausible deniability for atra

lucid mulch
# acoustic summit It works, just doesn't seem right that all the default inputs are "Axe" or whate...

the vanilla code flow delibrately does

Type type = typeof(Tool).Assembly.GetType("StardewValley.Tools." + toolData.ClassName);
``` to avoid people referencing other things.

Spacecore postfixes it to replace error tools with tools instantiated by doing the explicitly assembly qualified lookups
<https://github.com/spacechase0/StardewValleyMods/blob/352c529d0c8a60a20850b252beb361dca2af346c/SpaceCore/Patches/ToolDataDefinitionPatcher.cs#L26>
brave fable
#

in any case, while it's a little trouble to get the ass. qualified name, i'd much prefer that to throwing in a FryingPan and hoping for the best

lucid mulch
#

and Even just Type.GetType() is may as well not work for stuff outside your assembly without doing assembly qualified names

#

Out of sheer policy I never reference types without it being assembly qualified

acoustic summit
#

Fair enough! It sounds like there is good reason behind it, and realistically after I realized what it wanted there wasn't any difficulty to change it as such SDVpufferthumbsup

#

Its cool learning the insides of it

lucid mulch
jolly torrent
#

okay, quick sanity check, if i wanted to add items to a shop when a specific mod is installed, would this be the correct method?:

    "When": {
        "HasMod": "Morghoula.AlchemistryCP"
    },
    "Id": "{{ModId}}_Shop-AL1",
    "ItemId": "(O)Morghoula.AlchemistryCP_BirdSkull"
},```
#

right, what am i bungling here

uncut viper
#

the When condition goes on the Patch itself, not inside the shop data

#

When is on the same layer of JSON as Action and Target and Entries etc

#

it cannot go anywhere else

jolly torrent
#

okay, so--hang on then, would i have to add a second edit data targeting the same shop then?

#

just making sure

uncut viper
#

yes

jolly torrent
#

okay cool

#

thank you!

uncut viper
#

alternatively you can put the HasMod token inside the shop item Condition token

brave fable
#

yep, When isn't a property of any entry in any json file, it's specifically for Changes objects

uncut viper
#

field* not token

brave fable
#

you can do that? i was looking for a hasmod gsq

uncut viper
#

"Condition": "{{HasMod |contains=Morghula.AlchemistryCP}}" should work

brave fable
#

oh of course you can, you can Condition: true, so why not

uncut viper
#

bc that will resolve to just true

jolly torrent
#

oh excellent thank you! that'll be even nicer

#

less work that way

molten charm
uncut viper
#

(there also is no HasMod GSQ though BETAS adds one for "why not" reasons)

molten charm
#

oops

dusk mulch
#

(or motivation)

jolly torrent
#

so this would work:

    "Id": {{ModId}}_Shop-AL1",
    "ItemId": "(O)Morghoula.AlchemistryCP_BirdSkull",
    "Condition": "{{HasMod|contains=Morghoula.AlchemistryCP}}"
}```
correct?
brave fable
#

looks good!

uncut viper
#

should do

jolly torrent
#

ThumbsSmile i'll test tomorrow, just checking so i can go to bed without wringing it over in my head for hours lmao

molten charm
#

i will sleep now 😔

brave fable
#

(i've never used spacecore animations so i have no clue)

molten charm
#

I don't even need to animate it (it would just make it feel extra special to me❤)

#

so i will prob just leave the animation out until i can figure out how it works

inland cedar
#

how to add new custom chest? like adding new item with CP

#

beside expanded storage

rancid musk
#

Use Expanded Storage. There's a reason there's a mod specifically for creating custom storage types.

#

Without that you need to write a bunch of C# code of your own to patch how a Chest behaves, and that is a lot of work when Expanded Storage already exists and works.

vernal crest
molten charm
vernal crest
molten charm
#

Thank you so much!!

lusty elm
vernal crest
#

Can't guarantee it will be what you need but it's all I've got right now especially since I'm heading to the pharmacy lol

rancid musk
# dusk mulch

\ s/skill/time
-# stupid formatting because Discord uses s/e/d/ syntax to edit messages...

naive wyvern
#

Hii Khloe !

naive wyvern
#

What fortuitious timing 😭
I learned recently that shipping bin screen is c#, is there a way to target that with Theme Manager?

hard fern
#

"i have such a cool project idea!"

9000 assets to draw

lusty elm
#

if ur gonna draw that many assets you might as well make your own game and its 10 expansions.

hard fern
rancid musk
brave fable
#

pretty sure that one's StardewValley.Menus.ShippingMenu

#

unless you mean the actual drop-in box ingame rather than the day summary screen

naive wyvern
#

Nope ! It was Roku who looked into it :(
Thank u blueberry SDVpufferheart

#

I mean the background yes

rancid musk
#

Okay, just that one. I wasn't sure if there was something else I was missing or not

hard fern
#

Hm speaking of assets, what would count as 1 asset? Does the size of it matter so long as it's all part of the same thing? Like one very large tree

naive wyvern
#

I wanted to replace the mountains and sky with van gogh's starry night you see

naive wyvern
lusty elm
#

I think replacing the Mountain would cause some NPC errors, also people would be very upset at no mining. /j

hard fern
naive wyvern
#

Object sprites are so fun, i get it

rancid musk
#

Ah. So, technically you could replace... some stuff with Theme Manager. But it would not work well for that.

#

And you'd need to write a custom patch file for it

naive wyvern
#

Ahh :(
Ill have to put the idea in the backburner for now

#

Thank you for taking a look Khloe SDVpufferheart

hard fern
#

16x16 objects are so much more fun than actually working on the cp part of my mod .. but the more objects i make the more lines i have to write....

naive wyvern
#

You just have to add the cp line as soon as ur done with the sprite so you dont forgetti

hard fern
#

Woah ur so smart

rancid musk
#
[Theme Manager] Detected Supported Values:
- TextureFields:
  - StardewValley.Game1:mouseCursors (Offsets: 7, 49, 84, 133, 179, 233, 270, 339, 384, 412, 452, 504, 583, 626, 669, 712, 755, 907, 956, 1028, 1096, 1375)
  - StardewValley.Game1:fadeToBlackRect (Offsets: 819)
  - StardewValley.Game1:staminaRect (Offsets: 1452)```
Like, to replace the mountains you'd need:
1. An image with the same size as Cursors
2. To target mouseCursors at *specific offsets*
#

And there are a lot of offsets. It's... doable, but prone to breaking if the method changes at all and messy.

naive wyvern
#

Oooh
Ill try this out when I can !

brave fable
#

i'm fairly sure the offsets there are simply the mountains, the moon, the moon's stupid face, and several sky gradients

#

there's also some special behaviour for clouds while raining iirc

#

and whatever easter eggs are flying by at the time

rancid musk
#

I should mention, the offsets listed by Theme Manager here are specifically IL instruction offsets.

#

Not anything to do with where in the texture something is. :>

brave fable
#

ah i see, didn't think they looked like any familiar x/y offsets hahah

rancid musk
#

It's fun, lol

brave fable
#

i've stared at those sky gradients a whole lot

devout otter
rancid musk
#

In non-ShippingMenu-is-crazy news, my GameMenu replacement is going well so far.

naive wyvern
#

I wonder if the thing im planning would work well at all with the patch PES_Think i wouldnt know how to begin arranging the layers i need for the thing @_@

#

Oh! I saw the game menu a while back, its looking sleek!

rancid musk
#

The idea is it's looking exactly the same as vanilla, lol

lusty elm
#

MY attention is bouncing around like a ping pong ball in a tornado, and its not conductive for making progress on anything

brave fable
#

hopefully it's looking completely identical hahah

latent mauve
#

Question: I'm trying to use patch export to doublecheck that my ToArea values are coordinates are correct on temporary_sprites_1, but it doesn't appear to be exporting with my changes? Even though I know the changes are happening, because the desert trader sprite has patched itself in correctly.

#

Is there something I'm doing wrong there?

#

It's just patch export LooseSprites/temporary_sprites_1 correct?

brave fable
#

SMAPI will tell you in the console if there's any issues exporting, have the ingame conditions changed since your patch was applied?

latent mauve
#

nope.

#

and there's nothing in the log about the patch not applying, and as I stated, I can visually see the patch in game

#

patch export on Cursors worked as intended, but temporary_sprites_1 is not

hard fern
#

SDVpuffersweats im gonna do it, im gonna finally play the game

#

(for all of however long it takes me to test things ..)

#

Sigh

brave fable
#

they made a game based on this?

dusk mulch
#

(im about to play the game too)

dusk mulch
hard fern
#

How bad is it that im dreaming of mod making

dusk mulch
#

THATS IT IM DOING IT

#

that fucking glittering bolder removal bundle is so annoying because all it does it unlock panning

#

so im replacing it and adding a whole new area

dusk mulch
naive wyvern
dusk mulch
#

Where are the bundle reward strings stored?

#

Like the text that says "Reward: Bus service repaired"

hallow prism
dusk mulch
#

its an event, and a couple flags and some strings

#

OH

#

SORRY

hallow prism
#

I mean add more consequence for repairing it

dusk mulch
#

I NEED TO REMEMBER NOT TO PING YOU

hallow prism
#

Why removing stuff

#

It happens

dusk mulch
latent mauve
#

I mean, you could tie something else to that unlock in addition?

brave fable
dusk mulch
latent mauve
#

Yeah, I was saying that you didn't necessarily need to remove the panning bit, but just add something else to the reward

dusk mulch
#

Well I only have so much space to put the rewards text

latent mauve
#

Following up on lumina's question, is all.

dusk mulch
#

HOW DO ANY OF YOU FIND ANYTHING IN THIS?!

coral oasis
#

Try a proper code editor, like notepad++, vscode, visual studio

dusk mulch
#

oh yeah

#

i forget i have notepad++

#

Well what I was looking for isnt here

coral oasis
#

I need some help understanding how to edit the construction costs for buildings, I'm updating my mod from before 1.6 and now the old way doesn't work...
and I tried copying out of the blueprints.json file and editing the string from there but that doesn't seem to work either. it still keeps the vanilla construction values for the fish pond

velvet narwhal
#

blueprints doesn't exist anymore afaik

#

buildings should be in Data/Buildings.json

rancid temple
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!

coral oasis
#

Something like this?

#

or this?

hallow prism
#

maybe the second but without the buildmaterial in the targetfield?

hallow prism
royal stump
#
  • file extensions aren't used in targets, so use "Target": "Data/Buildings"
  • BuildCost is a seperate field & doesn't contain BuildMaterials, so remove "BuildCost" from TargetField
  • remove "BuildMaterials" from "TargetField" too, I think
hallow prism
#

to clarify, my question comes from two elements :

  • just adding/changing text is easier than removing
  • people may be confused at stuff being removed
    If you're fine with both then go for it
coral oasis
#

I'll try and see if this works

#

stuff has changed a lot since I last modded stardew lol

royal stump
#

targetfield is a bit complicated, but it basically zooms in on a specific field, and then your "entries" happen within that

#

as compared to just replacing the entire building entry, or top-level fields

coral oasis
#

it worked 👍 thanks

#

I'm sure people will be happy that it's finally updated lol, only been like 2 years XD

versed wyvern
#

What's the proper way to have a custom sound effect looping during an event cutscene? I don't see any event command to stop a sound effect the same way that music has a play and a stop command, am I supposed to add them to the game as a music track instead? cathuh

woeful lintel
#

Heya! Do you have some time to check how Machine Furniture interacts with FF? I took a look at MF's code but I don't fully understand what your patches are doing, so I feel like I'm not qualified to figure it out. My biggest concern would be what is MF's reaction when Furniture.heldObject is a Chest, does it still work?
If you have some time to check that out, there's a preview build of FF's new version in here https://discord.com/channels/137344473976799233/1340345659642875915

harsh radish
#

Hello!

I know I’m probably the third person this week saying this, but—I’m new to modding and have some questions.

I’m working on a mod that adds a new NPC. So far, I’ve completed the pixel art (portraits, sprite sheets, rooms, etc.), and now I’m starting on the dialogue. However, I’m also very new to programming, which makes this part a bit challenging.

Here are my questions:

1- I’ve read through some of the wiki, but I’m still confused about what I actually need to do. For a mod that adds a new NPC (rather than just modifying an existing one), do I need to program in C#, or can I do it entirely with Content Patcher? From what I understand, Content Patcher mostly replaces existing content rather than adding new things—but I might be wrong!

2- Am I taking on too much for a first mod? Should I start with something simpler, or is the hardest part actually the pixel art?

3- The programming side of things is really confusing to me. I’ve read the wiki, but it feels like I’m missing some prior knowledge—almost like it assumes I already know something about programming. Is that the case?

If anyone is willing to help a lost soul navigate the cruel world of modding, I’d be really grateful! 🙏

brave fable
#

question: would you consider rice cakes to be food_cake

#

there has to be some logic in here somewhere behind Stuffing as food_sauce

#

bruschetta is food_pasta...

lucid mulch
vernal crest
# harsh radish Hello! I know I’m probably the third person this week saying this, but—I’m new ...
  1. You can do an NPC entirely in CP! No C# needed whatsoever.

  2. It is a lot for a first mod, definitely. There are no parts of an NPC that are really any more difficult in terms of using CP than other types of mods but there are bits that are fiddly and can be hard to do until you know the tricks (things like schedules are fragile and you need gift tastes for some dialogue to work properly etc) - if you plan to stick around to ask for help in here as you go, you'll get advice for how to get past those tricky bits though. It can be worth doing just a portrait replacer for an existing NPC or something first so you have something small and concrete to help you learn how CP works.

  3. Prior programming experience definitely helps in understanding the concepts involved in modding (like knowing how important it is to stick with the syntax and pay attention to commas etc) but it's in no way necessary.

harsh radish
#

Thanks for the help!

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

vernal crest
#

I jumped into NPC making very early into my mod exploration journey (I made part of a map mod first) and have learned a lot while working on her to the point where I regularly help people in here with theirs. Even though I've not even finished mine yet xD

molten owl
#

i've got a question here, what's the easiest way that i can add my custom item into the game? i plan to add my own custom totem into the game rn.

#

got lost

hallow prism
#

using CP for the item, spacecore for the totem part

vernal crest
#

Content Patcher for the item itself, Spacecore for the warping

#

Too slow, Lumi beat me

molten owl
#

alright thx, now i have to learn how to CP

vernal crest
#

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

vernal crest
molten owl
#

sure thing, thx for an advice SDVpufferheart

weak pulsar
#

So, as far as I know it's not really possible atm but having fallen in love with 8Aw8A's Nature in the Valley, which let's you resize sprites within it's code...

Is it possible to resize custom farm animals in the same way? I'd love to be able to recycle the smaller Pokemon's sprites into farm animals without having to actually remake them smaller! (I'm using Livestock Bazaar for adding in my Poke-animals! Which, as far as I know, doesn't have any configs for size!)

if not possible, then more art it is--I pray rescaling keeps them semi-accurate as a base wheeze

vernal crest
#

I think farm animal size is editable just by adjusting the SpriteWidth and SpriteHeight fields BUT they run into problems with not being able to enter or exit farm buildings if they're made bigger than vanilla. IIRC cryomancer ran into that issue with his dinosaurs and had to make a bigger custom barn...

weak pulsar
#

Luckily, I'm looking to make everyone smaller CharmanderFire !! Thank you for telling me which fields!! ❤️

vernal crest
#

Oh okay! I misread your message xD

lucid iron
#

You can just do 16x16 animal but leave more whitespace

#

Same with 32x32

weak pulsar
#

I already have the larger sprite drawn in 32 by 32 for NITV, so that the Pokemon could have more detail. I can redo it as 16x16 (and all my previous animals were) but I wanted to both compare natural 16x16 to a shrunk down 32x32 as well as hopefully recycle sprites between mods instead of drawing something twice purely for size.

I have a feeling they'll look better natively drawn as 16x16 but I'm hoping for a lazier route SDVpufferparty

naive wyvern
#

hallo im looking to make my own machine with some custom recipes, what should I look for to read more about Babymoji

calm nebula
#

[[Modding:Machines]]

naive wyvern
#

thank u atra !

lucid iron
#

Do you desire 32x32 sprites but on a 1 tile sized farm animal? I.e. chicken

weak pulsar
#

Yes!

lucid iron
#

Normally if the animal is bigger then they just need to have bigger door (lives in barn or custom building)

weak pulsar
#

I desire smaller! Like in Nature in the Valley--I can make 32x32 sprites, but then decide their scale is much smaller

lucid iron
#

For visual only you need to do spacecore hd textures or scale up 2

#

The game generally don't give you knobs like this monS

weak pulsar
#

!! Spacecore!! That's it!! I see in NITV's requirements eeveewow

lucid iron
#

This is completely different feature than what nitv is using spacecore for

#

It's also going to be massive pain because you need to target farm animal walk cycles 16 times

#

Scale up 2 should he easier on that end iirc

#

(spacecore has a lot of features you will have to go look at it's docs for everything)

vernal crest
lucid iron
#

LilyDerp I wonder if you can do like, catch a pokemon for your farm

gentle rose
#

(not all by a long shot afaik but a lot of useful ones!)

lucid iron
#

It could either be something like

#

Item shop that sells egg for nitvBug items

#

Or livestock bazaar to buy animal directly with nitvBug items

naive wyvern
weak pulsar
#

Lowkey hoping to ask for a way critters can be released on your farm to roam like they do in the museum area yanblush

I'm already using Livestock Bazaar for some custom mons I have in the work--I'm caught between doing their smol sprites normally or trying to resize so that they're visually the same as the NITV versions 🥲

vernal crest
calm nebula
lucid iron
vernal crest
lucid iron
#

It looks like the 2 kind of anim used in nitv is equivalent to "RL" and "DRUL" in trinkets

#

So you can used them directly for trinkets, scale is supported there too kyuuchan_run

vernal crest
#

Wow, turns out somebody named Dem1se has written a guide to making UIs in C# on their user page on the wiki. How hidden!

weak pulsar
#

I have Trinkets saved in so many places rn--I plan to jump straight in after I have NITV mons made so I can reuse the sprites there!!!

lucid iron
#

Do they explain the neighbor stuff

vernal crest
#

Is that about UIs or about trinkets, chu?

lucid iron
#

UI

#

The elusive neighbor id/controller nonsense for vanilla ui

vernal crest
#

No mention of the word neighbour/neighbor so I'm not sure

lucid iron
#

Unfortunate hokuhands

vernal crest
#

It's also from 2021 so it might be very outdated but either way hopefully it will at least give me some insight into the classes and stuff, which I am currently lacking.

lucid iron
#

Cool that it's a thing at least

#

What are you trying to do again

#

If you plan to eventually use stardewui for this ui ill warn you that it's pretty different than making vanilla ui

vernal crest
#

My latest pivot was to "put a portrait on a blank menu in the hope I will learn slightly more about C# than I know now" because trying to learn StardewUI and the C# needed to learn StardewUI at the same time was too much for me xD

#

I have no actual mod plans for any of it, I was just trying to come up with ideas of stuff to do specifically for the learning.

#

Just to give me direction of some sort.

lucid iron
#

Yep fair

#

For vanilla to show something as menu you need to implement a subclass of IClickableMenu

#

Override draw so it draws ur stuff

#

(plus setup clickable component but that's pt2)

#

And then Game1.activeClickableMenu = new YourMenu()

vernal crest
#

I have been able to find very few tutorials for this sort of C# use (modding; everything I find is either "print a line to the console" or "let's make an entire game!") so I grab onto anything that looks like I might even understand a bit of it.

lucid iron
#

Stardewui does the "implement subclass of IClickableMenu" for you basically

#

But eventually u gotta set the active menu, that part is identical

vernal crest
#

Is this the implement subclass bit? public class MyUserInterface : IClickableMenu

lucid iron
#

Yep

vernal crest
#

Thanks. I think where I struggled with StardewUI is that because it's large and capable of complex things, it spreads itself out over so many .cs files that are doing so many things and I didn't really know what any of them were.

lucid iron
#

It's very abstracted yep

vernal crest
#

I had to download 7 .cs files to get just one of the examples from the test mod working and I have no idea what most of any of those files is doing lol

lucid iron
#

Bc the idea is you write a sml file that tells stardewui how your layout should be done

#

And then break out the c# to give that layout behaviors

#

It's a common pattern for ui frameworks outside of modding too

#

Like html javascript

vernal crest
#

And then I started trying to go too far away from what that existing C# was doing (at least the bit that I'd managed to figure out) and so the way focus had it set up didn't work and I didn't know what to change to make it work.

lucid iron
#

The layout stuff has a lot of knobs really monS

#

For your case with the NPC.Portrait you need to expose it from context side

#

Kind of like how the animal icons and anim in livestock bazaar is done

#

Rather than defining it in sprites

vernal crest
#

Yup I have no idea what that means lol

lucid iron
#

This bit
public readonly SDUISprite ShopIcon = Ls.ShopIcon;

vernal crest
#

Focus told me to use this

        Tuple.Create(npc.Portrait, Game1.getSourceRectForStandardTileSheet(npc.Portrait, 0));

And I have managed to mostly understand that, I think. But then I got lost trying to figure out how to tell the code I want the Portrait for Leah specifically.

lucid iron
#

But I'll leave u to regular c# ukimasu

#

Oh there's a findnpcbyname helper iirc

tropic walrus
lucid iron
#

Game1.getCharacterFromName(qdData.Speaker)

vernal crest
lucid iron
#

So Game1.getCharacterFromName("Leah")

#

A lot of the not so documented stuff is "game helpers i can use"

#

Just gotta marinate yourself in decompile for few months (or ask here lol)

vernal crest
#

You can stop answering at any time, chu, but uh how do I connect that Game1.getCharacterFromName("Leah") bit to that Portrait Tuple code?

lucid iron
#

So this method returns a Character which can be a NPC

#

You need to keep it as an instant variable for usage by the portrait property

vernal crest
#

Like var character = Game1.getCharacterFromName("Leah"); or something?

#

(If my introduction to programming had been C# I swear I would have never become a data analyst because I would've given up on programming forever instead. This is by far the hardest language I've ever tried to learn. Mandarin was a breeze compared to this.)

lucid iron
#
public sealed partial record AbaContextForUI {
    // This is the NPC's name, right now it always returns Leah, but if you want to change portrait then you need to do [Notify] stuff
    private string npcName => "Leah";
    // Derive NPC from npcName
    private NPC npc => Game1.getCharacterFromName(npcName);
    // Derive portrait as StardewUI Sprite, use the first portrait at index 0
    public Tuple<Texture2D, Rectangle> Portrait { get; } =>
        Tuple.Create(npc.Portrait, Game1.getSourceRectForStandardTileSheet(npc.Portrait, 0));
}
#

i choose to use properties (the => stuff) because then you just need to change npcName to change the rest

#

but it could be that you never change this, and instead you just have many AbaContextForUIWithPortrait that have these 3 things

#

pen pals prob follows that i havent checked

vernal crest
#

Thank you, I appreciate your willingness to explain this all to me so much SBVCute

#

I am going to look at that tute that Ask Jeeves linked, look at that UI guide from Dem1se, and look at the common tasks page of the wiki and try to combine that with what you have given me to see if I can get somewhere.

#

But I will do so later because it is bedtime blob_cozy

languid aurora
#

Just so you know, since it can be a little confusing, the => stuff is just a shorthand (AKA 'syntactic sugar') for defining a property with only a getter, like this:

public int PropertyName
{
  get
  {
    return 123;
  }
}
#

So this part above: private string npcName => "Leah"; is the same as this:

private string npcName
{
  get
  {
    return "Leah";
  }
}
#

For properties like the private NPC npc above, this is great, but for ones like the npcName, if its not calling a function internally and won't change, you can do private const string npcName = "Leah"; instead and it's then a constant that is inherently readonly.

ivory plume
#

Does anyone recognize this farm type with a waterfall and bridge left of the farmhouse? I need to recreate the image with a different size for Nexus.

languid aurora
#

There's also readonly for things that aren't compile-time constants, but you'd like to stay a constant value, such as a Color value:

public static readonly Color WildHoneyLabelColor = Color.White;
remote pier
#

hello

#

i need help. i find it difficult installing smapi.. It always says malware blocked..

blissful panther
ocean sailBOT
blissful panther
#

Oh no! SDVkrobusgiggle

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

ivory plume
#

Thanks! The pile of logs is from the Hobbit House mod, so I recreate the rest of it.

languid aurora
#

I thought we'd turned off the Zola-ing

remote pier
fossil osprey
#

!macsmapi

ocean sailBOT
#
MacOS thinks SMAPI is Malware

There is currently a known issue with certain MacOS versions flagging SMAPI as malware and forcibly moving it to the trash, disallowing users from installing SMAPI.

If you are experiencing this issue, please read through the solutions in #1318323302779060324, which gives detailed instructions on how to resolve it.

If you are still experiencing issues after attempting the solution in common-bugs, please post a new thread in #1272025932932055121

flat sluice
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 64 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

calm nebula
#

You're not using her namespacex internal name in gift tastes

flat sluice
flat sluice
# calm nebula You're not using her namespacex internal name in gift tastes

I'm sorry, but I'm not 100% I know what you mean.
Should I replace "RejectItem_(O)460": "{{i18n:Dialogues.RejectItem_(O)460 |DT_dialogues={{DT_dialogues}}}}", with "StrojvedouciDenis.Eleanor_RejectItem_(O)460": "{{i18n:Dialogues.RejectItem_(O)460 |DT_dialogues={{DT_dialogues}}}}",, or do I not understand?

flat sluice
# calm nebula You're not using her namespacex internal name in gift tastes

Oh wait, it should be "StrojvedouciDenis.Eleanor": "{{i18n:Gift.love |DT_dialogues={{DT_dialogues}}}}/-2 -80 -102 -103 595 866/{{i18n:Gift.like |DT_dialogues={{DT_dialogues}}}}/-7 -17 -18 -19 -25 -26 -27 -74 -75 -79 -81 16 18 20 22 769/{{i18n:Gift.dislike |DT_dialogues={{DT_dialogues}}}}/-4 -8 -9 -24 -28 92/{{i18n:Gift.hate |DT_dialogues={{DT_dialogues}}}}/-20 -21 -22 -23 -95 -96 -97 -98 -99 -100 -101 -999 78/{{i18n:Gift.neutral |DT_dialogues={{DT_dialogues}}}}/-14 -29 72 305 308", right?

#

(changed "Eleanor" to "StrojvedouciDenis.Eleanor")

#

OK, thanks! And I should leave the other keys (like that reject item one) as they are right now?

#

OK, thanks!

flat sluice
latent mauve
#

Do they have East Scarp?

flat sluice
#

And that's why I ask if I should change the code.
Because I need to apply if the user has both RSV and ES installed.

latent mauve
#

Also I feel like your HasMod is structured incorrectly to contain two arguments?

calm nebula
#

That's an OR, not an AND

flat sluice
latent mauve
#

But then, I have always had to use "HasMod |contains= ModId":true with each on a separate line to indicate an AND, yes

flat sluice
calm nebula
#

That's an OR, not an AND

latent mauve
#

Comma separated is OR

flat sluice
#

Oh, and to have them both, what should I use?

#

2 commands?

latent mauve
#

Two HasMod | contains=, yeah

#

One for each mod you are checking for in your AND

flat sluice
#

So this?

        "HasMod |contains=Rafseazz.RSVCP": true,
        "HasMod |contains=LemurKat.EastScarpe.CP": true,
        "On/off": "on",
        "HasSeenEvent |contains=112": true
      }
latent mauve
#

You probably also need the curly braces in the appropriate spots, but I am on mobile and can't pull that up quickly just yet

flat sluice
uncut viper
#

no, what you just posted is correct

#

assuming you want all 4 things to be true

latent mauve
#

Disregard what I said about the curly braces then 🙂

#

I'm just waking up, likely thinking of a different use that uses the token

uncut viper
#

the outermost curly braces are removed in When conditions

flat sluice
#

And while am I coding this, what is the difference between "HasMod |contains=Rafseazz.RSVCP": true, and "HasMod": "Rafseazz.RSVCP",?

uncut viper
#

otherwise, CP treats them like a normal token and replaces them before they actually get looked at as conditions

uncut viper
#

however, two fields cannot have the same name

latent mauve
#

The contains argument is necessary so CP actually reads both

#

Otherwise it stops after the first HasMod

uncut viper
#

it wont stop, but will only read one at random (unable to guarantee which one)

#

undefined json behaviours are no fun for modding

flat sluice
#

Oh! So I guess it is barely always better to use the contains= conditions, right?

uncut viper
#
"HasMod": "Rafseazz.RSVCP",
"HasMod": "EastScarpe.CP"

this is not allowed

#

bc then you have two things named "HasMod"

#

so yes adding the |contains means that they are no longer named the same thing

#

and therefore you can use multiple

latent mauve
#

Yeah, if you are planning to ever check for multiple mods present in a single patch, you will need to use |contains.

wanton pebble
#

I remember when I had that issue with making UWS.... contains is just better overall even with one so you get in the habit of it

cursive walrus
#

i need mod help

#

smapi being a little bitch

brittle pasture
#

!mh

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

cursive walrus
#

oh didnt see that

#

whoops

nova hinge
#

Hello everyone! I've been a long time user of mods in SDV but recently struck with inspiration to try making a mod of my own, and I really appreciate all the resources that you all have available online and here to help get me started so thank you so much 🙏

I do have a question, as my mod is centred around creating new character events and dialogue— I do understand how the game's json files handle events and can very likely brute force my way intro translating my storyboard into the needed script, but it's also quite intimidating to work on and edit such long strings that become difficult to read or understand at a glance (especially just in a basic text editor).

Are there tools that people use to make the process more accessible (or even just easier on the eyes) for those instances where a single line can be >1000 characters in length? Or is it just a matter of being meticulous haha

brittle pasture
#

you can split a string over multiple lines

#

it's not valid JSON but SMAPI/CP allows it

ivory plume
# nova hinge Hello everyone! I've been a long time user of mods in SDV but recently struck wi...

One option is to break the event script into separate lines, since the game ignores whitespace around the /. So you can do stuff like:

"{{ModId}}_SomeEvent/": "
   command/
   command/
   etc/
   ...
"

Code editors and syntax highlighting won't like it though. So another option would be to use search & replace into multi-line format while you're editing the script, then search & replace back to one line when you're done.

nova hinge
nova hinge
lucid iron
nova hinge
#

thank you both, wish me luck and I hope I'll be able to troubleshoot things on my own haha, but it's a lot of fun to mess around and figure things out too. I'm excited to learn and might be back wiht more questions in the future

lucid iron
#

this doesnt have log in preview but that tree is definitely this farmhouse

ivory plume
# lucid iron https://www.nexusmods.com/stardewvalley/mods/12861

Thanks! Yep, I have the Content Patcher version of that mod installed permanently. (That mod is actually the reason I originally created Content Patcher.)

Technically that Alterative Textures version probably shouldn't be published on Nexus though, since I don't think the original has an open license/permissions.

uncut viper
#

content patcher origin story...

lucid iron
#

lore DokkanStare

ivory plume
#

(Apparently I'd rather develop and maintain a framework for seven years and counting than install one XNB mod.)

lucid iron
#

1.2 DokkanStare

uncut viper
#

its like that joke about programmers spending 5 days automating a task rather than spending 5 minutes a week doing it

lucid iron
#

it has a mode where you pop out the event script into a .sdvevent file for easier edit

brittle pasture
#

@true coyote hey, I tested the files you sent and the gates work for me? unless I misunderstood what your problem was

lucid iron
#

and syntax highlighting

brittle pasture
#

opened

#

(they're really cute btw)

nova hinge
true coyote
#

thats.. odd. Let me try. I wonder if the first sprite being one pixel off messed with it

#

@brittle pasture try it on a not vanilla color

brittle pasture
#

all the recolors I tested work so far

true coyote
#

hm ok

#

so if I place it directly on the fence instead of inbetweenpieces it works, but placing it in a space doesnt

#

you can tell by that that I normally place gates in blank spaces lol

brittle pasture
#

yeah, custom gates only work if you put it directly on top of your fence

#

that's a game limitation

true coyote
#

does the sprite for stand alone work?

#

cause it doesnt on mine

#

which is probably more of that limitation

brittle pasture
#

what does standalone mean

true coyote
#

so if I place a gate down on a random tile not near a fence

#

in vanilla it does this

lucid iron
#

arent gates 1 specific item

true coyote
#

but I have a sprite for it that is this

lucid iron
#

it cant know what fence to match unless its got fence

#

this particular sprite may appear if u have like

#

[fence][gate], then break the fence

true coyote
#

yeah, thats what I'm figuring, because its a custom fence without it being placed as part of the fence it wont show

brittle pasture
#

well it looks like this, if you patched that over

true coyote
#

oh there

#

yeah if I put on the gate and then remove the surrounding fence tiles

#

it gives me that sprite

brittle pasture
#

also one more thing, your double gate sprite is a row off. single gate looks fine (as shown above)

true coyote
#

so cute

lucid iron
#

does it stick when you save and reload game

true coyote
#

sec

#

it does!

#

ok now to figure out which gate sprite that is cause there are two double gate sprites

#

ah I'm guessing

#

these ones

#

I think the other is for vertical gates

#

and one of my things is off too

#

alright fixed that one, now gates

#

ok vertical gates are good

#

wuh why

#

I moved a gate piece and it misaligned my fence piece

#

how

jovial jungle
#

there is a part of me very tempted to get into stardew modding

#

because i have such a stupid idea for a mod

brittle pasture
#

(gotta run for lunch/etc, but finally, extra shed builders)

jovial jungle
#

i wanna make a mod that adds a comically ridiculous amount of very unnecessary crops, fish, gems, etc.

lucid iron
#

bus stop fences can do anything if you just talk to them

jovial jungle
#

it starts out as just. redundant spring and summer crops. that just aren't needed. but it gets unhinged very quickly

lucid iron
#

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

jovial jungle
#

i do have a few tutorials in mind i plan on following

#

to make my insanity a reality

lucid iron
#

please make sure they are updated tutorials

jovial jungle
#

i just need to find motivation lol

#

oh true

#

i was looking at the stardew wiki

#

i assumed it was updated but idk

lucid iron
#

yep the Modding:Content_Patcher page is good

jovial jungle
#

content patcher i will assume be my best friend, alongside a good number of extensions i got my hands on

lucid iron
#

the actual "get my crop into game" part aint that bad

#

you just gotta draw them sprites

jovial jungle
#

true

#

although i do intend on going further, like modifying the bundles to accommodate for this stupidity

true coyote
#

wtf

jovial jungle
#

i just think it would be a comically grindy challenge

lucid iron
#

i don't recommend altering CC bundles, for compatibility reasons

jovial jungle
#

ah, fair

lucid iron
#

you cannot install bundle mods in middle of a save

jovial jungle
#

well at the very least i could always add new bundles for different areas

lucid iron
#

yea unlockable bundles for that

uncut viper
#

(cant uninstall em, either)

jovial jungle
#

a shame that i couldn't make a harder cc though

true coyote
#

what happened to my tilesheet, its not taking adjustments anymore

jovial jungle
#

and by harder i mean grindier

lucid iron
#

its "not recommended" instead of "impossible"

brittle pasture
#

(Challenging Community Center Bundles does add a command to make installing/uninstalling bundles safer)

jovial jungle
#

true, i mean some mods do make heavy changes and are expected to stay installed the whole time

uncut viper
#

the CC bundles are created at the start of a save and permanent from then onwards. any changes made to your mod from that point on will have absolutely no effect. they are baked into the save from the very start and immutable

#

uninstalling, reinstalling, changing the mod, using a different CC mod, etc. nothing will change them after save creation, short of a C# mod specifically designed to regenerate them

#

so, immutable from CP

jovial jungle
#

okay so maybe this isn't the smartest mod idea, if intentionally stupid and bad and silly

latent mauve
#

Yep, it's why save-editing has to be used to fix CC bundles for people who remove mods mid-game that used to involve custom bundles (who haven't fully completed the community center yet).

jovial jungle
#

simply because of this CC bundle thing

#

guess it was good i brought it up here to learn of the stardew modding culture

uncut viper
#

ultimately its up to you to decide how much you care about the potential for issues

lucid iron
#

and again theres a framework that let you do non-CC bundles

#

so u can have bundle like gameplay still

jovial jungle
#

oh nice

latent mauve
true coyote
#

like I just moved the double gate down a whole row but nada in game

latent mauve
#

@shut edge sorry to ping, but I remember you fighting with this before for your fences. Any insights?

#

I distinctly remember conversations about fences being cursed, LOL

#

Alignments are weird

violet valley
#

@ivory plume is there a way to load a certain json if you dont have a mod, but load a different one if you do?

violet valley
#

oh ok

#

@ivory plume nice!

#

@ivory plume thanks for the help!

ivory plume
brittle ledge
uncut viper
#

does "it would be broken if you decided to go back to vanilla" count

violet valley
#

@ivory plume Noice

rare orbit
#

hey?? is the author of ridgeside and sve on here??

violet valley
#

@rare orbit probably

rare orbit
#

i wanna ask em for permission to make portraits and sprites for a mod im workin on

tiny zealot
#

flashshifter (SVE) drops in from time to time, but not often. i don't think i've ever seen rafseazz (RSV)

rare orbit
#

i asked on nexus but idk if they use nexus alot

violet valley
#

yeah you can ping Rafseazz and FlashShifter

lusty elm
#

You can also just check Mod Permissions.

uncut viper
#

you can ping anyone, but its not always recommended, welcome, or likely to get a response

tiny zealot
rare orbit
uncut viper
#

well, you are asking how to contact two mod makers with nearly 20 million downloads between them. if i was one of them i would make it purposely difficult for just anyone to contact me at any time for reasons ichor said, too, cuz you're probably not the only one who wants to get in touch. they both have pretty open perms for things like that though

lusty elm
rare orbit
#

since it's related to character sprites n portraits... should i ask here or in the making mod art?

#

cool cool!

final arch
#

doesnt rly matter where you ask I guess 🤔

ivory plume
rare orbit
lusty elm
tawny ore
#

imo, the way I'd prefer to be contacted by someone starts with them reading my mod page. For example, both SVE and RSV list communities that they invite you to join, and people often contact the authors from those communities.

#

i.e. they shouldn't have to go out of their way to be contacted by you.

tribal ore
#

Can anyone confirm if the "divorced" dialogue tag has a higher priority over other dialogue lines? I wrote some festival lines that should be loaded in when Relationship:Divorce, but I'm just getting the generic "divorced" line

final arch
#

Raf is somewhat busy irl but if you DM him on discord or ping him in the RSV discord he or Moe will get back to you soon SDVpufferheart

uncut viper
brittle ledge
formal crown
#

SDVpufferlurk Hello

tribal ore
brittle ledge
#

Oh, I see Sheku beat me

formal crown
#

Oh I'm pink, right

uncut viper
#

should do after 4 days

tribal ore
#

Hmmmm. I had it on a full week+ after. Guess I'll do some more testing to confirm

rare orbit
uncut viper
#

actually, do you mean literally just divorced or divorced_[name]

brittle ledge
tribal ore
#

The others did expire correctly

rare orbit
#

im workin on vanilla for now but i wanna include other mods too to match

brittle ledge
rare orbit
#

kk!

#

thank you!

uncut viper
#

then that one is not the CT, thats my bad, and i dont know exactly where it checks for that one but it probably has higher priority than most things

tribal ore
ocean sailBOT
#

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

tribal ore
#

!!!

violet valley
#

@ivory plume can you give an example of 2 conditions?

uncut viper
#

that is just a guess though based on other misc things i know about dialogue priority, but not a guarantee that i am correct

rare orbit
uncut viper
#

trying to parse the methods that control which dialogue is loaded is Pain™

rare orbit
#

i have to finish deciding what species each npc will be in vanilla first and that'll take me alot of time already

ivory plume
tribal ore
violet valley
#

A Condition string. Since Kel is Nonbinary has seasonal versions, can you give an example of a condition that checks if you have that mod, and if the season is summer?

ivory plume
formal crown
#

I've got a bug report on VPP's page where an user with Lookup Anything got errors trying to Lookup a fish pond with a legendary fish in it, I looked around in VPP's code and LA's code.
My theory is that it's a bug in LA because it uses records to generate the drops list, but in two of VPP's custom fish pond drops it uses RandomItemIds instead of ItemId and of course it's null by default which made LA very upset because the record's ItemId field is not nullable. (additionally, it doesn't take the Condition field into the account), only thing I don't know is do records really get upset when their non-nullable fields are tried to be set to null?

~~I want to make %100 sure its really LA before I ping Pathos about it ~~ but uh, he's already here, oh well, Hi Pathos! SDVpufferheart USweatDrop

ivory plume
formal crown
#

The user had sent one, let me link it:

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 30 C# mods and 18 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ivory plume
#

If you add a breakpoint (or log) in your Object constructor patch, is it receiving itemId: null?

#

But yeah, looks like the issue is probably that Lookup Anything isn't handling the RandomItemId field.

next quarry
#

am I doing something wrong here? (nevermind I put it on the wrong layer 💀)
it's not appearing on the map for me

        {
            "Action": "EditData",
            "Target": "Strings/StringsFromMaps",
            "Entries": {
                "Custom_Saloon_Celler_Miihau.1": "{{i18n:Poster.ftext}}", 
                "Custom_Saloon_Celler_Miihau.2": "{{i18n:PC.ftext}}", 
                "Custom_Saloon_Celler_Miihau.3": "{{i18n:Toys.ftext}}", 
                "Custom_Saloon_Celler_Miihau.4": "{{i18n:Sword.ftext}}", 
                "Custom_Saloon_Celler_Miihau.5": "{{i18n:Gear.ftext}}", 
            }
        }
lucid iron
#

Did you name it TileData

next quarry
#

do you mean this? (nevermind I put it on the wrong layer 💀)

formal crown
#

Or for a simpler answer, no it doesn't

ivory plume
#

Is your patch a postfix?

formal crown
#

Yes

acoustic summit
lucid iron
ivory plume
# formal crown Yes

I'll add a fix to support RandomItemId in the upcoming Lookup Anything 1.49.0; let me know if it's still an issue when you get that update!

formal crown
#

(To make sure, Condition field too? SDVpufferlurk)

next quarry
#

thank you <3

lucid iron
#

How do you want it to behave?

#

Should the condition prevent LA from showing anything at all

ivory plume
#

I'll look into condition support (probably reuse how Lookup Anything shows conditions in machine lookups), but no guarantees for 1.49.0 though.

lusty elm
#

rooBlank question, should I allow building buildings inside the greenhouse or leave it as a Nah?

#

Context, Greenhouse is in reference to these 4 maps.

lucid iron
#

Wouldn't buildings end up in the water

#

When season changed

tribal ore
#

Lovely maps, btw!!!

lusty elm
#

They will all be accessible at all times, aiming to lock each one into a season, and by Buildings I mean add them as targetable by the build menu for Buildings.

tribal ore
#

I'm taking a closer look right now -- those maps are actually greenhouse interiors?

lusty elm
#

The entryway

tribal ore
#

If so... then yeah. I think they are large enough that the ability to add bulidings would be very nice

#

I would certainly want to be able to put a coop or something in there. But would you restrict the type of buildings?

#

At least junimo huts for harvesting

lusty elm
#

I would just make them targetable as a map for the build menu, whatever that allows, I wasn't planning on any restrictions.

tribal ore
#

Cool. I think these are really gorgeous 🙂 What's the mod going to be called?

lusty elm
#

Prob just "Dray's Four Seasons Greenhouse"

tribal ore
#

I don't usually install map mods, but I'm really tempted by this one. Great work

lusty elm
#

I keep forgetting i'm idly working on a recolor as i make other mods, so i keep logging in and being surprised by purple grass from my proof of concept tests.

tribal ore
#

One event left. Just one.

#

Granted, it's an event that I will probably have to make a couple of variations for, depending on who the farmer is married to. But just one

shut edge
#

i just kind of messed with moving the gates around until it worked ok again...

#

feels like something in the past few versions may have very slightly altered something about fences

#

if it's any help, my fruit ghosts mod has my updated fences in it, feel free to reference them

ivory garden
#

Mobile versions of the refrigerator and chest. Does anyone know if there’s a way to decompile the android version to see what’s different about the inventory from mobile vs pc?

#

Can drag drop and place any items anywhere. I’d like to figure out if it’s possible to get the pc inventories to act the same way? Or maybe copy the character inventory to the chests/refrigerators to achieve a similar effect?

lucid iron
#

You need to change the Chest additem behavior

#

As well as the whole item grab menu behavior on select

whole frigate
#

Question: is there a list of dialogue keys for writing your own dialogue? Things like how to trigger facial expressions, how to move into a new textbox, etc

hard fern
#

yes there are

whole frigate
#

I'm looking through my dialogue mods and trying to figure it out, but last time I experimented, I didn't do great...

hard fern
#

[[Modding:Dialogue]]

whole frigate
#

Ooh thanks!

hard fern
#

hopefully this should be enough information

true coyote
shut edge
#

best of luck

#

it can be infuriating

#

i had to reload my game most of the time too

#

patch reload was caching or somethin

true coyote
#

It was going fine until I moved the closed double door for vertical tiles

#

Ans then it blew up

#

For now I've closed the game and photoshop, since ps had been running for like.. 3 days lol

shut edge
#

i had to overlay a bunch of colors on mine just to try and figure out what was loading in hwere

true coyote
#

Yeah I have the color guide on mine, there's a big gap in my horizontal double door and for some reason a whole line up even though they were aligned the same place as the vanilla fences :shrug:

#

So I've opted to widen my doors to see if it closes that gap

shut edge
#

here's the thing mine started doing

#

here's what ended up being the difference between the old and new

#

it never did really make sense

tribal ore
# whole frigate Ooh thanks!

If you do get stuck, looking at an example mod can really help. That or just posting the offending line here and we can help debug it 🙂

lusty elm
wanton pebble
#

How'd you manage that?

lusty elm
#

TreatAsOutdoors Probably

#

oh wait no, it straight up has outdoors marked on it

shut edge
#

that's neat

lusty elm
#

gonna have to remove that unless i want it fluff it as mimicing outdoor weather.

thin plover
#

Hi. Tried looking for some past messages about this but haven't found a hint of a solution yet. I modded the Farmhouse2.tmx and Farmhouse2_marriage.tmx maps to expand the top rooms northward 1 tile (and adjusted some walls). I'm seeing parts of the vanilla map poke through, however. Do I need to modify some other maps or adjust how my CP loads my custom maps, by chance?
https://ibb.co/whMb0M4K

Image image hosted in ImgBB

rough valve
#

How can I prevent a custom warp totem item from being consumed when used? (I'm using spacecore for the warping function)

lusty elm
#

spacecore has a consumed on use property if you're using spacecore to add the warp functionality

latent mauve
tribal ore
#

Like a Victorian

lusty elm
#

rooBlank that would be cool, but way beyond the scope of my current abilities.

thin plover
lusty elm
#

well, it would involve artificially creating bird animations and using them as part of the map, or fiddling with the critter code.

tribal ore
#

That's probably a separate mod xD

lusty elm
#

yea, also no idea. I mostly just make farm maps. rooComfy

tribal ore
#

If I ever get into doing non-CP mods, at least I have an idea now

latent mauve
#

(that dino wallpaper looks like the crib spot, which may be hardcoded)

hard fern
#

the crib is indeed hardcoded

thin plover
#

Ah, well I haven't technically tested in isolation. I don't think I have any other mods that should be affecting it, but it was still foolish not to explicitly isolate them as part of my troubleshooting process. The dino spot was definitely where the crib spawned. I removed it from both the Farmhouse2 map as well as paying Robin to remove it in-game, but that wallpaper section still remains. Do I need to edit FarmHouse_Crib_0.tmx to overlay seamlessly on my edited Farmhouse2?

I wonder if instead of raising the top wall by 1, I should lower everything else by 1...

calm nebula
#

Did you change the renovations

#

Also please love of God don't extend upwards unless you have to

#

Extend lower

hard fern
#

(i learned this the hard way)

thin plover
# calm nebula Did you change the renovations

I did edit the corner room to match the rest of my edits. I assumed extending upwards would be less invasive (fewer tiles to modify, including the warps into/out of the Famhouse.

gentle rose
uncut viper
#

(the same goes for extending leftwards too)

calm nebula
#

Also the "unrenovated" map

thin plover
#

Well, I definitely haven't updated a million maps, just 18 maps for the farmhouse interior. I assumed expanding up would be fine seeing as there were plenty of unused tiles around the vanilla Farmhouse2 maps, but it makes sense some things could still be hard coded in certain places. Will expanding down ruin the placement of anything else? I assume the cellar will be fine as long as I update the warps, but the Southern Room is probably hardcoded to appear at certain coordinates too? May just have to shrink the bottom floor...

lusty elm
#

Hmm i encountered an issue with the greenhouse i wasn't expecting...

paper sundial
ocean sailBOT
#

Log Info: SMAPI v4.1.10.3 - 1735840167 with SDV 1.6.15 build 24354 on Android Unix 34.0.0.0, with 20 C# mods and 0 content packs.

gentle rose
#

most mods aren’t android compatible

paper sundial
#

Seemingly a property which exists fine on PC, but didn't translate over to other platforms (or just android)

gentle rose
#

wait that’s your mod SDVpuffersquee you would know

#

yeah, android smapi has a lot of differences afaik

#

that’s why most mods don’t support it and we don’t offer support for it in this server in modded-tech-support

paper sundial
#

¯_(ツ)_/¯

#

Off to doing it by hand like before I suppose

hard fern
#

still impressed someone managed to revive android modding

lusty elm
#

I had a user ask yesterday if Forever Falls was "Android?? 🙏 " so they are out there.

hard fern
#

If someone ever asks that on any of my mods im just gonna shrug

#

Bc 😭 i dont know

#

In theory i could probably test my own mods on android but in practice i think my phone might explode on me

lusty elm
#

Thats basically what I said, "Not sure, I would guess not"

paper sundial
#

I don't provide more support then "Does it run?", don't own an android device, not going to get one just for debugging

lusty elm
#

Why is this happening? at this point im about to test if its a vanilla bug and not something i did....

#

rooThink or is this a feature.... is fruit trees placable on greenhouse tiles a feature that exists now? cuz it does have its own dirt removal cutout that matches the greenhouse dirt

gentle rose
#

my answer to “does it work on android” was “no clue, feel free to try it and find out, I’m not fixing it if it doesn’t”

paper sundial
lusty elm
#

i didnt know it existed, and i was trying to figure out why i was allowed to place trees on the tiles, i thought it was something i did

#

can't stop it either it overrides nospawn tree

paper sundial
lusty elm
#

huh, never knew that rooBlank

#

shoulda asked earlier, woulda saved 30 mins

hallow prism
#

what could prevent a fish catching info to show in Lookup Anything?

calm nebula
#

You have a GSQ

hallow prism
#

someone has trouble fishing one of VMV legendary and i don't know if LA just don't like the GSQ

calm nebula
#

Known issue

#

LA doesn't understand the GSQ

hallow prism
#

ok

calm nebula
#

(You can find me talking about it like two months ago)

hallow prism
#

ok

#

it's not the first time someone has issue with this one i believe so it's hard for me to be sure it's working fine

calm nebula
#

If it's the planet fish I caught it fine! Months ago!

hallow prism
#

it's the alpine char prince

dusk mulch
#

Where is the data for the ||bouncer explosion event?||

calm nebula
#

Ahhh okay maybe an atra should play the game

hallow prism
#

the planet one is probably the least rebellious (but the more hidden)

calm nebula
#

But yeah, known that LA doesn't handle most gsq for fishies

#

(Ran into it testing the pufferchick)

inland cedar
#

how to add new custom chest? like adding new item with CP
beside expanded storage

hallow prism
#

i see!

tawny ore
dusk mulch
#

Where is the bouncers data?

uncut viper
latent mauve
lusty elm
# gentle rose always has been afaik?

I never knew or forgot, I rarely pay attention to the greenhouse when i played a lot when it first came out outside of harvest ancient fruit every sunday, and in the last few years most of my playthroughs are coop and i usually surrender the greenhouse to a friend.

paper sundial
dusk mulch
lusty elm
dusk mulch
paper sundial
#

Welp, time to dissapear again, gn! aSDVpufferleaves

teal bridge
# paper sundial I don't provide more support then "Does it run?", don't own an android device, n...

Honestly, every single one of these Android issues reported so far is because of trimming, and I want to just say "stop doing that". I guess it's really an Android Stardew issue and not an Android SMAPI issue, but nevertheless I'm not sure why it's so important to save a few measly MB on binary size when the vast majority of the download is taken up by content.

If they would stop trimming binaries, and there were still issues with Android, I might take them more seriously, but it's silly to have to work around a bunch of missing methods just because reasons.

dusk mulch
#

Can someone teach me the difference between fromfile and target? I keep getting them mixed up

hard fern
dusk mulch
#

Thank you!

#

Where can I see the accepted characters for strings?

lusty elm
jagged void
#

Hey! I’m working on a Stardew Valley mod and stuck trying to override the right-click action on text signs - i have done similar things using Harmony but struggling to find the 'text sign' class - could anybody give me some tips? Thanks in advanced

dusk mulch
lusty elm
#

as in the signs you place yourself or the ones around the map?

jagged void
dusk mulch
#

oh

#

those

jagged void
brave fable
brave fable
#

you've probably already found that Target asset keys don't use file extensions, and FromFile filepaths do, which cements the difference

dark cedar
#

Hello, not sure if this is the right place to go, but I'm editing a SDV map in Tiled, just adding an image for now. I got it to work just fine then decided to edit the image a little. Now Tiled is cutting off the bottom of the image. I decided to revert my edit of the image, and it still cuts off the bottom. I've been looking in Tiled forums and playing with the pixel size but I can't figure it out. If anyone can offer advice or a point in the right direction that'd be great, thank you!

dark cedar
#

yes

brave fable
#

could you share a screenshot of your map in Tiled?

dark cedar
#

sure, just a warning the image is silly

brave fable
#

hmm, i see. this is quite a serious channel so it might be a problem

hard fern
#

mikudayo....

brave fable
#

are your image's width and height multiples of 16? if they're any less, tiled will cut out the tiles from your tileset

#

can't believe someone slashed the tyres on the miku bus

dark cedar
#

no its not, ill get to work fixing it now, ty for the help!

brave fable
#

no problem SDVpufferthumbsup feel free to come back if the van breaks down

dusk mulch
#

Jojamart? nah, MikuMart

potent folio
#

so i’ve cut down on the size of my mod to be a singular character to start with and i want her to be a little hermit farmer that lives in the forest but how much does sve affect the forest maps, i don’t really have the desire to go through extra work to make the mod compatible but i don’t want my mod to be overlooked bc it isn’t sve compatible

naive wyvern
#

If you make it an entirely different location that doesnt patch over the forest then you wont run into sve issues c:

brave fable
#

SVE dramatically changes the forest maps iirc, but a lot of key locations are in the same position (hat mouse, notably). for now don't worry about it, follow your vision, and keep it simple

#

compatibility and compromise always comes after you've set out what you want

naive wyvern
#

(Plus you dont have to do compat if u dont want to as well)

potent folio
latent mauve
#

Ah, the Woods.

potent folio
#

woods oki ty

brave fable
#

oh, the secret woods. i have no idea ☀️

potent folio
#

i wanted to call them the lost woods but ik that wasn’t right

latent mauve
#

Just be aware that you may run into pathing issues in the Woods unless you've put some pre-planning in there.

dusk mulch
#

are portraits required for an NPC?

latent mauve
#

It's excluded from NPC pathfinding by default, so if they ever want to leave, you have to work around that

brave fable
#

true, isn't the secret woods excluded from npc pathfinding?

latent mauve
#

It is.

latent mauve
dusk mulch
#

alright, ty!

brave fable
#

mmm, so you'd need an npc-only warp from their house to the forest/wherever else, even if there's a door/warp for the player to enter their home in the woods

latent mauve
#

You can do what I did and add a warp from the Secret Woods to another map that looks like a hidden clearing in the Secret Woods (for the player to navigate), and then have a NPC Warp from that map to the Forest to for the NPC to use for pathfinding, so they skip the "Secret Woods" part entirely when leaving and returning.

#

But if you want them in the actual Secret Woods, you need to resign yourself to using a 0 schedule and that they will not move away from their spot for whatever days they start there.

calm nebula
#

It's not in 1.6 iirc

latent mauve
#

The Map property is true by default in 1.6, I haven't tried to see what happens if you change that to false.

potent folio
latent mauve
#

Well, once again, they'd warp to the farmhouse, not your farm. Same issue there.

brave fable
#

.. but the farm is still excluded from npc pathfinding SDVdemetriums

calm nebula
#

You can change it to false

calm nebula
#

And cellars

#

Don't try to make your npc go into a cellar

brave fable
#

(has anyone?)

latent mauve
#

so noted

brave fable
#

locations says that Cellar isn't excluded, at least in its data definition

latent mauve
#

I'm sure at least one person has had the idea of putting an NPC in their basement.

#

But cellars are wonky because they're instanced by farmer/farmhand house

brave fable
#

actually you know what i've tried that. guilty

brittle pasture
latent mauve
#

You missed where Atra said the value can be changed to false

brittle pasture
#

ah yeah
all these pink names

latent mauve
#

So I think that was a "It's not a hardcoded exclusion now"

brave fable
#

the devs really did let us just go and patch every location to ExcludeFromNpcPathfinding: true huh

#

makes me a lil sad that so many locations don't have a displayname

latent mauve
#

Worldmap shenanigans still throw me, and I've done it twice

brave fable
#

got halfway to making a location name popup mod in 1.5 already, but locations generally weren't mapped to names at the time

latent mauve
#

Successfully even

brave fable
#

modding wiki indentation causing me a fit

calm nebula
hard fern
dusk mulch
uncut viper
#
for (var i = 0; i < Math.Random(0, 5); i++) {
  for (var j = 0; j < Math.Random(0, 5); j++) {
    indentation += " ";
  }
}
dusk mulch
#

maybe i should learn C#, i know a bit of general coding from GML

brave fable
#

json.dumps(fp, s, random(5))

potent folio
#

so what i’m hearing is i can have an npc in the secret woods

hard fern
#

so because i decided to do This, i would need to add npc warps so that they can get in/out of their rooms right? bc the doors there are Not Functional

lucid iron
#

You can but it's cursed isn't it?

hard fern
#

oh im realizing this is a horrible screenshot

lucid iron
#

Pathing nonsense

brave fable
#

yeah we've been over the pathing issues a moment ago

potent folio
#

i read that all i just didn’t know what it all meant

lucid iron
#

Don't let dreams be dreams etc

latent mauve
#

It means, if you change the Data/Locations entry for the Woods, you MIGHT be able to path in it, but we haven't tried.

#

And if not, there are workarounds, like we discussed

brave fable
#

really just make your character how you will, and when you notice your character isn't pathing anywhere come back here and we'll give you a solution

#

don't stress on the technical issues too much

potent folio
#

is there a good guide on making unique npcs?

latent mauve
#

There's enough work to do on an NPC that fixing the home is the last thing you have to worry about, tbh.

#

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

brave fable
#

that said, you really super can't have your npc walking around the farm at this point

#

or the backwoods north of the farm. those two are just not it

dusk mulch
#

why does the governor know so much about modding

latent mauve
#

Look, the missus likes to meet new people, ok?

#

At some point you have to outsource

brave fable
#

wonder how the npcs react if you only mark Town as ExcludeFromNpcPathfinding: true

calm nebula
#

They stay in bed

lucid iron
#

Eepy

calm nebula
#

Depression

brave fable
#

lacking in aspiration. lousy characters

calm nebula
#

Hi esca!

potent folio
#

so there is something extra and cute i want to do where she has like pets that are npc’s as well like mr.ginger, but you have to max friendship with her pets before she’ll accept the boquet

uncut viper
#

that is doable

royal stump
#

@lusty elm Sorry to ping, but I got a bug report and noticed Forever Falls Farm has 2 map name typos in the FTM content.json:
"MapName": "Maps/Draylon.ForeverFallsBeachCave" should be "MapName": "Draylon.ForeverFallsBeachCave"
(also it includes the data folder with some test save stuff, but that doesn't really affect anything)

#

the bug itself is just "FTM couldn't find the map, started looking for TMXL buildable maps, and errored because that code is ancient" SDVpufferdizzy fixing that part separately

brittle pasture
lusty elm
#

Thanks, I'll go fix the typo, you said 2? Or just the 1?

#

Or is it the same typo 2x

royal stump
#

same map typo twice, it's just the beach cave one (with two FTM areas)

brave fable
hard fern
#

fighting off a cat while map making is Hard

calm nebula
#

Don't fight

#

Cuddle

potent folio
uncut viper
#

uhh

#

maybe with spacecore's roommate marriage commands

calm nebula
#

Yes with enough c#

uncut viper
#

if the pets are actual NPCs like mr ginger it should be fine

#

tho i guess that relies on a poly mod