#making-mods-general

1 messages ยท Page 321 of 1

uncut viper
#

just change it to HiddenAlways

rigid musk
#

(which is why this would work better theoretically)

#

which is what the dynamic token would be for with the conversation topic, when the CT is active the social tab viewing is set to always hidden, when the CT disappears they reappear

#

you can also add in a mail flag to the event to make it so that the dialogue changes too

#

(to reflect them not remembering and acting different)

visual dirge
#

i mean (regarding multiplayer) i'd want all the events in question (and the npc's before/after status) to be synced between players

rough lintel
#

hey hey hey csharpers its time to my saga to restart

visual dirge
#

i'm worried that any situation in which having the npc technically still exist afterwards is actually beneficial would be a situation where everything is desynced between players anyways

uncut viper
#

what about the situations where players do things at different times, or play at different times? what if the host starts an event and then the next day, a new farmhand joins

#

what if the farmhand's tokens update sooner?

visual dirge
#

wdym?

uncut viper
#

your When condition that makes an NPC unexist doesnt apply immediately. it applies when Content Patcher updates the token context

visual dirge
#

ugh i see what you mean, i take it there's no update rate i can choose that would guarantee the host and farmhands stay in sync?

#

other than "every frame" ๐Ÿ™„

uncut viper
#

you cant do every frame anyway

lucid iron
#

In vanilla, Leo events are handled by the memory system

visual dirge
#

maybe i should implement this part of the mod in c# instead of content patcher iatethosefood

uncut viper
#

the soonest you can do is OnTimeChange, but even then, you cant account for what someones mod list might do regarding when things change

lucid iron
#

So people can view a past event on the island by talking to Leo

uncut viper
#

it seems like a whole lot of work to ensure things are perfectly synced with no chance for bugs when you can just... hide them.

#

and reset their friendship.

lucid iron
#

If you dehardcode that then u could just have progress be desynced perhaps

uncut viper
#

its like, one Data/TriggerActions patch

#

and one When condition for the social tab

visual dirge
#

i mean i want to make sure things are perfectly in sync regardless of if i'm hiding the npc or deleting them

uncut viper
#

right, so why make it more difficult than it needs to be?

visual dirge
#

i probably want the post-event npc to be a different npc though, instead of resetting friendship

#

they look different and everything iatethosefood

uncut viper
#

may i ask why?

visual dirge
#

its a Metamorphosis, in a sense

#

magic nonsense

uncut viper
#

the magic doesnt matter at all when the player doesnt see what happens behind the scenes to know the difference anyway, though.

visual dirge
#

im just wondering what sort of stuff mods might attach to individual npcs to know if i'd want to clear all of those (by changing the id after the event) or not (by just resetting friendship)

uncut viper
#

mod data, for one

rough lintel
#

would i do that in a seperate method from the - actually i know the answer nvm

uncut viper
#

like, the modData Dictionary assigned to the NPC

visual dirge
#

yea i knowwww lol one of my mods does that

#

im wondering ig there are any Popular mods that use npc mod data cause i can't really think of any

rough lintel
#

to make new money required amount

#

i hate involving new variables this shit makes me want to explode

#

blueprint makes me angry

uncut viper
#

oh, also, you'd fuck over Perfection

visual dirge
visual dirge
uncut viper
#

deleting the NPC is what would fuck it over

visual dirge
#

wait it would ??

#

does uninstalling npc mods fuck over perfection ๐Ÿ˜ซ

uncut viper
#

the Friendship object in the Farmer friendship dictionary wouldnt go away, and it would never be completable

#

im not actually sure what the game does when it does its stale NPC detecting stuff

#

but iirc it only runs when a save is loaded

visual dirge
#

huh okay

#

im pretty sure i do want to clear moddata and stuff though

rich seal
#

Hopefully a very simple question; if I do not specify if an item is loved, liked, etc by a villager, does it automatically default to hated or neutral?

lucid iron
#

They default to universal taste

round timber
#

its determined by the item itself, ie cooked food is generally liked

rich seal
#

Ah, so if I want everyone to hate the Surstromming I just made, then I gotta put them all in the hated category? Fun times.

lucid iron
#

You need to put the item in universal hate

rich seal
#

What file has universal hates in it?

ornate trellis
#

gotta target Data/NPCGiftTastes

rich seal
#

ah, eyah I just found that.

#

Should be a simple thing to do.... for someone not dumb like me lol

ornate trellis
ebon thistle
#

and speaking of dumb things... is there any example of using drawlayers to layer a new texture over a building? Im trying to do that but having trouble

brittle pasture
#

The vanilla mill

ebon thistle
#

this is what I got so far, Ive tried messing with it a lot but currently its saying it cant find the texture Im trying to load

{
    "Format": "2.6.0",
    "Changes": [
        {
            "LogName": "Farmhouse base load",
            "Action": "Load",
            "Target": "Buildings/houses",
            "FromFile": "assets/Textures/Farmhouse/houses.png"
        },
        {
            "LogName": "Farmhouse top load",
            "Action": "EditData",
            "Target": "Data/Buildings",
            "TargetField": [
                "Farmhouse",
                "DrawLayers"
            ],
            "Entries": {
                "{{ModId}}_HouseTop": {
                    "Id": "{{ModId}}_HouseTop",
                    "Texture": "assets/Textures/Farmhouse/test",
                    "SourceRect": {
                        "X": 0,
                        "Y": 0,
                        "Width": 272,
                        "Height": 288
                    },
                    "DrawInBackground": "False",
                    "DrawPosition": "0, 0"
                }
            }
        }
    ]
}```
brittle pasture
#

you loaded into Buildings/houses but is trying to use assets/Textures/Farmhouse/test as the Texture field

#

they should be the same (side note you should use a more unique name with your ModId in it)

ebon thistle
#

ah so do I need to have the second texture as a part of the same file?

#

also which name are you refering to? sorry this is my first time making a mod

brittle pasture
#

doesnt really matter
basically if you want to use a Texture you need to load it into a name somewhere, and pass that name into the Texture field of the data model

ebon thistle
#

OH I think I understand

#

it worked! thank you so much, I think I get how it works better now

rich seal
brittle pasture
#

that's not how you edit it
you'd need to do text operations

#

the CP page for text operations should have examples for gift tastes

ornate trellis
#

thats how i do it

rich seal
#

Appreciate it. I really need to just sit down and read all these pages at some point.

harsh bobcat
#

Anybody have a clue why concerned ape used InvariantCulture in handle action command? Admittedly it seems to have negligable impact when you don't also improve the structure of it from O(n^2) to O(n) (without the improvement one mail I'm testing with goes from 6.6 seconds to 6.1 seconds) but when the structure has been improved it's massive (from 1.5 seconds to 0.03 seconds). InvariantCulture also appears to only be used in handleaction / handleitem commands, but we're only looking for %action and %% here; are percent signs something that he'd have to worry about changing between cultures?

rough lintel
#

nobody ever has a clue

lucid iron
#

mysterious, and i dont really see a point to it

rough lintel
#

he does things in his mysterious way

lucid iron
#

but hey if u r skip prefix whole thing

#

readonlyspan perhaps

harsh bobcat
#

but hey! this means that I can take something which took 91567 milliseconds to apply gender switch blocks and 6689 to apply handle action commands and make it instead take 26 milliseconds to apply gender switch blocks and 35 to apply handle action commands

#

so overall, a 1600x speedup

#

I mean this is only a 1.6 million character long name idk why it would take this long :)

harsh bobcat
# lucid iron readonlyspan perhaps

I'm not experienced in c# (I've done python and java coding, though tbf with how much I've read both stardew and celeste code I am quite familiar with how it looks) what are you suggesting I do with this? I guess the idea would be to declare that "hey, you gave me this string, and I promise I'm not gonna edit it?" wouldn't strings already be read only?

#

(I did end up going with skip prefix because I was already looking at that I was only missing the ref __result)

lucid iron
#

in some scenarios ReadOnlySpan<char> is faster than string

#

idk if you'd be able to use it for HandleActionCommand though (since it is expecting string return), might need to patch LetterViewerMenu constructor

harsh bobcat
#

The string I return is both significantly smaller and unimportant, and I construct that using a stringbuilder [since admittedly, the resulting string is still like 0.1% the size and O(n^2) there too would be disappointing]

inner harbor
#

Is there an up to date list of sound effects?

harsh bobcat
#

The string return is more of a "I want this to have completely identical behavior to vanilla" - it's more accurate to consider it void

lucid iron
#

well that's exactly it isnt it blobcatgooglyblep

harsh bobcat
#

I never edit the string given to me so I'm not opposed to the concept of treating it as a readonlyspan, I'm just not sure how I would do so given that I'm handed a string and if that would be performant

sour sleet
#

If some mail will be sent upon seeing a specific event, will it still trigger even if the player skips the event?

lucid iron
#

i guess it might still be more fast though, if you did 1 string to ReadOnlySpan<char>, did all the string parsing stuff, and then turn result back to string

harsh bobcat
#

Does readonlyspan<char> support substrings + indexof, or would I have to implement that myself?

brittle pasture
lucid iron
#

its basically like using a C char array

#

a substring is just taking a slice of it

harsh bobcat
#

yeah I had that open in a tab already tbf

#

I'll try messing around

lucid iron
#

im lazy and almost never use this, but since you are aim for perf you might as well go all in

harsh bobcat
#

it's complaining because it can't cast string to char[]

lucid iron
#

string.AsSpan();

harsh bobcat
#

ah ty

lucid iron
#

to go the other way i guess you'd keep the not actions slices and stringbuilder at the end?

hard fern
#

๐Ÿ˜” another day, another block of machine rules i have to copy and paste.... sigh

brittle pasture
#

local toke-

hard fern
#

SDVpuffersweats i kinda worry about my chaotic pricing of items... like... im not an expert on finance...

#

๐Ÿ˜ญ especially not within the realm of this game. i dunno whats considered "balanced" or not

#

what if i just turned it all into tokens and made the player put in a number

tiny zealot
#

SURSTRร–MMING MENTIONED ๐Ÿ‘€

rigid musk
#

๐Ÿ˜ญ

#

i did not make the surstromming ...

harsh bobcat
#

honestly the fact that I don't quite get how to use the readonlyspans means I'm not gonna bother, it's reached more then enough speedup (if at 1 million characters it takes 30 milliseconds to run it'd still have fine runtime at 30 million characters of just 1 second [which is fine for the usecase I deal with] and at that point I'm certain the game would just kill me if I ever had it display that name [already the save file menu is essentially nonfunctional {like, we're talking spf instead of fps}])

#

still I'll keep that in mind if I get performance problems again in the future

rough lintel
#

does anyone know why mini bars makes my game run like dogshit whenever it draws all the hp bars on the screen?

#

or i guess this was an older ver of the mod, the changelog shows shockah and atra helped optimize it

#

so maybe it DOESNT do this anymore.

tiny zealot
#

(unhelpful answer) probably from adding a bunch of draw calls to the game loop and missing frame targets /lh

lucid iron
#

what does this do

brittle pasture
sour sleet
#

Is ItemExtensions currently buggy?

#

Oh...looks like the latest update broke custom nodes. Any news of a fix?

brittle pasture
#

for now revert to the previous version

calm nebula
#

Eight times. Per monster. Per tick

next plaza
#

Ah, okay, sounds good then. When I do my merge round Iโ€™ll definitely look into merging it (and probably just do any changes needed if there are any myself since if I postpone to shortly before CP releases then there wouldnโ€™t be much time to hope youโ€™re around and free for revisions ๐Ÿ˜› )

tiny zealot
rough lintel
lucid iron
#

why......

brittle pasture
#

becaus

lucid iron
#

no

rough lintel
#

because i eated the rect ๐Ÿ˜‡

orchid glade
#

I'm just looking at a mod that has duplicate keys in its i18n file. Is that an error or is that something that's possible?

proven spindle
#

Does anyone know if there are any tilesheet mods that add sections like these recolored to match the interior of the mines? DaisyNiko's adds a few other sections but not these ones

vernal crest
uncut viper
#

on a technical level i believe you cant count on which one is the one that will apply, as dictionaries are not ordered
(however its often safe to assume)

lucid mulch
#

the default behavior of newtonsoft which SMAPI isn't overriding is that the later property names will replace the earlier ones

uncut viper
#

newtonsoft coming in once again to change understandings

lucid mulch
#

JSON spec is order isn't guarenteed, but newtonsoft is deterministic as to how it will populate

uncut viper
#

does SMAPI's i18n loader replace the earlier one, though, or does it log a warning and use the first

lucid mulch
#

reloading does a full clear before repopulating, but the i18n handler itself never directly sees the raw json, only a Dictionary<string,string> passed in, so it will never even see the duplicate key

orchid glade
#

I'll report it to the author then ๐Ÿ™‚

uncut viper
#

ahh

#

makes sense

twin wadi
#

how do you add multiple possible dialogues that is randomly selected per day? e.g, like on weekends, any of "Hi, how are you?" "It's finally the weekend!" "I'm going to the saloon tonight." "How was your week?" are randomly chosen for the day

twin wadi
#

thanks! sorry if it's a dumb question but what's a dynamic token?

rare orbit
#

at least seasonal wise

brittle pasture
#

there's a permissions section you can read. which part do you have questions about

unique sigil
proven spindle
#

Darn, hope she does at some point! I'm trying to make my own for now but it's not going great ๐Ÿคฃ

rare orbit
brittle pasture
#

I believe you'd need to reach out to lemur for permissions, considering the original perms of ES

rare orbit
#

k

#

i apologize

#

i am just nervous

brittle pasture
#

(you were just asking questions, there's nothing to apologize!)

rare orbit
#

thank you ;w;

#

the internet is both wonderful and terrifying

lime mural
#

What is the sharogg discord acc?

inner harbor
#

If its Nyapu style stuff, go for it

rare orbit
#

oh cool! i was just gonna ask!

#

im working on the portraits for jessie and juliet!

inner harbor
#

I was just gonna say yhe only thing id prefer no one to do is rerelease the SC mod updated, and that's cos im mostly done updating it

rare orbit
#

oh ok! just make it a replacer? or can it be a content patcher mod? i know many don't encourage replacers incase ya wanna unistall

inner harbor
#

Oh redoing the portraits nyapu style is fine

rare orbit
#

yee!

inner harbor
#

But when i update they will be switched to the 1.6 mechanism of loading them

rare orbit
#

it'll just take a bit since there's a decent number of portraits and im still learning

#

kk!

inner harbor
#

Ftr, im pretty much aok with redrawn portraits of any of my characters as long as it isn't AI.

rare orbit
#

no worries it won't be

#

i have been drawing too long to rely on ai

drowsy minnow
#

how do you guys figure out the stuff for the area of sprites? im a little uncertain what im to place there if i were to make my own things...SDVpuffersob

vernal crest
drowsy minnow
vernal crest
drowsy minnow
#

that and how do i determine what i write when doing the content json

vernal crest
# drowsy minnow that and how do i determine what i write when doing the content json

Use vanilla spritesheets as a base to start your drawing to make sure that you're using the same sizes that vanilla does. If you open Maps/springobjects, for example, you will see that the majority of the objects are 16x16px.

As for what to write, I'm not sure what you mean. Usually you write the sprite index, which is the square that the sprite is in on your spritesheet starting from 0 at the top left.

drowsy minnow
vernal crest
#

I'm glad I could help!

woeful lintel
#

Hi, I just learned that I cannot throw exceptions in an [OnDeserialized] method because it will just say "Error was thrown in target of an Invocation"

proven spindle
hasty mauve
#

can i dynamically reload a c# mod without restarting the game?

proud wyvern
#

one you're making? if you're using Visual Studio, then you can hot reload bits of code, but not quite everything

hasty mauve
proud wyvern
#

then you can't

hasty mauve
#

k thanks!

brave fable
#

!reload -- to be clear, you can hot-reload C# mods at runtime when using Visual Studio Community

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.
hasty mauve
#

yeah i might just switch then

proud wyvern
#

not in VS Code though

#

also i thought Rider also couldn't do it?

#

not without targeting .NET 8 at least, which we can't do

hasty mauve
#

now if VS wouldn't feel so sluggish ๐Ÿฅฒ

#

hot reload might just be worth it though

brave fable
#

depends on your task and workflow! if you're tweaking behaviours often or just the sort to guess-and-check you'll save plenty of time with hot reload, such as for UI design updates

woeful lintel
#

I've been working on FF with VSCode without hot reload and I'm still alive

hasty mauve
#

would also be nice just to get proper debugging

woeful lintel
#

sane though, that's another question...

#

Don't take my advice, I'm infinitely biased against MS. I'd recommend Neovim if I actually finished setting it up

brave fable
#

i wouldn't imagine structured design like frameworks would benefit much from hot-reload, no

#

definitely more useful for user-facing behaviours that'd need tweaking to get just right

hasty mauve
#

oh damn the building/deploying/debugging workflow in VS is setup nicely. hats off to the people who set this up

woeful lintel
#

it's always a matter of balancing convenience and freedom

hasty mauve
#

what would be a simple way to display an in game text input box?

#

what i mean to ask is there anything built in that's ready to use or do i have to make it myself ๐Ÿ™‚

hasty mauve
#

I suppose i can use the chat for now ๐Ÿ˜„

woeful lintel
#

Maybe you can look at what is used to name babies

proud wyvern
#

or animals

hasty mauve
#

actually the chat works nicely i think

#

good enough to solve my problem ๐Ÿ˜„

ornate moon
#

does anyone know how can i make a new store for farm animals so that marnie isn't the only one selling animals? I'm still trying to figure that one out.

fathom hound
#

[[Modding:Shops]]

fathom hound
ornate moon
#

I'll check it out! thank you!

#

I am very new here sorry

fathom hound
#

No worries! Welcome in

vernal crest
#

Isn't that hardcoded and chu had to make a mod to unhardcode it?

ornate moon
#

who is chu?

vernal crest
#

C# modmaker. I'm having a look through their mods now to see if I remembered correctly.

ornate moon
#

thank you so much!

fathom hound
#

Aba to the rescue as always SDVpufferwow

vernal crest
#

Just making use of my constant hanging out here lol

ornate moon
#

okay, i just realized i have no idea how to create mods at all HAHAHAH

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.

brave fable
#

best follow the guides linked above, though

ornate moon
#

that is such a good suggestion, thank you!

brave fable
#

no problem! more accurately it won't show you how they're made, but rather exactly what will give you the results they wanted.
you'll often find these JSON files are absolutely not self-explanatory, so you'll want to read the documentation for any frameworks being used to find the usages, examples, and capabilities for each

#

and of course you can ask here with any questions as you go, and (usually) someone will be around to answer

ornate moon
#

oh i want to actually ask something. i am also using the donkeys mod and for some reason it says that they require a coop even though the mod requires a big barn for them. is that normal? i already checked their content file and there is no indicator for coop anywhere there. same goes for my alpaca

#

picture for reference

empty sinew
#

Would love to see exotic animals sells by other people

ornate moon
empty sinew
#

Yeah i read that

#

I'm getting a bit bothered by modding, all mod works together, but in term of game design, not that much

#

We have the chance oh having a fantastic expansion mod, that is SVE, tons of QOL, tons of new crops and animal and ressources but no mod that take care of making a great cooking balance of all of those, or even a restaurant mod idk, there is a big lack on this spot, tons of cooking mod but none where people sar down together and talk about how big the quality moded and vanilla crops/animals pool is, and what to do with it so it stay balanced if you have all the mod or if you only have one so vanilla don't stay on his side

drowsy pewter
#

This is not really a channel for making suggestions

#

Unless you want to start working on that mod yourself, in that case go ahead

empty sinew
#

Shit

hasty mauve
bright seal
#

So I was digging through code to understand the mechanics of gaining experience for a maxxed out skills challenge and I stumbled upon something that might be interesting

#

So, I know about the 'secret' Luck stat which exists and for all I've heard cannot be levelled but is modified by items such as the Lucky Ring.

proud wyvern
#

Luck skill exists yes

#

there was a mod that made it real

bright seal
#

However, and I do apologise if I'm wrong or if this is already known, I've found a couple of instances where it DOES seem to gain experience

proud wyvern
#

but it was too incompatible with other mods doing/handling/displaying skills, so i believe nowadays it's better to tinker with a separate SpaceCore-based Luck skill mod

bright seal
#

It seems as though opening chests in certain cases might grant some Luck EXP

proud wyvern
#

like, without any tinkering with it?

bright seal
#

Yup

#

It's listed in... lemme find t he two locations

#

In chests.cs, fishingrod.cs, and ... I THINK that's xp gained for harvesting giant crops too in GiantCrops.cs

#

Now, I honestly do not know if there is somethign else in the game code which RESETS luck exp rendering this gain null and void

#

There's also SOMETHING in MineShaft.cs which seems to trigger very rarely when the player breaks a rock and receives a geode of any kind (from what I'm looking at, I BELIEVE that only applies to when you're in the Mines and not for rocks you break on your farm?)

royal stump
#

Farmer.gainExperience short-circuits the exp gain if the skill is luck, here (luck being 5)

public virtual void gainExperience(int which, int howMuch)
{
    if (which == 5 || howMuch <= 0)
    {
        return;
    }```
bright seal
#

Ahhh, THERE we go

royal stump
#

so the game does call that occasionally, but doesn't actually ever raise it, afaict

bright seal
#

What an absolutely bizarre way to do the coding, god bless

#

Thank you for explaining; I was THINKING there must be something I was missing

hasty mauve
#

with the option to bring it back in without having to edit all the places again

bright seal
#

The wiki also says it's 14 experience for chopping down a tree and 2 for the stump, but I only saw 12/1 experience respectively in the game files. Is this a wiki error or is there some hidden foraging xp that comes into play?

bright seal
ornate moon
royal stump
#

(according to the wiki History notes at the bottom, anyway)

bright seal
#

Oh, interesting! Yeah, I have a 1.6 decompiled but it may very wel lbe a little out of date

royal stump
# ornate moon does anyone know about this problem?

Looks like that Donkey mod uses the wrong text for the "missing building" description here:

"ShopMissingBuildingDescription": "[LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5926]",```
that line of text *says* it requires a coop, even though it requires a barn; it should say this instead:
```json
"ShopMissingBuildingDescription": "[LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5936]",```
#

(5926 vs 5936)

ornate moon
#

big help!

gentle rose
#

I usually go with class and method name

#

(or content file and key for content mistakes)

#

(if youโ€™re wondering why the reaction to uncited changes is so harsh, itโ€™s because there really are a lot of nonsensical edits - for example, there was a switch bug that made all gifts loved gifts for everyone for a while, and the number of people who edited NPCsโ€™ pages to add something like โ€œtrashโ€ to their loved gifts was not small)

hard fern
#

SDVpuffersweats there were really that many?

#

enough for it to be an issue

gentle rose
gentle rose
#

so I assume that over the time that bug was around they had a fair few

hard fern
#

dang

serene moat
ornate moon
royal stump
# ornate moon do you have a list for strings like these?

If you mean in general, you'd need to unpack the game files and dig through multiple folders/files, but if you just need the building requirement lines:

"Utility.cs.5926": "Requires construction of a Coop",
"Utility.cs.5931": "Requires construction of a Barn",
"Utility.cs.5936": "Requires construction of a Big Barn",
"Utility.cs.5940": "Requires construction of a Big Coop",
"Utility.cs.5944": "Requires construction of a Deluxe Barn",
"Utility.cs.5947": "Requires construction of a Deluxe Coop",
"Utility.cs.5950": "Requires construction of a Deluxe Barn",```
ornate moon
#

thanks so much!

royal stump
#

SDVpufferthink I didn't even notice when posting that, but I guess there are two copies of the "deluxe barn" line in every language
(& both used in vanilla, one by sheep and the other by pigs)

flat moss
#

can someone remind me the smapi code to see the old cutscene?

flat moss
#

I just wanted to show the cutscene to my friend but it's appeared glitched XD

#

but ty, it's working

mortal stag
#

dear homies

I just made a PFM mod to turn Bone Swords into fertilizer at the bone mill

Then realized you can't actually... pick up a weapon... in any way... to put it in a producer

Am I missing anything or is this impossible?

ornate trellis
#

my dumb brains first thought was to just to try and automate it via chest into the machine to see if that works lol

mortal stag
#

ah that's not dumb at least it's outside the box which is how solutions get found. but yeah you can't pick them up at all.

ornate moon
hasty mauve
ornate moon
hasty mauve
lucid iron
#

2 cakes DokkanStare

hasty mauve
ornate moon
#

would love to try it out!

hasty mauve
#

search key is hard coded to K

ornate moon
#

that's a fun name

#

i'll try it out rn

hasty mauve
#

oh it only works with the english names btw. even if your language is set to smth different

#

it wasn't made with sharing in mind ๐Ÿ˜…

ornate moon
#

it works great, mate! thaaanls

hasty mauve
#

good to hear!

#

maybe i should build it out a bit ๐Ÿค” i18n support, customizable keybind, find or make something else as text input dialogue that doesn't have the "generate random name" button, show an arrow towards the chest if it's out of the viewport

ornate moon
#

up to you! would love to see it grow tho, pretty convenient

fading walrus
hasty mauve
#

one thing that stops me from it atm is that i'm very new in the game. just got into winter of my first year. so I don't know much about how things change. Recently I've unlocked the kitchen which has a fridge which should also be included in the search I suppose ๐Ÿค”

rich seal
#

Possibly a dumb question; I want to set up some "secret" coop animals, in that you need to use silly items to hatch them rather than purchase them from Marnie. I managed to get a non-egg item into the incubator by simply having "EggItemIds": ["103"] in the animal's json, but the day after, the incubator is just empty, as if the item wasn't placed in there in the first place. Looking at the Incubator's data in Machines.json, there's no context tag that would imply I need to have on an item for it to be used, so I'm at a loss. How can I set it up so that I can use a non-egg item in the incubator and hatch an animal that way?

round timber
#

how do you have a randomized When condition? i can tell just from looking at this that it probably isn't correct deh

brittle pasture
rich seal
#

if I change it so I can just buy it from Marnie, the animal works fine. It's just the egg thing left that's confusing me.

whole raptor
lucid iron
round timber
#

oh cool

#

did not think it worked like that kek

lucid iron
#

But what is the specific thing u be randoming

round timber
#

whether an npc is wearing a mask or not

lucid iron
#

Could do appearances if u want

#

Although not as an overlay so perhaps not

#

What's the desired percent chance?

round timber
#

im planning on doing seasonals and dont really wanna do two versions (masked and unmasked) for every outfit

brittle pasture
round timber
lucid iron
#

Well rn it 20%

round timber
#

ye

#

20% chance to be unmasked

rich seal
lucid iron
#

If the patch is applying the editimage mask overlay

round timber
#

its a dynamic token

#

and the overlay applies when true

brittle pasture
rich seal
#

Tried that before posting. Normal egg works just fine

#

Even other modded eggs work fine, both from my mod and others I've got downloaded

brittle pasture
#

anything in the logs?

rich seal
#

Nope, nothing

rich seal
#

Well what the heck, it worked with a different item ID. I changed 103 to DeluxeBait (random choice, I know), and it let me incubate just fine with the freaky baby hatching as intended.

#

Now it's working with id 103. I don't know what I did for it to suddenly work, but... it just works now? I didn't change any code other than swapping the ID around in the EggItemIds section of my code.

brittle pasture
#

computer gremlins

bright seal
#

Thanks for the heads up :O I was thinking of sending in a suggested edit clarifying one of the paragraphs describing moss mechanics - it was kind of confusing and I had to dig into the source code to find the answer for my question.

bright seal
#

(I actually have two questions if anyone knows the answer off the top of my head because I wasn't sure how to interpret the source code, please tell me if I should move these out of Modding:

a) when you harvest a fish pond and get more than one item (e.g. 3 roe), does the quantity affect the calculation for xp received or not?

b) when initializing a farm, where can I find the data for how debris is spawned - most particularly, trees and large stumps? I'm especially curious to find out whether all adult trees spawn at growth stage 4)

brittle pasture
opaque field
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 95 C# mods and 79 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

opaque field
#

there's something happening when my mod tries to load

ornate trellis
#

when testing a mod you should really do that with a minimal modload

opaque field
#

oops right, I'd been slowly adding more to test compatibility with the last version

ornate trellis
#

also, try refreshing your modlist after you took out unneeded mods

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.

harsh bobcat
#

wait ... I don't think I enabled harmony

#

yep

frosty hull
tulip marten
#

Hello, I'm currently working on modifying the farmhouse map. I've made changes to FarmHouse_Crib_1.tmx, FarmHouse_Crib_2.tmx, and FarmHouse_Cellar.tmx. However, after upgrading the house in-game, two cribs and the original cellar entrance appear. One of the cribs is still located in its original vanilla position.
How should I resolve this issue? I searched online and found that it's likely due to hardcoded coordinates used by the game. Many suggest keeping the vanilla positions to avoid problems. Is there a better solution?

ornate trellis
#

MMAP can relocate the crib, p sure it can also do something bout the cellar, you'd have to read about it on the git

ornate trellis
#

jsut click on the readme link to read about the stuff, the building stuff should be further at the bottom of that page

tulip marten
#

Thank you very muchSDVemoteheart

bright seal
ornate trellis
#

the debris is from the paths tilesheet

#

this funky dude

bright seal
#

Yeah, but... either I'm missing a coding fundamental or I'm explaining myself wrong I think ๐Ÿค”

#

So when I start a new game for the very first time, the farm is populated with random twigs, weeds, trees, logs, boulders etc.

calm nebula
#

They aren't random

bright seal
#

Ahhh okay, so it IS pre-established on each farm map and I just never noticed that it wasn't changing every time? XD

calm nebula
#

Yes

bright seal
#

Okay, THAT makes sense. Thank you very much!

ornate trellis
#

yeah jsut open any farm map in tiled and you'll see

bright seal
#

So if I look at a map of a brand now Standard Farm, it will always have exactly that many Stumps and Boulders in those exact locations?

calm nebula
#

Yeah

bright seal
#

perfect and magic, thank you very much to the both of you

harsh bobcat
#

overnight from night 0 to night 1 there's some debris spreading that occurs

#

so it's not 1000% the same every time

#

but it's basically the same every time yes

#

okay I'm still not having success. I can do other harmony hooks (I tested GameLocation.OnStoneDestroyed) but not this one. How could I check if a function is being inlined?

#

(Since that's the error case I see mentioned)

calm nebula
#

You kinda cant

#

What method is it

harsh bobcat
#

Utility.CreateRandom

calm nebula
#

If the harmonysummary says it's patched but it's not acting like like it is like inlined

#

Are you on a mac

harsh bobcat
#

yeah

calm nebula
#

Well damn

harsh bobcat
#

where's the harmony summary

calm nebula
#

Mac is far more aggressive on the inlining

harsh bobcat
#

I haven't heard of that

calm nebula
#

!harmonysummary

ocean sailBOT
#

To get a little more info, can you:

  1. Load into the game (the title screen is fine).
  2. Type harmony_summary into the SMAPI window and press enter.
  3. Upload your SMAPI log to https://smapi.io/log (instructions on page)
  4. Post the log link here?
harsh bobcat
#

ah then yes indeed that says it's patched

calm nebula
#

Yeah. Unfortunate

#

I can patch that fine on Windows lol

harsh bobcat
#

to double check I'm doing it right:

var harmony = new Harmony(this.ModManifest.UniqueID);
            harmony.Patch(
            original: AccessTools.Method(typeof(Utility), nameof(Utility.CreateRandom)),
            prefix: new HarmonyMethod(typeof(ModEntry), nameof(ModEntry.CreateVerboseRandom))
            );

and

public static bool CreateVerboseRandom(double seedA, ref Random __result, double seedB = 0.0, double seedC = 0.0, double seedD = 0.0, double seedE = 0.0)
#

(my goal is to replace random with a new random that logs every time it's being called, since I want to trace random calls to hopefully look into manipulating game1.random on file creation)

#

harmony_summary tells me

StardewValley.Utility.CreateRandom
      - Alexa314.VerboseRandom (prefix)

so I know harmony likes it

#

but I want to make sure that I haven't somehow messed up the arguments

calm nebula
#

Looks right to me

#

Exactly what I have that works right on windows

harsh bobcat
#

would that mean that that mod just wouldn't work for me, incidentally?

calm nebula
#

High probability yeah

harsh bobcat
#

ugh. I guess I can try to transpiler? patch the game1.random = calls (since I only care about game1.random)

#

but that's gonna be annnoying

calm nebula
#

What are you trying to do?

#

But you're right there are only two times game1.random is set iirc

harsh bobcat
#

3, but close enough

harsh bobcat
#

I made a class VerboseRandom which does that; it has an internal counter and every random call it logs "Hey this is random call #x"

calm nebula
#

Ah okay yeah just transpile that in

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.

calm nebula
#

Close and restart stardrop

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 5 C# mods and 4 content packs.

vital dew
#

hey all! i apologize if this is the wrong channel to ask this, it's been a minute since i've been around here ^-^;

so it's been over a year since i last looked at stardew stuff (i was in full-swing of a playthrough when 1.6 dropped and broke everything i had, so i didn't bother looking more into fixing it til recently)
which leads me to this question: what's the best way a friend and i can play multiplayer, and we each have our own farm maps to work with? i saw this mod (https://www.nexusmods.com/stardewvalley/mods/26873) which says it allows it, but it also apparently shows every farm, like it's unconfigurable to only show two, unless i misread it :o
i have a bit of map editing experience where i can maybe fix things myself but i just wanted to know if there was already a solution of sorts to this c:

thank you in advance, and sorry for the longer message ahriSalute

opaque field
calm nebula
#

Then I don't know. I don't use stardrop

#

I would ask if the path exists

bright seal
#

I don't knwo if it helps, but earlier on in the thread ([14:52:55 TRACE SMAPI] Ignored loose files) it lists a number of CP mod packs, with The Wolf being one of the listed mods?

opaque field
#

Hmm, okie I'll keep fiddling around with it

old edge
#

If anyone able to help with my code going to post it in a sec.

#

what was that mod that lets you set your default player speed? Tired of having to set it with debug commands..

half tangle
#

CJB cheats lets you set a player speed and that does not reset

harsh bobcat
#

Okay I'm looking at https://stardewmodding.wiki.gg/wiki/Tutorial:_Harmony_Patching#Transpilers and trying stuff out but it's not currently succeeding (complaining about unable to find things). Here's what I'm trying to do:

According to ILSpy, the relevant il lines in SaveGame.getLoadEnumerator are

IL_0cbe: call class [System.Runtime]System.Random StardewValley.Utility::CreateDaySaveRandom(float64, float64, float64)
IL_0cc3: stsfld class [System.Runtime]System.Random StardewValley.Game1::random

As such, I'm trying this:

harmony.Patch(
            // original: AccessTools.Method(typeof(Game1), nameof(Game1.newDayAfterFade)),
            original: AccessTools.Method(typeof(SaveGame), nameof(SaveGame.getLoadEnumerator)),
            transpiler: new HarmonyMethod(typeof(ModEntry), nameof(random_transpiler))
            );
        public static IEnumerable<CodeInstruction> random_transpiler(IEnumerable<CodeInstruction> instructions)
        {
            CodeMatcher matcher = new(instructions);
            MethodInfo setRandom = AccessTools.PropertyGetter(typeof(Game1), nameof(Game1.random));
            MethodInfo makeVerbose = AccessTools.Method(typeof(ModEntry), nameof(CreateVerboseDaySaveRandom));

            matcher.MatchStartForward(
                new CodeMatch(OpCodes.Stsfld, setRandom) //finds where we would set random into memory (also errors if I delete setRandom)
                )
                .ThrowIfNotMatch($"Could not find entry point for {nameof(random_transpiler)}")
                .Advance(-1).RemoveInstruction() //removes the function call to CreateRandom
                .Insert(
                new CodeInstruction(OpCodes.Call,makeVerbose) //Replaces it with our own createverboserandom.
            );

            return matcher.InstructionEnumeration();
        }
#

but the throwifnotmatch is erroring

calm nebula
#

It won't

#

It's a....what's it called it

#

Inner method or smth

#

I'm not at home so I hope this example makes sense

harsh bobcat
#

ooo example code for hijacking game1.random

calm nebula
#

It doesn't fully work btw, I never finished the transpiler

#

But it at least finds the right spot

harsh bobcat
#

of course you're doing a different thing than me but still this will hopefully be great reference

#

progress! it now crashes because Common Language Runtime detected an invalid program because I don't know what I'm doing. but it's closer!

#

okay it looks like

IL_0006: call int32 StardewValley.Utility::CreateRandomSeed(float64, float64, float64, float64, float64)
IL_000b: newobj instance void [System.Runtime]System.Random::.ctor(int32)
IL_0010: ret

and I'm currently doing

matcher.MatchStartForward(
    new CodeMatch(OpCodes.Call, typeof(Utility).GetMethod(nameof(Utility.CreateRandomSeed))) //finds where we create the seed
    )
    .ThrowIfNotMatch($"Could not find entry point for {nameof(saverandom_transpiler)}") //actually _newdayafterfade forgot to rename
    .Advance(1) //moves from the creation of the seed to the creation of the random
    .RemoveInstruction() //removes the random instruction
    .Insert(new CodeInstruction(OpCodes.Newobj, makeVerbose) //Replaces it with our own createverboserandom.
);
calm nebula
#

What's makeVerbose

harsh bobcat
#

oh oopsies you're so right MethodInfo makeVerbose = AccessTools.Method(typeof(ModEntry), nameof(CreateVerboseDaySaveRandom)); I didn't include that

calm nebula
#

Yeah no you need to yeet the previous instructions too

#

You see how that is...wait a second

rough lintel
calm nebula
#

See how that is utility.createrandomโ˜†โ˜†seedโ˜†โ˜†?

#

You need to remove that instr too

#

And the createobj

harsh bobcat
#

oh right yeppp

ocean sailBOT
#

@harsh bobcat You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

harsh bobcat
#

okay so my thoughts are that at that moment on the stack we have the 5 arguments for createrandom. I delete the create random, delete the new obj, and replace it with a call to createverbose random which in theory should take the 5 arguments off the stack and replace it with the new VerboseRandom object? It's telling me JIT compiler encountered invalid IL code or an internal limitation rn.

.RemoveInstruction() //Removes the create random seed call
.Advance(1) //moves to the new obj
.RemoveInstruction() //removes the random instruction
.Insert(new CodeInstruction(OpCodes.Call, makeVerbose) //Replaces it with our own createverboserandom.

okay this complains that

#

very annoyed I couldn't just prefix/postfix it il instructions are annoying

calm nebula
#

Remove the Advance(1) I think

harsh bobcat
#

I tried, and it still complained

calm nebula
#

You're removing, right?

#

Wait no you did you change MakeVerboseRandom to return the random

harsh bobcat
#

CreateVerboseRandom takes 5 doubles and returns a VerboseRandom

calm nebula
#

And it's static. Hmmm

#

Are there any labels

harsh bobcat
#

This is the full createrandom function according to ilspy

    .method public hidebysig static 
        class [System.Runtime]System.Random CreateRandom (
            float64 seedA,
            [opt] float64 seedB,
            [opt] float64 seedC,
            [opt] float64 seedD,
            [opt] float64 seedE
        ) cil managed 
    {
        .param [2] = float64(0.0)
        .param [3] = float64(0.0)
        .param [4] = float64(0.0)
        .param [5] = float64(0.0)
        // Method begins at RVA 0x102aa6
        // Header size: 1
        // Code size: 17 (0x11)
        .maxstack 8

        IL_0000: ldarg.0
        IL_0001: ldarg.1
        IL_0002: ldarg.2
        IL_0003: ldarg.3
        IL_0004: ldarg.s seedE
        IL_0006: call int32 StardewValley.Utility::CreateRandomSeed(float64, float64, float64, float64, float64)
        IL_000b: newobj instance void [System.Runtime]System.Random::.ctor(int32)
        IL_0010: ret
    } // end of method Utility::CreateRandom
#

here is my whole relevant code as a screenshot

#

Complains InvalidProgramException: The JIT compiler encountered invalid IL code or an internal limitation which shows it at least found it

#

Oh interesting - putting the Advance(1) back in makes it say InvalidProgramException: Common Language Runtime detected an invalid program instead

#

idk if that's super illuminating but it's better than nothing

brittle pasture
#

you can log the final result of the matcher and see the generated IL

#

and check whether you misplaced an instruction or smth

harsh bobcat
#

how would I do that?

brittle pasture
#

something like

foreach (var instruction in matcher.InstructionEnumeration()) {
  Log($"{instruction.opcode} {instruction.operand}", LogLevel.Trace);
}
harsh bobcat
#

ah specifically yoinking opcode and operand

#

that makes sense

#

okay that produces a lot of lines but it does include the lines I want to look at. with the ability to see what's happening I'll try playing around with it myself again

peak isle
#

this might be a stupid question but why not just patch random.Next() and associated methods if you want to get the result of every random call? i feel like there'd be less hurdles but also im an idiot so im probably wrong lol

opaque field
#

I've tried almost everything I can think of except starting over and I keep getting the same freaking message even though everything else looks right as far as I can tell

#

T.T

harsh bobcat
#

my first attempt was to prefix patch createrandom to have it return my verboserandom but it's apparently inlined on mac so I can't do that

#

I guess actually idk if any non-game1.random's will get used during the portion of time I'm interested in

#

oh I could use __instance to log who is calling

#

that might just be way simpler

#

gonna try that for a bit

harsh bobcat
#

(there's also the fact that I lose the convenience of only changing Random.Sample, which is called every time)

#

(apparently I can't change Random.Sample because it's protected 3:)

#

let's go I actually got some random logging. now I just have to make sure I log everything

harsh bobcat
#

how do I patch a constructor? I'm trying to do Random.Random but that says it doesn't exist, Random.ctor doesn't work, and nameof(Random) just complains

#

I can clearly see people saying it is possible to harmony patch a constructor but I'm only ever finding people who say "yes it's possible" and not "how to access the constructor"

valid folio
#

Hello, how are you? If I share a log, could you help me out? I was installing mods on an already existing save, and now I'm getting an error. The strange thing is that the mods I added shouldn't cause issues with existing saves, but there might be a conflict between them.

The problem happens when I try to save the game. I went through the trouble of uninstalling all the mods to check if the save could work againโ€”and it did. Then, I started adding the mods back in small groups to identify the conflict. That process seemed to point to CloudSkyes, but even after uninstalling it, the save still crashes when trying to save the game.

If I uninstall all the mods againโ€”except the farm map mod for obvious reasonsโ€”I can save the game without any issues.

I couldnโ€™t figure out from the log which mod is causing the conflict, or if itโ€™s multiple mods.

If I canโ€™t recover the save, itโ€™s not the end of the world, haha, but Iโ€™m dying of curiosity to figure out where the problem is.

ornate trellis
valid folio
harsh bobcat
#

it's a forum channel, make a post

ornate trellis
#

you open a thread, write about your rpoblem and put the log and then wait for people to check your thread and (hopefully) help you

valid folio
#

Ah, I found the button to post โ€” it was because of my lack of peripheral vision. When something isn't where I'm used to seeing it, I just don't notice it. Since the option to write is usually at the bottom, I didnโ€™t expect it to be at the top, haha. Anyway, I was hoping for a bit more immediate help. If not, Iโ€™ll just start a new save with all the mods already installed โ€” that way, it seems thereโ€™s no conflict. My main intention was to clear up the doubt and learn from it.

harsh bobcat
#

it's just as immidiate of help as this channel, with the bonuses of being in the right place and without the worry of your message getting lost

valid folio
copper kestrel
#

@ivory plume any chance we could get an IsPrismatic property for objects in 1.6.16 like the existing one for hats/pants?

wind basalt
#

Hello! I was trying to add this item i added through this (check screenshot), and i was extremely confused about how i can add it to the AG, the shop wiki is extremely confusing

#

Can anyone help please?

brittle pasture
#

prismatic wine SDVpufferwoke

ornate trellis
#

random question: im bad at imagining this shit so....if i put r 0.2(aka 20% chance) for an event to happen would that possibly take too long to happen(or is this chance also unfluenced by luck or something)

half tangle
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.

half tangle
ornate trellis
wind basalt
# half tangle !json At a glance it looks like you have mismatched braces, but if you copy your...

it gave me this json { "Format": "2.6.0", "Changes": [ { "Action": "Load", "Target": "{{ModId}}/Boots, {{ModId}}/BootsColor", "FromFile": "assets/{{TargetWithoutPath}}.png" }, { "Action": "EditData", "Target": "Data/Boots", "Entries": { "{{ModId}}_PhantomguardEclipsers": "Phantomguard Eclipsers/Outpace the Unseen, Withstand the Unbroken./600/8/8/8/Phantomguard Eclipsers/{{ModId}}\\BootsColor/0/{{ModId}}\\Boots" } }, {} ] }

ornate trellis
ornate trellis
half tangle
ivory plume
ornate trellis
#

totally unrelated but i love your pfp, pathos

marble needle
#

Hello, there is something like fashion sense, but for the farmhand?. Like lift the limitation of the sprite size of the farmhand, add animation support, a convenient menu to choose the skin (mirror) and being visible in multiplayer if the other players has the same mods?

copper kestrel
twin wadi
#

Everything's working fine, except my NPC is spawning in the town map instead of her custom map... her house map is working fine. nothing relevant in the smapi log. my npc's following schedule she's supposed to be doing in her own house.
this is my code in dispos.json about spawning:

                        {
                            "Id": "Default",
                            "Location": "{{ModId}}_IrisHouse",
                            "Tile": {
                                "X": 16,
                                "Y": 5
                            },
                            "Direction": "right"
                        }
                    ]```
ornate trellis
#

whats the schedule like?

half tangle
#

Have you slept so that the game can load any schedule updates?

warped aurora
#

Hello, I am making a simple weapon mod. I got the stats and stuff to work, but I cannot get the texture to load. I tried putting the texture in an assets folder, but i cant get it to work

ornate trellis
#

does the weapon itself exists ingame tho?

#

like, jsut with an error image

warped aurora
#

Just the error image

#

everything else works fine

ornate trellis
#

and you did load your tilesheet?

warped aurora
#

or seems to at least

wind basalt
ornate trellis
twin wadi
wind basalt
#

can you please give like a guideline or something

ornate trellis
wind basalt
#

this doesn't really help :(

ornate trellis
#

sorry, had to grab the link

wind basalt
wind basalt
twin wadi
#

i slept and it worked now! time to figure out dialogue ๐Ÿ™‚

warped aurora
#

Sorry this is my first time modding

wind basalt
#

would this work ```json
{
"Format": "2.6.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Shops",
"Entries": {
"Example.ModId_CustomShop": {
"Owners": [
{
"Name": "Any",
"Dialogues": [
{
"Id": "Example.ModId_SunnySummer",
"Condition": "SEASON Summer, WEATHER Here Sun",
"Dialogue": "Ice-cream is perfect for a day like this."
},
{
"Id": "Example.ModId_Default",
"Dialogue": "Welcome to the only place in town for pufferfish!"
}
]
}
],
"Items": [
{
"Id": "Example.ModId_IceCream",
"Condition": "SEASON Summer",
"ItemId": "(O)233"
},
{
"Id": "Example.ModId_PufferFish",
"ItemId": "(O)128",
"Price": 1000,
"AvailableStock": 1,
"AvailableStockLimit": "Player"
},
{
"Id": "Example.ModId_PhantomBoots",
"ItemId": "{{ModId}}_PhantomguardEclipsers",
"Price": 600
}
]
}
}
},
{
"Action": "Load",
"Target": "{{ModId}}/Boots, {{ModId}}/BootsColor",
"FromFile": "assets/{{TargetWithoutPath}}.png"
},
{
"Action": "EditData",
"Target": "Data/Boots",
"Entries": {
"{{ModId}}_PhantomguardEclipsers": "Phantomguard Eclipsers/Outpace the Unseen, Withstand the Unbroken./600/8/8/8/Phantomguard Eclipsers/{{ModId}}\BootsColor/0/{{ModId}}\Boots"
}
}
]
}

ornate trellis
wind basalt
#

ignore the pufferfish

#

i'm just trying to implement the example given

ornate trellis
#

i need to ignore most of what you jsut posted lol

#

use the example i gave above

wind basalt
#

okee that works

#

thanks

#

so like this ?

ornate trellis
#

just put your boots id where "YOUR_ITEM_ID" is and change the price

wind basalt
#

wait let me

#

like this?

rough lintel
#

any csharpers in the chat, i am going to yell very loudly

half tangle
#

sup

wind basalt
ornate trellis
rough lintel
#

what tf is Begin.

half tangle
#

When is this method getting called?

#

your method, I mean

ivory plume
#

The game alternates between updating the game state ("update loop") and drawing to the screen ("draw loop"). It looks like you're trying to draw to the screen outside the draw loop?

wind basalt
ornate trellis
#

even to the one you spawn yourself?

wind basalt
#

hm?

ornate trellis
#

i havent done boots before thonking

wind basalt
ornate trellis
wind basalt
#

yessir one second

#

also anyone knows what resolution the boots.png should be?

#

i put 512 x 512 and the item goes absolutely invisible, but 16x16 was extremely blurry

#

also i set the selling price to 650 but it sets it to 800, wifi says "Unused. The actual price is calculated as (added defence ร— 100) + (added immunity ร— 100)."
how do i set the sell price to something else ?

lucid iron
#

boots are 16x16

#

you gotta draw the art at 16x16 unless you are using scale up 2

wind basalt
#

ohh

#

ok thanks

#

what about the selling thing

lucid iron
#

you cant besides changing the stats

wind basalt
#

aw

#

alright

#

thanks

brittle pasture
#

if you're selling the item in a shop you can set the purchase price there

wind basalt
#

not the pruchase price

#

purchase*

#

i mean the price for what you sell

#

if i'm being clear

brittle pasture
#

right, I added just in case

wind basalt
#

wait

#

oh

#

yeah yeah ik that but thanks ๐Ÿ™

sturdy wyvern
#

making a patch for a patch, the original patch uses a config to select an asset, i am using CMCT to read that config but i dont know what would be the right formating to read the CMCT token and make it act the same as the original did:

example:
original file:
config file:
variant = ["1", "2", "3"],

content.json:
"FromFile": "assets/portraits/character-name-{Season}-{variant}.png"

wind basalt
#

patch patch

uncut viper
sturdy wyvern
#

some of the mods i use are the drag and drop art replacement type, so i make content.json so instead of needing to manually alter the original mod i can do so via mod loading

uncut viper
#

when i say replace i just mean like. wherever they would use {variant} you use the CMCT token instead and it should act identically

#

not actually replacing it in their files

sturdy wyvern
#

understood

rough lintel
#

so i need a new method

#

okey dokey

brittle pasture
#

You can maybe do something like set a static variable, and in the draw events if that variable is set draw stuff

lucid iron
#

@ivory plume hi pathos I noticed weird thing with farm animal left animation with UseFlippedRightForLeft=false
they seem to still use their right anim but flipped when going left

#

i replaced rabbit with this so i was expecting the black boxes to be on the left side of the rabbits

rough lintel
#

alriiiiight so i broke it haha nice

#

mfw my draw code dont show ๐Ÿ˜”

half tangle
#

Do you happen to need to set the position to be within the viewport? In other words, is it actually just drawing your textures way off screen somewhere? (sometimes I've drawn stuff in the top left of the map instead of the top left of the viewport)

rough lintel
#

i dont think its bc of that, its a case of IMBS lmao

#

i dont think i understand how to .... get the values i need to draw from the other method

#

bc i dont want to reinvent the wheel to get the right variable names

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 6.8.0.59, with 7 C# mods and 4 content packs.

rough lintel
#

i rly shoulda just paid someone else to recreate this mod for me ~_~

opaque field
#

I've tried everything I can think of other than starting over from scratch to make this dang thing work

half tangle
#

You could try putting data into a static variable of some kind to pass it along from where you're getting it to where you're using it

rough lintel
#

i dont know enough to begin splitting this into different static methods ๐Ÿ˜ญ i think ill just leave it be for now

#

like it all worked before i started draw code so im like. maybe i just dont even do it. but i need to do it

half tangle
uncut viper
#

if you just make a static field on your ModEntry class, you can read and write to it from anywhere in your mod

#

(assuming its public)

ivory plume
rough lintel
lucid iron
#

i was pretty confused too, but when i looked i saw zero calls to AnimateLeft

uncut viper
lucid iron
half tangle
#

Yeah, sometimes a break can help

lucid iron
#

i dont know why it is still flipping the sprite even tho rabbits have that flag at false tho

#

animatedsprite scary

opaque field
#

I keep getting errors like Error preloading content pack 'TheWolf'. Technical details:
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/caracal/.config/Stardrop/Data/Selected Mods/[CP] The Wolf'.
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)

#

but my content, config, manifest, etc all look like they're in the right place

ivory plume
# lucid iron

(Apparently that code was a mystery to the last person who changed it too.)

case Game1.left:
    Sprite.AnimateRight(time); // This is intentional for some reason (see below where it's done in the ground base move too)
    FacingDirection = Game1.left; // Also note setting FacingDirection directly.
    break;
harsh bobcat
ivory plume
#

Nope; that seems like probably a typo. I can look into fixing those for the next game update.

lucid iron
#

Thanks!

harsh bobcat
#

I don't fully understand string cultures to be honest so maybe there is some reason for it, but invariantculture is only used in 4 places as far as I can tell, with handleactioncommand and handleitemcommand

#

(Admittedly, the performance impact in a real setting would be completely negligable [a mail which took 6.6 seconds to read instead took 6.3 iirc {and most mails take a handful of milliseconds at most}], my usecase is incredibly incredibly niche)

opaque field
#

Iโ€™m just gonna start over and re add stuff until I figure out whatโ€™s breaking it

twin wadi
calm nebula
#

Morning, Pathos! Long time no see.

ivory plume
#

Hi!

obtuse pier
#

Hellooooo

#

I wanted to ask here if anyone knows how to do modpacks

ivory plume
obtuse pier
#

Or idk I wanna make a mod but idk how to. I downloaded smapi idk how to after

ivory plume
calm nebula
#

I would ask the Nexus server about collections

lucid mulch
#

even then they aren't great fit for Stardew as stardew modding culture is latest version all the time with many times frequent updates and mod compatibility isn't a time investment

Modpacks shine when mod compatibility is hard and requires a lot of config tuning, and particularly for nexus collections, Skyrim modding has the fun problem where just staring at version numbers too long can corrupt the save files which is why it likes frozen versions

inland rain
#

@ivory plume in the new SDV it seems Events.Display.Rendered is not letting things be drawn on top of the global fade to black; before my quotes mod was able to draw a quote on top of the black screen, but now it seems to be drawn under it? I don't see why that's happening in the code, but a mod user pointed it out to me.

rich seal
#

Question; what was the method for editing vanilla values again? I want to take every fish found in Data/Fish.json and change all of their maximum sizes, but I'm drawing a blank on how I would do that correctly.

rigid oriole
inland rain
#

works great! tyty

rigid oriole
#

(i'm also curious to hear pathos' answer but i'm glad that worked for you!)

drowsy pewter
#

you need TargetField so you dont replace the entire fish entry

rich seal
#

I figured it was targetfield, but the problem is that the line looks like this;
"128": "Pufferfish/80/floater/1/36/1200 1600/summer/sunny/690 .4 685 .1/4/.3/.5/0/true",
The only thing I would want to edit is the /1/36/, but the field is 128, right?

drowsy pewter
#

Oh I forgot that it was a string

#

The entry is 128 and you can refer to each field starting from 0, 1, 2, 3 etc

#

I dont have an example onhand but you may be able to look for some other fish data mod and follow what they do

#

like instead of "Name": "Pufferfish" it would be "0": "Pufferfish"

#

Pre-1.6 mods to change item names would also be an example of the correct format

#

such as any of the rabbit foot replacer mods

rich seal
drowsy pewter
#

You need to target data/fish but otherwise it should work

rich seal
#

Yeah I saw that at the last second lol

#

Welp, time to try this out. Giant pufferfish record, here I (hopefully) come

drowsy pewter
#

You'll want to test it out though, I'm not 100% sure

#

thanks internet for sending my messages agonizingly slowly lol

rich seal
#

It's all good. I just gotta catch a pufferfish instead of an easier fish to catch for testing, no big deal ๐Ÿฅฒ

drowsy pewter
#

What does changing the size do anyways?

rich seal
#

Absolutely nothing of value. I just want it to say that, when you catch a fish, it's got an absurd size

drowsy pewter
#

Hahahhaha

rich seal
#

It also shows your record size in collections

drowsy pewter
#

Ohh got it. I dont fish much so I didnt pay attention to that

rich seal
#

Yeah it's super niche and easy to miss. Like every pufferfish I have yet to catch for testing. If I wasn't so stubborn I'd try other ocean fish too, but now it's a matter of pride

rare perch
#

if im using contentpatcher to patch one of the dialogue files, do i need to save my edited file as xnb, or is json fine?

tiny zealot
#

if you are using content patcher to patch a dialogue file, you should apply only your changes (not the edited full file) and use .json, not xnb

lucid mulch
twin wadi
#

yay, my npc mod is now functional! i havent added events or anything but it has all the basics ๐Ÿ™‚ it was so fun

round timber
#

congrats!! it may not seem like much but a lot of work does go into just getting to that point blobnod

twin wadi
#

thank you โค๏ธ

rich seal
#

Well my pride is shattered; my file was in winter. Pufferfish don't spawn in winter. That would explain why I can't catch any for testing the edited sizes lol. As for if my edit worked, it definitely edits the size, but it's only catching the maximum size of the fish as shown on the wiki. For example, Red Mullet's max size is 34 inches, and I consistently get 34 inch mullets. My file has 1000 as the intended max size, so I'm not sure if I got the wrong value or not.

rough lintel
#

there may be a hardcoded max size of fish, and any number above that gets capped

rich seal
#

That's what I'm concerned about. I really hope that's not the case, because this was on my bucket list of silly things I really wanted in a mod ๐Ÿ˜ฆ

calm nebula
#

I doubt it's hardcofed like that

#

More likely than not you have an issue in your code

rough lintel
#

may
โ•ฎ(๏ฟฃโ–ฝ๏ฟฃโ€โ€)โ•ญ

calm nebula
#

Tbh I'm not at home so I can't look at it

rich seal
lucid mulch
#

(ObjectInformation doesn't exist, and even then never stored the fish size)

drowsy pewter
#

You didnt edit data/fish?

calm nebula
#

Yeah you want data/fish

#

You can also combine all those btw

#

Sinz will show you shortly SDVkrobusnaughty

rich seal
#

...did I seriously forget to put fish in there

#

F

lucid mulch
#

there is difficulty in actually obtaining max size fish as its quite random, and fishing level, bait, etc are factors that acts as a multiplier between 0-1 to reduce the size of the fish

rich seal
#

HAHAHAHA

lucid mulch
#
float fishSize = 1f;
fishSize *= (float)this.clearWaterDistance / 5f;
int minimumSizeContribution = 1 + who.FishingLevel / 2;
fishSize *= (float)Game1.random.Next(minimumSizeContribution, Math.Max(6, minimumSizeContribution)) / 5f;
if (this.favBait)
{
    fishSize *= 1.2f;
}
fishSize *= 1f + (float)Game1.random.Next(-10, 11) / 100f;
fishSize = Math.Max(0f, Math.Min(1f, fishSize));

this.minFishSize = Convert.ToInt32(fields[3]);
this.maxFishSize = Convert.ToInt32(fields[4]);
this.fishSize = (int)((float)this.minFishSize + (float)(this.maxFishSize - this.minFishSize) * fishSize);
this.fishSize++;
brave fable
lucid mulch
#

well theres that +1 at the end kicking in

rich seal
#

I should probably change 1000 to 999 then

#

Or, just to be playfully spiteful, change the max size to 2km ๐Ÿ˜›

calm nebula
#

Fun fact

#

The game multiplies that number by 2.54 and uses cm for every language not English

lucid mulch
#

oh I need a mod that does that in english too then

rich seal
#

I'm aware. Having to do the math to get approximate metric numbers is rough but not impossible

#

Time to see if I got the right value for 2km in inches

calm nebula
#

You go do it

rich seal
#

I also subtracted 1, to account for that +1 lol

brave fable
rich seal
#

Well that's a massive Walleye

calm nebula
#

If I wanted a matric option I would go play with Autocad

rich seal
#

Now to try this out on a fresh character to see if I can get variance. I keep catching the max size every time.

lucid mulch
#

tbh a metric mod would also require changing the intro signs to not mention miles, and also patch mineral town and some other places too which is #effort

calm nebula
#

Lol

#

Enjoy!

#

I keep on intentionally using Celsius with Americans

#

Just to watch them squirm

lucid mulch
#

the mostly correct unit of temperature anyway

brave fable
#

they deserve to know there's a whole world out there that's measured in celsius ๐Ÿ˜Œ

lucid mulch
#

the only time celcius isn't appropriate is when kelvin is more useful

calm nebula
#

Oh sometimes I do that shit too

#

Just to be annoying

#

Sorry

#

"Yeah it's about 283 Kelvin rn"

#

Hi bluebs

#

Long time no see

#

Any cool new mods?

#

How are the loc bugs

brittle pasture
#

who is kevin and why is there 283 of him

calm nebula
#

Hi selph

brave fable
#

it can go the other way too. you're free to call it Kevin around actual scientists

calm nebula
#

You owe me a steak

lucid mulch
#

if more people used kelvin or the freakish Rankine scale, then people might be more willing to accept Inverter AirConditioners are awesome

calm nebula
#

I know I started it

lucid mulch
calm nebula
#

Because for some reason I'm still around despite being no longer a modder

rich seal
#

This is a giant step for a brainlet like me who barely understands code. I'm quite happy now. Thanks for everyone's help in getting this INCREDIBLY silly thing work

brave fable
#

i can't believe you hit me with the off-topic channel. baited like a sardine

brittle pasture
calm nebula
#

Sorry, Pathos

lucid mulch
#

-# panic Pathos is watching, scatter

calm nebula
#

I'll leave now. || I need to go to the airprot anywyas ||

brave fable
ivory plume
brave fable
#

and the insurmountable tower of 'compatibility with mod-added recipes using between 7 and int.Max ingredients'

#

i'd imagine the best solution there without making an infinite UI is to have the recipe usable if you own any 6 of the ingredients

#

similar to vanilla bundles

lucid mulch
#

(I have a mod currently that removed that from vanilla bundles and I need all 12 things for the dye bundle)

brittle pasture
#

you can just tell them to use better crafting and redirect all bugs to khloe

calm nebula
#

I want my box of chocolates bluebs

brave fable
#

ah well naturally this affects BC too lol

#

how many ingredients does a box of chocolates have ๐Ÿ“

drowsy pewter
#

1 chocolate and 1 box

harsh bobcat
#

oopsies I messed up on the type of my prefix function

rough lintel
#

in events, the friendship command accepts negative numbers to take away friendship, right?

#

bc that mf not takin away the hearts >:(

round timber
#

yes it does

#

whats ur code lookin like?

calm nebula
#

Make sire you don't have cjb

rough lintel
#

just friendship <NPC> -750 like the template

rough lintel
round timber
#

cjb has a friendship thingy

#

setting

#

if you have it turned on the event wont make friendship decrease

rough lintel
#

but how does that affe-

#

Oh.

#

what if i dont have it on

#

also what specifically is the โ€œfriendship thingyโ€? friendship decay?

round timber
#

yes

rough lintel
#

ah ok

round timber
#

if its not that then idk. id guess something else in the event code is making things wonky?

rough lintel
#

turns out he had it on. lmfao

#

problemo solved

round timber
#

lol epic

rough lintel
#

thank u friends

rancid musk
#

-# (I suppose I should post my screenshot again since I mentioned it, for people who are unaware of the Everything Bagel.)

shrewd hearth
#

anyone wanna talk while playing

quasi osprey
#

Hi! Does anyone know if i can combine AT script and CT script in the same content json? I want to be able to publish the farm animals as AT option, but marnies shop icons should by default just change. So i figured a CT file would work better. Maybe with a config option for color changes, but AT wont really do the trick there. Hope someone can help ๐Ÿ™‚

uncut viper
#

what is a CT file. either way the answer is almost definitely no

round timber
brittle pasture
#

and if we're talking farm animals you can just add skins for them purely with CP and AT tools can pick them up

drowsy pewter
round timber
#

allegedly

calm nebula
#

What's a video game

#

||we are about two months out from that being a serious question from atra||

round timber
#

atra amnesia arc?

calm nebula
#

There is only a certain amount of room in my brain and

#

I'm yeeting everything I don't need aggressively

sour sleet
round timber
#

no, i literally played earlier today haha, but im trying to tell the person theyll have better luck asking that question elsewhere

quasi osprey
round timber
#

wha

#

i was talking about someone else not you, sorry

#

(also bouncer is a bot)

#

(that we speak through)

brittle pasture
quasi osprey
#

Ye but not really getting an anwser yet ๐Ÿ˜ณ

round timber
#

two different ppl replied to you tho

brittle pasture
#

maybe I should start ping replying more (if they don't specifically say not to @)

quasi osprey
#

Iโ€™ll ask somewhere else. Thank you

brittle pasture
#

...okay, because if you meant "in the same server" there is nowhere else

drowsy pewter
#

Im confused

round timber
#

this is the place to ask though...

drowsy pewter
#

The stuff about being in the wrong channel was in response to a different person

brittle pasture
idle lantern
#

I made a goose.
I specifically want to use the swimmy boy images in a cutscene, but I'm struggling to phrase a google search correctly to find how to get the correct sprite to show

brittle pasture
#

though I think that'd just use the walking sprites? you may need a separate sprite with just the swim animations, or use another command for temporary sprite

idle lantern
#

Oh that's a good idea! Thank you!

vernal crest
#

If you want to control the exact frames used, I'd recommend using temporaryAnimatedSprite

woeful lintel
calm nebula
#

Sorry my brain is full of that perfect kick from katseye in debut

light bramble
#

Can someone help me understand why even though I have this as my json for FTM I'm still having issues with spawns? I have literally tested with just my mod and the requirements, with all my usual mods, and still nothing. Things do not spawn...
https://smapi.io/json/none/15386cd0dc61427aad45be81c4086a79

#

It's even to where others are noticing and commenting about it on my mod page and I'm getting annoyed...

idle lantern
vernal crest
light bramble
#

^

idle lantern
#

oh! Thank you!

vernal crest
idle lantern
#

I've been using it to find missing /'s for the most part. AI is part of my degree, so I've been putzing around with it

#

Taught myself html in middle school. I'm not nearly as smart as I was then

vernal crest
#

Missing forward slashes?

idle lantern
#

I've been using Notepad++ and it likes to skip around, and I end up losing my /s in say /speak or /emote

vernal crest
#

Try multilining your events instead. Much easier to avoid missing things.

idle lantern
#

I'll try that. I wish I could leave them like that ๐Ÿ™‚

vernal crest
#

You can

sour sleet
uncut viper
#

you can leave them multilined

mighty ginkgo
light bramble
#

I think I might look morew into my issue when I'm not tired from work...Retail just SAPS EVERYTHING from me

idle lantern
#

I wonder what I'm doing incorrectly then. I get errors about the scripts not being on a single line

uncut viper
#

SMAPI uses a very forgiving JSON parsing library that will handle newlines for you

#

its not standard json

vernal crest
light bramble
idle lantern
light bramble
#

oh god...I need to rest XD smaple

idle lantern
#

It says INS

round timber
#

pufferchick flavored snapple?

light bramble
#

ยฏ_(ใƒ„)_/ยฏ

mighty ginkgo
light bramble
#

all i know is that retail be kiloling my brain

calm nebula
brittle pasture
sour sleet
# idle lantern It says INS

Oh thatโ€™s fine, I was checking you didnโ€™t have it set to overwrite, seeing as you said it was missing forward slashes.

idle lantern
#

I'm not sure what's causing it. When I try to highlight sections, it'll immediately jump tot he start of the line.

#

then I rage

light bramble
#

but to be fair I have been mush brained

idle lantern
light bramble
#

ahhhh flashbang!

#

light mode! it BURNSSSSSS

half tangle
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.

light bramble
#

selph you may be right on the thingy, i will have to look atr it later beause i am just no brain rn

#

oh god...I am gonna be brainless now and just relax with my cozy game of farming the lettuce

vernal crest
# idle lantern

Unrelated to your struggles with N++ but your patch for adding your character to the game has the wrong Target (Characters instead of Data/Characters) and has a bunch of incorrect fields. You also don't have a portrait load which you will need. https://stardewvalleywiki.com/Modding:NPC_data

idle lantern
#

The sprite loaded in nicely, however my computer isn't letting my take screenshots using printscreen nor wnd shift r. IT was working last night. I'll work on the portrait and fix that data/characters

vernal crest
#

If you want your duck to just be in the events without being a real NPC, you can do that by the way.

idle lantern
#

My hope is to have him be an interactable npc after an event. We'll see if I can figure that out ๐Ÿ™‚

#

I'm betting I'll have to fix him completely. I have two different sprite sheets for him, right now. I couldn't figure out the tempAnimate command

vernal crest
#

There is no tempAnimate command

#

There's animate and temporaryAnimatedSprite and specificTemporarySprite (I think - don't use that one ever) and maybe one or two others I can't remember off the top of my head.,

#

You can use any sheet you want for TAS

idle lantern
#

sorry, I misspoke. The TemporaryAnimatedSprite

vernal crest
#

It is a bit complicated but I can help you with it if you want

#

I've actually used it twice in that screenshot I sent before

idle lantern
#

that would be lovely! Can I hit you up tomorrow or Tuesday? My cats are telling me it's bedtime

vernal crest
idle lantern
#

Last minute success! Have a great night!

karmic gust
#

How thorough does schedule testing need to be? Asking for a friend with 12 NPC schedules to test SDVpufferchickcry

proven spindle
#

As thorough as you want to be

#

Personally, I do a quick check using cjb cheats to change time to later in the day (makes npcs speed through their schedules, though there is some risk in them walking off map sometimes), and use debug mode to mouse over npc landing spots in SVE when checking for sve compat to check if there's any objects there. I usually just check a couple of the schedules (default ones, common ones, and highly specialized ones) and don't really bother with only slightly modified schedules from the default/commons

serene moat
karmic gust
#

Thanks for the tips!

#

Hopefully they all work flawlessly haha

half tangle
violet grotto
#

Has anyone ever tried to give a custom merchant the option to purchase pets from them?

#

(I'll likely need Shop Tile Framework, if it is possible)

#

But as far as I can tell, custom pets are usually made available from Marnie.

orchid glade
#

Oooh yeah 10k!

frosty hull
#

"custom_tabs != null ?"โ“ i think this code is not correct

#

should be " custom_tabs == null ?"โœ…

#

that right?

#

@gaunt orbit

#

huh, is you ๐Ÿ˜…๐Ÿ™

fading walrus
untold oriole
inner harbor
#

Looks like I dragged my heels too long on writing mine. Not that it matters, Two Cakes and all that!

swift beacon
#

hey @rigid oriole, i saw your work on the Modding:Audio page recently and i think it looks really good so far SDVpufferthumbsup
(i wrote up the original page haha)

#

finally having a lot of these descriptions in is really nice! thanks for working on it ^.^

ornate moon
#

does anyone how to change the sell value of stuff? i changed the sell value for dodo eggs and dodos but they aren't changing, however, when i try to change dodo mayonnaise it works.

also, how can i make an animal lay a new egg haha i tried to make a sprite for it but don't know what to put in the code so i just copied the egg files but isn't working when pasting then changing the asset file

crude plank
orchid glade
fading walrus
lucid iron
ornate moon
#

what do you mean by spawn a new copy of the item? like in game?

proud wyvern
#

yeah. items retain a lot of their properties in save files

gaunt orbit
# frosty hull huh, is you ๐Ÿ˜…๐Ÿ™

This is non-released WIP compat code for a spacecore feature. It's not in the actual release mod, and it's probably going to be removed before release due to the complexity and nicheness.

What do you need with the hhd code? If you need to know what it actually looks like, I would recommend going back to the last version bump commit, as that will be in line with the current release.

#

If you're trying to figure out android compatibility, the most likely broken thing would be the inventory menu transpiler. The code is different on android and I don't have access to android binaries, so I can't write compatible transpilers for it.

#

Most of the menu code should work on android. the key modifiers for favoriting wouldn't work without a controller, but I'm not sure there's anything that can be done about that.

frosty hull
#

Oh ok, thanks sir
yes im try fix bug for android version

#

I've been sitting here trying to debug these issues, wondering why the code logic is so weird โ€” and on top of that, it doesn't even work on PC.

gaunt orbit
#

Yeah the dev version is still in the oven. I've been too busy to clean it up. If I have time this week I want to get rid of the custom tab stuff and finish the blueprints thing

#

If you have questions about the code, lmk. Most of the menu stuff should be reasonably well-documented, but I know the harmony stuff is less so

frosty hull
#

ah ok thanks sir

rich seal
#

I'm having trouble with retaining what I'm learning still. I wanted to try adding entries to ProducedItems in fish ponds for three fish, and I thought I was doing it right by adding new entries, but it hasn't worked. Can someone tell me what I did wrong?
https://smapi.io/json/none/090b4e8b1deb43bb9802925ae27d1b93

fading walrus
# frosty hull ah ok thanks sir

(popping in to mention - wren uses she/her pronouns, so sir isn't really the correct way to refer to her here. I suggest not using sir/madam to avoid any potential mixups or confusion)

frosty hull
#

sorry

gaunt orbit
fading walrus
# frosty hull sorry

it's okay, I know you were just trying to be respectful but "sir" and such aren't universal, and since this is an informal server you can feel free to just call people by their names instead SDVpufferheart

rich seal
gaunt orbit
karmic gust
#

Hello, would someone be willing to showcase my mod for me? I finally finished and published it!! SDVpufferparty

"The new farmer isn't the only one looking for love in Stardew Valley.

Star Crossed introduces rival marriages for 6 couples. Each pair has their own unique events, dialogue, engagement, and custom wedding. After marriage, couples will move in and continue to interact together during their regular schedules, as well as during festivals."

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

Nexus Mods :: Stardew Valley

The new farmer isn't the only one looking for love in Stardew Valley.Star Crossed introduces rival marriages for 6 couples. Each pair has their own unique events, dialogue, engagement, and

rare orbit
#

i got time

karmic gust
#

Thank you!

rare orbit
#

np :3

#

imma have to do a pairing i don't marry tho to not feel the pain :3

karmic gust
#

Haha, I hope you love their love stories as much as I loved writing them SDVpufferheart

ocean sailBOT
#

@karmic gust You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

rare orbit
#

also also? quick question? is it ok to use a free font for making a font settings pack?

karmic gust
#

Before the engagement scene should be fine, after that there are map changes that would likely bug out

rare orbit
#

oh cool! it's not gonna mess with recolors right?

fading walrus
karmic gust
#

Everything uses vanilla assets so should be good!

fading walrus
#

You should promote it over in #modded-stardew too, so mod users see it too before it goes to showcase!

karmic gust
#

Thank you!! I was so nervous publishing lol

fading walrus
#

Hehehe I relate to that so much

karmic gust
#

Oh good idea, ty!

rough lintel
rare orbit
#

sweet

#

anyone know any good sites to look for free or low cost fonts?

karmic gust
#

They're my favorite grumps SDVpuffersquee

calm nebula
fading walrus
#

I usually use dafont or google fonts, yeah

calm nebula
#

Morning. Quill!

rare orbit
#

yay!

#

imma look for dafont too

#

i want a script/curly font

#

tho idk how hard that might be to translate

#

like to see in game i mean

fading walrus
gaunt orbit
rare orbit
#

on a scale of 1 to 10 how hard is this to read? can yall see this font ok?

gaunt orbit
#

I can understand it okay but it does take a decent amount of effort to parse

fading walrus
#

readable to me, but I use cursive to write

#

i'm used to it

#

for someone used to print I imagine it would be harder

lucid iron
#

I see lines sorry

gaunt orbit
#

The characters are all fairly similar which requires more concentration to read and makes it unable to be understood at a glance

rare orbit
#

imma keep lookin!

#

i love the fancy font but i wanna verify others can see it

#

also also? anyone know how to make a character file? for fonts?

#

i googled it but i got oc advice instead

gaunt orbit
# fading walrus readable to me, but I use cursive to write

I mean I use cursive too, it's not about the curly letters, it's more just that the homogeneity of the character shape makes it more difficult to differentiate characters.

When I write cursive there's quirks to the letters that make them less uniform and more easily readable

rare orbit
#

what about this font? this font more readable than the 1st one?

rich seal
gaunt orbit
fading walrus
rich seal
#

So instead of "Squid" : "Campaigner.Thing", it'd be "Campaigner.Thing" : "Campaigner.Thing"?

gaunt orbit
#

Yes

rich seal
#

Gotcha. It's kind of confusing, but here's hoping I'm understanding now

gaunt orbit
#

I know it's weird that's just how list editing works with cp