#making-mods-general

1 messages · Page 489 of 1

cyan marsh
#

those mostly replace music

autumn tide
cyan marsh
#

so, yeah

ornate trellis
#

good news, my crabpot fish work on the first try

autumn tide
#

i thought it added music

cyan marsh
#

some instances it does..

autumn tide
cyan marsh
#

Like secret woods has different music in winter

autumn tide
#

aight i'm gonna go work on some portraits now :) nice chat!

brave oxide
#

Hello, I have an idea for a mod that I would like to bring to life, but I have no knowledge of programming. I was hoping to rely heavily on ChatGPT and the frameworks listed on the wiki. Could someone with experience working with these frameworks give me an idea of which one would be most appropriate to use?

My idea is basically to create “special interactions” between combined rings. For example, combining the burglar's ring and the napalm ring would result in the “piñata ring" with an improved effect that replaces that of the two rings that compose it. Instead of having those effects, it would have a “super” effect (with a 2% chance) of causing an explosion that would release the equivalent of 3-5 times the enemy's loot.

I've looked into frameworks a little, and I'm not sure if “BC” would help me change the “crafts” in the forge.

lucid iron
#

Please do not rely heavily on chatgpt

cyan marsh
lucid iron
#

As for what you want to do, I don't think there's any framework that targets combined rings so it will have to be custom C#

#

Do you have programming experience?

brave oxide
uncut viper
#

and be aware that if you use chatgpt regardless of the warning, this server will not be able to help you with it when it inevitably breaks, as AI generated content is not allowed in this server, and that includes code

lucid iron
#

Hm combined ring is a netlist nice

lucid iron
#

You could just append a third ring to do what u want bolbclose

elfin kindle
#

Yeah it won't really be a solid way of making a mod, especially since understanding what you've made i suuuper important. Plus it's a fun skill to learn, i promise!

lucid iron
#

Do that on equip

#

That'd be the no harmony approach

cyan marsh
#

I learned C# to make my first SMAPI mod.. it's not that hard.. tho I don't understand things unless i see how it looks

heavy pewter
lucid iron
#

But yeah remember that framework mod = C# someone else wrote and exposed to content for reuse

#

When you want something no existing framework touches then you gotta do it yourself

lucid iron
#

The main thing is that idk if there's any game state query way to check what rings r in the combined ring atm

#

And the secondary thing is that you want some pretty niche effects that'll be a lot easier if you just did it custom

elfin kindle
#

I really can't have the FromFile be from the original game i am starting to accept.... Which leaves me in the dilemma of either packaging the original games sprites or just letting you override one cat color with the mod cat skin......

elfin kindle
#

Let you choose which cat is used in my mod events ^^" I made a false NPC with cat sprites but i'd like to let you choose which of the cats it is, currently its my own drawn one but some mod players are wanting the ability to choose

hard fern
#

o hmm

elfin kindle
#

Yeah SDVitemblobfish I feel like I'm so close to a solution that it'd be annoying to have to "quit" buuut also it's one small sacrifice to make to play my mod and i've helped commenters who want to turn it off go into the files and well.. turn it off

lucid iron
#

u can provide instructions to replace ur png with pet image of choice

#

should be same shape

elfin kindle
#

yeah I think I'll just do that honestly, it'll be the easiest for me and they can throw in any other mod provided pet sprites too for personal use

brittle pasture
calm nebula
#

That's probably fine but wow why do they zig zag like that

uncut viper
#

optimal path

#

dont question it

lucid iron
#

Lemmings

karmic gust
#

Idk how to phrase this correctly but I want to double check that there isn't a GSQ or something that keeps track of specific museum donations, right? There's just one for the number of donations made?

brittle pasture
#

MUSEUM_DONATIONS

#

oh wait I read too fast

royal stump
#

yeah, I don't think specific items are tracked (by existing GSQs), but that can check types

karmic gust
#

Yeah that's what I figured. I have an event taking place at the museum, requiring it to be completed because they're discussing certain artifacts and it was pointed out to me that only like... 7% of steam players have the completed museum achievement soooo I just wanted to double check that

calm nebula
#

Make your own museum reward

#

Put the reward as a mail flag

karmic gust
#

I didn't know you could do that with CP!

calm nebula
#

Data/MuseumRewards i think

royal stump
karmic gust
#

Thank you! I'll read up on that

royal stump
#

(I bookmark these every time they come up & I still didn't have that, I'll never run out SDVkrobusgiggle)

brave fable
#

(just use the category page!! you don't need 100 bookmarks when they're all collected for you)

calm nebula
#

Just memorize everything easy

royal stump
#

oh, I figured that wouldn't show enough because of fandom conditioning SDVpufferheart

brave fable
#

burned into my brain

royal stump
#

(but my firefox url bar only shows bookmarks & it's easy, so I'll keep doing it)

tender agate
# uncut viper optimal path

I was wondering if we could edit the optimal path algo to add 0.0001tiles on turns or something to stop zigzagging

brittle pasture
royal stump
#

sagely nodding

#

while still doing this

calm nebula
#

Shouldnt...she

#

It's short

#

I guess not

#

Mountain town bus

#

Mountain backwoods bus

#

Anyways

brittle pasture
#

yeah I am praying that the fact that Town is before Backwoods means it should get picked first according to the game's macro pathfinder

calm nebula
#

Yes

royal stump
#

so re: earlier discussion, is there any obvious issue with texture loads/edit redirects? SDVpufferthink
feels like someone would've frameworked it before

//tbd as an asset
AssetLoadRedirects.Add("Characters/Abigail", "Maps/springobjects");
AssetLoadRedirects.Add("Characters/Sam", "Maps/spring_outdoorsTileSheet");

private void Content_AssetRequested(object sender, StardewModdingAPI.Events.AssetRequestedEventArgs e)
{
    if (e.DataType == typeof(Texture2D) && AssetLoadRedirects.TryGetValue(e.Name.BaseName, out string redirectName))
    //Game1.content.Load the redirect etc```
lucid iron
#

What's the worst that could happen anyway the npc can have fun in backwoods if they want

royal stump
#

with static typing because I'm not sure if Load<object> would break

lucid iron
#

you have to be the propagator of texture changes

royal stump
#

ah, yeah, wouldn't update the redirects ig

lucid iron
#

it only tracks 1 level and the target asset is special by design

#

i think if u do a proper graph data structure

#

and cycle check

#

u can just keep doing willinvalidatenexttick handling

#

until u finish propagating

lucid mulch
royal stump
#

yeah, I haven't had to prod the invalidation system (or assets in general) enough to worry about that before, complicates it a bit compared to the few line test setup

lucid mulch
#

specifically for textures, you need to be very careful

lucid iron
#

i dont think there was any premult alpha problems tho, surprisingly blobcatgooglyblep

calm nebula
#

Yeah, it's a sorta....hmm

lucid mulch
#

the fear is you can accidently put a disposed texture back into the pipeline

lucid iron
#

it was mostly me getting into shenanigans in which i stack overflow assetrequested

calm nebula
#

You either track cycles, in which case the user will be wary of using it (by possibly becoming a member in a cycle)

#

Or you don't

royal stump
#

I only went as far as trying to track looping redirects -> oh right, smapi breaks loop first anyway

calm nebula
#

And you death loop

royal stump
#

but yeah, no personal plans to learn how textures work if it's required for that feature SDVkrobusgiggle

lucid mulch
#

AssetRequested itself will only run once per tick per asset, and cache the load/edit operations

lucid iron
#

we should rly just

calm nebula
#

Meanwhile if I can cleanly just handle my own case, and avoid even possibly getting in that mess

lucid iron
#

dehardcode more bits that enforce a certain namespace for asset

#

which is what ATA/proposed smapi PR from buttons does for maps

royal stump
#

yeah, probably easier to get actors to look outside Characters/ than to dupe the texture etc

lucid iron
#

u can prob add like

#

Esca.tempActor

#

new event command works just like tempActor but no namespace restrict Bolb

royal stump
#

for that specific example earlier, I'd probably just say to build the player's pet from TAS SDVpetcat
though I only half-read & got sidetracked poking the asset events

lucid iron
#

well i do think petActor would work, there's prob just move/advanced move shenanigans in the way

royal stump
#

but yeh, events and such are much easier to staple on alt texture versions

lucid iron
#

its gonna be a pain to fix that SMCPufferjail

#

so i think go do personal png replace is fine until enough spoons

calm nebula
#

Chue, do appearances enforce

lucid iron
#

i dont understand the meaning

calm nebula
#

The characters/blah and portraits/blah

#

Do appearances enforcement thar

royal stump
#

looks like no

"Portrait": "Portraits/Caroline_Winter",
"Sprite": "Characters/Caroline_Winter",
lucid iron
#

naw they dont care PecoWant

royal stump
#

oh, the base texture might force Characters/ though

calm nebula
#

I think there is an event command ro change to an appearance but that might be betas

lucid iron
#

base texturename is joined with Characters yes

#

but atra the problem is more that

#

this aint real actor

calm nebula
#

There is now a random nonspcial npc in town

#

I'm sure no one will mind a random cat npc

lucid mulch
#

base texture enforces Characters/ but doesnt care if you have / or other stuff in the TextureName

calm nebula
#

Can you do "../Tilesheets"

#

Also aren't cats characters

#

Or are they Animals

lucid mulch
#

smapi still intercepts all asset manager loads and would presumably detect that as climbing and refuse it

royal stump
#

I think everything character-y derives from Character, but they have a subtype beyond that

calm nebula
#

Yeah

lucid iron
calm nebula
#

(Smapi asset inequality also doesn't know about ..)

#

Resolving that isnt trivial,the algorithm is lazy

royal stump
#

but yeah

calm nebula
#

You could do a lookahead and discard current segment SDVpufferthinkblob

lucid mulch
#

I must have just been thinking of the tilesheet logic, and it doesnt apply to asset names themselves

royal stump
#

(oh right, Cat and Dog classes still exist in 1.6 because load-bearing migration bits...)

calm nebula
#

Does it work though

royal stump
#

and pets are NPCs but farm animals aren't

brittle pasture
#

and honses

calm nebula
#

I think the load will work but I'm not sure asset propagation will understand it

brittle pasture
#

the ol sebastian horse bug

lucid mulch
#

I think if it went into XNB loading it might respect the ../ but I dont think smapi content pipeline will actually do the directory style logic

calm nebula
#

Agreed

lucid mulch
#

and will do AssetRequests for Characters/../TileSheets/myTexture

calm nebula
#

Wrlp. Who wants to write the PR to make assetname understand that

royal stump
#

I think I prefer when asset names are meaningless text SDVpufferdizzy

calm nebula
#

I'm on a stairmaster

lucid mulch
#

it will go through trim calls and remove .xnb if its at the end, and check if it ends with valid localization but not treat it as a directory

calm nebula
#

Immunity

royal stump
#

..\ yourself down and get to work

brave fable
#

you're climbing already. now for the tilesheets SDVdemetriums

royal stump
#

or is that up, idk

calm nebula
#

I will stay on this stairmaster forever dont tempt me

eager tree
#

Hi! I made an add-on to the mod the Muttering Farmer. It's a mod that makes text bubbles appear on the top of the farmer related to the context they're in. The author made it possible for anyone to add as many lines as they wanted or replace the original ones, using 18in files and his coding. I made my own additions, but I wanted to make it possible for players to choose if they want to disable any of the lines I made (e.g., disable lines for Abigail or Sam). The original mod already allows disabling for a few categories, such as spouses or location lines, but not for specific NPCs. I've been trying to do so for hours, and I can't seem to find a way to make a config file or make it show on Generic Config Mod. I don't know what I'm doing wrong or if it's simply not possible. I know this might lack detail to anyone who doesn't know the mod I'm talking about, but I genuinely don't know what to do 😭 I've tried looking for kind of similar mods? Like mods that add dialogue lines to other existing mods, but they're different since they edit and use different files?

eager tree
#

Yes :/

vernal crest
#

!json Show us what you've got so far

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.

vernal crest
eager tree
#

Yes

#

It is an add-on to another mod, which has a very unique mechanic per se? I don't know if that's what's creating an issue? I couldn't really take a look at it since it's a DLL file

#

Even my 18in files are different due to the mod being coded differently? I don't know how to explain better

loud sandal
#

@eager tree You are doing everything right, but I don't think anything in YunHikari's code exposes what you're trying to do. Me personally, I'd just make a small SMAPI mod using C# and Harmony and create a config that way.

#

Well you may not need Harmony, maybe just reflection would be enough, not sure though because I can't see their code.

eager tree
#

Thank you for the suggestion. I've been trying to study C# recently, but I don't know a lot yet. Do you think that for someone who has few knowledge about it it would be too difficult to create a config file that way?

loud sandal
#

You would need to look at the code for the Muttering Farmer, find maybe some extension API

uncut viper
#

what do you expect your config to do? The Muttering Farmer loads its own content packs and looks for their translation keys, you cant configure that

#

(thats a genuine question not a snarky one, im not sure 100% what your intent is here and trying to understand better)

#

i dont know what was in your included file

eager tree
#

I added a lot of a lines for specific NPCs, like Sam. But I would like to give the players an option to disable those lines in case it conflicts with their gameplay style. There are no lines for Sam in the original mod, just for non specified NPCs, but the mod author made it possible for other people to add lines for specific NPCs using his key generator and such (https://sorrylab.com/StardewValley/TFMGenerator.html)
I don't know if this explains better

uncut viper
#

what was in your included file though? TMF doesnt support edits via content patcher at all

loud sandal
#

You want to disable it for your lines only, not globally for everything -> JSON would not be enough imo

uncut viper
#

there is no functionality to do this with TMF

eager tree
uncut viper
#

its not trivial with C# either

lucid iron
#

i guess u can always 2cakes muttering farmer PecoWant

eager tree
#

Then there's no way to make it work? Isn't TMF written in C#? sorry if it's a dumb question

lucid iron
#

make ur own and expose it to content

loud sandal
#

It's a bit of a learning curve, but if you stick at it, try and give it a go. Start with modconfig class and some bools for your NPCs, go from there.

uncut viper
#

something being written in C# doesnt mean you can edit it with C# the same way you can edit a json

lucid iron
#

idk if that mod's open source but if it was PR is an option

uncut viper
#

making a config for your own C# portion is trivial. geting it to apply within TMF is not trivial

#

its not open source

#

nor source available unless the author just didnt link their github on the mod page

lucid iron
#

+1 to making your own take then

loud sandal
#

You would need to use a tool to see the code -> You can message YunHikari and ask for permission.

lucid iron
#

i dont actually think a mod like this is very difficult to make

#

obviously do not use the original lines from muttering farmer

uncut viper
#

it would likely be less difficult to make your own take on the mod than to do all the fucky reflection stuff required to hack it into TMF

loud sandal
#

Yeah it can be a bit of work, depends if you're into that @eager tree

eager tree
#

I'm definitely into it, I just will need to sit down and learn how to do it. Though I feel a bit lost as to where to start. I'll message the author to know if he allows me to look into his code, to start studying? Thank you the three of you for explaining it to me

uncut viper
#

to be clear you dont need permission to look at the code, you can already do that

#

but if you planned on still making it work with TMF through your own C# mod then you would need their permission to publish

loud sandal
#

Yup

loud sandal
lucid iron
#

i never even used muttering farmer but i think how i'd write a mod like this is

  1. define a bunch of events that could have farmer responses, some could just be smapi event some might be a harmony patch to specific spot
  2. implement the drawing speech bubble stuff in RenderedWorld event
  3. load a custom asset from content that defines event -> farmer response line
#

voila trigger actions have been reinvented

uncut viper
#

personally, i think you should take the much much easier route of just making a different i18n file per character and telling people to delete the ones they dont want

#

if you use the folder-style of i18n, this would work easily

lucid iron
#

when u load from content u do give other mods a chance to put in their lines

#

so maybe a crop mod might add a more specific dialogue about their very stinky flower

eager tree
eager tree
uncut viper
#

in this case, the required things you'd need to do to make this work with TMF are things that i would feel confident in saying 98% of C# mods do not bother to do

lucid iron
#

if u dont want to deal with draw for now

#

u can always use the game chat or hudmessage

uncut viper
#

in the grand scheme of C# its far from the most challenging thing, just an annoying thing that, usually, there are better ways to achieve like an API. TMF just doesnt have one

#

(this is just to say that i think there are better kinds of "complex" mod to learn to make that will be much more practical)

lucid iron
#

but it being a not too hard to impl thing is nice when u r learn

uncut viper
#

to be clear im talking about the approach of hacking your way into TMF's process via reflection and harmony

#

not the roll your own implementation way

lucid iron
#

ah yes breaking into another mod is many hurdles Dokkan

uncut viper
#

rolling your own i think would be very good learning

eager tree
#

thank u very much ^^ I would have probably spent a few more hours trying to make it work without ur guys help lmao

tiny zealot
#

(C# dotnet build shenanigans) i am tinkering with having a shared project for my mods and i could use some guidance.
what i want:

  • have a bunch of .cs files in the shared project
  • reference this project from another one
  • the source files are compiled directly into the referencing project (into the same dll)
    what i've been able to get so far is compiling the shared project into a separate dll that gets bundled in the mod zip, which i would like to avoid.
    anyone know how to set up the xml files for this? i am not using an IDE so i am looking for .csproj etc syntax and not VS instructions
lucid iron
#

I have example hold on

uncut viper
#

example probably better than my less helpful suggestion which was to just copy what Pathos does for his mods SDVpuffersquee

lucid iron
#

After that I can using Mushymato.ExtendedTAS;

loud sandal
uncut viper
#

did you need to do anything specific to get GitHub to have a link to the shared project in the repo

lucid iron
#

Is that what u want ichor

lucid iron
#

I didn't need to do it this way but i did cus not a monorepo

uncut viper
#

i understand (<--- does not, but has no plans to use it anyway)

lucid iron
#

Well i google it every time too

#

It's something like u git submodule <mysterious additional args>

uncut viper
#

at this point im far too set in my modding git habits that its too late for me to make significant changes to my process now

#

my brain doesnt have enough plastic in it i think

lucid iron
#

We should all aspire to this the ultimate not mono repo

uncut viper
#

dont like a repo called more

upper rune
#

Can I ask why there are a billion mods about tortillas now? What happened since I last hyperfixated on Stardew lol??

tiny zealot
tiny zealot
#

yep, that's mushymato all right

lucid iron
#

Another victim

loud sandal
#

I didn't even know SDVpufferchickcry

lucid iron
loud sandal
#

I feel like long time fan here, I study so hard your trinket tinker lol

vernal crest
lucid iron
#

I'm glad it's useful and i hope it is not too elaborate for ur purposes Dokkan

loud sandal
lucid iron
#

Yes pokemans wew

#

I look forward to actually playing again in like 1.6.16

uncut viper
#

1.6.16? i didnt realize you moved your plans ahead of schedule

lucid iron
#

Scheme to get other ppl to make things is working

uncut viper
#

i still need to make my trinket i wanted to make with trinket tinker, but... art...

lucid iron
#

Well 1.6.16 was 1.7 so that seems fair right

uncut viper
#

no

lucid iron
#

nou

split dome
#

Hi, I'm really new to modding stardew, but I was wondering, is there a 'while' statement (idk the proper term) that I could use for sprite editing, where the sprites would only remain edited while a certain condition is true?

vernal crest
split dome
next plaza
#

It's been a while since Spenny has appeared. She was simply biding her time, building up her power until she became unstoppable.

The world may not revolve around you, but it sure does revolve around (S)Penny. Introducing: Penny the Reality Warper

https://www.nexusmods.com/stardewvalley/mods/40111?

Nexus Mods :: Stardew Valley

The world may not revolve around you, but it sure does revolve around (S)Penny.

#

oops. should hit publish

#

...did publish get "mod unavailable" too? agh

uncut viper
#

(unfortunately that is why i always wait a bit between hitting publish and posting it in here SDVpufferpensive)

urban patrol
#

i feel like "compatible" is a strong word for what this mod is skdjhfksdjhf

next plaza
#

It's compatible with other mods. Just not with you playing in the same location as her.

loud sandal
urban patrol
#

ooh animals are also immune it looks like

next plaza
#

Children are immune, because Penny loves children and totally not because I couldn't figure out why that didn't work.

#

(I already had to fight chests for like an hour. The base mod took like 10 minutes, probably much less if you don't count boilerplate.)

#

Also added this to the description, so newer players don't miss out.

urban patrol
#

does this + spenny cancel out, or only increase her power

next plaza
#

They all stack (except maybe Spenny with Spenny Lite? unsure about that, it might just supercharge her if you talk to her)

#

The video does not include the other mods, since I was just getting the features of this mod.

#

This mod and information brought to you by the Spenny Cinematic Universe

#

anyways it's way past bedtime bye

urban patrol
#

love it

#

oh wait before you go!

#

i wanted to tell you i've been looking into spawnables and set pieces and i'm very excited to make procgen mazes using spacecore

next plaza
#

...the showcase says "Penny the Reality Warper", not "Spenny the Reality Warper". Dang it

next plaza
pallid patio
#

does anybody know where to find the vanilla object ids? Ive been searching them all up individually

next plaza
urban patrol
#

it'll be a very long while because i also have to learn C# for many things but will do SDVpufferheart

pallid patio
#

thank you!

iron ridge
uncut viper
#

too late for the showcase, though

inland cedar
#

Windows 11. I been using VS for a while and thinking about switch to VS code. Does VS code support hot reload like in VS? Cannot find much information about that

brave fable
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
brave fable
#

i don't think anyone considers VS and VSCode interchangeable, for reasons including the lack of hot reload

warped perch
#

Hi!

Had a few questions, what kind of skills are required for making mods, and where could i find documentation for learning that? As i'm playing a lot lately i'm getting kinda curious

brave fable
#

hi, making mods usually takes a little bit of everything; usually creativity, problem-solving, and patience

#

!gs is the main guide i think

ocean sailBOT
brave fable
#

nope wrong one

#

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

warped perch
#

Thanks

brave fable
#

if you're familiar with folder structures and JSON files you've got a good headstart

warped perch
#

No idea what those means 😔

brave fable
#

pixel art and C# knowledge are a bonus depending on what you're working on

warped perch
#

I tried learning pixel art but adhd got the best of me and i forgor i was learning that

brave fable
#

really it depends on what you're working on, obviously a larger or more complex mod will use more different skills and features, characters and locations will ask more art ability, dialogue requiring the least of all different skills, and so on

vernal crest
#

I think determination is the main thing you need, really. The technical skill barrier is not super high, it just takes a willingness to keep looking for answers and trying things.

merry river
#

for the love of everything that's unholy don't start with an npc if you get easily overwhelmed and your adhd likes to get the better of you (source: it's me. i started with an npc)

warped perch
#

Lol, fair enough

merry river
#

wow i just had think about how i started out one month ago and the evil comma was my biggest enemy. i already learned so much in such a short time

regal leaf
#

Hi, is there a way to make a mod check a config schema from another mod to activate some of its features? I want mod A to add a cooking recipe when a config schema from mod B is set to 'true'.
Right now I wrote it like this in my .json files (first image is from mod B, and second image is from mod A).
Third image is what my SMAPI log tells me when I boot up the game, which doesn't surprise me, but I can't find a solution to my problem online... 😅

regal leaf
shy trout
#

Are there any videos that walk through how to make modded events in stardew valley? I find tutorials easier to follow along if I can see it as a video or somehing

#

Even just a walkthrough with pictures/screenshots would work too

#

Thanks!

vernal crest
#

Not anything up to date, and unfortunately events changed enough in 1.6 that an older video would give you incorrect information.

heavy pewter
vernal crest
#

Shops have a built in 2x modifier for price (4x at Pierre's iirc - though you're adding it to Pierre's so maybe not)

shy trout
vernal crest
shy trout
#

I have I just get confused really easily by text only tutorials

vernal crest
#

If the text being too bunched up is part of the problem, there are browser extensions to increase character, word, line, and paragraph spacing which can make the text feel less overwhelming.

karmic gust
#

I didn't know that was a thing!! That sounds super helpful

vernal crest
#

It is, yeah. I mostly just zoom in to text on websites because everything is always too tiny for me but some stuff is way too cramped so I use Text Spacing Editor to adjust things like word and line spacing too.

shy trout
#

Ohhh I'll try that! Thank you!

silk swan
#

Stardew uses 1 thread/core right?

tiny zealot
#

yes, but mods have access to the threading api and can do background work (with care and exemptions)

silk swan
#

I was going to ask if a mod could make the game use multiple or if that'd take a game code rewrite.

#

Thanks for the reply

tiny zealot
#

you would need to rewrite the game engine, yes (MonoGame)

silk swan
#

Yea I figured.

tiny zealot
#

the content pipeline is aggressively single-threaded and requires that all of its work be done on the main thread

gentle rose
lucid iron
#

Usually when you do not touch draw and no content

#

For example world navigator does all the graph calcs in thread bc that's all custom data structures

gentle rose
#

never mind stack overflow just said I'm being stupid :( /lh

iron ridge
#

is that the error or the website here

#

doing memory crimes it could be either tbh

gentle rose
#

website

tiny zealot
#

i wish to know what crimes you wanted to attempt

gentle rose
#

the manually calling GC kind

lucid iron
#

Oh i mean u can do that

#

No More Lag 2

#

I once left a manual gc call i had for testing in release build for like 4 major versions

tiny zealot
#

maybe multiple times. really optimize the hell out of it

gentle rose
autumn tide
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 83 C# mods and 235 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

gentle rose
hard fern
#

that

autumn tide
#

that's true... but i never feel like debugging*

#

THAT

hard fern
#

how are u gonna squash the bugs if you never debug

autumn tide
#

i won't-

hard fern
#

just make the players bugtest! always works XD

gentle rose
#

debugging works best when you're systematic. if you start off in a state like this log you'll spend forever chasing bugs

tiny zealot
autumn tide
hard fern
#

you can start now

autumn tide
#

like playing SDV?!?! who ever thought of that?

gentle rose
#

let me put it more bluntly SDVpuffersquee nobody will ever be more motivated to debug than you are because it isn't their mod, so if you look at that log and go "ugh", then so will everyone else

#

so make it easy to help you (and for you to help yourself)!

autumn tide
hard fern
#

ugh why do questions have to exist in stardew

autumn tide
next plaza
odd ginkgo
#

for map making, is there a location context that tells the game to spawn beach-critters, like seagulls, rather than a random other bird?

#

is it just Island and Default?

next plaza
lucid iron
tiny zealot
#

Beach isn't a vanilla context though. i expect the gulls etc are hardcoded

lucid iron
#

It controls mostly stuff like weather

tiny zealot
#

island, default, and desert are the vanilla ones, no?

odd ginkgo
#

maybe the easiest option is to just not mark it as outdoors

#

pretend outdoors

lucid iron
#

What is the particular problem u have?

odd ginkgo
#

the shadows up top are birds that aren't loaded in right (via Em's critters) but even if they were, it'd be an odd place for a bird to spawn

#

unless it was a seagull

lucid iron
#

The sea...

#

Make sure all ur "panorama" tiles are on Back1 or something

#

Instead of Back

odd ginkgo
#

ahhh

#

they're all on back

#

that makes sense

lucid iron
#

That makes them not available for most critter spawns

odd ginkgo
#

that's brilliant

lucid iron
#

(peddling mode) do u want a dynamic panorama

odd ginkgo
#

I'm open haha! I want it to be an ~experience~ to go out on the deck

lucid iron
#

It's actually pretty simple to make the panorama thing optional

#

Basically you need to divide the tmx into 2

  1. The foreground walkable patio
  2. The static background
#

When dynamic panorama is off, do EditMap to put in the static background as normal

#

When it is on, don't EditMap and let mmap panorama apply Bolb

odd ginkgo
#

that's brilliant again

lucid iron
#

Internally the mmap panorama is not on the Map, but a big texture being drawn behind it

odd ginkgo
#

Okay, even to have the option would be cool

lucid iron
#

Just like how summit tmx is all transparent

odd ginkgo
#

that's right! I opened up that map to see how it was done... that

lucid iron
odd ginkgo
#

Thank you! I'm so inspired

lucid iron
#

I would link me own docs but sharogg's examples r better tbh

odd ginkgo
#

how incredible would it be... walk out on the deck... sunset on the ocean... oh nooo I love it

lucid iron
#

I am getting better at peddling RunRun

hard fern
#

mods are evil. events are evil.

#

ugh

#

i fucked it up

autumn tide
#

aw :(

hard fern
#

i didnt know sweet gem berry was an.. animal drop

ornate drift
#

how the hell does Elliott make this sprite size work?

#

Does he have a special sprite size here unlike the other characters?

hard fern
#

hardcoding magic

ornate drift
#

also why are his legs missing here

hard fern
tiny zealot
#

probably to make it look like they're behind the piano bench

ornate drift
#

ohhh

#

ok ok got it

#

thanks

autumn tide
#

hmm most intriguing

brittle pasture
# hard fern ...hm

sweet gem berries and truffles have the same category of "mystery items that is sellable to pierre's", that's probably why CJB cheats group them?

gray bear
#

CJB categories are not canon

brittle pasture
#

I'm talking game category (-17), but yeah cjb cheats put berries there because they use broad categories and probably thought that -17 is just truffles

gray bear
#

oh yeah it just uses category, prolly

hard fern
#

i hate advanced move so much

gray bear
#

advanced move?

brittle pasture
#

event thing

gray bear
#

events b cursed

urban patrol
gray bear
#

aaaaaaaaaah

urban patrol
#

a classic

odd ginkgo
# lucid iron It's actually pretty simple to make the panorama thing optional

so wtf this is magic, I'm in love... I do seem to be having some visual clipping on the horizon, which I suspect is because of a setting? or maybe a hidden building tile? going to experiment but it's honestly making me think MMAP etc might have to be required, it's too good (you should see the ocean when the mean is out at night)

#

the moon I mean!

lucid iron
#

There's a dedicated console command for reloading the background (but it still required patch reload as well)

odd ginkgo
#

what! I've been closing and reloading the game everytime to test settings

#

learning all the time

lucid iron
#

mmap.reset_bg

#

So u want to first patch reload <your mod> and then mmap.reset_bg

#

Leaving and re-entering the location has same effect as mmap.reset_bg

#

I added this cus i was testing on a big map one time

odd ginkgo
#

thank you, I don't think I would've figured this out without you

lucid iron
#

It's ok i forgor to document clearly SMCPufferjail

elfin kindle
#

Has anyone else whose made an NPC had people say the NPC doesn't show up in festivals year 2+? I've heard mixed amongst the people bringing up which ones it is so i dunno if it just affects like some year 2 festivals or all

uncut viper
#

did you include year 2 variants of their festival data

#

theres stuff about if one NPC includes an extra variant that other NPCs dont then the ones that didnt get skipped bc the game favours the latest-year-variant or w/e

#

so the issue can vary by modlist

elfin kindle
#

I didn't, only for the ice festival which i know looks very different year 2. And thaaat makes sense, its usually if they have other mods when i've heard the issue. I get it sporadically

uncut viper
#

well you should really add year2 at least since im pretty sure vanilla does that

elfin kindle
#

Right people move around during year 2 now, i gotta find pics of year 2 now or go into the game and do a year 2 run of just checking festivals or check tiled. BAH well gotta do what you gotta do

lucid iron
#

Bonus gotcha sve has y3 spirit eve

#

Did u see pillow festival tool

obtuse wigeon
#

Does Pillow's festival planner have year 2?

#

Best me to it

elfin kindle
elfin kindle
uncut viper
#

ichor knows most about this issue

lucid iron
elfin kindle
#

Ichor im eagerly waiting your reply SDVpufferwaaah

lucid iron
#

It's good cus lotta mod npc

tiny zealot
elfin kindle
#

HAHAHAHA

#

That's so funny dude

lucid iron
#

Should get ur npc added too

tiny zealot
#

at the time i was pretty distressed, but yes it is funny now

elfin kindle
#

It's an easy enough fix really ;P I was just confused as to why i didn't get it more consistently aaand sometimes complaining a little here gets me some good new tools and solution SDVpuffersmart

lucid iron
#

Lacey: no one came to my egg festival/flower dance/luau/....

elfin kindle
#

Tragic

#

But also thank you so much for the tool, this will make my life so much easier duuuude

#

The nice thing about being later in the modding scene is that there's so niche tools already made

odd ginkgo
lucid iron
#

Yes pls thank @iron ridge (and contribute ur npc data)

elfin kindle
#

I'm having fun just looking at all the different NPCs rn honestly

iron ridge
elfin kindle
#

I'll look into how it's done and add in what i have ^^ I wasn't sure how it worked but it sounds like something you can add in yourself?

iron ridge
#

it is

elfin kindle
#

nice!

odd ginkgo
#

@lucid iron your peddling upgraded my boat map by 3000000% ty ty ty ty ty

grand lantern
#

quick question. im making an animal mod.

so im going down the list of the stuff off the wiki of what i need to do to add this animal, and im here

      "RequiredBuilding": "Big Coop",
      "UnlockCondition": 

do i "need" an unlock condition if the condition would be having a big coop? i would assume not since i already told it that it requires a big coop and the unlock condition would be if like i wanted the farmer to ask have like 4 hearts with marnie instead of having the big coop?

and can i have an unlock condition as well in that regard, say Marnie needs 3 hearts, as well as required to have a big coop?

brittle pasture
#

yeah you got it

grand lantern
#

thank you!

onyx mantle
#

Hallo ^^ I was here the other day trying to make a Content Patcher to replace the sprites for Penny and Elliott. I thought I got it working, but then they aren't in the game when I run smapi. I don't quite understand what I did wrong, but the json validator said there weren't errors

urban patrol
#

can you please share the link to your json with us so we can see it?

#

!log your log may help as well

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.

onyx mantle
ocean sailBOT
#

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

onyx mantle
#

the mod in specific I tried to make is Belas Custom Sprites and the sprites weren't replaced

urban patrol
#

you can see in your log that you have these errors; check that your file path is correct for these patches

onyx mantle
#

Do you have the link to the author guide

urban patrol
#

FromFile asks for the path to the asset you're trying to specify, relative to your mod folder

#

which author guide, the wiki? CP docs?

onyx mantle
#

I don't know, I was given one yesterday and I am having trouble finding it. But it gave an example of what to write to make the json file to replace a portrait for abigail. I was told to change 'portrait' to 'character' but beyond that I don't know how to path properly

#

`{
"Format": "2.8.0",
"Changes": [
{
"Action": "Load",
"Target": "Characters/Penny",
"FromFile": "assets/penny.png"
},
{
"Action": "Load",
"Target": "Characters/Penny_Winter",
"FromFile": "assets/Penny_winter.png"
},
{
"Action": "Load",
"Target": "Characters/Penny_Beach",
"FromFile": "assets/Penny_Beach.png"
},
{
"Action": "Load",
"Target": "Characters/Elliott",
"FromFile": "assets/Elliott.png"
},
{
"Action": "Load",
"Target": "Characters/Elliott_Winter",
"FromFile": "assets/Elliott_Winter.png"
},
{
"Action": "Load",
"Target": "Characters/Elliott_Beach",
"FromFile": "assets/Elliott_Beach.png"
}

]
}` This is what I have

mellow laurel
#

this is the path you have in your folders though, put all the pngs in assets instead

onyx mantle
#

How do I write that in the document? "Action": "Load", "Target": "Characters/Penny", "FromFile": "assets/Characters/Penny.png" like this?

mellow laurel
#

yep, that also works

onyx mantle
#

Oh okay, thanks ^^;

tender agate
#

what's the method(s) NPCs use to find optimal pathing?

urban patrol
#

how specific an explanation do you want? i know the general overview but nothing more than that

lucid iron
#

It's like A* i think

urban patrol
#

oh good an expert is here

lucid iron
#

There's 2 path finders the macro map to map one and the micro tile in map one

#

Spacecore bonks the first one for a bfs

tender agate
#

I just want to know where is it so I can make them stop zigzaging, its bothered me for some time

#

I'm guessing I only need the micro one

lucid iron
#

Yeah u have to poke at pathfindcontroller

#

I think there r weights u can put to make em prefer road

#

But zigzag is shortest path in diag cases

uncut viper
#

(getPreferenceValueForTerrainType())

brittle pasture
#

if I had a nickel for someone who mentioned npcs zigzagging in this channel I'd have two nickels which isn't a lot but it's weird it's happened twice within 24 hours

tender agate
#

no, yesterday's convo after you posted that vid just stuck with me

calm nebula
#

(Fwiw, the last time I did a pathfinder, I dealt with zig zag just by pushing their current direction first)

#

And going clockwise

tender agate
#

yeah I was just thinking about adding a 0.0000001 weight when making turns or something

#

nobody really messing around with pathfind right? so I can just override instead of harmony patching

calm nebula
#

There is terrain preference yeah; I'm not quite sure what it does; it's pretty minor iirc

#

Spacecore entirely replaces the macro finder but doesn't touch the micro one iirc

uncut viper
#

the terrain preference affects the priority that the tile in question gets when placed in the PriorityQueue used for checking tiles

tender agate
#

what other properties are there, is there a list somewhere?

uncut viper
#

those are the only ones the game cares about but theres nothing stopping someone from writing whatever type they wanted on their map

lucid iron
#

Yeah u can just add somebodyunknown_pathing

#

Then u have to have fun time of adding it to every map

tender agate
#

I would rather not tbh

lucid mulch
#

Harmony patch Game location.doesTileHaveProperty to inject it

calm nebula
#

Can't you just patch the preference function

tender agate
#

could be fun if we can somehow create desire paths. but that might take too much memorizing of pathing

calm nebula
#

I'm (*) a little because I really do remember that as a little squirrelly but I forgot details

uncut viper
#

its not the sole determinator of path priority

#

but the other determinators just seem to be preferring whatever is closest to the end which makes sense

#
int priority = neighbor.g + PathFindController.getPreferenceValueForTerrainType(location, neighbor.x, neighbor.y) + (Math.Abs(endPoint.X - neighbor.x) + Math.Abs(endPoint.Y - neighbor.y) + (((neighbor.x == currentNode.x && neighbor.x == previousNode.x) || (neighbor.y == currentNode.y && neighbor.y == previousNode.y)) ? (-2) : 0));

whatever this is

#

i dont know what g is on a path node

calm nebula
#

Total path length so far iirc

autumn tide
#
poll_question_text

opinion on a 'making mods shitposts/yapping' thread?

victor_answer_votes

7

total_votes

15

victor_answer_id

1

victor_answer_text

YES I NEED TO YAP

victor_answer_emoji_id

633855868911353866

victor_answer_emoji_name

SDVpuffersmug

tender agate
patent lanceBOT
#

@autumn tide: check this and then choose whether or not to make the thread (24h ago)

calm nebula
#

Oh, that was the other thing. They have their own priorityqueue impl and I forget if it keeps insertion order

autumn tide
#

making-mods-yapping

modest dagger
#

Can I have two different local tokens for the same json?

uncut viper
#

you can put as many local tokens as you want in a patch

modest dagger
#

then i have no idea what i need to fix

grand lantern
#

when adding a context tag for an item (an egg in this case) if it has 2 colors can/should i add both? its a blue and green egg with yellow spots. i was thinking i should add green and blue?

calm nebula
#

You can

#

The first tag it finds will be used as the dye color

#

Both will be used for, say, machines or that one quest of qi's

#

You don't have to ofc

grand lantern
#

okay cool, thank you!

cyan marsh
#

Some asked me today if they can install my music mod without installing it

ornate locust
#

what

elfin kindle
#

Player mindsets baffle me sometimes

ornate locust
#

i don't-

#

actual "Can I have my cake and eat it too?"

cyan marsh
ornate locust
#

I guess they want to overwrite the files or something?

brittle pasture
cyan marsh
#

but it's janky

ornate locust
#

definitely not recommended

cyan marsh
#

I explained it poorly

#

for some reason it doesn't work on Android.. i believe that's a version issue

brittle pasture
#

huh, your mod is just CP right

lucid iron
#

Android does have a different soundbank impl

cyan marsh
lucid iron
#

But it's out of your hands tbh tell them to go bother the android smapi person

cyan marsh
#

I know.. there's nothing i can do about it

#

was just funny

#

I'm glad they like the music lol

#

(pinned comments has all the music there)

elfin kindle
#

In certain situations, all you can say is like "Well I can't help you there, bud"

odd ginkgo
#

that's how I generally feel about android

stray hemlock
#

Is it possible to play SV on Linux on ARM64? Because then you could replace Android.

calm nebula
#

Possible? Maybe. Has anyone done it? As far as I know no

#

The holdup is that some of stardew's dependencies are x86 only

stray hemlock
#

Makes sense.

#

Idea for 1.7: port the entire codebase to ARM.

uncut viper
#

also no one wants to replace their phones OS just to mod stardew

#

certainly not your average nexusmods user

stray hemlock
calm nebula
#

Otoh if Samsung pisses me off again.....

uncut viper
#

programmers arent people

calm nebula
#

Jk I only own stardew mobile via Google play

stray hemlock
uncut viper
#

im not sure if you can even legitimately purchase mobile stardew without going thru one of the app stores?

stray hemlock
#

You can purchase it, decompile it and compile it for mobile, right?

calm nebula
#

Samsung app store might have it

#

But in your mind we would be running PC stardew on a Ubunut phone

#

Which 2 people own

uncut viper
#

i think that first step of purchasing it through them disqualifies the whole thing as "not purchasing it through them"

stray hemlock
#

I meant purchasing on PC.

uncut viper
#

oh. then, no

#

the codebases are not identical

#

anything that touches a menu especially is wildly different

#

but also some other behind the scenes stuff

#

like the aforementioned audio implementation

stray hemlock
calm nebula
#

I think people have the compat version running on arch at least

#

Anyways

#

I've sold my soul to Google already

#

Open me up and find QR codes and share.google links

obtuse wigeon
#

i know it was on humble bundle which mightve had an android version also for download? if it was it would be very very old, like 1.2 version

calm nebula
#

Google will know what I'm having for dinner tonight before I do

uncut viper
#

the version on humble bundle is PC only and is just a steam key

obtuse wigeon
#

i asked good what youre having for dinner and it replied "the answer is 3".... i dont think it understood the question

#

ahhh steam key gotcha

brittle pasture
#

The Ubuntu Edge was a proposed high-concept smartphone announced by Canonical Ltd. on 22 July 2013. Canonical was seeking to crowdfund a production run of around 40,000 units through Indiegogo. It had the highest target of any crowdfunded project to date, $32,000,000 over a one-month campaign. The Edge was not intended to go into mass production...

uncut viper
#

i think if it were that easy to get the mobile version on PC for decomp then android compat would be a lot more available for mods

#

and also would have saved me $5

#

(not that its hard to get the mobile version via the usual means either for decomp purposes, but its more difficult than just a 5 second steam download)

obtuse wigeon
brittle pasture
#

my approach to android compat is "if there's a will there's a way"
as in, if the user's will is strong enough they can make it work
I on the other hand have no will

uncut viper
#

personally im completely fine using a big name non-linux phone if for no other reason than i dont want my kernel to crash for some dumb reason when im trying to dial 911

calm nebula
#

Rust rust rust

obtuse wigeon
#

i dont remember the last time i used calls or texts...

uncut viper
#

that mightve been literally yesterday but idr

calm nebula
#

Google if you're reading this i wouldn't mind a job offer....if you paid me more than what I make now

brittle pasture
#

Cloths and Colors (unconfirmed)

uncut viper
#

right right. thank you

brittle pasture
#

also Extra Animal Config (definitely confirmed)

calm nebula
uncut viper
#

not touching that one

calm nebula
#

At the same bank

stray hemlock
#

I think.

obtuse wigeon
#

i dread to think, i both love and hate 2fa

brittle pasture
#

(all my other mods either work, has an android version, or no one cared enough to play them on android yet)

lucid iron
#

I think cssm is my only definitely broken on android mod rn

#

Some other mods prob have ui jank going on, wouldn't know

uncut viper
#

can you remind me what cssm is

brittle pasture
#

not counting "borked cuz stardewui" i assume

uncut viper
#

chu's super special monsters?

brittle pasture
#

Chainsawsaw Man

stray hemlock
#

Cascading Style Sheet Mess

uncut viper
#

we've lost contact with chu

obtuse wigeon
tender agate
lucid iron
#

claire story of seasons magics

lucid mulch
#

after I did 1.1 speedy solutions broke android compat and its not my problem

lucid iron
#

(it's compat searchable shop menu)

stray hemlock
lucid iron
#

By some kinda rewriter change

obtuse wigeon
#

i shall look into it ty, i do wish there was a coding style stylesheet but oh well

lucid iron
#

The bits that no work is like, right click SMCPufferjail

#

Which aint my problem idc

uncut viper
#

just tell mobile users to plug in a mouse? whats the big deal

lucid iron
#

Oh yeah es barbershop is broken too

#

I knew that would happen so i made it a separate dll

stray hemlock
modest dagger
brittle pasture
#

(I shouldnt have needed your machines file for it but I wanted to double check)

modest dagger
#

so uh, how do i fix it

brittle pasture
#

provide all 3?

#

if you have a token use em

modest dagger
#

so wait would i be able to compress it all down into just { "Action": "Include", "FromFile": "assets/Data/Machines.json", "LocalTokens": { "Animal": "Cow, Sheep, Pig, Chicken, Rabbit, Duck, Goat, Ostrich, Dino", "ReqCount": "1", "Q": "MB, MA, MP, MF" } } then?

brittle pasture
#

no

#

gotta be one at a time sadly

#

you can define all four Q variants directly in your machines file

modest dagger
#

yea i'll just keep it how it was then

gaunt orbit
#

(or you're trying to use some proprietary chrome bullshit on other browsers)

stray hemlock
gaunt orbit
#

Media queries can fuck with things sometimes but usually it's not too terrible

stray hemlock
#

It's not always possible. It's been a while since I've been working with it though, so I can't really tell you what made me use preprocessors.

gaunt orbit
#

The only thing I've used preprocessors for is color manipulation

#

calc is great but it can only do unit math

hard fern
#

is it possible to make a character divorce you

brittle pasture
#

BETAS ChangeRelationship trigger

hard fern
#

ty

#

betas might become my best friend

tiny zealot
#

hey friends,
we all know the wiki recommends against using Harmony annotations, but i am considering using them and need some advice.
can someone give me a more detailed explanation of this sentence?

However annotations work differently in the compiled code, so SMAPI can't rewrite them.
what sort of secret sauce is this referring to, and is it any different than some of my current setups which do some minor crimes to map well-structured method names to desired target methods?

uncut viper
#

possibly something to do with the fact that if you use annotations to patch then Harmony will scan your assembly and create PatchClassProcessor things to handle the patching and SMAPI thus cant replace any code for you in a rewriter first. or something.

#

afaik patching without annotations does not go through the same PatchClassProcessor process

tiny zealot
#

so it sounds like i should extend the thing i currently have so i can do declarative patching without technically running afoul of whatever harmony is doing inside /lh

uncut viper
#

i have no idea what anything means SDVpufferthumbsup

tiny zealot
#

thanks

#

i suppose the rewriter problem could be that when you call PatchAll, harmony runs a big pile of code to find and patch the methods, but smapi isn't rewriting harmony, so any of the references it has to stardew methods that have changed don't get replaced

#

and presumably the annotations themselves also aren't rewritable

uncut viper
#

probably could if smapi rewrote annotations but idk if cecil even allows it

#

i feel like it allows it but im just guessing based on not much tbh

#

based on very very brief glances at cecil stuff in the past

brittle pasture
ornate locust
#

It's free!

#

be free, Backwoods

full berry
#

Hi! Could someone here help me with something?
I have a portrait mod, but currently it's a replacer, and I want to transform it into CP.
However, in the original mod I want to replace, the portraits are identified like this:
"Portrait": "{{InternalAssetKey: Assets/Portraits/spring.png}}",
Is it possible for me to make this mod or not because of the InternalAssetKey?

uncut viper
#

it is not possible by editing their images, no

#

internal assets like that are not able to be edited via the content pipeline and cannot be touched with CP edits

#

but you can replace whatever its replacing with your own

brittle pasture
#

what you can do is load your own asset and change what the Portrait field points to instead

uncut viper
#

it may be a lot more work if they use it in a ton of places though

#

(not difficult work to be clear just a lot more than a single editimage)

full berry
#

I don't think I'm that good at making mods.
The portraits are doomed to be forever a replacer

latent mauve
#

Don't give up before trying!

uncut viper
#

this channel can also provide a lot of help if you need it SDVpufferthumbsup

full berry
#

Does anyone have an example of how to do this?

#

Like, is there some kind of mod that does this so I can read the code and see if I understand how it works?

latent mauve
#

Well, first of all, you're replacing another mod-- is it your mod, or do you have permission to publish it if it's not, or is this a personal edit?

#

and are you planning to use the same portraits or new ones?

full berry
#

It's someone else's NPC, and I have their permission to make the portraits.
I wanted to post it as my own mod instead of asking anyone who wants to use my portraits to replace the original drawings.

latent mauve
#

Okay, so you're making your own Portrait mod for the other mod's NPC.

full berry
#

I drew all the portraits that the original mod has, which are all the seasons, if that helps.

latent mauve
#

So, you will need to:

  • Make your mod load after the NPC mod
  • If the NPC mod uses InternalAssetKey, use Load actions to pull your own images to the same Targets.
uncut viper
#

if the field with the internal key is called "Portrait" though its likely in Appearances, where you'd need to TargetField into them to edit them since there is no target to load to

latent mauve
#

Where is that "Portrait": "..." code located in the NPC mod?

#

What is the code block it's part of?

uncut viper
#

i cant actually think of a different place it would even be applicable to use InternalAssetKey since its not like you can use it to set the base portraits themselves

latent mauve
#

True, the InternalAssetKey tends to be used anywhere the game expects a Texture entry

#

since those have to be loaded as game assets otherwise

full berry
# latent mauve Where is that "Portrait": "..." code located in the NPC mod?

on the content.json, the mod code snippet looks like this:
"Breather": true,
"KissSpriteIndex": 30,
"KissSpriteFacingRight": false,
"Appearance": [
{
"ID": "Spring",
"Season": "Spring",
"Portrait": "{{InternalAssetKey: Assets/Portraits/spring.png}}",
"Sprite": "{{InternalAssetKey: Assets/Characters/spring.png}}",
"Precedence": 0,
"Weight": 1
},

latent mauve
#

okay, so that is part of the Appearance system.

#

in the Data/Characters entry

devout otter
latent mauve
#

Specifically they'll need an example of how to drill down into the Appearances using TargetField, in addition to a standard Load patch

devout otter
#

Yeah, Nyapu Nora does that.

latent mauve
#

Ah, nice

full berry
#

Oh, thank you! I'll take a look at that one, and if I have any questions, I'll come back here!

devout otter
full berry
#

Yep! I posted Mirren's today and wanted to turn what I've already done of Faust into CP

full berry
#

IT WORKS!

#

Thank you so much to everyone for helping me!

lone halo
#

Hello Stardew friends! I’ve been recolouring a few items of mods to match other mods I have and would love to share them but I have absolutely no experience or knowledge of creating code to make it official. Are we allowed to upload replacement pngs only to Nexus? Or does it have to be an official mod? Thank you sm! 🫶🏻

gentle rose
#

you are allowed (if the permissions of the original mods allow it!) but it really isn’t as hard to learn to do the other part as you’d think! and we can help you through it

heavy pewter
#

Guys, I'm trying to prevent the pass out logic and animation from happening(I want to make a Totem of Undying), but for some reason the player still passes out, what am I doing wrong here? Is it the method I'm patching?

Theres 3 pass out related methods:
performPassOut()
passOutFromTired(Farmer who),
startToPassOut()

royal stump
#

as far as I know, those methods are only involved in running out of stamina or staying up until 2am
running out of health seems to happen in Farmer.takeDamage and Farmer.Update, around the health <= 0 parts

#

if you are aiming for the stamina thing, you'll need to patch one or more of the other parts, since performPassOut doesn't control most of what happens
(and account for the fact that it's used at 2am too)

heavy pewter
#

Thanks!

urban patrol
#

is anyone familiar with spacecore's spawnables? i have spawn groups defined, but i'm not sure if i need to also have spawnable definitions. the trigger action to spawn seems to only need a spawn group

#

Spawnables consist of spawnable definitions (the spawns themselves) and spawning groups (a group of spawn definitions that are spawned together, specified with a trigger action).

#

this "and" is ambiguous to me lol

urban patrol
#

fair enough lol

#

time to go explode things

brittle pasture
#

yeah you need both

#

a trigger action triggers a spawn group, each of which has one or more spawnables

urban patrol
#

okay so for every item listed in all of my spawn groups, i have to specify it in the spawnable definitions

#

oh wait i see i set it up wrong now

#

the spawning group takes the spawn definition IDs, not the qualified item IDs themselves

lone halo
heavy pewter
urban patrol
#

i got spawns to work! needs to be balanced though lmao despite weighing a pearl at 0.01 and an artifact trove at 0.05 i got both on spring 1 lol

#

oh i set all the minimums to 1. that would do it lol

brittle pasture
#

the weighs control which entry in the same spawn group is more likely to be picked if there are multiple

#

if you want the spawn to only have a chance of occurring you need to condition the trigger action itself

urban patrol
#

i see i see

#

do you know what the vanilla spawn chance is? i'm looking at using "RANDOM 0.4 @addDailyLuck",

brittle pasture
#

you can open the Data/Locations file to check

urban patrol
#

or if spacecore respects MaxSpawnedForageAtOnce i could set that

#

ah okay it's per location

brittle pasture
#

I don't believe it does

#

FTM/SC spawns are independent from the vanilla system

urban patrol
#

makes sense

brittle pasture
#

what I do is calculate how many of an item I want to spawn per week, so .4 means .4*7=2.8 per week on average

#

(luck's effect notwithstanding)

urban patrol
#

oh good idea

brittle pasture
#

I should increase the silkworm spawn chance of my mod, I've been playing this save for 3 in game weeks and I haven't seen one

#

(it's .15 currently lmao)

urban patrol
#

lol i might increase mine then, i want pearl/artifact trove to be really rare but not downright impossible lol

brittle pasture
#

something to also keep in mind is forage is reset sundays, and this includes SC spawns (but SC does have a setting to exclude them from the weekly reset)

urban patrol
#

yeah i have it set to clear out on saturdays!

#

does sc HAVE to do 10 checks? i set it to RANDOM 0.8 for 5.6 per week, but i'm getting pretty much 10 per day

brittle pasture
#

post what you have?

urban patrol
#

(i've only tested spring so far)

brittle pasture
#

each of your spawn group has 10+ spawn entries, with each entry having 1 item

#

and every entry gets triggered

#

I think you want 1 spawn entry with 10 items?

#

(ie multiple items in SpawnableIds)

urban patrol
#

that makes so much sense! i had been wondering about that, if i wanted to compress it into one list instead of multiple

#

i can probably then also remove the RANDOM condition, because it'll give me one per day, if i only have one entry?

#

then minimum/maximum will refer to the number of forageable items that appear each day i suppose, not of each item

brittle pasture
#

yeah believe so

#

I will slep now but your code should be good

urban patrol
#

good night sleep well! thank you for the help

#

yep it appears much better! no more infinite pearls lol

hard fern
#

Hmmm can crts be eternal (or just have a very long duration)

vernal crest
#

CRTs are already dead SDVpufferpensive . CTs can have very long durations, yes

hard fern
gray bear
#

the fact some item id's are just numbers but some of them are "broccoli" will continue to throw me off till the end of time

viscid carbon
#

Seems to be the general thing for items added in 1.6

fervent comet
#

Hi, guys. I cannot figure out how to add Furniture objects for Events. Is there any specific command I need to use cuz Furniture IDs are somehow different from regular Objects or BigCraftables.
For example, I wanna add Bountiful Table with ID [(F)BountifulDiningTable] that I got here:
https://mateusaquino.github.io/stardewids/#en-US

Complete item cheatsheet guide to help you find all IDs of items in Stardew Valley, updated for 1.6. Quicky locate between objects, seeds, plants, furnitures, shirts, books and more!

final arch
#

not sure thats currently possible 🤔

vernal crest
#

I don't see an addFurniture event command

#

You could add it as a TemporaryAnimatedSprite

fervent comet
lucid iron
#

This stuff is happening on each tick

#

It'll likely help if it's refactored to be net event based

#

Track net changes in the characters list in every location, and within that track the position netfield's changes

#

It will be a pretty large amount of work ngl i have no plan to do anything about it rn

mild furnace
#

I'm working on a cycle accurate RISC-V emulator rn but I need a break

lucid iron
#

If u get a working poc u should ping pathos Bolb

mild furnace
#

I'll branch and PR 🙏 or I'll look into actually merging UIinfo with NPC map loc

#

I always found it silly how they conflict

lucid iron
#

I thought the deal is that npc map loc works in mp

#

And uiis2's doesn't

mild furnace
#

oh, wasnt aware, good to know

lucid iron
#

Multiplayer needs special handling because farmhands don't have true view of world

#

That's why there's stuff to send the real location stuff to farmhands

mild furnace
#

I've never done this in VSCode, I'm so used to VS, but I recently reinstalled windows

#

and I'm not downloaded VS2026 at 4am lol

mild furnace
gentle rose
#

if you're dealing with the map remember to make sure you recalculate your entire logic every frame

#

trust

mild furnace
#

oh 100%
If I'm improving performance I may as well make performance tank

#

game don't fail me 🙏

#

@lucid iron guess the mod

#

lmao

mild furnace
#

stfu

#

ok I think I've gotten about 50% of the way there on this, it was a surprisingly easy set of fixes
I'll explain what I did, but I didnt go all out with xnet, just a quick and dirty fix

lucid mulch
#

On my side I just changed npcmaplocation config to do it less frequently and did a custom build of location compass to also reduce its frequency and changed it to a different modulo so it wouldn't always run on the same tick

#

But if you are improving npcmaplocations netcode, changing location compass to do the same and ideally being able to hook off npcmaplocations logic when available would be nice

mild furnace
#

what I've done is I've made it cache locations, then do a quick comparison to see if location's changed, and only run the math then

#

I've also made it only check NPCs who are within the range of MinHearts and MaxHearts, updated every day, and I changed it to update only roughly every 20 seconds

#

it doesnt blip at all on profiler anymore

lucid mulch
#

The minheart/maxheart would impact netcode unless you are checking if all farmers meet that criteria

mild furnace
#

should work I assume?

gentle rose
#

@junior tiger congrats on the mod release! just fyi, nexus tends to quarantine .rar files, so you may want to upload it as a zip (that's how most mods are uploaded and is easier to use anyway)

junior tiger
gentle rose
junior tiger
gentle rose
#

(I am one and we tend to hang out in this channel so feel free to just drop the link haha)

tiny zealot
#

this place is absolutely lousy with orange people. i hear some of them are kind, too /lh

obtuse wigeon
#

(who will showcase it first, it's a race for the showcase!) actually I have no idea how the bot reacts to multiple showcase commadns

vernal crest
#

I'm not. I'm a mean orange person. Grrr SDVkrobusnaughty

calm nebula
#

I'm not orange 😛

gentle rose
#

says the nicest orange ever

junior tiger
# gentle rose (I am one and we tend to hang out in this channel so feel free to just drop the ...

Oh just post it right ere?

https://www.nexusmods.com/stardewvalley/mods/40205

It's just a simple content patch to include some of my favorite OCs into stardew 😊 the mod is still a bit clunky, but it works! And I'm always happy about feedback or questions.

Btw, I also got so much lovely help from the people in this comunity, but it has been months and I am super forgetful. If someone remembers helping me out, feel free to let me know and I'd be happy to mention you on nexus mods if you wanted to 😊

Nexus Mods :: Stardew Valley

A simple mod that adds 3 custom characters and a custom Location

gentle rose
#

(you may also want to archive the old files, hopefully that will get rid of the red x on your mod though I'm not sure)

junior tiger
gray bear
#

nexus virus scanner has a hate for rar files

tiny zealot
#

(so do i /lh)

gray bear
#

oh also, saw the sve comment, your mod is incompatible as sve edits the entire forest map :)

#

@outer glacier

#

SIGH

#

@obtuse wigeon did u want to see this

obtuse wigeon
#

ty! I grabbed it

gray bear
#

enjoy ur scam images /lh

tender agate
#

posting scams in the most tech literate channel is funny

obtuse wigeon
#

they're very tasty, yum yum

gray bear
lucid iron
#

Monseiur Mammal's Miraculous Monies

patent lanceBOT
#
#6560

you fuckin modders are criminals

lucid iron
#

:)

autumn tide
gray bear
#

this factoid actualy just statistical error. average modder does 0 crimes. chu georg, who only commits mod crimes, is an outlier adn should not have been counted

vernal crest
cedar turtle
#

Eh whoops. That one slipped because I didn't tap delete messages (stupid phonecord)

gray bear
#

no worries, got burried anyway ;)

cedar turtle
#

Still better it's buried only in our logs lol

calm nebula
#

Leader of the mod criminals

#

😛

gray bear
#

are you a mod criminal atra?

calm nebula
#

No. The conditions of my parole are that I no longer crime 👼

junior tiger
vernal crest
junior tiger
cinder ether
#

Hey folks, is there a new standard way of creating a shared lib in mods, now? I don't want to use a .shproj and would like to be able to rely on something that's more supported by the dotnet cli, instead.

lucid iron
#

Hello i have just the thing for you

cinder ether
#

is it not possible to just use a class lib? Though I do like how succinct this is (I hated the idea of adding all of the files to the projitems, so your solution with a wildcard is kinda nice

lucid iron
#

This one results in 1 dll which is nice for packaging

#

Some people do make class library mods that are dll that their other mods hard reference, I am aesthetically against doing that because sdv mods r tiny and I want to keep them independent

tiny zealot
#

i am chu's first nickel. i like this approach and am tinkering with it for my own stuff rn

#

i get to reuse source code and rip them out into a dependency, but users won't have to download a personcore mod and i don't end up with a separate dll inside my mod zip

#

it's like having a good old-fashioned C static library* and i like that
* sort of

calm nebula
#

Yeah, i didnt realize shared projects were a VS thing

lucid iron
#

I don't really know what the shproj file does

tiny zealot
#

probably just weird magic that VS is set up to look for. i learned you can call your file whatever you want as long as you <Import> it correctly

lucid iron
#

This stuff was me copying little msbuild bits from stardewui's shared project that was definitely setup on VS until it worked

cinder ether
#

wow, that's beautiful, thank you!

#

worked like a charm

gentle rose
obtuse wigeon
#

paperwork tends not to have ears so I see how it was missed

merry river
#

is there a way to change the farmer sprite during an event? the event is supposed to be set in the spa and the farmer is just in there, stacked in clothes lol

tiny zealot
#

how does penny's 10-heart event handle it?

heavy pewter
coral vortex
#

uhm. hello? May i ask a question here about a mod? to be precise about a mod, i kinda repaired with a friend, but i now want to update, but i am missing coding knowledge and i want to learn how to take care of it? or do i break rules with that question

As Chuve said, i did take care of the Permissions and followed what the original maker wanted in that case

The mod in question is this one: https://www.nexusmods.com/stardewvalley/mods/569

My Fix is here: https://www.nexusmods.com/stardewvalley/mods/30635

Nexus Mods :: Stardew Valley

A mod that allows you to 'prestige' your skills, resetting them from level 10 to 0, granting you a point that can be used on permanently obtaining a profession.

Nexus Mods :: Stardew Valley

A fix for CinderGardes Mod 'Skill Prestige'.

lucid iron
#

Yeah the original mod has open permissions so you are fine Bolb

coral vortex
#

Thank god. i read them first as i tried to fix it, because i did not want to upset anyone especially not the modmaker if they saw it

lucid iron
#

Main recommendation is to open source your fixes too

coral vortex
#

there i have a problem. a friend did it, as i do not have github or anything. i wrote in the description down what he did tho. i was trying to replicate it, but. i never worked with github in my few coding lessons. but i am willing to learn

#

i just learn easier with a teacher

lucid iron
#

Yeah it's probably better to ask friend about it

#

Instead of distributing the xnb

coral vortex
#

this looks like the main file right? (sorry if am wrong) so you more or less mean to like write it new?

lucid iron
#

No, just this one bit

#

It's the cause of load errors since this asset was removed

coral vortex
#

The greenbox error? ah i see

wispy jolt
#

are there any experienced custom farm makers that may be interested in making a farm for me?

lucid iron
#

!commissions

ocean sailBOT
gentle rose
wispy jolt
wispy jolt
#

will take a look at the commissions page and see

real agate
#

Interesting... I still have a few more personal MODs to revitalize, but maybe I will consider being paid to do someone's MOD. Probably not, but good to know it is an option. I do good work, and my MODs speak for themselves. I don't do Content Patcher stuff though. (Adding to my idea bin)

lucid iron
calm nebula
#

(Fwiw, I've personally never done commissions because (a) i dont want to be on the hook for long term maintenance and (b) the hourly rate for mods is a tiny fraction of what I make.)

obtuse wigeon
lucid iron
calm nebula
#

I should do that huh

lucid iron
#

It's not much of a problem now but ppl used to have not loading atracore in their log frequently

calm nebula
#

It shouldn't affect anything if it isnt loaded

#

It's not magic

#

Also those are mostly people who had it downloaded, lol, there is next to no downloads on anything I have anymore (good)

obtuse wigeon
#

Aww no (possibly outdated) atra mods in my mod list

calm nebula
#

Why would you want an atra mod lol

obtuse wigeon
#

Because I wasn't around before your retirement so all your mods are totally new to me

autumn fog
#

i may have forgotten to give my npc a sprite

autumn tide
tiny zealot
autumn fog
autumn tide
autumn fog
#

i got inspired by recent events in a fandom im in, so i wanna make some of the characters as npcs :3

autumn fog
#

ty!!

latent mauve
#

I think I am finally free of the i18n mines until I create more custom NPCs (and thus more dialogue and events for them)

calm nebula
#

looks left, looks right

#

I'm looking to commission someone to foo the baz.

urban patrol
#

foo rates are pretty high right now, can you afford it? :P

autumn tide
#

wait, are the expressions tied to gift responses hardcoded?

calm nebula
#

Yesish

autumn tide
#

oh?

calm nebula
#

Noish

autumn tide
#

ah, of course

calm nebula
#

There are defaults but you can just use, say, $h to override

autumn tide
#

gotchaaaa okay, so if i set custom reactions in the data/dialogue thingy the expressions I chose will show up?

calm nebula
#

They should

autumn tide
#

alr! thanks :)

urban patrol
#

i assume making an NPC a lesbian or gay is more complicated than just setting IsRomanceable: PLAYER_GENDER Current (gender), right? since an NPC romanceability would be global not per-player?

west thunder
#

I need help.

#

One of my adoring fans has run into an issue with my emote replacer mod.

#

Could one kindly locate which mod could be clashing with mine?

ocean sailBOT
#

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

west thunder
urban patrol
#

what they can do is patch summary on whatever asset emotes are (LooseSprites something?) and see which mods touch it

west thunder
urban patrol
#

in the SMAPI console, type patch summary asset <whatever> for a print out of all the patches that are applied to that asset. i can link CP docs for more info

#

…never mind i can’t i forgot github doesn’t display on mobile for me anymore. but it’s under troubleshooting

west thunder
urban patrol
#

it would have to be the target, not the filepath but yes

west thunder
#

Or do you have to put in the folder either spritesheet's in it?

urban patrol
#

i’ve never worked with emotes so i don’t know what you did to edit them

urban patrol
#

and i’m on mobile so i can’t check unpacked data

urban patrol
west thunder
#

The entire content file.

urban patrol
#

yeah whichever one you want to check you would do, for example, patch summary asset LooseSprites/EmoteMenu

west thunder
#

Stellar, thank you.

#

wait

#

Can I reply to a bug?

urban patrol
#

yes

west thunder
#

Odd. Doesn't let me.

#

oh i'm high

#

i got logged out

urban patrol
#

that was gonna be my first question lmao

valid folio
#

Hi, a quick question: Do the fruit tree sprites have to be 80px tall? If they’re 96px, could that cause problems?

#

I couldn’t find anywhere what the maximum height for the sprites is.

calm nebula
#

You cannot increase the spritesheet size

brittle pasture
#

(SMAPI trace logs can list mods that are editing a tilesheet)

#

(you can search for the tilesheet's name with Trace on)